From 3d552dcaf35f71fe3013c62c5c48b8d47da2eb8b Mon Sep 17 00:00:00 2001 From: Sloth Date: Tue, 20 Sep 2011 08:34:46 +0000 Subject: [PATCH] - Cleanup (mostly in CardFactory_Creatures). --- res/quest/decks/Darth Vader 3.dck | 166 +++++------ src/main/java/forge/CombatUtil.java | 4 - .../cardFactory/CardFactory_Creatures.java | 268 +----------------- 3 files changed, 84 insertions(+), 354 deletions(-) diff --git a/res/quest/decks/Darth Vader 3.dck b/res/quest/decks/Darth Vader 3.dck index 2f2f49dc548..88baf235d67 100644 --- a/res/quest/decks/Darth Vader 3.dck +++ b/res/quest/decks/Darth Vader 3.dck @@ -1,83 +1,83 @@ -[duel] -[metadata] -Name=Darth Vader 3 -Title=Darth Vader -Difficulty=hard -Description=WU Battle of Wits style alternate win type deck with WoG -Icon=Darth Vader.jpg -Deck Type=constructed -[main] -31 Island -31 Plains -4 Tundra -4 Arcane Sanctum -4 Coastal Tower -4 Glacial Fortress -4 Sejiri Refuge -4 Boreal Shelf -4 Celestial Colonnade -1 Library of Alexandria -1 Mikokoro, Center of the Sea -4 Man-o'-War -4 Aven Riftwatcher -4 Peacekeeper -4 Magus of the Moat -4 Wall of Reverence -4 Wall of Denial -4 Wall of Omens -4 Plumeveil -4 Perimeter Captain -3 Stalwart Shield-Bearers -4 Windborn Muse -4 Soul Warden -4 Sower of Temptation -2 Grand Arbiter Augustin IV -2 Gwafa Hazid, Profiteer -2 Commander Eesha -1 Soul's Attendant -1 Intrepid Hero -1 Mulldrifter -1 Hanna, Ship's Navigator -1 Serra Angel -1 Thieving Magpie -1 Arcanis the Omnipotent -1 Mawcor -1 Keiga, the Tide Star -1 Prodigal Sorcerer -1 Isamaru, Hound of Konda -1 Riptide Crab -1 Auriok Champion -1 Kozilek, Butcher of Truth -1 Ulamog, the Infinite Gyre -2 Elspeth, Knight-Errant -2 Ajani Goldmane -4 Wrath of God -4 Day of Judgment -4 Hallowed Burial -4 Retribution of the Meek -4 Winds of Rath -4 Planar Cleansing -4 Akroma's Vengeance -4 Purify -4 Evacuation -4 Upheaval -3 Inundate -4 Time Reversal -4 Crib Swap -4 Swords to Plowshares -4 Invincible Hymn -4 Bribery -4 Concentrate -3 Absorb -2 Repulse -2 Kiss of the Amesha -1 Reduce to Dreams -1 Resurrection -1 Timetwister -1 Ancestral Recall -1 Time Walk -4 Idyllic Tutor -4 Academy Rector -4 Enlightened Tutor -4 Battle of Wits -[sideboard] +[duel] +[metadata] +Name=Darth Vader 3 +Title=Darth Vader +Difficulty=hard +Description=WU Battle of Wits deck +Icon=Darth Vader.jpg +Deck Type=constructed +[main] +31 Island +31 Plains +4 Tundra +4 Arcane Sanctum +4 Coastal Tower +4 Glacial Fortress +4 Sejiri Refuge +4 Boreal Shelf +4 Celestial Colonnade +1 Library of Alexandria +1 Mikokoro, Center of the Sea +4 Man-o'-War +4 Aven Riftwatcher +4 Peacekeeper +4 Magus of the Moat +4 Wall of Reverence +4 Wall of Denial +4 Wall of Omens +4 Plumeveil +4 Perimeter Captain +3 Stalwart Shield-Bearers +4 Windborn Muse +4 Soul Warden +4 Sower of Temptation +2 Grand Arbiter Augustin IV +2 Gwafa Hazid, Profiteer +2 Commander Eesha +1 Soul's Attendant +1 Intrepid Hero +1 Mulldrifter +1 Hanna, Ship's Navigator +1 Serra Angel +1 Thieving Magpie +1 Arcanis the Omnipotent +1 Mawcor +1 Keiga, the Tide Star +1 Prodigal Sorcerer +1 Isamaru, Hound of Konda +1 Riptide Crab +1 Auriok Champion +1 Kozilek, Butcher of Truth +1 Ulamog, the Infinite Gyre +2 Elspeth, Knight-Errant +2 Ajani Goldmane +4 Wrath of God +4 Day of Judgment +4 Hallowed Burial +4 Retribution of the Meek +4 Winds of Rath +4 Planar Cleansing +4 Akroma's Vengeance +4 Purify +4 Evacuation +4 Upheaval +3 Inundate +4 Time Reversal +4 Crib Swap +4 Swords to Plowshares +4 Invincible Hymn +4 Bribery +4 Concentrate +3 Absorb +2 Repulse +2 Kiss of the Amesha +1 Reduce to Dreams +1 Resurrection +1 Timetwister +1 Ancestral Recall +1 Time Walk +4 Idyllic Tutor +4 Academy Rector +4 Enlightened Tutor +4 Battle of Wits +[sideboard] diff --git a/src/main/java/forge/CombatUtil.java b/src/main/java/forge/CombatUtil.java index 159179093e1..b314d7d83ac 100644 --- a/src/main/java/forge/CombatUtil.java +++ b/src/main/java/forge/CombatUtil.java @@ -356,10 +356,6 @@ public class CombatUtil { if (!attacker.hasKeyword("Shadow") && blocker.hasKeyword("Shadow")) return false; - - if (blocker.hasKeyword("CARDNAME can't block black creatures.")) { - if (attacker.isBlack()) return false; - } if (attacker.hasKeyword("Creatures with power less than CARDNAME's power can't block it.") && attacker.getNetAttack() > blocker.getNetAttack()) diff --git a/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java b/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java index 05688910215..eebc7c1172a 100644 --- a/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java +++ b/src/main/java/forge/card/cardFactory/CardFactory_Creatures.java @@ -598,60 +598,6 @@ public class CardFactory_Creatures { card.addSpellAbility(ability); }//*************** END ************ END ************************** -/* - //*************** START *********** START ************************** - else if (cardName.equals("Hermit Druid")) { - Cost abCost = new Cost("G T", cardName, true); - final Ability_Activated ability = new Ability_Activated(card, abCost, null) { - private static final long serialVersionUID = 5884624727757154056L; - - @Override - public boolean canPlayAI() { - //Use the ability if there is still a forest in the library - CardList library = card.getController().getCardsIn(Zone.Library); - return !library.getName("Forest").isEmpty(); - } - - @Override - public void resolve() { - CardList library = card.getController().getCardsIn(Zone.Library); - if (library.size() == 0) return; // maybe provide some notification that library is empty? - - CardList revealed = new CardList(); - - Card basicGrab = null; - - int count = 0; - // reveal top card until library runs out or hit a basic land - while (basicGrab == null) { - Card top = library.get(count); - count++; - revealed.add(top); - - if (top.isBasicLand()) - basicGrab = top; - - if (count == library.size()) - break; - }//while - GuiUtils.getChoiceOptional("Revealed cards:", revealed.toArray()); - - if (basicGrab != null) { - // put basic in hand - AllZone.getGameAction().moveToHand(basicGrab); - revealed.remove(basicGrab); - } - // place revealed cards in graveyard (TODO: player should choose order) - for (Card c : revealed) { - AllZone.getGameAction().moveToGraveyard(c); - } - } - }; - ability.setStackDescription(abCost + "Reveal cards from the top of your library until you reveal a basic land card." + - " Put that card into your hand and all other cards revealed this way into your graveyard."); - card.addSpellAbility(ability); - }//*************** END ************ END ************************** -*/ //*************** START *********** START ************************** else if (cardName.equals("Vedalken Plotter")) { @@ -1315,217 +1261,6 @@ public class CardFactory_Creatures { card.addSpellAbility(ability); }//*************** END ************ END ************************** -/* - //*************** START *********** START ************************** - else if (cardName.equals("Figure of Destiny")) { - Ability ability1 = new Ability(card, "RW") { - @Override - public void resolve() { - boolean artifact = false; - card.setBaseAttack(2); - card.setBaseDefense(2); - - card.removeIntrinsicKeyword("Flying"); - card.removeIntrinsicKeyword("First Strike"); - - if (card.isArtifact()) artifact = true; - - card.setType(new ArrayList()); - if (artifact) card.addType("Artifact"); - card.addType("Creature"); - card.addType("Kithkin"); - card.addType("Spirit"); - } - - @Override - public boolean canPlayAI() { - return !card.isType("Spirit") - && super.canPlayAI(); - } - - };// ability1 - - ability1.setDescription("RW: Figure of Destiny becomes a 2/2 Kithkin Spirit."); - ability1.setStackDescription("Figure of Destiny becomes a 2/2 Kithkin Spirit."); - card.addSpellAbility(ability1); - - - Ability ability2 = new Ability(card, "RW RW RW") { - @Override - public void resolve() { - if (card.isType("Spirit")) { - boolean artifact = false; - card.setBaseAttack(4); - card.setBaseDefense(4); - - card.removeIntrinsicKeyword("Flying"); - card.removeIntrinsicKeyword("First Strike"); - - if (card.isArtifact()) artifact = true; - - card.setType(new ArrayList()); - if (artifact) card.addType("Artifact"); - card.addType("Creature"); - card.addType("Kithkin"); - card.addType("Spirit"); - card.addType("Warrior"); - } - } - - @Override - public boolean canPlay() { - return card.isType("Spirit") - && super.canPlay(); - } - - @Override - public boolean canPlayAI() { - return !card.isType("Warrior") - && super.canPlayAI(); - } - - };// ability2 - - ability2.setDescription("RW RW RW: If Figure of Destiny is a Spirit, it becomes a 4/4 Kithkin Spirit Warrior."); - ability2.setStackDescription("Figure of Destiny becomes a 4/4 Kithkin Spirit Warrior."); - card.addSpellAbility(ability2); - - - Ability ability3 = new Ability(card, "RW RW RW RW RW RW") { - @Override - public void resolve() { - if (card.isType("Warrior")) { - boolean artifact = false; - card.setBaseAttack(8); - card.setBaseDefense(8); - - card.addIntrinsicKeyword("Flying"); - card.addIntrinsicKeyword("First Strike"); - - if (card.isArtifact()) artifact = true; - - card.setType(new ArrayList()); - if (artifact) card.addType("Artifact"); - card.addType("Creature"); - card.addType("Kithkin"); - card.addType("Spirit"); - card.addType("Warrior"); - card.addType("Avatar"); - } - } - - @Override - public boolean canPlay() { - return card.isType("Warrior") - && super.canPlay(); - } - - @Override - public boolean canPlayAI() { - return !card.isType("Avatar") - && super.canPlayAI(); - } - };// ability3 - - StringBuilder sbDesc = new StringBuilder(); - sbDesc.append("RW RW RW RW RW RW: If Figure of Destiny is a Warrior, it becomes "); - sbDesc.append("an 8/8 Kithkin Spirit Warrior Avatar with flying and first strike."); - ability3.setDescription(sbDesc.toString()); - - ability3.setStackDescription("Figure of Destiny becomes an 8/8 Kithkin Spirit Warrior Avatar with flying and first strike."); - card.addSpellAbility(ability3); - }//*************** END ************ END ************************** - -*/ - //*************** START *********** START ************************** - else if (cardName.equals("Cantivore")) { - SpellAbility spell = new Spell_Permanent(card) { - private static final long serialVersionUID = 7254358703158629514L; - - @Override - public boolean canPlayAI() { - CardList list = AllZoneUtil.getCardsIn(Zone.Graveyard); - list = list.getType("Enchantment"); - return super.canPlayAI() && list.size() > 0; - } - }; - // Do not remove SpellAbilities created by AbilityFactory or Keywords. - card.clearFirstSpell(); - card.addSpellAbility(spell); - }//*************** END ************ END ************************** - - - //*************** START *********** START ************************** - else if (cardName.equals("Terravore")) { - SpellAbility spell = new Spell_Permanent(card) { - private static final long serialVersionUID = 7316190829288665283L; - - @Override - public boolean canPlayAI() { - CardList list = AllZoneUtil.getCardsIn(Zone.Graveyard); - list = list.getType("Land"); - return super.canPlayAI() && list.size() > 0; - } - }; - // Do not remove SpellAbilities created by AbilityFactory or Keywords. - card.clearFirstSpell(); - card.addSpellAbility(spell); - }//*************** END ************ END ************************** - - - //*************** START *********** START ************************** - else if (cardName.equals("Mortivore")) { - SpellAbility spell = new Spell_Permanent(card) { - private static final long serialVersionUID = -7118801410173525870L; - - @Override - public boolean canPlayAI() { - CardList list = AllZoneUtil.getCardsIn(Zone.Graveyard); - list = list.getType("Creature"); - return super.canPlayAI() && list.size() > 0; - } - }; - // Do not remove SpellAbilities created by AbilityFactory or Keywords. - card.clearFirstSpell(); - card.addSpellAbility(spell); - }//*************** END ************ END ************************** - - - //*************** START *********** START ************************** - else if (cardName.equals("Cognivore")) { - SpellAbility spell = new Spell_Permanent(card) { - private static final long serialVersionUID = -2216181341715046786L; - - @Override - public boolean canPlayAI() { - CardList list = AllZoneUtil.getCardsIn(Zone.Graveyard); - list = list.getType("Instant"); - return super.canPlayAI() && list.size() > 0; - } - }; - // Do not remove SpellAbilities created by AbilityFactory or Keywords. - card.clearFirstSpell(); - card.addSpellAbility(spell); - }//*************** END ************ END ************************** - - - //*************** START *********** START ************************** - else if (cardName.equals("Magnivore")) { - SpellAbility spell = new Spell_Permanent(card) { - private static final long serialVersionUID = -2252263708643462897L; - - @Override - public boolean canPlayAI() { - CardList list = AllZoneUtil.getCardsIn(Zone.Graveyard); - list = list.getType("Sorcery"); - return super.canPlayAI() && list.size() > 0; - } - }; - // Do not remove SpellAbilities created by AbilityFactory or Keywords. - card.clearFirstSpell(); - card.addSpellAbility(spell); - }//*************** END ************ END ************************** - //*************** START *********** START ************************** else if (cardName.equals("Shifting Wall") || cardName.equals("Maga, Traitor to Mortals") || cardName.equals("Feral Hydra") @@ -3017,6 +2752,7 @@ public class CardFactory_Creatures { ability.setStackDescription(sb.toString()); }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if (cardName.equals("Awakener Druid")) { final long[] timeStamp = {0}; @@ -3076,8 +2812,6 @@ public class CardFactory_Creatures { SpellAbility myAb = createAb.getAbility(abilityBuilder.toString(), card); card.addSpellAbility(myAb); - - }//*************** END ************ END **************************