mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Merge branch 'patch' into 'master'
Added a few Dominaria cards See merge request core-developers/forge!283
This commit is contained in:
@@ -9,6 +9,7 @@ import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.card.CardCollectionView;
|
||||
import forge.game.card.CardLists;
|
||||
import forge.game.card.CounterType;
|
||||
import forge.game.player.DelayedReveal;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerView;
|
||||
@@ -370,11 +371,14 @@ public class DigEffect extends SpellAbilityEffect {
|
||||
Card c = rest.get(i);
|
||||
final PlayerZone toZone = c.getOwner().getZone(destZone2);
|
||||
c = game.getAction().moveTo(toZone, c, sa);
|
||||
if (destZone2.equals(ZoneType.Battlefield) && !keywords.isEmpty()) {
|
||||
if (destZone2 == ZoneType.Battlefield && !keywords.isEmpty()) {
|
||||
for (final String kw : keywords) {
|
||||
c.addExtrinsicKeyword(kw);
|
||||
}
|
||||
} else if (destZone2.equals(ZoneType.Exile)) {
|
||||
} else if (destZone2 == ZoneType.Exile) {
|
||||
if (sa.hasParam("ExileWithCounter")) {
|
||||
c.addCounter(CounterType.getType(sa.getParam("ExileWithCounter")), 1, effectHost, true);
|
||||
}
|
||||
c.setExiledWith(effectHost);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,11 +65,11 @@ public class LifeExchangeEffect extends SpellAbilityEffect {
|
||||
if ((life1 > life2) && p1.canLoseLife() && p2.canGainLife()) {
|
||||
final int diff = life1 - life2;
|
||||
p1.loseLife(diff);
|
||||
p2.gainLife(diff, source);
|
||||
p2.gainLife(diff, source, sa);
|
||||
} else if ((life2 > life1) && p2.canLoseLife() && p1.canGainLife()) {
|
||||
final int diff = life2 - life1;
|
||||
p2.loseLife(diff);
|
||||
p1.gainLife(diff, source);
|
||||
p1.gainLife(diff, source, sa);
|
||||
} else {
|
||||
// they are equal, so nothing to do
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class LifeExchangeVariantEffect extends SpellAbilityEffect {
|
||||
game.fireEvent(new GameEventCardStatsChanged(source));
|
||||
} else if ((num > pLife) && p.canGainLife()) {
|
||||
final int diff = num - pLife;
|
||||
p.gainLife(diff, source);
|
||||
p.gainLife(diff, source, sa);
|
||||
source.addNewPT(power, toughness, timestamp);
|
||||
game.fireEvent(new GameEventCardStatsChanged(source));
|
||||
} else {
|
||||
|
||||
@@ -46,7 +46,7 @@ public class LifeGainEffect extends SpellAbilityEffect {
|
||||
|
||||
for (final Player p : tgtPlayers) {
|
||||
if (!sa.usesTargeting() || p.canBeTargetedBy(sa)) {
|
||||
p.gainLife(lifeAmount, sa.getHostCard());
|
||||
p.gainLife(lifeAmount, sa.getHostCard(), sa);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5002,11 +5002,6 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "CARDNAME can't be the target of Aura spells.":
|
||||
if (source.isAura() && sa.isSpell()) {
|
||||
result.setFalse();
|
||||
}
|
||||
break;
|
||||
case "CARDNAME can't be enchanted.":
|
||||
if (source.isAura()) {
|
||||
result.setFalse();
|
||||
|
||||
@@ -53,6 +53,7 @@ public class CardDamageMap extends ForwardingTable<Card, GameEntity, Integer> {
|
||||
sourceLKI.getGame().getTriggerHandler().runTrigger(TriggerType.DamageDealtOnce, runParams, false);
|
||||
|
||||
if (sourceLKI.hasKeyword("Lifelink")) {
|
||||
// FIXME: add sourceSA to fix Firesong and Sunspeaker
|
||||
sourceLKI.getController().gainLife(sum, sourceLKI);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,6 +87,8 @@ public enum CounterType {
|
||||
|
||||
ECHO("ECHO", 225, 180, 255),
|
||||
|
||||
EGG("EGG", 255, 245, 195),
|
||||
|
||||
ELIXIR("ELIXR", 81, 221, 175),
|
||||
|
||||
EON("EON", 23, 194, 255),
|
||||
@@ -239,6 +241,8 @@ public enum CounterType {
|
||||
|
||||
SHRED("SHRED", 255, 165, 152),
|
||||
|
||||
SILVER("SILVER", 192, 192, 192),
|
||||
|
||||
SLEEP("SLEEP", 178, 192, 255),
|
||||
|
||||
SLEIGHT("SLGHT", 185, 174, 255),
|
||||
|
||||
@@ -114,7 +114,7 @@ public class CostGainLife extends CostPart {
|
||||
return false;
|
||||
|
||||
playersLeft--;
|
||||
opp.gainLife(c, null);
|
||||
opp.gainLife(c, ability.getHostCard(), ability);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -360,6 +360,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
}
|
||||
|
||||
public final boolean gainLife(int lifeGain, final Card source) {
|
||||
return gainLife(lifeGain, source, null);
|
||||
}
|
||||
|
||||
public final boolean gainLife(int lifeGain, final Card source, final SpellAbility sa) {
|
||||
|
||||
// Run any applicable replacement effects.
|
||||
final Map<String, Object> repParams = Maps.newHashMap();
|
||||
@@ -405,6 +409,8 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
final Map<String, Object> runParams = Maps.newHashMap();
|
||||
runParams.put("Player", this);
|
||||
runParams.put("LifeAmount", lifeGain);
|
||||
runParams.put("Source", source);
|
||||
runParams.put("SourceSA", sa);
|
||||
game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false);
|
||||
|
||||
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
|
||||
|
||||
@@ -479,7 +479,10 @@ public class SpellAbilityRestriction extends SpellAbilityVariables {
|
||||
&& !activator.canCastSorcery()) {
|
||||
return false;
|
||||
}
|
||||
final int limits = c.getAmountOfKeyword("May activate CARDNAME's loyalty abilities once");
|
||||
|
||||
final int initialLimit = c.hasKeyword("CARDNAME's loyalty abilities can be activated twice each turn rather than only once") ? 1 : 0;
|
||||
final int limits = c.getAmountOfKeyword("May activate CARDNAME's loyalty abilities once") + initialLimit;
|
||||
|
||||
int numActivates = 0;
|
||||
for (final SpellAbility pwAbs : c.getAllSpellAbilities()) {
|
||||
// check all abilities on card that have their planeswalker
|
||||
|
||||
@@ -55,6 +55,18 @@ public class TriggerLifeGained extends Trigger {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (this.mapParams.containsKey("ValidSource")) {
|
||||
if (!matchesValid(runParams2.get("Source"), this.mapParams.get("ValidSource").split(","),
|
||||
this.getHostCard())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (this.mapParams.containsKey("Spell")) {
|
||||
final SpellAbility spellAbility = (SpellAbility) runParams2.get("SourceSA");
|
||||
if (spellAbility == null || !spellAbility.getRootAbility().isSpell()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:3 B R G
|
||||
Types:Legendary Creature Giant Warrior
|
||||
PT:6/5
|
||||
K:Vigilance
|
||||
K:CARDNAME can't be the target of Aura spells.
|
||||
S:Mode$ CantTarget | ValidCard$ Card.Self | ValidSource$ Aura | ValidSA$ Spell | Description$ CARDNAME can't be the target of Aura spells.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/bartel_runeaxe.jpg
|
||||
Oracle:Vigilance\nBartel Runeaxe can't be the target of Aura spells.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Corrupted Grafstone
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
K:CARDNAME enters the battlefield tapped.
|
||||
A:AB$ ManaReflected | Cost$ T | ColorOrType$ Color | Valid$ Defined.ValidGraveyard Card.YouOwn | ReflectProperty$ Is | SpellDescription$ Choose a color of a permanent you control. Add one mana of that color to your mana pool.
|
||||
A:AB$ ManaReflected | Cost$ T | ColorOrType$ Color | Valid$ Defined.ValidGraveyard Card.YouOwn | ReflectProperty$ Is | SpellDescription$ Choose a color of a card in your graveyard. Add one mana of that color to your mana pool.
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/corrupted_grafstone.jpg
|
||||
Oracle:Corrupted Grafstone enters the battlefield tapped.\n{T}: Choose a color of a card in your graveyard. Add one mana of that color to your mana pool.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
Name:Adeliz, the Cinder Wind
|
||||
ManaCost:1 U R
|
||||
Types:Legendary Creature Human Wizard
|
||||
PT:2/2
|
||||
K:Flying
|
||||
K:Haste
|
||||
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPumpAll | TriggerDescription$ Whenever you cast an instant or sorcery spell, Wizards you control get +1/+1 until end of turn.
|
||||
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Wizard.YouCtrl | NumAtt$ +1 | NumDef$ +1
|
||||
SVar:BuffedBy:Instant,Sorcery
|
||||
DeckHints:Type$Instant|Sorcery
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/adeliz_the_cinder_wind.jpg
|
||||
Oracle:Flying, haste\nWhenever you cast an instant or sorcery spell, Wizards you control get +1/+1 until end of turn.
|
||||
12
forge-gui/res/cardsfolder/upcoming/arvad_the_cursed.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/arvad_the_cursed.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Arvad the Cursed
|
||||
ManaCost:3 W B
|
||||
Types:Legendary Creature Vampire Knight
|
||||
PT:3/3
|
||||
K:Deathtouch
|
||||
K:Lifelink
|
||||
S:Mode$ Continuous | Affected$ Creature.Legendary+Other+YouCtrl | AddPower$ 2 | AddToughness$ 2 | Description$ Other legendary creatures you control get +2/+2.
|
||||
SVar:RemRandomDeck:True
|
||||
SVar:PlayMain1:TRUE
|
||||
DeckHints:Type$Legendary
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/arvad_the_cursed.jpg
|
||||
Oracle:Deathtouch, lifelink\nOther legendary creatures you control get +2/+2.
|
||||
@@ -0,0 +1,12 @@
|
||||
Name:Aryel, Knight of Windgrace
|
||||
ManaCost:2 W B
|
||||
Types:Legendary Creature Human Knight
|
||||
PT:3/3
|
||||
K:Vigilance
|
||||
A:AB$ Token | Cost$ 2 W T | TokenAmount$ 1 | TokenName$ Knight | TokenTypes$ Creature,Knight | TokenOwner$ You | TokenColors$ White | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Vigilance | TokenImage$ w 2 2 knight dom | SpellDescription$ Create a 2/2 white Knight creature token with vigilance.
|
||||
A:AB$ Destroy | Cost$ B T tapXType<X/Knight> | Announce$ X | ValidTgts$ Creature.powerLEX | TgtPrompt$ Select target creature with power X or less | References$ X | SpellDescription$ Destroy target creature with power X or less.
|
||||
SVar:X:XChoice
|
||||
DeckHas:Ability$Token
|
||||
DeckHints:Type$Knight
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/aryel_knight_of_windgrace.jpg
|
||||
Oracle:Vigilance\n{2}{W}, T: Create a 2/2 white Knight creature token with vigilance.\n{B}, {T}, Tap X untapped Knights you control: Destroy target creature with power X or less.
|
||||
@@ -0,0 +1,10 @@
|
||||
Name:Chandra, Bold Pyromancer
|
||||
ManaCost:4 R R
|
||||
Types:Legendary Planeswalker Chandra
|
||||
Loyalty:5
|
||||
A:AB$ Mana | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Produced$ R | Amount$ 2 | AILogic$ ManaRitual | SubAbility$ DBDealDamage | SpellDescription$ Add {R}{R}. CARDNAME deals 2 damage to target player.
|
||||
SVar:DBDealDamage:DB$ DealDamage | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ 2
|
||||
A:AB$ DealDamage | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 3 | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to target creature or planeswalker.
|
||||
A:AB$ DamageAll | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | NumDmg$ 10 | ValidTgts$ Player | TgtPrompt$ Select a player | ValidCards$ Creature,Planeswalker | ValidPlayers$ Targeted | ValidDescription$ target player and each creature and planeswalker they control. | SpellDescription$ CARDNAME deals 10 damage to target player and each creature and planeswalker they control.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/chandra_bold_pyromancer.jpg
|
||||
Oracle:[+1]: Add {R}{R}. Chandra, Bold Pyromancer deals 2 damage to target player.\n[-3]: Chandra, Bold Pyromancer deals 3 damage to target creature or planeswalker.\n[-7]: Chandra, Bold Pyromancer deals 10 damage to target player and each creature and planeswalker they control.
|
||||
15
forge-gui/res/cardsfolder/upcoming/darigaaz_reincarnated.txt
Normal file
15
forge-gui/res/cardsfolder/upcoming/darigaaz_reincarnated.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
Name:Darigaaz Reincarnated
|
||||
ManaCost:4 B R G
|
||||
Types:Legendary Creature Dragon
|
||||
PT:7/7
|
||||
K:Flying
|
||||
K:Trample
|
||||
K:Haste
|
||||
R:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | ReplaceWith$ Exile | Description$ If CARDNAME would die, instead exile it with three egg counters on it.
|
||||
SVar:Exile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBAddCounter | Defined$ ReplacedCard
|
||||
SVar:DBAddCounter:DB$ PutCounter | Defined$ ReplacedCard | CounterType$ EGG | CounterNum$ 3
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Exile | IsPresent$ Card.Self+counters_GE1_EGG | PresentZone$ Exile | Execute$ DBRemoveCounter | TriggerDescription$ At the beginning of your upkeep, if CARDNAME is exiled with an egg counter on it, remove an egg counter from it. Then if CARDNAME has no egg counters on it, return it to the battlefield.
|
||||
SVar:DBRemoveCounter:DB$ RemoveCounter | Defined$ Self | CounterType$ EGG | CounterNum$ 1 | SubAbility$ DBReturn
|
||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Self | Origin$ Exile | Destination$ Battlefield | ConditionDefined$ Self | ConditionPresent$ Card.counters_EQ0_EGG
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/darigaaz_reincarnated.jpg
|
||||
Oracle:Flying, trample, haste\nIf Darigaaz Reincarnated would die, instead exile it with three egg counters on it.\nAt the beginning of your upkeep, if Darigaaz is exiled with an egg counter on it, remove an egg counter from it. Then if Darigaaz has no egg counters on it, return it to the battlefield.
|
||||
@@ -0,0 +1,9 @@
|
||||
Name:Firesong and Sunspeaker
|
||||
ManaCost:4 R W
|
||||
Types:Legendary Creature Minotaur Cleric
|
||||
PT:4/6
|
||||
S:Mode$ Continuous | AddKeyword$ Lifelink | Affected$ Instant.Red+YouCtrl,Sorcery.Red+YouCtrl | AffectedZone$ Stack | Description$ Red instant and sorcery spells you control have lifelink.
|
||||
T:Mode$ LifeGained | ValidPlayer$ You | ValidSource$ Instant.White,Sorcery.White | Spell$ True | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever a white instant or sorcery spell causes you to gain life, CARDNAME deals 3 damage to target creature or player.
|
||||
SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 3
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/firesong_and_sunspeaker.jpg
|
||||
Oracle:Red instant and sorcery spells you control have lifelink.\nWhenever a white instant or sorcery spell causes you to gain life, Firesong and Sunspeaker deals 3 damage to target creature or player.
|
||||
10
forge-gui/res/cardsfolder/upcoming/garna_the_bloodflame.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/garna_the_bloodflame.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Garna, the Bloodflame
|
||||
ManaCost:3 B R
|
||||
Types:Legendary Creature Human Warrior
|
||||
PT:3/3
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, return to your hand all creature cards in your graveyard that were put there from anywhere this turn.
|
||||
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ ThisTurnEntered_Graveyard_Card.Creature+YouOwn+nonToken
|
||||
S:Mode$ Continuous | Affected$ Creature.Other+YouCtrl | AddKeyword$ Haste | Description$ Other creatures you control have haste.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/garna_the_bloodflame.jpg
|
||||
Oracle:Flash\nWhen Garna, the Bloodflame enters the battlefield, return to your hand all creature cards in your graveyard that were put there from anywhere this turn.\nOther creatures you control have haste.
|
||||
10
forge-gui/res/cardsfolder/upcoming/grand_warlord_radha.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/grand_warlord_radha.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Grand Warlord Radha
|
||||
ManaCost:2 R G
|
||||
Types:Legendary Creature Elf Warrior
|
||||
PT:3/4
|
||||
K:Haste
|
||||
T:Mode$ AttackersDeclared | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMana | TriggerDescription$ Whenever one or more creatures you control attack, add that much mana in any combination of {R} and/or {G}. Until end of turn, you don't lose this mana as steps and phases end.
|
||||
SVar:TrigMana:DB$ Mana | Produced$ Combo R G | Amount$ X | References$ X | PersistentMana$ True
|
||||
SVar:X:Count$Valid Creature.attacking+YouCtrl
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/grand_warlord_radha.jpg
|
||||
Oracle:Haste\nWhenever one or more creatures you control attack, add that much mana in any combination of {R} and/or {G}. Until end of turn, you don't lose this mana as steps and phases end.
|
||||
@@ -0,0 +1,11 @@
|
||||
Name:Hallar, the Firefletcher
|
||||
ManaCost:1 R G
|
||||
Types:Legendary Creature Elf Archer
|
||||
PT:3/3
|
||||
K:Trample
|
||||
T:Mode$ SpellCast | ValidCard$ Card.kicked | ValidActivatingPlayer$ You | Execute$ DBPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a spell, if that spell was kicked, put a +1/+1 counter on CARDNAME, then CARDNAME deals damage equal to the number of +1/+1 counters on it to each opponent.
|
||||
SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBDealDamage
|
||||
SVar:DBDealDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ X | References$ X
|
||||
SVar:X:Count$CardCounters.P1P1
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/hallar_the_firefletcher.jpg
|
||||
Oracle:Trample\nWhenever you cast a spell, if that spell was kicked, put a +1/+1 counter on Hallar, the Firefletcher, then Hallar deals damage equal to the number of +1/+1 counters on it to each opponent.
|
||||
9
forge-gui/res/cardsfolder/upcoming/jhoiras_familiar.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/jhoiras_familiar.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Jhoira's Familiar
|
||||
ManaCost:4
|
||||
Types:Artifact Creature Bird
|
||||
PT:2/2
|
||||
K:Flying
|
||||
S:Mode$ ReduceCost | ValidCard$ Card.Historic | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Historic spells you cast cost {1} less to cast. (Artifacts, legendaries, and Sagas are historic.)
|
||||
SVar:BuffedBy:Card.Historic
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/jhoiras_familiar.jpg
|
||||
Oracle:Flying\nHistoric spells you cast cost {1} less to cast. (Artifacts, legendaries, and Sagas are historic.)
|
||||
@@ -0,0 +1,10 @@
|
||||
Name:Jodah, Archmage Eternal
|
||||
ManaCost:1 U R W
|
||||
Types:Legendary Creature Human Wizard
|
||||
PT:4/3
|
||||
K:Flying
|
||||
S:Mode$ Continuous | Affected$ Card.YouCtrl | AddKeyword$ Alternative Cost:W U B R G | AffectedZone$ Hand,Graveyard,Exile,Library,Command | Description$ You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast.
|
||||
SVar:NonStackingEffect:True
|
||||
SVar:RemRandomDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/jodah_archmage_eternal.jpg
|
||||
Oracle:Flying\nYou may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast.
|
||||
12
forge-gui/res/cardsfolder/upcoming/karn_scion_of_urza.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/karn_scion_of_urza.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Karn, Scion of Urza
|
||||
ManaCost:4
|
||||
Types:Legendary Planeswalker Karn
|
||||
Loyalty:5
|
||||
A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | DigNum$ 2 | Reveal$ True | ChangeNum$ 1 | ChangeValid$ Card | DestinationZone$ Hand | DestinationZone2$ Exile | ExileWithCounter$ SILVER | Choser$ Opponent | SpellDescription$ Reveal the top two cards of your library. An opponent chooses one of them. Put that card into your hand and exile the other with a silver counter on it.
|
||||
A:AB$ ChangeZone | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Hidden$ True | Origin$ Exile | Destination$ Hand | ChangeType$ Card.YouOwn+counters_GE1_SILVER | SpellDescription$ Put a card you own with a silver counter on it from exile into your hand.
|
||||
A:AB$ Token | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | Ultimate$ True | TokenName$ Construct | TokenTypes$ Artifact,Creature,Construct | TokenOwner$ You | TokenColors$ Colorless | TokenPower$ 0 | TokenToughness$ 0 | TokenStaticAbilities$ TokenPT | TokenSVars$ X | References$ X | TokenImage$ c 0 0 construct DOM | SpellDescription$ Create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control."
|
||||
SVar:TokenPT:Mode$ Continuous | AddPower$ X | AddToughness$ X | Description$ This creature gets +1/+1 for each artifact you control.
|
||||
SVar:X:Count$Valid Artifact.YouCtrl
|
||||
SVar:BuffedBy:Artifact
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/karn_scion_of_urza.jpg
|
||||
Oracle:[+1]: Reveal the top two cards of your library. An opponent chooses one of them. Put that card into your hand and exile the other with a silver counter on it.\n[-1]: Put a card you own with a silver counter on it from exile into your hand.\n[-2]: Create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control."
|
||||
@@ -0,0 +1,8 @@
|
||||
Name:Mishra's Self-Replicator
|
||||
ManaCost:5
|
||||
Types:Artifact Creature Assembly-Worker
|
||||
PT:2/2
|
||||
T:Mode$ SpellCast | ValidCard$ Card.Historic | ValidActivatingPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a historic spell, you may pay {1}. If you do, create a token that's a copy of CARDNAME. (Artifacts, legendaries, and Sagas are historic.)
|
||||
SVar:TrigCopy:AB$ CopyPermanent | Cost$ 1 | Defined$ Self
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/mishras_self_replicator.jpg
|
||||
Oracle:Whenever you cast a historic spell, you may pay {1}. If you do, create a token that's a copy of CARDNAME. (Artifacts, legendaries, and Sagas are historic.)
|
||||
7
forge-gui/res/cardsfolder/upcoming/mox_amber.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/mox_amber.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Name:Mox Amber
|
||||
ManaCost:0
|
||||
Types:Legendary Artifact
|
||||
A:AB$ ManaReflected | Cost$ T | ColorOrType$ Color | Valid$ Creature.Legendary+YouCtrl,Planeswalker.Legendary+YouCtrl | ReflectProperty$ Is | SpellDescription$ Add one mana of any color among legendary creatures and planeswalkers you control.
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/mox_amber.jpg
|
||||
Oracle:{T}: Add one mana of any color among legendary creatures and planeswalkers you control.
|
||||
12
forge-gui/res/cardsfolder/upcoming/oath_of_teferi.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/oath_of_teferi.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Oath of Teferi
|
||||
ManaCost:3 W U
|
||||
Types:Legendary Enchantment
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile another target permanent you control. Return that card to the battlefield under its owner's control at the beginning of the next end step.
|
||||
SVar:TrigExile:DB$ ChangeZone | ValidTgts$ Permanent.Other+YouCtrl | Mandatory$ True | TgtPrompt$ Select another target permanent you control | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DelTrig
|
||||
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigBounce | TriggerDescription$ Return exiled permanent to the battlefield. | RememberObjects$ Remembered | SubAbility$ DBCleanup
|
||||
SVar:TrigBounce:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ DelayTriggerRemembered
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
S:Mode$ Continuous | AffectedZone$ Battlefield | Affected$ Planeswalker.YouCtrl | AddHiddenKeyword$ CARDNAME's loyalty abilities can be activated twice each turn rather than only once | Description$ You may activate the loyalty abilities of planeswalkers you control twice each turn rather than only once.
|
||||
SVar:NeedsToPlay:Planeswalker.YouCtrl
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/oath_of_teferi.jpg
|
||||
Oracle:When Oath of Teferi enters the battlefield, exile another target permanent you control. Return it to the battlefield under its owner's control at the beginning of the next end step.\nYou may activate the loyalty abilities of planeswalkers you control twice each turn rather than only once.
|
||||
15
forge-gui/res/cardsfolder/upcoming/rona_disciple_of_gix.txt
Normal file
15
forge-gui/res/cardsfolder/upcoming/rona_disciple_of_gix.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
Name:Rona, Disciple of Gix
|
||||
ManaCost:1 U B
|
||||
Types:Legendary Creature Human Artificer
|
||||
PT:2/2
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ HistoricExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may exile target historic card from your graveyard. (Artifacts, legendaries, and Sagas are historic.)
|
||||
SVar:HistoricExile:DB$ ChangeZone | ValidTgts$ Card.Historic | TgtPrompt$ Select target historic card from your graveyard | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True
|
||||
S:Mode$ Continuous | MayPlay$ True | Affected$ Card.nonLand+IsRemembered+ExiledWithSource | AffectedZone$ Exile | Description$ You may play cards exiled with CARDNAME.
|
||||
T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget
|
||||
SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
A:AB$ Mill | Cost$ 4 T | Defined$ You | NumCards$ 1 | Destination$ Exile | RememberMilled$ True | SpellDescription$ Exile the top card of your library.
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/rona_disciple_of_gix.jpg
|
||||
Oracle:When Rona, Disciple of Gix enters the battlefield, you may exile target historic card from your graveyard. (Artifacts, legendaries, and Sagas are historic.)\nYou may cast nonland cards exiled with Rona.\n{4}, {T}: Exile the top card of your library.
|
||||
10
forge-gui/res/cardsfolder/upcoming/shanna_sisays_legacy.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/shanna_sisays_legacy.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Shanna, Sisay's Legacy
|
||||
ManaCost:G W
|
||||
Types:Creature Human Warrior
|
||||
PT:0/0
|
||||
S:Mode$ CantTarget | ValidCard$ Card.Self | ValidSource$ Card | ValidSA$ Activated,Triggered | Activator$ Player.Opponent | Description$ CARDNAME can't be the target of abilities your opponents control.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | References$ X | Description$ CARDNAME gets +1/+1 for each creature you control.
|
||||
SVar:X:Count$Valid Creature.YouCtrl
|
||||
SVar:BuffedBy:Creature
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/shanna_sisays_legacy.jpg
|
||||
Oracle:Shanna, Sisay's Legacy can't be the target of abilities your opponents control.\nShanna gets +1/+1 for each creature you control.
|
||||
@@ -0,0 +1,10 @@
|
||||
Name:Slimefoot, the Stowaway
|
||||
ManaCost:1 B G
|
||||
Types:Legendary Creature Fungus
|
||||
PT:2/3
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Saproling.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever a Saproling you control dies, CARDNAME deals 1 damage to each opponent and you gain 1 life.
|
||||
SVar:TrigDealDamage:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ 1 | SubAbility$ DBGainLife
|
||||
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1
|
||||
A:AB$ Token | Cost$ 4 | TokenAmount$ 1 | TokenName$ Saproling | TokenTypes$ Creature,Saproling | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1 | TokenImage$ g 1 1 saproling dom | SpellDescription$ Create a 1/1 green Saproling creature token.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/slimefoot_the_stowaway.jpg
|
||||
Oracle:Whenever a Saproling you control dies, Slimefoot, the Stowaway deals 1 damage to each opponent and you gain 1 life.\n{4}: Create a 1/1 green Saproling creature token.
|
||||
@@ -0,0 +1,13 @@
|
||||
Name:Teferi, Hero of Dominaria
|
||||
ManaCost:3 W U
|
||||
Types:Legendary Planeswalker Teferi
|
||||
Loyalty:4
|
||||
A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | NumCards$ 1 | SubAbility$ DelTrigUntap | SpellDescription$ Draw a card. At the beginning of the next end step, untap two lands.
|
||||
SVar:DelTrigUntap:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigUntap | TriggerDescription$ At the beginning of the next end step, untap two lands.
|
||||
SVar:TrigUntap:DB$ Untap | UntapExactly$ True | UntapType$ Land | Amount$ 2 | Defined$ You
|
||||
A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 2 | IsCurse$ True | SpellDescription$ Put target nonland permanent into its owner's library third from the top.
|
||||
A:AB$ Effect | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Teferi, Hero of Dominaria | Image$ emblem_teferi_hero_of_dominaria | Triggers$ TrigDraw | SVars$ EffSpellCast | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you draw a card, exile target permanent an opponent controls."
|
||||
SVar:TrigDraw:Mode$ Drawn | ValidCard$ Card.YouCtrl | Execute$ EffSpellCast | TriggerDescription$ Whenever you draw a card, exile target permanent an opponent controls.
|
||||
SVar:EffSpellCast:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.OppCtrl | TgtPrompt$ Select target permanent an opponent controls
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/teferi_hero_of_dominaria.jpg
|
||||
Oracle:[+1]: Draw a card. At the beginning of the next end step, untap two lands.\n[-3]: Put target nonland permanent into its owner's library third from the top.\n[-8]: You get an emblem with "Whenever you draw a card, exile target permanent an opponent controls."
|
||||
11
forge-gui/res/cardsfolder/upcoming/tiana_ships_caretaker.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/tiana_ships_caretaker.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Tiana, Ship's Caretaker
|
||||
ManaCost:3 R W
|
||||
Types:Legendary Creature Angel Artificer
|
||||
PT:3/3
|
||||
K:Flying
|
||||
K:First Strike
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Equipment.YouCtrl,Aura.YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ DelayedTrig | TriggerDescription$ Whenever an Aura or Equipment you control is put into a graveyard from the battlefield, you may return that card to its owner's hand at the beginning of the next end step.
|
||||
SVar:DelayedTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigBounce | RememberObjects$ TriggeredCard | TriggerDescription$ Return that card to its owner's hand at the beginning of the next end step.
|
||||
SVar:TrigBounce:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ DelayTriggerRemembered
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/tiana_ships_caretaker.jpg
|
||||
Oracle:Flying, first strike\nWhenever an Aura or Equipment you control is put into a graveyard from the battlefield, you may return that card to its owner's hand at the beginning of the next end step.
|
||||
Reference in New Issue
Block a user