]> git.localhorst.tv Git - l2e.git/blobdiff - src/battle/BattleState.cpp
extracted common capsule base
[l2e.git] / src / battle / BattleState.cpp
index 0171e1480f56a7d52b905a86e577525d0a2597a0..085a85371530678e0d578fa1fb8560aeb3299382 100644 (file)
@@ -192,7 +192,7 @@ void BattleState::CalculateAttackOrder() {
                attackOrder.push_back(Order(Order::MONSTER, i));
                MonsterAt(i).GetAttackChoice() = AttackChoice(this);
        }
-       if (capsule.Health() > 0) {
+       if (capsule.Active() && capsule.Health() > 0) {
                attackOrder.push_back(Order(Order::CAPSULE));
        }
        std::sort(attackOrder.begin(), attackOrder.end(), OrderCompare(this));
@@ -210,7 +210,7 @@ void BattleState::NextAttack() {
                } else if (attackOrder[attackCursor].IsHero()) {
                        if (HeroAt(attackOrder[attackCursor].index).Health() > 0) break;
                } else {
-                       if (capsule.Health() > 0) break;
+                       if (capsule.Active() && capsule.Health() > 0) break;
                }
                ++attackCursor;
        }
@@ -438,7 +438,7 @@ void BattleState::RenderHeroes(SDL_Surface *screen, const Vector<int> &offset) {
 }
 
 void BattleState::RenderCapsule(SDL_Surface *screen, const Vector<int> &offset) {
-       if (capsule.Health() <= 0) return;
+       if (!capsule.Active() || capsule.Health() <= 0) return;
        if (capsule.GetAnimation().Running()) {
                capsule.GetAnimation().DrawCenter(screen, capsule.Position() + offset);
        } else {