From 0c2c3ee5a55f36d270171f2f67938542e251fdc5 Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 2 Jul 2026 00:14:17 +0200 Subject: fork utilisant maven --- .../java/vue/simulation/SimAptAndWeaponsVBox.java | 130 +++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 src/main/java/vue/simulation/SimAptAndWeaponsVBox.java (limited to 'src/main/java/vue/simulation/SimAptAndWeaponsVBox.java') 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 @@ +package vue.simulation; + +import java.util.ArrayList; + +import application.Battle; +import controlleur.ControlleurSimu; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.CheckBox; +import javafx.scene.control.ChoiceBox; +import javafx.scene.control.Label; +import javafx.scene.control.Slider; +import javafx.scene.layout.HBox; +import javafx.scene.layout.FlowPane; +import javafx.scene.layout.VBox; +import modele.Aptitude; +import modele.Arme; +import modele.Figurine; + +public class SimAptAndWeaponsVBox extends VBox +{ + private int group_number; + private String group_name; + int group_size; + String[] weapon_names; + String[] aptitude_names; + + //public SimAptAndWeaponsVBox(){} + + // setters + public void setFigGroup(int fig_group_number, String fig_group_name, int fig_group_size){ + group_number = fig_group_number; + group_name = fig_group_name; + group_size = fig_group_size; + } + public void setArmes(ArrayList weapon_list){ + weapon_names = new String[weapon_list.size()]; + for(int i = 0; i < weapon_list.size(); i++) { + weapon_names[i] = weapon_list.get(i).getNom(); + } + } + public void setAptitudes(ArrayList aptitude_list){ + aptitude_names = new String[aptitude_list.size()]; + for(int i = 0; i < aptitude_list.size(); i++) { + aptitude_names[i] = aptitude_list.get(i).getName(); + } + } + + public void setAptAndWeapons(ArrayList fig_group) + { + /* -- ligne 1: numéro du group et nom figurine -- */ + HBox first_row = new HBox(); + + // numéro du group de figurines identiques + Label number = new Label(Integer.toString(group_number)); + number.setAlignment(Pos.CENTER); + number.setMinHeight(25); + number.setMinWidth(25); + number.setStyle("-fx-text-fill: white; -fx-background-color: black; -fx-background-radius: 4;"); + HBox.setMargin(number, new Insets(0, 2, 2, 0)); + + Label figurine_name = new Label(group_name); + first_row.getChildren().addAll(number, figurine_name); + + + /* -- ligne 2: menu déroulant choix de l'arme -- */ + ChoiceBox select_weapon = new ChoiceBox(); + + // sécurité + for(int i = 0; i < weapon_names.length; i++) + { + select_weapon.getItems().add(weapon_names[i]); + } + + // valeur initiale menu déroulante + Arme weapon = Battle.getSeletedWeapon(1, group_name); + if(weapon != null) { + select_weapon.setValue(weapon.getNom()); + } + else { + select_weapon.setValue(weapon_names[0]); + } + // caractéristiques + FlowPane weapon_stats = new FlowPane(); + setWeaponStats(weapon, weapon_stats); + + select_weapon.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { + ControlleurSimu.selectAWeapon(this, newValue, fig_group, weapon_stats); + }); + + // choix du nombre d'attaquants (= nombre d'armes) + Slider nb_of_attackers = new Slider(0, group_size, Battle.getSelectedUnit(1).getAliveFigsOfAGroup(group_name)); + nb_of_attackers.setMajorTickUnit(1); + nb_of_attackers.setMinorTickCount(0); + nb_of_attackers.setSnapToTicks(true); + //nb_of_attackers.setShowTickMarks(true); + nb_of_attackers.setShowTickLabels(true); + //nb_of_attackers.setBlockIncrement(1); + + nb_of_attackers.valueProperty().addListener((observable, oldValue, newValue) -> { + ControlleurSimu.AliveFigsChoice(1, newValue.intValue(), group_name); + }); + + // checkbox + FlowPane aptitudes = new FlowPane(); + for(int i = 0; i < aptitude_names.length; i++) + { + CheckBox one_aptitude = new CheckBox(aptitude_names[i]); + one_aptitude.setStyle("-fx-padding: 2px;"); + aptitudes.getChildren().add(one_aptitude); + + one_aptitude.setOnAction(e -> { + ControlleurSimu.checkOrUncheckAnAptitude(one_aptitude.isSelected(), one_aptitude.getText(), fig_group); + }); + } + + this.getChildren().addAll(first_row, select_weapon, weapon_stats, nb_of_attackers, aptitudes); + } + + public void setWeaponStats(Arme weapon, FlowPane weapon_stats) { + weapon_stats.setStyle("-fx-padding: 3px;"); + Label A = new Label("A " + weapon.getA() + " | "); + Label F = new Label("F " + weapon.getF() + " | "); + Label PA = new Label("PA " + weapon.getPA() + " | "); + Label D = new Label("D " + weapon.getD() + " | "); + Label portee = new Label("portée " + weapon.getPortee()); + weapon_stats.getChildren().addAll(A, F, PA, D, portee); + } +} + -- cgit v1.2.3