Aveneid

HALO

May 4th, 2020
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. /**
  2. ENTITY.H
  3. **/
  4. #include "Weapon.h"
  5.  
  6. class Entity
  7. {
  8. private:
  9.     int p_hp;
  10.     int p_str,p_def,p_mag;
  11.  
  12.     Weapon p_currentWeapon;
  13.  
  14.     bool p_alive = true;
  15.  
  16. public:
  17.     void takeDamage(int);
  18.     void dealDamage(Entity);
  19.     int getStr();
  20.     int getDef();
  21.     int getMag();
  22.     bool getAliveState();
  23. };
  24.  
  25.  
  26. /**
  27. ENTITY.CPP
  28. **/
  29. #include "Entity.h"
  30.  
  31. void Entity::dealDamage(Entity enemy)
  32. {
  33.     int damage = 0;
  34.     if(p_currentWeapon.getAttackType() == WeaponType::Magical)
  35.         damage = p_currentWeapon.getBaseDamage() * getMag() / (getMag() / enemy.getDef());
  36.     else
  37.         damage = p_currentWeapon.getBaseDamage() * getStr() / (getStr() / enemy.getDef());
  38.  
  39.     enemy.takeDamage(damage);
  40. }
  41.  
  42. void Entity::takeDamage(int amount)
  43. {
  44.     p_hp -= amount;
  45.     if(p_hp<=0)
  46.         p_alive = false;
  47. }
  48.  
  49. int Entity::getDef()
  50. {
  51.     return p_def;
  52. }
  53. int Entity::getStr()
  54. {
  55.     return p_str;
  56. }
  57. int Entity::getMag()
  58. {
  59.     return p_mag;
  60. }
  61.  
  62. bool Entity::getAliveState()
  63. {
  64.     return p_alive;
  65. }
  66.  
  67.  
  68.  
  69. /**
  70. WEAPON.H
  71. **/
  72.  
  73. enum class WeaponType
  74.     {
  75.         Normal=0,
  76.         Magical
  77.     };
  78. class Weapon
  79. {
  80. public:
  81.  
  82.  
  83.  
  84.     int getBaseDamage();
  85.     int getMinLevel();
  86.  
  87.     WeaponType getAttackType();
  88.  
  89.     Weapon(WeaponType,int,int);
  90.     ~Weapon();
  91.  
  92.  
  93.  
  94.  
  95. private:
  96.     int p_baseDamage;
  97.     int p_minLevel;
  98.  
  99.     WeaponType p_attackType;
  100.  
  101.  
  102. };
  103.  
  104.  
  105. /**
  106. WEAPON.CPP
  107. **/
  108. #include "Weapon.h"
  109.  
  110. Weapon::Weapon(WeaponType attackType, int baseDmg, int minLv)
  111. {
  112.     p_attackType = attackType;
  113.     p_baseDamage = baseDmg;
  114.     p_minLevel = minLv;
  115. }
  116. Weapon::~Weapon() {}
  117.  
  118. WeaponType Weapon::getAttackType()
  119. {
  120.     return p_attackType;
  121. }
  122. int Weapon::getBaseDamage()
  123. {
  124.     return p_baseDamage;
  125. }
  126. int Weapon::getMinLevel()
  127. {
  128.     return p_minLevel;
  129. }
Add Comment
Please, Sign In to add comment