Lua: player:give_bulbs() method
I've been thinking about the corner-cases when reducing the amount of bulbs (we do that for tech upkeep, so it's possible). Maybe the wisest course of action is to have this method with the restriction that only positive values are allowed. That should make it safe to implement to 3.1 already. We can always add separate take_bulbs() method in later versions, if we want.
Reply To cazfi
I've been thinking about the corner-cases when reducing the amount of bulbs (we do that for tech upkeep, so it's possible). Maybe the wisest course of action is to have this method with the restriction that only positive values are allowed. That should make it safe to implement to 3.1 already. We can always add separate take_bulbs() method in later versions, if we want.
Now I looked at it, and it might be a lot easier than I thought. Lower level code should do everything right even when we add very simple function to implement the lua API. So, the amount of bulbs is a signed value in the attached patch, after all.
There are requests for things like giving some profit to a target player of "Enter Marketplace" action, or we may make tech stealth effectivity more even with a custom action, or something. Let's make a method that provides player with a given amount of bulbs; by default, commit them to the current research stock, in multiresearch mode let it be possible to specify a tech to commit to (that better needs also a function to test the current progress and cost of a tech for the player).