# Do not change those values extends Node3D var paused = false @onready var pause_menu = $PauseMenu var checkpoint = checkpoint0 @onready var healthtext = $HUD/HBoxContainer/VBoxContainer/Label_Health @onready var checkpointtext = $HUD/HBoxContainer/VBoxContainer/Label_Station @onready var narrationtext = $HUD/HBoxContainer2/VBoxContainer2/Label @onready var player = get_node("Player") var time_accum = 0.0 # Timer accumulator var elapsed_time := 0.0 var restart_count = 0 var checkpoint0 = Vector3(0, 1.5, 0) var checkpoint1 = Vector3(-27.5, 13, 12.5) var checkpoint2 = Vector3(0, 22, 1.374) var checkpoint3 = Vector3(-50, 25, -5) var terminus = Vector3(-8, -8.5, 9.5) func wait(specifiedsecond: float): await get_tree().create_timer(4).timeout func _on_audio_finished(): player.newmusicplayer.play() func _ready() -> void: # var player = get_node("%Player") # player.newmusicplayer.finished.connect(_on_audio_finished) checkpointtext.text = "station 0" narrationtext.hide() narrationtext.show() narrate("Hi.") await get_tree().create_timer(2).timeout narrate("You probably have no idea who I could be.") await get_tree().create_timer(4).timeout narrate("But I've been watching you.") await get_tree().create_timer(3).timeout narrate("Closely.") await get_tree().create_timer(2).timeout narrate("You don't know it yet, but essentially, \nI guess you could call me a different version \nof what you happen to be.") await get_tree().create_timer(8).timeout narrate("I am what you think. I am you.") await get_tree().create_timer(3).timeout narrate("Sure, it may sound weird, but I am you, but not at the same time.\nI can speak, you can't, at least not yet.") await get_tree().create_timer(7).timeout narrate("I will be here.") await get_tree().create_timer(1).timeout narrate("Everywhere you go.") await get_tree().create_timer(1).timeout narrate("Thinking.") await get_tree().create_timer(1).timeout narrate("Seeing.") player.musicplayer.stream = load("res://assets/audio/FlyingHomeIntro.ogg") player.musicplayer.play() await get_tree().create_timer(1).timeout narrate("Talking.") await get_tree().create_timer(1).timeout narrate("Acting.") await get_tree().create_timer(1).timeout narrate("So good that sometimes you won't even notice I'm here.") await get_tree().create_timer(4).timeout narrate("It's like I live in your mind.") await get_tree().create_timer(2).timeout narrate("Although,") await get_tree().create_timer(1).timeout narrate("Although, there's no reason to be scared of me.") await get_tree().create_timer(4).timeout narrate("After all, I'm a part of your thoughts, without me you probably\nwouldn't be alive due to some dumb shit\nyou'd be likely to do.") await get_tree().create_timer(8).timeout narrate("Must feel like a lucid dream, huh?") await get_tree().create_timer(3).timeout narrate("Kind of almost as lucid as...") await get_tree().create_timer(3).timeout narrationtext.hide() player.musicplayer.stream = load("res://assets/audio/FlyingHomeMain.ogg") player.musicplayer.stream.loop = true player.musicplayer.play() # player.musicplayer.stream.loop = true narrationtext.text = "" narrationtext.show() $PROLUZ_LOGO.show() await get_tree().create_timer(1.9).timeout # $PROLUZ_LOGO.hide() narrationtext.text = "Music playing is \"FSM Team - Flying Home\"" await get_tree().create_timer(1.71).timeout narrationtext.text = "Published by Lintine GS2EB" await get_tree().create_timer(1.71).timeout narrationtext.text = "Solo project by kevadesu" await get_tree().create_timer(1.71).timeout narrationtext.text = "Without initial experience in Godot" await get_tree().create_timer(1.71).timeout narrationtext.text = "Started as a school project" await get_tree().create_timer(1.71).timeout narrationtext.hide() $PROLUZ_LOGO.hide() # narrationtext.hide() # while true: # wait(5) # print(player.checkpoint) # DEBUG SECTION: Testing whether checkpoint value is accessible by printing it every 4 seconds #func _process(delta: float) -> void: # var player = get_node("Player") # time_accum += delta # if time_accum >= 4.0: # print("Checkpoint:", player.checkpoint) # time_accum = 0.0 func _process(delta: float): elapsed_time += delta if Input.is_action_just_pressed("ui_cancel"): Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) pauseMenu() elif Input.is_action_just_pressed("proluz_ui_respawn"): var player = get_node("Player") player.teleport_to_checkpoint() player.health = 100 Engine.time_scale = 1 player.audioplayer.stream = load("res://assets/audio/Revive.wav") player.audioplayer.play() restart_count = restart_count + 1 elif Input.is_action_just_pressed("proluz_ui_reset"): get_tree().reload_current_scene() var player = get_node("Player") $HUD/HBoxContainer/VBoxContainer/Label_Controls2.text = get_formatted_time() # Health bar if player.health == 100: healthtext.text = "[//////////]" healthtext.add_theme_color_override("font_color", Color.GREEN) elif player.health >= 90: healthtext.text = "[/////////·]" healthtext.add_theme_color_override("font_color", Color.GREEN) elif player.health >= 80: healthtext.text = "[////////··]" healthtext.add_theme_color_override("font_color", Color.GREEN) elif player.health >= 70: healthtext.text = "[///////···]" healthtext.add_theme_color_override("font_color", Color.GREEN) elif player.health >= 60: healthtext.text = "[//////····]" healthtext.add_theme_color_override("font_color", Color.GREEN_YELLOW) elif player.health >= 50: healthtext.text = "[/////·····]" healthtext.add_theme_color_override("font_color", Color.GREEN_YELLOW) elif player.health >= 40: healthtext.text = "[////······]" healthtext.add_theme_color_override("font_color", Color.YELLOW) elif player.health >= 30: healthtext.text = "[///·······]" healthtext.add_theme_color_override("font_color", Color.YELLOW) elif player.health >= 20: healthtext.text = "[//········]" healthtext.add_theme_color_override("font_color", Color.YELLOW) elif player.health >= 10: healthtext.text = "[/·········]" healthtext.add_theme_color_override("font_color", Color.INDIAN_RED) elif player.health >= 1: healthtext.text = "[|·········][CRITICAL]" healthtext.add_theme_color_override("font_color", Color.RED) elif player.health == 0: healthtext.text = "[··········][DEAD/Shift+R to revive]" healthtext.add_theme_color_override("font_color", Color.MEDIUM_PURPLE) Engine.time_scale = 0.001 func narrate(text: String): player.audioplayer.stream = load("res://addons/kenney_ui_audio/switch38.wav") player.audioplayer.play() narrationtext.text = text func get_formatted_time() -> String: var total_milliseconds = int(elapsed_time * 1000) var minutes = total_milliseconds / 60000 var seconds = (total_milliseconds % 60000) / 1000 var milliseconds = total_milliseconds % 1000 return "time: %02d:%02d.%03d" % [minutes, seconds, milliseconds] func pauseMenu(): if paused: Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) pause_menu.hide() Engine.time_scale = 1 player.musicplayer.stream_paused = false player.newmusicplayer.stream_paused = false player.audioplayer.stream_paused = false else: pause_menu.show() Engine.time_scale = 0.00001 player.musicplayer.stream_paused = true player.newmusicplayer.stream_paused = true player.audioplayer.stream_paused = true paused = !paused