Files
rgb/scripts/attack.gd
2024-02-24 08:36:06 -06:00

29 lines
962 B
GDScript

extends Node2D
class_name Attack
@onready var cpu_particles_2d: CPUParticles2D = $CPUParticles2D
@onready var area_2d: Area2D = $Area2D
@onready var collision_shape_2d: CollisionShape2D = $Area2D/CollisionShape2D
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
collision_shape_2d.shape.radius = initiator.attack_pow
cpu_particles_2d.initial_velocity_min = float(initiator.attack_pow) * 4.0
cpu_particles_2d.initial_velocity_max = float(initiator.attack_pow) * 4.0
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:
var color_diff = object.color - initiator.color
if abs(color_diff.r) + abs(color_diff.g) + abs(color_diff.b) > 0.5:
object.hit()
queue_free()