diff options
| author | polo <ordipolo@gmx.fr> | 2026-07-02 00:14:17 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2026-07-02 00:14:17 +0200 |
| commit | 0c2c3ee5a55f36d270171f2f67938542e251fdc5 (patch) | |
| tree | 8ea4d6a7ad09a5b1389b829980a7a5476982e754 /src/main/java/vue/simulation/SimFigurinesVBox.java | |
| download | ppe_javafx-0c2c3ee5a55f36d270171f2f67938542e251fdc5.tar.gz ppe_javafx-0c2c3ee5a55f36d270171f2f67938542e251fdc5.tar.bz2 ppe_javafx-0c2c3ee5a55f36d270171f2f67938542e251fdc5.zip | |
fork utilisant maven
Diffstat (limited to 'src/main/java/vue/simulation/SimFigurinesVBox.java')
| -rw-r--r-- | src/main/java/vue/simulation/SimFigurinesVBox.java | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/src/main/java/vue/simulation/SimFigurinesVBox.java b/src/main/java/vue/simulation/SimFigurinesVBox.java new file mode 100644 index 0000000..4940917 --- /dev/null +++ b/src/main/java/vue/simulation/SimFigurinesVBox.java | |||
| @@ -0,0 +1,139 @@ | |||
| 1 | package vue.simulation; | ||
| 2 | |||
| 3 | import java.util.ArrayList; | ||
| 4 | import java.util.HashMap; | ||
| 5 | |||
| 6 | import application.Battle; | ||
| 7 | import controlleur.ControlleurSimu; | ||
| 8 | import javafx.geometry.Insets; | ||
| 9 | import javafx.geometry.Pos; | ||
| 10 | import javafx.scene.control.Button; | ||
| 11 | import javafx.scene.control.Label; | ||
| 12 | import javafx.scene.control.Slider; | ||
| 13 | import javafx.scene.control.Spinner; | ||
| 14 | import javafx.scene.image.Image; | ||
| 15 | import javafx.scene.image.ImageView; | ||
| 16 | import javafx.scene.layout.HBox; | ||
| 17 | import javafx.scene.layout.FlowPane; | ||
| 18 | import javafx.scene.layout.VBox; | ||
| 19 | import modele.Figurine; | ||
| 20 | import modele.Unit; | ||
| 21 | |||
| 22 | public class SimFigurinesVBox extends VBox | ||
| 23 | { | ||
| 24 | private Unit unit; | ||
| 25 | private int column; | ||
| 26 | private ArrayList<SimAptAndWeaponsVBox> weapons_aptitudes_menu_view = new ArrayList<SimAptAndWeaponsVBox>(); | ||
| 27 | private boolean open = false; // les figurines sont cachées par défaut | ||
| 28 | |||
| 29 | public SimFigurinesVBox(int col, Unit unit){ | ||
| 30 | column = col; | ||
| 31 | this.unit = unit; | ||
| 32 | this.setStyle("-fx-padding: 2px;"); | ||
| 33 | } | ||
| 34 | |||
| 35 | public boolean isOpen(){ | ||
| 36 | return open; | ||
| 37 | } | ||
| 38 | public void changeState(){ | ||
| 39 | open ^= true; // inversion de bouléen avec un masque 00000001 | ||
| 40 | } | ||
| 41 | |||
| 42 | public void setFigurines() | ||
| 43 | { | ||
| 44 | /* -- boucle sur les groupes de figuriones -- */ | ||
| 45 | int i = 0; // valeurs des boutons numérotés | ||
| 46 | for(HashMap.Entry<String, ArrayList<Figurine>> entry : unit.getIdenticalFigsGroups().entrySet()) | ||
| 47 | { | ||
| 48 | FlowPane fig_group = new FlowPane(); | ||
| 49 | //fig_group.setStyle("-fx-background-color: rgb(220, 220, 220);"); | ||
| 50 | String fig_name = entry.getKey(); | ||
| 51 | ArrayList<Figurine> fig_list = entry.getValue(); | ||
| 52 | i++; | ||
| 53 | if(column == 1) | ||
| 54 | { | ||
| 55 | // boutons numérotés des groupes de figurines | ||
| 56 | Button number = new Button(Integer.toString(i)); | ||
| 57 | number.setAlignment(Pos.CENTER); | ||
| 58 | number.setMinHeight(25); | ||
| 59 | number.setMinWidth(25); | ||
| 60 | number.setStyle("-fx-text-fill: white; -fx-background-color: black;"); | ||
| 61 | fig_group.getChildren().add(number); | ||
| 62 | |||
| 63 | // zone des armes et aptitudes | ||
| 64 | SimAptAndWeaponsVBox weapons_aptitudes_menu = new SimAptAndWeaponsVBox(); | ||
| 65 | weapons_aptitudes_menu.setFigGroup(i, fig_name, fig_list.size()); | ||
| 66 | weapons_aptitudes_menu_view.add(weapons_aptitudes_menu); | ||
| 67 | |||
| 68 | number.setOnAction(e -> | ||
| 69 | { | ||
| 70 | ControlleurSimu.makeWeaponsAndAptitudeZone(fig_list, weapons_aptitudes_menu); | ||
| 71 | }); | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | Label fig_name_label = new Label(fig_name); | ||
| 75 | fig_name_label.setStyle("-fx-padding: 0 5px 0 0"); | ||
| 76 | fig_group.getChildren().add(fig_name_label); | ||
| 77 | |||
| 78 | Slider nb_of_defenders = new Slider(0, fig_list.size(), | ||
| 79 | Battle.getSelectedUnit(2).getAliveFigsOfAGroup(fig_name)); | ||
| 80 | nb_of_defenders.setMajorTickUnit(1); | ||
| 81 | nb_of_defenders.setMinorTickCount(0); | ||
| 82 | nb_of_defenders.setSnapToTicks(true); | ||
| 83 | //nb_of_attackers.setShowTickMarks(true); | ||
| 84 | nb_of_defenders.setShowTickLabels(true); | ||
| 85 | //nb_of_attackers.setBlockIncrement(1); | ||
| 86 | |||
| 87 | fig_group.getChildren().add(nb_of_defenders); | ||
| 88 | |||
| 89 | nb_of_defenders.valueProperty().addListener((observable, oldValue, newValue) -> { | ||
| 90 | ControlleurSimu.AliveFigsChoice(2, newValue.intValue(), fig_name); | ||
| 91 | }); | ||
| 92 | } | ||
| 93 | |||
| 94 | |||
| 95 | /* -- figurines d'un groupe -- */ | ||
| 96 | for(Figurine fig : fig_list) | ||
| 97 | { | ||
| 98 | HBox one_fig_box = new HBox(); | ||
| 99 | Image one_image; | ||
| 100 | if(fig.getHP() > 0) { | ||
| 101 | one_image = new Image("/images/android-fill.png"); | ||
| 102 | } | ||
| 103 | else { | ||
| 104 | one_image = new Image("/images/android-line.png"); | ||
| 105 | } | ||
| 106 | ImageView one_image_box = new ImageView(); | ||
| 107 | one_image_box.setPreserveRatio(true); | ||
| 108 | //one_image_box.setFitHeight(24); // appeler une des deux méthodes de dimensionnement | ||
| 109 | one_image_box.setFitWidth(24); | ||
| 110 | one_image_box.setImage(one_image); | ||
| 111 | one_fig_box.getChildren().add(one_image_box); | ||
| 112 | |||
| 113 | if(column == 1) { | ||
| 114 | Label hp_label = new Label(fig.getHP() + " PV "); | ||
| 115 | one_fig_box.getChildren().add(hp_label); | ||
| 116 | } | ||
| 117 | else { | ||
| 118 | Label hp_label = new Label("PV:"); | ||
| 119 | Spinner<Integer> spinner = new Spinner<>(0, fig.getHPMax(), fig.getHP()); | ||
| 120 | spinner.setMaxWidth(55); | ||
| 121 | one_fig_box.getChildren().add(hp_label); | ||
| 122 | one_fig_box.getChildren().add(spinner); | ||
| 123 | one_fig_box.setStyle("-fx-padding: 0 3px 0 0;"); | ||
| 124 | |||
| 125 | spinner.valueProperty().addListener((obs, oldValue, newValue) -> { | ||
| 126 | ControlleurSimu.hpUpdate(newValue, fig, one_image_box); | ||
| 127 | }); | ||
| 128 | } | ||
| 129 | |||
| 130 | SimFigurinesVBox.setMargin(one_fig_box, new Insets(5)); | ||
| 131 | fig_group.getChildren().add(one_fig_box); | ||
| 132 | } | ||
| 133 | SimFigurinesVBox.setMargin(fig_group, new Insets(3)); | ||
| 134 | |||
| 135 | this.getChildren().add(fig_group); | ||
| 136 | } | ||
| 137 | } | ||
| 138 | } | ||
| 139 | |||
