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.

63 lines
1.0 KiB

  1. #include "src/class/player.hpp"
  2. #include <string.h>
  3. Player::Player(std::string playerName)
  4. : Character(playerName)
  5. {
  6. experience = 0;
  7. level = 1;
  8. }
  9. Player::Player(std::string playerName, int playerMaxHP, int playerAtk, int playerDef, int playerLevel, int playerExp)
  10. : Character(playerName, playerMaxHP, playerAtk, playerDef)
  11. {
  12. experience = playerExp;
  13. level = playerLevel;
  14. }
  15. int Player::getLevel()
  16. {
  17. return level;
  18. }
  19. int Player::getExp()
  20. {
  21. return experience;
  22. }
  23. int Player::expToLevelUp()
  24. {
  25. if (level >= PLAYER_MAX_LEVEL)
  26. {
  27. return 0;
  28. }
  29. else
  30. {
  31. return (level * level) - experience;
  32. }
  33. }
  34. bool Player::checkLevelup()
  35. {
  36. return (expToLevelUp() <= 0 && level < PLAYER_MAX_LEVEL);
  37. }
  38. void Player::levelUp()
  39. {
  40. level += 1;
  41. maxHP += 10;
  42. atk += 2;
  43. def += 1;
  44. }
  45. int Player::takeExperience(int bounty)
  46. {
  47. experience = experience + bounty;
  48. if (experience > PLAYER_MAX_EXPERIENCE)
  49. {
  50. experience = PLAYER_MAX_EXPERIENCE;
  51. }
  52. return experience;
  53. }