extends "res://objects/enemy/enemy_move_sidesideupdown.gd" export var off_time = 1.0 export var on_time = 0.5 export var delay = 0.0 onready var line = $Laser onready var cast = $RayCast2D onready var timer = $Timer onready var sparks = $SparkParticles func _ready(): yield(get_tree().create_timer(delay, false), "timeout") _disable_laser() # adjust to difficulty off_time /= Game.enemy_speed_factor on_time /= Game.enemy_speed_factor func _physics_process(delta): if cast.is_colliding(): line.points[1].y = line.to_local(cast.get_collision_point()).y line.visible = true sparks.global_position = cast.get_collision_point() sparks.emitting = true var collider = cast.get_collider() if collider.is_in_group("player_hitbox") or collider.is_in_group("msx"): collider.get_parent().die() else: line.visible = false sparks.emitting = false func switch_action(): cast.enabled = false off_time = INF on_time = 0 func _enable_laser(): cast.enabled = true timer.wait_time = on_time timer.connect("timeout", self, "_disable_laser", [], CONNECT_ONESHOT) timer.start() func _disable_laser(): cast.enabled = false timer.wait_time = off_time timer.connect("timeout", self, "_enable_laser", [], CONNECT_ONESHOT) timer.start()