Skip to content

Commit

Permalink
gonti_night_minister.txt + support (#6924)
Browse files Browse the repository at this point in the history
  • Loading branch information
Northmoc authored Jan 30, 2025
1 parent 0a622f5 commit e16da84
Show file tree
Hide file tree
Showing 20 changed files with 149 additions and 130 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1041,7 +1041,9 @@ public static void handleExiledWith(final Card movedCard, final SpellAbility cau
exilingSource = cause.getOriginalHost();
}
movedCard.setExiledWith(exilingSource);
movedCard.setExiledBy(cause.getActivatingPlayer());
Player exiler = cause.hasParam("DefinedExiler") ?
getDefinedPlayersOrTargeted(cause, "DefinedExiler").get(0) : cause.getActivatingPlayer();
movedCard.setExiledBy(exiler);
}

public static GameCommand exileEffectCommand(final Game game, final Card effect) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@ public void resolve(SpellAbility sa) {
final boolean skipReorder = sa.hasParam("SkipReorder");

// A hack for cards like Explorer's Scope that need to ensure that a card is revealed to the player activating the ability
final boolean forceRevealToController = sa.hasParam("ForceRevealToController");
final boolean forceReveal = sa.hasParam("ForceRevealToController") ||
sa.hasParam("ForceReveal");

// These parameters are used to indicate that a dialog box must be show to the player asking if the player wants to proceed
// with an optional ability, otherwise the optional ability is skipped.
Expand Down Expand Up @@ -236,9 +237,12 @@ else if (!sa.hasParam("NoLooking")) {
valid = top;
}

if (forceRevealToController) {
// Force revealing the card to the player activating the ability (e.g. Explorer's Scope)
game.getAction().revealTo(top, activator);
if (forceReveal) {
// Force revealing the card to defined (e.g. Gonti, Night Minister) or the player activating the
// ability (e.g. Explorer's Scope)
Player revealTo = sa.hasParam("ForceReveal") ?
getDefinedPlayersOrTargeted(sa, "ForceReveal").get(0) : activator;
game.getAction().revealTo(top, revealTo);
delayedReveal = null; // top is already seen by the player, do not reveal twice
}

Expand Down
4 changes: 2 additions & 2 deletions forge-gui/res/cardsfolder/p/phyrexian_boon.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ ManaCost:2 B
Types:Enchantment Aura
K:Enchant creature
A:SP$ Attach | ValidTgts$ Creature | AILogic$ SpecificCard | AIValid$ Card.Black
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+Black | AddPower$ 2 | AddToughness$ 1 | Description$ Enchanted creature gets +2/+1 as long as it's black.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+nonBlack | AddPower$ -1 | AddToughness$ -2 | Description$ Otherwise, it gets -1/-2.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+Black | AddPower$ 2 | AddToughness$ 1 | Description$ Enchanted creature gets +2/+1 as long as it's black. Otherwise, it gets -1/-2.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy+nonBlack | AddPower$ -1 | AddToughness$ -2 | Secondary$ True
Oracle:Enchant creature\nEnchanted creature gets +2/+1 as long as it's black. Otherwise, it gets -1/-2.
18 changes: 9 additions & 9 deletions forge-gui/res/cardsfolder/upcoming/afterburner_expert.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Name:Afterburner Expert
ManaCost:2 G
Types:Creature Goblin Artificer
PT:4/2
A:AB$ PutCounter | Cost$ 2 G G | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | Exhaust$ True | SpellDescription$ Put two +1/+1 counters on this creature. (Activate each exhaust ability only once.)
T:Mode$ AbilityCast | ValidActivatingPlayer$ You | ValidSA$ Activated.Exhaust | TriggerZones$ Graveyard | Execute$ TrigChangeZone | TriggerDescription$ Whenever you activate an exhaust ability, return this card from your graveyard to the battlefield.
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield
DeckHas:Ability$Counters
Oracle:Exhaust — {2}{G}{G}: Put two +1/+1 counters on this creature. (Activate each exhaust ability only once.)\nWhenever you activate an exhaust ability, return this card from your graveyard to the battlefield.
Name:Afterburner Expert
ManaCost:2 G
Types:Creature Goblin Artificer
PT:4/2
A:AB$ PutCounter | Cost$ 2 G G | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | Exhaust$ True | SpellDescription$ Put two +1/+1 counters on this creature. (Activate each exhaust ability only once.)
T:Mode$ AbilityCast | ValidActivatingPlayer$ You | ValidSA$ Activated.Exhaust | TriggerZones$ Graveyard | Execute$ TrigChangeZone | TriggerDescription$ Whenever you activate an exhaust ability, return this card from your graveyard to the battlefield.
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield
DeckHas:Ability$Counters
Oracle:Exhaust — {2}{G}{G}: Put two +1/+1 counters on this creature. (Activate each exhaust ability only once.)\nWhenever you activate an exhaust ability, return this card from your graveyard to the battlefield.
16 changes: 8 additions & 8 deletions forge-gui/res/cardsfolder/upcoming/collision_course.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Name:Collision Course
ManaCost:1 W
Types:Sorcery
A:SP$ Charm | Choices$ DBDmg,DBDestroy
SVar:DBDmg:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to target creature, where X is the number of permanents you control that are creatures and/or Vehicles.
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact. | SpellDescription$ Destroy target artifact.
SVar:X:Count$Valid Creature.YouCtrl,Vehicle.YouCtrl
Oracle:Choose one —\n• Collision Course deals X damage to target creature, where X is the number of permanents you control that are creatures and/or Vehicles.\n• Destroy target artifact.
Name:Collision Course
ManaCost:1 W
Types:Sorcery
A:SP$ Charm | Choices$ DBDmg,DBDestroy
SVar:DBDmg:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to target creature, where X is the number of permanents you control that are creatures and/or Vehicles.
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact. | SpellDescription$ Destroy target artifact.
SVar:X:Count$Valid Creature.YouCtrl,Vehicle.YouCtrl
Oracle:Choose one —\n• Collision Course deals X damage to target creature, where X is the number of permanents you control that are creatures and/or Vehicles.\n• Destroy target artifact.
14 changes: 7 additions & 7 deletions forge-gui/res/cardsfolder/upcoming/daring_mechanic.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Name:Daring Mechanic
ManaCost:2 W
Types:Creature Human Artificer
PT:3/3
A:AB$ PutCounter | Cost$ 3 W | ValidTgts$ Mount,Vehicle | TgtPrompt$ Select target Mount or Vehicle | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on target Mount or Vehicle.
DeckHas:Ability$Counters
Oracle:{3}{W}: Put a +1/+1 counter on target Mount or Vehicle.
Name:Daring Mechanic
ManaCost:2 W
Types:Creature Human Artificer
PT:3/3
A:AB$ PutCounter | Cost$ 3 W | ValidTgts$ Mount,Vehicle | TgtPrompt$ Select target Mount or Vehicle | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on target Mount or Vehicle.
DeckHas:Ability$Counters
Oracle:{3}{W}: Put a +1/+1 counter on target Mount or Vehicle.
20 changes: 10 additions & 10 deletions forge-gui/res/cardsfolder/upcoming/detention_chariot.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Name:Detention Chariot
ManaCost:4 W W
Types:Artifact Vehicle
PT:6/6
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When this Vehicle enters, exile target artifact or creature an opponent controls until this Vehicle leaves the battlefield.
SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Artifact.OppCtrl,Creature.OppCtrl | TgtPrompt$ Select target artifact or creature an opponent controls | Duration$ UntilHostLeavesPlay
K:Crew:3
K:Cycling:W
SVar:PlayMain1:TRUE
Oracle:When this Vehicle enters, exile target artifact or creature an opponent controls until this Vehicle leaves the battlefield.\nCrew 3 (Tap any number of creatures you control with total power 3 or more: This Vehicle becomes an artifact creature until end of turn.)\nCycling {W} ({W}, Discard this card: Draw a card.)
Name:Detention Chariot
ManaCost:4 W W
Types:Artifact Vehicle
PT:6/6
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When this Vehicle enters, exile target artifact or creature an opponent controls until this Vehicle leaves the battlefield.
SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Artifact.OppCtrl,Creature.OppCtrl | TgtPrompt$ Select target artifact or creature an opponent controls | Duration$ UntilHostLeavesPlay
K:Crew:3
K:Cycling:W
SVar:PlayMain1:TRUE
Oracle:When this Vehicle enters, exile target artifact or creature an opponent controls until this Vehicle leaves the battlefield.\nCrew 3 (Tap any number of creatures you control with total power 3 or more: This Vehicle becomes an artifact creature until end of turn.)\nCycling {W} ({W}, Discard this card: Draw a card.)
14 changes: 7 additions & 7 deletions forge-gui/res/cardsfolder/upcoming/diversion_unit.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Name:Diversion Unit
ManaCost:1 U
Types:Artifact Creature Robot
PT:2/1
K:Flying
A:AB$ Counter | Cost$ U Sac<1/CARDNAME> | TargetType$ Spell | ValidTgts$ Instant,Sorcery | TgtPrompt$ Select target instant or sorcery spell | UnlessCost$ 3 | SpellDescription$ Counter target instant or sorcery spell unless its controller pays {3}.
Oracle:Flying\n{U}, Sacrifice this creature: Counter target instant or sorcery spell unless its controller pays {3}.
Name:Diversion Unit
ManaCost:1 U
Types:Artifact Creature Robot
PT:2/1
K:Flying
A:AB$ Counter | Cost$ U Sac<1/CARDNAME/this creature> | TargetType$ Spell | ValidTgts$ Instant,Sorcery | TgtPrompt$ Select target instant or sorcery spell | UnlessCost$ 3 | SpellDescription$ Counter target instant or sorcery spell unless its controller pays {3}.
Oracle:Flying\n{U}, Sacrifice this creature: Counter target instant or sorcery spell unless its controller pays {3}.
16 changes: 8 additions & 8 deletions forge-gui/res/cardsfolder/upcoming/fang_druid_summoner.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Name:Fang-Druid Summoner
ManaCost:3 G
Types:Creature Ape Druid
PT:2/4
K:Reach
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ When this creature enters, you may search your library and/or graveyard for a creature card with no abilities, reveal it, and put it into your hand. If you search your library this way, shuffle.
SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | OriginAlternative$ Graveyard | Destination$ Hand | ChangeType$ Creature.YouOwn+NoAbilities | Optional$ True
Oracle:Reach\nWhen this creature enters, you may search your library and/or graveyard for a creature card with no abilities, reveal it, and put it into your hand. If you search your library this way, shuffle.
Name:Fang-Druid Summoner
ManaCost:3 G
Types:Creature Ape Druid
PT:2/4
K:Reach
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ When this creature enters, you may search your library and/or graveyard for a creature card with no abilities, reveal it, and put it into your hand. If you search your library this way, shuffle.
SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | OriginAlternative$ Graveyard | Destination$ Hand | ChangeType$ Creature.YouOwn+NoAbilities | Optional$ True
Oracle:Reach\nWhen this creature enters, you may search your library and/or graveyard for a creature card with no abilities, reveal it, and put it into your hand. If you search your library this way, shuffle.
18 changes: 9 additions & 9 deletions forge-gui/res/cardsfolder/upcoming/gastal_blockbuster.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Name:Gastal Blockbuster
ManaCost:2 R
Types:Creature Human Berserker
PT:3/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When this creature enters, you may sacrifice a creature or Vehicle. When you do, destroy target artifact an opponent controls.
SVar:TrigSac:AB$ ImmediateTrigger | Cost$ Sac<1/Creature;Vehicle/a creature or Vehicle> | Execute$ TrigDestroy | TriggerDescription$ When you do, destroy target artifact an opponent controls.
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact.OppCtrl | TgtPrompt$ Select target artifact an opponent controls
DeckHas:Ability$Sacrifice
Oracle:When this creature enters, you may sacrifice a creature or Vehicle. When you do, destroy target artifact an opponent controls.
Name:Gastal Blockbuster
ManaCost:2 R
Types:Creature Human Berserker
PT:3/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When this creature enters, you may sacrifice a creature or Vehicle. When you do, destroy target artifact an opponent controls.
SVar:TrigSac:AB$ ImmediateTrigger | Cost$ Sac<1/Creature;Vehicle/a creature or Vehicle> | Execute$ TrigDestroy | TriggerDescription$ When you do, destroy target artifact an opponent controls.
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact.OppCtrl | TgtPrompt$ Select target artifact an opponent controls
DeckHas:Ability$Sacrifice
Oracle:When this creature enters, you may sacrifice a creature or Vehicle. When you do, destroy target artifact an opponent controls.
13 changes: 13 additions & 0 deletions forge-gui/res/cardsfolder/upcoming/gonti_night_minister.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Name:Gonti, Night Minister
ManaCost:2 B B
Types:Legendary Creature Aetherborn Rogue
PT:3/4
T:Mode$ SpellCast | ValidCard$ Card | ValidSAonCard$ Spell.YouDontOwn | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigTreasure | TriggerDescription$ Whenever a player casts a spell they don't own, that player creates a Treasure token.
SVar:TrigTreasure:DB$ Token | TokenScript$ c_a_treasure_sac | TokenOwner$ TriggeredActivator
T:Mode$ DamageDone | ValidSource$ Creature | ValidTarget$ Opponent | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Whenever a creature deals combat damage to one of your opponents, its controller looks at the top card of that opponent's library and exiles it face down. They may play that card for as long as it remains exiled. Mana of any type can be spent to cast a spell this way.
SVar:TrigDig:DB$ Dig | DigNum$ 1 | Defined$ TriggeredTarget | ForceReveal$ TriggeredSourceController | DefinedExiler$ TriggeredSourceController | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | EffectOwner$ TriggeredSourceController | Duration$ Permanent
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:STPlay:Mode$ Continuous | MayLookAt$ You | MayPlay$ True | MayPlayIgnoreType$ True | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play this card for as long as it remains exiled, and mana of any type can be spent to cast it.
DeckHas:Ability$Token
Oracle:Whenever a player casts a spell they don't own, that player creates a Treasure token.\nWhenever a creature deals combat damage to one of your opponents, its controller looks at the top card of that opponent's library and exiles it face down. They may play that card for as long as it remains exiled. Mana of any type can be spent to cast a spell this way.
10 changes: 5 additions & 5 deletions forge-gui/res/cardsfolder/upcoming/kalakscion_hunger_tyrant.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name:Kalakscion, Hunger Tyrant
ManaCost:1 B B
Types:Legendary Creature Crocodile
PT:7/2
Oracle:
Name:Kalakscion, Hunger Tyrant
ManaCost:1 B B
Types:Legendary Creature Crocodile
PT:7/2
Oracle:
14 changes: 7 additions & 7 deletions forge-gui/res/cardsfolder/upcoming/loxodon_surveyor.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Name:Loxodon Surveyor
ManaCost:2 G
Types:Creature Elephant Scout
PT:3/3
K:Start your engines
A:AB$ Draw | Cost$ 3 ExileFromGrave<1/CARDNAME> | ActivationZone$ Graveyard | Activation$ MaxSpeed | PrecostDesc$ Max speed — | SpellDescription$ Draw a card.
Oracle:Start your engines! (If you have no speed, it starts at 1. It increases once on each of your turns when an opponent loses life. Max speed is 4.)\nMax speed — {3}, Exile this card from your graveyard: Draw a card.
Name:Loxodon Surveyor
ManaCost:2 G
Types:Creature Elephant Scout
PT:3/3
K:Start your engines
A:AB$ Draw | Cost$ 3 ExileFromGrave<1/CARDNAME/this card> | ActivationZone$ Graveyard | Activation$ MaxSpeed | PrecostDesc$ Max speed — | SpellDescription$ Draw a card.
Oracle:Start your engines! (If you have no speed, it starts at 1. It increases once on each of your turns when an opponent loses life. Max speed is 4.)\nMax speed — {3}, Exile this card from your graveyard: Draw a card.
20 changes: 10 additions & 10 deletions forge-gui/res/cardsfolder/upcoming/pit_automaton.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Name:Pit Automaton
ManaCost:2
Types:Artifact Creature Construct
PT:0/4
K:Defender
A:AB$ Mana | Cost$ T | Produced$ C | Amount$ 2 | RestrictValid$ Activated | SpellDescription$ Add {C}{C}. Spend this mana only to activate abilities.
A:AB$ DelayedTrigger | Cost$ 2 T | AILogic$ SpellCopy | Mode$ AbilityCast | ValidSA$ Activated.Exhaust | ValidActivatingPlayer$ You | ThisTurn$ True | Execute$ EffTrigCopy | SpellDescription$ When you next activate an exhaust ability this turn, copy it. You may choose new targets for the copy.
SVar:EffTrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | MayChooseTarget$ True
SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
Oracle:Defender\n{T}: Add {C}{C}. Spend this mana only to activate abilities.\n{2}, {T}: When you next activate an exhaust ability this turn, copy it. You may choose new targets for the copy.
Name:Pit Automaton
ManaCost:2
Types:Artifact Creature Construct
PT:0/4
K:Defender
A:AB$ Mana | Cost$ T | Produced$ C | Amount$ 2 | RestrictValid$ Activated | SpellDescription$ Add {C}{C}. Spend this mana only to activate abilities.
A:AB$ DelayedTrigger | Cost$ 2 T | AILogic$ SpellCopy | Mode$ AbilityCast | ValidSA$ Activated.Exhaust | ValidActivatingPlayer$ You | ThisTurn$ True | Execute$ EffTrigCopy | SpellDescription$ When you next activate an exhaust ability this turn, copy it. You may choose new targets for the copy.
SVar:EffTrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | MayChooseTarget$ True
SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
Oracle:Defender\n{T}: Add {C}{C}. Spend this mana only to activate abilities.\n{2}, {T}: When you next activate an exhaust ability this turn, copy it. You may choose new targets for the copy.
Loading

0 comments on commit e16da84

Please sign in to comment.