Merge branch 'master' into 'master'

STX cards + Abundant Harvest

See merge request core-developers/forge!4285
This commit is contained in:
Michael Kamensky
2021-03-27 15:54:25 +00:00
11 changed files with 78 additions and 13 deletions

View File

@@ -225,9 +225,11 @@ public class PlayerProperty {
if (source.getChosenPlayer() == null || !source.getChosenPlayer().equals(player)) {
return false;
}
} else if (property.startsWith("LifeEquals_")) {
int life = AbilityUtils.calculateAmount(source, property.substring(11), null);
if (player.getLife() != life) {
} else if (property.startsWith("life")) {
int life = player.getLife();
int amount = AbilityUtils.calculateAmount(source, property.substring(6), spellAbility);
if (!Expressions.compare(life, property, amount)) {
return false;
}
} else if (property.equals("IsPoisoned")) {

View File

@@ -4,9 +4,8 @@ Types:Enchantment
K:etbCounter:OMEN:7
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemoveCtr | TriggerDescription$ At the beginning of your upkeep, remove an omen counter from CARDNAME. If there are no omen counters on CARDNAME, the player with the highest life total wins the game. If two or more players are tied for highest life total, the game is a draw.
SVar:TrigRemoveCtr:DB$ RemoveCounter | Defined$ Self | CounterType$ OMEN | CounterNum$ 1 | SubAbility$ WinnerDecided
SVar:WinnerDecided:DB$ WinsGame | Defined$ Player.LifeEquals_X | ConditionPresent$ Card.Self+counters_EQ0_OMEN | ConditionCheckSVar$ NumHighestLife | ConditionSVarCompare$ LT2 | SubAbility$ GameIsADraw
SVar:WinnerDecided:DB$ WinsGame | Defined$ Player.lifeEQX | ConditionPresent$ Card.Self+counters_EQ0_OMEN | ConditionCheckSVar$ NumHighestLife | ConditionSVarCompare$ LT2 | SubAbility$ GameIsADraw
SVar:GameIsADraw:DB$ GameDrawn | ConditionPresent$ Card.Self+counters_EQ0_OMEN | ConditionCheckSVar$ NumHighestLife | ConditionSVarCompare$ GE2
SVar:Picture:http://www.wizards.com/global/images/magic/general/celestial_convergence.jpg
SVar:X:PlayerCountPlayers$HighestLifeTotal
SVar:NumHighestLife:PlayerCountPlayers$TiedForHighestLife
AI:RemoveDeck:Random

View File

@@ -2,8 +2,7 @@ Name:The Mighty Will Fall
ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBChoosePlayer | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, choose an opponent with the highest life total among your opponents. That player loses 7 life.
SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent+LifeEquals_X | SubAbility$ DBLoseLife
SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent+lifeEQX | SubAbility$ DBLoseLife
SVar:DBLoseLife:DB$ LoseLife | Defined$ ChosenPlayer | LifeAmount$ 7
SVar:X:PlayerCountOpponents$HighestLifeTotal
SVar:Picture:https://downloads.cardforge.org/images/cards/ARC/The Mighty Will Fall.full.jpg
Oracle:When you set this scheme in motion, choose an opponent with the highest life total among your opponents. That player loses 7 life.

View File

@@ -3,11 +3,10 @@ ManaCost:3 B
Types:Enchantment
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, ABILITY
SVar:TrigCharm:DB$ Charm | Choices$ DBLoseGame1,DBLoseGame2 | CharmNum$ 1
SVar:DBLoseGame1:DB$ LosesGame | Defined$ Player.LifeEquals_13 | SubAbility$ DBGainLife | SpellDescription$ Each player with exactly 13 life loses the game, then each player gains 1 life.
SVar:DBLoseGame1:DB$ LosesGame | Defined$ Player.lifeEQ13 | SubAbility$ DBGainLife | SpellDescription$ Each player with exactly 13 life loses the game, then each player gains 1 life.
SVar:DBGainLife:DB$ GainLife | Defined$ Player | LifeAmount$ 1
SVar:DBLoseGame2:DB$ LosesGame | Defined$ Player.LifeEquals_13 | SubAbility$ DBLoseLife | SpellDescription$ Each player with exactly 13 life loses the game, then each player loses 1 life.
SVar:DBLoseGame2:DB$ LosesGame | Defined$ Player.lifeEQ13 | SubAbility$ DBLoseLife | SpellDescription$ Each player with exactly 13 life loses the game, then each player loses 1 life.
SVar:DBLoseLife:DB$ LoseLife | Defined$ Player | LifeAmount$ 1
AI:RemoveDeck:Random
DeckHas:Ability$LifeGain
SVar:Picture:http://www.wizards.com/global/images/magic/general/triskaidekaphobia.jpg
Oracle:At the beginning of your upkeep, choose one —\n• Each player with exactly 13 life loses the game, then each player gains 1 life.\n• Each player with exactly 13 life loses the game, then each player loses 1 life.

View File

@@ -0,0 +1,8 @@
Name:Abundant Harvest
ManaCost:G
Types:Sorcery
A:SP$ GenericChoice | Cost$ G | Choices$ DigLand,DigNonland | SpellDescription$ Choose land or nonland. Reveal cards from the top of your library until you reveal a card of the chosen kind. Put that card into your hand and the rest on the bottom of your library in a random order.
SVar:DigLand:DB$ DigUntil | Valid$ Card.Land | ValidDescription$ land | FoundDestination$ Hand | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SpellDescription$ Land
SVar:DigNonland:DB$ DigUntil | Valid$ Card.nonLand | ValidDescription$ nonland | FoundDestination$ Hand | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SpellDescription$ Nonand
AI:RemoveDeck:All
Oracle:Choose land or nonland. Reveal cards from the top of your library until you reveal a card of the chosen kind. Put that card into your hand and the rest on the bottom of your library in a random order.

View File

@@ -0,0 +1,12 @@
Name:Breena, the Demagogue
ManaCost:1 W B
Types:Legendary Creature Bird Warlock
PT:1/3
K:Flying
T:Mode$ AttackersDeclared | AttackingPlayer$ Player | AttackedTarget$ Opponent.lifeGTX | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player attacks one of your opponents, if that opponent has more life than another of your opponents, that attacking player draws a card and you put two +1/+1 counters on a creature you control.
SVar:TrigDraw:DB$ Draw | Defined$ AttackingPlayer | SubAbility$ DBChooseCard
SVar:DBChooseCard:DB$ ChooseCard | Choices$ Creature.YouCtrl | SubAbility$ DBPutCounter
SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ P1P1 | CounterNum$ 2
SVar:X:PlayerCountOpponents$LowestLifeTotal
DeckHas:Ability$Counters
Oracle:Flying\nWhenever a player attacks one of your opponents, if that opponent has more life than another of your opponents, that attacking player draws a card and you put two +1/+1 counters on a creature you control.

View File

@@ -0,0 +1,10 @@
Name:Lorehold Apprentice
ManaCost:R W
Types:Creature Human Cleric
PT:2/2
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPumpAll | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, until end of turn, Spirit creatures you control gain "{T}: This creature deals 1 damage to each opponent."
T:Mode$ SpellCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, until end of turn, Spirit creatures you control gain "{T}: This creature deals 1 damage to each opponent."
SVar:TrigPumpAll:DB$ AnimateAll | ValidCards$ Creature.Spirit+YouCtrl | Abilities$ Sizzle
SVar:Sizzle:AB$ DealDamage | Cost$ T | Defined$ Opponent | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to each opponent.
DeckHints:Type$Instant|Sorcery
Oracle:Magecraft — Whenever you cast or copy an instant or sorcery spell, until end of turn, Spirit creatures you control gain "{T}: This creature deals 1 damage to each opponent."

View File

@@ -0,0 +1,30 @@
Name:Rowan, Scholar of Sparks
ManaCost:2 R
Types:Legendary Planeswalker Rowan
Loyalty:2
S:Mode$ ReduceCost | ValidCard$ Instant,Sorcery | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Instant and sorcery spells you cast cost {1} less to cast.
A:AB$ DealDamage | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ Player.Opponent | NumDmg$ X | SpellDescription$ CARDNAME deals 1 damage to each opponent. If you've drawn three or more cards this turn, she deals 3 damage to each opponent instead.
SVar:X:Count$Compare Y GE3.3.1
SVar:Y:Count$YouDrewThisTurn
A:AB$ Effect | Cost$ SubCounter<4/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Rowan, Scholar of Sparks | Triggers$ TRCast | SVars$ TrigCopy | SpellDescription$ You get an emblem with "Whenever you cast an instant or sorcery spell, you may pay {2}. If you do, copy that spell. You may choose new targets for the copy."
SVar:TRCast:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Command | Execute$ TrigCopy | TriggerDescription$ Whenever you cast an instant or sorcery spell, you may pay {2}. If you do, copy that spell. You may choose new targets for the copy.
SVar:TrigCopy:AB$ CopySpellAbility | Cost$ 2 | Defined$ TriggeredSpellAbility | AILogic$ AlwaysIfViable | MayChooseTarget$ True
AlternateMode:Modal
DeckHints:Type$Instant|Sorcery
Oracle:Instant and sorcery spells you cast cost {1} less to cast.\n[+1]: Rowan, Scholar of Sparks deals 1 damage to each opponent. If you've drawn three or more cards this turn, she deals 3 damage to each opponent instead.\n[-4]: You get an emblem with "Whenever you cast an instant or sorcery spell, you may pay {2}. If you do, copy that spell. You may choose new targets for the copy."
ALTERNATE
Name:Will, Scholar of Frost
ManaCost:4 U
Types:Legendary Planeswalker Will
Loyalty:4
S:Mode$ ReduceCost | ValidCard$ Instant,Sorcery | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Instant and sorcery spells you cast cost {1} less to cast.
A:AB$ Animate | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select up to one target creature | TargetMin$ 0 | TargetMax$ 1 | Power$ 0 | Toughness$ 2 | UntilYourNextTurn$ True | SpellDescription$ Up to one target creature has base power and toughness 0/2 until your next turn.
A:AB$ Draw | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | NumCards$ 3 | SpellDescription$ Draw three cards.
A:AB$ ChangeZone | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent | TgtPrompt$ Select up to five target permanents | TargetMin$ 0 | TargetMax$ 5 | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SubAbility$ DBRepeat | SpellDescription$ Exile up to five target permanents. For each permanent exiled this way, its controller creates a 4/4 blue and red Elemental creature token.
SVar:DBRepeat:DB$ RepeatEach | DefinedCards$ DirectRemembered | UseImprinted$ True | RepeatSubAbility$ DBToken | SubAbility$ DBCleanup | ChangeZoneTables$ True
SVar:DBToken:DB$ Token | TokenScript$ ur_4_4_elemental | TokenOwner$ ImprintedController
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Tokens
Oracle:Instant and sorcery spells you cast cost {1} less to cast.\n[+1]: Up to one target creature has base power and toughness 0/2 until your next turn.\n[3]: Draw two cards.\n[7]: Exile up to five target permanents. For each permanent exiled this way, its controller creates a 4/4 blue and red Elemental Creature token.

View File

@@ -3,9 +3,8 @@ ManaCost:no cost
Types:Ongoing Scheme
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your end step, put a doom counter on this scheme, then this scheme deals damage equal to the number of doom counters on it to the opponent with the highest life total among your opponents. If two or more players are tied for highest life total, you choose one.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ DOOM | CounterNum$ 1 | SubAbility$ DBChoosePlayer
SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent+LifeEquals_X | SubAbility$ DBDmg
SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent+lifeEQX | SubAbility$ DBDmg
SVar:DBDmg:DB$ DealDamage | Defined$ ChosenPlayer | NumDmg$ Y
SVar:X:PlayerCountOpponents$HighestLifeTotal
SVar:Y:Count$CardCounters.DOOM
SVar:Picture:https://downloads.cardforge.org/images/cards/ARC/Your Inescapable Doom.full.jpg
Oracle:(An ongoing scheme remains face up.)\nAt the beginning of your end step, put a doom counter on this scheme, then this scheme deals damage equal to the number of doom counters on it to the opponent with the highest life total among your opponents. If two or more players are tied for highest life total, you choose one.

View File

@@ -125,6 +125,7 @@ Hyena:Hyenas
Illusion:Illusions
Imp:Imps
Incarnation:Incarnations
Inkling:Inklings
Insect:Insects
Jackal:Jackals
Jellyfish:Jellyfishes

View File

@@ -0,0 +1,6 @@
Name:Elemental
ManaCost:no cost
Colors:blue,red
Types:Creature Elemental
PT:4/4
Oracle: