#ifndef _2EASY4ME_PLAYER_H_ #define _2EASY4ME_PLAYER_H_ #include "character.hpp" #include "string.h" class Player : public Character { protected: int xp; int level; public: Player(char *name) : Character(name) { this->xp = 0; this->level = 1; } Player(char *name, int hp, int att, int def, int level, int xp) : Character(name, hp, att, def) { this->xp = xp; this->level = level; } int getLevel() { return level; } bool checkLevelup() { return xp > (level * level); } bool levelUp(int stat) { switch (stat) { case 1: hp += 10; break; case 2: att += 2; break; case 3: def += 1; break; } xp -= level * level; } int generateCode(char *dst) { return sprintf(dst, "PlayerName:%15s;PlayerHp:%d;PlayerAtt:%d;PlayerDef:%d;PlayerLvl:%d;PlayerExp:%d;", this->name, this->hp, this->att, this->def, this->level, this->xp); } Player *loadCode(char *dst) { char name[16]; int hp; int att; int def; int lvl; int exp; int result = sscanf(dst, "PlayerName:%15s;PlayerAtt:%d;PlayerDef:%d;PlayerLvl:%d;PlayerExp:%d;", name, &hp, &att, &def, &lvl, &exp); if (result == 5) { return new Player(name, hp, att, def, lvl, exp); } else { return nullptr; } } }; #endif