This repository was archived by the owner on Dec 20, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCharacter.java
More file actions
73 lines (62 loc) · 1.58 KB
/
Character.java
File metadata and controls
73 lines (62 loc) · 1.58 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
import java.util.ArrayList;
import java.util.List;
public abstract class Character {
private String name;
protected int health;
/**
* List of all weapons this character possesses.
*/
List<Weapon> weapons;
private int equippedWeapon;
public Character(String name) {
this.name = name;
this.health = 100;
// empty arsenal
weapons = new ArrayList<>();
// no weapon to equip yet
equippedWeapon = -1;
}
public String getName() {
return this.name;
}
public int getHealth() {
return this.health;
}
public boolean isAlive() {
return this.health > 0;
}
/**
* Prints out a description of this character
*/
public abstract void describeSelf();
/**
* Adds a weapon to the Character's arsenal
*/
public void addWeapon(Weapon newWeapon) {
weapons.add(newWeapon);
if (weapons.size() == 1) {
setEquippedWeapon(0);
}
}
/**
* Gets the equipped weapon of this Character
*/
public Weapon getEquippedWeapon() {
if (equippedWeapon == -1) {
return null;
}
return weapons.get(equippedWeapon);
}
/**
* Set the equipped weapon of this Character
*/
protected void setEquippedWeapon(int equippedIndex) {
equippedWeapon = equippedIndex;
}
/**
* Finds a target for the Character to attack
*/
public int pickTarget(List<Character> potentialTargets) {
return (int) (Math.random() * potentialTargets.size());
}
}