summaryrefslogtreecommitdiff
path: root/src/sliceitoff/game
diff options
context:
space:
mode:
authorViljami Ilola <+@hix.fi>2024-03-18 18:08:20 +0200
committerViljami Ilola <+@hix.fi>2024-03-18 18:08:20 +0200
commit78704848d4459907a456044615714b59d4593b2f (patch)
treed56c8422793ff1c5b6554146980760d264a6a0fe /src/sliceitoff/game
parentb219c4f736e6b98dd247064b362997576954f0ff (diff)
stats, level_up, game_over
Diffstat (limited to 'src/sliceitoff/game')
-rw-r--r--src/sliceitoff/game/gameplay.py11
-rw-r--r--src/sliceitoff/game/level.py13
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():