diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm index 6f6d7f88f35..5df1a33f66d 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_teleport.dm @@ -33,10 +33,10 @@ var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(3, 0, get_turf(M)) sparks.start() - // - M.Move(pick(trange(50, get_turf(holder)))) + + M.Move(pick(trange(50, T))) sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(M)) + sparks.set_up(3, 0, M.loc) sparks.start() /datum/artifact_effect/teleport/DoEffectPulse() @@ -52,8 +52,8 @@ var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() sparks.set_up(3, 0, get_turf(M)) sparks.start() - // - M.loc = pick(orange(get_turf(T), 50)) + + M.Move(pick(trange(50, T))) sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(M)) + sparks.set_up(3, 0, M.loc) sparks.start() diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 771d1855d4e..fb62f493259 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -241,9 +241,11 @@ if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) - //adjusted range so that a power of 300 (pretty high) results in 8 tiles, roughly the distance from the core to the engine monitoring room. - for(var/mob/living/l in range(src, round(sqrt(power / 5)))) - var/rads = (power / 10) * sqrt( 1 / get_dist(l, src) ) + //adjusted range so that a power of 170 (pretty high) results in 9 tiles, roughly the distance from the core to the engine monitoring room. + //note that the rads given at the maximum range is a constant 0.2 - as power increases the maximum range merely increases. + for(var/mob/living/l in range(src, round(sqrt(power / 2)))) + var/radius = max(get_dist(l, src), 1) + var/rads = (power / 10) * ( 1 / (radius**2) ) l.apply_effect(rads, IRRADIATE) power -= (power/DECAY_FACTOR)**3 //energy losses due to radiation