From 7e9f8d454e350001fe9aabe71558b7eadb809e19 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 20 Sep 2011 22:12:08 +0000 Subject: [PATCH] Sanctuary healing - showing how many left to heal. Attachment text, showing what you are attaching. "Clear selection" changed to "Reset choice" (shorter) Come after list of cards for Wound, Discard, Heal and Exert removed. If there is only one target for archery fire, it is automatically chosen. --- .../cards/actions/AttachPermanentAction.java | 2 +- .../cards/effects/ExertCharacterEffect.java | 2 +- .../lotro/cards/set1/elven/Card1_058.java | 15 ++++----- .../lotro/cards/set1/gandalf/Card1_077.java | 3 +- .../lotro/cards/set1/isengard/Card1_134.java | 4 +-- .../lotro/cards/set1/isengard/Card1_137.java | 3 +- .../lotro/cards/set1/sauron/Card1_239.java | 3 +- .../lotro/cards/set1/shire/Card1_318.java | 3 +- .../lotro/cards/set1/site/Card1_332.java | 12 +++---- .../lotro/cards/set1/site/Card1_344.java | 6 ++-- .../lotro/cards/set1/site/Card1_346.java | 6 ++-- .../effects/DiscardCardsFromPlayEffect.java | 2 +- .../logic/effects/HealCharacterEffect.java | 2 +- .../logic/effects/WoundCharacterEffect.java | 2 +- ...PlayerAssignsArcheryDamageGameProcess.java | 33 ++++++++++++------- ...PlayerAssignsArcheryDamageGameProcess.java | 33 ++++++++++++------- .../logic/timing/rules/SanctuaryRule.java | 2 +- .../src/main/webapp/js/gameUi.js | 4 +-- 18 files changed, 71 insertions(+), 66 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/AttachPermanentAction.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/AttachPermanentAction.java index 61cd6abe3..06f132575 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/AttachPermanentAction.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/AttachPermanentAction.java @@ -46,7 +46,7 @@ public class AttachPermanentAction implements CostToEffectAction { _removeCardEffect = new RemoveCardFromZoneEffect(card); _chooseTargetEffect = - new ChooseActiveCardEffect(card.getOwner(), "Choose target to attach to", filter) { + new ChooseActiveCardEffect(card.getOwner(), "Attach " + card.getBlueprint().getName() + ". Choose target to attach to", filter) { @Override protected void cardSelected(PhysicalCard target) { _putCardIntoPlayEffect = new AttachCardEffect(_source, target); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharacterEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharacterEffect.java index f717a33e2..7ecf20dc9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharacterEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/ExertCharacterEffect.java @@ -56,7 +56,7 @@ public class ExertCharacterEffect extends AbstractEffect { if (sb.length() == 0) return "none"; else - return sb.substring(0, sb.length() - 1); + return sb.substring(0, sb.length() - 2); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_058.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_058.java index 6ef2d1461..c44a2a411 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_058.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_058.java @@ -2,14 +2,15 @@ package com.gempukku.lotro.cards.set1.elven; import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.actions.PlayEventAction; -import com.gempukku.lotro.cards.effects.ChooseAndExertCharacterEffect; import com.gempukku.lotro.cards.effects.ExertCharacterEffect; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.DiscardCardFromPlayEffect; +import com.gempukku.lotro.logic.effects.ChooseActiveCardsEffect; + +import java.util.List; /** * Set: The Fellowship of the Ring @@ -39,19 +40,17 @@ public class Card1_058 extends AbstractEvent { public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, final PhysicalCard self, int twilightModifier) { final PlayEventAction action = new PlayEventAction(self); action.addCost( - new ChooseActiveCardEffect(playerId, "Exert first Elf", Filters.race(Race.ELF)) { + new ChooseActiveCardsEffect(playerId, "Choose elves to exert", 2, 2, Filters.race(Race.ELF), Filters.canExert()) { @Override - protected void cardSelected(final PhysicalCard firstElf) { - action.addCost(new ExertCharacterEffect(playerId, firstElf)); - action.addCost( - new ChooseAndExertCharacterEffect(action, playerId, "Exert second Elf", true, Filters.race(Race.ELF), Filters.not(Filters.sameCard(firstElf)))); + protected void cardsSelected(List cards) { + action.addCost(new ExertCharacterEffect(playerId, Filters.in(cards))); } }); action.addEffect( new ChooseActiveCardEffect(playerId, "Choose condition", Filters.type(CardType.CONDITION)) { @Override protected void cardSelected(PhysicalCard condition) { - action.addEffect(new DiscardCardFromPlayEffect(self, condition)); + } }); return action; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_077.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_077.java index 996c6f672..e4419a853 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_077.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gandalf/Card1_077.java @@ -35,8 +35,7 @@ public class Card1_077 extends AbstractEvent { new ChooseActiveCardsEffect(playerId, "Choose companions", 0, Integer.MAX_VALUE, Filters.type(CardType.COMPANION), Filters.canExert()) { @Override protected void cardsSelected(List cards) { - for (PhysicalCard card : cards) - action.addCost(new ExertCharacterEffect(playerId, card)); + action.addCost(new ExertCharacterEffect(playerId, Filters.in(cards))); action.addEffect(new RemoveTwilightEffect(cards.size())); } }); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_134.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_134.java index 63e1a8321..38a6c54c5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_134.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_134.java @@ -57,9 +57,7 @@ public class Card1_134 extends AbstractAttachable { && game.getGameState().getCurrentSite() == self.getAttachedTo()) { RequiredTriggerAction action = new RequiredTriggerAction(self, null, "Exert each Hobbit who moves from this site"); - List hobbits = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.COMPANION), Filters.race(Race.HOBBIT)); - for (PhysicalCard hobbit : hobbits) - action.addEffect(new ExertCharacterEffect(hobbit.getOwner(), hobbit)); + action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), Filters.and(Filters.type(CardType.COMPANION), Filters.race(Race.HOBBIT)))); return Collections.singletonList(action); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_137.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_137.java index 96603a08e..f9d054f40 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_137.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_137.java @@ -58,8 +58,7 @@ public class Card1_137 extends AbstractEvent { @Override protected void cardsSelected(List cards) { - for (PhysicalCard card : cards) - action.addEffect(new ExertCharacterEffect(playerId, card)); + action.addEffect(new ExertCharacterEffect(playerId, Filters.in(cards))); } }); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_239.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_239.java index 3ba5ea63a..2b9f8f9c5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_239.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_239.java @@ -44,8 +44,7 @@ public class Card1_239 extends AbstractEvent { new ChooseActiveCardsEffect(game.getGameState().getCurrentPlayerId(), "Choose companions to exert", exertCount, exertCount, Filters.type(CardType.COMPANION), Filters.canExert()) { @Override protected void cardsSelected(List companions) { - for (PhysicalCard companion : companions) - action.addEffect(new ExertCharacterEffect(playerId, companion)); + action.addEffect(new ExertCharacterEffect(playerId, Filters.in(companions))); } }); } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_318.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_318.java index fdeb09bfb..19d29f221 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_318.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_318.java @@ -41,8 +41,7 @@ public class Card1_318 extends AbstractPermanent { new ChooseActiveCardsEffect(playerId, "Choose Hobbits", 2, 2, Filters.race(Race.HOBBIT), Filters.canExert()) { @Override protected void cardsSelected(List cards) { - action.addCost(new ExertCharacterEffect(playerId, cards.get(0))); - action.addCost(new ExertCharacterEffect(playerId, cards.get(1))); + action.addCost(new ExertCharacterEffect(playerId, Filters.in(cards))); } }); action.addCost(new DiscardCardFromPlayEffect(self, self)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_332.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_332.java index b47055837..c4dc54173 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_332.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_332.java @@ -11,7 +11,7 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.timing.EffectResult; -import java.util.LinkedList; +import java.util.Collections; import java.util.List; /** @@ -31,14 +31,12 @@ public class Card1_332 extends AbstractSite { public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_TO && game.getGameState().getCurrentSite() == self) { - List actions = new LinkedList(); - List hobbits = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.race(Race.HOBBIT), Filters.type(CardType.COMPANION)); - for (PhysicalCard hobbit : hobbits) { + + if (Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.race(Race.HOBBIT), Filters.type(CardType.COMPANION))) { RequiredTriggerAction action = new RequiredTriggerAction(self, null, "Each Hobbit must exert"); - action.addEffect(new ExertCharacterEffect(hobbit.getOwner(), hobbit)); - actions.add(action); + action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), Filters.and(Filters.race(Race.HOBBIT), Filters.type(CardType.COMPANION)))); + return Collections.singletonList(action); } - return actions; } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_344.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_344.java index baede5289..d7dfa19a9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_344.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_344.java @@ -47,8 +47,7 @@ public class Card1_344 extends AbstractSite { new ChooseActiveCardsEffect(fpPlayerId, "Choose two companions to exert", 2, 2, Filters.not(Filters.name("Gimli")), Filters.type(CardType.COMPANION), Filters.canExert()) { @Override protected void cardsSelected(List cards) { - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(0))); - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(1))); + action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), Filters.in(cards))); } }); action.addEffect( @@ -67,8 +66,7 @@ public class Card1_344 extends AbstractSite { new ChooseActiveCardsEffect(fpPlayerId, "Choose two companions to exert", 2, 2, Filters.not(Filters.name("Gimli")), Filters.type(CardType.COMPANION), Filters.canExert()) { @Override protected void cardsSelected(List cards) { - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(0))); - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(1))); + action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), Filters.in(cards))); } }); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_346.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_346.java index deadd7a30..6fbab2acd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_346.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_346.java @@ -52,8 +52,7 @@ public class Card1_346 extends AbstractSite { @Override protected void cardsSelected(List cards) { - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(0))); - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(1))); + action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), Filters.in(cards))); } }); action.addEffect( @@ -72,8 +71,7 @@ public class Card1_346 extends AbstractSite { new ChooseActiveCardsEffect(fpPlayerId, "Choose two companions to exert", 2, 2, Filters.not(Filters.name("Frodo")), Filters.type(CardType.COMPANION), Filters.canExert()) { @Override protected void cardsSelected(List cards) { - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(0))); - action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), cards.get(1))); + action.addEffect(new ExertCharacterEffect(game.getGameState().getCurrentPlayerId(), Filters.in(cards))); } }); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java index ed9ec45fc..1bc04364e 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/DiscardCardsFromPlayEffect.java @@ -50,7 +50,7 @@ public class DiscardCardsFromPlayEffect extends AbstractEffect { if (sb.length() == 0) return "none"; else - return sb.substring(0, sb.length() - 1); + return sb.substring(0, sb.length() - 2); } @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java index af470b7b2..21feebe67 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/HealCharacterEffect.java @@ -62,7 +62,7 @@ public class HealCharacterEffect extends AbstractEffect { if (sb.length() == 0) return "none"; else - return sb.substring(0, sb.length() - 1); + return sb.substring(0, sb.length() - 2); } @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java index 4e9b76724..7f026cd34 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/WoundCharacterEffect.java @@ -57,7 +57,7 @@ public class WoundCharacterEffect extends AbstractEffect { if (sb.length() == 0) return "none"; else - return sb.substring(0, sb.length() - 1); + return sb.substring(0, sb.length() - 2); } @Override diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/FellowshipPlayerAssignsArcheryDamageGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/FellowshipPlayerAssignsArcheryDamageGameProcess.java index eb9cc36b2..17f5c0099 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/FellowshipPlayerAssignsArcheryDamageGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/FellowshipPlayerAssignsArcheryDamageGameProcess.java @@ -41,18 +41,27 @@ public class FellowshipPlayerAssignsArcheryDamageGameProcess implements GameProc } })); - _game.getUserFeedback().sendAwaitingDecision(gameState.getCurrentPlayerId(), - new CardsSelectionDecision(1, "Choose companion or ally at home to assign archery wound to - remaining wounds: " + _woundsToAssign, possibleWoundTargets, 1, 1) { - @Override - public void decisionMade(String result) throws DecisionResultInvalidException { - PhysicalCard selectedCard = getSelectedCardsByResponse(result).get(0); - _game.getActionsEnvironment().addActionToStack(new WoundAction(gameState.getCurrentPlayerId(), selectedCard, 1)); - if (_woundsToAssign > 1) - _nextProcess = new FellowshipPlayerAssignsArcheryDamageGameProcess(_game, _woundsToAssign - 1, _followingGameProcess); - else - _nextProcess = _followingGameProcess; - } - }); + if (possibleWoundTargets.size() == 1) { + PhysicalCard selectedCard = possibleWoundTargets.get(0); + _game.getActionsEnvironment().addActionToStack(new WoundAction(gameState.getCurrentPlayerId(), selectedCard, 1)); + if (_woundsToAssign > 1) + _nextProcess = new FellowshipPlayerAssignsArcheryDamageGameProcess(_game, _woundsToAssign - 1, _followingGameProcess); + else + _nextProcess = _followingGameProcess; + } else { + _game.getUserFeedback().sendAwaitingDecision(gameState.getCurrentPlayerId(), + new CardsSelectionDecision(1, "Choose companion or ally at home to assign archery wound to - remaining wounds: " + _woundsToAssign, possibleWoundTargets, 1, 1) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + PhysicalCard selectedCard = getSelectedCardsByResponse(result).get(0); + _game.getActionsEnvironment().addActionToStack(new WoundAction(gameState.getCurrentPlayerId(), selectedCard, 1)); + if (_woundsToAssign > 1) + _nextProcess = new FellowshipPlayerAssignsArcheryDamageGameProcess(_game, _woundsToAssign - 1, _followingGameProcess); + else + _nextProcess = _followingGameProcess; + } + }); + } } else { _nextProcess = _followingGameProcess; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ShadowPlayerAssignsArcheryDamageGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ShadowPlayerAssignsArcheryDamageGameProcess.java index 8ded2fede..642dd3ec9 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ShadowPlayerAssignsArcheryDamageGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/archery/ShadowPlayerAssignsArcheryDamageGameProcess.java @@ -35,18 +35,27 @@ public class ShadowPlayerAssignsArcheryDamageGameProcess implements GameProcess Filters.type(CardType.MINION), Filters.owner(_playerId)); if (possibleWoundTargets.size() > 0) { - _game.getUserFeedback().sendAwaitingDecision(_playerId, - new CardsSelectionDecision(1, "Choose minion to assign archery wound to - remaining wounds: " + _woundsToAssign, possibleWoundTargets, 1, 1) { - @Override - public void decisionMade(String result) throws DecisionResultInvalidException { - PhysicalCard selectedCard = getSelectedCardsByResponse(result).get(0); - _game.getActionsEnvironment().addActionToStack(new WoundAction(_playerId, selectedCard, 1)); - if (_woundsToAssign > 1) - _nextProcess = new ShadowPlayerAssignsArcheryDamageGameProcess(_game, _playerId, _woundsToAssign - 1, _followingGameProcess); - else - _nextProcess = _followingGameProcess; - } - }); + if (possibleWoundTargets.size() == 1) { + PhysicalCard selectedCard = possibleWoundTargets.get(0); + _game.getActionsEnvironment().addActionToStack(new WoundAction(_playerId, selectedCard, 1)); + if (_woundsToAssign > 1) + _nextProcess = new ShadowPlayerAssignsArcheryDamageGameProcess(_game, _playerId, _woundsToAssign - 1, _followingGameProcess); + else + _nextProcess = _followingGameProcess; + } else { + _game.getUserFeedback().sendAwaitingDecision(_playerId, + new CardsSelectionDecision(1, "Choose minion to assign archery wound to - remaining wounds: " + _woundsToAssign, possibleWoundTargets, 1, 1) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + PhysicalCard selectedCard = getSelectedCardsByResponse(result).get(0); + _game.getActionsEnvironment().addActionToStack(new WoundAction(_playerId, selectedCard, 1)); + if (_woundsToAssign > 1) + _nextProcess = new ShadowPlayerAssignsArcheryDamageGameProcess(_game, _playerId, _woundsToAssign - 1, _followingGameProcess); + else + _nextProcess = _followingGameProcess; + } + }); + } } else { _nextProcess = _followingGameProcess; } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/SanctuaryRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/SanctuaryRule.java index cdb4c7712..dfce98d51 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/SanctuaryRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/SanctuaryRule.java @@ -54,7 +54,7 @@ public class SanctuaryRule { @Override public void doPlayEffect(LotroGame game) { _action.addEffect( - new ChooseActiveCardsEffect(_fpPlayerId, "Sanctuary healing - Choose companion to heal", 0, 1, Filters.type(CardType.COMPANION)) { + new ChooseActiveCardsEffect(_fpPlayerId, "Sanctuary healing - Choose companion to heal - remaining heals: " + (6 - _counter), 0, 1, Filters.type(CardType.COMPANION)) { @Override protected void cardsSelected(List cards) { if (cards.size() > 0) { diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js index 4df32d8a2..baaced061 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/gameUi.js @@ -1115,7 +1115,7 @@ var GempLotrGameUI = Class.extend({ }); } if (selectedCardIds.length > 0) { - that.alertButtons.append(""); + that.alertButtons.append(""); that.alertButtons.append(""); $("#Done").button().click(function() { finishChoice(); @@ -1294,7 +1294,7 @@ var GempLotrGameUI = Class.extend({ var processButtons = function() { that.alertButtons.html(""); if (selectedCardIds.length > 0) { - that.alertButtons.append(""); + that.alertButtons.append(""); $("#ClearSelection").button().click(function() { resetChoice(); });