extends Trap @onready var ball : Area2D = $Area2D var angular_speed = 0.3 var player_damage = 1 var enemy_damage = 10 @onready var dmg_id = Global.next_dmg_id var id_refreshing = false func _enter_grid() -> void: # Randomize starting position and rotation direction rotate(randf() * TAU) angular_speed = angular_speed * (2 * randi_range(0,1) - 1) func _process(delta: float) -> void: rotate(angular_speed * delta * TAU) for target in ball.get_overlapping_areas(): damage_target(target) for target in ball.get_overlapping_bodies(): damage_target(target) func damage_target(target: CollisionObject2D): # Targets are knocked away from the ball var dir = (ball.global_position - target.global_position).normalized() if(target.get_collision_layer_value(3)): target.hurt(player_damage, dir) else: target.hurt(enemy_damage, 2.5*dir, dmg_id)