started working on room transition but its very janky, might just make it a basic resest?
This commit is contained in:
parent
52426368b1
commit
6c0bc9fbd6
6 changed files with 101 additions and 4 deletions
|
|
@ -11,10 +11,17 @@ var room_started : bool = false
|
|||
var current_tick = 0
|
||||
@export var pedestal_off_mat : Material
|
||||
@export var pedestal_on_mat : Material
|
||||
var room_failed = false
|
||||
var fail_timer = 3
|
||||
var room_ready = false
|
||||
var ready_timer = 1.5
|
||||
@export var player : CharacterBody3D
|
||||
|
||||
@export_group("Node References")
|
||||
@export var gui : Control
|
||||
@export var pedestals : Array[Pedestal]
|
||||
@export var chime_player : AudioStreamPlayer
|
||||
@export var world_env : WorldEnvironment
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
|
|
@ -28,10 +35,15 @@ func _process(delta):
|
|||
if Input.is_action_just_pressed("debug_start"):
|
||||
start_room()
|
||||
|
||||
if room_started and current_tick < level_time:
|
||||
if Input.is_action_just_pressed("reset"):
|
||||
fail_room()
|
||||
|
||||
if room_started and current_tick < level_time+1:
|
||||
tick_timer += delta
|
||||
|
||||
if tick_timer > level_tick:
|
||||
if current_tick == 11:
|
||||
fail_room()
|
||||
tick_timer = 0
|
||||
current_tick += 1
|
||||
print("Tick: " + str(current_tick))
|
||||
|
|
@ -42,7 +54,32 @@ func _process(delta):
|
|||
if activated_pedestal.has_command:
|
||||
print("broadcasting: " + activated_pedestal.placed_command.command_name)
|
||||
broadcast.emit(activated_pedestal.placed_command.command_name)
|
||||
|
||||
chime_player.volume_db = 0
|
||||
chime_player.pitch_scale = 1
|
||||
chime_player.play()
|
||||
else:
|
||||
chime_player.volume_db = -10
|
||||
chime_player.pitch_scale = 0.5
|
||||
chime_player.play()
|
||||
|
||||
world_env.environment.fog_enabled = room_failed #this whole section is cooked
|
||||
if room_failed:
|
||||
fail_timer -= delta
|
||||
var effect_number = 3-fail_timer
|
||||
world_env.environment.fog_density = clampf(pow(effect_number,2),0,10)
|
||||
world_env.environment.fog_sky_affect = clampf(effect_number/1,0,1)
|
||||
if fail_timer < 0:
|
||||
room_failed = false
|
||||
reset_room()
|
||||
if not room_ready:
|
||||
ready_timer -= delta
|
||||
var effect_number = ready_timer
|
||||
world_env.environment.fog_density = clampf(pow(effect_number,2),0,10)
|
||||
world_env.environment.fog_sky_affect = clampf(effect_number/1,0,1)
|
||||
|
||||
if ready_timer < 0:
|
||||
room_ready = true
|
||||
player.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
pass
|
||||
|
||||
|
||||
|
|
@ -57,7 +94,25 @@ func start_room():
|
|||
#hide crosshair
|
||||
pass
|
||||
|
||||
func fail_room():
|
||||
print("ROOM FAILED")
|
||||
room_failed = true
|
||||
player.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
# close exit, freeze player?
|
||||
pass
|
||||
|
||||
func reset_room():
|
||||
print("RESETTING ROOM")
|
||||
room_started = false
|
||||
room_failed = false
|
||||
fail_timer = 3
|
||||
room_ready = false
|
||||
ready_timer = 1.5
|
||||
tick_timer = 0
|
||||
current_tick = 0
|
||||
for i in pedestals.size():
|
||||
var activated_pedestal = pedestals[i]
|
||||
activated_pedestal.mesh.mesh.material = pedestal_off_mat
|
||||
# run if timer expires, resets puzzle
|
||||
# replace door
|
||||
# put player back in start room
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue