comparison skaapsteker/levelscene.py @ 290:c68f2f3efc7f

Item dropping and swapping.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 08 Apr 2011 21:58:48 +0200
parents ddcfc159dc2a
children 78220c989e6a
comparison
equal deleted inserted replaced
289:16ffe6f5dbb8 290:c68f2f3efc7f
50 self._player.set_facing(doorway.facing) 50 self._player.set_facing(doorway.facing)
51 self._player.set_image() 51 self._player.set_image()
52 self._player.set_pos(doorway._starting_tile_pos) 52 self._player.set_pos(doorway._starting_tile_pos)
53 53
54 # Double tap stuff 54 # Double tap stuff
55 self._last_keys_down = []
56 self._last_keydown_time = None 55 self._last_keydown_time = None
57 self._last_keyup_time = None 56 self._last_keyup_time = None
58 57
59 def _build_action_map(self): 58 def _build_action_map(self):
60 action = lambda s: getattr(self._player, 'action_%s' % s) 59 action = lambda s: getattr(self._player, 'action_%s' % s)
64 63
65 self._fast_key_map = { 64 self._fast_key_map = {
66 K_LEFT: action('left'), 65 K_LEFT: action('left'),
67 K_RIGHT: action('right'), 66 K_RIGHT: action('right'),
68 K_UP: action('up'), 67 K_UP: action('up'),
69 K_DOWN: action('down'),
70 } 68 }
71 self._fast_keys_down = set() 69 self._fast_keys_down = set()
72 70
73 self._slow_key_map = { 71 self._slow_key_map = {
72 K_DOWN: action('down'),
74 K_ESCAPE: self._quit, 73 K_ESCAPE: self._quit,
75 K_p: self._toggle_pause, 74 K_p: self._toggle_pause,
76 } 75 }
77 if options['dvorak']: 76 if options['dvorak']:
78 self._slow_key_map[K_SEMICOLON] = action('fire1') 77 self._slow_key_map[K_SEMICOLON] = action('fire1')
83 self._slow_key_map[K_q] = self._quit 82 self._slow_key_map[K_q] = self._quit
84 83
85 self._key_tap_map = { 84 self._key_tap_map = {
86 (K_LEFT, K_LEFT) : action('double_left'), 85 (K_LEFT, K_LEFT) : action('double_left'),
87 (K_RIGHT, K_RIGHT) : action('double_right'), 86 (K_RIGHT, K_RIGHT) : action('double_right'),
88 (K_DOWN, K_DOWN) : action('double_down'), 87 (K_UP, K_UP) : action('double_up'),
89 } 88 }
90 89
91 def _quit(self, pause=True): 90 def _quit(self, pause=True):
92 import menuscene # avoid circular import 91 import menuscene # avoid circular import
93 if pause: 92 if pause:
238 self._player_dead = True 237 self._player_dead = True
239 elif engine.OpenDialog.matches(ev): 238 elif engine.OpenDialog.matches(ev):
240 self._open_dialogue(ev.npc) 239 self._open_dialogue(ev.npc)
241 elif engine.CloseDialog.matches(ev): 240 elif engine.CloseDialog.matches(ev):
242 self._close_dialogue() 241 self._close_dialogue()
242 elif engine.ItemRepopulationEvent.matches(ev):
243 self._world.add(ev.item)