mirror of
https://github.com/vcmi/vcmi.git
synced 2025-02-09 13:14:02 +02:00
FixDefenceAni
This commit is contained in:
parent
460227ec23
commit
75a76c0bf0
@ -233,7 +233,7 @@ std::string CDefenceAnimation::getMySound()
|
|||||||
if(killed)
|
if(killed)
|
||||||
return battle_sound(stack->getCreature(), 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(), defend);
|
||||||
return battle_sound(stack->getCreature(), wince);
|
return battle_sound(stack->getCreature(), wince);
|
||||||
}
|
}
|
||||||
@ -243,9 +243,7 @@ CCreatureAnim::EAnimType CDefenceAnimation::getMyAnimType()
|
|||||||
if(killed)
|
if(killed)
|
||||||
return CCreatureAnim::DEATH;
|
return CCreatureAnim::DEATH;
|
||||||
|
|
||||||
auto selector = CSelector(Bonus::UntilGetsTurn).And(Selector::typeSubtype(Bonus::PRIMARY_SKILL, PrimarySkill::DEFENSE));
|
if (vstd::contains(stack->state, EBattleStackState::DEFENDING_ANI))
|
||||||
|
|
||||||
if(stack->valOfBonuses(selector))
|
|
||||||
return CCreatureAnim::DEFENCE;
|
return CCreatureAnim::DEFENCE;
|
||||||
return CCreatureAnim::HITTED;
|
return CCreatureAnim::HITTED;
|
||||||
}
|
}
|
||||||
|
@ -433,7 +433,7 @@ namespace EMarketMode
|
|||||||
namespace EBattleStackState
|
namespace EBattleStackState
|
||||||
{
|
{
|
||||||
enum EBattleStackState{ALIVE = 180, SUMMONED, CLONED, DEAD_CLONE, HAD_MORALE, WAITING, MOVED, DEFENDING, FEAR,
|
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
|
namespace ECommander
|
||||||
|
@ -1304,6 +1304,9 @@ DLL_LINKAGE void StartAction::applyGs( CGameState *gs )
|
|||||||
{
|
{
|
||||||
CStack *st = gs->curB->getStack(ba.stackNumber);
|
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)
|
if(ba.actionType == Battle::END_TACTIC_PHASE)
|
||||||
{
|
{
|
||||||
gs->curB->tacticDistance = 0;
|
gs->curB->tacticDistance = 0;
|
||||||
@ -1329,7 +1332,8 @@ DLL_LINKAGE void StartAction::applyGs( CGameState *gs )
|
|||||||
switch(ba.actionType)
|
switch(ba.actionType)
|
||||||
{
|
{
|
||||||
case Battle::DEFEND:
|
case Battle::DEFEND:
|
||||||
st->state.insert(EBattleStackState::DEFENDING);
|
st->state.insert(EBattleStackState::DEFENDING);
|
||||||
|
st->state.insert(EBattleStackState::DEFENDING_ANI);
|
||||||
break;
|
break;
|
||||||
case Battle::WAIT:
|
case Battle::WAIT:
|
||||||
st->state.insert(EBattleStackState::WAITING);
|
st->state.insert(EBattleStackState::WAITING);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user