#pragma once #include "Entity.h" #include "Vector3.h" #include "ICompareable.h" #include "Weapon.h" class Monster : public MyNamespace::Entity, public ICompareable { public: // constructor, copy-constructor & destructor, // if you need one, you'll need all of them // internal pointers often requires constrcutor, copy-constructor & destructor Monster(); //Monster(Weapon* weapon); Monster(const Monster& other); virtual ~Monster(); std::string ToString() override { return "Monster"; } virtual void Move(const Vector3& move) = 0; bool Compare(const ICompareable* pOther) override; protected: Weapon* _pWeapon = nullptr; };