46 lines
1.2 KiB
GDScript
46 lines
1.2 KiB
GDScript
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()
|
|
|
|
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") or collider.is_in_group("msx"):
|
|
collider.get_parent().die()
|
|
else:
|
|
line.visible = false
|
|
sparks.emitting = false
|
|
|
|
func switch_action():
|
|
Console.print("Disable laser")
|
|
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()
|