diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index dbe00407d7ef..3896cd1f9ded 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -48,6 +48,10 @@ if(HAS_TRAIT(src, TRAIT_HARDCORE) || MODE_HAS_TOGGLEABLE_FLAG(MODE_HARDCORE_PERMA)) if(!(species.flags & IS_SYNTHETIC)) // Synths wont perma status_flags |= PERMANENTLY_DEAD + if(HAS_TRAIT(src, TRAIT_INTENT_EYES)) //their eyes need to be 'offline' + r_eyes = 0 + g_eyes = 0 + b_eyes = 0 disable_special_flags() disable_lights() disable_special_items() @@ -59,6 +63,7 @@ //Handle species-specific deaths. if(species) species.handle_death(src, gibbed) + update_body() //if species handle_death or other procs change body in some way after death, this is what will update the body. SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MARINE_DEATH, src, gibbed) diff --git a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm index 874684480d15..b9044becb6f5 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm @@ -1,6 +1,7 @@ /datum/species/synthetic/colonial/working_joe name = SYNTH_WORKING_JOE name_plural = "Working Joes" + death_message = "violently gargles fluid and seizes up, the glow in their eyes dimming..." uses_ethnicity = FALSE burn_mod = 0.65 // made for hazardous environments, withstanding temperatures up to 1210 degrees mob_inherent_traits = list(TRAIT_SUPER_STRONG, TRAIT_INTENT_EYES, TRAIT_EMOTE_CD_EXEMPT, TRAIT_CANNOT_EAT) @@ -14,6 +15,11 @@ . = ..() give_action(joe, /datum/action/joe_emote_panel) +// Special death noise for Working Joe +/datum/species/synthetic/colonial/working_joe/handle_death(mob/living/carbon/human/dying_joe, gibbed) + if(!gibbed) //A gibbed Joe won't have a death rattle + playsound(dying_joe.loc, pick_weight(list('sound/voice/joe/death_normal.ogg' = 75, 'sound/voice/joe/death_silence.ogg' = 10, 'sound/voice/joe/death_tomorrow.ogg' = 10,'sound/voice/joe/death_dream.ogg' = 5)), 25, FALSE) + return ..() /// Open the WJ's emote panel, which allows them to use voicelines /datum/species/synthetic/colonial/working_joe/proc/open_emote_panel() diff --git a/sound/voice/joe/death_dream.ogg b/sound/voice/joe/death_dream.ogg new file mode 100644 index 000000000000..366890711fe4 Binary files /dev/null and b/sound/voice/joe/death_dream.ogg differ diff --git a/sound/voice/joe/death_normal.ogg b/sound/voice/joe/death_normal.ogg new file mode 100644 index 000000000000..b1afd713e094 Binary files /dev/null and b/sound/voice/joe/death_normal.ogg differ diff --git a/sound/voice/joe/death_silence.ogg b/sound/voice/joe/death_silence.ogg new file mode 100644 index 000000000000..fea5080ccc99 Binary files /dev/null and b/sound/voice/joe/death_silence.ogg differ diff --git a/sound/voice/joe/death_tomorrow.ogg b/sound/voice/joe/death_tomorrow.ogg new file mode 100644 index 000000000000..dbb134005e5e Binary files /dev/null and b/sound/voice/joe/death_tomorrow.ogg differ