extends Node2D onready var level_state := get_tree().root.get_child(4).get_node("%LevelState") export onready var is_armed = false var trigger_zone_entered: bool = false var activatable = false func _ready(): level_state.register_saveable_node(self) var is_armed_saved = level_state.get_saved_node_property(self, "is_armed") if level_state.savepoint_loaded && is_armed_saved != null: is_armed = is_armed_saved if(!is_armed): if($HarmfulArea.is_in_group("harmful")): $HarmfulArea.remove_from_group("harmful") $Sprite/AnimationPlayer.play("unarmed") else: $HarmfulArea.add_to_group("harmful") $Sprite/AnimationPlayer.play("armed") func _on_Timer_timeout() -> void: is_armed = true $HarmfulArea.add_to_group("harmful") func _on_AnimationPlayer_animation_finished(anim_name: String) -> void: if(anim_name == "arming"): $Sprite/AnimationPlayer.play("armed") func _on_DetectionArea_area_exited(area: Area2D) -> void: if(area.is_in_group("player") && !$HarmfulArea.is_in_group("harmful") && trigger_zone_entered): $Timer.start() trigger_zone_entered = false $Sprite/AnimationPlayer.play("arming") func _on_HarmfulArea_area_entered(area: Area2D) -> void: if(area.is_in_group("player")): trigger_zone_entered = true