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