From c04b2e2f6c7d3d49304ddfdef14c4cc86aead795 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 2 Dec 2011 10:59:04 +0000 Subject: [PATCH] Lurker skirmish order resolving. --- .../com/gempukku/lotro/common/Keyword.java | 2 +- .../PlayoutSkirmishesGameProcess.java | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java index 2c9188ab3..3a1d12398 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Keyword.java @@ -19,7 +19,7 @@ public enum Keyword implements Filterable { PIPEWEED("Pipeweed"), DAMAGE("Damage", true, true), DEFENDER("Defender", true, true), AMBUSH("Ambush", true, true), FIERCE("Fierce", true), ARCHER("Archer", true), - UNHASTY("Unhasty", true), MUSTER("Muster", true), TOIL("Toil", true, true), + UNHASTY("Unhasty", true), MUSTER("Muster", true), TOIL("Toil", true, true), LURKER("Lurker", true), RANGER("Ranger", true), TRACKER("Tracker", true), VILLAGER("Villager", true), MACHINE("Machine", true), ENGINE("Engine", true), SOUTHRON("Southron", true), EASTERLING("Easterling", true), VALIANT("Valiant", true), KNIGHT("Knight", true), FORTIFICATION("Fortification", true), diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/skirmish/PlayoutSkirmishesGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/skirmish/PlayoutSkirmishesGameProcess.java index 8eeae91db..0b31d2fcd 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/skirmish/PlayoutSkirmishesGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/skirmish/PlayoutSkirmishesGameProcess.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.logic.timing.processes.turn.skirmish; +import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -28,9 +29,14 @@ public class PlayoutSkirmishesGameProcess implements GameProcess { final List assignments = gameState.getAssignments(); if (assignments.size() > 0) { - Set fps = new HashSet(); - for (Assignment assignment : assignments) - fps.add(assignment.getFellowshipCharacter()); + Set nonLurkerSkirmishFps = new HashSet(); + Set lurkerSkirmishFps = new HashSet(); + for (Assignment assignment : assignments) { + if (Filters.filter(assignment.getShadowCharacters(), game.getGameState(), game.getModifiersQuerying(), Keyword.LURKER).size() > 0) + lurkerSkirmishFps.add(assignment.getFellowshipCharacter()); + else + nonLurkerSkirmishFps.add(assignment.getFellowshipCharacter()); + } String playerChoosingSkirmishOrder = gameState.getCurrentPlayerId(); if (game.getModifiersQuerying().hasFlagActive(gameState, ModifierFlag.SKIRMISH_ORDER_BY_FIRST_SHADOW_PLAYER)) @@ -38,7 +44,13 @@ public class PlayoutSkirmishesGameProcess implements GameProcess { SystemQueueAction chooseNextSkirmishAction = new SystemQueueAction(); - ChooseActiveCardEffect chooseNextSkirmish = new ChooseActiveCardEffect(null, playerChoosingSkirmishOrder, "Choose next skirmish to resolve", Filters.in(fps)) { + Set skirmishChoice; + if (nonLurkerSkirmishFps.size() > 0) + skirmishChoice = nonLurkerSkirmishFps; + else + skirmishChoice = lurkerSkirmishFps; + + ChooseActiveCardEffect chooseNextSkirmish = new ChooseActiveCardEffect(null, playerChoosingSkirmishOrder, "Choose next skirmish to resolve", Filters.in(skirmishChoice)) { @Override protected void cardSelected(LotroGame game, PhysicalCard card) { final Assignment assignment = findAssignment(assignments, card);