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(field = self.field) self.player = Player(field = self.field, enemies = self.enemies) 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.sprites, self.field, self.enemies, self.player.sprites) ) if self.gameplay.step(): return False return True