convert Adun Oakenshield, Dragon Blood, Duskmantle House of Shadow, and Rix Maadi Dungeon Palace to AFs.

This commit is contained in:
jendave
2011-08-06 13:45:22 +00:00
parent 6134d3f3c1
commit e38def2cb0
7 changed files with 10 additions and 295 deletions

View File

@@ -3,6 +3,7 @@ ManaCost:G R B
Types:Legendary Creature Human Knight
Text:no text
PT:1/2
A:AB$ChangeZone | Cost$ B R G T | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to your hand.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/adun_oakenshield.jpg
SetInfo:LEG|Rare|http://magiccards.info/scans/en/lg/256.jpg

View File

@@ -2,6 +2,7 @@ Name:Dragon Blood
ManaCost:3
Types:Artifact
Text:no text
A:AB$PutCounter | Cost$ 3 T | Tgt$ TgtC | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on target creature.
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/dragon_blood.jpg
SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/163.jpg

View File

@@ -3,6 +3,7 @@ ManaCost:no cost
Types:Land
Text:no text
K:tap: add 1
A:AB$Mill | Cost$ U B T | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | SpellDescription$ Target player puts the top card of his or her library into his or her graveyard.
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/Duskmantle_House_of_Shadow.jpg
SetInfo:RAV|Uncommon|http://magiccards.info/scans/en/rav/277.jpg

View File

@@ -3,6 +3,7 @@ ManaCost:no cost
Types:Land
Text:no text
K:tap: add 1
A:AB$Discard | Cost$1 B R T|NumCards$ 1 | Mode$ TgtChoose | Defined$ Each |SorcerySpeed$True| SpellDescription$Each player discards a card. Activate this ability only any time you could cast a sorcery.
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/rix_maadi_dungeon_palace.jpg
SetInfo:DIS|Uncommon|http://magiccards.info/scans/en/di/179.jpg

View File

