revo-jailbreak/objects/enemy/laser_wall.gd

38 lines
982 B
GDScript

extends "res://objects/enemy/enemy_move_sidesideupdown.gd"
export var laser_rate = 1.0
export var laser_time = 0.5
onready var line = $Laser
onready var cast = $RayCast2D
onready var timer = $Timer
onready var sparks = $SparkParticles
func _ready():
_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.y = cast.get_collision_point().y
sparks.emitting = true
var collider = cast.get_collider()
if collider.is_in_group("player"):
collider.get_parent().die()
else:
line.visible = false
sparks.emitting = false
func _enable_laser():
cast.enabled = true
timer.wait_time = laser_time
timer.connect("timeout", self, "_disable_laser", [], CONNECT_ONESHOT)
timer.start()
func _disable_laser():
cast.enabled = false
timer.wait_time = laser_rate
timer.connect("timeout", self, "_enable_laser", [], CONNECT_ONESHOT)
timer.start()