mirror of
https://github.com/vcmi/vcmi.git
synced 2025-02-03 13:01:33 +02:00
FixDefenceAni
This commit is contained in:
parent
460227ec23
commit
75a76c0bf0
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user