1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

FixDefenceAni

This commit is contained in:
edeksumo 2015-11-04 00:19:40 +01:00
parent 460227ec23
commit 75a76c0bf0
3 changed files with 8 additions and 6 deletions

View File

@ -233,7 +233,7 @@ std::string CDefenceAnimation::getMySound()
if(killed)
return battle_sound(stack->getCreature(), killed);
if (stack->valOfBonuses(Bonus::UntilGetsTurn))
if (vstd::contains(stack->state, EBattleStackState::DEFENDING_ANI))
return battle_sound(stack->getCreature(), defend);
return battle_sound(stack->getCreature(), wince);
}
@ -243,9 +243,7 @@ CCreatureAnim::EAnimType CDefenceAnimation::getMyAnimType()
if(killed)
return CCreatureAnim::DEATH;
auto selector = CSelector(Bonus::UntilGetsTurn).And(Selector::typeSubtype(Bonus::PRIMARY_SKILL, PrimarySkill::DEFENSE));
if(stack->valOfBonuses(selector))
if (vstd::contains(stack->state, EBattleStackState::DEFENDING_ANI))
return CCreatureAnim::DEFENCE;
return CCreatureAnim::HITTED;
}

View File

@ -433,7 +433,7 @@ namespace EMarketMode
namespace EBattleStackState
{
enum EBattleStackState{ALIVE = 180, SUMMONED, CLONED, DEAD_CLONE, HAD_MORALE, WAITING, MOVED, DEFENDING, FEAR,
DRAINED_MANA /*remember to drain mana only once per turn*/};
DRAINED_MANA /*remember to drain mana only once per turn*/, DEFENDING_ANI/*only for animation*/};
}
namespace ECommander

View File

@ -1304,6 +1304,9 @@ DLL_LINKAGE void StartAction::applyGs( CGameState *gs )
{
CStack *st = gs->curB->getStack(ba.stackNumber);
if(vstd::contains(st->state, EBattleStackState::DEFENDING_ANI))
st->state -= EBattleStackState::DEFENDING_ANI;
if(ba.actionType == Battle::END_TACTIC_PHASE)
{
gs->curB->tacticDistance = 0;
@ -1329,7 +1332,8 @@ DLL_LINKAGE void StartAction::applyGs( CGameState *gs )
switch(ba.actionType)
{
case Battle::DEFEND:
st->state.insert(EBattleStackState::DEFENDING);
st->state.insert(EBattleStackState::DEFENDING);
st->state.insert(EBattleStackState::DEFENDING_ANI);
break;
case Battle::WAIT:
st->state.insert(EBattleStackState::WAITING);