diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index eff680d02c9..8422a2c96f1 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -232,16 +232,16 @@
if(prob(EFFECT_PROB_LOW) && criticalReaction)
visible_message("[exp_on] is gripped in just the right way, enhancing its focus.")
badThingCoeff++
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("[src] malfunctions and destroys [exp_on], lashing its arms out at nearby people!")
for(var/mob/living/m in oview(1, src))
m.apply_damage(15,"brute",pick("head","chest","groin"))
investigate_log("Experimentor dealt minor brute to [m].", "experimentor")
ejectItem(TRUE)
- if(prob(EFFECT_PROB_LOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_LOW-badThingCoeff))
visible_message("[src] malfunctions!")
exp = SCANTYPE_OBLITERATE
- if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
+ else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
visible_message("[src] malfunctions, throwing the [exp_on]!")
var/mob/living/target = locate(/mob/living) in oview(7,src)
if(target)
@@ -259,18 +259,18 @@
cloneCount = badThingCoeff
investigate_log("Experimentor has made a clone of [exp_on]", "experimentor")
ejectItem()
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("[src] malfunctions, melting [exp_on] and leaking radiation!")
radiation_pulse(get_turf(src), 1, 1, 25, 1)
ejectItem(TRUE)
- if(prob(EFFECT_PROB_LOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_LOW-badThingCoeff))
visible_message("[src] malfunctions, spewing toxic waste!")
for(var/turf/T in oview(1, src))
if(!T.density)
if(prob(EFFECT_PROB_VERYHIGH))
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
reagentdecal.reagents.add_reagent("radium", 7)
- if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
+ else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
var/savedName = "[exp_on]"
ejectItem(TRUE)
var/newPath = pickWeighted(valid_items)
@@ -287,7 +287,7 @@
if(prob(EFFECT_PROB_LOW) && criticalReaction)
visible_message("[exp_on] achieves the perfect mix!")
new /obj/item/stack/sheet/mineral/plasma(get_turf(pick(oview(1,src))))
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("[src] destroys [exp_on], leaking dangerous gas!")
chosenchem = pick("carbon","radium","toxin","condensedcapsaicin","mushroomhallucinogen","space_drugs","ethanol","beepskysmash")
var/datum/reagents/R = new/datum/reagents(50)
@@ -300,7 +300,7 @@
smoke.start()
qdel(R)
ejectItem(TRUE)
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("[src]'s chemical chamber has sprung a leak!")
chosenchem = pick("mutationtoxin","nanomachines","sacid")
var/datum/reagents/R = new/datum/reagents(50)
@@ -314,10 +314,10 @@
ejectItem(TRUE)
warn_admins(usr, "[chosenchem] smoke")
investigate_log("Experimentor has released [chosenchem] smoke!", "experimentor")
- if(prob(EFFECT_PROB_LOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_LOW-badThingCoeff))
visible_message("[src] malfunctions, spewing harmless gas.")
throwSmoke(src.loc)
- if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
+ else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
visible_message("[src] melts [exp_on], ionizing the air around it!")
empulse(src.loc, 4, 6)
investigate_log("Experimentor has generated an Electromagnetic Pulse.", "experimentor")
@@ -335,7 +335,7 @@
C.name = "Cup of Suspicious Liquid"
C.desc = "It has a large hazard symbol printed on the side in fading ink."
investigate_log("Experimentor has made a cup of [chosenchem] coffee.", "experimentor")
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
var/turf/start = get_turf(src)
var/mob/M = locate(/mob/living) in view(src, 3)
var/turf/MT = get_turf(M)
@@ -348,12 +348,12 @@
FB.yo = MT.y - start.y
FB.xo = MT.x - start.x
FB.fire()
- if(prob(EFFECT_PROB_LOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_LOW-badThingCoeff))
visible_message("[src] malfunctions, melting [exp_on] and releasing a burst of flame!")
explosion(src.loc, -1, 0, 0, 0, 0, flame_range = 2)
investigate_log("Experimentor started a fire.", "experimentor")
ejectItem(TRUE)
- if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
+ else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
visible_message("[src] malfunctions, melting [exp_on] and leaking hot air!")
var/datum/gas_mixture/env = src.loc.return_air()
var/transfer_moles = 0.25 * env.total_moles()
@@ -367,7 +367,7 @@
air_update_turf()
investigate_log("Experimentor has released hot air.", "experimentor")
ejectItem(TRUE)
- if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
+ else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
visible_message("[src] malfunctions, activating its emergency coolant systems!")
throwSmoke(src.loc)
for(var/mob/living/m in oview(1, src))
@@ -387,7 +387,7 @@
C.name = "Cup of Suspicious Liquid"
C.desc = "It has a large hazard symbol printed on the side in fading ink."
investigate_log("Experimentor has made a cup of [chosenchem] coffee.", "experimentor")
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!")
var/datum/reagents/R = new/datum/reagents(50)
R.my_atom = src
@@ -399,7 +399,7 @@
smoke.start()
qdel(R)
ejectItem(TRUE)
- if(prob(EFFECT_PROB_LOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_LOW-badThingCoeff))
visible_message("[src] malfunctions, shattering [exp_on] and leaking cold air!")
var/datum/gas_mixture/env = src.loc.return_air()
var/transfer_moles = 0.25 * env.total_moles()
@@ -413,7 +413,7 @@
air_update_turf()
investigate_log("Experimentor has released cold air.", "experimentor")
ejectItem(TRUE)
- if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
+ else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
visible_message("[src] malfunctions, releasing a flurry of chilly air as [exp_on] pops out!")
var/datum/effect_system/smoke_spread/smoke = new
smoke.set_up(0, src.loc)
@@ -422,21 +422,20 @@
////////////////////////////////////////////////////////////////////////////////////////////////
if(exp == SCANTYPE_OBLITERATE)
visible_message("[exp_on] activates the crushing mechanism, [exp_on] is destroyed!")
- if(prob(EFFECT_PROB_LOW) && criticalReaction)
- visible_message("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!")
- new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src))))
if(linked_console.linked_lathe)
for(var/material in exp_on.materials)
linked_console.linked_lathe.materials.insert_amount( min((linked_console.linked_lathe.materials.max_amount - linked_console.linked_lathe.materials.total_amount), (exp_on.materials[material])), material)
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ if(prob(EFFECT_PROB_LOW) && criticalReaction)
+ visible_message("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!")
+ new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src))))
+ else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("[src]'s crusher goes way too many levels too high, crushing right through space-time!")
playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3)
investigate_log("Experimentor has triggered the 'throw things' reaction.", "experimentor")
for(var/atom/movable/AM in oview(7,src))
if(!AM.anchored)
AM.throw_at_fast(src,10,1)
-
- if(prob(EFFECT_PROB_LOW-badThingCoeff))
+ else if(prob(EFFECT_PROB_LOW-badThingCoeff))
visible_message("[src]'s crusher goes one level too high, crushing right into space-time!")
playsound(src.loc, 'sound/effects/supermatter.ogg', 50, 1, -3)
investigate_log("Experimentor has triggered the 'minor throw things' reaction.", "experimentor")
@@ -463,7 +462,7 @@
ejectItem()
//Global reactions
- if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
+ if(prob(EFFECT_PROB_VERYLOW-badThingCoeff) && loaded_item)
var/globalMalf = rand(1,100)
if(globalMalf < 15)
visible_message("[src]'s onboard detection system has malfunctioned!")