- Cleanup (mostly in CardFactory_Creatures).

This commit is contained in:
Sloth
2011-09-20 08:34:46 +00:00
parent e44820b3db
commit 3d552dcaf3
3 changed files with 84 additions and 354 deletions

View File

@@ -1,83 +1,83 @@
[duel] [duel]
[metadata] [metadata]
Name=Darth Vader 3 Name=Darth Vader 3
Title=Darth Vader Title=Darth Vader
Difficulty=hard Difficulty=hard
Description=WU Battle of Wits style alternate win type deck with WoG Description=WU Battle of Wits deck
Icon=Darth Vader.jpg Icon=Darth Vader.jpg
Deck Type=constructed Deck Type=constructed
[main] [main]
31 Island 31 Island
31 Plains 31 Plains
4 Tundra 4 Tundra
4 Arcane Sanctum 4 Arcane Sanctum
4 Coastal Tower 4 Coastal Tower
4 Glacial Fortress 4 Glacial Fortress
4 Sejiri Refuge 4 Sejiri Refuge
4 Boreal Shelf 4 Boreal Shelf
4 Celestial Colonnade 4 Celestial Colonnade
1 Library of Alexandria 1 Library of Alexandria
1 Mikokoro, Center of the Sea 1 Mikokoro, Center of the Sea
4 Man-o'-War 4 Man-o'-War
4 Aven Riftwatcher 4 Aven Riftwatcher
4 Peacekeeper 4 Peacekeeper
4 Magus of the Moat 4 Magus of the Moat
4 Wall of Reverence 4 Wall of Reverence
4 Wall of Denial 4 Wall of Denial
4 Wall of Omens 4 Wall of Omens
4 Plumeveil 4 Plumeveil
4 Perimeter Captain 4 Perimeter Captain
3 Stalwart Shield-Bearers 3 Stalwart Shield-Bearers
4 Windborn Muse 4 Windborn Muse
4 Soul Warden 4 Soul Warden
4 Sower of Temptation 4 Sower of Temptation
2 Grand Arbiter Augustin IV 2 Grand Arbiter Augustin IV
2 Gwafa Hazid, Profiteer 2 Gwafa Hazid, Profiteer
2 Commander Eesha 2 Commander Eesha
1 Soul's Attendant 1 Soul's Attendant
1 Intrepid Hero 1 Intrepid Hero
1 Mulldrifter 1 Mulldrifter
1 Hanna, Ship's Navigator 1 Hanna, Ship's Navigator
1 Serra Angel 1 Serra Angel
1 Thieving Magpie 1 Thieving Magpie
1 Arcanis the Omnipotent 1 Arcanis the Omnipotent
1 Mawcor 1 Mawcor
1 Keiga, the Tide Star 1 Keiga, the Tide Star
1 Prodigal Sorcerer 1 Prodigal Sorcerer
1 Isamaru, Hound of Konda 1 Isamaru, Hound of Konda
1 Riptide Crab 1 Riptide Crab
1 Auriok Champion 1 Auriok Champion
1 Kozilek, Butcher of Truth 1 Kozilek, Butcher of Truth
1 Ulamog, the Infinite Gyre 1 Ulamog, the Infinite Gyre
2 Elspeth, Knight-Errant 2 Elspeth, Knight-Errant
2 Ajani Goldmane 2 Ajani Goldmane
4 Wrath of God 4 Wrath of God
4 Day of Judgment 4 Day of Judgment
4 Hallowed Burial 4 Hallowed Burial
4 Retribution of the Meek 4 Retribution of the Meek
4 Winds of Rath 4 Winds of Rath
4 Planar Cleansing 4 Planar Cleansing
4 Akroma's Vengeance 4 Akroma's Vengeance
4 Purify 4 Purify
4 Evacuation 4 Evacuation
4 Upheaval 4 Upheaval
3 Inundate 3 Inundate
4 Time Reversal 4 Time Reversal
4 Crib Swap 4 Crib Swap
4 Swords to Plowshares 4 Swords to Plowshares
4 Invincible Hymn 4 Invincible Hymn
4 Bribery 4 Bribery
4 Concentrate 4 Concentrate
3 Absorb 3 Absorb
2 Repulse 2 Repulse
2 Kiss of the Amesha 2 Kiss of the Amesha
1 Reduce to Dreams 1 Reduce to Dreams
1 Resurrection 1 Resurrection
1 Timetwister 1 Timetwister
1 Ancestral Recall 1 Ancestral Recall
1 Time Walk 1 Time Walk
4 Idyllic Tutor 4 Idyllic Tutor
4 Academy Rector 4 Academy Rector
4 Enlightened Tutor 4 Enlightened Tutor
4 Battle of Wits 4 Battle of Wits
[sideboard] [sideboard]

View File

@@ -356,10 +356,6 @@ public class CombatUtil {
if (!attacker.hasKeyword("Shadow") if (!attacker.hasKeyword("Shadow")
&& blocker.hasKeyword("Shadow")) return false; && 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.") if (attacker.hasKeyword("Creatures with power less than CARDNAME's power can't block it.")
&& attacker.getNetAttack() > blocker.getNetAttack()) && attacker.getNetAttack() > blocker.getNetAttack())

View File

@@ -598,60 +598,6 @@ public class CardFactory_Creatures {
card.addSpellAbility(ability); card.addSpellAbility(ability);
}//*************** END ************ END ************************** }//*************** 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 ************************** //*************** START *********** START **************************
else if (cardName.equals("Vedalken Plotter")) { else if (cardName.equals("Vedalken Plotter")) {
@@ -1315,217 +1261,6 @@ public class CardFactory_Creatures {
card.addSpellAbility(ability); card.addSpellAbility(ability);
}//*************** END ************ END ************************** }//*************** 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<String>());
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<String>());
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<String>());
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 ************************** //*************** START *********** START **************************
else if (cardName.equals("Shifting Wall") || cardName.equals("Maga, Traitor to Mortals") || cardName.equals("Feral Hydra") 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()); ability.setStackDescription(sb.toString());
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if (cardName.equals("Awakener Druid")) { else if (cardName.equals("Awakener Druid")) {
final long[] timeStamp = {0}; final long[] timeStamp = {0};
@@ -3076,8 +2812,6 @@ public class CardFactory_Creatures {
SpellAbility myAb = createAb.getAbility(abilityBuilder.toString(), card); SpellAbility myAb = createAb.getAbility(abilityBuilder.toString(), card);
card.addSpellAbility(myAb); card.addSpellAbility(myAb);
}//*************** END ************ END ************************** }//*************** END ************ END **************************