mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
TokenEffectBase: fill table with none zone
This commit is contained in:
@@ -64,6 +64,7 @@ public abstract class TokenEffectBase extends SpellAbilityEffect {
|
|||||||
Card c = game.getAction().moveToPlay(tok, sa);
|
Card c = game.getAction().moveToPlay(tok, sa);
|
||||||
if (c == null || c.getZone() == null) {
|
if (c == null || c.getZone() == null) {
|
||||||
// in case token can't enter the battlefield, it isn't created
|
// in case token can't enter the battlefield, it isn't created
|
||||||
|
triggerList.put(ZoneType.None, ZoneType.None, c);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
triggerList.put(ZoneType.None, c.getZone().getZoneType(), c);
|
triggerList.put(ZoneType.None, c.getZone().getZoneType(), c);
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ public class TriggerHandler {
|
|||||||
|
|
||||||
public final void registerActiveTrigger(final Card c, final boolean onlyExtrinsic) {
|
public final void registerActiveTrigger(final Card c, final boolean onlyExtrinsic) {
|
||||||
for (final Trigger t : c.getTriggers()) {
|
for (final Trigger t : c.getTriggers()) {
|
||||||
if (!onlyExtrinsic || c.isCloned() || !t.isIntrinsic() || t instanceof TriggerAlways) {
|
if (!onlyExtrinsic || c.isCloned() || !t.isIntrinsic() || TriggerType.Always.equals(t.getMode())) {
|
||||||
registerOneTrigger(t);
|
registerOneTrigger(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -379,7 +379,7 @@ public class TriggerHandler {
|
|||||||
if (regtrig.getHostCard().isFaceDown() && regtrig.isIntrinsic()) {
|
if (regtrig.getHostCard().isFaceDown() && regtrig.isIntrinsic()) {
|
||||||
return false; // Morphed cards only have pumped triggers go off.
|
return false; // Morphed cards only have pumped triggers go off.
|
||||||
}
|
}
|
||||||
if (regtrig instanceof TriggerAlways) {
|
if (TriggerType.Always.equals(regtrig.getMode())) {
|
||||||
if (game.getStack().hasStateTrigger(regtrig.getId())) {
|
if (game.getStack().hasStateTrigger(regtrig.getId())) {
|
||||||
return false; // State triggers that are already on the stack
|
return false; // State triggers that are already on the stack
|
||||||
// don't trigger again.
|
// don't trigger again.
|
||||||
@@ -432,7 +432,7 @@ public class TriggerHandler {
|
|||||||
return false; // Trigger removed by effect
|
return false; // Trigger removed by effect
|
||||||
}
|
}
|
||||||
|
|
||||||
if (regtrig instanceof TriggerAlways) {
|
if (TriggerType.Always.equals(regtrig.getMode())) {
|
||||||
if (game.getStack().hasStateTrigger(regtrig.getId())) {
|
if (game.getStack().hasStateTrigger(regtrig.getId())) {
|
||||||
return false; // State triggers that are already on the stack
|
return false; // State triggers that are already on the stack
|
||||||
// don't trigger again.
|
// don't trigger again.
|
||||||
|
|||||||
@@ -444,7 +444,7 @@ public class WrappedAbility extends Ability {
|
|||||||
final Game game = sa.getActivatingPlayer().getGame();
|
final Game game = sa.getActivatingPlayer().getGame();
|
||||||
final Trigger regtrig = getTrigger();
|
final Trigger regtrig = getTrigger();
|
||||||
|
|
||||||
if (!(regtrig instanceof TriggerAlways) && !regtrig.hasParam("NoResolvingCheck")) {
|
if (!(TriggerType.Always.equals(regtrig.getMode())) && !regtrig.hasParam("NoResolvingCheck")) {
|
||||||
// Most State triggers don't have "Intervening If"
|
// Most State triggers don't have "Intervening If"
|
||||||
if (!regtrig.requirementsCheck(game)) {
|
if (!regtrig.requirementsCheck(game)) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
14
forge-gui/res/cardsfolder/upcoming/mystic_reflection.txt
Normal file
14
forge-gui/res/cardsfolder/upcoming/mystic_reflection.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Name:Mystic Reflection
|
||||||
|
ManaCost:1 U
|
||||||
|
Types:Instant
|
||||||
|
A:SP$ Effect | ValidTgts$ Creature.nonLegendary | TgtPrompt$ Choose target nonlegendary creature | RememberObjects$ Targeted | ReplacementEffects$ ReplaceETB | Triggers$ TrigRemove | SVars$ EnterAsCopy,DBImprint,MoveToBattlefield,Z,ExileSelf | SpellDescription$ Choose target nonlegendary creature. The next time one or more creatures or planeswalkers enter the battlefield this turn, they enter as copies of the chosen creature.
|
||||||
|
SVar:ReplaceETB:Event$ Moved | Destination$ Battlefield | ValidCard$ Creature,Planeswalker | ReplaceWith$ EnterAsCopy | Description$ The next time one or more creatures or planeswalkers enter the battlefield this turn, they enter as copies of the chosen creature.
|
||||||
|
SVar:EnterAsCopy:DB$ Clone | Defined$ Remembered | CloneTarget$ ReplacedCard | SubAbility$ MoveToBattlefield
|
||||||
|
SVar:MoveToBattlefield:DB$ InternalEtbReplacement | SubAbility$ DBImprint
|
||||||
|
SVar:DBImprint:DB$ Pump | ImprintCards$ ReplacedCard
|
||||||
|
SVar:TrigRemove:Mode$ ChangesZoneAll | CheckSVar$ Z | Execute$ ExileSelf | Static$ True
|
||||||
|
SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self
|
||||||
|
SVar:Z:Imprinted$Amount
|
||||||
|
K:Foretell:U
|
||||||
|
AI:RemoveDeck:All
|
||||||
|
Oracle:Choose target nonlegendary creature. The next time one or more creatures or planeswalkers enter the battlefield this turn, they enter as copies of the chosen creature.\nForetell {U} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.)
|
||||||
Reference in New Issue
Block a user