41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
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)
|