24 lines
600 B
GDScript
24 lines
600 B
GDScript
extends Node2D
|
|
class_name Attack
|
|
|
|
@onready var cpu_particles_2d: CPUParticles2D = $CPUParticles2D
|
|
@onready var area_2d: Area2D = $Area2D
|
|
|
|
var initiator: Entity
|
|
|
|
func set_initiator(entity: Entity) -> void:
|
|
position = entity.position
|
|
initiator = entity
|
|
|
|
func _ready() -> void:
|
|
cpu_particles_2d.emitting = true
|
|
cpu_particles_2d.color = initiator.color
|
|
|
|
func _on_cpu_particles_2d_finished() -> void:
|
|
var collisions := area_2d.get_overlapping_bodies()
|
|
for object in collisions:
|
|
if object is Entity and object != initiator:
|
|
object.hit()
|
|
print("attack hit %s" % collisions.size())
|
|
queue_free()
|