diff --git a/lib/NetPacksLib.cpp b/lib/NetPacksLib.cpp index 9483cac51..cac4b15b7 100644 --- a/lib/NetPacksLib.cpp +++ b/lib/NetPacksLib.cpp @@ -1342,21 +1342,6 @@ DLL_LINKAGE void BattleSpellCast::applyGs( CGameState *gs ) spell->applyBattle(gs->curB, this); } -void actualizeEffect(CStack * s, const std::vector & ef) -{ - //actualizing features vector - - for(const Bonus &fromEffect : ef) - { - for(Bonus *stackBonus : s->getBonusList()) //TODO: optimize - { - if(stackBonus->source == Bonus::SPELL_EFFECT && stackBonus->type == fromEffect.type && stackBonus->subtype == fromEffect.subtype) - { - stackBonus->turnsRemain = std::max(stackBonus->turnsRemain, fromEffect.turnsRemain); - } - } - } -} void actualizeEffect(CStack * s, const Bonus & ef) { for(Bonus *stackBonus : s->getBonusList()) //TODO: optimize @@ -1366,6 +1351,17 @@ void actualizeEffect(CStack * s, const Bonus & ef) stackBonus->turnsRemain = std::max(stackBonus->turnsRemain, ef.turnsRemain); } } + CBonusSystemNode::treeHasChanged(); +} + +void actualizeEffect(CStack * s, const std::vector & ef) +{ + //actualizing features vector + + for(const Bonus &fromEffect : ef) + { + actualizeEffect(s, fromEffect); + } } DLL_LINKAGE void SetStackEffect::applyGs( CGameState *gs )