From e9e14360f7b5beb37155baf650d0c62c957d3c22 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 8 Nov 2024 10:31:15 +0800 Subject: [PATCH] fix room choicelist render --- forge-game/src/main/java/forge/game/card/CardView.java | 5 +++++ .../src/main/java/forge/trackable/TrackableProperty.java | 1 + forge-gui-mobile/src/forge/card/CardRenderer.java | 5 +---- forge-gui-mobile/src/forge/toolbox/FChoiceList.java | 8 ++++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index d93472e6a53..1f25f0380d2 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -169,6 +169,10 @@ public class CardView extends GameEntityView { return get(TrackableProperty.Modal); } + public boolean isRoom() { + return get(TrackableProperty.Room); + } + /* public boolean isTransformed() { return getCurrentState().getState() == CardStateName.Transformed; @@ -977,6 +981,7 @@ public class CardView extends GameEntityView { set(TrackableProperty.Adventure, c.isAdventureCard()); set(TrackableProperty.DoubleFaced, c.isDoubleFaced()); set(TrackableProperty.Modal, c.isModal()); + set(TrackableProperty.Room, c.isRoom()); //backside if (c.getAlternateState() != null) diff --git a/forge-game/src/main/java/forge/trackable/TrackableProperty.java b/forge-game/src/main/java/forge/trackable/TrackableProperty.java index 8176cff31b5..58481162c46 100644 --- a/forge-game/src/main/java/forge/trackable/TrackableProperty.java +++ b/forge-game/src/main/java/forge/trackable/TrackableProperty.java @@ -109,6 +109,7 @@ public enum TrackableProperty { AlternateState(TrackableTypes.CardStateViewType, FreezeMode.IgnoresFreeze), LeftSplitState(TrackableTypes.CardStateViewType, FreezeMode.IgnoresFreeze), RightSplitState(TrackableTypes.CardStateViewType, FreezeMode.IgnoresFreeze), + Room(TrackableTypes.BooleanType, FreezeMode.IgnoresFreeze), HiddenId(TrackableTypes.IntegerType), ExertedThisTurn(TrackableTypes.BooleanType), diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index 000d0391dff..193807f2c77 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -869,10 +869,7 @@ public class CardRenderer { float manaSymbolSize = w / 4.5f; if (card.isSplitCard() && card.hasAlternateState() && !card.isFaceDown() && card.getZone() != ZoneType.Stack && card.getZone() != ZoneType.Battlefield) { if (isChoiceList) { - if (card.getRightSplitState().getName().equals(details.getName())) - drawManaCost(g, card.getRightSplitState().getManaCost(), x - padding, y, w + 2 * padding, h, manaSymbolSize); - else - drawManaCost(g, card.getLeftSplitState().getManaCost(), x - padding, y, w + 2 * padding, h, manaSymbolSize); + drawManaCost(g, details.getManaCost(), x - padding, y, w + 2 * padding, h, manaSymbolSize); } else { ManaCost leftManaCost = card.getLeftSplitState().getManaCost(); ManaCost rightManaCost = card.getRightSplitState().getManaCost(); diff --git a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java index f487c5b0dcc..8bff61e4363 100644 --- a/forge-gui-mobile/src/forge/toolbox/FChoiceList.java +++ b/forge-gui-mobile/src/forge/toolbox/FChoiceList.java @@ -447,8 +447,12 @@ public class FChoiceList extends FList implements ActivateHandler { //special case if aftermath cards can be cast from graveyard like yawgmoths will, you will have choices if (cardView.getAlternateState().getOracleText().contains("Aftermath")) showAlt = cardView.getAlternateState().getOracleText().contains(value); - else - showAlt = value.equals(cardView.getAlternateState().getAbilityText()); + else { + if (cardView.isRoom()) // special case for room cards + showAlt = cardView.getAlternateState().getName().equalsIgnoreCase(value); + else + showAlt = value.equals(cardView.getAlternateState().getAbilityText()); + } } } return showAlt;