|
From: Erik V. <ev...@us...> - 2011-11-23 16:21:39
|
rails/game/specific/_1835/PrussianFormationRound.java | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
New commits:
commit 7f688a6ee82a52d57e6909303f91103016a29b24
Author: Erik Vos <eri...@xs...>
Date: Wed Nov 23 17:20:57 2011 +0100
Fixed PR train discarding bugs.
PR did not discard excess trains after forced merge at first 5-train,
and would (probably) never discard more than one train, even if
having two or more excess trains.
diff --git a/rails/game/specific/_1835/PrussianFormationRound.java b/rails/game/specific/_1835/PrussianFormationRound.java
index aa9a3b0..d31cd9f 100644
--- a/rails/game/specific/_1835/PrussianFormationRound.java
+++ b/rails/game/specific/_1835/PrussianFormationRound.java
@@ -92,7 +92,13 @@ public class PrussianFormationRound extends StockRound {
}
}
executeExchange (foldables, false, true);
- finishRound();
+
+ // Check if the PR must discard any trains
+ if (prussian.getNumberOfTrains() > prussian.getCurrentTrainLimit()) {
+ step = Step.DISCARD_TRAINS;
+ } else {
+ finishRound();
+ }
} else {
findNextMergingPlayer(false);
}
@@ -118,6 +124,7 @@ public class PrussianFormationRound extends StockRound {
} else if (step == Step.DISCARD_TRAINS) {
if (prussian.getNumberOfTrains() > prussian.getCurrentTrainLimit()) {
+ log.debug("+++ PR has "+prussian.getNumberOfTrains()+", limit is "+prussian.getCurrentTrainLimit());
possibleActions.add(new DiscardTrain(prussian,
prussian.getPortfolio().getUniqueTrains(), true));
}
@@ -425,8 +432,13 @@ public class PrussianFormationRound extends StockRound {
company.getName(),
train.getName() ));
- // This always finished this type of round
- finishRound();
+ // We still might have another excess train
+ // TODO: would be better to have DiscardTrain discard multiple trains
+ if (prussian.getNumberOfTrains() > prussian.getCurrentTrainLimit()) {
+ step = Step.DISCARD_TRAINS;
+ } else {
+ finishRound();
+ }
return true;
}
|