Description: When you have two different population types with the same primary or secundary FIDSI bonus (+1 Industry, or +3 Science on Cold), and you boost both of them, these bonuses stack with each other, despite the user interface only showing the effect of their own boost. This hidden boost is additive with each different population with the same primary of secondary population trait.


Steps to Reproduce: 1. Have two or more different population with an identical primary or secondary FIDSI Bonus (IE: Sefaloros, Mavros, Epistis, Remnant, Pulsos, Basryxo all these have a primary bonus of +1 Industry)// 2. boost/favor two or more, check how the effective bonus is added to each of them. In this scenario if you boost all 6, you would have +2 industry on GUI, but +7 effective industry behind the scenes.


Version: 1.5.57 S5 GOLD-Public (prepatch beta)


Reproducibility: 5/5


Insight to the problem: The way simulation properties are laid out, the bonus is applied to the trait directly, not to the population itself, should be limited to the population type (affinity). Many population types share traits, not to mention custom populations from a custom faction.


Possible solution: The easiest way to solve it is adding a new property on the Modifier for PopulationModifiersTrait, similar to "DisplayWhenBoostedOnly" that only affect GUI feedback, "EnableWhenBoostedOnly", that adds/removes the simulator descriptor reference when the boost for that population is in place. Another way to fix it without editing DLLs and only with simulation mapping editing, would be to pass down from the empire element for the population boost to the planet element, you need to add properties on the "ClassPopulationEmpire" and "ClassPopulationPlanet" to pass down the boost, as well to calculate conditional boosts in steps, and to find the matching population (internally affinity) you can use "ClassPopulationEmpireAffinityXXXXCount" simulation descriptor to feed the propery boost information to each "ClassPopulationPlanetAffinityXXXXCount". Then add a different simulator descriptor for the boost, and reference it on the trait modifiers themselves, using Modifier Class="ClassPopulationPlanet" DisplayWhenBoostedOnly="true".


Attachment: XML-Fix.zip - XML edited files of the public folder for the simulation solution workaround, as reference.