// // 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 : public QObject { Q_OBJECT protected: std :: list effects_; private: int distance_; bool forCell_; public: explicit Spell(QString parameters); virtual ~Spell() {} int getDistance(); void setDistance(int value); bool getForCell(); void setForCell(bool value); virtual bool canCastToCell(Cell* destination, Cell* from); virtual void CastSpell(Cell* from, Cell* where, Unit* who, Unit* whom) = 0; int getDistance(); void setDistance(int Value); bool getForCell(); void setForCell(bool Value); QString getSpellName() const; QString getSpellDescr() const; QImage getSpellIcon() const; //---------------------------------------------// //-----------Parameters load section-----------// //---------------------------------------------// private: void loadSpellTraits(QString spell_folder); void loadSpellDescr(QString spell_folder); void loadSpellIcon(QString spell_folder); // GUI values QString spell_name_; QString spell_descr_; QImage spell_icon_; }; #endif //THE_GAME_SPELL_H