level resetting works

This commit is contained in:
Clevertop 2024-08-11 10:43:02 +10:00
parent a1f4eaa2c6
commit d2dfb65d59
4 changed files with 40 additions and 59 deletions

View file

@ -11,6 +11,8 @@ signal broadcast(command : String)
var tick_timer : float = 0
var room_started : bool = false
var current_tick = 0
var failed : bool = false
var fail_timer : float = 3
@export_group("Resources")
@export var pedestal_off_mat : Material
@ -18,13 +20,18 @@ var current_tick = 0
@export_group("Node References")
@export var gui : Control
@export var pedestals : Array[Pedestal]
var pedestals : Array[Pedestal]
@export var pedstalContainer : Node3D
@export var chime_player : AudioStreamPlayer
@export var world_env : WorldEnvironment
@export var player : CharacterBody3D
@export var player_spawn : Node3D
# Called when the node enters the scene tree for the first time.
func _ready():
var temp_pedestals = pedstalContainer.get_children()
for temp in temp_pedestals:
pedestals.append(temp)
for i in pedestals.size():
pedestals[i].mesh.mesh = pedestals[i].mesh.mesh.duplicate()
pass # Replace with function body.
@ -41,7 +48,7 @@ func _process(delta):
if room_started and current_tick < level_time+1:
tick_timer += delta
if tick_timer > level_tick:
if tick_timer > level_tick: #advance tick
if current_tick == 11:
#fail_room()
pass
@ -62,6 +69,17 @@ func _process(delta):
chime_player.volume_db = -10
chime_player.pitch_scale = 0.5
chime_player.play()
if failed:
world_env.environment.background_color = Color.DIM_GRAY
fail_timer -= delta
if fail_timer < 0:
fail_timer = 3
reset_room()
else:
world_env.environment.background_color = Color.WHITE
#world_env.environment.fog_enabled = room_failed #this whole section is cooked
#if room_failed:
@ -97,17 +115,27 @@ func start_room():
func fail_room():
print("ROOM FAILED")
room_started = false
player.process_mode = Node.PROCESS_MODE_DISABLED
failed = true
# close exit, freeze player?
pass
func reset_room():
print("RESETTING ROOM")
room_started = false
player.global_position = player_spawn.global_position
player.process_mode = Node.PROCESS_MODE_INHERIT
player.rotation_degrees = Vector3(0,0,0)
player.camera.rotation_degrees = Vector3(0,0,0)
tick_timer = 0
tick_timer = 0
room_started = false
current_tick = 0
failed = false
fail_timer = 3
#reset pedestals
for i in pedestals.size():
var activated_pedestal = pedestals[i]
activated_pedestal.mesh.mesh.material = pedestal_off_mat