forked from HibaMallak/ex2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPlayer.cpp
More file actions
108 lines (92 loc) · 1.36 KB
/
Player.cpp
File metadata and controls
108 lines (92 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include "Player.h"
Player::Player(string name, int maxHP , int force):
m_name(name), m_level(1), m_force(force), m_maxHP(maxHP), m_HP(maxHP), m_coins(0)
{
if(maxHP < 0)
{
m_maxHP = 100;
m_HP = 100;
}
if(force < 0)
{
m_force = 5;
}
}
void Player::printInfo() const
{
printPlayerInfo(m_name.c_str(), m_level, m_force, m_HP, m_coins);
}
void Player::levelUp()
{
if(m_level == 10)
{
return;
}
m_level++;
}
int Player::getLevel() const
{
return m_level;
}
void Player::buff(int toBuff)
{
if(toBuff <= 0)
{
return;
}
m_force += toBuff;
}
void Player::heal(int hp)
{
if(hp <= 0)
{
return;
}
m_HP += hp;
if(m_HP > m_maxHP)
{
m_HP = m_maxHP;
}
}
void Player::damage(int damage)
{
if(damage <= 0)
{
return;
}
m_HP -= damage;
if(m_HP < 0)
{
m_HP = 0;
}
}
bool Player::isKnockedOut() const
{
return m_HP == 0;
}
void Player::addCoins(int coins)
{
if(coins < 0)
{
return;
}
m_coins += coins;
}
bool Player::pay(int coins)
{
if(coins < 0)
{
return true;
}
if(coins > m_coins)
{
return false;
}
m_coins -= coins;
return true;
}
int Player::getAttackStrength()const
{
return m_level + m_force;
}