Ashwalkers are now desensetized to non-ashie deaths, and enjoy witnessing gibbings (#94961)

## About The Pull Request

Closes #94785
Also apparently we never passed dusted and gibbed to update_effects, so
more specific death moodlets didn't update their descriptions. Whoops.

## Changelog
🆑
qol: Ashwalkers are now desensetized to non-ashie deaths, and enjoy
witnessing gibbings
fix: Some specific death moodlets now properly register when their
target has been dusted or gibbed in their description
/🆑
This commit is contained in:
SmArtKar
2026-01-27 21:26:56 +01:00
committed by GitHub
parent e336043462
commit 8d86b42a4e
4 changed files with 28 additions and 4 deletions
+3
View File
@@ -1641,4 +1641,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Object is dangerous to mobs buckled to it
#define TRAIT_DANGEROUS_BUCKLE "dangerous_buckle"
/// Makes the owner desensetized to death, but happy whenever someone gets blown to pieces (as a sacrifice to the necropolis) unless its another worshipper
#define TRAIT_NECROPOLIS_WORSHIP "necropolis_worship"
// END TRAIT DEFINES
+1
View File
@@ -658,6 +658,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FAT_IGNORE_SLOWDOWN" = TRAIT_FAT_IGNORE_SLOWDOWN,
"TRAIT_SPACE_ANT_IMMUNITY" = TRAIT_SPACE_ANT_IMMUNITY,
"TRAIT_BRAIN_TRAUMA_IMMUNITY" = TRAIT_BRAIN_TRAUMA_IMMUNITY,
"TRAIT_NECROPOLIS_WORSHIP" = TRAIT_NECROPOLIS_WORSHIP,
),
/mob/living/carbon = list(
"TRAIT_BRAINLESS_CARBON" = TRAIT_BRAINLESS_CARBON,
+23 -4
View File
@@ -5,6 +5,7 @@
#define PET_PRIORITY 30
#define XENO_PRIORITY 35
#define DONTCARE_PRIORITY 40
#define ASHWALKER_PRIORITY 50
#define GAMER_PRIORITY 80
#define REVOLUTIONARY_PRIORITY 85
#define CULT_PRIORITY 90
@@ -25,7 +26,7 @@
return TRUE
/datum/mood_event/conditional/see_death/add_effects(mob/dead_mob, dusted, gibbed)
update_effect(dead_mob)
update_effect(dead_mob, dusted, gibbed)
if(HAS_TRAIT(dead_mob, TRAIT_SPAWNED_MOB))
mood_change *= 0.25
@@ -50,7 +51,7 @@
description = capitalize(replacetext(description, "%DEAD_MOB%", get_descriptor(dead_mob)))
/// Blank proc which allows conditional effects to modify mood, timeout, or description before the main effect is applied
/datum/mood_event/conditional/see_death/proc/update_effect(mob/dead_mob)
/datum/mood_event/conditional/see_death/proc/update_effect(mob/dead_mob, dusted, gibbed)
return
/// Checks if the dead mob is a pet
@@ -94,7 +95,7 @@
/datum/mood_event/conditional/see_death/naive/condition_fulfilled(mob/living/who, mob/dead_mob, dusted, gibbed)
return HAS_MIND_TRAIT(who, TRAIT_NAIVE) && !dusted && !gibbed
/datum/mood_event/conditional/see_death/naive/update_effect(mob/dead_mob)
/datum/mood_event/conditional/see_death/naive/update_effect(mob/dead_mob, dusted, gibbed)
description = "Have a good nap, [get_descriptor(dead_mob)]."
/// Cultists are super brainwashed so they get buffs instead
@@ -118,7 +119,7 @@
/datum/mood_event/conditional/see_death/revolutionary/condition_fulfilled(mob/living/who, mob/dead_mob, dusted, gibbed)
return IS_REVOLUTIONARY(who) && (dead_mob.mind?.assigned_role.job_flags & JOB_HEAD_OF_STAFF)
/datum/mood_event/conditional/see_death/revolutionary/update_effect(mob/dead_mob)
/datum/mood_event/conditional/see_death/revolutionary/update_effect(mob/dead_mob, dusted, gibbed)
var/datum/job/possible_head_job = dead_mob.mind?.assigned_role
description = "[possible_head_job.title ? "The [LOWER_TEXT(possible_head_job.title)]" : "Another head of staff"] is dead! Long live the revolution!"
@@ -152,6 +153,23 @@
else
description = "Oh, %DEAD_MOB% died. Shame, I guess."
/// Ashwalkers get a small boost from sacrificing people to the necropolis spire, and don't care otherwise
/datum/mood_event/conditional/see_death/ashwalker
priority = ASHWALKER_PRIORITY
mood_change = 0
/datum/mood_event/conditional/see_death/ashwalker/condition_fulfilled(mob/living/who, mob/dead_mob, dusted, gibbed)
return HAS_TRAIT(who, TRAIT_NECROPOLIS_WORSHIP) && !HAS_TRAIT(dead_mob, TRAIT_NECROPOLIS_WORSHIP)
/datum/mood_event/conditional/see_death/ashwalker/update_effect(mob/dead_mob, dusted, gibbed)
if(gibbed)
description = "%DEAD_MOB% hasss been torn asssunder, glory to the Necropolisss!"
mood_change = /datum/mood_event/conditional/see_death::mood_change * -0.5
else if(dusted)
description = "Oh, %DEAD_MOB% wasss vaporized."
else
description = "Oh, %DEAD_MOB% died. Ssshame, I guesss."
/// Pets take priority over normal death moodlets
/datum/mood_event/conditional/see_death/pet
priority = PET_PRIORITY
@@ -276,6 +294,7 @@
#undef PET_PRIORITY
#undef XENO_PRIORITY
#undef DONTCARE_PRIORITY
#undef ASHWALKER_PRIORITY
#undef GAMER_PRIORITY
#undef REVOLUTIONARY_PRIORITY
#undef CULT_PRIORITY
@@ -506,6 +506,7 @@
TRAIT_EXPERT_FISHER, // live off land, fish from river
TRAIT_ROUGHRIDER, // ride beast, chase down prey, flee from danger
TRAIT_BEAST_EMPATHY, // know the way of beast, calm with food
TRAIT_NECROPOLIS_WORSHIP,
TRAIT_TACKLING_TAILED_DEFENDER,
)