mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-21 21:17:49 +02:00
This commit is contained in:
parent
5d329b40a4
commit
1e7e7a7006
@ -1198,6 +1198,15 @@ DLL_LINKAGE void BattleNextRound::applyGs( CGameState *gs )
|
|||||||
s->counterAttacksTotalCache = 0;
|
s->counterAttacksTotalCache = 0;
|
||||||
// new turn effects
|
// new turn effects
|
||||||
s->battleTurnPassed();
|
s->battleTurnPassed();
|
||||||
|
|
||||||
|
if(s->alive() && vstd::contains(s->state, EBattleStackState::CLONED))
|
||||||
|
{
|
||||||
|
//cloned stack has special lifetime marker
|
||||||
|
//check it after bonuses updated in battleTurnPassed()
|
||||||
|
|
||||||
|
if(!s->hasBonus(Selector::type(Bonus::NONE).And(Selector::source(Bonus::SPELL_EFFECT, SpellID::CLONE))))
|
||||||
|
s->makeGhost();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(auto &obst : gs->curB->obstacles)
|
for(auto &obst : gs->curB->obstacles)
|
||||||
|
@ -131,6 +131,13 @@ void CloneMechanics::applyBattleEffects(const SpellCastEnvironment * env, const
|
|||||||
ssp.val = bsa.newStackID;
|
ssp.val = bsa.newStackID;
|
||||||
ssp.absolute = 1;
|
ssp.absolute = 1;
|
||||||
env->sendAndApply(&ssp);
|
env->sendAndApply(&ssp);
|
||||||
|
|
||||||
|
SetStackEffect sse;
|
||||||
|
sse.stacks.push_back(bsa.newStackID);
|
||||||
|
Bonus lifeTimeMarker(Bonus::N_TURNS, Bonus::NONE, Bonus::SPELL_EFFECT, 0, owner->id.num);
|
||||||
|
lifeTimeMarker.turnsRemain = parameters.enchantPower;
|
||||||
|
sse.effect.push_back(lifeTimeMarker);
|
||||||
|
env->sendAndApply(&sse);
|
||||||
}
|
}
|
||||||
|
|
||||||
ESpellCastProblem::ESpellCastProblem CloneMechanics::isImmuneByStack(const ISpellCaster * caster, const CStack * obj) const
|
ESpellCastProblem::ESpellCastProblem CloneMechanics::isImmuneByStack(const ISpellCaster * caster, const CStack * obj) const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user