Support Turtles Forever (#8926)

This commit is contained in:
tool4ever
2025-10-14 19:16:21 +02:00
committed by GitHub
parent 6617e2627c
commit fac5b6c253
2 changed files with 11 additions and 4 deletions

View File

@@ -1103,7 +1103,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
if (changeType.startsWith("EACH")) {
String[] eachTypes = changeType.substring(5).split(" & ");
for (String thisType : eachTypes) {
for (int i = 0; i < changeNum && destination != null; i++) {
for (int i = 0; i < changeNum; i++) {
CardCollection thisList = (CardCollection) AbilityUtils.filterListByType(fetchList, thisType, sa);
if (!chosenCards.isEmpty()) {
thisList.removeAll(chosenCards);
@@ -1138,7 +1138,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
// maybe prompt the user if they selected fewer than the maximum possible?
} else {
// one at a time
for (int i = 0; i < changeNum && destination != null; i++) {
for (int i = 0; i < changeNum; i++) {
if (sa.hasParam("DifferentNames")) {
for (Card c : chosenCards) {
fetchList = CardLists.filter(fetchList, CardPredicates.sharesNameWith(c).negate());
@@ -1252,6 +1252,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
player.removeController(controlTimestamp);
}
if (sa.hasParam("Exactly") && chosenCards.size() < changeNum) {
continue;
}
HiddenOriginChoices choices = new HiddenOriginChoices();
choices.searchedLibrary = searchedLibrary;
choices.shuffleMandatory = shuffleMandatory;
@@ -1281,7 +1285,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
Player decider = ObjectUtils.firstNonNull(chooser, player);
for (final Card c : chosenCards) {
Card movedCard = null;
Card movedCard;
final Zone originZone = game.getZoneOf(c);
Map<AbilityKey, Object> moveParams = AbilityKey.newMap();
moveParams.put(AbilityKey.FoundSearchingLibrary, searchedLibrary);
@@ -1413,6 +1417,9 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
movedCard.addMayLookFaceDownExile(sa.getActivatingPlayer());
}
}
else if (destination == null) {
movedCard = c;
}
else {
movedCard = game.getAction().moveTo(destination, c, 0, sa, moveParams);
}

View File

@@ -4,7 +4,7 @@ Types:Creature Demon Berserker
PT:6/6
K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters, you may search your library for exactly two cards not named Burning-Rune Demon that have different names. If you do, reveal those cards. An opponent chooses one of them. Put the chosen card into your hand and the other into your graveyard, then shuffle.
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Library | ChangeType$ Card.!namedBurning-Rune Demon | ChangeNum$ 2 | DifferentNames$ True | RememberChanged$ True | Reveal$ True | Shuffle$ False | AILogic$ Intuition | SubAbility$ DBChoosePlayer
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Library | ChangeType$ Card.!namedBurning-Rune Demon | ChangeNum$ 2 | DifferentNames$ True | Exactly$ True | RememberChanged$ True | Reveal$ True | Shuffle$ False | AILogic$ Intuition | SubAbility$ DBChoosePlayer
SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent | SubAbility$ DBChangeZone1
SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.IsRemembered | Chooser$ ChosenPlayer | ChangeNum$ 1 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card to be put into the hand of CARDNAME's controller | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ None
SVar:DBChangeZone2:DB$ ChangeZoneAll | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | Shuffle$ True | StackDescription$ None | SubAbility$ DBCleanup