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