mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
- Added Xiahou Dun, the One-Eyed and Loyal Retainers.
- Added Goblin Charbelcher ability text. - Added card-pictures.txt links.
This commit is contained in:
@@ -18,6 +18,81 @@ forest.jpg http://resources.wizards.com/magic/cards/unh/en-us/card73946.jpg
|
||||
forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748
|
||||
forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587
|
||||
forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586
|
||||
door_to_nothingness.jpg http://www.wizards.com/global/images/magic/general/door_to_nothingness.jpg
|
||||
kazuul_warlord.jpg http://www.wizards.com/global/images/magic/general/kazuul_warlord.jpg
|
||||
seascape_aerialist.jpg http://www.wizards.com/global/images/magic/general/seascape_aerialist.jpg
|
||||
ondu_cleric.jpg http://www.wizards.com/global/images/magic/general/ondu_cleric.jpg
|
||||
joraga_bard.jpg http://www.wizards.com/global/images/magic/general/ondu_cleric.jpg
|
||||
highland_berserker.jpg http://www.wizards.com/global/images/magic/general/highland_berserker.jpg
|
||||
cruel_edict.jpg http://www.wizards.com/global/images/magic/general/cruel_edict.jpg
|
||||
imperial_edict.jpg http://www.wizards.com/global/images/magic/general/imperial_edict.jpg
|
||||
chainers_edict.jpg http://www.wizards.com/global/images/magic/general/chainers_edict.jpg
|
||||
diabolic_edict.jpg http://www.wizards.com/global/images/magic/general/diabolic_edict.jpg
|
||||
innocent_blood.jpg http://www.wizards.com/global/images/magic/general/innocent_blood.jpg
|
||||
transguild_courier.jpg http://www.wizards.com/global/images/magic/general/transguild_courier.jpg
|
||||
oran_rief_the_vastwood.jpg http://www.wizards.com/global/images/magic/general/oran_rief_the_vastwood.jpg
|
||||
academy_rector.jpg http://www.wizards.com/global/images/magic/general/academy_rector.jpg
|
||||
acolyte_of_xathrid.jpg http://www.wizards.com/global/images/magic/general/acolyte_of_xathrid.jpg
|
||||
ajani_vengeant.jpg http://www.wizards.com/global/images/magic/general/ajani_vengeant.jpg
|
||||
armored_galleon.jpg http://www.magickartenmarkt.de/img/cards/Portal_Second_Age/armored_galleon.jpg
|
||||
auramancer.jpg http://www.wizards.com/global/images/magic/general/auramancer.jpg
|
||||
barren_glory.jpg http://www.wizards.com/global/images/magic/general/barren_glory.jpg
|
||||
boggart_harbinger.jpg http://www.wizards.com/global/images/magic/general/boggart_harbinger.jpg
|
||||
capashen_unicorn.jpg http://www.wizards.com/global/images/magic/general/capashen_unicorn.jpg
|
||||
capture_of_jingzhou.jpg http://www.wizards.com/global/images/magic/general/capture_of_jingzhou.jpg
|
||||
cartographer.jpg http://www.wizards.com/global/images/magic/general/cartographer.jpg
|
||||
conquerors_pledge.jpg http://www.wizards.com/global/images/magic/general/conquerors_pledge.jpg
|
||||
deep_sea_serpent.jpg http://www.magickartenmarkt.de/img/cards/Portal/deep_sea_serpent.jpg
|
||||
dwarven_pony.jpg http://www.wizards.com/global/images/magic/general/dwarven_pony.jpg
|
||||
elvish_harbinger.jpg http://www.wizards.com/global/images/magic/general/elvish_harbinger.jpg
|
||||
ethereal_whiskergill.jpg http://www.wizards.com/global/images/magic/general/ethereal_whiskergill.jpg
|
||||
faerie_harbinger.jpg http://www.wizards.com/global/images/magic/general/faerie_harbinger.jpg
|
||||
femeref_enchantress.jpg http://www.wizards.com/global/images/magic/general/femeref_enchantress.jpg
|
||||
flamekin_harbinger.jpg http://www.wizards.com/global/images/magic/general/flamekin_harbinger.jpg
|
||||
fleeting_image.jpg http://www.wizards.com/global/images/magic/general/fleeting_image.jpg
|
||||
giant_harbinger.jpg http://www.wizards.com/global/images/magic/general/giant_harbinger.jpg
|
||||
goblin_charbelcher.jpg http://www.wizards.com/global/images/magic/general/goblin_charbelcher.jpg
|
||||
goblin_chieftain.jpg http://www.wizards.com/global/images/magic/general/goblin_chieftain.jpg
|
||||
jace_beleren.jpg http://www.wizards.com/global/images/magic/general/jace_beleren.jpg
|
||||
kaerveks_spite.jpg http://www.wizards.com/global/images/magic/general/kaerveks_spite.jpg
|
||||
kami_of_ancient_law.jpg http://www.wizards.com/global/images/magic/general/kami_of_ancient_law.jpg
|
||||
manta_ray.jpg http://www.wizards.com/global/images/magic/general/manta_ray.jpg
|
||||
meekstone.jpg http://www.wizards.com/global/images/magic/general/meekstone.jpg
|
||||
merfolk_sovereign.jpg http://www.wizards.com/global/images/magic/general/merfolk_sovereign.jpg
|
||||
merrow_harbinger.jpg http://www.wizards.com/global/images/magic/general/merrow_harbinger.jpg
|
||||
pirate_ship.jpg http://www.wizards.com/global/images/magic/general/pirate_ship.jpg
|
||||
qasali_pridemage.jpg http://www.wizards.com/global/images/magic/general/qasali_pridemage.jpg
|
||||
red_cliffs_armada.jpg http://www.wizards.com/global/images/magic/general/red_cliffs_armada.jpg
|
||||
ronom_unicorn.jpg http://www.wizards.com/global/images/magic/general/ronom_unicorn.jpg
|
||||
scarland_thrinax.jpg http://www.wizards.com/global/images/magic/general/scarland_thrinax.jpg
|
||||
sea_monster.jpg http://www.wizards.com/global/images/magic/general/sea_monster.jpg
|
||||
sea_serpent.jpg http://www.wizards.com/global/images/magic/general/sea_serpent.jpg
|
||||
seal_of_cleansing.jpg http://www.wizards.com/global/images/magic/general/seal_of_cleansing.jpg
|
||||
seal_of_fire.jpg http://www.wizards.com/global/images/magic/general/seal_of_fire.jpg
|
||||
seal_of_primordium.jpg http://www.wizards.com/global/images/magic/general/seal_of_primordium.jpg
|
||||
seal_of_removal.jpg http://www.wizards.com/global/images/magic/general/seal_of_removal.jpg
|
||||
serendib_sorcerer.jpg http://www.wizards.com/global/images/magic/general/serendib_sorcerer.jpg
|
||||
silhana_ledgewalker.jpg http://www.wizards.com/global/images/magic/general/silhana_ledgewalker.jpg
|
||||
slipstream_eel.jpg http://www.wizards.com/global/images/magic/general/slipstream_eel.jpg
|
||||
slipstream_serpent.jpg http://www.wizards.com/global/images/magic/general/slipstream_serpent.jpg
|
||||
spell_snare.jpg http://www.wizards.com/global/images/magic/general/spell_snare.jpg
|
||||
staff_of_domination.jpg http://www.wizards.com/global/images/magic/general/staff_of_domination.jpg
|
||||
steam_frigate.jpg http://www.wizards.com/global/images/magic/general/steam_frigate.jpg
|
||||
sword_of_the_meek.jpg http://www.wizards.com/global/images/magic/general/sword_of_the_meek.jpg
|
||||
temporal_manipulation.jpg http://www.wizards.com/global/images/magic/general/temporal_manipulation.jpg
|
||||
thopter_foundry.jpg http://www.wizards.com/global/images/magic/general/thopter_foundry.jpg
|
||||
timber_protector.jpg http://www.wizards.com/global/images/magic/general/timber_protector.jpg
|
||||
time_walk.jpg http://www.wizards.com/global/images/magic/general/time_walk.jpg
|
||||
tinker.jpg http://www.wizards.com/global/images/magic/general/tinker.jpg
|
||||
treetop_bracers.jpg http://www.wizards.com/global/images/magic/general/treetop_bracers.jpg
|
||||
treetop_rangers.jpg http://www.wizards.com/global/images/magic/general/treetop_rangers.jpg
|
||||
treetop_scout.jpg http://www.wizards.com/global/images/magic/general/treetop_scout.jpg
|
||||
umezawas_jitte.jpg http://www.wizards.com/global/images/magic/general/umezawas_jitte.jpg
|
||||
vendilion_clique.jpg http://www.wizards.com/global/images/magic/general/vendilion_clique.jpg
|
||||
viridian_zealot.jpg http://www.wizards.com/global/images/magic/general/viridian_zealot.jpg
|
||||
vodalian_knights.jpg http://www.wizards.com/global/images/magic/general/vodalian_knights.jpg
|
||||
wu_warship.jpg http://www.wizards.com/global/images/magic/general/wu_warship.jpg
|
||||
zhou_yu_chief_commander.jpg http://www.wizards.com/global/images/magic/general/zhou_yu_chief_commander.jpg
|
||||
boreal_griffin.jpg http://www.wizards.com/global/images/magic/general/boreal_griffin.jpg
|
||||
frost_raptor.jpg http://www.wizards.com/global/images/magic/general/frost_raptor.jpg
|
||||
goblin_rimerunner.jpg http://www.wizards.com/global/images/magic/general/goblin_rimerunner.jpg
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
Xiahou Dun, the One-Eyed
|
||||
2 B B
|
||||
Legendary Creature Human Soldier
|
||||
no text
|
||||
3/2
|
||||
Horsemanship
|
||||
|
||||
Loyal Retainers
|
||||
2 W
|
||||
Creature Human Advisor
|
||||
no text
|
||||
1/1
|
||||
|
||||
Kor Cartographer
|
||||
3 W
|
||||
Creature Kor Scout
|
||||
When Kor Cartographer enters the field, you may search your library for a plains card, put it onto the battlefield tapped, then shuffle your library.
|
||||
When Kor Cartographer enters the battlefield, you may search your library for a plains card, put it onto the battlefield tapped, then shuffle your library.
|
||||
2/2
|
||||
|
||||
Celestial Purge
|
||||
@@ -126,7 +139,7 @@ Umezawa's Jitte
|
||||
Artifact Equipment
|
||||
Whenever equipped creature deals combat damage, put two charge counters on Umezawa's Jitte.
|
||||
|
||||
Vendillion Clique
|
||||
Vendilion Clique
|
||||
1 U U
|
||||
Legendary Creature Faerie Wizard
|
||||
When Vendilion Clique enters the battlefield, look at target player's hand. You may choose a nonland card from it. If you do, that player reveals the chosen card, puts it on the bottom of his or her library, then draws a card.
|
||||
@@ -294,7 +307,7 @@ no text
|
||||
This creature can't attack unless defending player controls an Island
|
||||
When you control no Islands, sacrifice this creature
|
||||
|
||||
Zhou You, Chief Commander
|
||||
Zhou Yu, Chief Commander
|
||||
5 U U
|
||||
Legendary Creature Human Soldier
|
||||
no text
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
program/mail=mtgerror@yahoo.com
|
||||
program/forum=http://www.slightlymagic.net/forum/viewforum.php?f=26
|
||||
program/version=MTG Forge -- official beta: 09/11/02, SVN revision: 100
|
||||
program/version=MTG Forge -- official beta: 09/11/25, SVN revision: 101
|
||||
|
||||
tokens--file=AllTokens.txt
|
||||
|
||||
|
||||
Binary file not shown.
@@ -16723,6 +16723,7 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
|
||||
AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(damage);
|
||||
}
|
||||
};
|
||||
ability.setDescription("3, tap: Reveal cards from the top of your library until you reveal a land card. Goblin Charbelcher deals damage equal to the number of nonland cards revealed this way to target creature or player. If the revealed land card was a Mountain, Goblin Charbelcher deals double that damage instead. Put the revealed cards on the bottom of your library in any order.");
|
||||
ability.setChooseTargetAI(CardFactoryUtil.AI_targetHuman());
|
||||
ability.setBeforePayMana(CardFactoryUtil.input_targetCreaturePlayer(ability, true));
|
||||
card.addSpellAbility(ability);
|
||||
|
||||
@@ -16899,6 +16899,174 @@ public class CardFactory_Creatures {
|
||||
}};
|
||||
card.addComesIntoPlayCommand(cip);
|
||||
}//*************** END ************ END **************************
|
||||
|
||||
|
||||
//*************** START *********** START **************************
|
||||
else if (cardName.equals("Loyal Retainers"))
|
||||
{
|
||||
final Ability ability = new Ability(card, "0")
|
||||
{
|
||||
|
||||
public void resolve() {
|
||||
if (AllZone.GameAction.isCardInPlay(card)) {
|
||||
AllZone.GameAction.sacrifice(card);
|
||||
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController());
|
||||
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
|
||||
CardList list = new CardList(grave.getCards());
|
||||
list = list.filter(new CardListFilter()
|
||||
{
|
||||
public boolean addCard(Card c)
|
||||
{
|
||||
return c.isCreature() && c.getType().contains("Legendary");
|
||||
}
|
||||
});
|
||||
|
||||
if (list.size() >0) {
|
||||
if (card.getController().equals(Constant.Player.Human))
|
||||
{
|
||||
Object o = AllZone.Display.getChoiceOptional("Select Legendary creature", list.toArray());
|
||||
if (o!=null)
|
||||
{
|
||||
Card c = (Card)o;
|
||||
grave.remove(c);
|
||||
play.add(c);
|
||||
}
|
||||
|
||||
}
|
||||
else //computer
|
||||
{
|
||||
Card c = CardFactoryUtil.AI_getBestCreature(list);
|
||||
grave.remove(c);
|
||||
play.add(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canPlay()
|
||||
{
|
||||
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
|
||||
CardList list = new CardList(grave.getCards());
|
||||
list = list.filter(new CardListFilter()
|
||||
{
|
||||
public boolean addCard(Card c)
|
||||
{
|
||||
return c.isCreature() && c.getType().contains("Legendary");
|
||||
}
|
||||
});
|
||||
|
||||
SpellAbility sa;
|
||||
for (int i=0; i<AllZone.Stack.size(); i++)
|
||||
{
|
||||
sa = AllZone.Stack.peek(i);
|
||||
if (sa.getSourceCard().equals(card))
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.canPlay() && list.size() > 0 &&
|
||||
AllZone.Phase.getPhase().equals(Constant.Phase.Main1) &&
|
||||
AllZone.Phase.getActivePlayer().equals(card.getController());
|
||||
}
|
||||
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
|
||||
CardList list = new CardList(grave.getCards());
|
||||
list = list.filter(new CardListFilter()
|
||||
{
|
||||
public boolean addCard(Card c)
|
||||
{
|
||||
return c.isCreature() && c.getType().contains("Legendary") && CardUtil.getConvertedManaCost(c.getManaCost()) > 4;
|
||||
}
|
||||
});
|
||||
return list.size()>0;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
ability.setDescription("Sacrifice Loyal Retainers: Return target legendary creature card from your graveyard to the battlefield. Activate this ability only during your turn, before attackers are declared.");
|
||||
ability.setStackDescription(cardName + " - Return target legendary creature card from your graveyard to the battlefield.");
|
||||
|
||||
card.addSpellAbility(ability);
|
||||
}//*************** END ************ END **************************
|
||||
|
||||
|
||||
//*************** START *********** START **************************
|
||||
else if (cardName.equals("Xiahou Dun, the One-Eyed"))
|
||||
{
|
||||
final Ability ability = new Ability(card, "0")
|
||||
{
|
||||
|
||||
public void resolve() {
|
||||
if (AllZone.GameAction.isCardInPlay(card)) {
|
||||
AllZone.GameAction.sacrifice(card);
|
||||
|
||||
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController());
|
||||
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
|
||||
CardList list = new CardList(grave.getCards());
|
||||
list = list.filter(new CardListFilter()
|
||||
{
|
||||
public boolean addCard(Card c)
|
||||
{
|
||||
return CardUtil.getColors(c).contains(Constant.Color.Black);
|
||||
}
|
||||
});
|
||||
|
||||
if (list.size() >0) {
|
||||
if (card.getController().equals(Constant.Player.Human))
|
||||
{
|
||||
Object o = AllZone.Display.getChoiceOptional("Select black card", list.toArray());
|
||||
if (o!=null)
|
||||
{
|
||||
Card c = (Card)o;
|
||||
grave.remove(c);
|
||||
hand.add(c);
|
||||
}
|
||||
|
||||
}
|
||||
else //computer
|
||||
{
|
||||
//TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean canPlay()
|
||||
{
|
||||
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController());
|
||||
CardList list = new CardList(grave.getCards());
|
||||
list = list.filter(new CardListFilter()
|
||||
{
|
||||
public boolean addCard(Card c)
|
||||
{
|
||||
return CardUtil.getColors(c).contains(Constant.Color.Black);
|
||||
}
|
||||
});
|
||||
|
||||
SpellAbility sa;
|
||||
for (int i=0; i<AllZone.Stack.size(); i++)
|
||||
{
|
||||
sa = AllZone.Stack.peek(i);
|
||||
if (sa.getSourceCard().equals(card))
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.canPlay() && list.size() > 0 &&
|
||||
AllZone.Phase.getPhase().equals(Constant.Phase.Main1) &&
|
||||
AllZone.Phase.getActivePlayer().equals(card.getController());
|
||||
}
|
||||
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
ability.setDescription("Sacrifice Xiahou Dun, the One-Eyed: Return target black card from your graveyard to your hand. Activate this ability only during your turn, before attackers are declared.");
|
||||
ability.setStackDescription(cardName + " - Return target black card from your graveyard to your hand.");
|
||||
|
||||
card.addSpellAbility(ability);
|
||||
}//*************** END ************ END **************************
|
||||
|
||||
// Cards with Cycling abilities
|
||||
// -1 means keyword "Cycling" not found
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.util.TreeSet;
|
||||
|
||||
public class ComputerAI_General implements Computer {
|
||||
//private boolean playLand = true;
|
||||
//private int numberPlayLand = 1;
|
||||
private int numberPlayLand = CardFactoryUtil.getCanPlayNumberOfLands(Constant.Player.Computer);
|
||||
private Collection<Card> playMain1Cards;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user