@@ -7386,101 +7386,6 @@ public class CardFactory implements NewConstants {
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Dragon Blood")) {
Ability_Tap ability = new Ability_Tap(card, "3") {
private static final long serialVersionUID = -8095802059752537764L;
@Override
public void resolve() {
if(getTargetCard() != null && getTargetCard().isCreature()
&& CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addCounter(
Counters.P1P1, 1);
}
@Override
public boolean canPlayAI() {
CardList list = new CardList(AllZone.Computer_Battlefield.getCards());
list = list.getType("Creature");
if(list.size() > 0) {
setTargetCard(CardFactoryUtil.AI_getBestCreature(list));
return (getTargetCard() != null);
}
return false;
}
};
ability.setBeforePayMana(CardFactoryUtil.input_targetCreature(ability));
ability.setDescription("3, tap: Put a +1/+1 counter on target creature.");
StringBuilder sb = new StringBuilder();
sb.append(card).append(": put a +1/+1 counter on target Creature.");
ability.setStackDescription(sb.toString());
card.addSpellAbility(ability);
}//*************** END ************ END **************************
/*
//*************** START *********** START **************************
else if(cardName.equals("AEther Vial")) {
//final int[] converted = null;
final Ability_Tap ability = new Ability_Tap(card, "0") {
private static final long serialVersionUID = 1854859213307704018L;
@Override
public boolean canPlay() {
return card.getCounters(Counters.CHARGE) > 0;
}
@Override
public void resolve() {
Player player = card.getController();
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, player);
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, player);
//converted[0] = card.getCounters(Counters.CHARGE);
//System.out.println("converted: " + converted[0]);
CardList list = new CardList(hand.getCards());
list = list.filter(new CardListFilter() {
public boolean addCard(Card c) {
return CardUtil.getConvertedManaCost(c.getManaCost()) == card.getCounters(Counters.CHARGE)
&& c.isCreature();
}
});
if(list.size() > 0) {
if(player.equals(AllZone.HumanPlayer)) {
Object o = AllZone.Display.getChoiceOptional("Pick creature to put into play",
list.toArray());
if(o != null) {
Card c = (Card) o;
hand.remove(c);
play.add(c);
}
} else {
Card c = list.get(0);
if(AllZone.GameAction.isCardInZone(c, hand)) {
hand.remove(c);
play.add(c);
}
}
}
}
};
StringBuilder sbDesc = new StringBuilder();
sbDesc.append("Tap: You may put a creature card with converted mana cost equal to the ");
sbDesc.append("number of charge counters on AEther Vial from your hand into play.");
ability.setDescription(sbDesc.toString());
StringBuilder sbStack = new StringBuilder();
sbStack.append(card.getName());
sbStack.append(" - put creature card with converted mana cost equal to the number of charge counters into play.");
ability.setStackDescription(sbStack.toString());
card.addSpellAbility(ability);
}//*************** END ************ END **************************
*/
//*************** START *********** START **************************
else if(cardName.equals("Lifespark Spellbomb")) {
@@ -7647,70 +7552,7 @@ public class CardFactory implements NewConstants {
}
//*************** END ************ END **************************
/*
//*************** START *********** START **************************
else if(cardName.equals("Quicksilver Amulet")) {
final SpellAbility ability = new Ability_Tap(card, "4") {
private static final long serialVersionUID = 4414609319033894302L;
@Override
public boolean canPlayAI() {
return (getCreature().size() > 0);
}
@Override
public void chooseTargetAI() {
card.tap();
Card target = CardFactoryUtil.AI_getBestCreature(getCreature());
setTargetCard(target);
}
CardList getCreature() {
CardList list = new CardList(AllZone.Computer_Hand.getCards());
list = list.getType("Creature");
list = list.filter(new CardListFilter() {
public boolean addCard(Card c) {
return (c.getCMC() > 4);
}
});
return list;
}
@Override
public void resolve() {
Card c = getTargetCard();
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController());
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, card.getController());
if(AllZone.GameAction.isCardInZone(c, hand)) {
hand.remove(c);
play.add(c);
}
}
};
ability.setBeforePayMana(new Input() {
private static final long serialVersionUID = -1647181037510967127L;
@Override
public void showMessage() {
Player controller = card.getController();
CardList creats = new CardList(AllZone.getZone(Constant.Zone.Hand, controller).getCards());
creats = creats.filter(new CardListFilter() {
public boolean addCard(Card c) {
PlayerZone zone = AllZone.getZone(c);
return c.isCreature() && zone.is(Constant.Zone.Hand);
}
});
stopSetNext(CardFactoryUtil.input_targetSpecific(ability, creats, "Select a creature", false,
false));
}
});
card.addSpellAbility(ability);
}//*************** END ************ END **************************
*/
//*************** START *********** START **************************
else if(cardName.equals("Chalice of the Void")) {
Command intoPlay = new Command() {

View File

@@ -3140,59 +3140,6 @@ public class CardFactory_Creatures {
}//*************** END ************ END **************************
//*************** START *********** START ************************
else if(cardName.equals("Adun Oakenshield")) {
final Ability_Tap ability = new Ability_Tap(card, "B R G") {
private static final long serialVersionUID = -7913968639880781838L;
@Override
public boolean canPlayAI() {
return getGraveCreatures().size() != 0;
}
@Override
public void chooseTargetAI() {
CardList grave = getGraveCreatures();
Card target = CardFactoryUtil.AI_getBestCreature(grave);
setTargetCard(target);
}
@Override
public void resolve() {
if(card.getController().equals(AllZone.HumanPlayer)) {
Card c = AllZone.Display.getChoice("Select card", getGraveCreatures().toArray());
setTargetCard(c);
}
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController());
if(AllZone.GameAction.isCardInZone(getTargetCard(), grave)) AllZone.GameAction.moveTo(hand,
getTargetCard());
}//resolve()
@Override
public boolean canPlay() {
return super.canPlay() && getGraveCreatures().size() != 0 && super.canPlay();
}
CardList getGraveCreatures() {
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
CardList list = new CardList(grave.getCards());
list = list.getType("Creature");
return list;
}
};//SpellAbility
ability.setDescription("B R G, Tap: Return target creature card from your graveyard to your hand.");
StringBuilder sb = new StringBuilder();
sb.append(cardName).append(" - return target creature from your graveyard to your hand.");
ability.setStackDescription(sb.toString());
card.addSpellAbility(ability);
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Penumbra Kavu")) {
final Ability ability = new Ability(card, "0") {

View File

@@ -1253,52 +1253,16 @@ class CardFactory_Lands {
//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Duskmantle, House of Shadow")) {
card.clearSpellKeepManaAbility();
Ability_Tap ability = new Ability_Tap(card, "U B") {
private static final long serialVersionUID = 42470566751344693L;
@Override
public boolean canPlayAI() {
Player player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
CardList libList = new CardList(lib.getCards());
return libList.size() > 0 && super.canPlayAI();
}
@Override
public void resolve() {
getTargetPlayer().mill(1);
}
};
ability.setBeforePayMana(CardFactoryUtil.input_targetPlayer(ability));
ability.setDescription("tap U B: Target player puts the top card of his or her library into his or her graveyard.");
ability.setStackDescription("Target player puts the top card of his or her library into his or her graveyard.");
card.addSpellAbility(ability);
}
//*************** END ************ END **************************
//*************** START *********** START **************************
//*************** START *********** START **************************
else if(cardName.equals("Crypt of Agadeem")) {
final SpellAbility ability = new Ability_Tap(card, "2") {
private static final long serialVersionUID = -3561865824450791583L;
@Override
public void resolve() {
/*CardList list = new CardList(AllZone.getZone(Constant.Zone.Play, AllZone.HumanPlayer).getCards());
list = list.getName("Mana Pool");*/
Card mp = AllZone.ManaPool;//list.getCard(0);
PlayerZone Grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
CardList evildead = new CardList();
evildead.addAll(Grave.getCards());
evildead = evildead.filter(new CardListFilter() {
public boolean addCard(Card c) {
return (c.isCreature() && c.isBlack());
}
});
Card mp = AllZone.ManaPool;
CardList evildead = AllZoneUtil.getPlayerTypeInGraveyard(card.getController(), "Creature");
evildead = evildead.filter(AllZoneUtil.black);
for(int i = 0; i < evildead.size(); i++) {
mp.addExtrinsicKeyword("ManaPool:B");
@@ -1316,52 +1280,10 @@ class CardFactory_Lands {
sb.append(cardName).append(" adds B to your mana pool for each black creature card in your graveyard.");
ability.setStackDescription(sb.toString());
//card.clearSpellAbility();
//card.setText(card.getText() + ability.toString());
card.addSpellAbility(ability);
return card;
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Rix Maadi, Dungeon Palace")) {
card.clearSpellKeepManaAbility();
Ability_Tap ability = new Ability_Tap(card, "1 B R") {
private static final long serialVersionUID = 42470566751344693L;
@Override
public boolean canPlay() {
if(Phase.canCastSorcery(getSourceCard().getController())
&& AllZone.GameAction.isCardInPlay(card)) return true;
else return false;
}
@Override
public boolean canPlayAI() {
PlayerZone hand_c = AllZone.getZone(Constant.Zone.Hand, AllZone.ComputerPlayer);
PlayerZone hand_h = AllZone.getZone(Constant.Zone.Hand, AllZone.HumanPlayer);
CardList hand_comp = new CardList(hand_c.getCards());
CardList hand_hum = new CardList(hand_h.getCards());
return ((hand_comp.size() - hand_hum.size()) > 1 && hand_hum.size() > 0) && super.canPlayAI();
}
@Override
public void resolve() {
AllZone.ComputerPlayer.discard(this);
AllZone.HumanPlayer.discard(this);
//AllZone.InputControl.setInput(CardFactoryUtil.input_discard(this));
//AllZone.GameAction.discardRandom(AllZone.ComputerPlayer, this); // wise discard should be here
}
};
ability.setDescription("tap 1 B R: Each player discards a card. Activate this ability only any time you could cast a sorcery.");
ability.setStackDescription("Each player discards a card.");
card.addSpellAbility(ability);
}
//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Svogthos, the Restless Tomb")) {
final long[] timeStamp = new long[1];