Merge pull request #442 from tool4ever/changeszoneall

PlayEffect: add TriggerChangesZoneAll
This commit is contained in:
Northmoc
2022-05-21 08:25:46 -04:00
committed by GitHub

View File

@@ -25,6 +25,7 @@ import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollection; import forge.game.card.CardCollection;
import forge.game.card.CardFactoryUtil; import forge.game.card.CardFactoryUtil;
import forge.game.card.CardZoneTable;
import forge.game.cost.Cost; import forge.game.cost.Cost;
import forge.game.cost.CostDiscard; import forge.game.cost.CostDiscard;
import forge.game.cost.CostPart; import forge.game.cost.CostPart;
@@ -321,6 +322,9 @@ public class PlayEffect extends SpellAbilityEffect {
continue; continue;
} }
final CardZoneTable triggerList = new CardZoneTable();
final Zone originZone = tgtCard.getZone();
// lands will be played // lands will be played
if (tgtSA instanceof LandAbility) { if (tgtSA instanceof LandAbility) {
tgtSA.resolve(); tgtSA.resolve();
@@ -335,6 +339,13 @@ public class PlayEffect extends SpellAbilityEffect {
if (forget) { if (forget) {
source.removeRemembered(tgtCard); source.removeRemembered(tgtCard);
} }
final Zone currentZone = game.getCardState(tgtCard).getZone();
if (!originZone.equals(currentZone)) {
triggerList.put(originZone.getZoneType(), currentZone.getZoneType(), game.getCardState(tgtCard));
}
triggerList.triggerChangesZoneAll(game, sa);
continue; continue;
} }
@@ -422,6 +433,12 @@ public class PlayEffect extends SpellAbilityEffect {
if (forget) { if (forget) {
source.removeRemembered(tgtCard); source.removeRemembered(tgtCard);
} }
final Zone currentZone = game.getCardState(tgtCard).getZone();
if (!originZone.equals(currentZone)) {
triggerList.put(originZone.getZoneType(), currentZone.getZoneType(), game.getCardState(tgtCard));
}
triggerList.triggerChangesZoneAll(game, sa);
} }
amount--; amount--;