#ifndef BATTLE_PROPERTY_H #define BATTLE_PROPERTY_H #include "pixelGameEngine.h" #include "defines.h" using namespace olc; class BattleProperty{ public: std::string displayName; std::string effectName; BattleProperty(std::string displayName,std::string effectName) :displayName(displayName),effectName(effectName){} virtual void OnApplication()=0; //What happens when the effect is immediately applied. virtual void OnTurnStart()=0; //Effects on turn start. virtual void OnTurnEnd()=0; //Effects on turn end. }; class Property_PETRIFY:public BattleProperty{ public: Property_PETRIFY() :BattleProperty("PETRIFY","Petrified"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_PARALYZE:public BattleProperty{ public: Property_PARALYZE() :BattleProperty("PARALYZE","Paralyzed"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_DIAMONDIZE:public BattleProperty{ public: Property_DIAMONDIZE() :BattleProperty("DIAMONDIZE","Diamondized"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_CRYING:public BattleProperty{ public: Property_CRYING() :BattleProperty("CRYING","Crying"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_SLOW:public BattleProperty{ public: Property_SLOW() :BattleProperty("SLOW","Slowed"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_MUSHROOMIZED:public BattleProperty{ public: Property_MUSHROOMIZED() :BattleProperty("MUSHROOMIZED","Mushroomized"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_CONFUSE:public BattleProperty{ public: Property_CONFUSE() :BattleProperty("CONFUSE","Confused"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_POISON:public BattleProperty{ public: Property_POISON() :BattleProperty("POISON","Poisoned"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_REGEN:public BattleProperty{ public: Property_REGEN() :BattleProperty("REGEN","Regenerating"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_DEFENSE_UP:public BattleProperty{ public: Property_DEFENSE_UP() :BattleProperty("DEFENSE_UP","Hardened"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_REVIVE:public BattleProperty{ public: Property_REVIVE() :BattleProperty("REVIVE","Revived"){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; class Property_NONE:public BattleProperty{ public: Property_NONE() :BattleProperty("NONE",""){} void OnApplication(){ } void OnTurnStart(){ } void OnTurnEnd(){ } }; enum class Property{ PETRIFY, PARALYZE, DIAMONDIZE, CRYING, SLOW, MUSHROOMIZED, CONFUSE, POISON, REGEN, DEFENSE_UP, REVIVE, NONE }; #endif