Files
CultManor/game/levels/abstract_level.gd
T
2026-01-11 16:56:37 +03:00

49 lines
1.2 KiB
GDScript

class_name AbstractLevel
extends Node2D
@export var player_falling_at_start: bool = true
@onready var player : Player = $Player
@onready var pause_menu : PauseMenu = $%PauseMenu
@onready var game_over_menu : GameOverMenu = $%GameOverMenu
@onready var completion_menu : CompletionMenu = $%CompletionMenu
func _ready() -> void:
pause_menu.hide()
game_over_menu.hide()
SoundManager.play_music_stream(SoundManager.music_stream_gameplay)
if player_falling_at_start:
player.velocity.y = player.max_fall_speed
func _input(event: InputEvent) -> void:
if event.is_action_pressed("pause"):
SoundManager.play_ui_stream(SoundManager.ui_stream_accept)
get_tree().paused = true
pause_menu.show()
func _complete_level(player_position: Vector2) -> void:
SoundManager.play_sfx_stream(SoundManager.sfx_stream_level_completed, player_position)
get_tree().paused = true
completion_menu.show()
if SaveManager.completed_levels <= LevelManager.current_level_index:
SaveManager.completed_levels = LevelManager.current_level_index + 1
SaveManager.save()
func _on_player_dead() -> void:
get_tree().paused = true
game_over_menu.show()
func _on_level_end_entered(body: Node2D) -> void:
if body is Player:
_complete_level(player.global_position)