diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/SkirmishActionProcedureAction.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/SkirmishActionProcedureAction.java index 243ad1e8f..237b01e77 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/SkirmishActionProcedureAction.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/actions/SkirmishActionProcedureAction.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.logic.timing.actions; +import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.Skirmish; import com.gempukku.lotro.logic.PlayOrder; @@ -67,22 +68,30 @@ public class SkirmishActionProcedureAction extends SystemQueueAction { final List playableActions = game.getActionsEnvironment().getPhaseActions(playerId); - game.getUserFeedback().sendAwaitingDecision(playerId, - new CardActionSelectionDecision(game, 1, "Choose action to play or Pass", playableActions) { - @Override - public void decisionMade(String result) throws DecisionResultInvalidException { - Action action = getSelectedAction(result); - if (action != null) { - appendEffect( - new CheckIfSkirmishFinishedEffect(_playOrder, 0)); - game.getActionsEnvironment().addActionToStack(action); - } else { - if (_consecutivePasses + 1 < _playOrder.getPlayerCount()) + if (playableActions.size() == 0 && game.shouldAutoPass(playerId, Phase.SKIRMISH)) { + playerPassed(); + } else { + game.getUserFeedback().sendAwaitingDecision(playerId, + new CardActionSelectionDecision(game, 1, "Choose action to play or Pass", playableActions) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + Action action = getSelectedAction(result); + if (action != null) { appendEffect( - new PlayerPlaysNextActionEffect(_playOrder, _consecutivePasses + 1)); + new CheckIfSkirmishFinishedEffect(_playOrder, 0)); + game.getActionsEnvironment().addActionToStack(action); + } else { + playerPassed(); + } } - } - }); + }); + } + } + + private void playerPassed() { + if (_consecutivePasses + 1 < _playOrder.getPlayerCount()) + appendEffect( + new PlayerPlaysNextActionEffect(_playOrder, _consecutivePasses + 1)); } } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayerPlaysPhaseActionsUntilPassesGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayerPlaysPhaseActionsUntilPassesGameProcess.java index 66addd7fc..2f3f6b729 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayerPlaysPhaseActionsUntilPassesGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayerPlaysPhaseActionsUntilPassesGameProcess.java @@ -23,7 +23,7 @@ public class PlayerPlaysPhaseActionsUntilPassesGameProcess implements GameProces public void process(final LotroGame game) { final List playableActions = game.getActionsEnvironment().getPhaseActions(_playerId); - if (playableActions.size() == 0 & game.shouldAutoPass(_playerId, game.getGameState().getCurrentPhase())) { + if (playableActions.size() == 0 && game.shouldAutoPass(_playerId, game.getGameState().getCurrentPhase())) { playerPassed(); } else { game.getUserFeedback().sendAwaitingDecision(_playerId, diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayersPlayPhaseActionsInOrderGameProcess.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayersPlayPhaseActionsInOrderGameProcess.java index 91a2a5f0e..af589daa0 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayersPlayPhaseActionsInOrderGameProcess.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/processes/turn/general/PlayersPlayPhaseActionsInOrderGameProcess.java @@ -42,7 +42,7 @@ public class PlayersPlayPhaseActionsInOrderGameProcess implements GameProcess { } final List playableActions = game.getActionsEnvironment().getPhaseActions(playerId); - if (playableActions.size() == 0 & game.shouldAutoPass(playerId, game.getGameState().getCurrentPhase())) { + if (playableActions.size() == 0 && game.shouldAutoPass(playerId, game.getGameState().getCurrentPhase())) { playerPassed(); } else { game.getUserFeedback().sendAwaitingDecision(playerId, diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java index e728064dc..4afdb5270 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/GameResource.java @@ -36,14 +36,14 @@ public class GameResource extends AbstractResource { @Context private LotroServer _lotroServer; - private static Set _autoPassAll = new HashSet(); + private static Set _autoPassDefault = new HashSet(); static { - _autoPassAll.add(Phase.FELLOWSHIP); - _autoPassAll.add(Phase.MANEUVER); - _autoPassAll.add(Phase.ARCHERY); - _autoPassAll.add(Phase.ASSIGNMENT); - _autoPassAll.add(Phase.REGROUP); + _autoPassDefault.add(Phase.FELLOWSHIP); + _autoPassDefault.add(Phase.MANEUVER); + _autoPassDefault.add(Phase.ARCHERY); + _autoPassDefault.add(Phase.ASSIGNMENT); + _autoPassDefault.add(Phase.REGROUP); } @Path("/{gameId}") @@ -76,7 +76,7 @@ public class GameResource extends AbstractResource { private Set getAutoPassPhases(HttpServletRequest request) { for (Cookie cookie : request.getCookies()) { if (cookie.getName().equals("autoPassPhases")) { - final String[] phases = cookie.getValue().split(","); + final String[] phases = cookie.getValue().split("0"); Set result = new HashSet(); for (String phase : phases) result.add(Phase.valueOf(phase)); @@ -87,7 +87,7 @@ public class GameResource extends AbstractResource { if (cookie.getName().equals("autoPass") && cookie.getValue().equals("false")) return Collections.emptySet(); } - return _autoPassAll; + return _autoPassDefault; } @Path("/{gameId}/cardInfo") diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html index dd46d4988..574b5e3da 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html @@ -1,6 +1,8 @@
 11 Jan. 2012
 - "Isengard Sword" now correctly gives -2 Strength to character in skirmish against its bearer.
+- Players now can setup auto-pass option per phase, by default game auto-passes on all phases except for Shadow
+and Skirmish.
 
 10 Jan. 2012
 - "Alcarin" should now correctly be usable only if his cost (assignment) can be payed.
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 8ee6f8df0..83503718a 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
@@ -388,19 +388,19 @@ var GempLotrGameUI = Class.extend({
         });
 
         $("#settingsBox").append("Phases when game auto-passes for you, if you have no phase actions to play
"); - $("#settingsBox").append("
"); - $("#settingsBox").append("
"); - $("#settingsBox").append("
"); - $("#settingsBox").append("
"); - $("#settingsBox").append("
"); - $("#settingsBox").append("
"); - $("#settingsBox").append("
"); + $("#settingsBox").append(" "); + $("#settingsBox").append(" "); + $("#settingsBox").append(" "); + $("#settingsBox").append(" "); + $("#settingsBox").append(" "); + $("#settingsBox").append(" "); + $("#settingsBox").append(""); var autoPassPhases = $.cookie("autoPassPhases"); if (autoPassPhases == null) - autoPassPhases = "FELLOWSHIP,MANEUVER,ARCHERY,ASSIGNMENT,REGROUP"; + autoPassPhases = "FELLOWSHIP0MANEUVER0ARCHERY0ASSIGNMENT0REGROUP"; - var passPhasesArr = autoPassPhases.split(","); + var passPhasesArr = autoPassPhases.split("0"); for (var i = 0; i < passPhasesArr.length; i++) { $("#autoPass" + passPhasesArr[i]).prop("checked", true); } @@ -408,23 +408,23 @@ var GempLotrGameUI = Class.extend({ $("#autoPassFELLOWSHIP,#autoPassSHADOW,#autoPassMANEUVER,#autoPassARCHERY,#autoPassASSIGNMENT,#autoPassSKIRMISH,#autoPassREGROUP").bind("change", function() { var newAutoPassPhases = ""; if ($("#autoPassFELLOWSHIP").prop("checked")) - newAutoPassPhases += ",FELLOWSHIP"; + newAutoPassPhases += "0FELLOWSHIP"; if ($("#autoPassSHADOW").prop("checked")) - newAutoPassPhases += ",SHADOW"; + newAutoPassPhases += "0SHADOW"; if ($("#autoPassMANEUVER").prop("checked")) - newAutoPassPhases += ",MANEUVER"; + newAutoPassPhases += "0MANEUVER"; if ($("#autoPassARCHERY").prop("checked")) - newAutoPassPhases += ",ARCHERY"; + newAutoPassPhases += "0ARCHERY"; if ($("#autoPassASSIGNMENT").prop("checked")) - newAutoPassPhases += ",ASSIGNMENT"; + newAutoPassPhases += "0ASSIGNMENT"; if ($("#autoPassSKIRMISH").prop("checked")) - newAutoPassPhases += ",SKIRMISH"; + newAutoPassPhases += "0SKIRMISH"; if ($("#autoPassREGROUP").prop("checked")) - newAutoPassPhases += ",REGROUP"; + newAutoPassPhases += "0REGROUP"; if (newAutoPassPhases.length > 0) newAutoPassPhases = newAutoPassPhases.substr(1); - $.cookie("autoAcceptPhases", newAutoPassPhases, { expires: 365 }); + $.cookie("autoPassPhases", newAutoPassPhases, { expires: 365 }); }); var playerListener = function(players) { @@ -636,21 +636,21 @@ var GempLotrGameUI = Class.extend({ initializeDialogs: function() { this.smallDialog = $("
") .dialog({ - autoOpen: false, - closeOnEscape: false, - resizable: false, - width: 400, - height: 200 - }); + autoOpen: false, + closeOnEscape: false, + resizable: false, + width: 400, + height: 200 + }); this.cardActionDialog = $("
") .dialog({ - autoOpen: false, - closeOnEscape: false, - resizable: true, - width: 600, - height: 300 - }); + autoOpen: false, + closeOnEscape: false, + resizable: true, + width: 600, + height: 300 + }); var that = this; @@ -665,11 +665,11 @@ var GempLotrGameUI = Class.extend({ this.infoDialog = $("
") .dialog({ - autoOpen: false, - closeOnEscape: true, - resizable: false, - title: "Card information" - }); + autoOpen: false, + closeOnEscape: true, + resizable: false, + title: "Card information" + }); var swipeOptions = { threshold: 20, @@ -1140,12 +1140,12 @@ var GempLotrGameUI = Class.extend({ if (!this.replayMode) { this.smallDialog.dialog("option", "buttons", - { - "OK": function() { - $(this).dialog("close"); - that.decisionFunction(id, $("#integerDecision").val()); - } - }); + { + "OK": function() { + $(this).dialog("close"); + that.decisionFunction(id, $("#integerDecision").val()); + } + }); } $("#integerDecision").SpinnerControl({ type: 'range', @@ -1183,12 +1183,12 @@ var GempLotrGameUI = Class.extend({ if (!this.replayMode) { this.smallDialog.dialog("option", "buttons", - { - "OK": function() { - that.smallDialog.dialog("close"); - that.decisionFunction(id, $("#multipleChoiceDecision").val()); - } - }); + { + "OK": function() { + that.smallDialog.dialog("close"); + that.decisionFunction(id, $("#multipleChoiceDecision").val()); + } + }); } } else { this.smallDialog.append("
"); @@ -1573,8 +1573,8 @@ var GempLotrGameUI = Class.extend({ $(div).find('LI.hover').removeClass('hover'); $(this).parent().addClass('hover'); }).mouseout(function() { - $(div).find('LI.hover').removeClass('hover'); - }); + $(div).find('LI.hover').removeClass('hover'); + }); var getRidOfContextMenu = function() { $(div).remove();