Rework job food/alchohol benefits into livers (#55721)

By moving the "special behaviour" of something like security officers
eating donuts, or engineers losing radiation by drinking Screwdrivers,
into traits on the liver, this makes the "origin" of that behaviour more
clearly defined, rather than something that's attached to the mind of
the person. (For example, now if a wizard mindswaps into a Security
Officer, they too can now digest donuts good.)

Having this behaviour be partially visible to the more medically
inclined members of the station (like doctors, and the chaplain for
"entrails reading mystic" themes), means that a dismembered liver tells
a story to those who know how to read it.

Some jobs have more "benefits" than others, for example the only thing
that the liver of a Quartermaster gives them is a sense of inadequacy
when consuming royal carpet.

Clowns having livers that honk make them easier to identify, and plays
into the retconned "bike horns are clown livers lore"? Also, why not cut
out a clown's liver then honk them with it? You monster.
This commit is contained in:
coiax
2021-01-11 19:34:40 +00:00
committed by GitHub
parent 02b83cd9d7
commit 89eea73703
35 changed files with 265 additions and 63 deletions
+47
View File
@@ -21,6 +21,53 @@
var/toxLethality = LIVER_DEFAULT_TOX_LETHALITY//affects how much damage toxins do to the liver
var/filterToxins = TRUE //whether to filter toxins
/obj/item/organ/liver/Initialize()
. = ..()
// If the liver handles foods like a clown, it honks like a bike horn
// Don't think about it too much.
RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_COMEDY_METABOLISM), .proc/on_add_comedy_metabolism)
/* Signal handler for the liver gaining the TRAIT_COMEDY_METABOLISM trait
*
* Adds the "squeak" component, so clown livers will act just like their
* bike horns, and honk when you hit them with things, or throw them
* against things, or step on them.
*
* The removal of the component, if this liver loses that trait, is handled
* by the component itself.
*/
/obj/item/organ/liver/proc/on_add_comedy_metabolism()
SIGNAL_HANDLER
// Are clown "bike" horns made from the livers of ex-clowns?
// Would that make the clown more or less likely to honk it
AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50, falloff_exponent = 20)
/obj/item/organ/liver/examine(mob/user)
. = ..()
if(HAS_TRAIT(user, TRAIT_ENTRAILS_READER) || (user.mind && HAS_TRAIT(user.mind, TRAIT_ENTRAILS_READER)) || isobserver(user))
if(HAS_TRAIT(src, TRAIT_LAW_ENFORCEMENT_METABOLISM))
. += "Fatty deposits and sprinkle residue, imply that this is the liver of someone in <em>security</em>."
if(HAS_TRAIT(src, TRAIT_CULINARY_METABOLISM))
. += "The high iron content and slight smell of garlic, implies that this is the liver of a <em>cook</em>."
if(HAS_TRAIT(src, TRAIT_COMEDY_METABOLISM))
. += "A smell of bananas, a slippery sheen and <span class='clown'>honking</span> when depressed, implies that this is the liver of a <em>clown</em>."
if(HAS_TRAIT(src, TRAIT_MEDICAL_METABOLISM))
. += "Marks of stress and a faint whiff of medicinal alcohol, imply that this is the liver of a <em>medical worker</em>."
if(HAS_TRAIT(src, TRAIT_GREYTIDE_METABOLISM))
. += "Greyer than most with electrical burn marks, this is the liver of an <em>assistant</em>."
if(HAS_TRAIT(src, TRAIT_ENGINEER_METABOLISM))
. += "Signs of radiation exposure and space adaption, implies that this is the liver of an <em>engineer</em>."
// royal trumps pretender royal
if(HAS_TRAIT(src, TRAIT_ROYAL_METABOLISM))
. += "A rich diet of luxury food, suppleness from soft beds, implies that this is the liver of a <em>head of staff</em>."
else if(HAS_TRAIT(src, TRAIT_PRETENDER_ROYAL_METABOLISM))
. += "A diet of imitation caviar, and signs of insomnia, implies that this is the liver of <em>someone who wants to be a head of staff</em>."
#define HAS_SILENT_TOXIN 0 //don't provide a feedback message if this is the only toxin present
#define HAS_NO_TOXIN 1
#define HAS_PAINFUL_TOXIN 2