diff --git a/baystation12.dme b/baystation12.dme
index dd713dda42c..a76ace3dad6 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -5,6 +5,284 @@
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
+#define FILE_DIR ".git"
+#define FILE_DIR ".git/hooks"
+#define FILE_DIR ".git/info"
+#define FILE_DIR ".git/logs"
+#define FILE_DIR ".git/logs/refs"
+#define FILE_DIR ".git/logs/refs/heads"
+#define FILE_DIR ".git/logs/refs/remotes"
+#define FILE_DIR ".git/logs/refs/remotes/github"
+#define FILE_DIR ".git/logs/refs/remotes/origin"
+#define FILE_DIR ".git/objects"
+#define FILE_DIR ".git/objects/00"
+#define FILE_DIR ".git/objects/01"
+#define FILE_DIR ".git/objects/02"
+#define FILE_DIR ".git/objects/03"
+#define FILE_DIR ".git/objects/04"
+#define FILE_DIR ".git/objects/05"
+#define FILE_DIR ".git/objects/06"
+#define FILE_DIR ".git/objects/07"
+#define FILE_DIR ".git/objects/08"
+#define FILE_DIR ".git/objects/09"
+#define FILE_DIR ".git/objects/0a"
+#define FILE_DIR ".git/objects/0b"
+#define FILE_DIR ".git/objects/0c"
+#define FILE_DIR ".git/objects/0d"
+#define FILE_DIR ".git/objects/0e"
+#define FILE_DIR ".git/objects/0f"
+#define FILE_DIR ".git/objects/10"
+#define FILE_DIR ".git/objects/11"
+#define FILE_DIR ".git/objects/12"
+#define FILE_DIR ".git/objects/13"
+#define FILE_DIR ".git/objects/14"
+#define FILE_DIR ".git/objects/15"
+#define FILE_DIR ".git/objects/16"
+#define FILE_DIR ".git/objects/17"
+#define FILE_DIR ".git/objects/18"
+#define FILE_DIR ".git/objects/19"
+#define FILE_DIR ".git/objects/1a"
+#define FILE_DIR ".git/objects/1b"
+#define FILE_DIR ".git/objects/1c"
+#define FILE_DIR ".git/objects/1d"
+#define FILE_DIR ".git/objects/1e"
+#define FILE_DIR ".git/objects/1f"
+#define FILE_DIR ".git/objects/20"
+#define FILE_DIR ".git/objects/21"
+#define FILE_DIR ".git/objects/22"
+#define FILE_DIR ".git/objects/23"
+#define FILE_DIR ".git/objects/24"
+#define FILE_DIR ".git/objects/25"
+#define FILE_DIR ".git/objects/26"
+#define FILE_DIR ".git/objects/27"
+#define FILE_DIR ".git/objects/28"
+#define FILE_DIR ".git/objects/29"
+#define FILE_DIR ".git/objects/2a"
+#define FILE_DIR ".git/objects/2b"
+#define FILE_DIR ".git/objects/2c"
+#define FILE_DIR ".git/objects/2d"
+#define FILE_DIR ".git/objects/2e"
+#define FILE_DIR ".git/objects/2f"
+#define FILE_DIR ".git/objects/30"
+#define FILE_DIR ".git/objects/31"
+#define FILE_DIR ".git/objects/32"
+#define FILE_DIR ".git/objects/33"
+#define FILE_DIR ".git/objects/34"
+#define FILE_DIR ".git/objects/35"
+#define FILE_DIR ".git/objects/36"
+#define FILE_DIR ".git/objects/37"
+#define FILE_DIR ".git/objects/38"
+#define FILE_DIR ".git/objects/39"
+#define FILE_DIR ".git/objects/3a"
+#define FILE_DIR ".git/objects/3b"
+#define FILE_DIR ".git/objects/3c"
+#define FILE_DIR ".git/objects/3d"
+#define FILE_DIR ".git/objects/3e"
+#define FILE_DIR ".git/objects/3f"
+#define FILE_DIR ".git/objects/40"
+#define FILE_DIR ".git/objects/41"
+#define FILE_DIR ".git/objects/42"
+#define FILE_DIR ".git/objects/43"
+#define FILE_DIR ".git/objects/44"
+#define FILE_DIR ".git/objects/45"
+#define FILE_DIR ".git/objects/46"
+#define FILE_DIR ".git/objects/47"
+#define FILE_DIR ".git/objects/48"
+#define FILE_DIR ".git/objects/49"
+#define FILE_DIR ".git/objects/4a"
+#define FILE_DIR ".git/objects/4b"
+#define FILE_DIR ".git/objects/4c"
+#define FILE_DIR ".git/objects/4d"
+#define FILE_DIR ".git/objects/4e"
+#define FILE_DIR ".git/objects/4f"
+#define FILE_DIR ".git/objects/50"
+#define FILE_DIR ".git/objects/51"
+#define FILE_DIR ".git/objects/52"
+#define FILE_DIR ".git/objects/53"
+#define FILE_DIR ".git/objects/54"
+#define FILE_DIR ".git/objects/55"
+#define FILE_DIR ".git/objects/56"
+#define FILE_DIR ".git/objects/57"
+#define FILE_DIR ".git/objects/58"
+#define FILE_DIR ".git/objects/59"
+#define FILE_DIR ".git/objects/5a"
+#define FILE_DIR ".git/objects/5b"
+#define FILE_DIR ".git/objects/5c"
+#define FILE_DIR ".git/objects/5d"
+#define FILE_DIR ".git/objects/5e"
+#define FILE_DIR ".git/objects/5f"
+#define FILE_DIR ".git/objects/60"
+#define FILE_DIR ".git/objects/61"
+#define FILE_DIR ".git/objects/62"
+#define FILE_DIR ".git/objects/63"
+#define FILE_DIR ".git/objects/64"
+#define FILE_DIR ".git/objects/65"
+#define FILE_DIR ".git/objects/66"
+#define FILE_DIR ".git/objects/67"
+#define FILE_DIR ".git/objects/68"
+#define FILE_DIR ".git/objects/69"
+#define FILE_DIR ".git/objects/6a"
+#define FILE_DIR ".git/objects/6b"
+#define FILE_DIR ".git/objects/6c"
+#define FILE_DIR ".git/objects/6d"
+#define FILE_DIR ".git/objects/6e"
+#define FILE_DIR ".git/objects/6f"
+#define FILE_DIR ".git/objects/70"
+#define FILE_DIR ".git/objects/71"
+#define FILE_DIR ".git/objects/72"
+#define FILE_DIR ".git/objects/73"
+#define FILE_DIR ".git/objects/74"
+#define FILE_DIR ".git/objects/75"
+#define FILE_DIR ".git/objects/76"
+#define FILE_DIR ".git/objects/77"
+#define FILE_DIR ".git/objects/78"
+#define FILE_DIR ".git/objects/79"
+#define FILE_DIR ".git/objects/7a"
+#define FILE_DIR ".git/objects/7b"
+#define FILE_DIR ".git/objects/7c"
+#define FILE_DIR ".git/objects/7d"
+#define FILE_DIR ".git/objects/7e"
+#define FILE_DIR ".git/objects/7f"
+#define FILE_DIR ".git/objects/80"
+#define FILE_DIR ".git/objects/81"
+#define FILE_DIR ".git/objects/82"
+#define FILE_DIR ".git/objects/83"
+#define FILE_DIR ".git/objects/84"
+#define FILE_DIR ".git/objects/85"
+#define FILE_DIR ".git/objects/86"
+#define FILE_DIR ".git/objects/87"
+#define FILE_DIR ".git/objects/88"
+#define FILE_DIR ".git/objects/89"
+#define FILE_DIR ".git/objects/8a"
+#define FILE_DIR ".git/objects/8b"
+#define FILE_DIR ".git/objects/8c"
+#define FILE_DIR ".git/objects/8d"
+#define FILE_DIR ".git/objects/8e"
+#define FILE_DIR ".git/objects/8f"
+#define FILE_DIR ".git/objects/90"
+#define FILE_DIR ".git/objects/91"
+#define FILE_DIR ".git/objects/92"
+#define FILE_DIR ".git/objects/93"
+#define FILE_DIR ".git/objects/94"
+#define FILE_DIR ".git/objects/95"
+#define FILE_DIR ".git/objects/96"
+#define FILE_DIR ".git/objects/97"
+#define FILE_DIR ".git/objects/98"
+#define FILE_DIR ".git/objects/99"
+#define FILE_DIR ".git/objects/9a"
+#define FILE_DIR ".git/objects/9b"
+#define FILE_DIR ".git/objects/9c"
+#define FILE_DIR ".git/objects/9d"
+#define FILE_DIR ".git/objects/9e"
+#define FILE_DIR ".git/objects/9f"
+#define FILE_DIR ".git/objects/a0"
+#define FILE_DIR ".git/objects/a1"
+#define FILE_DIR ".git/objects/a2"
+#define FILE_DIR ".git/objects/a3"
+#define FILE_DIR ".git/objects/a4"
+#define FILE_DIR ".git/objects/a5"
+#define FILE_DIR ".git/objects/a6"
+#define FILE_DIR ".git/objects/a7"
+#define FILE_DIR ".git/objects/a8"
+#define FILE_DIR ".git/objects/a9"
+#define FILE_DIR ".git/objects/aa"
+#define FILE_DIR ".git/objects/ab"
+#define FILE_DIR ".git/objects/ac"
+#define FILE_DIR ".git/objects/ad"
+#define FILE_DIR ".git/objects/ae"
+#define FILE_DIR ".git/objects/af"
+#define FILE_DIR ".git/objects/b0"
+#define FILE_DIR ".git/objects/b1"
+#define FILE_DIR ".git/objects/b2"
+#define FILE_DIR ".git/objects/b3"
+#define FILE_DIR ".git/objects/b4"
+#define FILE_DIR ".git/objects/b5"
+#define FILE_DIR ".git/objects/b6"
+#define FILE_DIR ".git/objects/b7"
+#define FILE_DIR ".git/objects/b8"
+#define FILE_DIR ".git/objects/b9"
+#define FILE_DIR ".git/objects/ba"
+#define FILE_DIR ".git/objects/bb"
+#define FILE_DIR ".git/objects/bc"
+#define FILE_DIR ".git/objects/bd"
+#define FILE_DIR ".git/objects/be"
+#define FILE_DIR ".git/objects/bf"
+#define FILE_DIR ".git/objects/c0"
+#define FILE_DIR ".git/objects/c1"
+#define FILE_DIR ".git/objects/c2"
+#define FILE_DIR ".git/objects/c3"
+#define FILE_DIR ".git/objects/c4"
+#define FILE_DIR ".git/objects/c5"
+#define FILE_DIR ".git/objects/c6"
+#define FILE_DIR ".git/objects/c7"
+#define FILE_DIR ".git/objects/c8"
+#define FILE_DIR ".git/objects/c9"
+#define FILE_DIR ".git/objects/ca"
+#define FILE_DIR ".git/objects/cb"
+#define FILE_DIR ".git/objects/cc"
+#define FILE_DIR ".git/objects/cd"
+#define FILE_DIR ".git/objects/ce"
+#define FILE_DIR ".git/objects/cf"
+#define FILE_DIR ".git/objects/d0"
+#define FILE_DIR ".git/objects/d1"
+#define FILE_DIR ".git/objects/d2"
+#define FILE_DIR ".git/objects/d3"
+#define FILE_DIR ".git/objects/d4"
+#define FILE_DIR ".git/objects/d5"
+#define FILE_DIR ".git/objects/d6"
+#define FILE_DIR ".git/objects/d7"
+#define FILE_DIR ".git/objects/d8"
+#define FILE_DIR ".git/objects/d9"
+#define FILE_DIR ".git/objects/da"
+#define FILE_DIR ".git/objects/db"
+#define FILE_DIR ".git/objects/dc"
+#define FILE_DIR ".git/objects/dd"
+#define FILE_DIR ".git/objects/de"
+#define FILE_DIR ".git/objects/df"
+#define FILE_DIR ".git/objects/e0"
+#define FILE_DIR ".git/objects/e1"
+#define FILE_DIR ".git/objects/e2"
+#define FILE_DIR ".git/objects/e3"
+#define FILE_DIR ".git/objects/e4"
+#define FILE_DIR ".git/objects/e5"
+#define FILE_DIR ".git/objects/e6"
+#define FILE_DIR ".git/objects/e7"
+#define FILE_DIR ".git/objects/e8"
+#define FILE_DIR ".git/objects/e9"
+#define FILE_DIR ".git/objects/ea"
+#define FILE_DIR ".git/objects/eb"
+#define FILE_DIR ".git/objects/ec"
+#define FILE_DIR ".git/objects/ed"
+#define FILE_DIR ".git/objects/ee"
+#define FILE_DIR ".git/objects/ef"
+#define FILE_DIR ".git/objects/f0"
+#define FILE_DIR ".git/objects/f1"
+#define FILE_DIR ".git/objects/f2"
+#define FILE_DIR ".git/objects/f3"
+#define FILE_DIR ".git/objects/f4"
+#define FILE_DIR ".git/objects/f5"
+#define FILE_DIR ".git/objects/f6"
+#define FILE_DIR ".git/objects/f7"
+#define FILE_DIR ".git/objects/f8"
+#define FILE_DIR ".git/objects/f9"
+#define FILE_DIR ".git/objects/fa"
+#define FILE_DIR ".git/objects/fb"
+#define FILE_DIR ".git/objects/fc"
+#define FILE_DIR ".git/objects/fd"
+#define FILE_DIR ".git/objects/fe"
+#define FILE_DIR ".git/objects/ff"
+#define FILE_DIR ".git/objects/info"
+#define FILE_DIR ".git/objects/pack"
+#define FILE_DIR ".git/rebase-apply"
+#define FILE_DIR ".git/refs"
+#define FILE_DIR ".git/refs/heads"
+#define FILE_DIR ".git/refs/remotes"
+#define FILE_DIR ".git/refs/remotes/github"
+#define FILE_DIR ".git/refs/remotes/origin"
+#define FILE_DIR ".git/svn"
+#define FILE_DIR ".git/svn/refs"
+#define FILE_DIR ".git/svn/refs/remotes"
+#define FILE_DIR ".git/svn/refs/remotes/git-svn"
#define FILE_DIR "code"
#define FILE_DIR "code/ATMOSPHERICS"
#define FILE_DIR "code/ATMOSPHERICS/components"
@@ -143,6 +421,15 @@
#define FILE_DIR "code/WorkInProgress/organs"
#define FILE_DIR "code/WorkInProgress/SkyMarshal"
#define FILE_DIR "code/WorkInProgress/virus2"
+#define FILE_DIR "config"
+#define FILE_DIR "config/names"
+#define FILE_DIR "data"
+#define FILE_DIR "data/logs"
+#define FILE_DIR "data/logs/2011"
+#define FILE_DIR "data/logs/2011/12-December"
+#define FILE_DIR "data/player_saves"
+#define FILE_DIR "data/player_saves/c"
+#define FILE_DIR "data/player_saves/c/cib"
#define FILE_DIR "html"
#define FILE_DIR "icons"
#define FILE_DIR "icons/effects"
@@ -156,12 +443,14 @@
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/pipes"
#define FILE_DIR "icons/pda_icons"
+#define FILE_DIR "icons/PSD files"
#define FILE_DIR "icons/spideros_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
+#define FILE_DIR "music"
#define FILE_DIR "sound"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/announcer"
@@ -174,6 +463,7 @@
#define FILE_DIR "sound/piano"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/weapons"
+#define FILE_DIR "SQL"
// END_FILE_DIR
// BEGIN_PREFERENCES
#define DEBUG
@@ -795,6 +1085,7 @@
#include "code\modules\mob\living\say.dm"
#include "code\modules\mob\living\blob\blob.dm"
#include "code\modules\mob\living\carbon\carbon.dm"
+#include "code\modules\mob\living\carbon\shock.dm"
#include "code\modules\mob\living\carbon\alien\alien.dm"
#include "code\modules\mob\living\carbon\alien\say.dm"
#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index e67bc80f549..093e3b113cd 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -181,6 +181,8 @@
if (bodytemperature < 283.222)
tally += (283.222 - bodytemperature) / 10 * 1.75
+ if (shock_stage >= 10) tally += 3
+
return tally
/mob/living/carbon/human/Stat()
@@ -2328,4 +2330,4 @@ It can still be worn/put on as normal.
/mob/living/carbon/human/Paralyse(amount)
if(mutations & HULK)
return
- ..()
+ ..()
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 15adc1d1cae..affa676e2c2 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -21,6 +21,9 @@
var/datum/gas_mixture/environment = loc.return_air()
+ // clean all symptoms, they must be set again in this cycle
+ src.disease_symptoms = 0
+
if (stat != 2) //still breathing
//First, resolve location and get a breath
@@ -34,6 +37,8 @@
var/obj/location_as_object = loc
location_as_object.handle_internal_lifeform(src, 0)
+ src.handle_shock()
+
//Apparently, the person who wrote this code designed it so that
//blinded get reset each cycle and then get activated later in the
//code. Very ugly. I dont care. Moving this stuff here so its easy
@@ -992,9 +997,6 @@
for(var/datum/disease/D in viruses)
D.cure()
- // clean all the symptoms incurred by the virus
- src.disease_symptoms = 0
-
if(!virus2)
// the following is silly since it lets you infect people through glass
/*for(var/mob/living/carbon/M in oviewers(4,src))
@@ -1058,65 +1060,36 @@
if ((changeling.geneticdamage > 0))
changeling.geneticdamage = changeling.geneticdamage-1
-/*
- // Commented out so hunger system won't be such shock
- // Damage and effect from not eating
- if(nutrition <= 50)
- if (prob (0.1))
- src << "\red Your stomach rumbles."
- if (prob (10))
- bruteloss++
- if (prob (5))
- src << "You feel very weak."
- weakened += rand(2, 3)
-*/
-/*
-snippets
+ handle_shock()
+ ..()
- if (mach)
- if (machine)
- mach.icon_state = "mach1"
+ if(traumatic_shock >= 80)
+ shock_stage += 1
else
- mach.icon_state = null
+ shock_stage--
+ shock_stage = max(shock_stage, 0)
+ return
- if (!m_flag)
- moved_recently = 0
- m_flag = null
+ if (shock_stage > 60)
+ if(shock_stage == 61)
+ for(var/mob/O in viewers(src, null))
+ O.show_message("[src.name]'s body becomes limp.", 1)
+ Stun(20)
+ lying = 1
+ disease_symptoms |= DISEASE_WHISPER
-
-
- if ((istype(loc, /turf/space) && !( locate(/obj/movable, loc) )))
- var/layers = 20
- // ******* Check
- if (((istype(head, /obj/item/clothing/head) && head.flags & 4) || (istype(wear_mask, /obj/item/clothing/mask) && (!( wear_mask.flags & 4 ) && wear_mask.flags & 8))))
- layers -= 5
- if (istype(w_uniform, /obj/item/clothing/under))
- layers -= 5
- if ((istype(wear_suit, /obj/item/clothing/suit) && wear_suit.flags & 8))
- layers -= 10
- if (layers > oxcheck)
- oxcheck = layers
-
-
- if(bodytemperature < 282.591 && (!firemut))
- if(bodytemperature < 250)
- adjustFireLoss(4)
- updatehealth()
- if(paralysis <= 2) paralysis += 2
- else if(prob(1) && !paralysis)
- if(paralysis <= 5) paralysis += 5
- emote("collapse")
- src << "\red You collapse from the cold!"
- if(bodytemperature > 327.444 && (!firemut))
- if(bodytemperature > 345.444)
- if(!eye_blurry) src << "\red The heat blurs your vision!"
- eye_blurry = max(4, eye_blurry)
- if(prob(3)) adjustFireLoss(rand(1,2))
- else if(prob(3) && !paralysis)
- paralysis += 2
- emote("collapse")
- src << "\red You collapse from heat exaustion!"
- plcheck = t_plasma
- oxcheck = t_oxygen
- G.turf_add(T, G.total_moles())
-*/
\ No newline at end of file
+ if (shock_stage > 100)
+ if(prob(5))
+ Paralyse(50)
+ if(shock_stage >= 30)
+ if(shock_stage == 30) emote("me",1,"is having trouble keeping their eyes open.")
+ eye_blurry = max(2, eye_blurry)
+ stuttering = max(stuttering, 5)
+ bodytemperature = 313.15 // high fever
+ // pain messages
+ if(shock_stage == 10)
+ src << ""+pick("It hurts so much!", "You really need some painkillers..", "Dear god, the pain!")
+ else if(shock_stage == 40)
+ src << ""+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!")
+ else if(shock_stage == 80)
+ src << ""+pick("You see a light at the end of the tunnel!", "You feel like you could die any moment now.", "You're about to lose consciousness.")
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/shock.dm b/code/modules/mob/living/carbon/shock.dm
new file mode 100644
index 00000000000..1a846fc1c49
--- /dev/null
+++ b/code/modules/mob/living/carbon/shock.dm
@@ -0,0 +1,18 @@
+/mob/living/carbon/var/traumatic_shock = 0
+/mob/living/carbon/var/shock_stage = 0
+
+// proc to find out in how much pain the mob is at the moment
+/mob/living/carbon/proc/updateshock()
+ src.traumatic_shock = src.getOxyLoss() + src.getToxLoss() + src.getFireLoss() + 1.5*src.getBruteLoss() + 2*src.getCloneLoss()
+ if(reagents.has_reagent("alkysine"))
+ src.traumatic_shock -= 10
+ if(reagents.has_reagent("inaprovaline"))
+ src.traumatic_shock -= 15
+ if(reagents.has_reagent("synaptizine"))
+ src.traumatic_shock -= 50
+
+ return src.traumatic_shock
+
+
+/mob/living/carbon/proc/handle_shock()
+ updateshock()
\ No newline at end of file