Files
Paradise/code/datums/proximity/singulo_proximity_monitor.dm
kyunkyunkyun f96b26b75a /obj/item/projectile --> /obj/projectile (#30411)
* yers

* vars

* map changes

* some comments (clearly not stolen from items)

* fix component

* summary
2025-11-12 10:23:20 +00:00

29 lines
840 B
Plaintext

/datum/proximity_monitor/advanced/singulo
/datum/proximity_monitor/advanced/singulo/on_entered(turf/source, atom/movable/entered, turf/old_loc)
. = ..()
if(!isprojectile(entered))
return
var/angle_to_singulo = ATAN2(host.y - source.y, host.x - source.x)
var/distance_to_singulo = get_dist(source, host)
var/obj/projectile/P = entered
var/distance = distance_to_singulo
var/projectile_angle = P.Angle
var/angle_to_projectile = angle_to_singulo
if(angle_to_projectile == 180)
angle_to_projectile = -180
angle_to_projectile -= projectile_angle
if(angle_to_projectile > 180)
angle_to_projectile -= 360
else if(angle_to_projectile < -180)
angle_to_projectile += 360
if(distance == 0)
qdel(P)
return
projectile_angle += angle_to_projectile / (distance ** 2)
P.damage += 10 / distance
P.set_angle(projectile_angle)