From e3dba72bf210f05ce7db9f640f18426b197ac162 Mon Sep 17 00:00:00 2001 From: Northmoc Date: Wed, 25 May 2022 21:59:26 -0400 Subject: [PATCH] VentureEffect: support "Dungeon" + check for Enterable boolean --- .../game/ability/effects/VentureEffect.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java b/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java index 01009a820de..dece7177118 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java @@ -42,12 +42,18 @@ public class VentureEffect extends SpellAbilityEffect { } } - // Create a new dungeon card chosen by player in command zone. - List dungeonCards = StaticData.instance().getVariantCards().getAllCards( - Predicates.compose(CardRulesPredicates.Presets.IS_DUNGEON, PaperCard.FN_GET_RULES)); - - String message = Localizer.getInstance().getMessage("lblChooseDungeon"); - Card dungeon = player.getController().chooseDungeon(player, dungeonCards, message); + Card dungeon = null; + if (sa.hasParam("Dungeon")) { + dungeon = Card.fromPaperCard(StaticData.instance().getVariantCards().getUniqueByName( + sa.getParam("Dungeon")), player); + } else { + // Create a new dungeon card chosen by player in command zone. + List dungeonCards = StaticData.instance().getVariantCards().getAllCards( + Predicates.compose(CardRulesPredicates.Presets.IS_DUNGEON, PaperCard.FN_GET_RULES)); + dungeonCards.removeIf(c -> !c.getRules().isEnterableDungeon()); + String message = Localizer.getInstance().getMessage("lblChooseDungeon"); + dungeon = player.getController().chooseDungeon(player, dungeonCards, message); + } game.getTriggerHandler().suppressMode(TriggerType.ChangesZone); game.getAction().moveTo(ZoneType.Command, dungeon, sa, moveParams);