Add exmine mode
[naja.git] / naja / gameboard.py
index f3e6f58567ecd962db71cb9c356c3b34ec32a561..dd0861ea0b4005cafa10e1282bee877208c7546e 100644 (file)
@@ -2,7 +2,7 @@ from random import choice
 
 from naja.constants import(
     BITS, DIRECTION_BITS, CONDITION_BITS, PLAYER_DEFAULTS,
-    MOVE, ACT)
+    MOVE, ACT, EXAMINE)
 from naja.player import Player
 from naja import actions
 
@@ -104,12 +104,13 @@ class GameBoard(object):
         location = LocationCard.new_location(choice(self.locations).copy())
         self.board_locations[position] = location
 
-    def change_mode(self):
+    def change_mode(self, new_mode):
         """Advance to the next mode"""
-        if self.player_mode == MOVE:
-            self.player_mode = ACT
-        elif self.player_mode == ACT:
-            self.player_mode = MOVE
+        if new_mode == self.player_mode:
+            raise RuntimeError("Inconsistent state. Setting mode %s to itself"
+                               % self.player_mode)
+        elif new_mode in (MOVE, ACT, EXAMINE):
+            self.player_mode = new_mode
         else:
             raise RuntimeError("Illegal player mode %s" % self.player_mode)