summaryrefslogtreecommitdiff
path: root/src/sliceitoff/game/level.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sliceitoff/game/level.py')
-rw-r--r--src/sliceitoff/game/level.py46
1 files changed, 29 insertions, 17 deletions
diff --git a/src/sliceitoff/game/level.py b/src/sliceitoff/game/level.py
index 25c34b9..15668a4 100644
--- a/src/sliceitoff/game/level.py
+++ b/src/sliceitoff/game/level.py
@@ -6,7 +6,9 @@ from player import Player
from field import Field
from enemies import Enemies
from stats import Stats
+from screens import levelup_screen, gameover_screen, level_screen
from .gameplay import Gameplay
+from .anykey import anykey
class Level:
@@ -22,30 +24,40 @@ class Level:
status = self.status,
field = self.field,
enemies = self.enemies)
- self.obj_classes = (
+ self.obj_classes = [
self.status,
self.field,
- self.enemies,
- self.player)
+ self.enemies]
+ self.level_info = level_screen()
+ self.level_over = None
def step(self, dt):
for obj in self.obj_classes:
obj.update(dt = dt)
self.enemies.hit_walls(self.field.active_sprites())
-
- Stats.update_bonus(dt)
-
- self.display.update( (
- self.status,
- self.field,
- self.enemies,
- pygame.sprite.GroupSingle(
- sprite = self.player.get_top_sprite())))
-
-
- if self.gameplay.step():
- return False
-
+ objs = self.obj_classes[:]
+ if self.level_info:
+ if anykey():
+ self.level_info = None
+ else:
+ objs += [self.level_info]
+ elif self.level_over:
+ objs += [self.level_over]
+ if anykey():
+ return False
+ else:
+ objs += [pygame.sprite.GroupSingle(
+ sprite = self.player.get_top_sprite())]
+ Stats.update_bonus(dt)
+ if self.gameplay.step():
+ if Stats.lives:
+ self.level_over = levelup_screen()
+ else:
+ self.level_over = gameover_screen()
+
+ self.display.update(objs)
+
+
return True