Make bonus stacking configurable + fix duplicate propagation/inheritance (#433)
Addresses several related problems: * Propagation / unpropagation of duplicate bonuses is inconsistent, causing bugs * Duplicate bonuses never stack, which is not always intended behaviour (e.g. multiple copies of resource generating artifacts) * Different bonuses always stack, which is not always intended behaviour (e.g. Angel + Archangel morale bonuses) This is addressed as follows: * Duplicate bonuses are never eliminated during propagation/inheritance. * Unpropagation eliminates only a single copy of duplicated bonus * Bonus receives a new field stacking that determines stacking behaviour: * * empty string = no stacking with duplicates (default) * * "ALWAYS" = stacks with duplicates & everything else * * some other value = no stacking with bonuses with same stacking value Also Morale/Luck window now hides non-stacking bonuses.
This commit is contained in:
1 parent
2b64bf29ed
commit
02b5a5e830
12 files changed
+177
-85
No files matched your search
@@ -29,7 +29,7 @@ const TBonusListPtr BonusBearerMock::getAllBonuses(const CSelector & selector, c
|
||||
{
|
||||
if(cachedLast != treeVersion)
|
||||
{
|
||||
bonuses.eliminateDuplicates();
|
||||
bonuses.stackBonuses();
|
||||
cachedLast = treeVersion;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user