- FP player wins now in Second Edition, when Shadow player reconciles during regroup on site 9.
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
- "Gloin, Gimli's Father" can now pump itself (per card text).
|
||||
- "Galadriel's Grove" should now allow to play Galadriel from deck.
|
||||
- "Troll of Morannon" has lost its prowess (Damage +1) (per card text).
|
||||
- FP player wins now in Second Edition, when Shadow player reconciles during regroup on site 9.
|
||||
|
||||
<b>12 Mar. 2013</b>
|
||||
- "Flaming Brand" from set 20 should now correctly apply strength and damage bonus if bearer is skirmishing a Nazgul.
|
||||
|
||||
@@ -14,7 +14,7 @@ public interface LotroFormat {
|
||||
|
||||
public boolean hasMulliganRule();
|
||||
|
||||
public boolean winAtEndOfRegroup();
|
||||
public boolean winWhenShadowReconciles();
|
||||
|
||||
public boolean winOnControlling5Sites();
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.gempukku.lotro.logic.timing.processes.turn;
|
||||
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
|
||||
import com.gempukku.lotro.logic.timing.processes.GameProcess;
|
||||
import com.gempukku.lotro.logic.timing.processes.turn.general.PlayersPlayPhaseActionsInOrderGameProcess;
|
||||
import com.gempukku.lotro.logic.timing.processes.turn.general.StartOfPhaseGameProcess;
|
||||
@@ -16,9 +15,8 @@ public class RegroupGameProcess implements GameProcess {
|
||||
public void process(LotroGame game) {
|
||||
_followingGameProcess = new StartOfPhaseGameProcess(Phase.REGROUP,
|
||||
new PlayersPlayPhaseActionsInOrderGameProcess(game.getGameState().getPlayerOrder().getCounterClockwisePlayOrder(game.getGameState().getCurrentPlayerId(), true), 0,
|
||||
new CheckForSpecialWinConditionGameProcess(
|
||||
new ShadowPlayersReconcileGameProcess(
|
||||
new FellowshipPlayerChoosesToMoveOrStayGameProcess()))));
|
||||
new FellowshipPlayerChoosesToMoveOrStayGameProcess())));
|
||||
|
||||
}
|
||||
|
||||
@@ -26,25 +24,4 @@ public class RegroupGameProcess implements GameProcess {
|
||||
public GameProcess getNextProcess() {
|
||||
return _followingGameProcess;
|
||||
}
|
||||
|
||||
private class CheckForSpecialWinConditionGameProcess implements GameProcess {
|
||||
private GameProcess _followingProcess;
|
||||
|
||||
private CheckForSpecialWinConditionGameProcess(GameProcess followingProcess) {
|
||||
_followingProcess = followingProcess;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(LotroGame game) {
|
||||
if (game.getGameState().getCurrentSiteNumber() == 9
|
||||
&& game.getModifiersQuerying().hasFlagActive(game.getGameState(), ModifierFlag.WIN_CHECK_AFTER_SHADOW_RECONCILE)) {
|
||||
game.playerWon(game.getGameState().getCurrentPlayerId(), "Surviving to Shadow Reconcile on site 9");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameProcess getNextProcess() {
|
||||
return _followingProcess;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.ReconcileResult;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,20 +26,20 @@ public class WinConditionRule {
|
||||
new AbstractActionProxy() {
|
||||
@Override
|
||||
public List<? extends RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResults) {
|
||||
if (game.getFormat().winAtEndOfRegroup()
|
||||
&& effectResults.getType() == EffectResult.Type.END_OF_PHASE
|
||||
&& game.getGameState().getCurrentPhase() == Phase.REGROUP
|
||||
&& game.getGameState().getCurrentSiteNumber() == 9)
|
||||
game.playerWon(game.getGameState().getCurrentPlayerId(), "Surviving to end of Regroup phase on site 9");
|
||||
else if (effectResults.getType() == EffectResult.Type.START_OF_PHASE
|
||||
&& game.getGameState().getCurrentPhase() == Phase.REGROUP
|
||||
&& game.getGameState().getCurrentSiteNumber() == 9
|
||||
&& !game.getModifiersQuerying().hasFlagActive(game.getGameState(), ModifierFlag.WIN_CHECK_AFTER_SHADOW_RECONCILE))
|
||||
game.playerWon(game.getGameState().getCurrentPlayerId(), "Surviving to Regroup phase on site 9");
|
||||
else if (game.getFormat().winOnControlling5Sites()
|
||||
if (game.getGameState().getCurrentPhase() == Phase.REGROUP
|
||||
&& game.getGameState().getCurrentSiteNumber() == 9) {
|
||||
if (isWinAtReconcile(game)) {
|
||||
if (effectResults.getType() == EffectResult.Type.RECONCILE
|
||||
&& !((ReconcileResult) effectResults).getPlayerId().equals(game.getGameState().getCurrentPlayerId())) {
|
||||
game.playerWon(game.getGameState().getCurrentPlayerId(), "Surviving till Shadow player reconciles on site 9");
|
||||
}
|
||||
} else if (effectResults.getType() == EffectResult.Type.START_OF_PHASE) {
|
||||
game.playerWon(game.getGameState().getCurrentPlayerId(), "Surviving to Regroup phase on site 9");
|
||||
}
|
||||
} else if (game.getFormat().winOnControlling5Sites()
|
||||
&& effectResults.getType() == EffectResult.Type.TAKE_CONTROL_OF_SITE) {
|
||||
for (String opponent : GameUtils.getOpponents(game, game.getGameState().getCurrentPlayerId())) {
|
||||
if (Filters.countActive(game.getGameState(), game.getModifiersQuerying(), CardType.SITE, Filters.siteControlled(opponent))>=5)
|
||||
if (Filters.countActive(game.getGameState(), game.getModifiersQuerying(), CardType.SITE, Filters.siteControlled(opponent)) >= 5)
|
||||
game.playerWon(opponent, "Controls 5 sites");
|
||||
}
|
||||
}
|
||||
@@ -46,4 +47,9 @@ public class WinConditionRule {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isWinAtReconcile(LotroGame game) {
|
||||
return (game.getModifiersQuerying().hasFlagActive(game.getGameState(), ModifierFlag.WIN_CHECK_AFTER_SHADOW_RECONCILE)
|
||||
|| game.getFormat().winWhenShadowReconciles());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ public class DefaultLotroFormat implements LotroFormat {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean winAtEndOfRegroup() {
|
||||
public boolean winWhenShadowReconciles() {
|
||||
return _winAtEndOfRegroup;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user