From 4481fb72bd5a9cc573ba05a1e3057b250b69c5d2 Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 3 Apr 2013 00:22:36 +0000 Subject: [PATCH] - Vanguard: Added Akroma, Angel of Wrath Avatar and Eight-and-a-Half-Tails Avatar --- .gitattributes | 2 ++ .../a/akroma_angel_of_wrath_avatar.txt | 9 +++++++ .../e/eight_and_a_half_tails_avatar.txt | 8 ++++++ .../card/ability/effects/PumpEffect.java | 27 +++++++++++++++++-- 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt create mode 100644 res/cardsfolder/e/eight_and_a_half_tails_avatar.txt diff --git a/.gitattributes b/.gitattributes index 7133280fb28..a5a98ce2322 100644 --- a/.gitattributes +++ b/.gitattributes @@ -176,6 +176,7 @@ res/cardsfolder/a/akoum_refuge.txt svneol=native#text/plain res/cardsfolder/a/akrasan_squire.txt svneol=native#text/plain res/cardsfolder/a/akroma_angel_of_fury.txt svneol=native#text/plain res/cardsfolder/a/akroma_angel_of_wrath.txt svneol=native#text/plain +res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt -text res/cardsfolder/a/akromas_blessing.txt -text res/cardsfolder/a/akromas_devoted.txt svneol=native#text/plain res/cardsfolder/a/akromas_memorial.txt svneol=native#text/plain @@ -3040,6 +3041,7 @@ res/cardsfolder/e/ego_erasure.txt -text res/cardsfolder/e/eiganjo_castle.txt svneol=native#text/plain res/cardsfolder/e/eiganjo_free_riders.txt svneol=native#text/plain res/cardsfolder/e/eight_and_a_half_tails.txt -text +res/cardsfolder/e/eight_and_a_half_tails_avatar.txt -text res/cardsfolder/e/eightfold_maze.txt svneol=native#text/plain res/cardsfolder/e/ekundu_griffin.txt svneol=native#text/plain res/cardsfolder/e/el_hajjaj.txt svneol=native#text/plain diff --git a/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt b/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt new file mode 100644 index 00000000000..df1c3c39866 --- /dev/null +++ b/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt @@ -0,0 +1,9 @@ +Name:Akroma, Angel of Wrath Avatar +ManaCost:no cost +Types:Vanguard +HandLifeModifier:+1/+7 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | TriggerZones$ Command | ValidCard$ Creature.YouCtrl | Execute$ PumpRandom | TriggerDescription$ Whenever a creature enters the battlefield under your control, it gains two abilities chosen at random from flying, first strike, trample, haste, protection from black, protection from red, and vigilance. +SVar:PumpRandom:AB$ Pump | Cost$ 0 | Defined$ TriggeredCard | Permanent$ True | KW$ Flying & First Strike & Trample & Haste & Protection from black & Protection from red & Vigilance | RandomKeyword$ True | RandomKWNum$ 2 +SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/akroma_angel_of_wrath_avatar.jpg +Oracle:Hand +1, life +7\nWhenever a creature enters the battlefield under your control, it gains two abilities chosen at random from flying, first strike, trample, haste, protection from black, protection from red, and vigilance. +SetInfo:VAN Special \ No newline at end of file diff --git a/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt b/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt new file mode 100644 index 00000000000..5ad0a177728 --- /dev/null +++ b/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt @@ -0,0 +1,8 @@ +Name:Eight-and-a-Half-Tails Avatar +ManaCost:no cost +Types:Vanguard +HandLifeModifier:+2/-3 +A:AB$ Pump | Cost$ 1 | ActivationZone$ Command | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent you control | KW$ Protection from red & Protection from blue & Protection from black & Protection from white & Protection from green | RandomKeyword$ True | NoRepetition$ True | SpellDescription$ Until end of turn, target permanent you control gains protection from a color chosen at random from colors it doesn't have protection from. +SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/eight_and_a_half_tails_avatar.jpg +Oracle:Hand +2, life -3\n{1}: Until end of turn, target permanent you control gains protection from a color chosen at random from colors it doesn't have protection from. +SetInfo:VAN Special \ No newline at end of file diff --git a/src/main/java/forge/card/ability/effects/PumpEffect.java b/src/main/java/forge/card/ability/effects/PumpEffect.java index 7691505f010..ee4ec1ec289 100644 --- a/src/main/java/forge/card/ability/effects/PumpEffect.java +++ b/src/main/java/forge/card/ability/effects/PumpEffect.java @@ -16,6 +16,7 @@ import forge.card.spellability.Target; import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiDialog; +import forge.util.Aggregates; public class PumpEffect extends SpellAbilityEffect { @@ -179,7 +180,7 @@ public class PumpEffect extends SpellAbilityEffect { String pumpForget = null; String pumpImprint = null; - final List keywords = sa.hasParam("KW") ? Arrays.asList(sa.getParam("KW").split(" & ")) : new ArrayList(); + List keywords = sa.hasParam("KW") ? Arrays.asList(sa.getParam("KW").split(" & ")) : new ArrayList(); final int a = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumAtt"), sa); final int d = AbilityUtils.calculateAmount(sa.getSourceCard(), sa.getParam("NumDef"), sa); @@ -194,7 +195,29 @@ public class PumpEffect extends SpellAbilityEffect { tgtCards = AbilityUtils.getDefinedCards(sa.getSourceCard(), sa.getParam("Defined"), sa); } } - + + if (sa.hasParam("RandomKeyword")) { + final String num = sa.hasParam("RandomKWNum") ? sa.getParam("RandomKWNum") : "1"; + final int numkw = AbilityUtils.calculateAmount(sa.getSourceCard(), num, sa); + List choice = new ArrayList(); + List total = new ArrayList(keywords); + if (sa.hasParam("NoRepetition")) { + final List tgtCardskws = tgtCards.get(0).getKeyword(); + for (int i = 0; i < tgtCardskws.size(); i++) { + if (total.contains(tgtCardskws.get(i))) { + total.remove(tgtCardskws.get(i)); + } + } + } + final int min = Math.min(total.size(), numkw); + for (int i = 0; i < min; i++) { + final String random = Aggregates.random(total); + choice.add(random); + total.remove(random); + } + keywords = choice; + } + if (sa.hasParam("Optional")) { if (sa.getActivatingPlayer().isHuman()) { final StringBuilder targets = new StringBuilder();