Make becoming new object more default

This commit is contained in:
tool4EvEr
2023-07-02 10:49:36 +02:00
parent 6106e5247f
commit 044dcf6e77
2 changed files with 3 additions and 17 deletions

View File

@@ -223,20 +223,9 @@ public class GameAction {
// Don't copy Tokens, copy only cards leaving the battlefield // Don't copy Tokens, copy only cards leaving the battlefield
// and returning to hand (to recreate their spell ability information) // and returning to hand (to recreate their spell ability information)
if (suppress || toBattlefield) { if (toBattlefield || (suppress && zoneTo.getZoneType().isHidden())) {
copied = c; copied = c;
// 400.8. If an object in the exile zone is exiled, it doesn't change zones,
// but it becomes a new object that has just been exiled.
if (zoneTo.is(ZoneType.Exile)) {
copied = CardFactory.copyCard(c, false);
copied.setTimestamp(game.getNextTimestamp());
if (c.hasKeyword("Counters remain on CARDNAME as it moves to any zone other than a player's hand or library.")) {
copied.setCounters(Maps.newHashMap(c.getCounters()));
}
}
if (lastKnownInfo == null) { if (lastKnownInfo == null) {
lastKnownInfo = CardUtil.getLKICopy(c); lastKnownInfo = CardUtil.getLKICopy(c);
} }
@@ -396,7 +385,7 @@ public class GameAction {
} }
} }
if (!zoneTo.is(ZoneType.Stack) && !suppress) { if (!zoneTo.is(ZoneType.Stack)) {
// reset timestamp in changezone effects so they have same timestamp if ETB simultaneously // reset timestamp in changezone effects so they have same timestamp if ETB simultaneously
copied.setTimestamp(game.getNextTimestamp()); copied.setTimestamp(game.getNextTimestamp());
} }

View File

@@ -327,7 +327,6 @@ public class Player extends GameEntity implements Comparable<Player> {
game.getTriggerHandler().suppressMode(TriggerType.ChangesZone); game.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
activeScheme = getZone(ZoneType.SchemeDeck).get(0); activeScheme = getZone(ZoneType.SchemeDeck).get(0);
// gameAction moveTo ?
game.getAction().moveTo(ZoneType.Command, activeScheme, null, moveParams); game.getAction().moveTo(ZoneType.Command, activeScheme, null, moveParams);
game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
@@ -3268,9 +3267,7 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
final TriggerHandler triggerHandler = game.getTriggerHandler(); final TriggerHandler triggerHandler = game.getTriggerHandler();
triggerHandler.suppressMode(TriggerType.ChangesZone); com.add(initiativeEffect);
game.getAction().moveTo(ZoneType.Command, initiativeEffect, null, null);
triggerHandler.clearSuppression(TriggerType.ChangesZone);
triggerHandler.clearActiveTriggers(initiativeEffect, null); triggerHandler.clearActiveTriggers(initiativeEffect, null);
triggerHandler.registerActiveTrigger(initiativeEffect, false); triggerHandler.registerActiveTrigger(initiativeEffect, false);