Merge branch 'fix_change_zone_all_remember_meld_mutate' into 'master'

Remember meld and merged cards for ChangeZoneAll effect

See merge request core-developers/forge!4115
This commit is contained in:
Michael Kamensky
2021-03-06 04:59:13 +00:00
2 changed files with 33 additions and 1 deletions

View File

@@ -199,10 +199,29 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
}
if (remember != null) {
game.getCardState(source).addRemembered(movedCard);
final Card newSource = game.getCardState(source);
newSource.addRemembered(movedCard);
if (!source.isRemembered(movedCard)) {
source.addRemembered(movedCard);
}
if (c.getMeldedWith() != null) {
Card meld = game.getCardState(c.getMeldedWith(), null);
if (meld != null) {
newSource.addRemembered(meld);
if (!source.isRemembered(meld)) {
source.addRemembered(meld);
}
}
}
if (c.hasMergedCard()) {
for (final Card card : c.getMergedCards()) {
if (card == c) continue;
newSource.addRemembered(card);
if (!source.isRemembered(card)) {
source.addRemembered(card);
}
}
}
}
if (remLKI && movedCard != null) {
final Card lki = CardUtil.getLKICopy(c);

View File

@@ -1312,6 +1312,19 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (originZone != null) {
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 card : c.getMergedCards()) {
if (card == c) continue;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), card);
}
}
}
if (champion) {