summaryrefslogtreecommitdiff
path: root/src/main/java/vue/simulation/SimAptAndWeaponsVBox.java
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2026-07-02 00:14:17 +0200
committerpolo <ordipolo@gmx.fr>2026-07-02 00:14:17 +0200
commit0c2c3ee5a55f36d270171f2f67938542e251fdc5 (patch)
tree8ea4d6a7ad09a5b1389b829980a7a5476982e754 /src/main/java/vue/simulation/SimAptAndWeaponsVBox.java
downloadppe_javafx-0c2c3ee5a55f36d270171f2f67938542e251fdc5.tar.gz
ppe_javafx-0c2c3ee5a55f36d270171f2f67938542e251fdc5.tar.bz2
ppe_javafx-0c2c3ee5a55f36d270171f2f67938542e251fdc5.zip
fork utilisant maven
Diffstat (limited to 'src/main/java/vue/simulation/SimAptAndWeaponsVBox.java')
-rw-r--r--src/main/java/vue/simulation/SimAptAndWeaponsVBox.java130
1 files changed, 130 insertions, 0 deletions
diff --git a/src/main/java/vue/simulation/SimAptAndWeaponsVBox.java b/src/main/java/vue/simulation/SimAptAndWeaponsVBox.java
new file mode 100644
index 0000000..5014b59
--- /dev/null
+++ b/src/main/java/vue/simulation/SimAptAndWeaponsVBox.java
@@ -0,0 +1,130 @@
1package vue.simulation;
2
3import java.util.ArrayList;
4
5import application.Battle;
6import controlleur.ControlleurSimu;
7import javafx.geometry.Insets;
8import javafx.geometry.Pos;
9import javafx.scene.control.CheckBox;
10import javafx.scene.control.ChoiceBox;
11import javafx.scene.control.Label;
12import javafx.scene.control.Slider;
13import javafx.scene.layout.HBox;
14import javafx.scene.layout.FlowPane;
15import javafx.scene.layout.VBox;
16import modele.Aptitude;
17import modele.Arme;
18import modele.Figurine;
19
20public class SimAptAndWeaponsVBox extends VBox
21{
22 private int group_number;
23 private String group_name;
24 int group_size;
25 String[] weapon_names;
26 String[] aptitude_names;
27
28 //public SimAptAndWeaponsVBox(){}
29
30 // setters
31 public void setFigGroup(int fig_group_number, String fig_group_name, int fig_group_size){
32 group_number = fig_group_number;
33 group_name = fig_group_name;
34 group_size = fig_group_size;
35 }
36 public void setArmes(ArrayList<Arme> weapon_list){
37 weapon_names = new String[weapon_list.size()];
38 for(int i = 0; i < weapon_list.size(); i++) {
39 weapon_names[i] = weapon_list.get(i).getNom();
40 }
41 }
42 public void setAptitudes(ArrayList<Aptitude> aptitude_list){
43 aptitude_names = new String[aptitude_list.size()];
44 for(int i = 0; i < aptitude_list.size(); i++) {
45 aptitude_names[i] = aptitude_list.get(i).getName();
46 }
47 }
48
49 public void setAptAndWeapons(ArrayList<Figurine> fig_group)
50 {
51 /* -- ligne 1: numéro du group et nom figurine -- */
52 HBox first_row = new HBox();
53
54 // numéro du group de figurines identiques
55 Label number = new Label(Integer.toString(group_number));
56 number.setAlignment(Pos.CENTER);
57 number.setMinHeight(25);
58 number.setMinWidth(25);
59 number.setStyle("-fx-text-fill: white; -fx-background-color: black; -fx-background-radius: 4;");
60 HBox.setMargin(number, new Insets(0, 2, 2, 0));
61
62 Label figurine_name = new Label(group_name);
63 first_row.getChildren().addAll(number, figurine_name);
64
65
66 /* -- ligne 2: menu déroulant choix de l'arme -- */
67 ChoiceBox<String> select_weapon = new ChoiceBox<String>();
68
69 // sécurité
70 for(int i = 0; i < weapon_names.length; i++)
71 {
72 select_weapon.getItems().add(weapon_names[i]);
73 }
74
75 // valeur initiale menu déroulante
76 Arme weapon = Battle.getSeletedWeapon(1, group_name);
77 if(weapon != null) {
78 select_weapon.setValue(weapon.getNom());
79 }
80 else {
81 select_weapon.setValue(weapon_names[0]);
82 }
83 // caractéristiques
84 FlowPane weapon_stats = new FlowPane();
85 setWeaponStats(weapon, weapon_stats);
86
87 select_weapon.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
88 ControlleurSimu.selectAWeapon(this, newValue, fig_group, weapon_stats);
89 });
90
91 // choix du nombre d'attaquants (= nombre d'armes)
92 Slider nb_of_attackers = new Slider(0, group_size, Battle.getSelectedUnit(1).getAliveFigsOfAGroup(group_name));
93 nb_of_attackers.setMajorTickUnit(1);
94 nb_of_attackers.setMinorTickCount(0);
95 nb_of_attackers.setSnapToTicks(true);
96 //nb_of_attackers.setShowTickMarks(true);
97 nb_of_attackers.setShowTickLabels(true);
98 //nb_of_attackers.setBlockIncrement(1);
99
100 nb_of_attackers.valueProperty().addListener((observable, oldValue, newValue) -> {
101 ControlleurSimu.AliveFigsChoice(1, newValue.intValue(), group_name);
102 });
103
104 // checkbox
105 FlowPane aptitudes = new FlowPane();
106 for(int i = 0; i < aptitude_names.length; i++)
107 {
108 CheckBox one_aptitude = new CheckBox(aptitude_names[i]);
109 one_aptitude.setStyle("-fx-padding: 2px;");
110 aptitudes.getChildren().add(one_aptitude);
111
112 one_aptitude.setOnAction(e -> {
113 ControlleurSimu.checkOrUncheckAnAptitude(one_aptitude.isSelected(), one_aptitude.getText(), fig_group);
114 });
115 }
116
117 this.getChildren().addAll(first_row, select_weapon, weapon_stats, nb_of_attackers, aptitudes);
118 }
119
120 public void setWeaponStats(Arme weapon, FlowPane weapon_stats) {
121 weapon_stats.setStyle("-fx-padding: 3px;");
122 Label A = new Label("A " + weapon.getA() + " | ");
123 Label F = new Label("F " + weapon.getF() + " | ");
124 Label PA = new Label("PA " + weapon.getPA() + " | ");
125 Label D = new Label("D " + weapon.getD() + " | ");
126 Label portee = new Label("portée " + weapon.getPortee());
127 weapon_stats.getChildren().addAll(A, F, PA, D, portee);
128 }
129}
130