Files
Paradise/code/modules/power/engines/singularity/particle_accelerator/particle.dm
Ryan 11717823df Power Code Cleanup + Conversion to Regional Powernets [Refactor Only] (#20598)
* initial edits

* more cleanup, yipee

* moving shit around

* dme fixes

* fixes file ticking issue

* more dme fixes + duplicate files???

* Apply suggestions from code review

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* glass floor fixes

* Apply suggestions from code review

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* requested reviews

* the most painful bugfix of my life

* forgot to remove some debug stuff

* fixed issues with excess power

* fuck powernets (fix)

* Update code/modules/power/powernets/README.md

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>

---------

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
2023-05-31 20:55:10 -05:00

59 lines
1.5 KiB
Plaintext

/obj/effect/accelerated_particle
name = "Accelerated Particles"
desc = "Small things moving very fast."
icon = 'icons/obj/machines/particle_accelerator.dmi'
icon_state = "particle"
anchored = TRUE
density = FALSE
var/movement_range = 11
var/energy = 10
/obj/effect/accelerated_particle/weak
movement_range = 9
energy = 5
/obj/effect/accelerated_particle/strong
movement_range = 16
energy = 15
/obj/effect/accelerated_particle/powerful
movement_range = 21
energy = 50
/obj/effect/accelerated_particle/Initialize(loc)
. = ..()
addtimer(CALLBACK(src, PROC_REF(propagate)), 1)
RegisterSignal(src, COMSIG_CROSSED_MOVABLE, PROC_REF(try_irradiate))
RegisterSignal(src, COMSIG_MOVABLE_CROSSED, PROC_REF(try_irradiate))
QDEL_IN(src, movement_range)
/obj/effect/accelerated_particle/proc/try_irradiate(src, atom/A)
if(isliving(A))
var/mob/living/L = A
L.rad_act(energy * 6)
else if(istype(A, /obj/machinery/the_singularitygen))
var/obj/machinery/the_singularitygen/S = A
S.energy += energy
else if(istype(A, /obj/structure/blob))
var/obj/structure/blob/B = A
B.take_damage(energy * 0.6)
movement_range = 0
/obj/effect/accelerated_particle/Bump(obj/singularity/S)
if(!istype(S))
return ..()
S.energy += energy
/obj/effect/accelerated_particle/ex_act(severity)
qdel(src)
/obj/effect/accelerated_particle/singularity_pull()
return
/obj/effect/accelerated_particle/proc/propagate()
addtimer(CALLBACK(src, PROC_REF(propagate)), 1)
if(!step(src,dir))
forceMove(get_step(src, dir))