From 8fd521b949f3f67b19e68eb34908f1d7355cdbab Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 13 Nov 2024 13:43:47 +0800 Subject: [PATCH] update desktop editor --- .../main/java/forge/game/card/CardView.java | 3 +++ .../deckeditor/controllers/ACEditorBase.java | 20 +++++++++++++++++++ .../controllers/CEditorConstructed.java | 1 + .../match/controllers/CDetailPicture.java | 2 ++ .../forge/itemmanager/views/ImageView.java | 2 +- 5 files changed, 27 insertions(+), 1 deletion(-) 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 9325bbd2896..c7b741590db 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -436,6 +436,9 @@ public class CardView extends GameEntityView { public List getChosenColorSpire() { return get(TrackableProperty.ChosenColorSpire); } + public void updateChosenColorSpire(List chosen) { + set(TrackableProperty.ChosenColorSpire, chosen); + } void updateChosenColorSpire(Card c) { set(TrackableProperty.ChosenColorSpire, c.getChosenColorSpire()); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java index 6c5dbc3dc0d..49ce9bb32e4 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java @@ -30,6 +30,7 @@ import javax.swing.SwingUtilities; import com.google.common.collect.Iterables; +import forge.card.MagicColor; import forge.deck.CardPool; import forge.deck.Deck; import forge.deck.DeckBase; @@ -65,6 +66,7 @@ import forge.toolbox.FLabel; import forge.toolbox.FSkin; import forge.util.Aggregates; import forge.util.ItemPool; +import forge.util.Lang; import forge.util.Localizer; import forge.view.FView; @@ -576,5 +578,23 @@ public abstract class ACEditorBase { + List colors = GuiChoose.getChoices(localizer.getMessage("lblChooseNColors", Lang.getNumeral(2)), 2, 2, MagicColor.Constant.ONLY_COLORS); + // make a foiled version based on the original + PaperCard updated = existingCard.getSpireVersion(colors); + // remove *quantity* instances of existing card + CDeckEditorUI.SINGLETON_INSTANCE.removeSelectedCards(false, 1); + // add *quantity* into the deck and set them as selected + cardManager.addItem(updated, 1); + cardManager.setSelectedItem(updated); + }, true, true); + } } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorConstructed.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorConstructed.java index be000243440..8d5c7080d04 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorConstructed.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorConstructed.java @@ -375,6 +375,7 @@ public final class CEditorConstructed extends CDeckEditor { if (foilAvailable) { cmb.addMakeFoils(); } + cmb.addSetColorSpire(); } /* (non-Javadoc) diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDetailPicture.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDetailPicture.java index a2619254602..46bebcab791 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDetailPicture.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CDetailPicture.java @@ -69,6 +69,8 @@ public class CDetailPicture { c.getCurrentState().setFoilIndexOverride(1); } } + if (paperCard.getSpireColors() != null && c.getChosenColorSpire() == null) + c.updateChosenColorSpire(paperCard.getSpireColors()); showCard(c, isDisplayAlt); } else { currentView = null; diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 47f5ca39ed1..3d67741fc40 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -1154,7 +1154,7 @@ public class ImageView extends ItemView { } // spire colors if (!spireColor.isEmpty()) { - textRenderer.drawText(g, spireColor.toString(), FSkinFont.forHeight(w / 5), Color.WHITE, x, y, w, h, y, h, false, Align.center, true); + textRenderer.drawText(g, spireColor.toString(), FSkinFont.forHeight(w / 5), Color.WHITE, x, y + h / 4, w, h, y, h, false, Align.center, true); } } else if (item instanceof ConquestCommander) { CardRenderer.drawCard(g, ((ConquestCommander) item).getCard(), x, y, w, h, pos);