Add exmine mode
[naja.git] / naja / scenes / game.py
index 48625007fb34934711ce4cd497567987f8c383fe..c0f52a8be47b9eff08aa4568da6102ddf123207e 100644 (file)
@@ -4,15 +4,14 @@ Gameboard scene.
 
 import pygame.locals as pgl
 
-from .scene import Scene
-from .menu import MenuScene
-
+from naja.constants import KEYS
+from naja.events import SceneChangeEvent
+from naja.scenes.scene import Scene
 from naja.widgets.board import BoardWidget
 from naja.widgets.player_bits import PlayerBitsWidget
 from naja.widgets.game_bits import GameBitsWidget
 from naja.widgets.info_area import InfoAreaWidget
-
-from naja.events import SceneChangeEvent
+from naja.widgets.robot import RobotWidget
 
 
 class GameScene(Scene):
@@ -20,14 +19,17 @@ class GameScene(Scene):
     Gameboard scene.
     """
 
-    def __init__(self):
-        super(GameScene, self).__init__()
-        self.widgets.append(PlayerBitsWidget((0, 0)))
-        self.widgets.append(BoardWidget((0, 60)))
-        self.widgets.append(GameBitsWidget((0, 540)))
-        self.widgets.append(InfoAreaWidget((480, 0)))
-
-    def handle_event(self, ev):
-        if ev.type == pgl.KEYUP and ev.key in (pgl.K_q, pgl.K_ESCAPE):
-            SceneChangeEvent.post(scene=MenuScene())
+    def __init__(self, state):
+        super(GameScene, self).__init__(state)
+        self.add(PlayerBitsWidget((0, 0), state))
+        info = InfoAreaWidget((480, 0), state)
+        self.add(BoardWidget((0, 60), state, info))
+        self.add(GameBitsWidget((0, 540), state))
+        self.add(info)
+        self.add(RobotWidget(state))
+
+    def handle_scene_event(self, ev):
+        from naja.scenes.menu import MenuScene
+        if ev.type == pgl.KEYDOWN and ev.key in KEYS.QUIT:
+            SceneChangeEvent.post(MenuScene)
             return