ChangeZoneEffect: add Meld and Mutate for TriggerChangesZoneAll

This commit is contained in:
Hans Mackowiak
2021-03-04 15:23:05 +01:00
parent 35b1fde876
commit a653085e60
2 changed files with 30 additions and 5 deletions

View File

@@ -223,6 +223,19 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
if (!movedCard.getZone().equals(originZone)) {
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard);
if (c.getMeldedWith() != null) {
Card meld = game.getCardState(c.getMeldedWith(), null);
if (meld != null) {
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), meld);
}
}
if (c.hasMergedCard()) {
for (final Card cm : c.getMergedCards()) {
if (cm == c) continue;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), cm);
}
}
}
}

View File

@@ -728,16 +728,28 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
}
}
if (!movedCard.getZone().equals(originZone)) {
Card meld = null;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard);
if (gameCard.getMeldedWith() != null) {
meld = game.getCardState(gameCard.getMeldedWith(), null);
if (meld != null) {
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), meld);
}
}
if (gameCard.hasMergedCard()) {
for (final Card c : gameCard.getMergedCards()) {
if (c == gameCard) continue;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), c);
}
}
if (remember != null) {
hostCard.addRemembered(movedCard);
// addRememberedFromCardState ?
if (gameCard.getMeldedWith() != null) {
Card meld = game.getCardState(gameCard.getMeldedWith(), null);
if (meld != null) {
hostCard.addRemembered(meld);
}
if (meld != null) {
hostCard.addRemembered(meld);
}
if (gameCard.hasMergedCard()) {
for (final Card c : gameCard.getMergedCards()) {