-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHackerGame.java
More file actions
105 lines (85 loc) · 3 KB
/
HackerGame.java
File metadata and controls
105 lines (85 loc) · 3 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
import java.util.*;
public class HackerGame {
// Hauptklasse des Spiels mit dem das Spiel auch gestartet wird
private static Charakter charakterSpiel; // der Charakter, mit dem gespielt wird
private static boolean charakterAusgewaehlt = false; // #playwithme
private static AbstractGui guiCharAusw;
private static AbstractGui guiHub;
private static AbstractGui guiBasis;
public static void main(String[] args) {
// die Charaktere laden
List<Charakter> defaultChars = new CharakterLader(false).getCharaktere();
List<Charakter> saveChars = new CharakterLader(true).getCharaktere();
// hier ist die Charakter Auswahl GUI aktiv
guiCharAusw = new GuiCharAusw(defaultChars, saveChars);
guiCharAusw.setVisible(true);
warten(guiCharAusw);
guiCharAusw.guiAusblenden();
charakterSpiel = ((GuiCharAusw) guiCharAusw).getCharakterAuswahl();
charakterAusgewaehlt = true;
while(true) {
// hier ist die Hub Gui aktiv
guiHub = new GuiHub(new MissionLader(charakterSpiel.getAbgeschMissionen()).getMissionen());
guiHub.initialisieren(charakterSpiel);
guiHub.setVisible(true);
warten(guiHub);
guiHub.guiAusblenden();
if(((GuiHub) guiHub).zuBasis()) {
// Basis
guiBasis = new GuiBasis(charakterSpiel);
guiBasis.initialisieren();
guiBasis.setVisible(true);
warten(guiBasis);
guiBasis.guiAusblenden();
charakterSpiel = ((GuiBasis) guiBasis).getChar();
continue;
}
Mission missionAuswahl = ((GuiHub) guiHub).getAusgewaehlteMission();
MissionPlayer missionLauncher = new MissionPlayer(missionAuswahl);
missionLauncher.starten(charakterSpiel.getMoney());
while(missionLauncher.isFertig() == false) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(missionLauncher.isFail()) {
charakterSpiel.missionFehlschlag(missionAuswahl);
} else {
charakterSpiel.missionErfolg(missionAuswahl);
}
missionLauncher.beenden();
speichern();
}
}
private static void speichern() {
if(charakterAusgewaehlt == true) {
// sobald der Spieler einen Charakter ausgewählt hat, kann auch etwas
// gespeichert werden.
class TmpSaver extends AbstractLader {}; // der AbstractLader wird hier
// ein bisschen missbraucht...
new TmpSaver().saveProp("savegames", charakterSpiel.getProp());
}
}
private static void warten(AbstractGui gui) {
// Das GUI-System funktioniert so, dass wenn ein Fenster
// nicht mehr sichtbar ist, angenommen wird, dass es seine
// Aufgabe erfüllt hat ODER es beendet wurde.
// Warte, bis das Fenster nicht mehr sichtbar ist.
while(gui.isVisible() == true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
};
if(gui.terminiert == true) {
// Wenn das Fenster mit Hilfe des roten X geschlossen wurde,
// ist das Attribut "terminiert" gesetzt und das Programm
// wird beendet (vorher wird gespeichert).
speichern();
System.exit(0);
}
}
}