You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SeasonI/battleproperty.h

212 lines
3.5 KiB

#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