Minor cleanup.
[naja.git] / naja / scenes / lose.py
index af41bb226c4eb04488ec9fad11441a116c00c1fd..7455fdf60387ad39529151ecbc33b117795b6394 100644 (file)
@@ -4,10 +4,12 @@ Lose scene.
 
 import pygame.locals as pgl
 
-from naja.constants import KEYS
+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):
@@ -17,19 +19,32 @@ class LoseScene(Scene):
 
     def __init__(self, state):
         super(LoseScene, self).__init__(state)
-        self.add(TextWidget(
-            (480, 160), 'You lost!', fontsize=32, colour='white'))
+
+        background = ImageBox(
+            (0, 0), "screens/you_lost.png")
+        self.add(background)
+
+        if self.state.gameboard.has_cheated:
+            self.add(TextWidget(
+                (50, 250), 'Even with cheats on.', colour=PALETTE.ORANGE))
+
         self.add(TextBoxWidget(
-            (120, 30), '\n'.join([
-                "You're not so great.",
-                "You did poorly.",
-                "You shouldn't be proud of yourself.",
+            (50, 300), '\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=400))
+            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