From cc0fdb302b678cec4e7c57ec5425ecdd31cd2230 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 7 Oct 2017 05:04:05 +0000 Subject: [PATCH] - RemAIDeck update: next iteration. --- .../java/forge/ai/ability/ChangeZoneAi.java | 12 +++++++-- .../main/java/forge/ai/ability/PumpAi.java | 4 +++ .../java/forge/game/card/CardProperty.java | 25 +++++++++++++------ .../cardsfolder/k/kamahl_fist_of_krosa.txt | 1 - .../k/kami_of_twisted_reflection.txt | 3 +-- .../res/cardsfolder/k/karametras_favor.txt | 3 +-- forge-gui/res/cardsfolder/k/karoo.txt | 2 +- .../res/cardsfolder/k/karplusan_minotaur.txt | 4 +-- .../cardsfolder/k/kazuuls_toll_collector.txt | 2 +- forge-gui/res/cardsfolder/k/keep_watch.txt | 2 +- .../k/keeper_of_the_nine_gales.txt | 3 +-- .../res/cardsfolder/k/kessig_wolf_run.txt | 1 - .../res/cardsfolder/k/kheru_lich_lord.txt | 2 +- .../res/cardsfolder/k/kindred_summons.txt | 5 ++-- .../res/cardsfolder/k/kitsune_diviner.txt | 1 - .../cardsfolder/k/kjeldoran_elite_guard.txt | 1 - .../res/cardsfolder/k/kjeldoran_guard.txt | 1 - .../res/cardsfolder/k/knight_of_dawn.txt | 2 -- forge-gui/res/cardsfolder/k/kor_haven.txt | 2 +- forge-gui/res/cardsfolder/k/kor_skyfisher.txt | 4 +-- .../res/cardsfolder/k/kuldotha_rebirth.txt | 3 ++- forge-gui/res/cardsfolder/k/kuro_pitlord.txt | 4 ++- .../cardsfolder/k/kytheon_hero_of_akros.txt | 1 - 23 files changed, 51 insertions(+), 37 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index 8833ce27d2f..559a510da5d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -700,7 +700,7 @@ public class ChangeZoneAi extends SpellAbilityAi { protected boolean checkPhaseRestrictions(Player ai, SpellAbility sa, PhaseHandler ph) { 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); } @@ -809,6 +809,14 @@ public class ChangeZoneAi extends SpellAbilityAi { if (sa.hasParam("AITgts")) { list = CardLists.getValidCards(list, sa.getParam("AITgts"), ai, source); } + if (sa.hasParam("AITgtsOnlyBetterThanSelf")) { + list = CardLists.filter(list, new Predicate() { + @Override + public boolean apply(Card card) { + return ComputerUtilCard.evaluateCreature(card) > ComputerUtilCard.evaluateCreature(source) + 30; + } + }); + } if (source.isInZone(ZoneType.Hand)) { 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"); if ("NeverBounceItself".equals(logic)) { 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. fetchList.remove(source); } diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java index 44f9ee55818..e4d82602dce 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java @@ -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 (ComputerUtil.activateForCost(sa, ai)) { return pumpMandatoryTarget(ai, sa); diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index ed9ab7a2e69..31f5d3dde80 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1,14 +1,6 @@ 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 forge.card.ColorSet; import forge.card.MagicColor; import forge.game.Direction; @@ -25,7 +17,12 @@ import forge.game.trigger.Trigger; import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.util.Expressions; +import forge.util.TextUtil; import forge.util.collect.FCollectionView; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.List; public class CardProperty { @@ -848,6 +845,14 @@ public class CardProperty { if (!card.canProduceSameManaTypeWith(source)) { 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")) { if (property.equals("sharesNameWith")) { if (!card.sharesNameWith(source)) { @@ -1291,6 +1296,10 @@ public class CardProperty { if (!card.isEquipping()) { return false; } + } else if (property.startsWith("notEquipping")) { + if (card.isEquipping()) { + return false; + } } else if (property.startsWith("token")) { if (!card.isToken()) { return false; diff --git a/forge-gui/res/cardsfolder/k/kamahl_fist_of_krosa.txt b/forge-gui/res/cardsfolder/k/kamahl_fist_of_krosa.txt index ce0a7cb28e9..488df01d083 100644 --- a/forge-gui/res/cardsfolder/k/kamahl_fist_of_krosa.txt +++ b/forge-gui/res/cardsfolder/k/kamahl_fist_of_krosa.txt @@ -4,6 +4,5 @@ Types:Legendary Creature Human Druid 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$ 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 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. diff --git a/forge-gui/res/cardsfolder/k/kami_of_twisted_reflection.txt b/forge-gui/res/cardsfolder/k/kami_of_twisted_reflection.txt index 27525bf67f3..927bc94ac67 100644 --- a/forge-gui/res/cardsfolder/k/kami_of_twisted_reflection.txt +++ b/forge-gui/res/cardsfolder/k/kami_of_twisted_reflection.txt @@ -2,7 +2,6 @@ Name:Kami of Twisted Reflection ManaCost:1 U U Types:Creature Spirit 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. -SVar:RemAIDeck:True +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: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. diff --git a/forge-gui/res/cardsfolder/k/karametras_favor.txt b/forge-gui/res/cardsfolder/k/karametras_favor.txt index 774d665d32a..f35d2f8df73 100644 --- a/forge-gui/res/cardsfolder/k/karametras_favor.txt +++ b/forge-gui/res/cardsfolder/k/karametras_favor.txt @@ -4,10 +4,9 @@ Types:Enchantment Aura K:Enchant creature 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. -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." SVar:AnyMana:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color to your mana pool. SVar:NonStackingAttachEffect:True -SVar:RemAIDeck:True 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." diff --git a/forge-gui/res/cardsfolder/k/karoo.txt b/forge-gui/res/cardsfolder/k/karoo.txt index c15a8ad61cb..eec70203c3d 100644 --- a/forge-gui/res/cardsfolder/k/karoo.txt +++ b/forge-gui/res/cardsfolder/k/karoo.txt @@ -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. 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:RemAIDeck:True +SVar:NeedsToPlay:Plains.YouCtrl+inZoneBattlefield+untapped 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. diff --git a/forge-gui/res/cardsfolder/k/karplusan_minotaur.txt b/forge-gui/res/cardsfolder/k/karplusan_minotaur.txt index abe0754efa6..32bd7802c0c 100644 --- a/forge-gui/res/cardsfolder/k/karplusan_minotaur.txt +++ b/forge-gui/res/cardsfolder/k/karplusan_minotaur.txt @@ -4,9 +4,9 @@ Types:Creature Minotaur Warrior PT:3/3 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. -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. -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: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. diff --git a/forge-gui/res/cardsfolder/k/kazuuls_toll_collector.txt b/forge-gui/res/cardsfolder/k/kazuuls_toll_collector.txt index dca39bc50bb..39ee6170f70 100644 --- a/forge-gui/res/cardsfolder/k/kazuuls_toll_collector.txt +++ b/forge-gui/res/cardsfolder/k/kazuuls_toll_collector.txt @@ -2,7 +2,7 @@ Name:Kazuul's Toll Collector ManaCost:2 R Types:Creature Ogre Warrior 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:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/kazuuls_toll_collector.jpg diff --git a/forge-gui/res/cardsfolder/k/keep_watch.txt b/forge-gui/res/cardsfolder/k/keep_watch.txt index 20dfd204129..45cf7f3562e 100644 --- a/forge-gui/res/cardsfolder/k/keep_watch.txt +++ b/forge-gui/res/cardsfolder/k/keep_watch.txt @@ -3,6 +3,6 @@ ManaCost:2 U Types:Instant 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:RemAIDeck:True +SVar:NeedsToPlay:Creature.attacking SVar:Picture:http://www.wizards.com/global/images/magic/general/keep_watch.jpg Oracle:Draw a card for each attacking creature. diff --git a/forge-gui/res/cardsfolder/k/keeper_of_the_nine_gales.txt b/forge-gui/res/cardsfolder/k/keeper_of_the_nine_gales.txt index 56d3acaf44a..19d3b82cab2 100644 --- a/forge-gui/res/cardsfolder/k/keeper_of_the_nine_gales.txt +++ b/forge-gui/res/cardsfolder/k/keeper_of_the_nine_gales.txt @@ -3,7 +3,6 @@ ManaCost:2 U Types:Creature Bird Wizard PT:1/2 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. -SVar:RemAIDeck:True +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: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. diff --git a/forge-gui/res/cardsfolder/k/kessig_wolf_run.txt b/forge-gui/res/cardsfolder/k/kessig_wolf_run.txt index ca82ef67e48..4dc9744abf2 100644 --- a/forge-gui/res/cardsfolder/k/kessig_wolf_run.txt +++ b/forge-gui/res/cardsfolder/k/kessig_wolf_run.txt @@ -4,6 +4,5 @@ Types:Land 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. SVar:X:Count$xPaid -SVar:RemAIDeck:True 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. diff --git a/forge-gui/res/cardsfolder/k/kheru_lich_lord.txt b/forge-gui/res/cardsfolder/k/kheru_lich_lord.txt index 569f916d138..c80b70c2e52 100644 --- a/forge-gui/res/cardsfolder/k/kheru_lich_lord.txt +++ b/forge-gui/res/cardsfolder/k/kheru_lich_lord.txt @@ -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:KheruMustAttack:SVar:MustAttack: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 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. diff --git a/forge-gui/res/cardsfolder/k/kindred_summons.txt b/forge-gui/res/cardsfolder/k/kindred_summons.txt index e2406f0a311..e262d33d9c5 100644 --- a/forge-gui/res/cardsfolder/k/kindred_summons.txt +++ b/forge-gui/res/cardsfolder/k/kindred_summons.txt @@ -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:DBShuffle:DB$ Shuffle | Defined$ You SVar:X:Count$Valid Creature.ChosenType+YouCtrl -SVar:RemAIDeck:True -SVar:NeedsToPlay:Creature +SVar:RemRandomDeck:True +#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 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. diff --git a/forge-gui/res/cardsfolder/k/kitsune_diviner.txt b/forge-gui/res/cardsfolder/k/kitsune_diviner.txt index c0d534f8983..1aab2360b53 100644 --- a/forge-gui/res/cardsfolder/k/kitsune_diviner.txt +++ b/forge-gui/res/cardsfolder/k/kitsune_diviner.txt @@ -3,6 +3,5 @@ ManaCost:W Types:Creature Fox Cleric PT:0/1 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 Oracle:{T}: Tap target Spirit. diff --git a/forge-gui/res/cardsfolder/k/kjeldoran_elite_guard.txt b/forge-gui/res/cardsfolder/k/kjeldoran_elite_guard.txt index 7a7133e7401..78ea491d155 100644 --- a/forge-gui/res/cardsfolder/k/kjeldoran_elite_guard.txt +++ b/forge-gui/res/cardsfolder/k/kjeldoran_elite_guard.txt @@ -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:EliteDefence:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ ExileEffect 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 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. diff --git a/forge-gui/res/cardsfolder/k/kjeldoran_guard.txt b/forge-gui/res/cardsfolder/k/kjeldoran_guard.txt index b6e228f6ef4..4fd1a406318 100644 --- a/forge-gui/res/cardsfolder/k/kjeldoran_guard.txt +++ b/forge-gui/res/cardsfolder/k/kjeldoran_guard.txt @@ -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:EliteDefence:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ ExileEffect 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 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. diff --git a/forge-gui/res/cardsfolder/k/knight_of_dawn.txt b/forge-gui/res/cardsfolder/k/knight_of_dawn.txt index 9f1396a91e6..a7da925b896 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_dawn.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_dawn.txt @@ -4,7 +4,5 @@ Types:Creature Human Knight PT:2/2 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. -#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 Oracle:First strike\n{W}{W}: Knight of Dawn gains protection from the color of your choice until end of turn. diff --git a/forge-gui/res/cardsfolder/k/kor_haven.txt b/forge-gui/res/cardsfolder/k/kor_haven.txt index 850aee81dc6..fd2d932656b 100644 --- a/forge-gui/res/cardsfolder/k/kor_haven.txt +++ b/forge-gui/res/cardsfolder/k/kor_haven.txt @@ -3,6 +3,6 @@ ManaCost:no cost Types:Legendary Land 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. -SVar:RemAIDeck:True +DeckNeeds:Color$White 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. diff --git a/forge-gui/res/cardsfolder/k/kor_skyfisher.txt b/forge-gui/res/cardsfolder/k/kor_skyfisher.txt index e3bf47dc2a6..7b3a64dd45c 100644 --- a/forge-gui/res/cardsfolder/k/kor_skyfisher.txt +++ b/forge-gui/res/cardsfolder/k/kor_skyfisher.txt @@ -4,7 +4,7 @@ Types:Creature Kor Soldier PT:2/3 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. -SVar:TrigChange:AB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Cost$ 0 | Hidden$ True | Mandatory$ True | ChangeType$ Permanent.YouCtrl -SVar:RemAIDeck:True +SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Permanent.YouCtrl | AIlogic$ NeverBounceItself +SVar:NeedsToPlay:Creature.YouCtrl+cmcLE2+inZoneBattlefield,Permanent.nonLand+YouCtrl+cmcLE1 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. diff --git a/forge-gui/res/cardsfolder/k/kuldotha_rebirth.txt b/forge-gui/res/cardsfolder/k/kuldotha_rebirth.txt index 6204131b293..ecc5bdb5031 100644 --- a/forge-gui/res/cardsfolder/k/kuldotha_rebirth.txt +++ b/forge-gui/res/cardsfolder/k/kuldotha_rebirth.txt @@ -2,6 +2,7 @@ Name:Kuldotha Rebirth ManaCost:R 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. -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 Oracle:As an additional cost to cast Kuldotha Rebirth, sacrifice an artifact.\nCreate three 1/1 red Goblin creature tokens. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/k/kuro_pitlord.txt b/forge-gui/res/cardsfolder/k/kuro_pitlord.txt index e8fcc0df8db..bd0691a9b5e 100644 --- a/forge-gui/res/cardsfolder/k/kuro_pitlord.txt +++ b/forge-gui/res/cardsfolder/k/kuro_pitlord.txt @@ -3,7 +3,9 @@ ManaCost:6 B B B Types:Legendary Creature Demon Spirit PT:9/9 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. -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 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. diff --git a/forge-gui/res/cardsfolder/k/kytheon_hero_of_akros.txt b/forge-gui/res/cardsfolder/k/kytheon_hero_of_akros.txt index 6a1e1e08b32..ebf7e5cc5c5 100644 --- a/forge-gui/res/cardsfolder/k/kytheon_hero_of_akros.txt +++ b/forge-gui/res/cardsfolder/k/kytheon_hero_of_akros.txt @@ -28,6 +28,5 @@ A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creat 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. 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 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.