mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
convert Adun Oakenshield, Dragon Blood, Duskmantle House of Shadow, and Rix Maadi Dungeon Palace to AFs.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,69 +7552,6 @@ 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")) {
|
||||
|
||||
@@ -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") {
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user