mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-12 00:38:44 +00:00
SLD 11 cards + support for new partner variants (#8797)
This commit is contained in:
@@ -324,6 +324,12 @@ public final class CardRules implements ICardCharacteristics {
|
|||||||
}
|
}
|
||||||
if (hasKeyword("Friends forever") && b.hasKeyword("Friends forever")) {
|
if (hasKeyword("Friends forever") && b.hasKeyword("Friends forever")) {
|
||||||
legal = true; // Stranger Things Secret Lair gimmick partner commander
|
legal = true; // Stranger Things Secret Lair gimmick partner commander
|
||||||
|
}
|
||||||
|
if (hasKeyword("Partner - Survivors") && b.hasKeyword("Partner - Survivors")) {
|
||||||
|
legal = true; // The Last of Us Secret Lair gimmick partner commander
|
||||||
|
}
|
||||||
|
if (hasKeyword("Partner - Father & Son") && b.hasKeyword("Partner - Father & Son")) {
|
||||||
|
legal = true; // God of War Secret Lair gimmick partner commander
|
||||||
}
|
}
|
||||||
if (hasKeyword("Choose a Background") && b.canBeBackground()
|
if (hasKeyword("Choose a Background") && b.canBeBackground()
|
||||||
|| b.hasKeyword("Choose a Background") && canBeBackground()) {
|
|| b.hasKeyword("Choose a Background") && canBeBackground()) {
|
||||||
@@ -342,6 +348,7 @@ public final class CardRules implements ICardCharacteristics {
|
|||||||
}
|
}
|
||||||
return canBeCommander() && (hasKeyword("Partner") || !this.partnerWith.isEmpty() ||
|
return canBeCommander() && (hasKeyword("Partner") || !this.partnerWith.isEmpty() ||
|
||||||
hasKeyword("Friends forever") || hasKeyword("Choose a Background") ||
|
hasKeyword("Friends forever") || hasKeyword("Choose a Background") ||
|
||||||
|
hasKeyword("Partner - Father & Son") || hasKeyword("Partner - Survivors") ||
|
||||||
hasKeyword("Doctor's companion") || isDoctor());
|
hasKeyword("Doctor's companion") || isDoctor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2598,6 +2598,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
|
|||||||
|| keyword.equals("Battle cry") || keyword.equals("Devoid") || keyword.equals("Riot")
|
|| keyword.equals("Battle cry") || keyword.equals("Devoid") || keyword.equals("Riot")
|
||||||
|| keyword.equals("Daybound") || keyword.equals("Nightbound")
|
|| keyword.equals("Daybound") || keyword.equals("Nightbound")
|
||||||
|| keyword.equals("Friends forever") || keyword.equals("Choose a Background")
|
|| keyword.equals("Friends forever") || keyword.equals("Choose a Background")
|
||||||
|
|| keyword.equals("Partner - Father & Son") || keyword.equals("Partner - Survivors")
|
||||||
|| keyword.equals("Space sculptor") || keyword.equals("Doctor's companion")
|
|| keyword.equals("Space sculptor") || keyword.equals("Doctor's companion")
|
||||||
|| keyword.equals("Start your engines")) {
|
|| keyword.equals("Start your engines")) {
|
||||||
sbLong.append(keyword).append(" (").append(inst.getReminderText()).append(")");
|
sbLong.append(keyword).append(" (").append(inst.getReminderText()).append(")");
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ public enum Keyword {
|
|||||||
OFFSPRING("Offspring", KeywordWithCost.class, false, "You may pay an additional %s as you cast this spell. If you do, when this creature enters, create a 1/1 token copy of it."),
|
OFFSPRING("Offspring", KeywordWithCost.class, false, "You may pay an additional %s as you cast this spell. If you do, when this creature enters, create a 1/1 token copy of it."),
|
||||||
OVERLOAD("Overload", KeywordWithCost.class, false, "You may cast this spell for its overload cost. If you do, change its text by replacing all instances of \"target\" with \"each.\""),
|
OVERLOAD("Overload", KeywordWithCost.class, false, "You may cast this spell for its overload cost. If you do, change its text by replacing all instances of \"target\" with \"each.\""),
|
||||||
PARTNER("Partner", Partner.class, true, "You can have two commanders if both have partner."),
|
PARTNER("Partner", Partner.class, true, "You can have two commanders if both have partner."),
|
||||||
|
PARTNER_SURVIVOR("Partner - Survivors", Partner.class, true, "You can have two commanders if both have this ability."),
|
||||||
|
PARTNER_FATHER_AND_SON("Partner - Father & Son", Partner.class, true, "You can have two commanders if both have this ability."),
|
||||||
PERSIST("Persist", SimpleKeyword.class, false, "When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it."),
|
PERSIST("Persist", SimpleKeyword.class, false, "When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it."),
|
||||||
PHASING("Phasing", SimpleKeyword.class, true, "This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist."),
|
PHASING("Phasing", SimpleKeyword.class, true, "This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist."),
|
||||||
PLOT("Plot", KeywordWithCost.class, false, "You may pay %s and exile this card from your hand. Cast it as a sorcery on a later turn without paying its mana cost. Plot only as a sorcery."),
|
PLOT("Plot", KeywordWithCost.class, false, "You may pay %s and exile this card from your hand. Cast it as a sorcery on a later turn without paying its mana cost. Plot only as a sorcery."),
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
Name:Abby, Merciless Soldier
|
||||||
|
ManaCost:1 R G
|
||||||
|
Types:Legendary Creature Human Survivor
|
||||||
|
PT:4/4
|
||||||
|
K:Partner - Survivors
|
||||||
|
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When you cast this spell, create a number of 1/1 black Fungus Zombie creature tokens named Cordyceps Infected equal to the amount of mana spent to cast it.
|
||||||
|
SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ cordyceps_infected | TokenOwner$ You
|
||||||
|
SVar:X:Count$CastTotalManaSpent
|
||||||
|
R:Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplaceWith$ DBChooseOpp | Layer$ Control | Description$ NICKNAME enters under the control of an opponent of your choice.
|
||||||
|
SVar:DBChooseOpp:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent to give control to | AILogic$ Curse | SubAbility$ MoveToPlay
|
||||||
|
SVar:MoveToPlay:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Battlefield | Defined$ ReplacedCard | GainControl$ ChosenPlayer
|
||||||
|
DeckHas:Ability$Token & Type$Zombie|Fungus
|
||||||
|
Oracle:When you cast this spell, create a number of 1/1 black Fungus Zombie creature tokens named Cordyceps Infected equal to the amount of mana spent to cast it.\nAbby enters under the control of an opponent of your choice.\nPartner—Survivors (You can have two commanders if both have this ability.)
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
Name:Aloy, Savior of Meridian
|
||||||
|
ManaCost:3 G U
|
||||||
|
Types:Legendary Creature Human Warrior
|
||||||
|
PT:3/5
|
||||||
|
K:Vigilance
|
||||||
|
K:Reach
|
||||||
|
T:Mode$ AttackersDeclared | AttackingPlayer$ You | ValidAttackers$ Creature.Artifact+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDiscover | TriggerDescription$ In You, All Things Are Possible — Whenever one or more artifact creatures you control attack, discover X, where X is the greatest power among them. (Exile cards from the top of your library until you exile a nonland card with that mana value or less. Cast it without paying its mana cost or put it into your hand. Put the rest on the bottom in a random order.)
|
||||||
|
SVar:TrigDiscover:DB$ Discover | Num$ X
|
||||||
|
SVar:X:TriggerObjectsAttackers$GreatestPower
|
||||||
|
DeckNeeds:Type$Artifact & Type$Creature
|
||||||
|
Oracle:Vigilance, reach\nIn You, All Things Are Possible — Whenever one or more artifact creatures you control attack, discover X, where X is the greatest power among them. (Exile cards from the top of your library until you exile a nonland card with that mana value or less. Cast it without paying its mana cost or put it into your hand. Put the rest on the bottom in a random order.)
|
||||||
10
forge-gui/res/cardsfolder/upcoming/atreus_impulsive_son.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/atreus_impulsive_son.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Atreus, Impulsive Son
|
||||||
|
ManaCost:1 U R
|
||||||
|
Types:Legendary Creature God Archer
|
||||||
|
PT:2/4
|
||||||
|
K:Reach
|
||||||
|
K:Partner - Father & Son
|
||||||
|
A:AB$ Draw | Cost$ 3 T | NumCards$ X | SubAbility$ DBDamage | SpellDescription$ Draw a card for each experience counter you have, then discard a card.
|
||||||
|
SVar:DBDamage:DB$ DealDamage | NumDmg$ 2 | Defined$ Opponent | SpellDescription$ CARDNAME deals 2 damage to each opponent.
|
||||||
|
SVar:X:Count$YourCountersExperience
|
||||||
|
Oracle:Reach\n{3}, {T}: Draw a card for each experience counter you have, then discard a card. Atreus, Impulsive Son deals 2 damage to each opponent.\nPartner-Father & son
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Ellie, Brick Master
|
||||||
|
ManaCost:1 R
|
||||||
|
Types:Legendary Creature Human Survivor
|
||||||
|
PT:2/1
|
||||||
|
K:Partner - Survivors
|
||||||
|
T:Mode$ AttackersDeclaredOneTarget | AttackedTarget$ Opponent | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Distract the Horde - Whenever a player attacks one of your opponents, that attacking player creates a tapped 1/1 black Fungus Zombie creature token named Cordyceps Infected that's attacking that opponent.
|
||||||
|
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ cordyceps_infected | TokenOwner$ TriggeredAttackingPlayer | TokenTapped$ True | TokenAttacking$ TriggeredAttackedTarget
|
||||||
|
DeckHas:Ability$Token & Type$Zombie|Fungus
|
||||||
|
Oracle:Distract the Horde - Whenever a player attacks one of your opponents, that attacking player creates a tapped 1/1 black Fungus Zombie creature token named Cordyceps Infected that's attacking that opponent.\nPartner — Survivors (You can have two commanders if both have this ability.)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Ellie, Vengeful Hunter
|
||||||
|
ManaCost:1 B R
|
||||||
|
Types:Legendary Creature Human Survivor
|
||||||
|
PT:3/1
|
||||||
|
K:Partner - Survivors
|
||||||
|
A:AB$ DealDamage | Cost$ PayLife<2> Sac<1/Creature.Other/another creature> | NumDmg$ 2 | ValidTgts$ Player | SubAbility$ DBPump | SpellDescription$ NICKNAME deals 2 damage to target player and gains indestructible until end of turn.
|
||||||
|
SVar:DBPump:DB$ Pump | Defined$ Self | KW$ Indestructible
|
||||||
|
DeckHas:Ability$Sacrifice
|
||||||
|
Oracle:Pay 2 life, Sacrifice another creature: Ellie deals 2 damage to target player and gains indestructible until end of turn.\nPartner - Survivors (You can have two commanders if both have this ability.)
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
Name:Jaws, Relentless Predator
|
||||||
|
ManaCost:3 R R
|
||||||
|
Types:Legendary Creature Shark
|
||||||
|
PT:5/5
|
||||||
|
K:Trample
|
||||||
|
K:Haste
|
||||||
|
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever NICKNAME deals combat damage to a player, create that many Blood tokens.
|
||||||
|
SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ c_a_blood_draw | TokenOwner$ You
|
||||||
|
SVar:X:TriggerCount$DamageAmount
|
||||||
|
T:Mode$ Sacrificed | ValidCard$ Artifact.nonCreature | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever a noncreature artifact is sacrificed or destroyed, NICKNAME deals 1 damage to each opponent.
|
||||||
|
T:Mode$ Destroyed | ValidCard$ Artifact.nonCreature | Execute$ TrigDamage | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever a noncreature artifact is sacrificed or destroyed, NICKNAME deals 1 damage to each opponent.
|
||||||
|
SVar:TrigDamage:DB$ DealDamage | NumDmg$ 1 | Defined$ Opponent
|
||||||
|
DeckHints:Ability$Sacrifice|Token & Type$Blood|Treasure|Map|Clue
|
||||||
|
DeckHas:Ability$Token|Sacrifice & Type$Artifact|Blood
|
||||||
|
Oracle:Trample, haste\nWhenever Jaws deals combat damage to a player, create that many Blood tokens.\nWhenever a noncreature artifact is sacrificed or destroyed, Jaws deals 1 damage to each opponent.
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
Name:Jin Sakai, Ghost of Tsushima
|
||||||
|
ManaCost:1 W U B
|
||||||
|
Types:Legendary Creature Human Samurai
|
||||||
|
PT:2/4
|
||||||
|
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerDescription$ Whenever NICKNAME deals combat damage to a player, draw a card.
|
||||||
|
SVar:TrigDraw:DB$ Draw | NumCards$ 1
|
||||||
|
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigCharm | IsPresent$ Creature.attacking+Other | NoResolvingCheck$ True | PresentCompare$ EQ0 | TriggerDescription$ Whenever a creature you control attacks a player, if no other creatures are attacking that player, ABILITY
|
||||||
|
SVar:TrigCharm:DB$ Charm | Choices$ Standoff,Ghost
|
||||||
|
SVar:Standoff:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Double Strike | SpellDescription$ Standoff — It gains double strike until end of turn.
|
||||||
|
SVar:Ghost:DB$ Effect | RememberObjects$ Self | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable | SpellDescription$ Ghost — It can't be blocked this turn.
|
||||||
|
SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ EFFECTSOURCE can't be blocked this turn.
|
||||||
|
Oracle:Whenever Jin Sakai deals combat damage to a player, draw a card.\nWhenever a creature you control attacks a player, if no other creatures are attacking that player, choose one —-\n• Standoff — It gains double strike until end of turn.\n• Ghost — It can't be blocked this turn.
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
Name:Joel, Resolute Survivor
|
||||||
|
ManaCost:3 B G
|
||||||
|
Types:Legendary Creature Human Survivor
|
||||||
|
PT:4/4
|
||||||
|
K:Menace
|
||||||
|
K:Partner - Survivors
|
||||||
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.token | Execute$ TrigPutCounter | ActivationLimit$ 1 | TriggerDescription$ Whenever a creature token dies, put a +1/+1 counter on NICKNAME and draw a card. This ability triggers only once each turn.
|
||||||
|
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterNum$ 1 | CounterType$ P1P1 | SubAbility$ DBDraw
|
||||||
|
SVar:TrigDraw:DB$ Draw
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
DeckHints:Ability$Sacrifice|Token
|
||||||
|
Oracle:Menace\nWhenever a creature token dies, put a +1/+1 counter on Joel and draw a card. This ability triggers only once each turn.\nPartner — Survivors (You can have two commanders if both have this ability.)
|
||||||
10
forge-gui/res/cardsfolder/upcoming/kratos_god_of_war.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/kratos_god_of_war.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Kratos, God of War
|
||||||
|
ManaCost:R R R
|
||||||
|
Types:Legendary Creature God Warrior
|
||||||
|
PT:2/3
|
||||||
|
K:Double Strike
|
||||||
|
S:Mode$ Continuous | Affected$ Creature | AddKeyword$ Haste | Description$ All creatures have haste.
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of each player's end step, NICKNAME deals damage to that player equal to the number of creatures that player controls that didn't attack this turn.
|
||||||
|
SVar:TrigDamage:DB$ DealDamage | Defined$ TriggeredPlayer | NumDmg$ X
|
||||||
|
SVar:X:Count$Valid Creature.!attackedThisTurn+ActivePlayerCtrl
|
||||||
|
Oracle:Double strike\nAll creatures have haste.\nAt the beginning of each player's end step, Kratos deals damage to that player equal to the number of creatures that player controls that didn't attack this turn.
|
||||||
14
forge-gui/res/cardsfolder/upcoming/kratos_stoic_father.txt
Normal file
14
forge-gui/res/cardsfolder/upcoming/kratos_stoic_father.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Name:Kratos, Stoic Father
|
||||||
|
ManaCost:2 R W
|
||||||
|
Types:Legendary Creature God Warrior
|
||||||
|
PT:4/4
|
||||||
|
K:Partner - Father & Son
|
||||||
|
T:Mode$ AttackersDeclared | ValidAttackers$ God.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigExperience | TriggerDescription$ Whenever you attack with one or more Gods and whenever a God dies, you get an experience counter.
|
||||||
|
T:Mode$ ChangesZone | ValidCard$ God | TriggerZones$ Battlefield | Secondary$ True | Destination$ Graveyard | Execute$ TrigExperience | TriggerDescription$ Whenever you attack with one or more Gods and whenever a God dies, you get an experience counter.
|
||||||
|
SVar:TrigExperience:DB$ PutCounter | Defined$ You | CounterType$ Experience | CounterNum$ 1
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your end step, put a number of +1/+1 counters on target creature equal to the number of experience counters you have.
|
||||||
|
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature | CounterType$ P1P1 | CounterNum$ X
|
||||||
|
SVar:X:Count$YourCountersExperience
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
DeckHints:Type$God
|
||||||
|
Oracle:Whenever you attack with one or more Gods and whenever a God dies, you get an experience counter.\nAt the beginning of your end step, put a number of +1/+1 counters on target creature equal to the number of experience counters you have.\nPartner-Father & son (You can have two commanders if both have this ability.)
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
Name:Nathan Drake, Treasure Hunter
|
||||||
|
ManaCost:U B R
|
||||||
|
Types:Legendary Creature Human Rogue
|
||||||
|
PT:3/2
|
||||||
|
K:First Strike
|
||||||
|
S:Mode$ ManaConvert | ValidPlayer$ You | ValidCard$ Card.YouDontOwn+YouCtrl | ValidSA$ Spell,Activated | ManaConversion$ AnyType->AnyColor | Description$ You may spend mana as though it were mana of any color to cast spells you don't own or to activate abilities of permanents you control but don't own.
|
||||||
|
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever NICKNAME attacks, exile the top card of each player's library. You may cast a spell from among those cards.
|
||||||
|
SVar:TrigExile:DB$ Dig | Defined$ Player | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBPlay
|
||||||
|
SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidSA$ Spell | ValidZone$ Exile | Controller$ You | Optional$ True | Amount$ 1 | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
Oracle:First strike\nYou may spend mana as though it were mana of any color to cast spells you don't own or to activate abilities of permanents you control but don't own.\nWhenever Nathan Drake attacks, exile the top card of each player's library. You may cast a spell from among those cards.
|
||||||
6
forge-gui/res/tokenscripts/cordyceps_infected.txt
Normal file
6
forge-gui/res/tokenscripts/cordyceps_infected.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Name:Cordyceps Infected
|
||||||
|
ManaCost:no cost
|
||||||
|
Colors:black
|
||||||
|
Types:Creature Fungus Zombie
|
||||||
|
PT:1/1
|
||||||
|
Oracle:
|
||||||
Reference in New Issue
Block a user