mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Resolve "Wrong player controls ETB trigger of Clone"
This commit is contained in:
@@ -274,7 +274,7 @@ public class TriggerHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void runStateTrigger(final Map<AbilityKey, Object> runParams) {
|
private void runStateTrigger(final Map<AbilityKey, Object> runParams) {
|
||||||
for (final Trigger t: activeTriggers) {
|
for (final Trigger t: Lists.newArrayList(activeTriggers)) {
|
||||||
if (canRunTrigger(t, TriggerType.Always, runParams)) {
|
if (canRunTrigger(t, TriggerType.Always, runParams)) {
|
||||||
runSingleTrigger(t, runParams);
|
runSingleTrigger(t, runParams);
|
||||||
}
|
}
|
||||||
@@ -545,12 +545,17 @@ public class TriggerHandler {
|
|||||||
// need to set as Overriding Abiltiy so it can be copied better
|
// need to set as Overriding Abiltiy so it can be copied better
|
||||||
regtrig.setOverridingAbility(sa);
|
regtrig.setOverridingAbility(sa);
|
||||||
}
|
}
|
||||||
|
sa.setActivatingPlayer(host.getController());
|
||||||
|
|
||||||
|
if (regtrig.isIntrinsic()) {
|
||||||
|
sa.setIntrinsic(true);
|
||||||
|
sa.changeText();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// need to copy the SA because of TriggeringObjects
|
// need to copy the SA because of TriggeringObjects
|
||||||
sa = sa.copy();
|
sa = sa.copy(host, host.getController(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
sa.setHostCard(host);
|
|
||||||
sa.setLastStateBattlefield(game.getLastStateBattlefield());
|
sa.setLastStateBattlefield(game.getLastStateBattlefield());
|
||||||
sa.setLastStateGraveyard(game.getLastStateGraveyard());
|
sa.setLastStateGraveyard(game.getLastStateGraveyard());
|
||||||
|
|
||||||
@@ -562,9 +567,7 @@ public class TriggerHandler {
|
|||||||
sa.setTriggeringObjects(regtrig.getStoredTriggeredObjects());
|
sa.setTriggeringObjects(regtrig.getStoredTriggeredObjects());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sa.getActivatingPlayer() == null) { // overriding delayed trigger should have set activator
|
if (sa.getDeltrigActivatingPlayer() != null) {
|
||||||
sa.setActivatingPlayer(host.getController());
|
|
||||||
} else if (sa.getDeltrigActivatingPlayer() != null) {
|
|
||||||
// make sure that the original delayed trigger activator is restored
|
// make sure that the original delayed trigger activator is restored
|
||||||
// (may have been overwritten by the AI simulation routines, e.g. Rainbow Vale)
|
// (may have been overwritten by the AI simulation routines, e.g. Rainbow Vale)
|
||||||
sa.setActivatingPlayer(sa.getDeltrigActivatingPlayer());
|
sa.setActivatingPlayer(sa.getDeltrigActivatingPlayer());
|
||||||
@@ -579,11 +582,6 @@ public class TriggerHandler {
|
|||||||
host.addRemembered(sa.getActivatingPlayer());
|
host.addRemembered(sa.getActivatingPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (regtrig.isIntrinsic() && regtrig.getOverridingAbility() == null) {
|
|
||||||
sa.setIntrinsic(true);
|
|
||||||
sa.changeText();
|
|
||||||
}
|
|
||||||
|
|
||||||
sa.setStackDescription(sa.toString());
|
sa.setStackDescription(sa.toString());
|
||||||
if (sa.getApi() == ApiType.Charm && !sa.isWrapper()) {
|
if (sa.getApi() == ApiType.Charm && !sa.isWrapper()) {
|
||||||
if (!CharmEffect.makeChoices(sa)) {
|
if (!CharmEffect.makeChoices(sa)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user