Browse Source

Move isMeleeAttacker to Unit

Andrej Dudenhefner 1 month ago
parent
commit
7c4b7aa3f0
4 changed files with 17 additions and 18 deletions
  1. 0 16
      lib/battle/CUnitState.cpp
  2. 0 1
      lib/battle/CUnitState.h
  3. 16 0
      lib/battle/Unit.cpp
  4. 1 1
      lib/battle/Unit.h

+ 0 - 16
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<CreatureID> 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();

+ 0 - 1
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;

+ 16 - 0
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<CreatureID> 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");

+ 1 - 1
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;