Blobby/src/ObstacleObjects/Mine.gd

49 lines
1.2 KiB
GDScript

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