Make chess puzzle level (Kasparov to F3) winnable.
[naja.git] / naja / scenes / lose.py
index 40600a7c21dff4d2012ade0e8e73a2b7fa29c762..be9b60309a145ccf7db53b38b63af99f3731b27d 100644 (file)
@@ -6,9 +6,10 @@ import pygame.locals as pgl
 
 from naja.constants import KEYS, PALETTE
 from naja.scenes.scene import Scene
+from naja.sound import sound
 from naja.widgets.image_box import ImageBox
 from naja.widgets.text import TextWidget, TextBoxWidget
-from naja.events import QuitGameEvent
+from naja.events import SceneChangeEvent, LoadGameEvent
 
 
 class LoseScene(Scene):
@@ -23,19 +24,29 @@ class LoseScene(Scene):
             (0, 0), "screens/you_lost.png")
         self.add(background)
 
+        y_offset = 250
+
+        if self.state.gameboard.has_cheated:
+            self.add(TextWidget(
+                (50, y_offset), 'Even with cheats on.', colour=PALETTE.ORANGE))
+            y_offset += 50
 
-        self.add(TextWidget(
-            (50, 50), 'You lost!', colour=PALETTE.WHITE))
         self.add(TextBoxWidget(
-            (50, 100), '\n\n'.join([
+            (50, y_offset), '\n\n'.join([
                 "Something went terribly wrong.",
                 "You should re-evaluate your life choices.",
+                "Press ESC to return to the menu",
             ]), fontsize=32,
             colour='white', padding=1, border=1,
             bg_colour='black', border_colour='black',
             box_width=300))
+        sound.play_music('lost.ogg', 0.25)
 
     def handle_scene_event(self, ev):
+        from naja.scenes.menu import MenuScene
         if ev.type == pgl.KEYDOWN and ev.key in KEYS.QUIT:
-            QuitGameEvent.post()
+            sound.stop()
+            # drop current state
+            LoadGameEvent.post(None)
+            SceneChangeEvent.post(MenuScene)
             return