diff --git a/code/datums/beam.dm b/code/datums/beam.dm
index d97ee9a7..2622b6ae 100644
--- a/code/datums/beam.dm
+++ b/code/datums/beam.dm
@@ -83,6 +83,7 @@
elements.Cut()
/datum/beam/Destroy()
+ finished = TRUE
Reset()
target = null
origin = null
@@ -100,7 +101,7 @@
var/length = round(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement
for(N in 0 to length-1 step 32)//-1 as we want < not <=, but we want the speed of X in Y to Z and step X
- if(QDELETED(src) || finished)
+ if(finished)
break
var/obj/effect/ebeam/X = new beam_type(origin_oldloc)
X.owner = src
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 1515485a..0df43ecc 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -166,7 +166,7 @@
playsound(src.loc, sound_engine_alert1, 55, 0)
if (prob(5))
playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, 1, extrarange = 10)
- zapStuff(src, 5, min(genlev, 20000))
+ zapStuff(src, 10, genlev)
if (!grumping && grump >= 100 && prob(5))
grumping = 1
playsound(src.loc, "sound/machines/engine_grump1.ogg", 50, 0)
@@ -178,7 +178,7 @@
playsound(src.loc, sound_engine_alert2, 55, 0)
if (prob(10)) // lowering a bit more
playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, 1, extrarange = 10)
- zapStuff(src, 5, min(genlev, 20000))
+ zapStuff(src, 10, genlev)
if (prob(5))
src.visible_message("[src] starts smoking!")
if (!grumping && grump >= 100 && prob(10)) // probably not good if this happens several times in a row
@@ -210,21 +210,31 @@
if (prob(get_dist(W,src.loc)*6))
continue
W.deconstruct(FALSE)
- for (var/mob/living/M in range(6, src.loc))
+ for (var/mob/living/M in range(9, src.loc))
shake_camera(M, 3, 16)
grumping = 0
grump -= 30
if (prob(33)) // lowered because all the DEL procs related to zap are stacking up in the profiler
if(prob(5))
playsound(src.loc, sound_bigzap, 100, 1, extrarange = 10)
- zapStuff(src, 5, min(genlev, 30000)) //BIG ZAP
+ zapStuff(src, 10, genlev*2) //BIG ZAP
else
playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, 1, extrarange = 10)
- zapStuff(src, 5, min(genlev, 20000))
+ zapStuff(src, 10, genlev)
if(prob(5))
src.visible_message("[src] [pick("rumbles", "groans", "shudders", "grustles", "hums", "thrums")] [pick("ominously", "oddly", "strangely", "oddly", "worringly", "softly", "loudly")]!")
else if (prob(2))
src.visible_message("[src] hungers!")
+ shake_animation(1)
+ playsound(loc, 'sound/machines/clockcult/steam_whoosh.ogg', 75, TRUE)
+ var/turf/T = get_turf(src)
+ switch(rand(1,3))
+ if(1)
+ T.atmos_spawn_air("co2=25;TEMP=300]")
+ if(2)
+ T.atmos_spawn_air("tritium=5;TEMP=500]")
+ if(3)
+ T.atmos_spawn_air("miasma=10;TEMP=500]") //brapgenerator
..()
/obj/machinery/power/generator/proc/get_menu(include_link = TRUE)
@@ -357,8 +367,13 @@
cold_circ.generator = null
cold_circ = null
-/obj/machinery/power/generator/proc/zapStuff(atom/zapstart, range = 3, power)
- . = zapstart.dir
+/obj/machinery/power/generator/proc/zapStuff(atom/zapstart, range = 5, power, icon_state)
+ playsound(zapstart, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = range)
+ tesla_zap(zapstart, range, power, TESLA_MOB_DAMAGE | TESLA_MOB_STUN)
+ if(prob(10))
+ //REDO THE ZAP. YES, THIS MEANS FUCK YOU.
+ zapStuff(zapstart, range*2, power)
+ /*. = zapstart.dir
if(power < 1000)
return
@@ -424,3 +439,4 @@
zapStuff(target_structure, 5, power / 2)
else
zapStuff(target_structure, 5, power / 1.5)
+ */
diff --git a/hyperstation/code/modules/power/reactor/rbmk.dm b/hyperstation/code/modules/power/reactor/rbmk.dm
index 39faa817..db8747ec 100644
--- a/hyperstation/code/modules/power/reactor/rbmk.dm
+++ b/hyperstation/code/modules/power/reactor/rbmk.dm
@@ -14,7 +14,7 @@
#define RBMK_MAX_CRITICALITY 3 //No more criticality than N for now.
//#define RBMK_POWER_FLAVOURISER 1000 //To turn those KWs into something usable
-#define RBMK_POWER_FLAVOURISER 2000 //Let's use double for now.
+#define RBMK_POWER_FLAVOURISER 5000 //Let's use double for now.
//Math. Lame.
#define KPA_TO_PSI(A) (A/6.895)
@@ -97,7 +97,7 @@ The reactor CHEWS through moderator. It does not do this slowly. Be very careful
var/next_slowprocess = 0
var/gas_absorption_effectiveness = 0.5
var/gas_absorption_constant = 0.5 //We refer to this one as it's set on init, randomized.
- var/minimum_coolant_level = 4
+ var/minimum_coolant_level = 2
var/warning = FALSE //Have we begun warning the crew of their impending death?
var/next_warning = 0 //To avoid spam.
var/last_power_produced = 0 //For logging purposes