diff --git a/code/game/vehicles/spacepods/spacepod.dm b/code/game/vehicles/spacepods/spacepod.dm
index 4b1bba60671..91d3b5935a0 100644
--- a/code/game/vehicles/spacepods/spacepod.dm
+++ b/code/game/vehicles/spacepods/spacepod.dm
@@ -127,6 +127,7 @@
occupant2 << "[i]"
if(i == 0)
explosion(loc, 2, 4, 8)
+ qdel(src)
sleep(10)
update_icons()
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 279755cc813..86f500aa015 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -203,36 +203,40 @@
src << "You feel fatigued."
if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit))
H.play_xylophone()
- else if(lying) // /vg/: For hugs. This is how update_icon figgers it out, anyway. - N3X15
- var/t_him = "it"
- if (src.gender == MALE)
- t_him = "him"
- else if (src.gender == FEMALE)
- t_him = "her"
- if (istype(src,/mob/living/carbon/human) && src:w_uniform)
- var/mob/living/carbon/human/H = src
- H.w_uniform.add_fingerprint(M)
- src.sleeping = max(0,src.sleeping-5)
- if(src.sleeping == 0)
- src.resting = 0
- AdjustParalysis(-3)
- AdjustStunned(-3)
- AdjustWeakened(-3)
- playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- M.visible_message( \
- "\blue [M] shakes [src] trying to wake [t_him] up!", \
- "\blue You shake [src] trying to wake [t_him] up!", \
- )
- // BEGIN HUGCODE - N3X
else
- if (istype(src,/mob/living/carbon/human) && src:w_uniform)
- var/mob/living/carbon/human/H = src
- H.w_uniform.add_fingerprint(M)
- playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
- M.visible_message( \
- "\blue [M] gives [src] a [pick("hug","warm embrace")].", \
- "\blue You hug [src].", \
- )
+ if(player_logged)
+ M.visible_message("[M] shakes [src], but they do not respond. Probably suffering from SSD.", \
+ "You shake [src], but they are unresponsive. Probably suffering from SSD.")
+ if(lying) // /vg/: For hugs. This is how update_icon figgers it out, anyway. - N3X15
+ var/t_him = "it"
+ if (src.gender == MALE)
+ t_him = "him"
+ else if (src.gender == FEMALE)
+ t_him = "her"
+ if (istype(src,/mob/living/carbon/human) && src:w_uniform)
+ var/mob/living/carbon/human/H = src
+ H.w_uniform.add_fingerprint(M)
+ src.sleeping = max(0,src.sleeping-5)
+ if(src.sleeping == 0)
+ src.resting = 0
+ AdjustParalysis(-3)
+ AdjustStunned(-3)
+ AdjustWeakened(-3)
+ playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ M.visible_message( \
+ "\blue [M] shakes [src] trying to wake [t_him] up!", \
+ "\blue You shake [src] trying to wake [t_him] up!", \
+ )
+ // BEGIN HUGCODE - N3X
+ else
+ if (istype(src,/mob/living/carbon/human) && src:w_uniform)
+ var/mob/living/carbon/human/H = src
+ H.w_uniform.add_fingerprint(M)
+ playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+ M.visible_message( \
+ "\blue [M] gives [src] a [pick("hug","warm embrace")].", \
+ "\blue You hug [src].", \
+ )
/mob/living/carbon/proc/eyecheck()
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 7906eac6111..e5145332701 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -435,30 +435,16 @@ emp_act
add_blood(source)
bloody_hands = amount
bloody_hands_mob = source
- if(istype(source,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = source
- if(H.species.bloodflags & BLOOD_GREEN)
- update_inv_gloves(1,1) //updates on-mob overlays for bloody hands and/or bloody gloves
- else
- update_inv_gloves(1,0) //updates on-mob overlays for bloody hands and/or bloody gloves
- else
- update_inv_gloves(1,0) //updates on-mob overlays for bloody hands and/or bloody gloves
+ update_inv_gloves(1) //updates on-mob overlays for bloody hands and/or bloody gloves
/mob/living/carbon/human/proc/bloody_body(var/mob/living/source)
if(wear_suit)
wear_suit.add_blood(source)
- update_inv_wear_suit(0,0)
+ update_inv_wear_suit(0)
return
if(w_uniform)
w_uniform.add_blood(source)
- if(istype(source,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = source
- if(H.species.bloodflags & BLOOD_GREEN)
- update_inv_w_uniform(1,1)
- else
- update_inv_w_uniform(1,0)
- else
- update_inv_w_uniform(1,0)
+ update_inv_w_uniform(1)
/mob/living/carbon/human/proc/handle_suit_punctures(var/damtype, var/damage)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 4c03256ecb8..6a36b6ae3d7 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1017,6 +1017,10 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
if(status_flags & GODMODE) return 0
+ //SSD check, if a logged player is awake put them back to sleep!
+ if(player_logged && sleeping < 2)
+ sleeping = 2
+
if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP
blinded = 1
silent = 0
@@ -1093,7 +1097,10 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
adjustStaminaLoss(-10)
adjustHalLoss(-3)
if (mind)
- if((mind.active && client != null) || immune_to_ssd) //This also checks whether a client is connected, if not, sleep is not reduced.
+ //Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of stoxin or similar.
+ if(player_logged)
+ sleeping = max(sleeping-1, 2)
+ else
sleeping = max(sleeping-1, 0)
blinded = 1
stat = UNCONSCIOUS
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index f88577f2597..bde2a71847e 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -587,7 +587,7 @@ proc/get_damage_icon_part(damage_state, body_part)
/* --------------------------------------- */
//vvvvvv UPDATE_INV PROCS vvvvvv
-/mob/living/carbon/human/update_inv_w_uniform(var/update_icons=1,var/green=0)
+/mob/living/carbon/human/update_inv_w_uniform(var/update_icons=1)
if(w_uniform && istype(w_uniform, /obj/item/clothing/under) )
w_uniform.screen_loc = ui_iclothing
var/t_color = w_uniform._color
@@ -651,7 +651,7 @@ proc/get_damage_icon_part(damage_state, body_part)
if(update_icons) update_icons()
-/mob/living/carbon/human/update_inv_gloves(var/update_icons=1,var/green=0)
+/mob/living/carbon/human/update_inv_gloves(var/update_icons=1)
if(gloves)
var/t_state = gloves.item_state
if(!t_state) t_state = gloves.icon_state
@@ -724,7 +724,7 @@ proc/get_damage_icon_part(damage_state, body_part)
overlays_standing[EARS_LAYER] = null
if(update_icons) update_icons()
-/mob/living/carbon/human/update_inv_shoes(var/update_icons=1,var/green=0)
+/mob/living/carbon/human/update_inv_shoes(var/update_icons=1)
if(shoes)
var/image/standing
@@ -765,7 +765,7 @@ proc/get_damage_icon_part(damage_state, body_part)
if(update_icons) update_icons()
-/mob/living/carbon/human/update_inv_head(var/update_icons=1,var/green=0)
+/mob/living/carbon/human/update_inv_head(var/update_icons=1)
if(head)
head.screen_loc = ui_head //TODO
var/image/standing
diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm
index fda8ee8c755..7d16adc5539 100644
--- a/code/modules/mob/living/carbon/species.dm
+++ b/code/modules/mob/living/carbon/species.dm
@@ -380,7 +380,6 @@
the secrets of their empire to their allies."
flags = HAS_LIPS | HAS_UNDERWEAR
- bloodflags = BLOOD_GREEN
bodyflags = HAS_SKIN_COLOR
flesh_color = "#8CD7A3"
@@ -517,9 +516,11 @@
brute_mod = 0.8
flags = IS_WHITELISTED
- bloodflags = BLOOD_GREEN
bodyflags = FEET_CLAWS
+ blood_color = "#FB9800"
+
+
/datum/species/slime
name = "Slime People"
default_language = "Galactic Common"
@@ -557,6 +558,8 @@
flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT
+ blood_color = "#A200FF"
+
/datum/species/grey/handle_dna(var/mob/living/carbon/C, var/remove)
if(!remove)
C.dna.SetSEState(REMOTETALKBLOCK,1,1)
diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm
index cf2f233e7c5..b349e3b15f7 100644
--- a/code/modules/mob/living/login.dm
+++ b/code/modules/mob/living/login.dm
@@ -4,6 +4,9 @@
//Mind updates
sync_mind()
+ //If they're SSD, remove it so they can wake back up.
+ player_logged = 0
+
//Round specific stuff like hud updates
if(ticker && ticker.mode)
var/ref = "\ref[mind]"
diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm
index 8fdcdb0ec46..b79d822d80b 100644
--- a/code/modules/mob/living/logout.dm
+++ b/code/modules/mob/living/logout.dm
@@ -1,7 +1,9 @@
/mob/living/Logout()
..()
if (mind)
- if(!key) //key and mind have become seperated.
+ if(!key) //key and mind have become seperated. I believe this is for when a staff member aghosts.
mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
- if(!immune_to_ssd && sleeping < 2 && mind.active)
- sleeping = 2 //This causes instant sleep, but does not prolong it. See life.dm for furthering SSD.
+ //This causes instant sleep and tags a player as SSD. See life.dm for furthering SSD.
+ if(sleeping < 2 && mind.active)
+ sleeping = 2
+ player_logged = 1
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 1c8e7b71d65..e1dfc6907bb 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -6,7 +6,6 @@
var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS
var/list/alarms_to_show = list()
var/list/alarms_to_clear = list()
- immune_to_ssd = 1
var/list/hud_list[10]
var/list/speech_synthesizer_langs = list() //which languages can be vocalized by the speech synthesizer
var/list/alarm_types_show = list("Motion" = 0, "Fire" = 0, "Atmosphere" = 0, "Power" = 0, "Camera" = 0)
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index d508eb7fb92..e5e7f502194 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -219,7 +219,8 @@
var/has_limbs = 1 //Whether this mob have any limbs he can move with
var/can_stand = 1 //Whether this mob have ability to stand
- var/immune_to_ssd = 0
+ //SSD var, changed it up some so people can have special things happen for different mobs when SSD.
+ var/player_logged = 0
var/turf/listed_turf = null //the current turf being examined in the stat panel
var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes
diff --git a/code/setup.dm b/code/setup.dm
index c18d1ac0d12..544d879df9d 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -835,9 +835,7 @@ var/list/restricted_camera_networks = list( //Those networks can only be accesse
#define NO_INTORGANS 32768
//Species Blood Flags
-#define BLOOD_GREEN 1
-#define BLOOD_BLUE 2
-#define BLOOD_SLIME 4
+#define BLOOD_SLIME 1
//Species Body Flags
#define FEET_CLAWS 1
#define FEET_PADDED 2