diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 1dd7ce26..50014406 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -194,6 +194,7 @@ #define TRAIT_VIRILE "virile" //you have 20% more chance of impreg #define TRAIT_MACROPHILE "macrophile" //likes the big #define TRAIT_MICROPHILE "microphile" //likes the small +#define TRAIT_APATHETIC "apathetic" //doesn't care #define TRAIT_TOUGH "tough" //you have 10% more maxhealth #define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 1b02a0f1..dc21a916 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -16,6 +16,7 @@ desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess." value = 1 category = CATEGORY_MOODS + mob_trait = TRAIT_APATHETIC mood_quirk = TRUE medical_record_text = "Patient was administered the Apathy Evaluation Scale but did not bother to complete it." diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 4b91526b..6182befe 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -19,12 +19,6 @@ if(SSticker.mode) SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now - //watching someone die is traumatic - for(var/mob/living/carbon/human/H in oview(5, src)) - SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) - if(prob(10)) //10% chance to pump adrenaline into their body - H.jitteriness += 5 - /mob/living/carbon/gib(no_brain, no_organs, no_bodyparts) var/atom/Tsec = drop_location() for(var/mob/M in src) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index f61c8741..a589df81 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -52,6 +52,14 @@ if(is_devil(src)) INVOKE_ASYNC(is_devil(src), /datum/antagonist/devil.proc/beginResurrectionCheck, src) + //watching someone die is traumatic + for(var/mob/living/carbon/human/C in oview(5, src)) + if(C.mind) //We don't need to give this to anything that doesn't have a mind. That's wasted processing. + if(!HAS_TRAIT(C, TRAIT_APATHETIC) || !C.mind.assigned_role == "Medical Doctor") //Shamelessly stolen from the Doctor's Delight + SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "death", /datum/mood_event/deathsaw) + if(prob(10)) //10% chance to pump adrenaline into their body + C.jitteriness += 5 + /mob/living/carbon/human/proc/makeSkeleton() ADD_TRAIT(src, TRAIT_DISFIGURED, TRAIT_GENERIC) set_species(/datum/species/skeleton) diff --git a/hyperstation/code/datums/mood_events/events.dm b/hyperstation/code/datums/mood_events/events.dm index 6ef7c115..5c58d9ab 100644 --- a/hyperstation/code/datums/mood_events/events.dm +++ b/hyperstation/code/datums/mood_events/events.dm @@ -15,10 +15,10 @@ /datum/mood_event/deathsaw description = "I saw someone die!\n" - mood_change = -8 - timeout = 20 MINUTES //takes a long time to get over + mood_change = -5 + timeout = 20 MINUTES //May be fine tuned in the future. /datum/mood_event/healsbadman description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!\n" mood_change = -4 - timeout = 2 MINUTES \ No newline at end of file + timeout = 2 MINUTES