-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGameEngine.java
More file actions
114 lines (89 loc) · 3.86 KB
/
Copy pathGameEngine.java
File metadata and controls
114 lines (89 loc) · 3.86 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
106
107
108
109
110
111
112
113
114
import java.util.*;
import java.io.*;
/**
* Gère le chargement des Racess et personnages dans le jeu.
*/
public class GameEngine {
private List<Races> Racess;
private Races aRaces;
private List<Character> allCharacters;
private List<Character> characters ;
private Main aMain = new Main();
public GameEngine() {
Racess = new ArrayList<>();
allCharacters = new ArrayList<>();
characters = new ArrayList<>();
// === Chargement des Racess ===
loadOnlyRacesLeaders();
}
/** Retourne la liste de tous les personnages du jeu */
public List<Character> getCharacters() {
return allCharacters;
}
/** Retourne la liste des Racess */
public List<Races> getRacess() {
return Racess;
}
private void loadRacess() {
// 💡 Retire complètement le "./"
File basePath = new File("units_factions_full");
if (!basePath.exists()) {
System.err.println("❌ Dossier introuvable : " + basePath.getAbsolutePath());
return;
}
// === Racess ===
Races elfes = new Races("Elfes", "Elfes", true);
Races goblins = new Races("Goblins_Orcs_Trolls", "Goblins_Orcs_Trolls", true);
Races undead = new Races("Morts_vivants", "Morts_vivants", true);
Races nains = new Races("Nains", "Nains", true);
// === Chargement depuis le bon chemin ===
elfes.loadCharactersFromFolder(new File(basePath, elfes.getName()));
goblins.loadCharactersFromFolder(new File(basePath, goblins.getName()));
undead.loadCharactersFromFolder(new File(basePath, undead.getName()));
nains.loadCharactersFromFolder(new File(basePath, undead.getName()));
Racess.add(elfes);
Racess.add(goblins);
Racess.add(undead);
Racess.add(nains);
// Combine toutes les unités
for (Races f : Racess) {
allCharacters.addAll(f.getCharacters());
}
System.out.println("✅ " + allCharacters.size() + " personnages chargés avec succès !");
}
private void loadOnlyRacesLeaders() {
File baseFolder = new File("units_factions_full");
if (!baseFolder.exists()) {
System.err.println("⚠️ Dossier 'units_factions_full' introuvable !");
return;
}
// === Coordonnées fixes ===
Map<String, int[]> leaderPositions = new HashMap<>();
leaderPositions.put("elfes", new int[]{350, 120});
leaderPositions.put("nains", new int[]{180, 400});
leaderPositions.put("morts_vivants", new int[]{600, 300});
leaderPositions.put("goblins_orcs_trolls", new int[]{820, 500});
System.out.println("✅ Chargement des chefs en cours...");
for (File RacesFolder : baseFolder.listFiles()) {
if (!RacesFolder.isDirectory()) continue;
String RacesName = RacesFolder.getName().toLowerCase();
if (!leaderPositions.containsKey(RacesName)) continue; // ignore les autres Racess
// Charge les personnages de la Races
Races Races = new Races(RacesName, RacesName, false);
Races.loadCharactersFromFolder(RacesFolder);
// Recherche du chef
for (Character c : Races.getCharacters()) {
if (c.isChef()) {
int[] pos = leaderPositions.get(RacesName);
c.setX(pos[0]);
c.setY(pos[1]);
// ✅ ajout direct sur la carte
aMain.aChefScreen.aGamePanel.characters.add(c);
System.out.println("✔ Chef ajouté : " + c.getCharacterName() + " (" + RacesName + ")");
break; // un seul chef par Races
}
}
}
System.out.println("✅ Tous les chefs ont été ajoutés sur la carte !");
}
}