Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- ENTITY.H
- **/
- #include "Weapon.h"
- class Entity
- {
- private:
- int p_hp;
- int p_str,p_def,p_mag;
- Weapon p_currentWeapon;
- bool p_alive = true;
- public:
- void takeDamage(int);
- void dealDamage(Entity);
- int getStr();
- int getDef();
- int getMag();
- bool getAliveState();
- };
- /**
- ENTITY.CPP
- **/
- #include "Entity.h"
- void Entity::dealDamage(Entity enemy)
- {
- int damage = 0;
- if(p_currentWeapon.getAttackType() == WeaponType::Magical)
- damage = p_currentWeapon.getBaseDamage() * getMag() / (getMag() / enemy.getDef());
- else
- damage = p_currentWeapon.getBaseDamage() * getStr() / (getStr() / enemy.getDef());
- enemy.takeDamage(damage);
- }
- void Entity::takeDamage(int amount)
- {
- p_hp -= amount;
- if(p_hp<=0)
- p_alive = false;
- }
- int Entity::getDef()
- {
- return p_def;
- }
- int Entity::getStr()
- {
- return p_str;
- }
- int Entity::getMag()
- {
- return p_mag;
- }
- bool Entity::getAliveState()
- {
- return p_alive;
- }
- /**
- WEAPON.H
- **/
- enum class WeaponType
- {
- Normal=0,
- Magical
- };
- class Weapon
- {
- public:
- int getBaseDamage();
- int getMinLevel();
- WeaponType getAttackType();
- Weapon(WeaponType,int,int);
- ~Weapon();
- private:
- int p_baseDamage;
- int p_minLevel;
- WeaponType p_attackType;
- };
- /**
- WEAPON.CPP
- **/
- #include "Weapon.h"
- Weapon::Weapon(WeaponType attackType, int baseDmg, int minLv)
- {
- p_attackType = attackType;
- p_baseDamage = baseDmg;
- p_minLevel = minLv;
- }
- Weapon::~Weapon() {}
- WeaponType Weapon::getAttackType()
- {
- return p_attackType;
- }
- int Weapon::getBaseDamage()
- {
- return p_baseDamage;
- }
- int Weapon::getMinLevel()
- {
- return p_minLevel;
- }
Add Comment
Please, Sign In to add comment