From 3b4e3156fc64a488973c5e228dcdd494c7d00696 Mon Sep 17 00:00:00 2001 From: drdev Date: Sun, 20 Mar 2016 18:28:48 +0000 Subject: [PATCH] Prevent exiling current planeswalker, commanders with defined decks, and cards used by commanders --- .../forge/planarconquest/ConquestData.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java index e7daf00cc95..2341de9b5a7 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java @@ -254,6 +254,24 @@ public final class ConquestData { } public boolean exileCard(PaperCard card, int value) { + if (planeswalker == card) { + SOptionPane.showMessageDialog("Current planeswalker cannot be exiled.", "Exile Card", SOptionPane.INFORMATION_ICON); + return false; + } + String commandersUsingCard = ""; + for (ConquestCommander commander : commanders) { + if (commander.getCard() == card && !commander.getDeck().getMain().isEmpty()) { + SOptionPane.showMessageDialog("Cannot exile a commander with a defined deck.", "Exile Card", SOptionPane.INFORMATION_ICON); + return false; + } + if (commander.getDeck().getMain().contains(card)) { + commandersUsingCard += "\n" + commander.getName(); + } + } + if (!commandersUsingCard.isEmpty()) { + SOptionPane.showMessageDialog("Card is in use by the following commanders and cannot be exiled:\n" + commandersUsingCard, "Exile Card", SOptionPane.INFORMATION_ICON); + return false; + } if (SOptionPane.showConfirmDialog("Exile the following card to receive {AE}" + value + "?\n\n" + card.getName(), "Exile Card", "OK", "Cancel")) { if (exiledCards.add(card)) { rewardAEtherShards(value);