This repository has been archived on 2025-09-12. You can view files and clone it, but cannot push or open issues or pull requests.
ld47/game/Game.gd

63 lines
1.6 KiB
GDScript

extends Node
export var player_character: PackedScene
export var levels: Array
onready var level_container: Node = get_node(@"LevelContainer")
onready var menu: Control = get_node(@"MainMenu")
onready var narrative_popup: NarrativePopup = get_node(@"NarrativePopup")
var current_level: int = -1
var level: Node
func _ready() -> void:
pass
func _process(delta: float) -> void:
DebugLabel.display(self, "fps %d" % Performance.get_monitor(Performance.TIME_FPS))
if level && Input.is_action_just_pressed("menu"):
back_to_menu()
func on_start_game() -> void:
next_level()
func on_player_ded() -> void:
spawn_player()
func on_level_finished() -> void:
next_level()
func back_to_menu() -> void:
remove_level()
narrative_popup.hide()
menu.show()
func spawn_player() -> void:
var spawn_point: Spatial = level.find_node("SpawnPoint")
if !spawn_point:
printerr("No player spawn point!!!")
return
var character: Spatial = player_character.instance()
character.transform = spawn_point.global_transform
character.connect("player_ded", self, "on_player_ded")
level.add_child(character)
narrative_popup.display("come at me bro", 4.0)
func next_level() -> void:
call_deferred("remove_level")
current_level = (current_level + 1) % levels.size()
call_deferred("next_level_2")
func next_level_2() -> void:
call_deferred("spawn_level")
func spawn_level() -> void:
level = (levels[current_level] as PackedScene).instance()
level_container.add_child(level)
spawn_player()
func remove_level() -> void:
for node in level_container.get_children():
level_container.remove_child(node)
(node as Node).queue_free()