From 17cff99c2be94c7bd35ff8384a29b4c49cc5cff2 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Fri, 11 Jan 2019 21:15:27 +0100 Subject: [PATCH] Adapt: add ReduceCost for Pteramander --- .../main/java/forge/game/card/CardFactoryUtil.java | 12 ++++++++++++ forge-gui/res/cardsfolder/upcoming/pteramander.txt | 9 +++++++++ .../match/input/InputSelectEntitiesFromList.java | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/pteramander.txt diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 040c8f87e37..6beef16d590 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3703,12 +3703,24 @@ public class CardFactoryUtil { final String[] k = keyword.split(":"); final String magnitude = k[1]; final String manacost = k[2]; + final String reduceCost = k.length > 3 ? k[3] : null; + + Set references = Sets.newHashSet(); String desc = "Adapt " + magnitude; String effect = "AB$ PutCounter | Cost$ " + manacost + " | Adapt$ True | CounterNum$ " + magnitude + " | CounterType$ P1P1 | StackDescription$ SpellDescription"; + if (reduceCost != null) { + effect += "| ReduceCost$ " + reduceCost; + references.add(reduceCost); + desc += ". This ability costs {1} less to activate for each instant and sorcery card in your graveyard."; + } + if (!references.isEmpty()) { + effect += "| References$ " + TextUtil.join(references, ","); + } + effect += "| SpellDescription$ " + desc + " (" + inst.getReminderText() + ")"; final SpellAbility sa = AbilityFactory.getAbility(effect, card); diff --git a/forge-gui/res/cardsfolder/upcoming/pteramander.txt b/forge-gui/res/cardsfolder/upcoming/pteramander.txt new file mode 100644 index 00000000000..4358bc865d2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/pteramander.txt @@ -0,0 +1,9 @@ +Name:Pteramander +ManaCost:U +Types:Creature Salamander Drake +PT:1/1 +K:Flying +K:Adapt:4:7 U:X +SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn +DeckHas:Ability$Counters +Oracle:Flying\n{7}{U}: Adapt 4. This ability costs {1} less to activate for each instant and sorcery card in your graveyard. (If this creature has no +1/+1 counters on it, put four +1/+1 counters on it.) diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java b/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java index f9e082a3624..1d018a02394 100644 --- a/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java +++ b/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java @@ -33,7 +33,7 @@ public class InputSelectEntitiesFromList extends InputSele if (min > validChoices.size()) { System.out.println(String.format("Trying to choose at least %d things from a list with only %d things!", min, validChoices.size())); } - PlayerZoneUpdates zonesToUpdate = new PlayerZoneUpdates(); + final PlayerZoneUpdates zonesToUpdate = new PlayerZoneUpdates(); for (final GameEntity c : validChoices) { final Zone cz = (c instanceof Card) ? ((Card) c).getZone() : null ; zonesToUpdate.add(new PlayerZoneUpdate(cz.getPlayer().getView(),cz.getZoneType()));