#include "src/class/player.hpp"
|
|
|
|
#include <string.h>
|
|
|
|
Player::Player(std::string playerName)
|
|
: Character(playerName)
|
|
{
|
|
experience = 0;
|
|
level = 1;
|
|
}
|
|
|
|
Player::Player(std::string playerName, int playerMaxHP, int playerAtk, int playerDef, int playerLevel, int playerExp)
|
|
: Character(playerName, playerMaxHP, playerAtk, playerDef)
|
|
{
|
|
experience = playerExp;
|
|
level = playerLevel;
|
|
}
|
|
|
|
int Player::getLevel()
|
|
{
|
|
return level;
|
|
}
|
|
|
|
int Player::getExp()
|
|
{
|
|
return experience;
|
|
}
|
|
|
|
int Player::expToLevelUp()
|
|
{
|
|
if (level >= PLAYER_MAX_LEVEL)
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
return (level * level) - experience;
|
|
}
|
|
}
|
|
|
|
bool Player::checkLevelup()
|
|
{
|
|
return expToLevelUp() < 0;
|
|
}
|
|
|
|
bool Player::levelUp(int stat)
|
|
{
|
|
if (checkLevelup())
|
|
{
|
|
switch (stat)
|
|
{
|
|
case 1:
|
|
maxHP += 10;
|
|
restoreHP();
|
|
break;
|
|
case 2:
|
|
atk += 2;
|
|
break;
|
|
case 3:
|
|
def += 1;
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
int Player::takeExperience(int bounty)
|
|
{
|
|
experience = experience + bounty;
|
|
|
|
if (experience > PLAYER_MAX_EXPERIENCE)
|
|
{
|
|
experience = PLAYER_MAX_EXPERIENCE;
|
|
}
|
|
|
|
return experience;
|
|
}
|