From 6562a0466773e1457730b2bdb09eb4ada46841fb Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Tue, 27 Jul 2021 04:59:50 +0000 Subject: [PATCH] Class: use Static Ability to follow CR --- .../ability/effects/ClassLevelUpEffect.java | 7 +++ .../src/main/java/forge/game/card/Card.java | 55 ++++++++---------- .../java/forge/game/card/CardFactoryUtil.java | 56 ++++++++++++++----- .../game/staticability/StaticAbility.java | 2 +- .../res/cardsfolder/b/barbarian_class.txt | 9 +-- forge-gui/res/cardsfolder/b/bard_class.txt | 12 ++-- .../res/cardsfolder/b/brimstone_mage.txt | 11 ++-- .../res/cardsfolder/c/caravan_escort.txt | 7 +-- .../res/cardsfolder/c/champions_drake.txt | 4 +- forge-gui/res/cardsfolder/c/cleric_class.txt | 9 +-- .../res/cardsfolder/c/coralhelm_commander.txt | 4 +- forge-gui/res/cardsfolder/d/druid_class.txt | 9 +-- .../cardsfolder/e/enclave_cryptologist.txt | 11 ++-- forge-gui/res/cardsfolder/f/fighter_class.txt | 9 +-- .../res/cardsfolder/g/guul_draz_assassin.txt | 7 +-- .../res/cardsfolder/h/hada_spy_patrol.txt | 7 +-- .../cardsfolder/h/hedron_field_purists.txt | 10 ++-- .../res/cardsfolder/i/ikiral_outrider.txt | 7 +-- .../res/cardsfolder/j/joraga_treespeaker.txt | 11 ++-- .../res/cardsfolder/k/kabira_vindicator.txt | 11 ++-- .../res/cardsfolder/k/kargan_dragonlord.txt | 6 +- .../res/cardsfolder/k/kazandu_tuskcaller.txt | 11 ++-- .../cardsfolder/k/knight_of_cliffhaven.txt | 7 +-- .../cardsfolder/l/lighthouse_chronologist.txt | 7 +-- .../l/lord_of_shatterskull_pass.txt | 9 +-- forge-gui/res/cardsfolder/m/monk_class.txt | 11 ++-- .../res/cardsfolder/n/nirkana_cutthroat.txt | 7 +-- forge-gui/res/cardsfolder/n/null_champion.txt | 9 +-- forge-gui/res/cardsfolder/p/paladin_class.txt | 9 +-- forge-gui/res/cardsfolder/r/ranger_class.txt | 11 ++-- forge-gui/res/cardsfolder/r/rogue_class.txt | 9 +-- .../res/cardsfolder/s/skywatcher_adept.txt | 7 +-- .../res/cardsfolder/s/sorcerer_class.txt | 9 +-- .../res/cardsfolder/s/student_of_warfare.txt | 7 +-- .../res/cardsfolder/t/transcendent_master.txt | 7 +-- forge-gui/res/cardsfolder/w/warlock_class.txt | 9 +-- forge-gui/res/cardsfolder/w/wizard_class.txt | 9 +-- .../res/cardsfolder/z/zulaport_enforcer.txt | 5 +- 38 files changed, 192 insertions(+), 215 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ClassLevelUpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ClassLevelUpEffect.java index a192c238775..5c7aafc7644 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ClassLevelUpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ClassLevelUpEffect.java @@ -21,6 +21,13 @@ public class ClassLevelUpEffect extends SpellAbilityEffect { final int level = host.getClassLevel() + 1; host.setClassLevel(level); + // need to run static ability to get Trigger online + game.getAction().checkStaticAbilities(); + + // Re-register triggers for target card + game.getTriggerHandler().clearActiveTriggers(host, null); + game.getTriggerHandler().registerActiveTrigger(host, false); + // Run ClassLevelGained trigger final Map runParams = AbilityKey.mapFromCard(host); runParams.put(AbilityKey.ClassLevel, level); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 907997b3d9d..ad445fd87dd 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -34,7 +34,6 @@ import org.apache.commons.lang3.tuple.Pair; import com.esotericsoftware.minlog.Log; import com.google.common.base.Predicates; -import com.google.common.base.Strings; import com.google.common.collect.HashBasedTable; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -2040,8 +2039,6 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } else if (inst.getKeyword().equals(Keyword.COMPANION)) { sbLong.append("Companion — "); sbLong.append(((Companion)inst).getDescription()); - } else if (keyword.endsWith(".") && !keyword.startsWith("Haunt")) { - sbLong.append(keyword).append("\r\n"); } else if (keyword.startsWith("Presence") || keyword.startsWith("MayFlash")) { // Pseudo keywords, only print Reminder sbLong.append(inst.getReminderText()); @@ -2139,7 +2136,8 @@ public class Card extends GameEntity implements Comparable, IHasSVars { || keyword.startsWith("Amplify") || keyword.startsWith("Ninjutsu") || keyword.startsWith("Adapt") || keyword.startsWith("Transfigure") || keyword.startsWith("Aura swap") || keyword.startsWith("Cycling") || keyword.startsWith("TypeCycling") - || keyword.startsWith("Encore") || keyword.startsWith("Mutate") || keyword.startsWith("Dungeon")) { + || keyword.startsWith("Encore") || keyword.startsWith("Mutate") || keyword.startsWith("Dungeon") + || keyword.startsWith("Class") || keyword.startsWith("Saga")) { // keyword parsing takes care of adding a proper description } else if (keyword.startsWith("CantBeBlockedByAmount")) { sbLong.append(getName()).append(" can't be blocked "); @@ -2158,15 +2156,9 @@ public class Card extends GameEntity implements Comparable, IHasSVars { // need to get SpellDescription from Svar String desc = AbilityFactory.getMapParams(getSVar(k[1])).get("SpellDescription"); sbLong.append(desc); - } else if (keyword.startsWith("Saga")) { - String[] k = keyword.split(":"); - String desc = "(As this Saga enters and after your draw step, " - + " add a lore counter. Sacrifice after " + Strings.repeat("I", Integer.valueOf(k[1])) + ".)"; - sbLong.append(desc); - } else if (keyword.startsWith("Class")) { - sbLong.append("(Gain the next level as a sorcery to add its ability.)"); - } - else { + } else if (keyword.endsWith(".") && !keyword.startsWith("Haunt")) { + sbLong.append(keyword).append("\r\n"); + } else { if ((i != 0) && (sb.length() != 0)) { sb.append(", "); } @@ -2241,6 +2233,14 @@ public class Card extends GameEntity implements Comparable, IHasSVars { return TextUtil.fastReplace(result, "CARDNAME", CardTranslation.getTranslatedName(state.getName())); } + if (type.hasSubtype("Class")) { + sb.append("(Gain the next level as a sorcery to add its ability.)").append(linebreak); + } + + if (type.hasSubtype("Saga")) { + sb.append("(As this Saga enters and after your draw step, add a lore counter. Sacrifice after "); + sb.append(TextUtil.toRoman(getFinalChapterNr())).append(".)").append(linebreak); + } if (monstrous) { sb.append("Monstrous\r\n"); } @@ -2304,8 +2304,10 @@ public class Card extends GameEntity implements Comparable, IHasSVars { if (!trig.isSecondary() && !trig.isClassAbility()) { boolean disabled = false; // Disable text of other rooms - if (type.isDungeon() && !trig.getOverridingAbility().getParam("RoomName").equals(getCurrentRoom())) { - disabled = true; + if (type.isDungeon()) { + disabled = !trig.getOverridingAbility().getParam("RoomName").equals(getCurrentRoom()); + } else { + disabled = getGame() != null && !trig.requirementsCheck(getGame()); } String trigStr = trig.replaceAbilityText(trig.toString(), state); if (disabled) sb.append(grayTag); @@ -2323,7 +2325,11 @@ public class Card extends GameEntity implements Comparable, IHasSVars { if (!stAb.isSecondary() && !stAb.isClassAbility()) { final String stAbD = stAb.toString(); if (!stAbD.equals("")) { - sb.append(stAbD).append(linebreak); + boolean disabled = getGame() != null && !stAb.checkConditions(); + if (disabled) sb.append(grayTag); + sb.append(stAbD); + if (disabled) sb.append(endTag); + sb.append(linebreak); } } } @@ -2408,22 +2414,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { // Currently the maximum levels of all Class cards are all 3 for (int level = 1; level <= 3; ++level) { boolean disabled = level > getClassLevel() && isInZone(ZoneType.Battlefield); - for (final Trigger trig : state.getTriggers()) { - if (trig.isClassLevelNAbility(level) && !trig.isSecondary()) { - if (disabled) sb.append(grayTag); - sb.append(trig.toString()); - if (disabled) sb.append(endTag); - sb.append(linebreak); - } - } - for (final ReplacementEffect re : state.getReplacementEffects()) { - if (re.isClassLevelNAbility(level) && !re.isSecondary()) { - if (disabled) sb.append(grayTag); - sb.append(re.getDescription()); - if (disabled) sb.append(endTag); - sb.append(linebreak); - } - } + // Class second part is a static ability that grants the other abilities for (final StaticAbility st : state.getStaticAbilities()) { if (st.isClassLevelNAbility(level) && !st.isSecondary()) { if (disabled) sb.append(grayTag); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 674b7144116..2c10561077f 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2601,23 +2601,17 @@ public class CardFactoryUtil { inst.addSpellAbility(sa); } else if (keyword.startsWith("Class")) { final String[] k = keyword.split(":"); - final String[] costs = k[2].split(","); - if (costs.length != Integer.valueOf(k[1]) - 1) { - throw new RuntimeException("Class max differ from cost amount"); - } + final int level = Integer.valueOf(k[1]); - for (int i = 0; i < costs.length; ++i) { - final String cost = costs[i]; - final StringBuilder sbClass = new StringBuilder(); - sbClass.append("AB$ ClassLevelUp | Cost$ ").append(cost); - sbClass.append(" | ClassLevel$ EQ").append(i + 1); - sbClass.append(" | SorcerySpeed$ True"); - sbClass.append(" | StackDescription$ SpellDescription | SpellDescription$ Level ").append(i + 2); + final StringBuilder sbClass = new StringBuilder(); + sbClass.append("AB$ ClassLevelUp | Cost$ ").append(k[2]); + sbClass.append(" | ClassLevel$ EQ").append(level - 1); + sbClass.append(" | SorcerySpeed$ True"); + sbClass.append(" | StackDescription$ SpellDescription | SpellDescription$ Level ").append(level); - final SpellAbility sa = AbilityFactory.getAbility(sbClass.toString(), card); - sa.setIntrinsic(intrinsic); - inst.addSpellAbility(sa); - } + final SpellAbility sa = AbilityFactory.getAbility(sbClass.toString(), card); + sa.setIntrinsic(intrinsic); + inst.addSpellAbility(sa); } else if (keyword.startsWith("Dash")) { final String[] k = keyword.split(":"); final Cost dashCost = new Cost(k[1], false); @@ -3368,6 +3362,38 @@ public class CardFactoryUtil { svars.put("CipherTrigger", trig); svars.put("PlayEncoded", ab); + } else if (keyword.startsWith("Class")) { + final String[] k = keyword.split(":"); + final String level = k[1]; + final String params = k[3]; + + // get Description from CardTraits + StringBuilder desc = new StringBuilder(); + boolean descAdded = false; + Map mapParams = AbilityFactory.getMapParams(params); + if (mapParams.containsKey("AddTrigger")) { + for (String s : mapParams.get("AddTrigger").split(" & ")) { + if (descAdded) { + desc.append("\r\n"); + } + desc.append(AbilityFactory.getMapParams(state.getSVar(s)).get("TriggerDescription")); + descAdded = true; + } + } + if (mapParams.containsKey("AddStaticAbility")) { + for (String s : mapParams.get("AddStaticAbility").split(" & ")) { + if (descAdded) { + desc.append("\r\n"); + } + desc.append(AbilityFactory.getMapParams(state.getSVar(s)).get("Description")); + descAdded = true; + } + } + + effect = "Mode$ Continuous | Affected$ Card.Self | ClassLevel$ " + level + " | " + params; + if (descAdded) { + effect += " | Description$ " + desc.toString(); + } } else if (keyword.startsWith("Dash")) { effect = "Mode$ Continuous | Affected$ Card.Self+dashed | AddKeyword$ Haste"; } else if (keyword.equals("Defender")) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbility.java b/forge-game/src/main/java/forge/game/staticability/StaticAbility.java index ba2f804cedd..022952fe9a0 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbility.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbility.java @@ -456,7 +456,7 @@ public class StaticAbility extends CardTraitBase implements IIdentifiable, Clone */ public final boolean checkConditions() { final Player controller = getHostCard().getController(); - final Game game = controller.getGame(); + final Game game = getHostCard().getGame(); final PhaseHandler ph = game.getPhaseHandler(); if (getHostCard().isPhasedOut()) { diff --git a/forge-gui/res/cardsfolder/b/barbarian_class.txt b/forge-gui/res/cardsfolder/b/barbarian_class.txt index 4a97c7ea426..e31c394d41b 100644 --- a/forge-gui/res/cardsfolder/b/barbarian_class.txt +++ b/forge-gui/res/cardsfolder/b/barbarian_class.txt @@ -1,10 +1,11 @@ Name:Barbarian Class ManaCost:R Types:Enchantment Class -K:Class:3:1 R,2 R -S:Mode$ Continuous | ClassLevel$ 1 | Affected$ You | AddKeyword$ If you would roll one or more dice, instead roll that many dice plus one and ignore the lowest roll. | Description$ If you would roll one or more dice, instead roll that many dice plus one and ignore the lowest roll. -T:Mode$ RolledDieOnce | ClassLevel$ 2 | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigPump | TriggerDescription$ Whenever you roll one or more dice, target creature you control gets +2/+0 and gains menace until end of turn. +S:Mode$ Continuous | Affected$ You | AddKeyword$ If you would roll one or more dice, instead roll that many dice plus one and ignore the lowest roll. | Description$ If you would roll one or more dice, instead roll that many dice plus one and ignore the lowest roll. +K:Class:2:1 R:AddTrigger$ TriggerRoll +SVar:TriggerRoll:Mode$ RolledDieOnce | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigPump | Secondary$ True | TriggerDescription$ Whenever you roll one or more dice, target creature you control gets +2/+0 and gains menace until end of turn. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | NumAtt$ 2 | KW$ Menace -S:Mode$ Continuous | ClassLevel$ 3 | EffectZone$ Battlefield | Affected$ Creature.YouCtrl | AddKeyword$ Haste | Description$ Creatures you control have haste. +K:Class:3:2 R:AddStaticAbility$ SHaste +SVar:SHaste:Mode$ Continuous | EffectZone$ Battlefield | Affected$ Creature.YouCtrl | AddKeyword$ Haste | Secondary$ True | Description$ Creatures you control have haste. SVar:PlayMain1:TRUE Oracle:(Gain the next level as a sorcery to add its ability.)\nIf you would roll one or more dice, instead roll that many dice plus one and ignore the lowest roll.\n{1}{R}: Level 2\nWhenever you roll one or more dice, target creature you control gets +2/+0 and gains menace until end of turn.\n{2}{R}: Level 3\nCreatures you control have haste. diff --git a/forge-gui/res/cardsfolder/b/bard_class.txt b/forge-gui/res/cardsfolder/b/bard_class.txt index d1ccd284847..2d8d4bb1640 100644 --- a/forge-gui/res/cardsfolder/b/bard_class.txt +++ b/forge-gui/res/cardsfolder/b/bard_class.txt @@ -1,12 +1,12 @@ Name:Bard Class ManaCost:R G Types:Enchantment Class -K:Class:3:R G,3 R G -R:Event$ Moved | ClassLevel$ 1 | ActiveZones$ Battlefield | ValidCard$ Creature.Legendary+YouCtrl | ReplaceWith$ EtbAddCounter | Destination$ Battlefield | Description$ Legendary creatures you control enter the battlefield with an additional +1/+1 counter on them. -SVar:EtbAddCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ ToBattlefield -SVar:ToBattlefield:DB$ InternalEtbReplacement -S:Mode$ ReduceCost | ClassLevel$ 2 | ValidCard$ Legendary | Type$ Spell | Activator$ You | Amount$ 1 | Color$ R G | Description$ Legendary spells you cast cost {R}{G} less to cast. This effect reduces only the amount of colored mana you pay. -T:Mode$ SpellCast | ClassLevel$ 3 | ValidCard$ Legendary | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigImpulsiveDraw | TriggerDescription$ Whenever you cast a legendary spell, exile the top two cards of your library. You may play them this turn. +K:ETBReplacement:Other:AddExtraCounter:Mandatory:Battlefield:Creature.Legendary+YouCtrl+Other +SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Legendary creatures you control enter the battlefield with an additional +1/+1 counter on them. +K:Class:2:R G:AddStaticAbility$ SReduceCost +SVar:SReduceCost:Mode$ ReduceCost | ValidCard$ Legendary | Type$ Spell | Activator$ You | Amount$ 1 | Color$ R G | Secondary$ True | Description$ Legendary spells you cast cost {R}{G} less to cast. This effect reduces only the amount of colored mana you pay. +K:Class:3:3 R G:AddTrigger$ TriggerCast +SVar:TriggerCast:Mode$ SpellCast | ValidCard$ Legendary | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigImpulsiveDraw | Secondary$ True | TriggerDescription$ Whenever you cast a legendary spell, exile the top two cards of your library. You may play them this turn. SVar:TrigImpulsiveDraw:DB$ Dig | Defined$ TriggeredPlayer | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | EffectOwner$ TriggeredPlayer | RememberObjects$ RememberedCard | StaticAbilities$ StPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile SVar:StPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play them this turn. diff --git a/forge-gui/res/cardsfolder/b/brimstone_mage.txt b/forge-gui/res/cardsfolder/b/brimstone_mage.txt index 3d4f29ae873..7064219eccd 100644 --- a/forge-gui/res/cardsfolder/b/brimstone_mage.txt +++ b/forge-gui/res/cardsfolder/b/brimstone_mage.txt @@ -4,11 +4,8 @@ Types:Creature Human Shaman PT:2/2 K:Level up:3 R SVar:maxLevel:3 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 3 | AddAbility$ Ping | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-2 2/3 CARDNAME gets {T}: CARDNAME deals 1 damage to any target. -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 4 | AddAbility$ Bolt | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 3+ 2/4 CARDNAME gets {T}: CARDNAME deals 3 damage to any target. -SVar:Ping:AB$DealDamage | Cost$ T | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to any target. -SVar:Bolt:AB$DealDamage | Cost$ T | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target. -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE3_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/brimstone_mage.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 3 | AddAbility$ Ping | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL | Description$ LEVEL 1-2 2/3 CARDNAME gets {T}: CARDNAME deals 1 damage to any target. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 4 | AddAbility$ Bolt | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ 2/4 CARDNAME gets {T}: CARDNAME deals 3 damage to any target. +SVar:Ping:AB$ DealDamage | Cost$ T | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to any target. +SVar:Bolt:AB$ DealDamage | Cost$ T | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target. Oracle:Level up {3}{R} ({3}{R}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n2/3\n{T}: Brimstone Mage deals 1 damage to any target.\nLEVEL 3+\n2/4\n{T}: Brimstone Mage deals 3 damage to any target. diff --git a/forge-gui/res/cardsfolder/c/caravan_escort.txt b/forge-gui/res/cardsfolder/c/caravan_escort.txt index 085d8df0e87..e5fc6cd5914 100644 --- a/forge-gui/res/cardsfolder/c/caravan_escort.txt +++ b/forge-gui/res/cardsfolder/c/caravan_escort.txt @@ -4,9 +4,6 @@ Types:Creature Human Knight PT:1/1 K:Level up:2 SVar:maxLevel:5 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-4 2/2 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 5 | AddKeyword$ First Strike | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 5+ 5/5 CARDNAME has First Strike -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE4_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE5_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/caravan_escort.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE4_LEVEL | Description$ LEVEL 1-4 2/2 +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 5 | IsPresent$ Card.Self+counters_GE5_LEVEL | AddKeyword$ First Strike | Description$ LEVEL 5+ 5/5 CARDNAME has First Strike Oracle:Level up {2} ({2}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-4\n2/2\nLEVEL 5+\n5/5\nFirst strike diff --git a/forge-gui/res/cardsfolder/c/champions_drake.txt b/forge-gui/res/cardsfolder/c/champions_drake.txt index 17b487e23c5..d2213db5ef2 100644 --- a/forge-gui/res/cardsfolder/c/champions_drake.txt +++ b/forge-gui/res/cardsfolder/c/champions_drake.txt @@ -3,7 +3,5 @@ ManaCost:1 U Types:Creature Drake PT:1/1 K:Flying -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 3 | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME gets +3/+3 as long as you control a creature with three or more level counters on it. -SVar:X:Count$Valid Creature.counters_GE3_LEVEL+YouCtrl -SVar:Picture:http://www.wizards.com/global/images/magic/general/champions_drake.jpg +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 3 | IsPresent$ Creature.counters_GE3_LEVEL+YouCtrl | Description$ CARDNAME gets +3/+3 as long as you control a creature with three or more level counters on it. Oracle:Flying\nChampion's Drake gets +3/+3 as long as you control a creature with three or more level counters on it. diff --git a/forge-gui/res/cardsfolder/c/cleric_class.txt b/forge-gui/res/cardsfolder/c/cleric_class.txt index 441b56668e5..b94c34de7b8 100644 --- a/forge-gui/res/cardsfolder/c/cleric_class.txt +++ b/forge-gui/res/cardsfolder/c/cleric_class.txt @@ -1,13 +1,14 @@ Name:Cleric Class ManaCost:W Types:Enchantment Class -K:Class:3:3 W,4 W -R:Event$ GainLife | ClassLevel$ 1 | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ ReplaceGainLife | Description$ If you would gain life, you gain that much life plus 1 instead. +R:Event$ GainLife | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ ReplaceGainLife | Description$ If you would gain life, you gain that much life plus 1 instead. SVar:ReplaceGainLife:DB$ ReplaceEffect | VarName$ LifeGained | VarValue$ X SVar:X:ReplaceCount$LifeGained/Plus.1 -T:Mode$ LifeGained | ClassLevel$ 2 | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put a +1/+1 counter on target creature you control. +K:Class:2:3 W:AddTrigger$ TriggerLife +SVar:TriggerLife:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | Secondary$ True | TriggerDescription$ Whenever you gain life, put a +1/+1 counter on target creature you control. SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 -T:Mode$ ClassLevelGained | ClassLevel$ 3 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigReanimate | TriggerDescription$ When this Class becomes level 3, return target creature card from your graveyard to the battlefield. You gain life equal to its toughness. +K:Class:3:4 W:AddTrigger$ TriggerClassLevel +SVar:TriggerClassLevel:Mode$ ClassLevelGained | ClassLevel$ 3 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigReanimate | Secondary$ True | TriggerDescription$ When this Class becomes level 3, return target creature card from your graveyard to the battlefield. You gain life equal to its toughness. SVar:TrigReanimate:DB$ ChangeZone | ValidTgts$ Creature.YouOwn | TgtPrompt$ Select target creature from your graveyard | Origin$ Graveyard | Destination$ Battlefield | RememberTargets$ True | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ Y | SubAbility$ DBCleanup SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/c/coralhelm_commander.txt b/forge-gui/res/cardsfolder/c/coralhelm_commander.txt index 9831baab50c..eeed54e2952 100644 --- a/forge-gui/res/cardsfolder/c/coralhelm_commander.txt +++ b/forge-gui/res/cardsfolder/c/coralhelm_commander.txt @@ -5,8 +5,8 @@ PT:2/2 K:Level up:1 SVar:maxLevel:4 S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | AddKeyword$ Flying | IsPresent$ Card.Self+counters_GE2_LEVEL+counters_LE3_LEVEL | PresentCompare$ EQ1 | Description$ LEVEL 2-3 3/3 CARDNAME has Flying -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Flying | IsPresent$ Card.Self+counters_GE4_LEVEL | PresentCompare$ EQ1 | Description$ LEVEL 4+ Flying 4/4 CARDNAME has Flying, Other Merfolk you control get +1/+1 -S:Mode$ Continuous | Affected$ Creature.Merfolk+YouCtrl+Other | AddPower$ 1 | AddToughness$ 1 | IsPresent$ Card.Self+counters_GE4_LEVEL | PresentCompare$ EQ1 +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Flying | AddStaticAbility$ SBoost | IsPresent$ Card.Self+counters_GE4_LEVEL | PresentCompare$ EQ1 | Description$ LEVEL 4+ Flying 4/4 CARDNAME has Flying, Other Merfolk you control get +1/+1 +SVar:SBoost:Mode$ Continuous | Affected$ Creature.Merfolk+YouCtrl+Other | AddPower$ 1 | AddToughness$ 1 | IsPresent$ Card.Self+counters_GE4_LEVEL | PresentCompare$ EQ1 DeckHints:Type$Merfolk DeckHas:Ability$Counters Oracle:Level up {1} ({1}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 2-3\n3/3\nFlying\nLEVEL 4+\n4/4\nFlying\nOther Merfolk creatures you control get +1/+1. diff --git a/forge-gui/res/cardsfolder/d/druid_class.txt b/forge-gui/res/cardsfolder/d/druid_class.txt index 09d4dd1692c..c84792ab8b7 100644 --- a/forge-gui/res/cardsfolder/d/druid_class.txt +++ b/forge-gui/res/cardsfolder/d/druid_class.txt @@ -1,11 +1,12 @@ Name:Druid Class ManaCost:1 G Types:Enchantment Class -K:Class:3:2 G,4 G -T:Mode$ ChangesZone | ClassLevel$ 1 | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a land enters the battlefield under your control, you gain 1 life. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a land enters the battlefield under your control, you gain 1 life. SVar:TrigGainLife:DB$GainLife | Defined$ You | LifeAmount$ 1 -S:Mode$ Continuous | ClassLevel$ 2 | Affected$ You | AdjustLandPlays$ 1 | Description$ You may play an additional land on each of your turns. -T:Mode$ ClassLevelGained | ClassLevel$ 3 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigAnimateLand | TriggerDescription$ When this Class becomes level 3, target land you control becomes a creature with haste and "This creature's power and toughness are each equal to the number of lands you control." It's still a land. +K:Class:2:2 G:AddStaticAbility$ SLandPlay +SVar:SLandPlay:Mode$ Continuous | Affected$ You | AdjustLandPlays$ 1 | Secondary$ True | Description$ You may play an additional land on each of your turns. +K:Class:3:4 G:AddTrigger$ TriggerClassLevel +SVar:TriggerClassLevel:Mode$ ClassLevelGained | ClassLevel$ 3 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigAnimateLand | Secondary$ True | TriggerDescription$ When this Class becomes level 3, target land you control becomes a creature with haste and "This creature's power and toughness are each equal to the number of lands you control." It's still a land. SVar:TrigAnimateLand:DB$ Animate | ValidTgts$ Land.YouCtrl | Types$ Creature | Duration$ Permanent | Keywords$ Haste | staticAbilities$ StLandPT SVar:StLandPT:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ This creature's power and toughness are each equal to the number of lands you control. SVar:X:Count$Valid Land.YouCtrl diff --git a/forge-gui/res/cardsfolder/e/enclave_cryptologist.txt b/forge-gui/res/cardsfolder/e/enclave_cryptologist.txt index af89f32f768..c622e9cd239 100644 --- a/forge-gui/res/cardsfolder/e/enclave_cryptologist.txt +++ b/forge-gui/res/cardsfolder/e/enclave_cryptologist.txt @@ -4,12 +4,9 @@ Types:Creature Merfolk Wizard PT:0/1 K:Level up:1 U SVar:maxLevel:3 -S:Mode$ Continuous | Affected$ Card.Self | AddAbility$ Loot | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-2 CARDNAME has {T}: Draw a card, then discard a card. -S:Mode$ Continuous | Affected$ Card.Self | AddAbility$ Draw | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 3+ CARDNAME has {T}: Draw a card. -SVar:Loot:AB$Draw | Cost$ T | NumCards$ 1 | SpellDescription$ Draw a card, then discard a card. | SubAbility$ DBDiscard -SVar:Draw:AB$Draw | Cost$ T | NumCards$ 1 | SpellDescription$ Draw a card. +S:Mode$ Continuous | Affected$ Card.Self | AddAbility$ Loot | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL | Description$ LEVEL 1-2 CARDNAME has {T}: Draw a card, then discard a card. +S:Mode$ Continuous | Affected$ Card.Self | AddAbility$ Draw | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ CARDNAME has {T}: Draw a card. +SVar:Loot:AB$ Draw | Cost$ T | NumCards$ 1 | SpellDescription$ Draw a card, then discard a card. | SubAbility$ DBDiscard +SVar:Draw:AB$ Draw | Cost$ T | NumCards$ 1 | SpellDescription$ Draw a card. SVar:DBDiscard:DB$Discard | Defined$ You | Mode$ TgtChoose | NumCards$ 1 -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LT3_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE3_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/enclave_cryptologist.jpg Oracle:Level up {1}{U} ({1}{U}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n0/1\n{T}: Draw a card, then discard a card.\nLEVEL 3+\n0/1\n{T}: Draw a card. diff --git a/forge-gui/res/cardsfolder/f/fighter_class.txt b/forge-gui/res/cardsfolder/f/fighter_class.txt index 2873d9bb055..24c08394460 100644 --- a/forge-gui/res/cardsfolder/f/fighter_class.txt +++ b/forge-gui/res/cardsfolder/f/fighter_class.txt @@ -1,10 +1,11 @@ Name:Fighter Class ManaCost:R W Types:Enchantment Class -K:Class:3:1 R W,3 R W -T:Mode$ ChangesZone | ClassLevel$ 1 | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, search your library for an Equipment card, reveal it, put it into your hand, then shuffle. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, search your library for an Equipment card, reveal it, put it into your hand, then shuffle. SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.Equipment | ChangeNum$ 1 -S:Mode$ ReduceCost | ClassLevel$ 2 | ValidCard$ Card | ValidSpell$ Activated.Equip | Activator$ You | Amount$ 2 | Description$ Equip abilities you activate cost {2} less to activate. -T:Mode$ Attacks | ClassLevel$ 3 | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigMustBlock | TriggerDescription$ Whenever a creature you control attacks, up to one target creature blocks it this combat if able. +K:Class:2:1 R W:AddStaticAbility$ SReduceCost +SVar:SReduceCost:Mode$ ReduceCost | ValidCard$ Card | ValidSpell$ Activated.Equip | Activator$ You | Amount$ 2 | Secondary$ True | Description$ Equip abilities you activate cost {2} less to activate. +K:Class:3:3 R W:AddTrigger$ TriggerAttacks +SVar:TriggerAttacks:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigMustBlock | Secondary$ True | TriggerDescription$ Whenever a creature you control attacks, up to one target creature blocks it this combat if able. SVar:TrigMustBlock:DB$ MustBlock | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1 | DefinedAttacker$ TriggeredAttacker | BlockAllDefined$ True Oracle:(Gain the next level as a sorcery to add its ability.)\nWhen Fighter Class enters the battlefield, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.\n{1}{R}{W}: Level 2\nEquip abilities you activate cost {2} less to activate.\n{3}{R}{W}: Level 3\nWhenever a creature you control attacks, up to one target creature blocks it this combat if able. diff --git a/forge-gui/res/cardsfolder/g/guul_draz_assassin.txt b/forge-gui/res/cardsfolder/g/guul_draz_assassin.txt index be254507e77..4909e966466 100644 --- a/forge-gui/res/cardsfolder/g/guul_draz_assassin.txt +++ b/forge-gui/res/cardsfolder/g/guul_draz_assassin.txt @@ -4,11 +4,8 @@ Types:Creature Vampire Assassin PT:1/1 K:Level up:1 B SVar:maxLevel:4 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | AddAbility$ LowLvl | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 2-3 2/2 CARDNAME has {B}, {T}: Target creature gets -2/-2 until end of turn. -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddAbility$ HighLvl | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 4+ 4/4 CARDNAME has {B}, {T}: Target creature gets -4/-4 until end of turn. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | AddAbility$ LowLvl | IsPresent$ Card.Self+counters_GE2_LEVEL+counters_LE3_LEVEL | Description$ LEVEL 2-3 2/2 CARDNAME has {B}, {T}: Target creature gets -2/-2 until end of turn. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddAbility$ HighLvl | IsPresent$ Card.Self+counters_GE4_LEVEL | Description$ LEVEL 4+ 4/4 CARDNAME has {B}, {T}: Target creature gets -4/-4 until end of turn. SVar:LowLvl:AB$ Pump | Cost$ B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -2 | NumDef$ -2 | IsCurse$ True | SpellDescription$ Target creature gets -2/-2 until end of turn. SVar:HighLvl:AB$ Pump | Cost$ B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -4 | NumDef$ -4 | IsCurse$ True | SpellDescription$ Target creature gets -4/-4 until end of turn. -SVar:X:Count$Valid Card.Self+counters_GE2_LEVEL+counters_LT4_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE4_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/guul_draz_assassin.jpg Oracle:Level up {1}{B} ({1}{B}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 2-3\n2/2\n{B}, {T}: Target creature gets -2/-2 until end of turn.\nLEVEL 4+\n4/4\n{B}, {T}: Target creature gets -4/-4 until end of turn. diff --git a/forge-gui/res/cardsfolder/h/hada_spy_patrol.txt b/forge-gui/res/cardsfolder/h/hada_spy_patrol.txt index 8659af9ed78..eb73d1a1469 100644 --- a/forge-gui/res/cardsfolder/h/hada_spy_patrol.txt +++ b/forge-gui/res/cardsfolder/h/hada_spy_patrol.txt @@ -4,9 +4,6 @@ Types:Creature Human Rogue PT:1/1 K:Level up:2 U SVar:maxLevel:3 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | AddHiddenKeyword$ Unblockable | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-2 2/2 CARDNAME can't be blocked -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | AddKeyword$ Shroud | AddHiddenKeyword$ Unblockable | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 3+ 3/3 CARDNAME can't be blocked and has Shroud -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE3_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/hada_spy_patrol.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | AddHiddenKeyword$ Unblockable | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL | Description$ LEVEL 1-2 2/2 CARDNAME can't be blocked +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | AddKeyword$ Shroud | AddHiddenKeyword$ Unblockable | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ 3/3 CARDNAME can't be blocked and has Shroud Oracle:Level up {2}{U} ({2}{U}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n2/2\nHada Spy Patrol can't be blocked.\nLEVEL 3+\n3/3\nShroud (This creature can't be the target of spells or abilities.)\nHada Spy Patrol can't be blocked. diff --git a/forge-gui/res/cardsfolder/h/hedron_field_purists.txt b/forge-gui/res/cardsfolder/h/hedron_field_purists.txt index 8aae72ec6ea..16d6eb3a483 100644 --- a/forge-gui/res/cardsfolder/h/hedron_field_purists.txt +++ b/forge-gui/res/cardsfolder/h/hedron_field_purists.txt @@ -4,12 +4,10 @@ Types:Creature Human Cleric PT:0/3 K:Level up:2 W SVar:maxLevel:5 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 4 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-4 1/4 If a source would deal damage to you or a creature you control prevent 1 of that damage. -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 5 | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 5+ 2/5 If a source would deal damage to you or a creature you control prevent 2 of that damage. -R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ You,Creature.YouCtrl | ReplaceWith$ DBReplace1 | PreventionEffect$ True | CheckSVar$ X | SVarCompare$ EQ1 +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 4 | AddReplacementEffects$ RDamage1 | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE4_LEVEL | Description$ LEVEL 1-4 1/4 If a source would deal damage to you or a creature you control prevent 1 of that damage. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 5 | AddReplacementEffects$ RDamage2 | IsPresent$ Card.Self+counters_GE5_LEVEL | Description$ LEVEL 5+ 2/5 If a source would deal damage to you or a creature you control prevent 2 of that damage. +SVar:RDamage1:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ You,Creature.YouCtrl | ReplaceWith$ DBReplace1 | PreventionEffect$ True | Secondary$ True | Description$ If a source would deal damage to you or a creature you control prevent 1 of that damage. SVar:DBReplace1:DB$ ReplaceDamage | Amount$ 1 -R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ You,Creature.YouCtrl | ReplaceWith$ DBReplace2 | PreventionEffect$ True | CheckSVar$ Y | SVarCompare$ EQ1 +SVar:RDamage2:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ You,Creature.YouCtrl | ReplaceWith$ DBReplace2 | PreventionEffect$ True | Secondary$ True | Description$ If a source would deal damage to you or a creature you control prevent 2 of that damage. SVar:DBReplace2:DB$ ReplaceDamage | Amount$ 2 -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LT5_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE5_LEVEL Oracle:Level up {2}{W} ({2}{W}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-4\n1/4\nIf a source would deal damage to you or a creature you control, prevent 1 of that damage.\nLEVEL 5+\n2/5\nIf a source would deal damage to you or a creature you control, prevent 2 of that damage. diff --git a/forge-gui/res/cardsfolder/i/ikiral_outrider.txt b/forge-gui/res/cardsfolder/i/ikiral_outrider.txt index 280dab4194e..e3d0a3f3f45 100644 --- a/forge-gui/res/cardsfolder/i/ikiral_outrider.txt +++ b/forge-gui/res/cardsfolder/i/ikiral_outrider.txt @@ -4,9 +4,6 @@ Types:Creature Human Soldier PT:1/2 K:Level up:4 SVar:maxLevel:4 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 6 | AddKeyword$ Vigilance | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-3 2/6 CARDNAME has Vigilance -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 10 | AddKeyword$ Vigilance | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 4+ 3/10 CARDNAME has Vigilance -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE3_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE4_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/ikiral_outrider.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 6 | AddKeyword$ Vigilance | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE3_LEVEL | Description$ LEVEL 1-3 2/6 CARDNAME has Vigilance +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 10 | AddKeyword$ Vigilance | IsPresent$ Card.Self+counters_GE4_LEVEL | Description$ LEVEL 4+ 3/10 CARDNAME has Vigilance Oracle:Level up {4} ({4}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-3\n2/6\nVigilance\nLEVEL 4+\n3/10\nVigilance diff --git a/forge-gui/res/cardsfolder/j/joraga_treespeaker.txt b/forge-gui/res/cardsfolder/j/joraga_treespeaker.txt index 84b81f302ab..65127812b0a 100644 --- a/forge-gui/res/cardsfolder/j/joraga_treespeaker.txt +++ b/forge-gui/res/cardsfolder/j/joraga_treespeaker.txt @@ -4,11 +4,8 @@ Types:Creature Elf Druid PT:1/1 K:Level up:1 G SVar:maxLevel:5 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 2 | AddAbility$ Mana | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-4 1/2 CARDNAME has "{T}: Add {G}{G}." -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 4 | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 5+ 1/4 Elves you control have "{T}: Add {G}{G}." -S:Mode$ Continuous | Affected$ Card.Elf+YouCtrl | AddAbility$ Mana | CheckSVar$ Y | SVarCompare$ EQ1 -SVar:Mana:AB$Mana | Cost$ T | Produced$ G | Amount$ 2 | SpellDescription$ Add {G}{G}. -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LT5_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE5_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/joraga_treespeaker.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 2 | AddAbility$ ABMana | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE4_LEVEL | Description$ LEVEL 1-4 1/2 CARDNAME has "{T}: Add {G}{G}." +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 4 | AddStaticAbility$ SMana | IsPresent$ Card.Self+counters_GE5_LEVEL | Description$ LEVEL 5+ 1/4 Elves you control have "{T}: Add {G}{G}." +SVar:SMana:Mode$ Continuous | Affected$ Card.Elf+YouCtrl | AddAbility$ ABMana | Secondary$ True | Description$ Elves you control have "{T}: Add {G}{G}." +SVar:ABMana:AB$ Mana | Cost$ T | Produced$ G | Amount$ 2 | SpellDescription$ Add {G}{G}. Oracle:Level up {1}{G} ({1}{G}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-4\n1/2\n{T}: Add {G}{G}.\nLEVEL 5+\n1/4\nElves you control have "{T}: Add {G}{G}." diff --git a/forge-gui/res/cardsfolder/k/kabira_vindicator.txt b/forge-gui/res/cardsfolder/k/kabira_vindicator.txt index 622568b4308..420dab5ece2 100644 --- a/forge-gui/res/cardsfolder/k/kabira_vindicator.txt +++ b/forge-gui/res/cardsfolder/k/kabira_vindicator.txt @@ -4,11 +4,8 @@ Types:Creature Human Knight PT:2/4 K:Level up:2 W SVar:maxLevel:5 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 6 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 2-4 3/6 Other creatures you control get +1/+1. -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 8 | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 5+ 4/8 Other creatures you control get +2/+2. -S:Mode$ Continuous | Affected$ Creature.YouCtrl+Other | AddPower$ 1 | AddToughness$ 1 | CheckSVar$ X | SVarCompare$ EQ1 -S:Mode$ Continuous | Affected$ Creature.YouCtrl+Other | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ Y | SVarCompare$ EQ1 -SVar:X:Count$Valid Card.Self+counters_GE2_LEVEL+counters_LT5_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE5_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/kabira_vindicator.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 6 | AddStaticAbility$ SPump1 | IsPresent$ Card.Self+counters_GE2_LEVEL+counters_LE4_LEVEL | Description$ LEVEL 2-4 3/6 Other creatures you control get +1/+1. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 8 | AddStaticAbility$ SPump2 | IsPresent$ Card.Self+counters_GE5_LEVEL | Description$ LEVEL 5+ 4/8 Other creatures you control get +2/+2. +SVar:SPump1:Mode$ Continuous | Affected$ Creature.YouCtrl+Other | AddPower$ 1 | AddToughness$ 1 | Secondary$ True | Description$ Other creatures you control get +1/+1. +SVar:SPump2:Mode$ Continuous | Affected$ Creature.YouCtrl+Other | AddPower$ 2 | AddToughness$ 2 | Secondary$ True | Description$ Other creatures you control get +2/+2. Oracle:Level up {2}{W} ({2}{W}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 2-4\n3/6\nOther creatures you control get +1/+1.\nLEVEL 5+\n4/8\nOther creatures you control get +2/+2. diff --git a/forge-gui/res/cardsfolder/k/kargan_dragonlord.txt b/forge-gui/res/cardsfolder/k/kargan_dragonlord.txt index 596bae6db27..76905fa023e 100644 --- a/forge-gui/res/cardsfolder/k/kargan_dragonlord.txt +++ b/forge-gui/res/cardsfolder/k/kargan_dragonlord.txt @@ -4,9 +4,7 @@ Types:Creature Human Warrior PT:2/2 K:Level up:R SVar:maxLevel:8 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Flying | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 4-7 4/4 CARDNAME has Flying -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 8 | SetToughness$ 8 | AddKeyword$ Flying & Trample | AddAbility$ Pump | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 8+ 8/8 CARDNAME has Flying and Trample and R: CARDNAME gets +1/+0 until end of turn. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Flying | IsPresent$ Card.Self+counters_GE4_LEVEL+counters_LE7_LEVEL | Description$ LEVEL 4-7 4/4 CARDNAME has Flying +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 8 | SetToughness$ 8 | AddKeyword$ Flying & Trample | AddAbility$ Pump | IsPresent$ Card.Self+counters_GE8_LEVEL | Description$ LEVEL 8+ 8/8 CARDNAME has Flying and Trample and R: CARDNAME gets +1/+0 until end of turn. SVar:Pump:AB$ Pump | Cost$ R | Defined$ Self | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. -SVar:X:Count$Valid Card.Self+counters_GE4_LEVEL+counters_LE7_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE8_LEVEL Oracle:Level up {R} ({R}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 4-7\n4/4\nFlying\nLEVEL 8+\n8/8\nFlying, trample\n{R}: Kargan Dragonlord gets +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/k/kazandu_tuskcaller.txt b/forge-gui/res/cardsfolder/k/kazandu_tuskcaller.txt index c8b102b5ec3..ad243b32539 100644 --- a/forge-gui/res/cardsfolder/k/kazandu_tuskcaller.txt +++ b/forge-gui/res/cardsfolder/k/kazandu_tuskcaller.txt @@ -4,11 +4,8 @@ Types:Creature Human Shaman PT:1/1 K:Level up:1 G SVar:maxLevel:6 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 1 | AddAbility$ TokenLow | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 2-5 1/1 {T}: Create a 3/3 green Elephant creature token. -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 1 | AddAbility$ TokenHigh | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 6+ 1/1 {T}: Create two 3/3 green Elephant creature tokens. -SVar:TokenLow:AB$ Token | Cost$ T | TokenAmount$ 1 | TokenScript$ g_3_3_elephant | TokenOwner$ You | LegacyImage$ g 3 3 elephant roe | SpellDescription$ Create a 3/3 green Elephant creature token. -SVar:TokenHigh:AB$ Token | Cost$ T | TokenAmount$ 2 | TokenScript$ g_3_3_elephant | TokenOwner$ You | LegacyImage$ g 3 3 elephant roe | SpellDescription$ Create two 3/3 green Elephant creature tokens. -SVar:X:Count$Valid Card.Self+counters_GE2_LEVEL+counters_LE5_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE6_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/kazandu_tuskcaller.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 1 | AddAbility$ TokenLow | IsPresent$ Card.Self+counters_GE2_LEVEL+counters_LE5_LEVEL | Description$ LEVEL 2-5 1/1 {T}: Create a 3/3 green Elephant creature token. +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 1 | SetToughness$ 1 | AddAbility$ TokenHigh | IsPresent$ Card.Self+counters_GE6_LEVEL | Description$ LEVEL 6+ 1/1 {T}: Create two 3/3 green Elephant creature tokens. +SVar:TokenLow:AB$ Token | Cost$ T | TokenAmount$ 1 | TokenScript$ g_3_3_elephant | TokenOwner$ You | SpellDescription$ Create a 3/3 green Elephant creature token. +SVar:TokenHigh:AB$ Token | Cost$ T | TokenAmount$ 2 | TokenScript$ g_3_3_elephant | TokenOwner$ You | SpellDescription$ Create two 3/3 green Elephant creature tokens. Oracle:Level up {1}{G} ({1}{G}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 2-5\n1/1\n{T}: Create a 3/3 green Elephant creature token.\nLEVEL 6+\n1/1\n{T}: Create two 3/3 green Elephant creature tokens. diff --git a/forge-gui/res/cardsfolder/k/knight_of_cliffhaven.txt b/forge-gui/res/cardsfolder/k/knight_of_cliffhaven.txt index ec50e9134f8..0e48f1e29bb 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_cliffhaven.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_cliffhaven.txt @@ -4,9 +4,6 @@ Types:Creature Kor Knight PT:2/2 K:Level up:3 SVar:maxLevel:4 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 3 | AddKeyword$ Flying | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-3 2/3 CARDNAME has Flying -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Flying & Vigilance | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 4+ 4/4 CARDNAME has Flying and Vigilance -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE3_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE4_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/knight_of_cliffhaven.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 3 | AddKeyword$ Flying | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE3_LEVEL | Description$ LEVEL 1-3 2/3 CARDNAME has Flying +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Flying & Vigilance | IsPresent$ Card.Self+counters_GE4_LEVEL | Description$ LEVEL 4+ 4/4 CARDNAME has Flying and Vigilance Oracle:Level up {3} ({3}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-3\n2/3\nFlying\nLEVEL 4+\n4/4\nFlying, vigilance diff --git a/forge-gui/res/cardsfolder/l/lighthouse_chronologist.txt b/forge-gui/res/cardsfolder/l/lighthouse_chronologist.txt index d0ed40e4ab0..fd49dbd81a3 100644 --- a/forge-gui/res/cardsfolder/l/lighthouse_chronologist.txt +++ b/forge-gui/res/cardsfolder/l/lighthouse_chronologist.txt @@ -4,11 +4,8 @@ Types:Creature Human Wizard PT:1/3 K:Level up:U SVar:maxLevel:7 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 4 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 4-6 2/4 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 5 | AddTrigger$ TriggerExtraTurn | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 7+ 3/5 At the beginning of each end step, if it's not your turn, take an extra turn after this one. -SVar:X:Count$Valid Card.Self+counters_GE4_LEVEL+counters_LE6_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE7_LEVEL +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 4 | IsPresent$ Card.Self+counters_GE4_LEVEL+counters_LE6_LEVEL | Description$ LEVEL 4-6 2/4 +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 5 | AddTrigger$ TriggerExtraTurn | IsPresent$ Card.Self+counters_GE7_LEVEL | Description$ LEVEL 7+ 3/5 At the beginning of each end step, if it's not your turn, take an extra turn after this one. SVar:TriggerExtraTurn:Mode$ Phase | Phase$ End of Turn | NotPlayerTurn$ True | Execute$ TrigExtraTurn | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of each end step, if it's not your turn, take an extra turn after this one. SVar:TrigExtraTurn:DB$ AddTurn | NumTurns$ 1 -SVar:Picture:http://www.wizards.com/global/images/magic/general/lighthouse_chronologist.jpg Oracle:Level up {U} ({U}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 4-6\n2/4\nLEVEL 7+\n3/5\nAt the beginning of each end step, if it's not your turn, take an extra turn after this one. diff --git a/forge-gui/res/cardsfolder/l/lord_of_shatterskull_pass.txt b/forge-gui/res/cardsfolder/l/lord_of_shatterskull_pass.txt index a591fe7e12c..980adcdcd7a 100644 --- a/forge-gui/res/cardsfolder/l/lord_of_shatterskull_pass.txt +++ b/forge-gui/res/cardsfolder/l/lord_of_shatterskull_pass.txt @@ -4,11 +4,8 @@ Types:Creature Minotaur Shaman PT:3/3 K:Level up:1 R SVar:maxLevel:6 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-5 6/6 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | AddTrigger$ TriggerDamage | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 6+ 6/6 Whenever CARDNAME attacks, it deals 6 damage to each creature defending player controls. -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE5_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE6_LEVEL +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE5_LEVEL | Description$ LEVEL 1-5 6/6 +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | AddTrigger$ TriggerDamage | IsPresent$ Card.Self+counters_GE6_LEVEL | Description$ LEVEL 6+ 6/6 Whenever CARDNAME attacks, it deals 6 damage to each creature defending player controls. SVar:TriggerDamage:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, it deals 6 damage to each creature defending player controls. -SVar:TrigDamage:DB$DamageAll | ValidCards$ Creature.DefenderCtrl | NumDmg$ 6 -SVar:Picture:http://www.wizards.com/global/images/magic/general/lord_of_shatterskull_pass.jpg +SVar:TrigDamage:DB$ DamageAll | ValidCards$ Creature.ControlledBy TriggeredDefendingPlayer | NumDmg$ 6 Oracle:Level up {1}{R} ({1}{R}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-5\n6/6\nLEVEL 6+\n6/6\nWhenever Lord of Shatterskull Pass attacks, it deals 6 damage to each creature defending player controls. diff --git a/forge-gui/res/cardsfolder/m/monk_class.txt b/forge-gui/res/cardsfolder/m/monk_class.txt index cd5d5f11375..ac4efd475c6 100644 --- a/forge-gui/res/cardsfolder/m/monk_class.txt +++ b/forge-gui/res/cardsfolder/m/monk_class.txt @@ -1,11 +1,12 @@ Name:Monk Class ManaCost:W U Types:Enchantment Class -K:Class:3:W U,1 W U -S:Mode$ ReduceCost | ClassLevel$ 1 | ValidCard$ Card | Type$ Spell | Activator$ You | Amount$ 1 | CheckSVar$ YouCastThisTurn | SVarCompare$ EQ1 | Description$ The second spell you cast each turn costs {1} less to cast. -T:Mode$ ClassLevelGained | ClassLevel$ 2 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBounce | TriggerDescription$ When this Class becomes level 2, return up to one target nonland permanent to its owner's hand. -SVar:TrigBounce:DB$ChangeZone | ValidTgts$ Permanent.nonLand | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Hand -T:Mode$ Phase | ClassLevel$ 3 | Phase$ Upkeep | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigExile | TriggerDescription$ At the beginning of your upkeep, exile the top card of your library. For as long as it remains exiled, it has "You may cast this card from exile as long as you've cast another spell this turn." +S:Mode$ ReduceCost | ValidCard$ Card | Type$ Spell | Activator$ You | Amount$ 1 | CheckSVar$ YouCastThisTurn | SVarCompare$ EQ1 | Description$ The second spell you cast each turn costs {1} less to cast. +K:Class:2:W U:AddTrigger$ TriggerClassLevel +SVar:TriggerClassLevel:Mode$ ClassLevelGained | ClassLevel$ 2 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBounce | Secondary$ True | TriggerDescription$ When this Class becomes level 2, return up to one target nonland permanent to its owner's hand. +SVar:TrigBounce:DB$ ChangeZone | ValidTgts$ Permanent.nonLand | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Hand +K:Class:3:1 W U:AddTrigger$ TriggerUpkeep +SVar:TriggerUpkeep:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigExile | Secondary$ True | TriggerDescription$ At the beginning of your upkeep, exile the top card of your library. For as long as it remains exiled, it has "You may cast this card from exile as long as you've cast another spell this turn." SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBMayPlay SVar:DBMayPlay:DB$ Animate | Defined$ Remembered | staticAbilities$ StPlay | Duration$ Permanent | SubAbility$ DBCleanup SVar:StPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Exile | Affected$ Card.Self+nonLand | AffectedZone$ Exile | CheckSVar$ YouCastThisTurn | SVarCompare$ GE1 | Description$ You may cast this card from exile as long as you've cast another spell this turn. diff --git a/forge-gui/res/cardsfolder/n/nirkana_cutthroat.txt b/forge-gui/res/cardsfolder/n/nirkana_cutthroat.txt index f822301460d..ae54f9da494 100644 --- a/forge-gui/res/cardsfolder/n/nirkana_cutthroat.txt +++ b/forge-gui/res/cardsfolder/n/nirkana_cutthroat.txt @@ -4,9 +4,6 @@ Types:Creature Vampire Warrior PT:3/2 K:Level up:2 B SVar:maxLevel:3 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 3 | AddKeyword$ Deathtouch | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-2 4/3 CARDNAME has Deathtouch -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 4 | AddKeyword$ First Strike & Deathtouch | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 3+ 5/4 CARDNAME has First Strike and Deathtouch -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE3_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/nirkana_cutthroat.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 3 | AddKeyword$ Deathtouch | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL | Description$ LEVEL 1-2 4/3 CARDNAME has Deathtouch +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 4 | AddKeyword$ First Strike & Deathtouch | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ 5/4 CARDNAME has First Strike and Deathtouch Oracle:Level up {2}{B} ({2}{B}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n4/3\nDeathtouch\nLEVEL 3+\n5/4\nFirst strike, deathtouch diff --git a/forge-gui/res/cardsfolder/n/null_champion.txt b/forge-gui/res/cardsfolder/n/null_champion.txt index 85fad95825d..f4edf19be47 100644 --- a/forge-gui/res/cardsfolder/n/null_champion.txt +++ b/forge-gui/res/cardsfolder/n/null_champion.txt @@ -4,10 +4,7 @@ Types:Creature Zombie Warrior PT:1/1 K:Level up:3 SVar:maxLevel:4 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 2 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-3 4/2 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 7 | SetToughness$ 3 | AddAbility$ Regen | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 4+ 7/3 CARDNAME has "{B}: Regenerate CARDNAME." -SVar:Regen:AB$Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME. -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE3_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE4_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/null_champion.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 2 | IsPresent$ Card.Self+counters_GE2_LEVEL+counters_LE3_LEVEL | Description$ LEVEL 1-3 4/2 +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 7 | SetToughness$ 3 | AddAbility$ Regen | IsPresent$ Card.Self+counters_GE4_LEVEL | Description$ LEVEL 4+ 7/3 CARDNAME has "{B}: Regenerate CARDNAME." +SVar:Regen:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME. Oracle:Level up {3} ({3}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-3\n4/2\nLEVEL 4+\n7/3\n{B}: Regenerate Null Champion. diff --git a/forge-gui/res/cardsfolder/p/paladin_class.txt b/forge-gui/res/cardsfolder/p/paladin_class.txt index 4938fe7721b..501e0c94031 100644 --- a/forge-gui/res/cardsfolder/p/paladin_class.txt +++ b/forge-gui/res/cardsfolder/p/paladin_class.txt @@ -1,10 +1,11 @@ Name:Paladin Class ManaCost:W Types:Enchantment Class -K:Class:3:2 W,4 W -S:Mode$ RaiseCost | ClassLevel$ 1 | ValidCard$ Card | Activator$ Opponent | ValidSpell$ Spell | Amount$ 1 | Condition$ PlayerTurn | Description$ Spells your opponents cast during your turn cost {1} more to cast. -S:Mode$ Continuous | ClassLevel$ 2 | Affected$ Creature.YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures you control get +1/+1. -T:Mode$ AttackersDeclared | ClassLevel$ 3 | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you attack, until end of turn, target attacking creature gets +1/+1 for each other attacking creature and gains double strike. +S:Mode$ RaiseCost | ValidCard$ Card | Activator$ Opponent | ValidSpell$ Spell | Amount$ 1 | Condition$ PlayerTurn | Description$ Spells your opponents cast during your turn cost {1} more to cast. +K:Class:2:2 W:AddStaticAbility$ SPump +SVar:SPump:Mode$ Continuous | Affected$ Creature.YouCtrl | AddPower$ 1 | AddToughness$ 1 | Secondary$ True | Description$ Creatures you control get +1/+1. +K:Class:3:4 W:AddTrigger$ TriggerAttackersDeclared +SVar:TriggerAttackersDeclared:Mode$ AttackersDeclared | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | Secondary$ True | TriggerDescription$ Whenever you attack, until end of turn, target attacking creature gets +1/+1 for each other attacking creature and gains double strike. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.attacking | NumAtt$ X | NumDef$ X | KW$ Double Strike SVar:X:Count$Valid Creature.attacking/Minus.1 Oracle:(Gain the next level as a sorcery to add its ability.)\nSpells your opponents cast during your turn cost {1} more to cast.\n{2}{W}: Level 2\nCreatures you control get +1/+1.\n{4}{W}: Level 3\nWhenever you attack, until end of turn, target attacking creature gets +1/+1 for each other attacking creature and gains double strike. diff --git a/forge-gui/res/cardsfolder/r/ranger_class.txt b/forge-gui/res/cardsfolder/r/ranger_class.txt index e5501e130ec..02dee9ff97b 100644 --- a/forge-gui/res/cardsfolder/r/ranger_class.txt +++ b/forge-gui/res/cardsfolder/r/ranger_class.txt @@ -1,12 +1,13 @@ Name:Ranger Class ManaCost:1 G Types:Enchantment Class -K:Class:3:1 G,3 G -T:Mode$ ChangesZone | ClassLevel$ 1 | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 2/2 green Wolf creature token. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 2/2 green Wolf creature token. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_2_2_wolf | TokenOwner$ You -T:Mode$ AttackersDeclared | ClassLevel$ 2 | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you attack, put a +1/+1 counter on target attacking creature. +K:Class:2:1 G:AddTrigger$ TriggerAttackersDeclared +SVar:TriggerAttackersDeclared:Mode$ AttackersDeclared | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | Secondary$ True | TriggerDescription$ Whenever you attack, put a +1/+1 counter on target attacking creature. SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | CounterType$ P1P1 | CounterNum$ 1 -S:Mode$ Continuous | ClassLevel$ 3 | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ Player | Description$ You may look at the top card of your library any time. -S:Mode$ Continuous | ClassLevel$ 3 | Affected$ Creature.nonLand+TopLibrary+YouCtrl | AffectedZone$ Library | MayPlay$ True | Description$ You may cast creature spells from the top of your library. +K:Class:3:3 G:AddStaticAbility$ SMayLook & SMayPlay +SVar:SMayLook:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ You | Secondary$ True | Description$ You may look at the top card of your library any time. +SVar:SMayPlay:Mode$ Continuous | Affected$ Creature.nonLand+TopLibrary+YouCtrl | AffectedZone$ Library | MayPlay$ True | Secondary$ True | Description$ You may cast creature spells from the top of your library. DeckHas:Ability$Token & Ability$Counter Oracle:(Gain the next level as a sorcery to add its ability.)\nWhen Ranger Class enters the battlefield, create a 2/2 green Wolf creature token.\n{1}{G}: Level 2\nWhenever you attack, put a +1/+1 counter on target attacking creature.\n{3}{G}: Level 3\nYou may look at the top card of your library any time.\nYou may cast creature spells from the top of your library. diff --git a/forge-gui/res/cardsfolder/r/rogue_class.txt b/forge-gui/res/cardsfolder/r/rogue_class.txt index ff72104a75f..7dbda90f8ab 100644 --- a/forge-gui/res/cardsfolder/r/rogue_class.txt +++ b/forge-gui/res/cardsfolder/r/rogue_class.txt @@ -1,19 +1,20 @@ Name:Rogue Class ManaCost:U B Types:Enchantment Class -K:Class:3:1 U B,2 U B T:Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ Exile | ExcludedDestinations$ Stack | Destination$ Any | TriggerZones$ Battlefield | Execute$ TrigForget | Static$ True T:Mode$ SpellCast | ValidCard$ Card.IsRemembered | TriggerZones$ Battlefield | Execute$ TrigForget | Static$ True SVar:TrigForget:DB$ Pump | ForgetObjects$ TriggeredCard T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Execute$ TrigCleanup | Static$ True SVar:TrigCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True -T:Mode$ DamageDone | ClassLevel$ 1 | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDig | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature you control deals combat damage to a player, exile the top card of that player's library face down. You may look at it for as long as it remains exiled. +T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDig | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature you control deals combat damage to a player, exile the top card of that player's library face down. You may look at it for as long as it remains exiled. SVar:TrigDig:DB$ Dig | DigNum$ 1 | Defined$ TriggeredTarget | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True | ChangeNum$ All | SubAbility$ DBExile SVar:DBExile:DB$ ChangeZone | Defined$ Imprinted | Origin$ Command | Destination$ Exile | SubAbility$ DBUnimprint SVar:DBUnimprint:DB$ Cleanup | ClearImprinted $True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | ImprintOnHost$ True | StaticAbilities$ STMayLook | Duration$ Permanent | ForgetOnMoved$ Exile SVar:STMayLook:Mode$ Continuous | MayLookAt$ You | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may look at it for as long as it remains exiled. -S:Mode$ Continuous | ClassLevel$ 2 | Affected$ Creature.YouCtrl | AddKeyword$ Menace | Description$ Creatures you control have menace. -S:Mode$ Continuous | ClassLevel$ 3 | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Battlefield | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play cards exiled with CARDNAME, and you may spend mana as though it were mana of any color to cast those spells. +K:Class:2:1 U B:AddStaticAbility$ SMenace +SVar:SMenace:Mode$ Continuous | Affected$ Creature.YouCtrl | AddKeyword$ Menace | Secondary$ True | Description$ Creatures you control have menace. +K:Class:3:2 U B:AddStaticAbility$ SMayPlay +SVar:SMayPlay:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Battlefield | Affected$ Card.IsRemembered | AffectedZone$ Exile | Secondary$ True | Description$ You may play cards exiled with CARDNAME, and you may spend mana as though it were mana of any color to cast those spells. SVar:PlayMain1:TRUE Oracle:(Gain the next level as a sorcery to add its ability.)\nWhenever a creature you control deals combat damage to a player, exile the top card of that player's library face down. You may look at it for as long as it remains exiled.\n{1}{U}{B}: Level 2\nCreatures you control have menace.\n{2}{U}{B}: Level 3\nYou may play cards exiled with Rogue Class, and you may spend mana as though it were mana of any color to cast those spells. diff --git a/forge-gui/res/cardsfolder/s/skywatcher_adept.txt b/forge-gui/res/cardsfolder/s/skywatcher_adept.txt index 798535fbf68..eea04b9ce0e 100644 --- a/forge-gui/res/cardsfolder/s/skywatcher_adept.txt +++ b/forge-gui/res/cardsfolder/s/skywatcher_adept.txt @@ -4,9 +4,6 @@ Types:Creature Merfolk Wizard PT:1/1 K:Level up:3 SVar:maxLevel:3 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | AddKeyword$ Flying | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-2 2/2 CARDNAME has Flying -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 2 | AddKeyword$ Flying | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 3+ 4/2 CARDNAME has Flying -SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE3_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/skywatcher_adept.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 2 | SetToughness$ 2 | AddKeyword$ Flying | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE2_LEVEL | Description$ LEVEL 1-2 2/2 CARDNAME has Flying +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 2 | AddKeyword$ Flying | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ 4/2 CARDNAME has Flying Oracle:Level up {3} ({3}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n2/2\nFlying\nLEVEL 3+\n4/2\nFlying diff --git a/forge-gui/res/cardsfolder/s/sorcerer_class.txt b/forge-gui/res/cardsfolder/s/sorcerer_class.txt index e755a403160..1dd06b6498b 100644 --- a/forge-gui/res/cardsfolder/s/sorcerer_class.txt +++ b/forge-gui/res/cardsfolder/s/sorcerer_class.txt @@ -1,14 +1,15 @@ Name:Sorcerer Class ManaCost:U R Types:Enchantment Class -K:Class:3:U R,3 U R -T:Mode$ ChangesZone | ClassLevel$ 1 | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw two cards, then discard two cards. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw two cards, then discard two cards. SVar:TrigDraw:DB$ Draw | NumCards$ 2 | SubAbility$ DBDiscard SVar:DBDiscard:DB$Discard | Defined$ You | NumCards$ 2 | Mode$ TgtChoose -S:Mode$ Continuous | ClassLevel$ 2 | EffectZone$ Battlefield | Affected$ Creature.YouCtrl | AddAbility$ ManaU & ManaR | Description$ Creatures you control have "{T}: Add {U} or {R}. Spend this mana only to cast an instant or sorcery spell or to gain a Class level." +K:Class:2:U R:AddStaticAbility$ STapMana +SVar:STapMana:Mode$ Continuous | EffectZone$ Battlefield | Affected$ Creature.YouCtrl | AddAbility$ ManaU & ManaR | Secondary$ True | Description$ Creatures you control have "{T}: Add {U} or {R}. Spend this mana only to cast an instant or sorcery spell or to gain a Class level." SVar:ManaU:AB$Mana | Cost$ T | Produced$ U | Amount$ 1 | RestrictValid$ Instant,Sorcery,Activated.ClassLevelUp | SpellDescription$ Add {U}. Spend this mana only to cast an instant or sorcery spell or to gain a Class level. SVar:ManaR:AB$Mana | Cost$ T | Produced$ R | Amount$ 1 | RestrictValid$ Instant,Sorcery,Activated.ClassLevelUp | SpellDescription$ Add {R}. Spend this mana only to cast an instant or sorcery spell or to gain a Class level. -T:Mode$ SpellCast | ClassLevel$ 3 | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever you cast an instant or sorcery spell, that spell deals damage to each opponent equal to the number of instant and sorcery spells you've cast this turn. +K:Class:3:3 U R:AddTrigger$ TriggerSpellCast +SVar:TriggerSpellCast:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | Secondary$ True | TriggerDescription$ Whenever you cast an instant or sorcery spell, that spell deals damage to each opponent equal to the number of instant and sorcery spells you've cast this turn. SVar:TrigDealDamage:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ X | DamageSource$ TriggeredCard SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl Oracle:(Gain the next level as a sorcery to add its ability.)\nWhen Sorcerer Class enters the battlefield, draw two cards, then discard two cards.\n{U}{R}: Level 2\nCreatures you control have "{T}: Add {U} or {R}. Spend this mana only to cast an instant or sorcery spell or to gain a Class level."\n{3}{U}{R}: Level 3\nWhenever you cast an instant or sorcery spell, that spell deals damage to each opponent equal to the number of instant and sorcery spells you've cast this turn. diff --git a/forge-gui/res/cardsfolder/s/student_of_warfare.txt b/forge-gui/res/cardsfolder/s/student_of_warfare.txt index a3c8eb265dd..d38ca713fc7 100644 --- a/forge-gui/res/cardsfolder/s/student_of_warfare.txt +++ b/forge-gui/res/cardsfolder/s/student_of_warfare.txt @@ -4,9 +4,6 @@ Types:Creature Human Knight PT:1/1 K:Level up:W SVar:maxLevel:7 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | AddKeyword$ First Strike | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 2-6 3/3 CARDNAME has First Strike -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Double Strike | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 7+ 4/4 CARDNAME has Double Strike -SVar:X:Count$Valid Card.Self+counters_GE2_LEVEL+counters_LE6_LEVEL -SVar:Y:Count$Valid Card.Self+counters_GE7_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/student_of_warfare.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | AddKeyword$ First Strike | IsPresent$ Card.Self+counters_GE2_LEVEL+counters_LE6_LEVEL | Description$ LEVEL 2-6 3/3 CARDNAME has First Strike +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 4 | SetToughness$ 4 | AddKeyword$ Double Strike | IsPresent$ Card.Self+counters_GE7_LEVEL | Description$ LEVEL 7+ 4/4 CARDNAME has Double Strike Oracle:Level up {W} ({W}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 2-6\n3/3\nFirst strike\nLEVEL 7+\n4/4\nDouble strike diff --git a/forge-gui/res/cardsfolder/t/transcendent_master.txt b/forge-gui/res/cardsfolder/t/transcendent_master.txt index 70f1a071953..663eee0d22e 100644 --- a/forge-gui/res/cardsfolder/t/transcendent_master.txt +++ b/forge-gui/res/cardsfolder/t/transcendent_master.txt @@ -4,9 +4,6 @@ Types:Creature Human Cleric Avatar PT:3/3 K:Level up:1 SVar:maxLevel:12 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | AddKeyword$ Lifelink | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 6-11 6/6 Lifelink -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 9 | SetToughness$ 9 | AddKeyword$ Indestructible & Lifelink | CheckSVar$ Z | SVarCompare$ EQ1 | Description$ LEVEL 12+ 9/9 Lifelink, indestructible -SVar:Y:Count$Valid Card.Self+counters_GE6_LEVEL+counters_LT12_LEVEL -SVar:Z:Count$Valid Card.Self+counters_GE12_LEVEL -SVar:Picture:http://www.wizards.com/global/images/magic/general/transcendent_master.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | AddKeyword$ Lifelink | IsPresent$ Card.Self+counters_GE6_LEVEL+counters_LE11_LEVEL | Description$ LEVEL 6-11 6/6 Lifelink +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 9 | SetToughness$ 9 | AddKeyword$ Indestructible & Lifelink | IsPresent$ Card.Self+counters_GE12_LEVEL | Description$ LEVEL 12+ 9/9 Lifelink, indestructible Oracle:Level up {1} ({1}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 6-11\n6/6\nLifelink\nLEVEL 12+\n9/9\nLifelink, indestructible diff --git a/forge-gui/res/cardsfolder/w/warlock_class.txt b/forge-gui/res/cardsfolder/w/warlock_class.txt index 0b578205f7e..9ea92b41df7 100644 --- a/forge-gui/res/cardsfolder/w/warlock_class.txt +++ b/forge-gui/res/cardsfolder/w/warlock_class.txt @@ -1,13 +1,14 @@ Name:Warlock Class ManaCost:B Types:Enchantment Class -K:Class:3:1 B,6 B -T:Mode$ Phase | ClassLevel$ 1 | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigLose1 | TriggerDescription$ At the beginning of your end step, if a creature died this turn, each opponent loses 1 life. +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigLose1 | TriggerDescription$ At the beginning of your end step, if a creature died this turn, each opponent loses 1 life. SVar:TrigLose1:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 1 SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature -T:Mode$ ClassLevelGained | ClassLevel$ 2 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ When this Class becomes level 2, look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. +K:Class:2:1 B:AddTrigger$ TriggerClassLevel +SVar:TriggerClassLevel:Mode$ ClassLevelGained | ClassLevel$ 2 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDig | Secondary$ True | TriggerDescription$ When this Class becomes level 2, look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. SVar:TrigDig:DB$ Dig | DigNum$ 3 | DestinationZone2$ Graveyard -T:Mode$ Phase | ClassLevel$ 3 | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ RepeatOpps | TriggerDescription$ At the beginning of your end step, each opponent loses life equal to the life they lost this turn. (Damage causes loss of life.) +K:Class:3:6 B:AddTrigger$ TriggerEndTurn +SVar:TriggerEndTurn:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ RepeatOpps | Secondary$ True | TriggerDescription$ At the beginning of your end step, each opponent loses life equal to the life they lost this turn. (Damage causes loss of life.) SVar:RepeatOpps:DB$ RepeatEach | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TrigLoseAgain SVar:TrigLoseAgain:DB$ LoseLife | Defined$ Remembered | LifeAmount$ Y SVar:Y:PlayerCountRemembered$LifeLostThisTurn diff --git a/forge-gui/res/cardsfolder/w/wizard_class.txt b/forge-gui/res/cardsfolder/w/wizard_class.txt index 381452445ac..e8aecf48d93 100644 --- a/forge-gui/res/cardsfolder/w/wizard_class.txt +++ b/forge-gui/res/cardsfolder/w/wizard_class.txt @@ -1,11 +1,12 @@ Name:Wizard Class ManaCost:U Types:Enchantment Class -K:Class:3:2 U,4 U -S:Mode$ Continuous | ClassLevel$ 1 | EffectZone$ Battlefield | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size. -T:Mode$ ClassLevelGained | ClassLevel$ 2 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ When this Class becomes level 2, draw two cards. +S:Mode$ Continuous | EffectZone$ Battlefield | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size. +K:Class:2:2 U:AddTrigger$ TriggerClassLevel +SVar:TriggerClassLevel:Mode$ ClassLevelGained | ClassLevel$ 2 | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDraw | Secondary$ True | TriggerDescription$ When this Class becomes level 2, draw two cards. SVar:TrigDraw:DB$ Draw | NumCards$ 2 -T:Mode$ Drawn | ClassLevel$ 3 | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you draw a card, put a +1/+1 counter on target creature you control. +K:Class:3:4 U:AddTrigger$ TriggerDrawn +SVar:TriggerDrawn:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | Secondary$ True | TriggerDescription$ Whenever you draw a card, put a +1/+1 counter on target creature you control. SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 DeckHas:Ability$Counters Oracle:(Gain the next level as a sorcery to add its ability.)\nYou have no maximum hand size.\n{2}{U}: Level 2\nWhen this Class becomes level 2, draw two cards.\n{4}{U}: Level 3\nWhenever you draw a card, put a +1/+1 counter on target creature you control. diff --git a/forge-gui/res/cardsfolder/z/zulaport_enforcer.txt b/forge-gui/res/cardsfolder/z/zulaport_enforcer.txt index 704beb4ee91..7f3f1d8350d 100644 --- a/forge-gui/res/cardsfolder/z/zulaport_enforcer.txt +++ b/forge-gui/res/cardsfolder/z/zulaport_enforcer.txt @@ -5,7 +5,6 @@ PT:1/1 K:Level up:4 SVar:maxLevel:3 S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LT3_LEVEL | Description$ LEVEL 1-2 3/3 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 5 | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ 5/5 CARDNAME can't be blocked except by black creatures -S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonBlack | Secondary$ True | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ CARDNAME can't be blocked except by black creatures -SVar:Picture:http://www.wizards.com/global/images/magic/general/zulaport_enforcer.jpg +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 5 | IsPresent$ Card.Self+counters_GE3_LEVEL | AddStaticAbility$ SCantBlock | Description$ LEVEL 3+ 5/5 CARDNAME can't be blocked except by black creatures +SVar:SCantBlock:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonBlack | Secondary$ True | Description$ CARDNAME can't be blocked except by black creatures Oracle:Level up {4} ({4}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n3/3\nLEVEL 3+\n5/5\nZulaport Enforcer can't be blocked except by black creatures.