Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH2/Dungeon.py
diff options
context:
space:
mode:
authorjlew <jlew.blackout@gmail.com>2010-06-29 19:27:09 (GMT)
committer jlew <jlew.blackout@gmail.com>2010-06-29 19:34:23 (GMT)
commit6d2fe9e5b0521974e5ad5a029c4d3b3414f72357 (patch)
tree713b1938be4fed2909c009dc27e1377a5e2ec11a /MAFH2/Dungeon.py
parent854433931b4c266324936bef515ae58dafcdaec3 (diff)
Changed game engine timer api (ticket #30)
Diffstat (limited to 'MAFH2/Dungeon.py')
-rw-r--r--MAFH2/Dungeon.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/MAFH2/Dungeon.py b/MAFH2/Dungeon.py
index 843637d..cee910f 100644
--- a/MAFH2/Dungeon.py
+++ b/MAFH2/Dungeon.py
@@ -205,6 +205,17 @@ class Dungeon(GameEngineElement):
else:
self.game_engine.get_object('mesg').add_line(_("Amulet search found nothing."))
+ def search_timer_handler(self):
+ # Ensure we haven't deleted the pickup time yet
+ # Can happen if deleted but still in event queue
+ if hasattr( self, 'pickup_time' ):
+ if time() - self.pickup_time > SEARCH_TIME:
+ self.game_engine.stop_event_timer( \
+ self.search_timer_handler )
+ del self.pickup_time
+ self.amulet_search()
+
+
def event_handler(self, event):
if event.type == pygame.KEYDOWN:
newKey=pygame.key.name(event.key)
@@ -223,7 +234,8 @@ class Dungeon(GameEngineElement):
elif newKey=='[1]' or newKey=='e':
self.pickup_time = time()
- self.game_engine.start_event_timer( 0, FADE_SPEED )
+ self.game_engine.start_event_timer( \
+ self.search_timer_handler, FADE_SPEED )
return True
elif event.type == pygame.KEYUP:
@@ -234,18 +246,11 @@ class Dungeon(GameEngineElement):
if time() - self.pickup_time < SEARCH_TIME:
self.item_pickup()
- self.game_engine.stop_event_timer( 0 )
+ self.game_engine.stop_event_timer( \
+ self.search_timer_handler )
del self.pickup_time
return True
- elif event.type == pygame.USEREVENT:
- if time() - self.pickup_time > SEARCH_TIME:
- self.game_engine.stop_event_timer( 0 )
- del self.pickup_time
- self.amulet_search()
- #ANIMATION
- return True
-
def normalize_dir( self ):
profile = self.game_engine.get_object('profile')
dir = profile.playerFacing
@@ -311,7 +316,7 @@ class Dungeon(GameEngineElement):
color_a = int(elp*COLOR_DELTA)
if color_a > 255:
color_a = 255
- self.game_engine.stop_event_timer( 0 )
+ self.game_engine.stop_event_timer(self.search_timer_handler)
surf1 = pygame.Surface((1200,700), pygame.SRCALPHA)
pygame.draw.rect(surf1, (255, 255, 255, color_a), (0, 0, 1200, 700))
screen.blit( surf1, (0, 0) )