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.
 
 
 
 

65 lines
1.3 KiB

#ifndef SPELL_WARZ_CHARACTER_HPP
#define SPELL_WARZ_CHARACTER_HPP 1
#include <string>
#include "Spell.hpp"
#include "Element.hpp"
class Character
{
protected:
static const int maxLevel;
static const int maxExperience;
std::string name;
Element *affinity;
int level;
int experience;
int maxHP;
int maxMP;
int curHP;
int curMP;
void restoreHP(int);
void restoreMP(int);
void reduceHP(int);
void reduceMP(int);
public:
Character(std::string characterName,
Element *characterAffinity);
Character(std::string characterName,
Element *characterAffinity,
int characterLevel);
Character(std::string characterName,
Element *characterAffinity,
int characterLevel,
int characterHP,
int characterMP);
bool castSpell(Spell *src, Character *dst);
bool canCastSpell(Spell *src);
std::string getName();
Element *getAffinity();
int getLevel();
int getExperience();
int getMaxHP();
int getMaxMP();
int getCurHP();
int getCurMP();
int toNextLevel();
bool readytoLevelUp();
bool isAlive();
void levelUp();
void kill();
void rest();
void revive();
void increaseExperience(int n);
};
#endif