Fix:"Dynamic dimension board line"-> now height can be fissed at any value. Order playerList fixed , now pushNoEffect doesn't clear playerList

This commit is contained in:
rubenpirreram
2026-05-19 23:22:51 +02:00
parent 1d254b881c
commit 623a22a0e4
2 changed files with 19 additions and 13 deletions
@@ -27,6 +27,8 @@ public abstract class OrderLogicCard implements Serializable {
*/ */
public List<OrderPlayer> playerList; public List<OrderPlayer> playerList;
protected final int nPlayers;
/** /**
* Creates an order logic card with the specified list of players. * Creates an order logic card with the specified list of players.
@@ -37,7 +39,7 @@ public abstract class OrderLogicCard implements Serializable {
public OrderLogicCard(ArrayList<Player> players) { public OrderLogicCard(ArrayList<Player> players) {
Collections.shuffle(players); Collections.shuffle(players);
this.players = new LinkedList<>(players); this.players = new LinkedList<>(players);
nPlayers = players.size();
this.playerList=new ArrayList<>(players.stream().map(x->new OrderPlayer(x,false)).toList()); 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()); effect(player,players.size());
if(players.size()==0) if(players.size()==0)
{ {
playerList=new ArrayList<>(); playerList.clear();
} }
playerList.add(new OrderPlayer(player,false)); playerList.add(new OrderPlayer(player,false));
players.add(player); players.add(player);
@@ -65,11 +66,6 @@ public abstract class OrderLogicCard implements Serializable {
* @param player the player to be pushed into the queue. * @param player the player to be pushed into the queue.
*/ */
public void pushNoEffect(Player player){ public void pushNoEffect(Player player){
if(players.size()==0)
{
playerList=new ArrayList<>();
}
players.removeIf(x->player.getUserName().equals(x.getUserName())); players.removeIf(x->player.getUserName().equals(x.getUserName()));
playerList.removeIf(x->player.getUserName().equals(x.player.getUserName())); playerList.removeIf(x->player.getUserName().equals(x.player.getUserName()));
playerList.add(new OrderPlayer(player,false)); playerList.add(new OrderPlayer(player,false));
@@ -192,10 +192,13 @@ public class MainFXMLController {
Player player = controller.miniModel.slotPlayerMap.get(slot); Player player = controller.miniModel.slotPlayerMap.get(slot);
if (player != null && controller.miniModel.getPositionByUsername(player.getUserName()) != -1) { if (player != null && controller.miniModel.getPositionByUsername(player.getUserName()) != -1) {
ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_" + player.totem.toString().toLowerCase(Locale.ROOT) + ".png")); 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); totem.setPreserveRatio(true);
StackPane.setAlignment(totem, Pos.TOP_LEFT); 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); wrapper.getChildren().add(totem);
} }
@@ -498,14 +501,21 @@ public class MainFXMLController {
final double yRatio = positions[i]; final double yRatio = positions[i];
overlay.prefHeightProperty().bind(card.heightProperty()); overlay.prefHeightProperty().bind(card.heightProperty());
overlay.prefWidthProperty().bind(card.widthProperty()); overlay.prefWidthProperty().bind(card.widthProperty());
// posizione X fissa, Y proporzionale // posizione X fissa, Y proporzionale
rect.setX(41);
card.heightProperty().addListener((obs, ov, nv) -> { card.heightProperty().addListener((obs, ov, nv) -> {
rect.setY(nv.doubleValue() * yRatio); 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.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); overlay.getChildren().add(rect);