Skip to content

Commit 52dd69a

Browse files
authored
Merge pull request #5 from CodingFactory-Repos/feature/menu
Feature/menu
2 parents b7f4a37 + fc8d19f commit 52dd69a

File tree

13 files changed

+552
-73
lines changed

13 files changed

+552
-73
lines changed

data/characters/Axel.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[Axel, Guerrier, 30.0, 400.0, 30.0, 10.0]

data/characters/Bapt.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[Bapt, Magicien, 30.0, 500.0, 5.0, 15.0]

data/characters/Default.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[Default, ParDefault, 20.0, 700.0, 45.0, 0.0]

data/characters/LeVoleur.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[LeVoleur, Voleurs, 20.0, 700.0, 40.0, 2.0]

data/characters/Louis.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[Louis, Magicien, 30.0, 400.0, 20.0, 100.0]

data/characters/Rui.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[Rui, Guerrier, 100.0, 100.0, 10.0, 10.0]

src/Characters.java

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
import java.util.*;
2+
3+
public class Characters extends GlobalFunctions {
4+
public void main() {
5+
if (listJson().size() == 0) {
6+
charactersCreate(null);
7+
} else {
8+
charactersList();
9+
}
10+
}
11+
12+
public void charactersList() {
13+
int returnId = 1;
14+
15+
showTitle("Mes%20Personnage");
16+
17+
System.out.println("Voici la liste de tous les personnages :");
18+
System.out.print("0: Créer un Personnage");
19+
for (int i = 0; i < listJson().size(); i++) {
20+
System.out.print(" - " + (i + 1) + ": " + listJson().get(i));
21+
returnId++;
22+
}
23+
24+
System.out.println(" - " + returnId + " Retour");
25+
System.out.println("Quel personnage voulez-vous sélectionner ?");
26+
System.out.print("> ");
27+
28+
int choice = scanner.nextInt();
29+
30+
if (choice == 0) {
31+
charactersCreate(null);
32+
} else if(returnId == choice) {
33+
showMenu();
34+
} else {
35+
if ((choice - 1) < listJson().size()) {
36+
characterSelected((String) listJson().get(choice - 1));
37+
} else {
38+
System.out.println("Vous avez sélectionné un personnage inexistant");
39+
}
40+
}
41+
}
42+
43+
public void characterSelected(String name) {
44+
45+
46+
showTitle(name);
47+
48+
System.out.println("Vous avez sélectionné " + name);
49+
50+
String temp = callJson(name);
51+
temp = temp.replace("[", "").replace("]", "");
52+
String[] stats = temp.split(", ");
53+
54+
System.out.println("");
55+
56+
System.out.println("Il appartient a la classe de " + stats[0]);
57+
System.out.println("Sa puissance d'attaque est de " + stats[1]);
58+
System.out.println("Sa vie est de " + stats[2]);
59+
System.out.println("Son initiative est de " + stats[3] + "\n");
60+
61+
String[] menuArray = { "Modifier", "Supprimer", "Retour" };
62+
63+
for (int i = 0; i < menuArray.length; i++) {
64+
System.out.println((i + 1) + ": " + menuArray[i]);
65+
}
66+
67+
System.out.print("> ");
68+
69+
switch (scanner.nextInt()) {
70+
case 1:
71+
characterModify(name);
72+
break;
73+
case 2:
74+
charactersDelete(name);
75+
break;
76+
case 3:
77+
charactersList();
78+
break;
79+
default:
80+
System.out.println("\n");
81+
System.out.println("Erreur");
82+
break;
83+
}
84+
}
85+
86+
public void characterModify(String name) {
87+
88+
89+
showTitle("Modifier%20" + name);
90+
91+
System.out.println("Vous allez modifier " + name);
92+
System.out.println("Êtes-vous sûr de vouloir continuer ?");
93+
System.out.println("1: Oui");
94+
System.out.println("2: Non");
95+
System.out.print("> ");
96+
97+
switch (scanner.nextInt()) {
98+
case 1:
99+
deleteJson(name);
100+
charactersCreate(name);
101+
break;
102+
case 2:
103+
characterSelected(name);
104+
break;
105+
default:
106+
System.out.println("\n");
107+
System.out.println("Erreur");
108+
break;
109+
}
110+
}
111+
112+
private void charactersCreate(String defineName) {
113+
String name;
114+
String className;
115+
Double attack;
116+
double health;
117+
double initiative;
118+
119+
System.out.println(defineName);
120+
121+
if (defineName == null) {
122+
showTitle("Créer%20un%20personnage");
123+
124+
System.out.println("Quel est le nom de votre personnage ?");
125+
System.out.print("> ");
126+
127+
scanner.nextLine();
128+
name = scanner.nextLine();
129+
} else {
130+
name = defineName;
131+
}
132+
133+
showTitle("Classes");
134+
System.out.println("Quel est classe de votre personnage ?");
135+
String[] classArrays = { "Guerrier", "Magicien", "Voleurs", "Par default" };
136+
for (int i = 0; i < classArrays.length; i++) {
137+
System.out.println((i + 1) + ": " + classArrays[i]);
138+
}
139+
System.out.print("> ");
140+
141+
className = classArrays[scanner.nextInt() - 1];
142+
143+
showTitle("L'attaque");
144+
System.out.println("Quel est la puissance d'attaque de votre personnage ?");
145+
System.out.print("> ");
146+
147+
attack = scanner.nextDouble();
148+
149+
showTitle("La%20Vie");
150+
System.out.println("Quel est la vie de votre personnage ?");
151+
System.out.print("> ");
152+
153+
health = scanner.nextDouble();
154+
155+
showTitle("L'initiative");
156+
System.out.println("Quel est l'initiative de votre personnage ?");
157+
System.out.print("> ");
158+
159+
initiative = scanner.nextDouble();
160+
161+
System.out.println(name + " " + className + " " + attack + " " + health + " " + initiative);
162+
163+
if (className == "Guerrier") {
164+
showTitle("Le%20bouclier");
165+
System.out.println("Quel est la puissance de protection du bouclier ?");
166+
System.out.print("> ");
167+
168+
createJson(name, className, attack, health, initiative, scanner.nextDouble());
169+
} else if(className == "Magicien"){
170+
showTitle("La%20Magie");
171+
System.out.println("Quel est le niveau de la magie de votre personnage ?");
172+
System.out.print("> ");
173+
174+
createJson(name, className, attack, health, initiative, scanner.nextDouble());
175+
} else if(className == "Voleurs"){
176+
showTitle("Le%20vol");
177+
System.out.println("Quel est le niveau d'esquive de votre personnage ?");
178+
System.out.print("> ");
179+
180+
createJson(name, className, attack, health, initiative, scanner.nextDouble());
181+
} else {
182+
createJson(name, className, attack, health, initiative, 0.0);
183+
}
184+
185+
charactersList();
186+
}
187+
188+
public void charactersDelete(String name) {
189+
190+
191+
showTitle("Supprimer%20" + name);
192+
193+
System.out.println("Vous allez supprimer " + name);
194+
System.out.println("Êtes-vous sûr de vouloir continuer ?");
195+
System.out.println("1: Oui");
196+
System.out.println("2: Non");
197+
System.out.print("> ");
198+
199+
switch (scanner.nextInt()) {
200+
case 1:
201+
deleteJson(name);
202+
charactersList();
203+
break;
204+
case 2:
205+
characterSelected(name);
206+
break;
207+
default:
208+
System.out.println("\n");
209+
System.out.println("Erreur");
210+
break;
211+
}
212+
}
213+
}

