Merge pull request #113

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:23:19 +02:00
committed by GitHub
2 changed files with 19 additions and 13 deletions
@@ -27,6 +27,8 @@ public abstract class OrderLogicCard implements Serializable {
*/
public List<OrderPlayer> 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<Player> 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));
@@ -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);