From 2c14d118c63eb42cd447df18ffe99850b60fd1b4 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 19:47:21 -0400 Subject: [PATCH 1/8] Fix to 12R9 "Loud and Strong" No longer usable while in hand --- .../com/gempukku/lotro/cards/set12/dwarven/Card12_009.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/dwarven/Card12_009.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/dwarven/Card12_009.java index 8f1954a94..88c3f9f8d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/dwarven/Card12_009.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/dwarven/Card12_009.java @@ -32,7 +32,8 @@ public class Card12_009 extends AbstractPermanent { @Override protected List getExtraPhaseActions(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canDiscardFromHand(game, playerId, 1, Culture.DWARVEN) + if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) + && PlayConditions.canDiscardFromHand(game, playerId, 1, Culture.DWARVEN) && PlayConditions.canSpot(game, CardType.MINION, Filters.inSkirmishAgainst(Race.DWARF))) { final ActivateCardAction action = new ActivateCardAction(self); action.appendCost( From cf83cce1ba9d5e80709413ba44abf4c04e2681a4 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 19:52:38 -0400 Subject: [PATCH 2/8] Fix to 18C91 "Orkish Sneak" Assignment ability now works as intended --- .../lotro/cards/set18/orc/Card18_091.java | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/orc/Card18_091.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/orc/Card18_091.java index 4adbe9d22..53c104d14 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/orc/Card18_091.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/orc/Card18_091.java @@ -16,7 +16,9 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.actions.ActivateCardAction; +import com.gempukku.lotro.logic.decisions.YesNoDecision; import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; +import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; import com.gempukku.lotro.logic.effects.StackActionEffect; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Effect; @@ -50,27 +52,32 @@ public class Card18_091 extends AbstractMinion { action.appendEffect( new ChooseAndAssignCharacterToMinionEffect(action, playerId, self, Filters.ringBearer, Filters.not(Culture.SHIRE))); - String fpPlayer = game.getGameState().getCurrentPlayerId(); - List possibleCosts = new LinkedList(); - possibleCosts.add( - new AddBurdenEffect(fpPlayer, self, 1)); - possibleCosts.add( - new ChooseAndExertCharactersEffect(action, fpPlayer, 1, 1, 2, Filters.ringBearer)); - SubCostToEffectAction subAction = new SubCostToEffectAction(action); - action.appendCost( - new ChoiceEffect(subAction, fpPlayer, possibleCosts)); + final String fpPlayer = game.getGameState().getCurrentPlayerId(); + action.appendEffect( - new DiscardCardsFromPlayEffect(playerId, self, self)); - action.appendEffect( - new OptionalEffect(action, game.getGameState().getCurrentPlayerId(), - new StackActionEffect(subAction) { - @Override - public String getText(LotroGame game) { - return "Add burden or exert the Ring-bearer twice to discard " + GameUtils.getFullName(self); - } - })); + new PlayoutDecisionEffect(fpPlayer, + new YesNoDecision("Do you want to add burden or exert the Ring-bearer twice to discard " + GameUtils.getFullName(self) + "?") { + @Override + protected void yes() { + List possibleCosts = new LinkedList(); + possibleCosts.add( + new AddBurdenEffect(fpPlayer, self, 1)); + possibleCosts.add( + new ChooseAndExertCharactersEffect(action, fpPlayer, 1, 1, 2, Filters.ringBearer) { + @Override + public String getText(LotroGame game) { + return "Exert the Ring-bearer twice"; + } + }); + SubCostToEffectAction subAction = new SubCostToEffectAction(action); + action.appendCost( + new ChoiceEffect(subAction, fpPlayer, possibleCosts)); + action.appendEffect( + new DiscardCardsFromPlayEffect(playerId, self, self)); + } + })); return Collections.singletonList(action); - } - return null; + }; + return null; } } From e65ddc6eb2e18ab3fc2a3887d6512cf555517a9f Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 20:27:15 -0400 Subject: [PATCH 3/8] Check allies have same home site to allow transfers Courtesy of Tbiesty! --- .../com/gempukku/lotro/filters/Filters.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java index 72314325b..a7db5ca36 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java @@ -689,6 +689,27 @@ public class Filters { } }); + public static Filter allyWithSameHome(final PhysicalCard card) { + return Filters.and( + CardType.ALLY, + new Filter() { + @Override + public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { + LotroCardBlueprint blueprint = card.getBlueprint(); + if (blueprint.getCardType() == CardType.ALLY) { + Block homeBlock = blueprint.getAllyHomeSiteBlock(); + int[] homeSites = blueprint.getAllyHomeSiteNumbers(); + for (int homeSite : homeSites) { + if (physicalCard.getBlueprint().isAllyAtHome(homeSite, homeBlock)) { + return true; + } + } + } + return false; + } + }); + } + public static final Filter currentSite = new Filter() { @Override public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { From aac35ec60614f8b843c53e8ddd0db9aa508f14a6 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 20:27:17 -0400 Subject: [PATCH 4/8] Check allies have same home site to allow transfers Courtesy of Tbiesty! --- .../lotro/cards/AbstractLotroCardBlueprint.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java index 3d19d70c8..255b9d9e3 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractLotroCardBlueprint.java @@ -148,6 +148,16 @@ public abstract class AbstractLotroCardBlueprint implements LotroCardBlueprint { throw new UnsupportedOperationException("This method should not be called on this card"); } + @Override + public int[] getAllyHomeSiteNumbers() { + throw new UnsupportedOperationException("This method should not be called on this card"); + } + + @Override + public Block getAllyHomeSiteBlock() { + throw new UnsupportedOperationException("This method should not be called on this card"); + } + @Override public boolean isAllyAtHome(int siteNumber, Block siteBlock) { throw new UnsupportedOperationException("This method should not be called on this card"); From 1c447dc2120a3f6df52478ce0d0b2a50e963cb48 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 20:27:18 -0400 Subject: [PATCH 5/8] Check allies have same home site to allow transfers Courtesy of Tbiesty! --- .../lotro/cards/AbstractAttachableFPPossession.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java index a17cb527d..a1e7ad095 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAttachableFPPossession.java @@ -44,7 +44,8 @@ public abstract class AbstractAttachableFPPossession extends AbstractAttachable Filter validTransferFilter; - LotroCardBlueprint attachedTo = self.getAttachedTo().getBlueprint(); + PhysicalCard attachedToCard = self.getAttachedTo(); + LotroCardBlueprint attachedTo = attachedToCard.getBlueprint(); if (attachedTo.getCardType() == CardType.COMPANION) { validTransferFilter = Filters.and(validTargetFilter, Filters.or( @@ -54,11 +55,10 @@ public abstract class AbstractAttachableFPPossession extends AbstractAttachable validTransferFilter = Filters.and(validTargetFilter, Filters.or( CardType.COMPANION, - Filters.allyAtHome)); + Filters.allyWithSameHome(attachedToCard))); } else { validTransferFilter = Filters.and(validTargetFilter, - CardType.ALLY, Filters.allyAtHome - ); + Filters.allyWithSameHome(attachedToCard)); } validTransferFilter = Filters.and(validTransferFilter, From ce3e7be41d97760bcf07f6a21b7c004c7a1cdf62 Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 20:27:19 -0400 Subject: [PATCH 6/8] Check allies have same home site to allow transfers Courtesy of Tbiesty! --- .../java/com/gempukku/lotro/cards/AbstractAlly.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java index f96103ef3..3838f2e8a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/AbstractAlly.java @@ -71,6 +71,16 @@ public class AbstractAlly extends AbstractPermanent { return null; } + @Override + public int[] getAllyHomeSiteNumbers() { + return _siteNumbers; + } + + @Override + public Block getAllyHomeSiteBlock() { + return _siteBlock; + } + @Override public final boolean isAllyAtHome(int siteNumber, Block block) { if (block != _siteBlock) From 58a0314a55c4171cb437ddfb8b328ac98879d53b Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 20:27:46 -0400 Subject: [PATCH 7/8] Check allies have same home site to allow transfers Courtesy of Tbiesty! --- .../main/java/com/gempukku/lotro/game/LotroCardBlueprint.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java index 2a335654b..7db40485a 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/LotroCardBlueprint.java @@ -46,6 +46,10 @@ public interface LotroCardBlueprint { public int getResistance(); + public int[] getAllyHomeSiteNumbers(); + + public Block getAllyHomeSiteBlock(); + public boolean isAllyAtHome(int siteNumber, Block siteBlock); public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self); From 0a302ddb7eacf0cd1221a773108558aa0317507e Mon Sep 17 00:00:00 2001 From: PhallenCassidy Date: Sat, 2 Jun 2018 20:42:21 -0400 Subject: [PATCH 8/8] Update changeLog.html --- .../gemp-lotr-async/src/main/web/includes/changeLog.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html index 5aebf9516..259bc5b2e 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/includes/changeLog.html @@ -1,4 +1,13 @@
+Most recent update
+- Added Draft for Fellowship block, The Two Towers block, and The Hobbit
+- Added prize support for Draft games
+- Users can now select what kind of foiling they want to see under the "Settings" tab in-game
+- The Free Peoples will now properly lose initiative when playing events
+- Allies with different home sites can no longer transfer possessions to one another
+- "Loud and Strong" can no longer be used while in hand
+- "Orkish Sneak" assignment ability now works as intended
+
 18 Apr. 2018
 - Draft play is now available!
 - The Deckbuilder now filters out sites which are not legal for the selected format.