// // Created by IgorBat on 17.03.2018. // #ifndef THE_GAME_SPELL_H #define THE_GAME_SPELL_H #pragma once #include #include #include //#include "AbstractFactory.h" #include "effect.h" class Unit{ std :: list effectsOnUnit; }; class Cell{ std :: list effectsOnCell; }; class Spell { protected: std :: list effects_; private: int distance_; bool forCell_; public: Spell() = delete; Spell(std::string path) { } virtual ~Spell() = delete; int getDistance(); void setDistance(int value); bool getForCell(); void setForCell(bool value); //int lenOfSmallestPath(Cell* destination); virtual bool canCastForDistance(int distance); virtual bool canCastToCell(Cell* destination); virtual void castToCell(Cell* destination); void CastSpell(Cell* from, Cell* where, Unit* who, Unit* whom); }; #endif //THE_GAME_SPELL_H