-
Notifications
You must be signed in to change notification settings - Fork 2
/
GameCharacter.java~
133 lines (118 loc) · 2.76 KB
/
GameCharacter.java~
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/**
* GameCharacter.java
* @author Emma Shumadine, Lily Orth-Smith, Rachel Zhang
* */
public class GameCharacter {
protected int currentHP;
protected int maxHP;
protected Weapon weapon;
protected String name;
/**
* Creates a new game character
* @param hp the maximum hp of the character
* @param w the weapon of the character
* @param n the name
* */
public GameCharacter(int hp, Weapon w, String n) {
maxHP = hp;
currentHP = maxHP;
weapon = w;
name = n;
}
/**
* Attacks the target with the weapon. Returns -1 if the attack misses, and the damage of the attack otherwise.
* @param target the target of the attack
* @return -1 if the attack misses, and the damage of the attack otherwise
* */
public int attack(GameCharacter target) {
int attackResult = weapon.use();
if(attackResult != -1) {
target.changeHP(-attackResult);
}
return attackResult;
}
/**
* Returns the maximum HP of the character
* @return the maximum hp
* */
public int getMaxHP() {
return maxHP;
}
/**
* Returns the current HP of the character
* @return the current hp
* */
public int getCurrentHP() {
return currentHP;
}
/**
* Returns the character's weapon
* @return the weapon
* */
public Weapon getWeapon() {
return weapon;
}
/**
* Returns the character's name
* @return the name
* */
public String getName() {
return name;
}
/**
* Sets the maximum HP of the character
* @param hp the maximum hp
* */
public void setMaxHP(int hp) {
maxHP = hp;
}
/**
* Changes the current HP of the character
* @param amount the amount to change the hp by
* */
public void changeHP(int amount) {
int total = currentHP + amount;
if(total > maxHP) {
currentHP = maxHP;
} else if (total < 0) {
currentHP = 0;
} else {
currentHP += amount;
}
}
/**
* Sets the current HP of the character
* @param hp the hp
* */
public void setHP(int hp) {
if(hp > maxHP) {
currentHP = maxHP;
} else {
currentHP = hp;
}
}
/**
* Clones the character
* @return a cloned version of the character
*/
public GameCharacter clone() {
return new GameCharacter(maxHP, weapon, name);
}
/**
* Sets the character's weapon
* @param w the weapon
* */
public void setWeapon(Weapon w) {
weapon = w;
}
/**
* Sets the character's name
* @param n the name
* */
public void setName(String n) {
name = n;
}
public String toString() {
return ("HP: " + currentHP + "/" + maxHP + " Weapon: " + weapon);
}
}