Toggle bits when cheats are enabled.
[naja.git] / naja / scenes / game.py
1 """
2 Gameboard scene.
3 """
4
5 import pygame.locals as pgl
6
7 from naja.constants import KEYS
8 from naja.events import SceneChangeEvent, finish_event
9 from naja.options import options
10 from naja.scenes.scene import Scene
11 from naja.sound import sound
12 from naja.widgets.board import BoardWidget
13 from naja.widgets.player_bits import PlayerBitsWidget
14 from naja.widgets.game_bits import GameBitsWidget
15 from naja.widgets.info_area import InfoAreaWidget
16 from naja.widgets.robot import RobotWidget
17
18
19 class GameScene(Scene):
20     """
21     Gameboard scene.
22     """
23
24     def __init__(self, state):
25         super(GameScene, self).__init__(state)
26         self.add(PlayerBitsWidget((0, 0), state))
27         info = InfoAreaWidget((480, 0), state)
28         self.add(BoardWidget((0, 60), state, info))
29         self.add(GameBitsWidget((0, 540), state))
30         self.add(info)
31         self.add(RobotWidget(state))
32         sound.play_sound('startup.ogg')
33
34     def handle_scene_event(self, ev):
35         from naja.scenes.menu import MenuScene
36         if ev.type == pgl.KEYDOWN:
37             if ev.key in KEYS.QUIT:
38                 SceneChangeEvent.post(MenuScene)
39                 return
40             if options.cheat_enabled:
41                 if ev.key == pgl.K_0:
42                     self.state.player.bits.toggle_bit(0)
43                 elif ev.key == pgl.K_1:
44                     self.state.player.bits.toggle_bit(1)
45                 elif ev.key == pgl.K_2:
46                     self.state.player.bits.toggle_bit(2)
47                 elif ev.key == pgl.K_3:
48                     self.state.player.bits.toggle_bit(3)
49                 elif ev.key == pgl.K_4:
50                     self.state.player.bits.toggle_bit(4)
51                 elif ev.key == pgl.K_5:
52                     self.state.player.bits.toggle_bit(5)
53                 elif ev.key == pgl.K_6:
54                     self.state.player.bits.toggle_bit(6)
55                 elif ev.key == pgl.K_7:
56                     self.state.player.bits.toggle_bit(7)
57                 return finish_event()