mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
Merge branch 'master' into 'master'
STX cards + Abundant Harvest See merge request core-developers/forge!4285
This commit is contained in:
@@ -225,9 +225,11 @@ public class PlayerProperty {
|
|||||||
if (source.getChosenPlayer() == null || !source.getChosenPlayer().equals(player)) {
|
if (source.getChosenPlayer() == null || !source.getChosenPlayer().equals(player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if (property.startsWith("LifeEquals_")) {
|
} else if (property.startsWith("life")) {
|
||||||
int life = AbilityUtils.calculateAmount(source, property.substring(11), null);
|
int life = player.getLife();
|
||||||
if (player.getLife() != life) {
|
int amount = AbilityUtils.calculateAmount(source, property.substring(6), spellAbility);
|
||||||
|
|
||||||
|
if (!Expressions.compare(life, property, amount)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if (property.equals("IsPoisoned")) {
|
} else if (property.equals("IsPoisoned")) {
|
||||||
|
|||||||
@@ -4,9 +4,8 @@ Types:Enchantment
|
|||||||
K:etbCounter:OMEN:7
|
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.
|
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: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: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:X:PlayerCountPlayers$HighestLifeTotal
|
||||||
SVar:NumHighestLife:PlayerCountPlayers$TiedForHighestLife
|
SVar:NumHighestLife:PlayerCountPlayers$TiedForHighestLife
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ Name:The Mighty Will Fall
|
|||||||
ManaCost:no cost
|
ManaCost:no cost
|
||||||
Types:Scheme
|
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.
|
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:DBLoseLife:DB$ LoseLife | Defined$ ChosenPlayer | LifeAmount$ 7
|
||||||
SVar:X:PlayerCountOpponents$HighestLifeTotal
|
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.
|
||||||
Oracle:When you set this scheme in motion, choose an opponent with the highest life total among your opponents. That player loses 7 life.
|
|
||||||
|
|||||||
@@ -3,11 +3,10 @@ ManaCost:3 B
|
|||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, ABILITY
|
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: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: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
|
SVar:DBLoseLife:DB$ LoseLife | Defined$ Player | LifeAmount$ 1
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
DeckHas:Ability$LifeGain
|
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.
|
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.
|
||||||
|
|||||||
8
forge-gui/res/cardsfolder/upcoming/abundant_harvest.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/abundant_harvest.txt
Normal 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.
|
||||||
12
forge-gui/res/cardsfolder/upcoming/breena_the_demagogue.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/breena_the_demagogue.txt
Normal 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.
|
||||||
10
forge-gui/res/cardsfolder/upcoming/lorehold_apprentice.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/lorehold_apprentice.txt
Normal 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."
|
||||||
@@ -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.
|
||||||
@@ -3,9 +3,8 @@ ManaCost:no cost
|
|||||||
Types:Ongoing Scheme
|
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.
|
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: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:DBDmg:DB$ DealDamage | Defined$ ChosenPlayer | NumDmg$ Y
|
||||||
SVar:X:PlayerCountOpponents$HighestLifeTotal
|
SVar:X:PlayerCountOpponents$HighestLifeTotal
|
||||||
SVar:Y:Count$CardCounters.DOOM
|
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.
|
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.
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ Hyena:Hyenas
|
|||||||
Illusion:Illusions
|
Illusion:Illusions
|
||||||
Imp:Imps
|
Imp:Imps
|
||||||
Incarnation:Incarnations
|
Incarnation:Incarnations
|
||||||
|
Inkling:Inklings
|
||||||
Insect:Insects
|
Insect:Insects
|
||||||
Jackal:Jackals
|
Jackal:Jackals
|
||||||
Jellyfish:Jellyfishes
|
Jellyfish:Jellyfishes
|
||||||
|
|||||||
6
forge-gui/res/tokenscripts/ur_4_4_elemental.txt
Normal file
6
forge-gui/res/tokenscripts/ur_4_4_elemental.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Elemental
|
||||||
|
ManaCost:no cost
|
||||||
|
Colors:blue,red
|
||||||
|
Types:Creature Elemental
|
||||||
|
PT:4/4
|
||||||
|
Oracle:
|
||||||
Reference in New Issue
Block a user