Skip to content

Commit

Permalink
Merge branch 'master' into fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Northmoc authored Jan 30, 2025
2 parents 264c6a6 + 2c04ef9 commit 2e09965
Show file tree
Hide file tree
Showing 72 changed files with 383 additions and 54 deletions.
6 changes: 6 additions & 0 deletions forge-game/src/main/java/forge/game/Game.java
Original file line number Diff line number Diff line change
Expand Up @@ -1185,6 +1185,12 @@ public void onCleanupPhase() {
for (Player player : getRegisteredPlayers()) {
player.onCleanupPhase();
}
for (final Card c : getCardsIncludePhasingIn(ZoneType.Battlefield)) {
c.onCleanupPhase(getPhaseHandler().getPlayerTurn());
}
for (final Card card : getCardsInGame()) {
card.resetActivationsPerTurn();
}
}

public void addCounterAddedThisTurn(Player putter, CounterType cType, Card card, Integer value) {
Expand Down
6 changes: 0 additions & 6 deletions forge-game/src/main/java/forge/game/GameAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,6 @@ public GameAction(Game game0) {
game = game0;
}

public final void resetActivationsPerTurn() {
for (final Card card : game.getCardsInGame()) {
card.resetActivationsPerTurn();
}
}

public Card changeZone(final Zone zoneFrom, Zone zoneTo, final Card c, Integer position, SpellAbility cause) {
return changeZone(zoneFrom, zoneTo, c, position, cause, null);
}
Expand Down
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: 0 additions & 4 deletions forge-game/src/main/java/forge/game/card/Card.java
Original file line number Diff line number Diff line change
Expand Up @@ -7271,10 +7271,6 @@ public void onEndOfCombat(final Player active) {
}

public void onCleanupPhase(final Player turn) {
if (!StaticAbilityNoCleanupDamage.damageNotRemoved(this)) {
setDamage(0);
}
setHasBeenDealtDeathtouchDamage(false);
resetExcessDamage();
setRegeneratedThisTurn(0);
resetShieldCount();
Expand Down
1 change: 0 additions & 1 deletion forge-game/src/main/java/forge/game/combat/CombatUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,6 @@ public static void checkDeclaredAttacker(final Game game, final Card c, final Co
final GameEntity defender = combat.getDefenderByAttacker(c);
final List<Card> otherAttackers = combat.getAttackers();

// Run triggers
if (triggers) {
final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put(AbilityKey.Attacker, c);
Expand Down
8 changes: 5 additions & 3 deletions forge-game/src/main/java/forge/game/phase/PhaseHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import forge.game.replacement.ReplacementType;

import forge.game.spellability.SpellAbility;
import forge.game.staticability.StaticAbilityNoCleanupDamage;
import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType;
import forge.game.zone.Zone;
Expand Down Expand Up @@ -180,8 +181,6 @@ private void advanceToNextPhase() {
}
playerTurn.incrementTurn();

game.getAction().resetActivationsPerTurn();

final int lands = CardLists.count(playerTurn.getLandsInPlay(), CardPredicates.UNTAPPED);
playerTurn.setNumPowerSurgeLands(lands);
}
Expand Down Expand Up @@ -395,7 +394,10 @@ private void onPhaseBegin() {
// Rule 514.2
// Reset Damage received map
for (final Card c : game.getCardsIncludePhasingIn(ZoneType.Battlefield)) {
c.onCleanupPhase(playerTurn);
if (!StaticAbilityNoCleanupDamage.damageNotRemoved(c)) {
c.setDamage(0);
}
c.setHasBeenDealtDeathtouchDamage(false);
}

game.getEndOfTurn().executeUntil();
Expand Down
4 changes: 2 additions & 2 deletions forge-game/src/main/java/forge/game/player/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -1994,8 +1994,8 @@ public final void createSpeedEffect() {
final PlayerZone com = getZone(ZoneType.Command);
DetachedCardEffect eff = new DetachedCardEffect(this, "Speed Effect");
String trigger = "Mode$ LifeLost | ValidPlayer$ Opponent | TriggerZones$ Command | ActivationLimit$ 1 | " +
"PlayerTurn$ True | TriggerDescription$ Your speed increases once on each of your turns when an " +
"opponent loses life.";
"PlayerTurn$ True | CheckSVar$ Count$YourSpeed | SVarCompare$ LT4 | "
+ "TriggerDescription$ Your speed increases once on each of your turns when an opponent loses life.";
String speedUp = "DB$ ChangeSpeed";
Trigger lifeLostTrigger = TriggerHandler.parseTrigger(trigger, eff, true);
lifeLostTrigger.setOverridingAbility(AbilityFactory.getAbility(speedUp, eff));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,6 @@ public TriggerAttackerBlockedByCreature(final Map<String, String> params, final
public final boolean performTest(final Map<AbilityKey, Object> runParams) {
final Object a = runParams.get(AbilityKey.Attacker),
b = runParams.get(AbilityKey.Blocker);
if (!(a instanceof Card && b instanceof Card)) {
return false;
}

final Card attacker = (Card) a,
blocker = (Card) b;
Expand Down
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/a/abrade.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ ManaCost:1 R
Types:Instant
A:SP$ Charm | Choices$ DBDmg,DBDestroy
SVar:DBDmg:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to target creature.
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact. | SpellDescription$ Destroy target artifact.
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | SpellDescription$ Destroy target artifact.
Oracle:Choose one —\n• Abrade deals 3 damage to target creature.\n• Destroy target artifact.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/b/battle_cry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ ManaCost:2 W
Types:Instant
A:SP$ UntapAll | ValidCards$ Creature.White+YouCtrl | SubAbility$ Battlecry | SpellDescription$ Untap all white creatures you control. Whenever a creature blocks this turn, it gets +0/+1 until end of turn.
SVar:Battlecry:DB$ Effect | Triggers$ TrigBlocking
SVar:TrigBlocking:Mode$ AttackerBlocked | Execute$ Pump | TriggerDescription$ Whenever a creature blocks this turn, it gets +0/+1 until end of turn.
SVar:TrigBlocking:Mode$ Blocks | Execute$ Pump | TriggerDescription$ Whenever a creature blocks this turn, it gets +0/+1 until end of turn.
SVar:Pump:DB$ Pump | Defined$ TriggeredBlockerLKICopy | NumDef$ 1
AI:RemoveDeck:All
Oracle:Untap all white creatures you control.\nWhenever a creature blocks this turn, it gets +0/+1 until end of turn.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/b/bringer_of_the_white_dawn.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ PT:5/5
K:Trample
S:Mode$ AlternativeCost | ValidSA$ Spell.Self | EffectZone$ All | Cost$ W U B R G | Description$ You may pay {W}{U}{B}{R}{G} rather than pay this spell's mana cost.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ At the beginning of your upkeep, you may return target artifact card from your graveyard to the battlefield.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Artifact.YouCtrl | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Artifact.YouCtrl
DeckHas:Ability$Graveyard
DeckNeeds:Type$Artifact
Oracle:You may pay {W}{U}{B}{R}{G} rather than pay this spell's mana cost.\nTrample\nAt the beginning of your upkeep, you may return target artifact card from your graveyard to the battlefield.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/c/charnelhoard_wurm.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Types:Creature Wurm
PT:6/6
K:Trample
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | OptionalDecider$ You | Execute$ TrigChange | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage to an opponent, you may return target card from your graveyard to your hand.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Card.YouCtrl | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Card.YouCtrl
Oracle:Trample\nWhenever Charnelhoard Wurm deals damage to an opponent, you may return target card from your graveyard to your hand.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/e/emeria_the_sky_ruin.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ R:Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplacementRe
SVar:ETBTapped:DB$ Tap | Defined$ Self | ETB$ True
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | IsPresent$ Card.Plains+YouCtrl | PresentCompare$ GE7 | TriggerDescription$ At the beginning of your upkeep, if you control seven or more Plains, you may return target creature card from your graveyard to the battlefield.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl
Oracle:Emeria, the Sky Ruin enters tapped.\nAt the beginning of your upkeep, if you control seven or more Plains, you may return target creature card from your graveyard to the battlefield.\n{T}: Add {W}.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/f/floodgate.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Types:Creature Wall
PT:0/5
K:Defender
T:Mode$ Always | IsPresent$ Card.Self+withFlying | Execute$ Sacrifice | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME has flying, sacrifice it.
SVar:Sacrifice:AB$ Sacrifice | Cost$ 0
SVar:Sacrifice:DB$ Sacrifice
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Execute$ TrigDamage | TriggerDescription$ When CARDNAME leaves the battlefield, it deals damage equal to half the number of Islands you control, rounded down, to each nonblue creature without flying.
SVar:TrigDamage:DB$ DamageAll | ValidCards$ Creature.nonBlue+withoutFlying | NumDmg$ X
SVar:X:Count$Valid Island.YouCtrl/HalfDown
Expand Down
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/i/ian_malcolm_chaotician.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Types:Legendary Creature Human Scientist
PT:2/2
T:Mode$ Drawn | ValidPlayer$ Player | Number$ 2 | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Whenever a player draws their second card each turn, that player exiles the top card of their library.
SVar:TrigDig:DB$ Dig | Defined$ TriggeredPlayer | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | RememberChanged$ True | DestinationZone$ Exile
S:Mode$ Continuous | Affected$ Card.ExiledWithSource+YouDontOwn | MayPlay$ True | MayPlayLimit$ 1 | MayPlayIgnoreType$ True | MayPlayPlayer$ ActivePlayer | EffectZone$ Battlefield | AffectedZone$ Exile | Description$ During each player's turn, that player may cast a spell from among the cards they don't own exiled with CARDNAME and mana of any type can be spent to cast it.
S:Mode$ Continuous | Affected$ Card.ExiledWithSource+!OwnedBy ActivePlayer | MayPlay$ True | MayPlayLimit$ 1 | MayPlayIgnoreType$ True | MayPlayPlayer$ ActivePlayer | EffectZone$ Battlefield | AffectedZone$ Exile | Description$ During each player's turn, that player may cast a spell from among the cards they don't own exiled with CARDNAME and mana of any type can be spent to cast it.
Oracle:Whenever a player draws their second card each turn, that player exiles the top card of their library.\nDuring each player's turn, that player may cast a spell from among the cards they don't own exiled with Ian Malcolm, Chaotician, and mana of any type can be spent to cast it.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/j/junk_diver.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ Types:Artifact Creature Bird
PT:1/1
K:Flying
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME dies, return another target artifact card from your graveyard to your hand.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Artifact.Other | TargetsWithDefinedController$ TriggeredCardController | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Artifact.Other | TargetsWithDefinedController$ TriggeredCardController
SVar:SacMe:1
Oracle:Flying\nWhen Junk Diver dies, return another target artifact card from your graveyard to your hand.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/l/lurebound_scarecrow.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ PT:4/4
K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters, choose a color. | AILogic$ MostProminentComputerControls
T:Mode$ Always | IsPresent$ Permanent.YouCtrl+ChosenColor | PresentCompare$ EQ0 | TriggerZones$ Battlefield | Execute$ TrigSacrifice | TriggerDescription$ When you control no permanents of the chosen color, sacrifice CARDNAME.
SVar:TrigSacrifice:AB$ Sacrifice | Cost$ 0
SVar:TrigSacrifice:DB$ Sacrifice
SVar:NeedsToPlay:Permanent.nonColorless+YouCtrl
Oracle:As Lurebound Scarecrow enters, choose a color.\nWhen you control no permanents of the chosen color, sacrifice Lurebound Scarecrow.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/m/mage_hunters_onslaught.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ ManaCost:2 B B
Types:Sorcery
A:SP$ Destroy | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | SubAbility$ DBEffect | SpellDescription$ Destroy target creature or planeswalker.
SVar:DBEffect:DB$ Effect | Triggers$ TrigBlocking
SVar:TrigBlocking:Mode$ AttackerBlocked | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature blocks this turn, its controller loses 1 life.
SVar:TrigBlocking:Mode$ Blocks | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature blocks this turn, its controller loses 1 life.
SVar:TrigLoseLife:DB$ LoseLife | Defined$ TriggeredBlockerController | LifeAmount$ 1
Oracle:Destroy target creature or planeswalker.\nWhenever a creature blocks this turn, its controller loses 1 life.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/m/myr_retriever.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ ManaCost:2
Types:Artifact Creature Myr
PT:1/1
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME dies, return another target artifact card from your graveyard to your hand.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Artifact.Other | TargetsWithDefinedController$ TriggeredCardController | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Artifact.Other | TargetsWithDefinedController$ TriggeredCardController
SVar:SacMe:1
Oracle:When Myr Retriever dies, return another target artifact card from your graveyard to your hand.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/m/mystic_barrier.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ ManaCost:4 W
Types:Enchantment
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChooseDirection | TriggerDescription$ When CARDNAME enters or at the beginning of your upkeep, choose left or right.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChooseDirection | Secondary$ True | TriggerDescription$ When CARDNAME enters or at the beginning of your upkeep, choose left or right.
SVar:TrigChooseDirection:AB$ ChooseDirection | Cost$ 0
SVar:TrigChooseDirection:DB$ ChooseDirection
S:Mode$ CantAttack | DefenderNotNearestToYouInChosenDirection$ True | Description$ Each player may attack only the nearest opponent in the last chosen direction and planeswalkers controlled by that opponent.
AI:RemoveDeck:Random
SVar:NonStackingEffect:True
Expand Down
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/p/paleoloth.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ ManaCost:4 G G
Types:Creature Beast
PT:5/5
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.powerGE5+Other+YouCtrl | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigChange | TriggerDescription$ Whenever another creature you control with power 5 or greater enters, you may return target creature card from your graveyard to your hand.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl
Oracle:Whenever another creature you control with power 5 or greater enters, you may return target creature card from your graveyard to your hand.
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.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/r/reya_dawnbringer.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ Types:Legendary Creature Angel
PT:4/6
K:Flying
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ At the beginning of your upkeep, you may return target creature card from your graveyard to the battlefield.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl
Oracle:Flying\nAt the beginning of your upkeep, you may return target creature card from your graveyard to the battlefield.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/s/seal_of_strength.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Name:Seal of Strength
ManaCost:G
Types:Enchantment
A:AB$ Pump | Cost$ 0 Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +3 | NumDef$ +3 | SpellDescription$ Target creature gets +3/+3 until end of turn.
A:AB$ Pump | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +3 | NumDef$ +3 | SpellDescription$ Target creature gets +3/+3 until end of turn.
SVar:PlayMain1:TRUE
Oracle:Sacrifice Seal of Strength: Target creature gets +3/+3 until end of turn.
2 changes: 1 addition & 1 deletion forge-gui/res/cardsfolder/s/sun_titan.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ PT:6/6
K:Vigilance
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME enters or attacks, you may return target permanent card with mana value 3 or less from your graveyard to the battlefield.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChange | TriggerZones$ Battlefield | OptionalDecider$ You | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters or attacks, you may return target permanent card with mana value 3 or less from your graveyard to the battlefield.
SVar:TrigChange:AB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Permanent.YouCtrl+cmcLE3 | Cost$ 0
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Permanent.YouCtrl+cmcLE3
SVar:HasAttackEffect:TRUE
Oracle:Vigilance\nWhenever Sun Titan enters or attacks, you may return target permanent card with mana value 3 or less from your graveyard to the battlefield.
Loading

0 comments on commit 2e09965

Please sign in to comment.