Make duration of celebration effects consistent
Posted: Fri Nov 06, 2020 9:41 am
I want to discuss this issue: https://www.hostedredmine.com/issues/893403
Celebration effects currently have a different duration based on which function they use to query this state.
The function base_city_celebrating() returns true if population requirements for celebration are met now and happiness requirements have been met
last turn. The function city_celebrating() additionally checks if the happiness requirements still hold now.
This leads to the situation that wherever base_city_celebrating() is used, celebration effects last one more turn if population requirements are still met. Most notably this is true for tile outputs calculated by the server via city_tile_cache_update(). Rapture growth and the Lua-API are notable examples of features that instead use city_celebrating() for checking celebration state.
The question remains which behavior should be the base line for a consistent implementation.
---
I think there are multiple perspectives that should be considered when deciding about this:
1. What was the intended behavior? (What would players of freeciv or other civ games expect?)
2. What is more logical from a simulation perspective?
3. What is most fun from a gameplay perspective?
4. What is easier to implement?
Celebration effects currently have a different duration based on which function they use to query this state.
The function base_city_celebrating() returns true if population requirements for celebration are met now and happiness requirements have been met
last turn. The function city_celebrating() additionally checks if the happiness requirements still hold now.
This leads to the situation that wherever base_city_celebrating() is used, celebration effects last one more turn if population requirements are still met. Most notably this is true for tile outputs calculated by the server via city_tile_cache_update(). Rapture growth and the Lua-API are notable examples of features that instead use city_celebrating() for checking celebration state.
The question remains which behavior should be the base line for a consistent implementation.
---
I think there are multiple perspectives that should be considered when deciding about this:
1. What was the intended behavior? (What would players of freeciv or other civ games expect?)
2. What is more logical from a simulation perspective?
3. What is most fun from a gameplay perspective?
4. What is easier to implement?