sep-pm-platformer/project/level/elements/static/GoalDoorReceiverLevelElemen...

30 lines
1.3 KiB
Python

from level.Level import Level
from level.elements.static.ReceiverLevelElement import ReceiverLevelElement
from physics.SpriteManager import SpriteManager
from physics.TickData import TickData
from sprite.SpritesheetManager import SpritesheetManager
class GoalDoorReceiverLevelElement(ReceiverLevelElement):
def __init__(self, tile: dict, level: Level, level_screen_manager: 'LevelScreenManager'):
super().__init__(tile, level, level_screen_manager)
self.is_collider = False
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
self.spritesheet = spritesheet_manager.get_sheet('goal_door')
self.set_animation_state('open' if self.active_state else 'close')
self.position_scale.position = self.tile['position']
def set_active(self, active: bool):
super().set_active(active)
self.set_animation_state('open' if self.active_state else 'close')
self.is_collider = False
self.register_collisions = self.active_state
def tick(self, tick_data: TickData):
super().tick(tick_data)
for collision in self.get_collides_with():
if collision.secondary_sprite.id == 'player':
if self.active_state:
self.level_screen_manager.player_success()