event for respawning

This commit is contained in:
incredibleLeitman 2020-01-17 21:29:33 +01:00
parent 2fcfaf4f49
commit 7ecae0cc3d
2 changed files with 16 additions and 10 deletions

View File

@ -67,6 +67,8 @@ func _ready():
area.connect("area_entered", self, "_on_area_entered") area.connect("area_entered", self, "_on_area_entered")
area.connect("area_exited", self, "_on_area_exited") area.connect("area_exited", self, "_on_area_exited")
Daytime.connect("respawn", self, "_on_respawn")
func _physics_process(delta): func _physics_process(delta):
process_input() process_input()
@ -192,7 +194,7 @@ func _on_area_entered (area: Area):
get_node("AudioStreamPlayer3D").play() get_node("AudioStreamPlayer3D").play()
yield(get_node("AudioStreamPlayer3D"), "finished") yield(get_node("AudioStreamPlayer3D"), "finished")
_reset_scene() # TODO: call per event -> also raise if Meldewesen is looking at player and pill level reaches treshold! _on_respawn() # TODO: also raise if Meldewesen is looking at player and pill level reaches treshold!
elif area.is_in_group("Forbidden"): elif area.is_in_group("Forbidden"):
Logger.info("entering forbidden area!") Logger.info("entering forbidden area!")
_illegal_areas += 1 _illegal_areas += 1
@ -204,14 +206,21 @@ func _on_area_exited (area: Area):
_illegal_areas -= 1 _illegal_areas -= 1
func _reset_scene (): func _on_respawn ():
Logger.info("respawning")
# fade to black and restart scene # fade to black and restart scene
_inventory.hide()
_animationFadeOut.play("FadeOut") _animationFadeOut.play("FadeOut")
yield(_animationFadeOut, "animation_finished") yield(_animationFadeOut, "animation_finished")
# reset values # reset values
_animationFadeOut.seek(0, true) _animationFadeOut.seek(0, true)
Daytime.reset()
Pills._set_level(Pills.get_max())
Daytime._set_time(0)
get_tree().reload_current_scene()
func Is_in_Illegal_Area (): func Is_in_Illegal_Area ():

View File

@ -1,15 +1,11 @@
extends Node extends Node
const _increase_per_second: float = 30.0 #0.5 const _increase_per_second: float = 100.0 #0.5
const _max: int = 1440 # 24 hour + 60 mins const _max: int = 1440 # 24 hour + 60 mins
var _time: float setget _set_time, get_time var _time: float setget _set_time, get_time
signal respawn
func reset ():
get_tree().reload_current_scene()
Pills._set_level(Pills.get_max())
_time = 0
func _set_time (new_time: float): func _set_time (new_time: float):
@ -28,4 +24,5 @@ func _process (delta: float) -> void:
# continually increases daytime # continually increases daytime
_set_time(_time + _increase_per_second * delta) _set_time(_time + _increase_per_second * delta)
if _time >= _max: if _time >= _max:
reset() _time = 0
emit_signal("respawn")