-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlevel_events.py
executable file
·39 lines (33 loc) · 1.1 KB
/
level_events.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from game_event import RestartLevelEvent, AdvanceLevelEvent, PlaySoundEvent
import constants
class TimedLevelAdvance:
def __init__(self, time, level):
self.level = level
self.time_left = time
def update(self, delta):
self.time_left -= delta
self.time_left = max(0, self.time_left)
if self.time_left == 0:
self.level.game.register_event(AdvanceLevelEvent(self.level))
return self.time_left == 0
class TimedLevelVictory:
def __init__(self, time, level):
self.level = level
self.time_left = time
def update(self, delta):
self.time_left -= delta
self.time_left = max(0, self.time_left)
if self.time_left == 0:
self.level.victory = True
self.level.cooldown = constants.SCREEN_CHANGE_COOLDOWN
return self.time_left == 0
class TimedLevelRestart:
def __init__(self, time, level):
self.level = level
self.time_left = time
def update(self, delta):
self.time_left -= delta
self.time_left = max(0, self.time_left)
if self.time_left == 0:
self.level.game.register_event(RestartLevelEvent(self.level))
return self.time_left == 0