from abc import abstractmethod import pygame.time from level.Level import Level from level.elements.LoadedLevel import LoadedLevel from level.selection.ScreenManager import ScreenManager from physics.SpriteManager import SpriteManager from physics.TickData import TickData from sprite.SpritesheetManager import SpritesheetManager from ui_elements.KeyManager import KeyManager class LevelScreenManager(ScreenManager): def __init__(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, main_loop, level: Level): super().__init__(sprite_manager, spritesheet_manager, main_loop) self.level = level self.loaded_level = LoadedLevel(sprite_manager, spritesheet_manager) self.loaded_level.level_screen_manager = self self.loaded_level.load_level(self.level) def initialize(self): pass def destroy(self): super().destroy() self.loaded_level.destroy_level() def tick(self, tick_data: TickData): if tick_data.key_manager.is_keymap_down(KeyManager.KEY_ESCAPE): self.main_loop.select_level_selection(self.level.theme) pygame.time.delay(100) def player_death(self): self.main_loop.player_death(self.level) def player_success(self): self.main_loop.player_success(self.level)