Lots of polish things and wrapping up all three levels

This commit is contained in:
Nathan Anderson
2022-08-08 15:32:57 -06:00
parent c7d42e09ce
commit 09eada305d
176 changed files with 3068 additions and 403 deletions
+40 -20
View File
@@ -1,6 +1,5 @@
extends Node2D
var level_path := "res://scenes/level{num}.tscn"
var level1 = preload("res://scenes/level1.tscn")
var current_level_num = 1
@@ -8,32 +7,53 @@ var current_level : Node
var max_levels := 3
var level_win := false
onready var end_timer := $EndTimer
onready var game_timer := $GameTimer
onready var game_screen_text := $GameScreenText
func _ready() -> void:
current_level = level1.instance()
add_child(current_level)
var err = current_level.get_child(0).connect("game_complete", self, "_on_level_complete")
func setup_next_level():
if current_level_num == 1:
current_level = level1.instance()
add_child(current_level)
else:
var new_level_path = level_path.format({"num": current_level_num})
var next_level = load(new_level_path).instance()
add_child(next_level)
if current_level != null:
current_level.queue_free()
current_level = next_level
var current_base_level = current_level.get_node("BaseLevel") as BaseLevel
current_base_level.display_start(current_level_num, current_level_num == max_levels)
var err = current_base_level.connect("game_complete", self, "_on_level_complete")
print(err)
func _on_level_complete(is_win: bool) -> void:
print('Level complete')
level_win = is_win
if current_level_num == max_levels:
end_timer.start(3.5)
game_timer.start(3.5)
else:
end_timer.start(2)
game_timer.start(2)
current_level_num += 1
func _on_EndTimer_timeout() -> void:
if level_win and current_level_num < max_levels:
current_level_num += 1
var new_level_path = level_path.format({"num": current_level_num})
var next_level = load(new_level_path).instance()
add_child(next_level)
current_level.queue_free()
current_level = next_level
var current_base_level = current_level.get_node("BaseLevel") as BaseLevel
current_base_level.display_start(current_level_num)
var err = current_base_level.connect("game_complete", self, "_on_level_complete")
func _on_GameTimer_timeout() -> void:
print('Timer done')
if level_win and current_level_num <= max_levels:
setup_next_level()
elif not level_win:
var header := game_screen_text.get_node("ColorRect/VBoxContainer/HeaderText")
var body := game_screen_text.get_node("ColorRect/VBoxContainer/BodyText")
header.text = "Seems you got lost in the world of make believe"
body.text = "I don't blame you, its a beautiful place"
if current_level != null:
current_level.queue_free()
else:
var header := game_screen_text.get_node("ColorRect/VBoxContainer/HeaderText")
var body := game_screen_text.get_node("ColorRect/VBoxContainer/BodyText")
header.text = "Now go out and meet some real neighbors"
body.text = "'In a way, youve already won in this world because youre the only one who can be you.'\n-Mister Rogers"
if current_level != null:
current_level.queue_free()
func _on_GameScreenText_done_reading() -> void:
setup_next_level()