diff --git a/lib/battle/CUnitState.cpp b/lib/battle/CUnitState.cpp index 237d8eef5..a6b64a472 100644 --- a/lib/battle/CUnitState.cpp +++ b/lib/battle/CUnitState.cpp @@ -545,22 +545,6 @@ bool CUnitState::isShooter() const return shots.total() > 0; } -bool CUnitState::isMeleeAttacker() const -{ - //exclude non melee attackers - static const std::set nonMeleeAttackers{ - CreatureID::FIRST_AID_TENT, - CreatureID::CATAPULT, - CreatureID::BALLISTA, - CreatureID::AMMO_CART, - CreatureID::ARROW_TOWERS - }; - if (vstd::contains(nonMeleeAttackers, creatureId())) - return false; - - return true; -} - int32_t CUnitState::getKilled() const { int32_t res = unitBaseAmount() - health.getCount() + health.getResurrected(); diff --git a/lib/battle/CUnitState.h b/lib/battle/CUnitState.h index 9dede8c62..b1ec4a6d4 100644 --- a/lib/battle/CUnitState.h +++ b/lib/battle/CUnitState.h @@ -205,7 +205,6 @@ public: bool canShootBlocked() const override; bool canShoot() const override; bool isShooter() const override; - bool isMeleeAttacker() const override; int32_t getKilled() const override; int32_t getCount() const override; diff --git a/lib/battle/Unit.cpp b/lib/battle/Unit.cpp index f3eb42c2a..3c579a0b7 100644 --- a/lib/battle/Unit.cpp +++ b/lib/battle/Unit.cpp @@ -38,6 +38,22 @@ bool Unit::isTurret() const return creatureIndex() == CreatureID::ARROW_TOWERS; } +bool Unit::isMeleeAttacker() const +{ + //exclude non melee attackers + static const std::set nonMeleeAttackers{ + CreatureID::FIRST_AID_TENT, + CreatureID::CATAPULT, + CreatureID::BALLISTA, + CreatureID::AMMO_CART, + CreatureID::ARROW_TOWERS + }; + if (vstd::contains(nonMeleeAttackers, creatureId())) + return false; + + return true; +} + std::string Unit::getDescription() const { boost::format fmt("Unit %d of side %d"); diff --git a/lib/battle/Unit.h b/lib/battle/Unit.h index 439ab0102..790a5be22 100644 --- a/lib/battle/Unit.h +++ b/lib/battle/Unit.h @@ -97,7 +97,7 @@ public: virtual bool canShootBlocked() const = 0; virtual bool canShoot() const = 0; virtual bool isShooter() const = 0; - virtual bool isMeleeAttacker() const = 0; + bool isMeleeAttacker() const; /// returns initial size of this unit virtual int32_t getCount() const = 0;