diff options
author | Viljami Ilola <+@hix.fi> | 2024-03-18 18:08:20 +0200 |
---|---|---|
committer | Viljami Ilola <+@hix.fi> | 2024-03-18 18:08:20 +0200 |
commit | 78704848d4459907a456044615714b59d4593b2f (patch) | |
tree | d56c8422793ff1c5b6554146980760d264a6a0fe /src/sliceitoff/game | |
parent | b219c4f736e6b98dd247064b362997576954f0ff (diff) |
stats, level_up, game_over
Diffstat (limited to 'src/sliceitoff/game')
-rw-r--r-- | src/sliceitoff/game/gameplay.py | 11 | ||||
-rw-r--r-- | src/sliceitoff/game/level.py | 13 |
2 files changed, 16 insertions, 8 deletions
diff --git a/src/sliceitoff/game/gameplay.py b/src/sliceitoff/game/gameplay.py index a7224ca..33847fc 100644 --- a/src/sliceitoff/game/gameplay.py +++ b/src/sliceitoff/game/gameplay.py @@ -1,6 +1,8 @@ """ Reads user input and does actions when game play is on. """ import pygame +from stats import Stats + class Gameplay: """ Logic of the playfield """ def __init__(self, player = None, field = None, status = None): @@ -15,20 +17,23 @@ class Gameplay: case pygame.KEYDOWN: match event.key: case pygame.K_ESCAPE | pygame.K_q: + Stats.lives = 0 return True case pygame.K_SPACE: if self.player.fire_lazer(): return True case pygame.QUIT: + Stats.lives = 0 return True case pygame.MOUSEMOTION: self.player.set_position(pygame.mouse.get_pos()) case pygame.MOUSEBUTTONDOWN: self.player.set_position(pygame.mouse.get_pos()) if event.button == 1: - if ( - self.player.fire_lazer() - and self.status.lose_life() ): + if self.player.fire_lazer() and Stats.lose_life(): + return True + if Stats.percent < 10: + Stats.level_up() return True if event.button == 3: self.player.set_direction() diff --git a/src/sliceitoff/game/level.py b/src/sliceitoff/game/level.py index 28d9b44..fadbee3 100644 --- a/src/sliceitoff/game/level.py +++ b/src/sliceitoff/game/level.py @@ -3,18 +3,19 @@ from status import Status from player import Player from field import Field from enemies import Enemies -from game import Gameplay +from stats import Stats +from .gameplay import Gameplay class Level: """ One level that can be played """ - def __init__(self, level = None, score = None, display = None): + def __init__(self, display = None): self.display = display - self.status = Status(level = level) + self.status = Status() self.field = Field() - self.enemies = Enemies(field = self.field, level = level) + self.enemies = Enemies(field = self.field) self.player = Player(field = self.field, enemies = self.enemies) - self.gameplay = Gameplay(player = self.player, status = self.status ) + self.gameplay = Gameplay(player = self.player, status = self.status) self.obj_classes = ( self.status, self.field, @@ -25,6 +26,8 @@ class Level: for obj in self.obj_classes: obj.update(dt) + Stats.update_bonus(dt) + self.display.update( (obj.sprites for obj in self.obj_classes) ) if self.gameplay.step(): |