summaryrefslogtreecommitdiff
path: root/sw-engine
diff options
context:
space:
mode:
authorJoffrey Bion <joffrey.bion@booking.com>2020-09-18 01:27:29 +0200
committerJoffrey Bion <joffrey.bion@booking.com>2020-09-18 01:27:29 +0200
commitf21553067a9b584ad83edfc4c1cd3cbdc30f02ab (patch)
tree68ab4475654d3a1d66a23c1d8f8c12d90681856b /sw-engine
parentUpgrade to Krossbow 0.41.0 (diff)
downloadseven-wonders-f21553067a9b584ad83edfc4c1cd3cbdc30f02ab.tar.gz
seven-wonders-f21553067a9b584ad83edfc4c1cd3cbdc30f02ab.tar.bz2
seven-wonders-f21553067a9b584ad83edfc4c1cd3cbdc30f02ab.zip
Fix double military resolution in last age
When a player had the copy guild move at the end of the game, the military conflicts were resolved twice. This fix prevents it. Resolves: https://github.com/joffrey-bion/seven-wonders/issues/41
Diffstat (limited to 'sw-engine')
-rw-r--r--sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt9
1 files changed, 8 insertions, 1 deletions
diff --git a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt
index 60dc505b..1d4fab65 100644
--- a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt
+++ b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt
@@ -34,12 +34,14 @@ class Game internal constructor(
private val preparedMoves: MutableMap<Int, Move> = mutableMapOf()
private var currentTurnInfo: List<PlayerTurnInfo> = emptyList()
private var hands: Hands = Hands(emptyList())
+ private var militaryConflictsResolved = false
init {
startNewAge()
}
private fun startNewAge() {
+ militaryConflictsResolved = false
table.increaseCurrentAge()
hands = decks.deal(table.currentAge, players.size)
startNewTurn()
@@ -196,7 +198,12 @@ class Game internal constructor(
private fun endOfAgeReached(): Boolean = hands.isEmpty
- private fun executeEndOfAgeEvents() = table.resolveMilitaryConflicts()
+ private fun executeEndOfAgeEvents() {
+ if (!militaryConflictsResolved) {
+ table.resolveMilitaryConflicts()
+ militaryConflictsResolved = true
+ }
+ }
fun endOfGameReached(): Boolean = endOfAgeReached() && table.currentAge == LAST_AGE
bgstack15