Follow-up Comment #1, bug #22058 (project freeciv): Looked at this in the context of bug #22158.
So player_research_update() is called for every player and calculates tech_upkeep, which is stored in the possibly-shared research structure but was calculated using player-specific information -- effects (Tech_Cost_Factor / Tech_Upkeep_Free) and, since bug #19589, number of cities. tech_upkeep isn't actually paid until end_phase(). It's paid once per player, each time deducting from the shared research, using the stored tech_upkeep kept in the shared research structure. I think the net effect is that some random team member's tech upkeep gets subtracted multiple times from the shared research, if they're not all the same (due to effects or "Cities" upkeep style). I was also surprised that tech_upkeep is apparently recalculated on the client for display, rather than maintained on the server and sent to the client. It feels like tech_upkeep should become a per-player property, being that player's individual contribution to research slowness. That way we can have individual players with the wrong government or whatever leading to effects holding the team back. _______________________________________________________ Reply to this item at: <http://gna.org/bugs/?22058> _______________________________________________ Message sent via/by Gna! http://gna.org/ _______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev