- RemAIDeck update: next iteration.

This commit is contained in:
Agetian
2017-10-07 05:04:05 +00:00
parent fd1f686469
commit cc0fdb302b
23 changed files with 51 additions and 37 deletions

View File

@@ -700,7 +700,7 @@ public class ChangeZoneAi extends SpellAbilityAi {
protected boolean checkPhaseRestrictions(Player ai, SpellAbility sa, PhaseHandler ph) { protected boolean checkPhaseRestrictions(Player ai, SpellAbility sa, PhaseHandler ph) {
String aiLogic = sa.getParamOrDefault("AILogic", ""); String aiLogic = sa.getParamOrDefault("AILogic", "");
if (aiLogic.equals("SurvivalOfTheFittest")) { if (aiLogic.equals("SurvivalOfTheFittest") || aiLogic.equals("AtOppEOT")) {
return ph.getNextTurn().equals(ai) && ph.is(PhaseType.END_OF_TURN); return ph.getNextTurn().equals(ai) && ph.is(PhaseType.END_OF_TURN);
} }
@@ -809,6 +809,14 @@ public class ChangeZoneAi extends SpellAbilityAi {
if (sa.hasParam("AITgts")) { if (sa.hasParam("AITgts")) {
list = CardLists.getValidCards(list, sa.getParam("AITgts"), ai, source); list = CardLists.getValidCards(list, sa.getParam("AITgts"), ai, source);
} }
if (sa.hasParam("AITgtsOnlyBetterThanSelf")) {
list = CardLists.filter(list, new Predicate<Card>() {
@Override
public boolean apply(Card card) {
return ComputerUtilCard.evaluateCreature(card) > ComputerUtilCard.evaluateCreature(source) + 30;
}
});
}
if (source.isInZone(ZoneType.Hand)) { if (source.isInZone(ZoneType.Hand)) {
list = CardLists.filter(list, Predicates.not(CardPredicates.nameEquals(source.getName()))); // Don't get the same card back. list = CardLists.filter(list, Predicates.not(CardPredicates.nameEquals(source.getName()))); // Don't get the same card back.
} }
@@ -1381,7 +1389,7 @@ public class ChangeZoneAi extends SpellAbilityAi {
String logic = sa.getParam("AILogic"); String logic = sa.getParam("AILogic");
if ("NeverBounceItself".equals(logic)) { if ("NeverBounceItself".equals(logic)) {
Card source = sa.getHostCard(); Card source = sa.getHostCard();
if (fetchList.contains(source) && fetchList.size() > 1) { if (fetchList.contains(source) && (fetchList.size() > 1 || sa.getTriggeringAbility().isMandatory())) {
// For cards that should never be bounced back to hand with their own [e.g. triggered] abilities, such as guild lands. // For cards that should never be bounced back to hand with their own [e.g. triggered] abilities, such as guild lands.
fetchList.remove(source); fetchList.remove(source);
} }

View File

@@ -537,6 +537,10 @@ public class PumpAi extends PumpAiBase {
})); }));
} }
if (sa.hasParam("AITgts")) {
list = CardLists.getValidCards(list, sa.getParam("AITgts"), sa.getActivatingPlayer(), source);
}
if (list.isEmpty()) { if (list.isEmpty()) {
if (ComputerUtil.activateForCost(sa, ai)) { if (ComputerUtil.activateForCost(sa, ai)) {
return pumpMandatoryTarget(ai, sa); return pumpMandatoryTarget(ai, sa);

View File

@@ -1,14 +1,6 @@
package forge.game.card; package forge.game.card;
import java.util.Collections;
import java.util.List;
import forge.card.CardStateName;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.game.Direction; import forge.game.Direction;
@@ -25,7 +17,12 @@ import forge.game.trigger.Trigger;
import forge.game.zone.Zone; import forge.game.zone.Zone;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.Expressions; import forge.util.Expressions;
import forge.util.TextUtil;
import forge.util.collect.FCollectionView; import forge.util.collect.FCollectionView;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.List;
public class CardProperty { public class CardProperty {
@@ -848,6 +845,14 @@ public class CardProperty {
if (!card.canProduceSameManaTypeWith(source)) { if (!card.canProduceSameManaTypeWith(source)) {
return false; return false;
} }
} else if (property.startsWith("canProduceManaColor")) {
final String color = property.split("canProduceManaColor ")[1];
for (SpellAbility ma : card.getManaAbilities()) {
if (ma.getManaPart().canProduce(MagicColor.toShortString(color))) {
return true;
}
}
return false;
} else if (property.startsWith("sharesNameWith")) { } else if (property.startsWith("sharesNameWith")) {
if (property.equals("sharesNameWith")) { if (property.equals("sharesNameWith")) {
if (!card.sharesNameWith(source)) { if (!card.sharesNameWith(source)) {
@@ -1291,6 +1296,10 @@ public class CardProperty {
if (!card.isEquipping()) { if (!card.isEquipping()) {
return false; return false;
} }
} else if (property.startsWith("notEquipping")) {
if (card.isEquipping()) {
return false;
}
} else if (property.startsWith("token")) { } else if (property.startsWith("token")) {
if (!card.isToken()) { if (!card.isToken()) {
return false; return false;

View File

@@ -4,6 +4,5 @@ Types:Legendary Creature Human Druid
PT:4/3 PT:4/3
A:AB$ Animate | Cost$ G | ValidTgts$ Land | TgtPrompt$ Select target land | Power$ 1 | Toughness$ 1 | Types$ Creature | SpellDescription$ Target land becomes a 1/1 creature until end of turn. It's still a land. A:AB$ Animate | Cost$ G | ValidTgts$ Land | TgtPrompt$ Select target land | Power$ 1 | Toughness$ 1 | Types$ Creature | SpellDescription$ Target land becomes a 1/1 creature until end of turn. It's still a land.
A:AB$ PumpAll | Cost$ 2 G G G | ValidCards$ Creature.YouCtrl | NumAtt$ +3 | NumDef$ +3 | KW$ Trample | SpellDescription$ Creatures you control get +3/+3 and gain trample until end of turn. A:AB$ PumpAll | Cost$ 2 G G G | ValidCards$ Creature.YouCtrl | NumAtt$ +3 | NumDef$ +3 | KW$ Trample | SpellDescription$ Creatures you control get +3/+3 and gain trample until end of turn.
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kamahl_fist_of_krosa.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kamahl_fist_of_krosa.jpg
Oracle:{G}: Target land becomes a 1/1 creature until end of turn. It's still a land.\n{2}{G}{G}{G}: Creatures you control get +3/+3 and gain trample until end of turn. Oracle:{G}: Target land becomes a 1/1 creature until end of turn. It's still a land.\n{2}{G}{G}{G}: Creatures you control get +3/+3 and gain trample until end of turn.

View File

@@ -2,7 +2,6 @@ Name:Kami of Twisted Reflection
ManaCost:1 U U ManaCost:1 U U
Types:Creature Spirit Types:Creature Spirit
PT:2/2 PT:2/2
A:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target creature you control to its owner's hand. A:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | AITgts$ Creature.Other+YouCtrl | AITgtsOnlyBetterThanSelf$ True | TgtPrompt$ Select target creature you control | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target creature you control to its owner's hand.
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kami_of_twisted_reflection.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kami_of_twisted_reflection.jpg
Oracle:Sacrifice Kami of Twisted Reflection: Return target creature you control to its owner's hand. Oracle:Sacrifice Kami of Twisted Reflection: Return target creature you control to its owner's hand.

View File

@@ -4,10 +4,9 @@ Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card.
SVar:TrigDraw:AB$ Draw | Cost$ 0 | NumCards$ 1 SVar:TrigDraw:DB$ Draw | NumCards$ 1
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ AnyMana | Description$ Enchanted creature has "{T}: Add one mana of any color to your mana pool." S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ AnyMana | Description$ Enchanted creature has "{T}: Add one mana of any color to your mana pool."
SVar:AnyMana:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color to your mana pool. SVar:AnyMana:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color to your mana pool.
SVar:NonStackingAttachEffect:True SVar:NonStackingAttachEffect:True
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/karametras_favor.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/karametras_favor.jpg
Oracle:Enchant creature\nWhen Karametra's Favor enters the battlefield, draw a card.\nEnchanted creature has "{T}: Add one mana of any color to your mana pool." Oracle:Enchant creature\nWhen Karametra's Favor enters the battlefield, draw a card.\nEnchanted creature has "{T}: Add one mana of any color to your mana pool."

View File

@@ -5,6 +5,6 @@ K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ C W | SpellDescription$ Add {C}{W} to your mana pool. A:AB$ Mana | Cost$ T | Produced$ C W | SpellDescription$ Add {C}{W} to your mana pool.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.
SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Plains.untapped/untapped Plains> | UnlessPayer$ You SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Plains.untapped/untapped Plains> | UnlessPayer$ You
SVar:RemAIDeck:True SVar:NeedsToPlay:Plains.YouCtrl+inZoneBattlefield+untapped
SVar:Picture:http://www.wizards.com/global/images/magic/general/karoo.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/karoo.jpg
Oracle:Karoo enters the battlefield tapped.\nWhen Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.\n{T}: Add {C}{W} to your mana pool. Oracle:Karoo enters the battlefield tapped.\nWhen Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.\n{T}: Add {C}{W} to your mana pool.

View File

@@ -4,9 +4,9 @@ Types:Creature Minotaur Warrior
PT:3/3 PT:3/3
K:Cumulative upkeep:FlipCoin<1>:Flip a coin. K:Cumulative upkeep:FlipCoin<1>:Flip a coin.
T:Mode$ FlippedCoin | ValidPlayer$ You | ValidResult$ Win | TriggerZones$ Battlefield | Execute$ TrigYouDmg | TriggerDescription$ Whenever you win a coin flip, CARDNAME deals 1 damage to target creature or player. T:Mode$ FlippedCoin | ValidPlayer$ You | ValidResult$ Win | TriggerZones$ Battlefield | Execute$ TrigYouDmg | TriggerDescription$ Whenever you win a coin flip, CARDNAME deals 1 damage to target creature or player.
SVar:TrigYouDmg:AB$ DealDamage | Cost$ 0 | NumDmg$ 1 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player SVar:TrigYouDmg:DB$ DealDamage | NumDmg$ 1 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player
T:Mode$ FlippedCoin | ValidPlayer$ You | ValidResult$ Lose | TriggerZones$ Battlefield | Execute$ TrigOppDmg | TriggerDescription$ Whenever you lose a coin flip, CARDNAME deals 1 damage to target creature or player of an opponent's choice. T:Mode$ FlippedCoin | ValidPlayer$ You | ValidResult$ Lose | TriggerZones$ Battlefield | Execute$ TrigOppDmg | TriggerDescription$ Whenever you lose a coin flip, CARDNAME deals 1 damage to target creature or player of an opponent's choice.
SVar:TrigOppDmg:AB$ DealDamage | Cost$ 0 | NumDmg$ 1 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | TargetingPlayer$ Opponent SVar:TrigOppDmg:DB$ DealDamage | NumDmg$ 1 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | TargetingPlayer$ Opponent
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/karplusan_minotaur.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/karplusan_minotaur.jpg
Oracle:Cumulative upkeep—Flip a coin. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)\nWhenever you win a coin flip, Karplusan Minotaur deals 1 damage to target creature or player.\nWhenever you lose a coin flip, Karplusan Minotaur deals 1 damage to target creature or player of an opponent's choice. Oracle:Cumulative upkeep—Flip a coin. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)\nWhenever you win a coin flip, Karplusan Minotaur deals 1 damage to target creature or player.\nWhenever you lose a coin flip, Karplusan Minotaur deals 1 damage to target creature or player of an opponent's choice.

View File

@@ -2,7 +2,7 @@ Name:Kazuul's Toll Collector
ManaCost:2 R ManaCost:2 R
Types:Creature Ogre Warrior Types:Creature Ogre Warrior
PT:3/2 PT:3/2
A:AB$ Pump | Cost$ 0 | ValidTgts$ Equipment.YouCtrl | TgtPrompt$ Select target Equipment you control | SubAbility$ KazuulAttach | SorcerySpeed$ True | StackDescription$ None | SpellDescription$ Attach target Equipment you control to Kazuul's Toll Collector. A:AB$ Pump | Cost$ 0 | ValidTgts$ Equipment.YouCtrl | AITgts$ Equipment.YouCtrl+notEquipping | TgtPrompt$ Select target Equipment you control | SubAbility$ KazuulAttach | SorcerySpeed$ True | StackDescription$ None | SpellDescription$ Attach target Equipment you control to Kazuul's Toll Collector.
SVar:KazuulAttach:DB$ Attach | Object$ ParentTarget | Defined$ Self SVar:KazuulAttach:DB$ Attach | Object$ ParentTarget | Defined$ Self
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kazuuls_toll_collector.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kazuuls_toll_collector.jpg

View File

@@ -3,6 +3,6 @@ ManaCost:2 U
Types:Instant Types:Instant
A:SP$ Draw | Cost$ 2 U | NumCards$ X | References$ X | SpellDescription$ Draw a card for each attacking creature. A:SP$ Draw | Cost$ 2 U | NumCards$ X | References$ X | SpellDescription$ Draw a card for each attacking creature.
SVar:X:Count$Valid Creature.attacking SVar:X:Count$Valid Creature.attacking
SVar:RemAIDeck:True SVar:NeedsToPlay:Creature.attacking
SVar:Picture:http://www.wizards.com/global/images/magic/general/keep_watch.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/keep_watch.jpg
Oracle:Draw a card for each attacking creature. Oracle:Draw a card for each attacking creature.

View File

@@ -3,7 +3,6 @@ ManaCost:2 U
Types:Creature Bird Wizard Types:Creature Bird Wizard
PT:1/2 PT:1/2
K:Flying K:Flying
A:AB$ ChangeZone | Cost$ T tapXType<2/Bird> | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target permanent to its owner's hand. A:AB$ ChangeZone | Cost$ T tapXType<2/Bird> | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Hand | AILogic$ AtOppEOT | SpellDescription$ Return target permanent to its owner's hand.
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/keeper_of_the_nine_gales.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/keeper_of_the_nine_gales.jpg
Oracle:Flying\n{T}, Tap two untapped Birds you control: Return target permanent to its owner's hand. Oracle:Flying\n{T}, Tap two untapped Birds you control: Return target permanent to its owner's hand.

View File

@@ -4,6 +4,5 @@ Types:Land
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C} to your mana pool. A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C} to your mana pool.
A:AB$ Pump | Cost$ X R G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | KW$ Trample | References$ X | SpellDescription$ Target creature gets +X/+0 and gains trample until end of turn. A:AB$ Pump | Cost$ X R G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | KW$ Trample | References$ X | SpellDescription$ Target creature gets +X/+0 and gains trample until end of turn.
SVar:X:Count$xPaid SVar:X:Count$xPaid
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kessig_wolf_run.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kessig_wolf_run.jpg
Oracle:{T}: Add {C} to your mana pool.\n{X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn. Oracle:{T}: Add {C} to your mana pool.\n{X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn.

View File

@@ -7,6 +7,6 @@ SVar:TrigChangZone:AB$ ChangeZone | Cost$ 2 B | ChangeType$ Creature.YouCtrl | O
SVar:DBUnearthed:DB$ Animate | Defined$ Remembered | Keywords$ Flying & Trample & Haste | LeaveBattlefield$ Exile | sVars$ KheruMustAttack | Permanent$ True | SubAbility$ DBCleanup | AtEOT$ Exile | StackDescription$ It gains flying, trample, and haste. Exile that card at the beginning of your next end step. If it would leave the battlefield, exile it instead of putting it anywhere else. SVar:DBUnearthed:DB$ Animate | Defined$ Remembered | Keywords$ Flying & Trample & Haste | LeaveBattlefield$ Exile | sVars$ KheruMustAttack | Permanent$ True | SubAbility$ DBCleanup | AtEOT$ Exile | StackDescription$ It gains flying, trample, and haste. Exile that card at the beginning of your next end step. If it would leave the battlefield, exile it instead of putting it anywhere else.
SVar:KheruMustAttack:SVar:MustAttack:True SVar:KheruMustAttack:SVar:MustAttack:True
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:RemAIDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kheru_lich_lord.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kheru_lich_lord.jpg
Oracle:At the beginning of your upkeep, you may pay {2}{B}. If you do, return a creature card at random from your graveyard to the battlefield. It gains flying, trample, and haste. Exile that card at the beginning of your next end step. If it would leave the battlefield, exile it instead of putting it anywhere else. Oracle:At the beginning of your upkeep, you may pay {2}{B}. If you do, return a creature card at random from your graveyard to the battlefield. It gains flying, trample, and haste. Exile that card at the beginning of your next end step. If it would leave the battlefield, exile it instead of putting it anywhere else.

View File

@@ -5,7 +5,8 @@ A:SP$ ChooseType | Cost$ 5 G G | Defined$ You | Type$ Creature | SubAbility$ DBD
SVar:DBDigUntil:DB$ DigUntil | Amount$ X | References$ X | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | Valid$ Creature.ChosenType+YouOwn | ValidDescription$ creature with chosen type | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | FoundDestination$ Battlefield | SubAbility$ DBShuffle SVar:DBDigUntil:DB$ DigUntil | Amount$ X | References$ X | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | Valid$ Creature.ChosenType+YouOwn | ValidDescription$ creature with chosen type | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | FoundDestination$ Battlefield | SubAbility$ DBShuffle
SVar:DBShuffle:DB$ Shuffle | Defined$ You SVar:DBShuffle:DB$ Shuffle | Defined$ You
SVar:X:Count$Valid Creature.ChosenType+YouCtrl SVar:X:Count$Valid Creature.ChosenType+YouCtrl
SVar:RemAIDeck:True SVar:RemRandomDeck:True
SVar:NeedsToPlay:Creature #TODO: This could benefit from something like "Creature.YouCtrl+sharesCreatureTypeWithAnotherCreature" (doesn't exist in code yet)
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
SVar:Picture:http://www.wizards.com/global/images/magic/general/kindred_summons.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kindred_summons.jpg
Oracle:Choose a creature type. Reveal cards from the top of your library until you reveal X creature cards of the chosen type, where X is the number of creatures you control of that type. Put those cards onto the battlefield, then shuffle the rest of the revealed cards into your library. Oracle:Choose a creature type. Reveal cards from the top of your library until you reveal X creature cards of the chosen type, where X is the number of creatures you control of that type. Put those cards onto the battlefield, then shuffle the rest of the revealed cards into your library.

View File

@@ -3,6 +3,5 @@ ManaCost:W
Types:Creature Fox Cleric Types:Creature Fox Cleric
PT:0/1 PT:0/1
A:AB$ Tap | Cost$ T | ValidTgts$ Spirit | TgtPrompt$ Select target Spirit | SpellDescription$ Tap target Spirit. A:AB$ Tap | Cost$ T | ValidTgts$ Spirit | TgtPrompt$ Select target Spirit | SpellDescription$ Tap target Spirit.
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kitsune_diviner.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kitsune_diviner.jpg
Oracle:{T}: Tap target Spirit. Oracle:{T}: Tap target Spirit.

View File

@@ -7,6 +7,5 @@ SVar:EliteGuardEffect:DB$ Effect | Name$ Elite Guard Escort | Triggers$ LostTheG
SVar:LostTheGuarded:Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ Battlefield | Destination$ Any | Execute$ EliteDefence | TriggerDescription$ When the targeted creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard. SVar:LostTheGuarded:Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ Battlefield | Destination$ Any | Execute$ EliteDefence | TriggerDescription$ When the targeted creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard.
SVar:EliteDefence:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ ExileEffect SVar:EliteDefence:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ ExileEffect
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kjeldoran_elite_guard.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kjeldoran_elite_guard.jpg
Oracle:{T}: Target creature gets +2/+2 until end of turn. When that creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard. Activate this ability only during combat. Oracle:{T}: Target creature gets +2/+2 until end of turn. When that creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard. Activate this ability only during combat.

View File

@@ -7,6 +7,5 @@ SVar:KjeldoranGuardEffect:DB$ Effect | Name$ Kjeldoran Guard Effect | Triggers$
SVar:TrigSacGuard:Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ Battlefield | Destination$ Any | Execute$ EliteDefence | TriggerDescription$ When the targeted creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard. SVar:TrigSacGuard:Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ Battlefield | Destination$ Any | Execute$ EliteDefence | TriggerDescription$ When the targeted creature leaves the battlefield this turn, sacrifice Kjeldoran Elite Guard.
SVar:EliteDefence:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ ExileEffect SVar:EliteDefence:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ ExileEffect
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kjeldoran_guard.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kjeldoran_guard.jpg
Oracle:{T}: Target creature gets +1/+1 until end of turn. When that creature leaves the battlefield this turn, sacrifice Kjeldoran Guard. Activate this ability only during combat and only if defending player controls no snow lands. Oracle:{T}: Target creature gets +1/+1 until end of turn. When that creature leaves the battlefield this turn, sacrifice Kjeldoran Guard. Activate this ability only during combat and only if defending player controls no snow lands.

View File

@@ -4,7 +4,5 @@ Types:Creature Human Knight
PT:2/2 PT:2/2
K:First Strike K:First Strike
A:AB$ Protection | Cost$ W W | Defined$ Self | Gains$ Choice | Choices$ AnyColor | SpellDescription$ CARDNAME gains protection from the color of your choice until end of turn. A:AB$ Protection | Cost$ W W | Defined$ Self | Gains$ Choice | Choices$ AnyColor | SpellDescription$ CARDNAME gains protection from the color of your choice until end of turn.
#Computer isn't very good at picking a color to get protection from yet
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/knight_of_dawn.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/knight_of_dawn.jpg
Oracle:First strike\n{W}{W}: Knight of Dawn gains protection from the color of your choice until end of turn. Oracle:First strike\n{W}{W}: Knight of Dawn gains protection from the color of your choice until end of turn.

View File

@@ -3,6 +3,6 @@ ManaCost:no cost
Types:Legendary Land Types:Legendary Land
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C} to your mana pool. A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C} to your mana pool.
A:AB$ Pump | Cost$ 1 W T | KW$ Prevent all combat damage that would be dealt by CARDNAME. | IsCurse$ True | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | SpellDescription$ Prevent all combat damage that would be dealt by target attacking creature this turn. A:AB$ Pump | Cost$ 1 W T | KW$ Prevent all combat damage that would be dealt by CARDNAME. | IsCurse$ True | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | SpellDescription$ Prevent all combat damage that would be dealt by target attacking creature this turn.
SVar:RemAIDeck:True DeckNeeds:Color$White
SVar:Picture:http://www.wizards.com/global/images/magic/general/kor_haven.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kor_haven.jpg
Oracle:{T}: Add {C} to your mana pool.\n{1}{W}, {T}: Prevent all combat damage that would be dealt by target attacking creature this turn. Oracle:{T}: Add {C} to your mana pool.\n{1}{W}, {T}: Prevent all combat damage that would be dealt by target attacking creature this turn.

View File

@@ -4,7 +4,7 @@ Types:Creature Kor Soldier
PT:2/3 PT:2/3
K:Flying K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a permanent you control to its owner's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a permanent you control to its owner's hand.
SVar:TrigChange:AB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Cost$ 0 | Hidden$ True | Mandatory$ True | ChangeType$ Permanent.YouCtrl SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Permanent.YouCtrl | AIlogic$ NeverBounceItself
SVar:RemAIDeck:True SVar:NeedsToPlay:Creature.YouCtrl+cmcLE2+inZoneBattlefield,Permanent.nonLand+YouCtrl+cmcLE1
SVar:Picture:http://www.wizards.com/global/images/magic/general/kor_skyfisher.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kor_skyfisher.jpg
Oracle:Flying\nWhen Kor Skyfisher enters the battlefield, return a permanent you control to its owner's hand. Oracle:Flying\nWhen Kor Skyfisher enters the battlefield, return a permanent you control to its owner's hand.

View File

@@ -2,6 +2,7 @@ Name:Kuldotha Rebirth
ManaCost:R ManaCost:R
Types:Sorcery Types:Sorcery
A:SP$ Token | Cost$ R Sac<1/Artifact> | TokenAmount$ 3 | TokenOwner$ You | TokenName$ Goblin | TokenTypes$ Creature,Goblin | TokenColors$ Red | TokenPower$ 1 | TokenToughness$ 1 | TokenImage$ r 1 1 goblin SOM | SpellDescription$ Create three 1/1 red Goblin creature tokens. A:SP$ Token | Cost$ R Sac<1/Artifact> | TokenAmount$ 3 | TokenOwner$ You | TokenName$ Goblin | TokenTypes$ Creature,Goblin | TokenColors$ Red | TokenPower$ 1 | TokenToughness$ 1 | TokenImage$ r 1 1 goblin SOM | SpellDescription$ Create three 1/1 red Goblin creature tokens.
SVar:RemAIDeck:True SVar:RemRandomDeck:True
SVar:AIPreference:SacCost$Artifact.token,Artifact.cmcEQ1
SVar:Picture:http://www.wizards.com/global/images/magic/general/kuldotha_rebirth.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kuldotha_rebirth.jpg
Oracle:As an additional cost to cast Kuldotha Rebirth, sacrifice an artifact.\nCreate three 1/1 red Goblin creature tokens. Oracle:As an additional cost to cast Kuldotha Rebirth, sacrifice an artifact.\nCreate three 1/1 red Goblin creature tokens.

View File

@@ -3,7 +3,9 @@ ManaCost:6 B B B
Types:Legendary Creature Demon Spirit Types:Legendary Creature Demon Spirit
PT:9/9 PT:9/9
K:UpkeepCost:B B B B K:UpkeepCost:B B B B
#TODO: the AI can be improved for this, it'll currently only use it to finish off creatures with toughness 1
A:AB$ Pump | Cost$ PayLife<1> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | SpellDescription$ Target creature gets -1/-1 until end of turn. A:AB$ Pump | Cost$ PayLife<1> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | SpellDescription$ Target creature gets -1/-1 until end of turn.
SVar:RemAIDeck:True SVar:NeedsToPlayVar:Z GE4
SVar:Z:Count$Valid Card.YouCtrl+inZoneBattlefield+canProduceManaColor Black
SVar:Picture:http://www.wizards.com/global/images/magic/general/kuro_pitlord.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kuro_pitlord.jpg
Oracle:At the beginning of your upkeep, sacrifice Kuro, Pitlord unless you pay {B}{B}{B}{B}.\nPay 1 life: Target creature gets -1/-1 until end of turn. Oracle:At the beginning of your upkeep, sacrifice Kuro, Pitlord unless you pay {B}{B}{B}{B}.\nPay 1 life: Target creature gets -1/-1 until end of turn.

View File

@@ -28,6 +28,5 @@ A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creat
SVar:DBUntap:DB$ Untap | Defined$ Targeted SVar:DBUntap:DB$ Untap | Defined$ Targeted
A:AB$ Animate | Cost$ AddCounter<0/LOYALTY> | Defined$ Self | Power$ 4 | Toughness$ 4 | Types$ Creature,Human,Soldier | Keywords$ Indestructible | SubAbility$ DBPrevent | Planeswalker$ True | Ultimate$ True | SpellDescription$ Until end of turn, CARDNAME becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn. A:AB$ Animate | Cost$ AddCounter<0/LOYALTY> | Defined$ Self | Power$ 4 | Toughness$ 4 | Types$ Creature,Human,Soldier | Keywords$ Indestructible | SubAbility$ DBPrevent | Planeswalker$ True | Ultimate$ True | SpellDescription$ Until end of turn, CARDNAME becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
SVar:DBPrevent:DB$ Pump | Defined$ Self | KW$ Prevent all damage that would be dealt to CARDNAME. SVar:DBPrevent:DB$ Pump | Defined$ Self | KW$ Prevent all damage that would be dealt to CARDNAME.
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/gideon_battle_forged.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/gideon_battle_forged.jpg
Oracle:[+2]: Up to one target creature an opponent controls attacks Gideon, Battle-Forged during its controller's next turn if able.\n[+1]: Until your next turn, target creature gains indestructible. Untap that creature.\n[0]: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn. Oracle:[+2]: Up to one target creature an opponent controls attacks Gideon, Battle-Forged during its controller's next turn if able.\n[+1]: Until your next turn, target creature gains indestructible. Untap that creature.\n[0]: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.