-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHumanPlayer.java
More file actions
91 lines (85 loc) · 3.42 KB
/
HumanPlayer.java
File metadata and controls
91 lines (85 loc) · 3.42 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
import java.awt.*;
public class HumanPlayer extends Player {
private Territory attacker;
/*** Constructor ***/
public HumanPlayer(int i, String s, Color c) {super(i, s, c);}
/*** Making moves ***/
public void selectTerritory() {}
public void placeInitialReinforcements(){
if(BoardState.BOARD.clicked != null && BoardState.BOARD.clicked.getOccupation() == this){
BoardState.BOARD.clicked.occupy(BoardState.BOARD.clicked.getOccupation(), BoardState.BOARD.clicked.getTroops() + 1);
BoardState.BOARD.clicked.paint(BoardState.BOARD.getGraphics());
BoardState.nxtTurn();
BoardState.BOARD.paintControls(BoardState.BOARD.getGraphics());
BoardState.BOARD.clicked = null;
if(BoardState.phase == BoardState.INITIAL_REINF)
BoardState.pTurn().placeInitialReinforcements();
else
BoardState.pTurn().placeReinforcements();
}
}
public void placeReinforcements() {
if(BoardState.BOARD.clicked != null && BoardState.BOARD.clicked.getOccupation() == this){
BoardState.BOARD.clicked.occupy(BoardState.BOARD.clicked.getOccupation(), BoardState.BOARD.clicked.getTroops() + 1);
BoardState.BOARD.clicked.paint(BoardState.BOARD.getGraphics());
BoardState.reinf--;
if(BoardState.reinf == 0)
BoardState.phase = BoardState.ATTACK;
BoardState.BOARD.paintControls(BoardState.BOARD.getGraphics());
BoardState.BOARD.clicked = null;
}
}
public void makeAttacks() {
if(attacker == null){
if(BoardState.BOARD.clicked != null && BoardState.BOARD.clicked.getOccupation() == this && BoardState.BOARD.clicked.getTroops() > 1){
attacker = BoardState.BOARD.clicked;
attacker.setColor(Territory.ATTACK_COL);
attacker.lock();
}
}
else{
if(BoardState.BOARD.clicked == attacker){
attacker.unlock();
attacker.setColor(Territory.BASE_COL);
attacker = null;
}
if(BoardState.BOARD.clicked != null && BoardState.BOARD.clicked.getOccupation() != this && BoardState.BOARD.clicked.isAdjacent(attacker)){
attacker.unlock();
attacker.setColor(Territory.BASE_COL);
BoardState.BOARD.getInfoDisplay().setText("");
BoardState.BOARD.clicked.setColor(Territory.BASE_COL);
BoardState.BOARD.setAttackMenu(new AttackMenu(attacker, BoardState.BOARD.clicked));
attacker = null;
}
}
}
public void troopPrompt(int d){
if(BoardState.BOARD.getAttackMenu() != null)
BoardState.BOARD.setMoveMenu(new MoveMenu(BoardState.BOARD.getAttackMenu().attacker, BoardState.BOARD.getAttackMenu().defender, d));
}
public void maneuvers() {
if(attacker == null){
if(BoardState.BOARD.clicked != null && BoardState.BOARD.clicked.getOccupation() == this && BoardState.BOARD.clicked.getTroops() > 1){
attacker = BoardState.BOARD.clicked;
attacker.setColor(Territory.ATTACK_COL);
attacker.lock();
}
}
else{
if(BoardState.BOARD.clicked == attacker){
attacker.unlock();
attacker.setColor(Territory.BASE_COL);
attacker = null;
}
else if(BoardState.BOARD.clicked != null && BoardState.BOARD.clicked.getOccupation() == this && BoardState.BOARD.clicked.canReach(attacker)){
attacker.unlock();
attacker.setColor(Territory.BASE_COL);
BoardState.BOARD.getInfoDisplay().setText("");
BoardState.BOARD.clicked.setColor(Territory.BASE_COL);
BoardState.BOARD.setMoveMenu(new MoveMenu(attacker, BoardState.BOARD.clicked, 0));
attacker = null;
}
}
}
public void turnInCards() {}
}