update desktop editor

This commit is contained in:
Anthony Calosa
2024-11-13 13:43:47 +08:00
parent 31abd61a3f
commit 8fd521b949
5 changed files with 27 additions and 1 deletions

View File

@@ -436,6 +436,9 @@ public class CardView extends GameEntityView {
public List<String> getChosenColorSpire() { public List<String> getChosenColorSpire() {
return get(TrackableProperty.ChosenColorSpire); return get(TrackableProperty.ChosenColorSpire);
} }
public void updateChosenColorSpire(List<String> chosen) {
set(TrackableProperty.ChosenColorSpire, chosen);
}
void updateChosenColorSpire(Card c) { void updateChosenColorSpire(Card c) {
set(TrackableProperty.ChosenColorSpire, c.getChosenColorSpire()); set(TrackableProperty.ChosenColorSpire, c.getChosenColorSpire());
} }

View File

@@ -30,6 +30,7 @@ import javax.swing.SwingUtilities;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.card.MagicColor;
import forge.deck.CardPool; import forge.deck.CardPool;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.DeckBase; import forge.deck.DeckBase;
@@ -65,6 +66,7 @@ import forge.toolbox.FLabel;
import forge.toolbox.FSkin; import forge.toolbox.FSkin;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.ItemPool; import forge.util.ItemPool;
import forge.util.Lang;
import forge.util.Localizer; import forge.util.Localizer;
import forge.view.FView; import forge.view.FView;
@@ -576,5 +578,23 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
InputEvent.SHIFT_DOWN_MASK | Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), InputEvent.SHIFT_DOWN_MASK | Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
InputEvent.ALT_DOWN_MASK | Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); InputEvent.ALT_DOWN_MASK | Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
} }
public void addSetColorSpire() {
String label = localizer.getMessage("lblColorIdentity");
CardManager cardManager = (CardManager) CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckManager();
PaperCard existingCard = cardManager.getSelectedItem();
if (!"Cryptic Spires".equalsIgnoreCase(existingCard.getCardName()))
return;
GuiUtils.addMenuItem(menu, label, null, () -> {
List<String> 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);
}
} }
} }

View File

@@ -375,6 +375,7 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
if (foilAvailable) { if (foilAvailable) {
cmb.addMakeFoils(); cmb.addMakeFoils();
} }
cmb.addSetColorSpire();
} }
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -69,6 +69,8 @@ public class CDetailPicture {
c.getCurrentState().setFoilIndexOverride(1); c.getCurrentState().setFoilIndexOverride(1);
} }
} }
if (paperCard.getSpireColors() != null && c.getChosenColorSpire() == null)
c.updateChosenColorSpire(paperCard.getSpireColors());
showCard(c, isDisplayAlt); showCard(c, isDisplayAlt);
} else { } else {
currentView = null; currentView = null;

View File

@@ -1154,7 +1154,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
} }
// spire colors // spire colors
if (!spireColor.isEmpty()) { 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) { } else if (item instanceof ConquestCommander) {
CardRenderer.drawCard(g, ((ConquestCommander) item).getCard(), x, y, w, h, pos); CardRenderer.drawCard(g, ((ConquestCommander) item).getCard(), x, y, w, h, pos);