mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
f96b26b75a
* yers * vars * map changes * some comments (clearly not stolen from items) * fix component * summary
29 lines
840 B
Plaintext
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)
|