summaryrefslogtreecommitdiff
path: root/src/sliceitoff/game/level.py
blob: 25c34b9f29f19d1a1d8adf7efc66f41b4942c340 (plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
import pygame

from display import Display
from status import Status
from player import Player
from field import Field
from enemies import Enemies
from stats import Stats
from .gameplay import Gameplay


class Level:
    """ One level that can be played """
    def __init__(self, display = None):
        self.display = display
        self.status = Status()
        self.field = Field()
        self.enemies = Enemies()
        self.player = Player()
        self.gameplay = Gameplay(
                player = self.player,
                status = self.status,
                field = self.field,
                enemies = self.enemies)
        self.obj_classes = (
                self.status,
                self.field,
                self.enemies,
                self.player)
        
    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
            
        return True