mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Merge branch 'foreach' into 'master'
Fix Clarion Ultimatum and co. Closes #1980 See merge request core-developers/forge!5446
This commit is contained in:
@@ -1003,6 +1003,9 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
Long controlTimestamp = null;
|
||||
if (!searchedLibrary && sa.hasParam("Searched")) {
|
||||
searchedLibrary = true;
|
||||
}
|
||||
if (searchedLibrary) {
|
||||
if (decider.equals(player)) {
|
||||
Map.Entry<Long, Player> searchControlPlayer = player.getControlledWhileSearching();
|
||||
@@ -1038,6 +1041,9 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
runParams.put(AbilityKey.Target, Lists.newArrayList(player));
|
||||
decider.getGame().getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false);
|
||||
}
|
||||
if (searchedLibrary && sa.hasParam("Searched")) {
|
||||
searchedLibrary = false;
|
||||
}
|
||||
|
||||
if (!defined && changeType != null) {
|
||||
fetchList = (CardCollection)AbilityUtils.filterListByType(fetchList, sa.getParam("ChangeType"), sa);
|
||||
|
||||
@@ -4,6 +4,9 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import forge.game.player.DelayedReveal;
|
||||
import forge.game.player.PlayerView;
|
||||
import forge.util.CardTranslation;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import forge.card.CardType;
|
||||
@@ -165,12 +168,28 @@ public class ChooseCardEffect extends SpellAbilityEffect {
|
||||
} else {
|
||||
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " ";
|
||||
if (sa.hasParam ("ChoiceTitleAppendDefined")) {
|
||||
String defined = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("ChoiceTitleAppendDefined"), sa).toString();
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
sb.append(title).append(" ").append(defined);
|
||||
title = sb.toString();
|
||||
String defined = AbilityUtils.getDefinedPlayers(host, sa.getParam("ChoiceTitleAppendDefined"), sa).toString();
|
||||
title = title + " " + defined;
|
||||
}
|
||||
if (sa.hasParam("QuasiLibrarySearch")) {
|
||||
final Player searched = AbilityUtils.getDefinedPlayers(host,
|
||||
sa.getParam("QuasiLibrarySearch"), sa).get(0);
|
||||
final int fetchNum = Math.min(searched.getCardsIn(ZoneType.Library).size(), 4);
|
||||
CardCollectionView shown = !p.hasKeyword("LimitSearchLibrary")
|
||||
? searched.getCardsIn(ZoneType.Library) : searched.getCardsIn(ZoneType.Library, fetchNum);
|
||||
DelayedReveal delayedReveal = new DelayedReveal(shown, ZoneType.Library, PlayerView.get(searched),
|
||||
CardTranslation.getTranslatedName(host.getName()) + " - " +
|
||||
Localizer.getInstance().getMessage("lblLookingCardIn") + " ");
|
||||
Card choice = p.getController().chooseSingleEntityForEffect(choices, delayedReveal, sa, title,
|
||||
!sa.hasParam("Mandatory"), p, null);
|
||||
if (choice == null) {
|
||||
return;
|
||||
}
|
||||
chosen.add(choice);
|
||||
} else {
|
||||
chosen.addAll(p.getController().chooseCardsForEffect(choices, sa, title, minAmount, validAmount,
|
||||
!sa.hasParam("Mandatory"), null));
|
||||
}
|
||||
chosen.addAll(p.getController().chooseCardsForEffect(choices, sa, title, minAmount, validAmount, !sa.hasParam("Mandatory"), null));
|
||||
}
|
||||
}
|
||||
if (sa.hasParam("Reveal")) {
|
||||
|
||||
Reference in New Issue
Block a user