Merge branch 'perp' into 'master'

Digital-Only "Perpetual" mechanic updates (and some new Y22 cards)

See merge request core-developers/forge!5926
This commit is contained in:
Michael Kamensky
2021-12-12 05:37:20 +00:00
32 changed files with 277 additions and 31 deletions

View File

@@ -188,7 +188,8 @@ public enum ApiType {
ChangeZoneResolve (ChangeZoneResolveEffect.class),
InternalEtbReplacement (ETBReplacementEffect.class),
InternalLegendaryRule (CharmEffect.class),
InternalIgnoreEffect (CharmEffect.class);
InternalIgnoreEffect (CharmEffect.class),
UpdateRemember (UpdateRememberEffect.class);
private final SpellAbilityEffect instanceEffect;

View File

@@ -2,6 +2,7 @@ package forge.game.ability.effects;
import forge.StaticData;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card;
import forge.game.card.CardCollection;
@@ -13,6 +14,7 @@ public class MakeCardEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
for (final Player player : getTargetPlayers(sa)) {
final Card source = sa.getHostCard();
final Game game = player.getGame();
String name = sa.getParamOrDefault("Name", "");
@@ -22,7 +24,9 @@ public class MakeCardEffect extends SpellAbilityEffect {
} else {
continue;
}
}
if (sa.hasParam("DefinedName")) {
name = AbilityUtils.getDefinedCards(source, sa.getParam("DefinedName"), sa).getFirst().getName();
}
final ZoneType zone = ZoneType.smartValueOf(sa.getParamOrDefault("Zone", "Library"));
int amount = sa.hasParam("Amount") ? Integer.parseInt(sa.getParam("Amount")) : 1;

View File

@@ -0,0 +1,13 @@
package forge.game.ability.effects;
import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card;
import forge.game.spellability.SpellAbility;
public class UpdateRememberEffect extends SpellAbilityEffect {
@Override
public void resolve(SpellAbility sa) {
final Card host = sa.getHostCard();
host.updateRemembered();
}
}

View File

@@ -1038,6 +1038,9 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
rememberedObjects.clear();
view.updateRemembered(this);
}
public final void updateRemembered() {
view.updateRemembered(this);
}
public final CardCollectionView getImprintedCards() {
return CardCollection.getView(imprintedCards);

View File

@@ -2,6 +2,7 @@ package forge.game.card;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import forge.StaticData;
import forge.card.CardDb;
import forge.card.ColorSet;
@@ -33,6 +34,7 @@ import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.List;
import java.util.Set;
public class CardProperty {
@@ -761,6 +763,17 @@ public class CardProperty {
return false;
}
}
} else if (property.equals("Party")) {
boolean isParty = false;
Set<String> partyTypes = Sets.newHashSet("Cleric", "Rogue", "Warrior", "Wizard");
Set<String> cTypes = card.getType().getCreatureTypes();
for (String t : partyTypes) {
if (cTypes.contains(t)) {
isParty = true;
break;
}
}
return isParty;
} else if (property.startsWith("sharesCreatureTypeWith")) {
if (property.equals("sharesCreatureTypeWith")) {
if (!card.sharesCreatureTypeWith(source)) {

View File

@@ -442,8 +442,16 @@ public class CardView extends GameEntityView {
sb.append("\r\nRemembered: \r\n");
for (final Object o : c.getRemembered()) {
if (o != null) {
sb.append(o.toString());
sb.append("\r\n");
if (o instanceof Card && c.isImmutable() && c.getName().contains("Perpetual Effect")) {
Card rc = (Card) o;
if (!rc.getGame().getCardState(rc).getZone().getZoneType().isHidden()) {
sb.append(o.toString());
sb.append("\r\n");
}
} else {
sb.append(o.toString());
sb.append("\r\n");
}
}
}
set(TrackableProperty.Remembered, sb.toString());

View File

@@ -2,10 +2,10 @@ Name:Freyalise, Skyshroud Partisan
ManaCost:1 G G
Types:Legendary Planeswalker Freyalise
Loyalty:4
A:AB$ Untap | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Elf | TgtPrompt$ Select up to one target creature | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBRandom | StackDescription$ SpellDescription | SpellDescription$ Choose up to one target Elf. Untap it. It and a random Elf creature card in your hand each perpetually gets +1/+1.
A:AB$ Untap | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Elf | TgtPrompt$ Select up to one target Elf | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBRandom | StackDescription$ SpellDescription | SpellDescription$ Choose up to one target Elf. Untap it. It and a random Elf creature card in your hand each perpetually gets +1/+1.
SVar:DBRandom:DB$ ChooseCard | Defined$ You | Choices$ Elf.YouOwn | ChoiceZone$ Hand | AtRandom$ True | Amount$ 1 | SubAbility$ DBEffect | StackDescription$ None
SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted,ChosenCard | StaticAbilities$ PerpetualP1P1 | Name$ Freyalise, Skyshroud Partisan's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ These cards perpetually get +1/+1.
SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | StaticAbilities$ PerpetualP1P1 | Name$ Freyalise, Skyshroud Partisan's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered,Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The target Elf and randomly chosen card perpetually get +1/+1.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
A:AB$ ChangeZone | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Elf | ChangeNum$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek an Elf card.
A:AB$ MakeCard | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Regal Force | Zone$ Battlefield | SpellDescription$ Conjure a Regal Force card onto the battlefield.

View File

@@ -6,7 +6,7 @@ K:Lifelink
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, choose a creature card in your hand. It perpetually gains lifelink.
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualLifelink | Name$ Leonin Sanctifier's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualLifelink:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Lifelink | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gains lifelink.
SVar:PerpetualLifelink:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Lifelink | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains lifelink.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
DeckHas:Ability$LifeGain
Oracle:Lifelink\nWhen Leonin Sanctifier enters the battlefield, choose a creature card in your hand. It perpetually gains lifelink.

View File

@@ -8,7 +8,7 @@ SVar:TrigEnergy:DB$ PutCounter | Defined$ You | CounterType$ ENERGY | CounterNum
A:AB$ Effect | Cost$ PayEnergy<2> | StaticAbilities$ SelfPerpetualP1P0 | Name$ Longtusk Stalker's Perpetual Effect | Duration$ Permanent | SubAbility$ DBChooseCard | SpellDescription$ CARDNAME perpetually gets +1/+0. You may choose a creature card in your hand. If you do, that card perpetually gets +1/+0.
SVar:SelfPerpetualP1P0:Mode$ Continuous | Affected$ Card.EffectSource | AddPower$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ EFFECTSOURCE perpetually gets +1/+0.
SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose up to one creature card in your hand | MinAmount$ 0 | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | ConditionDefined$ ChosenCard | ConditionPresent$ Card | StaticAbilities$ PerpetualP1P0 | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualP1P0:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gets +1/+0.
SVar:DBEffect:DB$ Effect | ConditionDefined$ ChosenCard | ConditionPresent$ Card | StaticAbilities$ PerpetualP1P0 | Name$ Longtusk Stalker's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualP1P0:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +1/+0.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
Oracle:Whenever Longtusk Stalker enters the battlefield or attacks, you get {E}.\nPay {E}{E}: Longtusk Stalker perpetually gets +1/+0. You may choose a creature card in your hand. If you do, that card perpetually gets +1/+0.

View File

@@ -6,6 +6,6 @@ K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, choose a creature card in your hand. It perpetually gains flying.
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualFlying | Name$ Mentor of Evos Isle's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualFlying:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Flying | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gains flying.
SVar:PerpetualFlying:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Flying | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains flying.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
Oracle:Flying\nWhen Mentor of Evos Isle enters the battlefield, choose a creature card in your hand. It perpetually gains flying.

View File

@@ -6,6 +6,6 @@ K:Deathtouch
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, choose a creature card in your hand. It perpetually gains deathtouch.
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualDeathtouch | Name$ Plaguecrafter's Familiar's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualDeathtouch:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Deathtouch | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gains deathtouch.
SVar:PerpetualDeathtouch:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Deathtouch | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains deathtouch.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
Oracle:Deathtouch\nWhen Plaguecrafter's Familiar enters the battlefield, choose a creature card in your hand. It perpetually gains deathtouch.

View File

@@ -6,6 +6,6 @@ K:Haste
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, choose a creature card in your hand. It perpetually gains haste.
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualHaste | Name$ Reckless Ringleader's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualHaste:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Haste | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gains haste.
SVar:PerpetualHaste:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Haste | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains haste.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
Oracle:Haste\nWhen Reckless Ringleader enters the battlefield, choose a creature card in your hand. It perpetually gains haste.

View File

@@ -2,11 +2,12 @@ Name:Sarkhan, Wanderer to Shiv
ManaCost:3 R
Types:Legendary Planeswalker Sarkhan
Loyalty:4
A:AB$ PumpAll | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidCards$ Dragon.YouOwn | RememberAllPumped$ True | PumpZone$ Hand | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ DragonReduceCost,DragonAltCost | Duration$ Permanent | Name$ Sarkhan, Wanderer to Shiv's Perpetual Effect | SubAbility$ DBCleanup | SpellDescription$ Dragon cards in your hand perpetually gain "This spell costs {1} less to cast," and "You may pay {X} rather than pay this spell's mana cost, where X is its mana value."
SVar:DragonReduceCost:Mode$ ReduceCost | ValidCard$ Card.IsRemembered | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
SVar:DragonAltCost:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Alternative Cost:ConvertedManaCost | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ You may pay {X} rather than pay this spell's mana cost, where X is its mana value.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
A:AB$ Effect | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | RememberObjects$ ValidHand Dragon.YouOwn | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Sarkhan, Wanderer to Shiv's Perpetual Effect | SpellDescription$ Dragon cards in your hand perpetually gain "This spell costs {1} less to cast," and "You may pay {X} rather than pay this spell's mana cost, where X is its mana value."
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ DragonReduceCost & DragonAltCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Dragon cards in your hand perpetually gain "This spell costs {1} less to cast," and "You may pay {X} rather than pay this spell's mana cost, where X is its mana value."
SVar:DragonReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
SVar:DragonAltCost:Mode$ Continuous | CharacteristicDefining$ True | AddKeyword$ Alternative Cost:ConvertedManaCost | Description$ You may pay {X} rather than pay this spell's mana cost, where X is its mana value.
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
A:AB$ MakeCard | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Name$ Shivan Dragon | Zone$ Hand | SpellDescription$ Conjure a Shivan Dragon card into your hand.
A:AB$ DealDamage | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to target creature.
DeckHints:Type$Dragon

View File

@@ -2,8 +2,12 @@ Name:Tome of the Infinite
ManaCost:2 U
Types:Legendary Artifact
A:AB$ NameCard | Cost$ U T | Defined$ You | AtRandom$ True | ChooseFromList$ Light of Hope,Swords to Plowshares,Force Spike,Ponder,Dark Ritual,Duress,Assault Strobe,Lightning Bolt,Fog,Giant Growth | SubAbility$ DBConjure | StackDescription$ SpellDescription | SpellDescription$ Conjure a random card from CARDNAME's spellbook into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
SVar:DBConjure:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ SpendAnyMana | Duration$ Permanent | Name$ Tome of the Infinite's Perpetual Effect | SubAbility$ DBCleanup
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearNamedCard$ True
SVar:DBConjure:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | RememberMade$ True | SubAbility$ DBClearName
SVar:DBClearName:DB$ Cleanup | ClearNamedCard$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Tome of the Infinite's Perpetual Effect | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.Self | EffectZone$ All | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
Oracle:{U}, {T}: Conjure a random card from Tome of the Infinite's spellbook into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."

View File

@@ -0,0 +1,11 @@
Name:Absorb Energy
ManaCost:1 U U
Types:Instant
A:SP$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | RememberCountered$ True | SubAbility$ DBEffect | SpellDescription$ Counter target spell.
SVar:DBEffect:DB$ Effect | ImprintCards$ Remembered | RememberObjects$ ValidHand Card.YouOwn+sharesCardTypeWith Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Absorb Energy's Perpetual Effect | SubAbility$ DBCleanup | SpellDescription$ Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast."
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ PerpetualReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Cards in your hand that share a card type with that [imprinted] spell perpetually gain "This spell costs {1} less to cast."
SVar:PerpetualReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:Counter target spell. Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast."

View File

@@ -0,0 +1,16 @@
Name:Angel of Unity
ManaCost:1 W
Types:Creature Angel Cleric
PT:1/3
K:Flying
K:Lifelink
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)
T:Mode$ SpellCast | ValidCard$ Card.Party | ValidActivatingPlayer$ You | Execute$ TrigChoose | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Creature.Party+YouOwn | ChoiceTitle$ Choose a party creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualP1P1 | Name$ Angel of Unity's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +1/+1.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
DeckHas:Ability$Party & Ability$LifeGain
SVar:BuffedBy:Cleric,Rogue,Warrior,Wizard
DeckHints:Type$Rogue|Warrior|Wizard
Oracle:Flying, lifelink\nWhenever Angel of Unity enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)

View File

@@ -0,0 +1,16 @@
Name:Antique Collector
ManaCost:1 G
Types:Creature Human Rogue
PT:2/2
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.powerLE2 | Description$ CARDNAME can't be blocked by creatures with power 2 or less.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigEffect | TriggerDescription$ When CARDNAME enters the battlefield, creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
SVar:TrigEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Antique Collector's Perpetual Effect
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddTrigger$ DiesTrigger | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
SVar:DiesTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigShuffle | OptionalDecider$ You | TriggerDescription$ When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate.
SVar:TrigShuffle:DB$ ChangeZone | Origin$ Graveyard | Destination$ Library | Shuffle$ True | Defined$ TriggeredNewCardLKICopy | RememberChanged$ True | SubAbility$ DBInvestigate
SVar:DBInvestigate:DB$ Investigate | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
DeckHas:Ability$Investigate & Ability$Token
Oracle:Antique Collector can't be blocked by creatures with power 2 or less.\nWhen Antique Collector enters the battlefield, creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."

View File

@@ -0,0 +1,10 @@
Name:Assemble from Parts
ManaCost:B
Types:Instant
A:SP$ Effect | TgtZone$ Graveyard | ValidTgts$ Creature.YouOwn | TgtPrompt$ Select target creature card in your graveyard | StaticAbilities$ Assembly | RememberObjects$ Targeted | Name$ Assemble from Part's Perpetual Effect | Duration$ Permanent | StackDescription$ {c:Targeted} perpetually gains "{3} {B}, Exile this card from your graveyard: Shuffle it into your library. Create a token that's a copy of it, except it's a 4/4 black Zombie in addition to its other types. Activate only as a sorcery." | SpellDescription$ Target creature card in your graveyard perpetually gains "{3} {B}, Exile this card from your graveyard: Shuffle it into your library. Create a token that's a copy of it, except it's a 4/4 black Zombie in addition to its other types. Activate only as a sorcery."
SVar:Assembly:Mode$ Continuous | Affected$ Card.IsRemembered | AddAbility$ ABShuffle | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Target creature card in your graveyard perpetually gains "{3} {B}, Exile this card from your graveyard: Shuffle it into your library. Create a token that's a copy of it, except it's a 4/4 black Zombie in addition to its other types. Activate only as a sorcery."
SVar:ABShuffle:AB$ ChangeZone | Cost$ 3 B ExileFromGrave<1/CARDNAME> | ActivationZone$ Graveyard | Origin$ All | Destination$ Library | Shuffle$ True | Defined$ Self | SubAbility$ DBCopy | SorcerySpeed$ True | StackDescription$ Shuffle CARDNAME into your library. | SpellDescription$ Shuffle it into your library. Create a token that's a copy of it, except it's a 4/4 black Zombie in addition to its other types. Activate only as a sorcery.
SVar:DBCopy:DB$ CopyPermanent | Defined$ Self | SetPower$ 4 | SetToughness$ 4 | AddTypes$ Zombie | SetColor$ Black | StackDescription$ Create a token that's a copy of it, except it's a 4/4 black Zombie in addition to its other types.
SVar:AIPreference:ExileFromGraveCost$Creature.YouOwn+inZoneGraveyard
DeckHas:Ability$Token & Ability$Graveyard
Oracle:Target creature card in your graveyard perpetually gains "{3} {B}, Exile this card from your graveyard: Shuffle it into your library. Create a token that's a copy of it, except it's a 4/4 black Zombie in addition to its other types. Activate only as a sorcery."

View File

@@ -0,0 +1,9 @@
Name:Begin Anew
ManaCost:G G W W
Types:Sorcery
A:SP$ DestroyAll | ValidCards$ Creature | SubAbility$ DBEffect | SpellDescription$ Destroy all creatures.
SVar:DBEffect:DB$ Effect | RememberObjects$ ValidHand Creature.YouOwn | StaticAbilities$ PerpetualP1P1 | Duration$ Permanent | Triggers$ Update | Name$ Begin Anew's Perpetual Effect | SpellDescription$ Creature cards in your hand perpetually get +1/+1.
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Creature cards in your hand perpetually get +1/+1.
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
Oracle:Destroy all creatures. Creature cards in your hand perpetually get +1/+1.

View File

@@ -0,0 +1,10 @@
Name:Brittle Blast
ManaCost:2 R
Types:Instant
A:SP$ Effect | RememberObjects$ Valid Creature.OppCtrl,Valid Planeswalker.OppCtrl | StaticAbilities$ MakeBrittle | Duration$ Permanent | Name$ Brittle Blast's Perpetual Effect | SubAbility$ DBDamage | SpellDescription$ Creatures and planeswalkers your opponents control perpetually gain "If this permanent would die, exile it instead."
SVar:MakeBrittle:Mode$ Continuous | Affected$ Card.IsRemembered | AddReplacementEffects$ BrittleExile | AddSVar$ BrittleRep | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Creatures and planeswalkers your opponents control perpetually gain "If this permanent would die, exile it instead."
SVar:BrittleExile:Event$ Moved | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | ReplaceWith$ BrittleRep | Description$ If this permanent would die, exile it instead.
SVar:BrittleRep:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 5 | SpellDescription$ CARDNAME deals 5 damage to target creature or planeswalker.
SVar:PlayMain1:TRUE
Oracle:Creatures and planeswalkers your opponents control perpetually gain "If this permanent would die, exile it instead." Brittle Blast deals 5 damage to target creature or planeswalker.

View File

@@ -0,0 +1,15 @@
Name:Clone Crafter
ManaCost:1 U
Types:Creature Human Wizard
PT:1/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield, conjure a duplicate of a random creature card from your opponent's library into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.OppCtrl | ChoiceZone$ Library | AtRandom$ True | SubAbility$ DBConjure
SVar:DBConjure:DB$ MakeCard | DefinedName$ ChosenCard | Zone$ Hand | RememberMade$ True | SubAbility$ DBClearChosen
SVar:DBClearChosen:DB$ Cleanup | ClearChosenCard$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Clone Crafter's Perpetual Effect | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.Self | EffectZone$ All | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
Oracle:When Clone Crafter enters the battlefield, conjure a duplicate of a random creature card from your opponent's library into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."

View File

@@ -0,0 +1,12 @@
Name:Conductive Current
ManaCost:R R R
Types:Sorcery
A:SP$ DamageAll | NumDmg$ 3 | ValidCards$ Creature | ValidDescription$ each creature. | SubAbility$ DBChoose | SpellDescription$ CARDNAME deals 3 damage to each creature.
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Instant.YouOwn,Sorcery.YouOwn | ChoiceTitle$ Choose an instant or sorcery card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Conductive Current's Perpetual Effect | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddReplacementEffects$ PerpDamageRep | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains "If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead."
SVar:PerpDamageRep:Event$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Permanent,Player | ReplaceWith$ DmgPlus2 | Description$ If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead.
SVar:DmgPlus2:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ X
SVar:X:ReplaceCount$DamageAmount/Plus.2
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
Oracle:Conductive Current deals 3 damage to each creature. Choose an instant or sorcery card in your hand. It perpetually gains "If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead."

View File

@@ -0,0 +1,10 @@
Name:Discover the Formula
ManaCost:4 U U
Types:Instant
A:SP$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 3 | ChangeType$ Card.nonLand | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Seek three nonland cards, then nonland cards in your hand perpetually gain "This spell costs {1} less to cast."
SVar:DBEffect:DB$ Effect | RememberObjects$ ValidHand Card.nonLand+YouOwn | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Discover the Formula's Perpetual Effect
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ ReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Each nonland card in your hand perpetually gains "This spell costs {1} less to cast."
SVar:ReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
Oracle:Seek three nonland cards, then nonland cards in your hand perpetually gain "This spell costs {1} less to cast."

View File

@@ -0,0 +1,12 @@
Name:Divine Purge
ManaCost:1 W W
Types:Sorcery
A:SP$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Artifact.powerLE3,Creature.powerLE3 | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile all artifacts and creatures with mana value 3 or less. They perpetually gain "This spell costs {2} more to cast" and "This permanent enters the battlefield tapped." For as long as each of them remain exiled, its owner may play it.
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Divine Purge's Perpetual Effect | SubAbility$ DBMayPlayEffect
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ RaiseCost & ETBTappedDesc | EffectZone$ Command | AddKeyword$ CARDNAME enters the battlefield tapped. | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | SubAbility$ DBMayPlayEffect | Description$ The exiled cards perpetually gain "This spell costs {2} more to cast" and "This permanent enters the battlefield tapped."
SVar:RaiseCost:Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | EffectZone$ All | Description$ This spell costs {2} more to cast.
SVar:ETBTappedDesc:Mode$ Continuous | Affected$ Card.Self | Description$ This permanent enters the battlefield tapped.
SVar:DBMayPlayEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ OwnerMayPlay | Duration$ Permanent | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | SpellDescription$ For as long as each of them remain exiled, its owner may play it.
SVar:OwnerMayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | MayPlay$ True | EffectZone$ Command | MayPlayPlayer$ CardOwner | Description$ For as long as each of these remain exiled, its owner may play it.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:Exile all artifacts and creatures with mana value 3 or less. They perpetually gain "This spell costs {2} more to cast" and "This permanent enters the battlefield tapped." For as long as each of them remain exiled, its owner may play it.

View File

@@ -0,0 +1,14 @@
Name:Ethereal Escort
ManaCost:2 W
Types:Creature Spirit
PT:3/3
K:Lifelink
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChoose | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.YouOwn | ChoiceTitle$ Choose a card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualLifelink | Name$ Ethereal Escort's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualLifelink:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Lifelink | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains lifelink.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
SVar:HasAttackEffect:TRUE
DeckHas:Ability$LifeGain
Oracle:Lifelink\nWhenever Ethereal Escort enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.

View File

@@ -0,0 +1,13 @@
Name:Fearsome Whelp
ManaCost:1 R
Types:Creature Dragon
PT:1/1
K:Flying
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigEffect | TriggerDescription$ At the beginning of your end step, each Dragon card in your hand perpetually gains "This spell costs {1} less to cast."
SVar:TrigEffect:DB$ Effect | RememberObjects$ ValidHand Dragon.YouOwn | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Fearsome Whelp's Perpetual Effect
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ DragonReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Each Dragon card in your hand perpetually gains "This spell costs {1} less to cast."
SVar:DragonReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
DeckHints:Type$Dragon
Oracle:Flying\nAt the beginning of your end step, each Dragon card in your hand perpetually gains "This spell costs {1} less to cast.

View File

@@ -0,0 +1,15 @@
Name:Garruk, Wrath of the Wilds
ManaCost:2 G G
Types:Legendary Planeswalker Garruk
Loyalty:3
A:AB$ ChooseCard | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose up to one creature card in your hand | Amount$ 1 | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Choose a creature card in your hand. It perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast."
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility,PerpetualP1P1 | Duration$ Permanent | Name$ Garruk, Wrath of the Wilds's Perpetual Effect | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.ChosenCard | AddStaticAbility$ ReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast."
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Secondary$ True
SVar:ReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
A:AB$ NameCard | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Draft$ True | Defined$ You | ChooseFromList$ Mosscoat Goriak,Sylvan Brushstrider,Murasa Rootgrazer,Dire Wolf Prowler,Ferocious Pup,Pestilent Wolf,Garruks Uprising,Dawntreader Elk,Nessian Hornbeetle,Territorial Scythecat,Trufflesnout,Wary Okapi,Scurrid Colony,Barkhide Troll,Underdark Basilisk | SubAbility$ DBMakeCard | StackDescription$ SpellDescription | SpellDescription$ Draft a card from CARDNAME's spellbook and put it onto the battlefield.
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Battlefield | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearNamedCard$ True | ClearChosenCard$ True
A:AB$ PumpAll | Cost$ SubCounter<5/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidCards$ Creature.YouCtrl | NumAtt$ +3 | NumDef$ +3 | KW$ Trample | SpellDescription$ Until end of turn, creatures you control get +3/+3 and gain trample.
Oracle:[+1]: Choose a creature card in your hand. It perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast."\n[1]: Draft a card from Garruk, Wrath of the Wild's spellbook and put it onto the battlefield.\n[5]: Until end of turn, creatures you control get +3/+3 and gain trample.

View File

@@ -4,8 +4,9 @@ Types:Creature Human Wizard
PT:1/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, choose an instant or sorcery card in your hand with mana value 3 or greater. It perpetually gains "This spell costs {2} less to cast."
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Instant.YouOwn+cmcGE3,Sorcery.YouOwn+cmcGE3 | ChoiceTitle$ Choose an instant or sorcery card in your hand with mana value 3 or greater | Amount$ 1 | AILogic$ BestCard | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualReduce | Name$ Geistchanneler's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualReduce:Mode$ ReduceCost | ValidCard$ Card.ChosenCard | Amount$ 2 | AddKeyword$ Haste | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This spell perpetually costs {2} less to cast.
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | Name$ Geistchanneler's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.ChosenCard | AddStaticAbility$ PerpetualReduce | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains "This spell costs {2} less to cast."
SVar:PerpetualReduce:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | EffectZone$ All | Description$ This spell costs {2} less to cast.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
DeckHints:Type$Instant|Sorcery
SVar:NeedsToPlayVar:X GE1

View File

@@ -0,0 +1,20 @@
Name:Gutmorn, Pactbound Servant
ManaCost:2 B
Types:Legendary Creature Demon
PT:1/3
K:Flying
K:Deathtouch
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBDiscard | TriggerDescription$ Whenever CARDNAME enters the battlefield, each player discards a nonland card.
SVar:DBDiscard:DB$ Discard | Defined$ Player | DiscardValid$ Card.nonLand | Mode$ TgtChoose | AILogic$ DiscardUncastableAndExcess
T:Mode$ Discarded | TriggerZones$ Battlefield | Execute$ TrigChoosePlayer | PlayerTurn$ True | TriggerController$ TriggeredCardController | TriggerDescription$ Whenever a player discards a card during your turn, they choose another player. That player conjures a duplicate of that card into their hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
SVar:TrigChoosePlayer:DB$ ChoosePlayer | Defined$ TriggeredCardOwner | Choices$ Player.Other | ChoiceTitle$ Choose another player | SubAbility$ DBConjure
SVar:DBConjure:DB$ MakeCard | Defined$ ChosenPlayer | DefinedName$ TriggeredCard | Zone$ Hand | RememberMade$ True | SubAbility$ DBClearChosen
SVar:DBClearChosen:DB$ Cleanup | ClearChosenPlayer$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Gutmorn, Pactbound Servant's Perpetual Effect | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.Self | EffectZone$ All | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
DeckHas:Ability$Discard
Oracle:Flying, deathtouch\nWhenever Gutmorn, Pactbound Servant enters the battlefield, each player discards a nonland card.\nWhenever a player discards a card during your turn, they choose another player. That player conjures a duplicate of that card into their hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."

View File

@@ -4,10 +4,14 @@ Types:Creature Human
PT:1/1
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraft | TriggerDescription$ When CARDNAME enters the battlefield, draft a card from CARDNAME's spellbook. That card perpetually gains "You may spend mana as though it were mana of any color to cast this spell" and "When you cast this spell, return a card named Ominous Traveler you control to its owner's hand."
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Dominating Vampire,Vampire Socialite,Stromkirk Bloodthief,Falkenrath Pit Fighter,Wolfkin Outcast,Howlpack Piper,Tovolar; Dire Overlord,Patrician Geist,Shipwreck Sifters,Steelclad Spirit,Heron-Blessed Geist,Archghoul of Thraben,Champion of the Perished,Headless Rider,Bladestitched Skaab | SubAbility$ DBMakeCard
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | Triggers$ CastTrigger | StaticAbilities$ SpendAnyMana | Duration$ Permanent | Name$ Ominous Traveler's Perpetual Effect | SubAbility$ DBCleanup
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
SVar:CastTrigger:Mode$ SpellCast | ValidCard$ Card.IsRemembered | Execute$ TrigReturn | TriggerDescription$ When you cast this spell, return a card named Ominous Traveler you control to its owner's hand.
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | RememberMade$ True | SubAbility$ DBClearName
SVar:DBClearName:DB$ Cleanup | ClearNamedCard$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | Triggers$ CastTrigger | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Ominous Traveler's Perpetual Effect | SubAbility$ DBCleanup
SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | AddTrigger$ CastTrigger | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell" and "When you cast this spell, return a card named Ominous Traveler you control to its owner's hand."
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.Self | EffectZone$ All | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
SVar:CastTrigger:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When you cast this spell, return a card named Ominous Traveler you control to its owner's hand.
SVar:TrigReturn:DB$ ChangeZone | ChangeType$ Card.namedOminous Traveler+YouCtrl | ChangeNum$ 1 | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearNamedCard$ True
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
SVar:DBUpdate:DB$ UpdateRemember
Oracle:When Ominous Traveler enters the battlefield, draft a card from Ominous Traveler's spellbook. That card perpetually gains "You may spend mana as though it were mana of any color to cast this spell" and "When you cast this spell, return a card named Ominous Traveler you control to its owner's hand."

View File

@@ -5,6 +5,6 @@ PT:2/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, choose a creature card in your hand. It perpetually gets +2/+2.
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualP2P2 | Name$ Veteran Charger's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
SVar:PerpetualP2P2:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 2 | AddToughness$ 2 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gets +2/+2.
SVar:PerpetualP2P2:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 2 | AddToughness$ 2 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +2/+2.
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
Oracle:When Veteran Charger enters the battlefield, choose a creature card in your hand. It perpetually gets +2/+2.

View File

@@ -5,6 +5,8 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import forge.game.card.*;
import forge.util.collect.FCollectionView;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Sets;
@@ -16,7 +18,6 @@ import forge.card.ColorSet;
import forge.card.MagicColor;
import forge.card.mana.ManaCostShard;
import forge.game.GameView;
import forge.game.card.Card;
import forge.game.card.CardView;
import forge.game.card.CardView.CardStateView;
import forge.game.zone.ZoneType;
@@ -429,7 +430,17 @@ public class CardDetailUtil {
area.append("\n");
}
area.append("(chosen cards: ");
area.append(Lang.joinHomogenous(card.getChosenCards()));
if (card.isImmutable() && card.getName().contains("Perpetual Effect")) {
List<CardView> chosenToShow = new ArrayList<>();
for (CardView cc : card.getChosenCards()) {
if (!cc.getZone().isHidden()) {
chosenToShow.add(cc);
}
}
area.append(Lang.joinHomogenous(chosenToShow));
} else {
area.append(Lang.joinHomogenous(card.getChosenCards()));
}
area.append(")");
}