|
|
- #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
|