diff --git a/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java b/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java index e6283f7..6246856 100644 --- a/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java +++ b/src/main/java/it/polimi/ingsw/gc14/Model/OrderLogicCard.java @@ -27,6 +27,8 @@ public abstract class OrderLogicCard implements Serializable { */ public List playerList; + protected final int nPlayers; + /** * Creates an order logic card with the specified list of players. @@ -37,7 +39,7 @@ public abstract class OrderLogicCard implements Serializable { public OrderLogicCard(ArrayList players) { Collections.shuffle(players); this.players = new LinkedList<>(players); - + nPlayers = players.size(); this.playerList=new ArrayList<>(players.stream().map(x->new OrderPlayer(x,false)).toList()); } @@ -51,8 +53,7 @@ public abstract class OrderLogicCard implements Serializable { effect(player,players.size()); if(players.size()==0) { - playerList=new ArrayList<>(); - + playerList.clear(); } playerList.add(new OrderPlayer(player,false)); players.add(player); @@ -65,11 +66,6 @@ public abstract class OrderLogicCard implements Serializable { * @param player the player to be pushed into the queue. */ public void pushNoEffect(Player player){ - if(players.size()==0) - { - playerList=new ArrayList<>(); - - } players.removeIf(x->player.getUserName().equals(x.getUserName())); playerList.removeIf(x->player.getUserName().equals(x.player.getUserName())); playerList.add(new OrderPlayer(player,false)); diff --git a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java index 5f91a4a..ababc17 100644 --- a/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java +++ b/src/main/java/it/polimi/ingsw/gc14/View/GUI/MainFXMLController.java @@ -192,10 +192,13 @@ public class MainFXMLController { Player player = controller.miniModel.slotPlayerMap.get(slot); if (player != null && controller.miniModel.getPositionByUsername(player.getUserName()) != -1) { ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_" + player.totem.toString().toLowerCase(Locale.ROOT) + ".png")); - totem.setFitHeight(68); + totem.fitHeightProperty().bind(img.fitHeightProperty().multiply(0.332)); totem.setPreserveRatio(true); StackPane.setAlignment(totem, Pos.TOP_LEFT); - StackPane.setMargin(totem, new Insets(0, 0, 0, 46)); + StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * img.getFitHeight())); + img.fitHeightProperty().addListener((obs, ov, nv) -> { + StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * nv.doubleValue())); + }); wrapper.getChildren().add(totem); } @@ -498,14 +501,21 @@ public class MainFXMLController { final double yRatio = positions[i]; overlay.prefHeightProperty().bind(card.heightProperty()); overlay.prefWidthProperty().bind(card.widthProperty()); - // posizione X fissa, Y proporzionale - rect.setX(41); card.heightProperty().addListener((obs, ov, nv) -> { rect.setY(nv.doubleValue() * yRatio); + rect.setHeight(0.127*nv.doubleValue()); }); - if (card.getHeight() > 0) { + card.widthProperty().addListener((obs, ov, nv) -> { + rect.setX(nv.doubleValue() * 0.323); + rect.setWidth(0.375*nv.doubleValue()); + }); + if (card.getHeight() > 0 && card.getWidth() > 0) { rect.setY(card.getHeight() * yRatio); + rect.setHeight(0.127*yRatio); + + rect.setX(card.getHeight() * 0.323); + rect.setWidth(0.375*card.getHeight()); } overlay.getChildren().add(rect);