randomgeon/player/weapons/projectile_lightning.gd
Dan Baker d0c2a7b3c8 Adds lightning projectile
Implements a lightning projectile with visual effects.
The lightning is created using a series of bolt components that dynamically adjust their shape.
Also refactors the projectile system to use a base class.

Removes unused modifiers from player script.
2025-05-05 16:42:51 +01:00

30 lines
728 B
GDScript

class_name ProjectileLightning
extends ProjectileBase
@export var line_width: float = 1
@onready var lightning: Array = get_children()
func _init() -> void:
#super._init()
Log.pr("ProjectileLightning _init")
func _ready():
lifetime_timer = Timer.new()
add_child(lifetime_timer)
lifetime_timer.one_shot = true
lifetime_timer.wait_time = lifetime
lifetime_timer.connect("timeout", _on_lifetime_timeout)
lifetime_timer.start()
emit_signal("on_spawned", self)
connect("body_entered", _on_body_entered)
func _process(_delta):
for child in lightning:
child.goal_point = target_position
func _physics_process(delta):
position += direction * speed * delta
func _on_lifetime_timeout():
super._on_lifetime_timeout()