Open skleinfeldt opened 1 year ago
On further investigation GU already handles this pretty well, and we're going to be generalizing the existing spawning rules as part of the definition of objects in #232 in order to replicate the current functionality for "Food" objects. The following optional properties will be available on all objects:
initial_count
: how many to put on the map initially (formerly num_food
)respawn
: Should a consumed object be immediately replaced in another location (formerly respawn_food
)public_good_multiplier
: Should the calories of this object be split among all players when consumed (formerly food_pg_multiplier
)growth_rate
: The rate at which the number of objects increases (formerly food_growth_rate
)seasonal_growth_rate
: A rate multiplier that changes per game round. In odd rounds the growth_rate
is multiplied by this value, and in even rounds it's divided by this value.probability_distribution
: A named probability distribution used for placing objects, see distributions.py
(formerly food_probability_distribution
defaults to random
).Somewhat related are:
maturation_speed
: The rate at which objects "mature" and eventually "spoil" or disappear (formerly food_maturation_speed
).maturation_threshold
: The maturity level at which an object is removed from the map (formerly food_maturation_threshold
)This was 95% done when implementing #232, but I did a small refactor to support configuring the initial player distribution. I've included that change into PR #248. Both aspects seem to be working well.
User story:
As an experimenter I can define overall spawning rules for the map: whether objects are randomly placed or clumped.
[Note: this may have elements in common with the wall-building algorithms. Natalia will take the lead on algorithm development.]