From cdd7a641ab44d7450a53f07566f9f951bc6484dc Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 12:26:51 +0000 Subject: [PATCH] convert Captain of the Watch and Wizened Cenn to stPumpAll keyword --- res/cardsfolder/captain_of_the_watch.txt | 3 +- res/cardsfolder/wizened_cenn.txt | 3 +- src/forge/GameActionUtil.java | 159 +---------------------- src/forge/Player.java | 25 ++++ src/forge/StaticEffects.java | 2 - 5 files changed, 30 insertions(+), 162 deletions(-) diff --git a/res/cardsfolder/captain_of_the_watch.txt b/res/cardsfolder/captain_of_the_watch.txt index 1e84e90f0a0..98370920ce4 100644 --- a/res/cardsfolder/captain_of_the_watch.txt +++ b/res/cardsfolder/captain_of_the_watch.txt @@ -1,9 +1,10 @@ Name:Captain of the Watch ManaCost:4 W W Types:Creature Human Soldier -Text:Other Soldier creatures you control get +1/+1 and have vigilance.\r\nWhen Captain of the Watch enters the battlefield, put three 1/1 white Soldier creature tokens onto the battlefield. +Text:When Captain of the Watch enters the battlefield, put three 1/1 white Soldier creature tokens onto the battlefield. PT:3/3 K:Vigilance +K:stPumpAll:Creature.Soldier+Other+YouCtrl:1/1/Vigilance:No Condition:Other Soldier creatures you control get +1/+1 and have vigilance. K:etbMakeToken<>3<>Soldier<>W 1 1 Soldier<>Controller<>W<>Creature;Soldier<>1<>1<>None<>put three 1/1 white Soldier creature tokens onto the battlefield. SVar:PlayMain1:TRUE SVar:Rarity:Rare diff --git a/res/cardsfolder/wizened_cenn.txt b/res/cardsfolder/wizened_cenn.txt index 860af0d7309..4a762e2fafc 100644 --- a/res/cardsfolder/wizened_cenn.txt +++ b/res/cardsfolder/wizened_cenn.txt @@ -1,8 +1,9 @@ Name:Wizened Cenn ManaCost:W W Types:Creature Kithkin Cleric -Text:Other Kithkin creatures you control get +1/+1. +Text:no text PT:2/2 +K:stPumpAll:Creature.Kithkin+Other+YouCtrl:1/1:No Condition:Other Kithkin creatures you control get +1/+1. SVar:PlayMain1:TRUE SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/wizened_cenn.jpg diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index 75ab4d52793..dfe92d1d7ed 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -15574,80 +15574,6 @@ public class GameActionUtil { }; //Knight_Exemplar_Other - public static Command Wizened_Cenn_Pump = new Command() { - private static final long serialVersionUID = 542524781150091105L; - - CardList gloriousAnthemList = new CardList(); - - public void execute() { - - CardList cList = gloriousAnthemList; - Card c; - - for(int i = 0; i < cList.size(); i++) { - c = cList.get(i); - c.addSemiPermanentAttackBoost(-1); - c.addSemiPermanentDefenseBoost(-1); - } - cList.clear(); - PlayerZone[] zone = getZone("Wizened Cenn"); - - // for each zone found add +1/+1 to each card - for(int outer = 0; outer < zone.length; outer++) { - CardList creature = new CardList( - zone[outer].getCards()); - creature = creature.getType("Kithkin"); - - for(int i = 0; i < creature.size(); i++) { - c = creature.get(i); - if(c.isCreature() - && !c.getName().equals( - "Wizened Cenn")) { - c.addSemiPermanentAttackBoost(1); - c.addSemiPermanentDefenseBoost(1); - gloriousAnthemList.add(c); - } - - } // for - } // for - - }// execute() - - }; //Wizened_Cenn_Pump - - public static Command Wizened_Cenn_Other = new Command() { - private static final long serialVersionUID = -7242601069504800797L; - - int otherCenns = 0; - - private int countOtherCenns(Card c) { - PlayerZone play = AllZone.getZone( - Constant.Zone.Play, c.getController()); - CardList cenns = new CardList(play.getCards()); - cenns = cenns.filter(new CardListFilter() { - public boolean addCard(Card c) { - return c.getName().equals("Wizened Cenn") - && (c.getType().contains("Kithkin") || c.getKeyword().contains("Changeling")); - } - }); - return cenns.size() - 1; - - } - - public void execute() { - - CardList creature = AllZoneUtil.getCardsInPlay("Wizened Cenn"); - - for(int i = 0; i < creature.size(); i++) { - Card c = creature.get(i); - otherCenns = countOtherCenns(c); - c.setOtherAttackBoost(otherCenns); - c.setOtherDefenseBoost(otherCenns); - - }// for inner - }// execute() - - }; //Wizened Cenn Other public static Command Lord_of_the_Undead_Pump = new Command() { @@ -15805,86 +15731,7 @@ public class GameActionUtil { }; //Cemetery_Reaper_Other - public static Command Captain_of_the_Watch_Pump = new Command() { - private static final long serialVersionUID = 542524781150091105L; - - CardList gloriousAnthemList = new CardList(); - - public void execute() { - - CardList cList = gloriousAnthemList; - Card c; - - for(int i = 0; i < cList.size(); i++) { - c = cList.get(i); - c.addSemiPermanentAttackBoost(-1); - c.addSemiPermanentDefenseBoost(-1); - c.removeExtrinsicKeyword("Vigilance"); - } - cList.clear(); - PlayerZone[] zone = getZone("Captain of the Watch"); - - // for each zone found add +1/+1 to each card - for(int outer = 0; outer < zone.length; outer++) { - CardList creature = new CardList( - zone[outer].getCards()); - creature = creature.getType("Soldier"); - - for(int i = 0; i < creature.size(); i++) { - c = creature.get(i); - if(c.isCreature() - && !c.getName().equals( - "Captain of the Watch")) { - c.addSemiPermanentAttackBoost(1); - c.addSemiPermanentDefenseBoost(1); - if(!c.getExtrinsicKeyword().contains( - "Vigilance")) c.addExtrinsicKeyword("Vigilance"); - gloriousAnthemList.add(c); - } - - } // for - } // for - - }// execute() - - }; //Captain_of_the_Watch_Pump - - public static Command Captain_of_the_Watch_Other = new Command() { - private static final long serialVersionUID = -7242601069504800797L; - - int otherCapts = 0; - - private int countOtherCapts(Card c) { - PlayerZone play = AllZone.getZone( - Constant.Zone.Play, c.getController()); - CardList capts = new CardList(play.getCards()); - capts = capts.filter(new CardListFilter() { - public boolean addCard(Card c) { - return c.getName().equals( - "Captain of the Watch") - && (c.getType().contains("Soldier") || c.getKeyword().contains("Changeling")); - } - }); - return capts.size() - 1; - - } - - public void execute() { - - CardList creature = AllZoneUtil.getCardsInPlay("Captain of the Watch"); - - for(int i = 0; i < creature.size(); i++) { - Card c = creature.get(i); - otherCapts = countOtherCapts(c); - c.setOtherAttackBoost(otherCapts); - c.setOtherDefenseBoost(otherCapts); - if(!c.getExtrinsicKeyword().contains("Vigilance")) c.addExtrinsicKeyword("Vigilance"); - - }// for inner - }// execute() - - }; //Captain of the Watch Other - + public static Command Veteran_Swordsmith_Pump = new Command() { private static final long serialVersionUID = 542524781150091105L; @@ -19660,14 +19507,10 @@ public class GameActionUtil { commands.put("Elvish_Champion_Other", Elvish_Champion_Other); commands.put("Knight_Exemplar_Pump", Knight_Exemplar_Pump); commands.put("Knight_Exemplar_Other", Knight_Exemplar_Other); - commands.put("Wizened_Cenn_Pump", Wizened_Cenn_Pump); - commands.put("Wizened_Cenn_Other", Wizened_Cenn_Other); commands.put("Lord_of_the_Undead_Pump", Lord_of_the_Undead_Pump); commands.put("Lord_of_the_Undead_Other", Lord_of_the_Undead_Other); commands.put("Cemetery_Reaper_Pump", Cemetery_Reaper_Pump); commands.put("Cemetery_Reaper_Other", Cemetery_Reaper_Other); - commands.put("Captain_of_the_Watch_Pump", Captain_of_the_Watch_Pump); - commands.put("Captain_of_the_Watch_Other", Captain_of_the_Watch_Other); commands.put("Veteran_Swordsmith_Pump", Veteran_Swordsmith_Pump); commands.put("Veteran_Swordsmith_Other", Veteran_Swordsmith_Other); commands.put("Death_Baron_Pump", Death_Baron_Pump); diff --git a/src/forge/Player.java b/src/forge/Player.java index c716da8e764..98903daedff 100644 --- a/src/forge/Player.java +++ b/src/forge/Player.java @@ -26,6 +26,8 @@ public abstract class Player extends MyObservable{ protected int numDrawnThisTurn = 0; protected CardList slowtripList = new CardList(); + protected Card channelCard = null; + public Player(String myName) { this(myName, 20, 0); } @@ -747,6 +749,11 @@ public abstract class Player extends MyObservable{ return list.size() >= 3; } + public boolean hasThreshold() { + CardList grave = AllZoneUtil.getPlayerGraveyard(this); + return grave.size() >= 7; + } + private ArrayList handSizeOperations; public int getMaxHandSize() { @@ -817,6 +824,24 @@ public abstract class Player extends MyObservable{ public static int getHandSizeStamp() { return NextHandSizeStamp++; } + + ///////////////// + // + // for using the card Channel + // + ///////////////// + public void setChannelCard(Card c) { + channelCard = c; + } + + public boolean canChannel() { + return null != channelCard; + } + + public Card getChannelCard() { + return channelCard; + } + //////////////////////////////// // // generic Object overrides diff --git a/src/forge/StaticEffects.java b/src/forge/StaticEffects.java index d5d887f5668..b6902a642e9 100644 --- a/src/forge/StaticEffects.java +++ b/src/forge/StaticEffects.java @@ -108,10 +108,8 @@ public class StaticEffects cardToEffectsList.put("Broodwarden", new String[] {"Broodwarden"}); cardToEffectsList.put("Elvish Archdruid", new String[] {"Elvish_Archdruid_Pump", "Elvish_Archdruid_Other"}); cardToEffectsList.put("Knight Exemplar", new String[] {"Knight_Exemplar_Pump", "Knight_Exemplar_Other"}); - cardToEffectsList.put("Wizened Cenn", new String[] {"Wizened_Cenn_Pump", "Wizened_Cenn_Other"}); cardToEffectsList.put("Lord of the Undead", new String[] {"Lord_of_the_Undead_Pump", "Lord_of_the_Undead_Other"}); cardToEffectsList.put("Cemetery Reaper", new String[] {"Cemetery_Reaper_Pump", "Cemetery_Reaper_Other"}); - cardToEffectsList.put("Captain of the Watch", new String[] {"Captain_of_the_Watch_Pump", "Captain_of_the_Watch_Other"}); cardToEffectsList.put("Veteran Swordsmith", new String[] {"Veteran_Swordsmith_Pump", "Veteran_Swordsmith_Other"}); cardToEffectsList.put("Elvish Champion", new String[] {"Elvish_Champion_Pump","Elvish_Champion_Other"}); cardToEffectsList.put("Death Baron", new String[] {"Death_Baron_Pump","Death_Baron_Other"});