Konami code.
[naja.git] / naja / scenes / menu.py
index a10d9b3aa696e50423f343271c7e1baaff8e57dc..8d0126ad99ae60beb3fa48112b281481a476ac0b 100644 (file)
@@ -4,8 +4,9 @@ Main menu scene.
 
 import pygame.locals as pgl
 
-from naja.constants import KEYS, PALETTE
+from naja.constants import KEYS, PALETTE, KONAMI_CODE
 from naja.events import SceneChangeEvent, QuitGameEvent
+from naja.options import options
 from naja.scenes.scene import Scene
 from naja.scenes.credits import CreditsScene
 from naja.scenes.game import GameScene
@@ -65,9 +66,23 @@ class MenuScene(Scene):
         quit.add_callback('click', lambda event: QuitGameEvent.post())
         selector.add(quit)
 
+        self.konami = []
+
     def scene_callback(self, scene_class):
         return lambda event: SceneChangeEvent.post(scene_class)
 
+    def handle_event(self, ev):
+        if ev.type == pgl.KEYDOWN and self.konami is not None:
+            if ev.key in KEYS.KONAMI:
+                self.konami.append(ev.key)
+                if self.konami == KONAMI_CODE:
+                    options['cheat_enabled'] = True
+                    print "Cheats enabled."
+                    self.konami = None
+                elif self.konami != KONAMI_CODE[:len(self.konami)]:
+                    self.konami = None
+        return super(MenuScene, self).handle_event(ev)
+
     def handle_scene_event(self, ev):
         if ev.type == pgl.KEYDOWN:
             if ev.key in KEYS.QUIT: