#pragma once #include "Entity.h" #include "ICompareable.h" #include "Weapon.h" //enum Monsters //{ // Ork, // Troll, // Elve //}; class Monster : public Entity, public ICompareable { public: // internal pointers often requires a default & copy constructor and a destructor Monster(); Monster(const Monster& other); Monster(int strength); virtual ~Monster(); //static Monster Create(Monsters type); virtual void Move() = 0; // abstract (pure virtual method) std::string ToString() override; int Compare(ICompareable* other) override; protected: Weapon* _pWeapon = nullptr; int _strength = 0; float _speed = 0.0f; };