From c9f585f38c8a14bc352f1edc097383ecb7aef599 Mon Sep 17 00:00:00 2001 From: Hellfish Date: Fri, 23 Sep 2011 12:27:00 +0000 Subject: [PATCH] *Partially converted Venser, the Sojourner to script. --- res/cardsfolder/v/venser_the_sojourner.txt | 4 + .../CardFactory_Planeswalkers.java | 123 ------------------ 2 files changed, 4 insertions(+), 123 deletions(-) diff --git a/res/cardsfolder/v/venser_the_sojourner.txt b/res/cardsfolder/v/venser_the_sojourner.txt index c83b401ccff..525d27ad24e 100644 --- a/res/cardsfolder/v/venser_the_sojourner.txt +++ b/res/cardsfolder/v/venser_the_sojourner.txt @@ -3,6 +3,10 @@ ManaCost:3 W U Types:Planeswalker Venser Text:no text Loyalty:3 +A:AB$PumpAll | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | ValidCards$ Creature | KW$ Unblockable | SpellDescription$ Creatures are unblockable this turn. +A:AB$Effect | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Name$ Venser, the Sojourner emblem | Triggers$ TrigSpellCast | SVars$ EffSpellCast | Duration$ Permanent | SpellDescription$ You get an emblem with "Whenever you cast a spell, exile target permanent." +SVar:TrigSpellCast:Mode$ SpellCast | ValidControllingPlayer$ You | Execute$ EffSpellCast | TriggerDescription$ Whenever you cast a spell, exile target permanent. +SVar:EffSpellCast:AB$ChangeZone | Cost$ 0 | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent SVar:Rarity:Mythic SVar:Picture:http://www.wizards.com/global/images/magic/general/venser_the_sojourner.jpg SetInfo:SOM|Mythic|http://magiccards.info/scans/en/som/135.jpg diff --git a/src/main/java/forge/card/cardFactory/CardFactory_Planeswalkers.java b/src/main/java/forge/card/cardFactory/CardFactory_Planeswalkers.java index 6c6a761f5b0..115522642be 100644 --- a/src/main/java/forge/card/cardFactory/CardFactory_Planeswalkers.java +++ b/src/main/java/forge/card/cardFactory/CardFactory_Planeswalkers.java @@ -1595,133 +1595,10 @@ public class CardFactory_Planeswalkers { }//showMessage() };//Input - - final SpellAbility ability2 = new Ability(card, "0") { - @Override - public void resolve() { - card.subtractCounter(Counters.LOYALTY, 1); - turn[0] = AllZone.getPhase().getTurn(); - - CardList list = AllZoneUtil.getCardsIn(Zone.Battlefield); - list = list.getType("Creature"); - - for (int i = 0; i < list.size(); i++) { - final Card[] target = new Card[1]; - target[0] = list.get(i); - - final Command untilEOT = new Command() { - private static final long serialVersionUID = -7291011871465745495L; - - public void execute() { - if (AllZoneUtil.isCardInPlay(target[0])) { - target[0].removeExtrinsicKeyword("Unblockable"); - } - } - };//Command - - if (AllZoneUtil.isCardInPlay(target[0])) { - target[0].addExtrinsicKeyword("Unblockable"); - AllZone.getEndOfTurn().addUntil(untilEOT); - }//if - }//for - - }//resolve() - - @Override - public boolean canPlay() { - return AllZone.getZoneOf(card).is(Constant.Zone.Battlefield) - && turn[0] != AllZone.getPhase().getTurn() - && card.getCounters(Counters.LOYALTY) >= 1 - && Phase.canCastSorcery(card.getController()); - }//canPlay() - - @Override - public boolean canPlayAI() { - - CardList list = AllZone.getComputerPlayer().getCardsIn(Zone.Battlefield); - list = list.filter(new CardListFilter() { - public boolean addCard(Card crd) { - return crd.isEmblem() - && crd.hasKeyword("Whenever you cast a spell, exile target permanent."); - } - }); - - CardList creatList = AllZone.getComputerPlayer().getCardsIn(Zone.Battlefield); - creatList = creatList.filter(new CardListFilter() { - public boolean addCard(Card crd) { - return CombatUtil.canAttack(crd); - } - }); - - return list.size() >= 1 - && card.getCounters(Counters.LOYALTY) > 2 - && creatList.size() >= 3 - && AllZone.getPhase().getPhase().equals("Main1"); - - } - };//SpellAbility ability2 - - - //ability3 - final SpellAbility ability3 = new Ability(card, "0") { - @Override - public void resolve() { - card.subtractCounter(Counters.LOYALTY, 8); - turn[0] = AllZone.getPhase().getTurn(); - - Card emblem = new Card(); - //should we even name this permanent? - //emblem.setName("Elspeth Emblem"); - emblem.addIntrinsicKeyword("Indestructible"); - emblem.addIntrinsicKeyword("Shroud"); - emblem.addIntrinsicKeyword("Whenever you cast a spell, exile target permanent."); - emblem.setImmutable(true); - emblem.addType("Emblem"); - emblem.addController(card.getController()); - emblem.setOwner(card.getOwner()); - - AllZone.getGameAction().moveToPlay(emblem); - } - - @Override - public boolean canPlay() { - return 8 <= card.getCounters(Counters.LOYALTY) - && AllZone.getZoneOf(card).is(Constant.Zone.Battlefield) - && turn[0] != AllZone.getPhase().getTurn() - && Phase.canCastSorcery(card.getController()); - }//canPlay() - - @Override - public boolean canPlayAI() { - //multiple venser emblems are NOT redundant - /* - CardList list = AllZone.getComputerPlayer().getCardsIn(Zone.Battlefield); - list = list.filter(new CardListFilter(){ - public boolean addCard(Card c) - { - return c.isEmblem() - && c.hasKeyword("Whenever you cast a spell, exile target permanent."); - } - }); - */ - return card.getCounters(Counters.LOYALTY) > 8; - } - }; - ability1.setBeforePayMana(runtime); ability1.setDescription("+2: Exile target permanent you own. Return it to the battlefield under your control at the beginning of the next end step."); card.addSpellAbility(ability1); - ability2.setDescription("-1: Creatures are unblockable this turn."); - ability2.setStackDescription("Creatures are unblockable this turn."); - card.addSpellAbility(ability2); - - ability3.setDescription("-8: You get an emblem with \"Whenever you cast a spell, exile target permanent.\""); - StringBuilder stack3 = new StringBuilder(); - stack3.append(card.getName()).append("You get an emblem with \"Whenever you cast a spell, exile target permanent.\""); - ability3.setStackDescription(stack3.toString()); - card.addSpellAbility(ability3); - card.setSVars(card.getSVars()); card.setSets(card.getSets());