mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 00:27:31 +01:00
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:
@@ -302,7 +302,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(10))
|
||||
M.heal_bodypart_damage(1)
|
||||
M.heal_bodypart_damage(brute = 1)
|
||||
. = 1
|
||||
return ..() || .
|
||||
|
||||
@@ -455,9 +455,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
|
||||
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind && M.mind.assigned_role == "Assistant")
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = 1
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_GREYTIDE_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/ale
|
||||
@@ -593,7 +594,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
|
||||
|
||||
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind && (M.mind.assigned_role in GLOB.engineering_positions)) //Engineers lose radiation poisoning at a massive rate.
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(HAS_TRAIT(liver, TRAIT_ENGINEER_METABOLISM))
|
||||
// Engineers lose radiation poisoning at a massive rate.
|
||||
M.radiation = max(M.radiation - 25, 0)
|
||||
return ..()
|
||||
|
||||
@@ -707,14 +710,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_metabolize(mob/living/carbon/M)
|
||||
if(HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
|
||||
metabolization_rate = 0.8
|
||||
if(M.mind != null && !HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
// if you don't have a liver, or your liver isn't an officer's liver
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(!liver || !HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
B = new()
|
||||
M.gain_trauma(B, TRAUMA_RESILIENCE_ABSOLUTE)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(2)
|
||||
if(M.mind != null && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
// if you don't have a liver, or your liver isn't an officer's liver
|
||||
if(!liver || !HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.adjustStaminaLoss(-10, 0)
|
||||
if(prob(20))
|
||||
new /datum/hallucination/items_other(M)
|
||||
@@ -729,7 +736,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/overdose_start(mob/living/carbon/M)
|
||||
if(M.mind != null && !HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
// if you don't have a liver, or your liver isn't an officer's liver
|
||||
if(!liver || !HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.gain_trauma(/datum/brain_trauma/mild/phobia/security, TRAUMA_RESILIENCE_BASIC)
|
||||
|
||||
/datum/reagent/consumable/ethanol/irish_cream
|
||||
@@ -1203,9 +1212,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A drink from Clown Heaven."
|
||||
|
||||
/datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/carbon/M)
|
||||
if((ishuman(M) && HAS_TRAIT(M, TRAIT_CLOWNLIKE)) || ismonkey(M))
|
||||
M.heal_bodypart_damage(1,1)
|
||||
. = 1
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if((liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM)) || ismonkey(M))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = TRUE
|
||||
return ..() || .
|
||||
|
||||
/datum/reagent/consumable/ethanol/silencer
|
||||
@@ -1545,8 +1555,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
/datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M)
|
||||
//Securidrink in line with the Screwdriver for engineers or Nothing for mimes
|
||||
if(M.mind != null && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(1, 1)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
M.adjustBruteLoss(-2,0)
|
||||
. = 1
|
||||
return ..()
|
||||
@@ -1564,8 +1575,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
/datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M)
|
||||
//Securidrink in line with the Screwdriver for engineers or Nothing for mimes but STRONG..
|
||||
if(M.mind != null && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(2,2,2)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 2, burn = 2, stamina = 2)
|
||||
M.adjustBruteLoss(-5,0)
|
||||
M.adjustOxyLoss(-5,0)
|
||||
M.adjustFireLoss(-5,0)
|
||||
@@ -2055,7 +2067,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
/datum/reagent/consumable/ethanol/wizz_fizz/on_mob_life(mob/living/carbon/M)
|
||||
//A healing drink similar to Quadruple Sec, Ling Stings, and Screwdrivers for the Wizznerds; the check is consistent with the changeling sting
|
||||
if(M?.mind?.has_antag_datum(/datum/antagonist/wizard))
|
||||
M.heal_bodypart_damage(1,1,1)
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1, stamina = 1)
|
||||
M.adjustOxyLoss(-1,0)
|
||||
M.adjustToxLoss(-1,0)
|
||||
return ..()
|
||||
@@ -2149,7 +2161,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
|
||||
if(N.age > 969) //Best not let people get older than this or i might incur G-ds wrath
|
||||
M.visible_message("<span class='notice'>[M] becomes older than any man should be.. and crumbles into dust!</span>")
|
||||
M.dust(0,1,0)
|
||||
M.dust(just_ash = FALSE, drop_items = TRUE, force = FALSE)
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -127,9 +127,10 @@
|
||||
glass_desc = "The raw essence of a banana. HONK."
|
||||
|
||||
/datum/reagent/consumable/banana/on_mob_life(mob/living/carbon/M)
|
||||
if((ishuman(M) && HAS_TRAIT(M, TRAIT_CLOWNLIKE)) || ismonkey(M))
|
||||
M.heal_bodypart_damage(1,1, 0)
|
||||
. = 1
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if((liver && HAS_TRAIT(liver, TRAIT_COMEDY_METABOLISM)) || ismonkey(M))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = TRUE
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nothing
|
||||
@@ -685,7 +686,9 @@
|
||||
M.adjustToxLoss(-0.5, 0)
|
||||
M.adjustOxyLoss(-0.5, 0)
|
||||
if(M.nutrition && (M.nutrition - 2 > 0))
|
||||
if(!(M.mind && (M.mind.assigned_role in GLOB.medical_positions))) //Drains the nutrition of the holder. Not medical doctors though, since it's the Doctor's Delight!
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(!(HAS_TRAIT(liver, TRAIT_MEDICAL_METABOLISM)))
|
||||
// Drains the nutrition of the holder. Not medical doctors though, since it's the Doctor's Delight!
|
||||
M.adjust_nutrition(-2)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
/datum/reagent/consumable/nutriment/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(50))
|
||||
M.heal_bodypart_damage(brute_heal,burn_heal, 0)
|
||||
M.heal_bodypart_damage(brute = brute_heal, burn = burn_heal)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
@@ -428,11 +428,11 @@
|
||||
to_chat(M, "<span class='danger'>You can't get the scent of garlic out of your nose! You can barely think...</span>")
|
||||
M.Paralyze(10)
|
||||
M.Jitter(10)
|
||||
else if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.job == "Cook")
|
||||
else
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_CULINARY_METABOLISM))
|
||||
if(prob(20)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate
|
||||
H.heal_bodypart_damage(1,1, 0)
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
@@ -443,8 +443,9 @@
|
||||
taste_description = "childhood whimsy"
|
||||
|
||||
/datum/reagent/consumable/sprinkles/on_mob_life(mob/living/carbon/M)
|
||||
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(1,1, 0)
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
M.heal_bodypart_damage(brute = 1, burn = 1)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
|
||||
@@ -1677,15 +1677,17 @@
|
||||
|
||||
/datum/reagent/carpet/royal/on_mob_life(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(!M.mind?.assigned_role)
|
||||
return
|
||||
switch(M.mind.assigned_role)
|
||||
if("Chief Medical Officer", "Captain", "Chief Engineer", "Research Director", "Head of Personnel")
|
||||
var/obj/item/organ/liver/liver = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(liver)
|
||||
// Heads of staff and the captain have a "royal metabolism"
|
||||
if(HAS_TRAIT(liver, TRAIT_ROYAL_METABOLISM))
|
||||
if(prob(10))
|
||||
to_chat(M, "You feel like royalty.")
|
||||
if(prob(5))
|
||||
M.say(pick("Peasants..","This carpet is worth more than your contracts!","I could fire you at any time..."), forced = "royal carpet")
|
||||
if("Quartermaster")
|
||||
|
||||
// The quartermaster, as a semi-head, has a "pretender royal" metabolism
|
||||
else if(HAS_TRAIT(liver, TRAIT_PRETENDER_ROYAL_METABOLISM))
|
||||
if(prob(15))
|
||||
to_chat(M, "You feel like an impostor...")
|
||||
|
||||
@@ -2126,9 +2128,6 @@
|
||||
description = "A colorless liquid that suppresses violence in its subjects. Cheaper to synthesize than normal Pax, but wears off faster."
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
|
||||
/datum/reagent/peaceborg
|
||||
can_synth = FALSE
|
||||
|
||||
/datum/reagent/peaceborg/confuse
|
||||
name = "Dizzying Solution"
|
||||
description = "Makes the target off balance and dizzy"
|
||||
|
||||
Reference in New Issue
Block a user