src/Fights.java

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
public class Fights extends GlobalFunctions {
2+
public Fights(String[] playerData1, String[] playerData2) {
3+
// Initialize
4+
showTitle("Play");
5+
6+
// Prepare Fight
7+
Player player1 = new Player(playerData1[0], playerData1[1], Double.parseDouble(playerData1[2]), Double.parseDouble(playerData1[3]), Double.parseDouble(playerData1[4]), Double.parseDouble(playerData1[5]));
8+
Player player2 = new Player(playerData2[0], playerData2[1], Double.parseDouble(playerData2[2]), Double.parseDouble(playerData2[3]), Double.parseDouble(playerData2[4]), Double.parseDouble(playerData2[5]));
9+
10+
// Fight
11+
startFight(player1, player2);
12+
}
13+
14+
private void startFight(Player player1, Player player2) {
15+
double playerTurns;
16+
String logs = "";
17+
18+
if(player1.getInitiative() > player2.getInitiative()){
19+
playerTurns = 0;
20+
} else {
21+
playerTurns = 1;
22+
}
23+
24+
boolean turns = true;
25+
26+
while(turns) {
27+
if (player1.getHealth() <= 0 || player2.getHealth() <= 0) {
28+
turns = false;
29+
showTitle(player1.getHealth() <= 0 ? player1.getName()+"%20est%20KO%20!" : player2.getName() + "%20est%20KO%20!");
30+
31+
System.out.println("Le combat est terminé en " + playerTurns + " tours, " + player1.getName() + " est a " + player1.getHealth() + " et le " + player2.getName() + " est a " + player2.getHealth());
32+
33+
System.out.println("1: Voir les logs - 2: Retour");
34+
35+
System.out.print("> ");
36+
scanner.nextLine();
37+
38+
switch (scanner.nextLine()) {
39+
case "1":
40+
System.out.println(logs);
41+
42+
System.out.println("Appuyez sur enter pour retourner au menu");
43+
44+
System.out.print("> ");
45+
scanner.nextLine();
46+
47+
showMenu();
48+
break;
49+
case "2":
50+
showMenu();
51+
break;
52+
default:
53+
break;
54+
}
55+
} else {
56+
double playerAttack;
57+
58+
if (Math.floor(playerTurns / 2) == (playerTurns / 2)) {
59+
playerAttack = player1.getAttack();
60+
61+
player2.damage(playerAttack);
62+
63+
if(player2.getHealth() <= 0){
64+
player2.setHealth(0);
65+
}
66+
67+
logs += "[Player 1 turn] " + player2.getName() + " 🥊 " + player1.getName() + " (-" + playerAttack + ")\n";
68+
logs += "[Player 1 turn] ♥ " + player2.getName() + ": " + player2.getHealth() + "\n\n";
69+
} else {
70+
playerAttack = player2.getAttack();
71+
72+
player1.damage(playerAttack);
73+
74+
if(player1.getHealth() <= 0){
75+
player1.setHealth(0);
76+
}
77+
78+
logs += "[Player 2 turn] " + player1.getName() + " 🥊 " + player2.getName() + " (-" + playerAttack + ")\n";
79+
logs += "[Player 2 turn] ♥ " + player1.getName() + ": " + player1.getHealth() + "\n\n";
80+
}
81+
82+
playerTurns++;
83+
}
84+
}
85+
}
86+
}

0 commit comments

Comments
 (0)