1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-21 21:17:49 +02:00
This commit is contained in:
AlexVinS 2016-03-05 04:46:32 +03:00
parent 5d329b40a4
commit 1e7e7a7006
2 changed files with 16 additions and 0 deletions

View File

@ -1198,6 +1198,15 @@ DLL_LINKAGE void BattleNextRound::applyGs( CGameState *gs )
s->counterAttacksTotalCache = 0;
// new turn effects
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)

View File

@ -131,6 +131,13 @@ void CloneMechanics::applyBattleEffects(const SpellCastEnvironment * env, const
ssp.val = bsa.newStackID;
ssp.absolute = 1;
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