Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moves job-based drink affinities to liver traits #11633

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_CALCIUM_HEALER "calcium_healer"
#define TRAIT_MAGIC_CHOKE "magic_choke"
#define TRAIT_SOOTHED_THROAT "soothed-throat"
#define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism"
#define TRAIT_MEDICAL_METABOLISM "medical-metabolism"
#define TRAIT_ALWAYS_CLEAN "always-clean"
#define TRAIT_BOOZE_SLIDER "booze-slider"
#define TRAIT_QUICK_CARRY "quick-carry"
Expand Down Expand Up @@ -176,6 +174,22 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
// through force of will, or equipment.
#define TRAIT_MADNESS_IMMUNE "supermatter_madness_immune"

// METABOLISMS
// Various jobs on the station have historically had better reactions
// to various drinks and foodstuffs. Security liking donuts is a classic
// example. Through years of training/abuse, their livers have taken
// a liking to those substances. Steal a sec officer's liver, eat donuts good.

// These traits are applied to /obj/item/organ/liver
#define TRAIT_LAW_ENFORCEMENT_METABOLISM "law_enforcement_metabolism"
#define TRAIT_CULINARY_METABOLISM "culinary_metabolism"
#define TRAIT_COMEDY_METABOLISM "comedy_metabolism"
#define TRAIT_MEDICAL_METABOLISM "medical_metabolism"
#define TRAIT_GREYTIDE_METABOLISM "greytide_metabolism"
#define TRAIT_ENGINEER_METABOLISM "engineer_metabolism"
#define TRAIT_ROYAL_METABOLISM "royal_metabolism"
#define TRAIT_PRETENDER_ROYAL_METABOLISM "pretender_royal_metabolism"

//non-mob traits
/// Used for limb-based paralysis, where replacing the limb will fix it.
#define TRAIT_PARALYSIS "paralysis"
Expand Down Expand Up @@ -264,6 +278,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_BRAIN_TUMOR "brain_tumor"
#define TRAIT_PROSKATER "pro_skater"
#define TRAIT_PLUSHIELOVER "plushie lover"
#define TRAIT_ENTRAILS_READER "entrails_reader"

///Trait for dryable items
#define TRAIT_DRYABLE "trait_dryable"
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/traits/sources.dm
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,6 @@
#define NEGATIVE_GRAVITY_TRAIT "negative-gravity"
/// Sources for TRAIT_IGNORING_GRAVITY
#define IGNORING_GRAVITY_NEGATION "ignoring_gravity_negation"

/// Trait from [/datum/antagonist/nukeop/clownop]
#define CLOWNOP_TRAIT "clownop"
115 changes: 64 additions & 51 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,61 @@
Try to keep this in sync with __DEFINES/traits.dm
quirks have it's own panel so we don't need them here.
*/
GLOBAL_LIST_INIT(traits_by_type, list(

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

got '"TRAIT_IGNORING_GRAVITY"', expected one of: operator, field access, ')', ','

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected ')'

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected ')'

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Invalid indentation

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block

Check failure on line 6 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of braced block
/mob = list(
"TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT,
"TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED,
"TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING,
"TRAIT_ABDUCTOR_SURGEON" = TRAIT_ABDUCTOR_SURGEON,
"TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING,
"TRAIT_AGEUSIA" = TRAIT_AGEUSIA,
"TRAIT_AI_BAGATTACK" = TRAIT_AI_BAGATTACK,
"TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE,
"TRAIT_ALLOW_HERETIC_CASTING" = TRAIT_ALLOW_HERETIC_CASTING,
"TRAIT_ALWAYS_CLEAN" = TRAIT_ALWAYS_CLEAN,
"TRAIT_ALWAYS_STUBS" = TRAIT_ALWAYS_STUBS,
"TRAIT_BADDNA" = TRAIT_BADDNA,
"TRAIT_BARMASTER" = TRAIT_BARMASTER,
"TRAIT_BEEFRIEND" = TRAIT_BEEFRIEND,
"TRAIT_BLEED_HELD" = TRAIT_BLEED_HELD,
"TRAIT_BLIND" = TRAIT_BLIND,
"TRAIT_BLOOD_COOLANT" = TRAIT_BLOOD_COOLANT,
"TRAIT_BRAIN_TUMOR" = TRAIT_BRAIN_TUMOR,
"TRAIT_CANNOT_OPEN_PRESENTS" = TRAIT_CANNOT_OPEN_PRESENTS,
"TRAIT_CAN_USE_NUKE" = TRAIT_CAN_USE_NUKE,
"TRAIT_CLUMSY" = TRAIT_CLUMSY,
"TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION,
"TRAIT_DEAF" = TRAIT_DEAF,
"TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA,
"TRAIT_DEPRESSION" = TRAIT_DEPRESSION,
"TRAIT_DIAGNOSTIC_HUD" = TRAIT_DIAGNOSTIC_HUD,
"TRAIT_DISCOORDINATED" = TRAIT_DISCOORDINATED,
"TRAIT_DISFIGURED" = TRAIT_DISFIGURED,
"TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER,
"TRAIT_DISSECTED" = TRAIT_DISSECTED,
"TRAIT_DUMB" = TRAIT_DUMB,
"TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
"TRAIT_EASYLIMBDISABLE" = TRAIT_EASYLIMBDISABLE,
"TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE,
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_ENTRAILS_READER" = TRAIT_ENTRAILS_READER,
"TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH,
"TRAIT_FAT" = TRAIT_FAT,
"TRAIT_FAST_CUFF_REMOVAL" = TRAIT_FAST_CUFF_REMOVAL,
"TRAIT_FEARLESS" = TRAIT_FEARLESS,
"TRAIT_FRIENDLY" = TRAIT_FRIENDLY,
"TRAIT_FLOORED" = TRAIT_FLOORED,
"TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING,
"TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT,
"TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED,
"TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED,
"TRAIT_UI_BLOCKED" = TRAIT_UI_BLOCKED,
"TRAIT_PULL_BLOCKED" = TRAIT_PULL_BLOCKED,
"TRAIT_RESTRAINED" = TRAIT_RESTRAINED,
"TRAIT_INCAPACITATED" = TRAIT_INCAPACITATED,
"TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION,
"TRAIT_BLIND" = TRAIT_BLIND,
"TRAIT_MUTE" = TRAIT_MUTE,
"TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE,
"TRAIT_DEAF" = TRAIT_DEAF,
"TRAIT_NEARSIGHT" = TRAIT_NEARSIGHT,
"TRAIT_FAT" = TRAIT_FAT,
"TRAIT_HUSK" = TRAIT_HUSK,
"TRAIT_BADDNA" = TRAIT_BADDNA,
"TRAIT_CLUMSY" = TRAIT_CLUMSY,
"TRAIT_DUMB" = TRAIT_DUMB,
"TRAIT_DISCOORDINATED" = TRAIT_DISCOORDINATED,
"TRAIT_PACIFISM" = TRAIT_PACIFISM,
"TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN,
"TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN,
"TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA,
"TRAIT_REGEN_COMA" = TRAIT_REGEN_COMA,
"TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH,
"TRAIT_DISFIGURED" = TRAIT_DISFIGURED,
"TRAIT_XENO_HOST" = TRAIT_XENO_HOST,
"TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE,
"TRAIT_STUNRESISTANCE" = TRAIT_STUNRESISTANCE,
"TRAIT_CONFUSEIMMUNE" = TRAIT_CONFUSEIMMUNE,
Expand All @@ -49,8 +73,8 @@
"TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
"TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
"TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
"TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
"TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
"TRAIT_MUTE" = TRAIT_MUTE,
"TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER,
"TRAIT_NOFIRE" = TRAIT_NOFIRE,
"TRAIT_NOGUNS" = TRAIT_NOGUNS,
Expand All @@ -59,15 +83,12 @@
"TRAIT_POWERHUNGRY" = TRAIT_POWERHUNGRY,
"TRAIT_NOCLONELOSS" = TRAIT_NOCLONELOSS,
"TRAIT_TOXIMMUNE" = TRAIT_TOXIMMUNE,
"TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
"TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT,
"TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE,
"TRAIT_EASYLIMBDISABLE" = TRAIT_EASYLIMBDISABLE,
"TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER,
"TRAIT_NOHAIRLOSS" = TRAIT_NOHAIRLOSS,
"TRAIT_NOBREATH" = TRAIT_NOBREATH,
"TRAIT_SEE_ANTIMAGIC" = TRAIT_SEE_ANTIMAGIC,
"TRAIT_DEPRESSION" = TRAIT_DEPRESSION,
"TRAIT_JOLLY" = TRAIT_JOLLY,
"TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE,
"TRAIT_NOSLIPWATER" = TRAIT_NOSLIPWATER,
Expand All @@ -78,44 +99,30 @@
"TRAIT_NOSTAMCRIT" = TRAIT_NOSTAMCRIT,
"TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD,
"TRAIT_FAKE_MINDSHIELD" = TRAIT_FAKE_MINDSHIELD,
"TRAIT_DISSECTED" = TRAIT_DISSECTED,
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
"TRAIT_FEARLESS" = TRAIT_FEARLESS,
"TRAIT_PARALYSIS_L_ARM" = TRAIT_PARALYSIS_L_ARM,
"TRAIT_PARALYSIS_R_ARM" = TRAIT_PARALYSIS_R_ARM,
"TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG,
"TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG,
"TRAIT_CANNOT_OPEN_PRESENTS" = TRAIT_CANNOT_OPEN_PRESENTS,
"TRAIT_PRESENT_VISION" = TRAIT_PRESENT_VISION,
"TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER,
"TRAIT_MULTILINGUAL" = TRAIT_MULTILINGUAL,
"TRAIT_LINGUIST" = TRAIT_LINGUIST,
"TRAIT_NOMOBSWAP" = TRAIT_NOMOBSWAP,
"TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
"TRAIT_THERMAL_VISION" = TRAIT_THERMAL_VISION,
"TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING,
"TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING,
"TRAIT_SURGEON" = TRAIT_SURGEON,
"TRAIT_ABDUCTOR_SURGEON" = TRAIT_ABDUCTOR_SURGEON,
"TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER,
"TRAIT_CALCIUM_HEALER" = TRAIT_CALCIUM_HEALER,
"TRAIT_MAGIC_CHOKE" = TRAIT_MAGIC_CHOKE,
"TRAIT_SOOTHED_THROAT" = TRAIT_SOOTHED_THROAT,
"TRAIT_LAW_ENFORCEMENT_METABOLISM" = TRAIT_LAW_ENFORCEMENT_METABOLISM,
"TRAIT_MEDICAL_METABOLISM" = TRAIT_MEDICAL_METABOLISM,
"TRAIT_ALWAYS_CLEAN" = TRAIT_ALWAYS_CLEAN,
"TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER,
"TRAIT_QUICK_CARRY" = TRAIT_QUICK_CARRY,
"TRAIT_QUICKER_CARRY" = TRAIT_QUICKER_CARRY,
"TRAIT_UNINTELLIGIBLE_SPEECH" = TRAIT_UNINTELLIGIBLE_SPEECH,
"TRAIT_UNSTABLE" = TRAIT_UNSTABLE,
"TRAIT_OIL_FRIED" = TRAIT_OIL_FRIED,
"TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE,
"TRAIT_NECROPOLIS_INFECTED" = TRAIT_NECROPOLIS_INFECTED,
"TRAIT_BEEFRIEND" = TRAIT_BEEFRIEND,
"TRAIT_MEDICAL_HUD" = TRAIT_MEDICAL_HUD,
"TRAIT_SECURITY_HUD" = TRAIT_SECURITY_HUD,
"TRAIT_DIAGNOSTIC_HUD" = TRAIT_DIAGNOSTIC_HUD,
"TRAIT_MEDIBOTCOMINGTHROUGH" = TRAIT_MEDIBOTCOMINGTHROUGH,
"TRAIT_PASSTABLE" = TRAIT_PASSTABLE,
"TRAIT_BLUSHING" = TRAIT_BLUSHING,
Expand All @@ -125,32 +132,24 @@
"TRAIT_WARDED" = TRAIT_WARDED,
"TRAIT_NONECRODISEASE" = TRAIT_NONECRODISEASE,
"TRAIT_NICE_SHOT" = TRAIT_NICE_SHOT,
"TRAIT_ALWAYS_STUBS" = TRAIT_ALWAYS_STUBS,
"TRAIT_NAIVE" = TRAIT_NAIVE,
"TRAIT_DROPS_ITEMS_ON_DEATH" = TRAIT_DROPS_ITEMS_ON_DEATH,
"TRAIT_DRINKSBLOOD" = TRAIT_DRINKSBLOOD,
"TRAIT_MINDSWAPPED" = TRAIT_MINDSWAPPED,
"TRAIT_SOMMELIER" = TRAIT_SOMMELIER,
"TRAIT_BARMASTER" = TRAIT_BARMASTER,
"TRAIT_HIVE_BURNT" = TRAIT_HIVE_BURNT,
"TRAIT_MOTH_BURNT" = TRAIT_MOTH_BURNT,
"TRAIT_SPECIAL_TRAUMA_BOOST" = TRAIT_SPECIAL_TRAUMA_BOOST,
"TRAIT_METALANGUAGE_KEY_ALLOWED" = TRAIT_METALANGUAGE_KEY_ALLOWED,
"TRAIT_HYPERSPACED" = TRAIT_HYPERSPACED,
"TRAIT_FREE_HYPERSPACE_MOVEMENT" = TRAIT_FREE_HYPERSPACE_MOVEMENT,
"TRAIT_FAST_CUFF_REMOVAL" = TRAIT_FAST_CUFF_REMOVAL,
"TRAIT_BLEED_HELD" = TRAIT_BLEED_HELD,
"TRAIT_NO_BLOOD" = TRAIT_NO_BLOOD,
"TRAIT_NO_BLEEDING" = TRAIT_NO_BLEEDING,
"TRAIT_BLOOD_COOLANT" = TRAIT_BLOOD_COOLANT,
"TRAIT_MADNESS_IMMUNE" = TRAIT_MADNESS_IMMUNE,
"TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE,
"TRAIT_AGEUSIA" = TRAIT_AGEUSIA,
"TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER,
"TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION,
"TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP,
"TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL,
"TRAIT_VORACIOUS" = TRAIT_VORACIOUS,
"TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE,
"TRAIT_FREERUNNING" = TRAIT_FREERUNNING,
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
Expand All @@ -163,13 +162,9 @@
"TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
"TRAIT_MUSICIAN" = TRAIT_MUSICIAN,
"TRAIT_LIGHT_DRINKER" = TRAIT_LIGHT_DRINKER,
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_FRIENDLY" = TRAIT_FRIENDLY,
"TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS,
"TRAIT_BRAIN_TUMOR" = TRAIT_BRAIN_TUMOR,
"TRAIT_PROSKATER" = TRAIT_PROSKATER,
"TRAIT_PLUSHIELOVER" = TRAIT_PLUSHIELOVER,
"TRAIT_CAN_USE_NUKE" = TRAIT_CAN_USE_NUKE,
"TRACKED_SENSORS_TRAIT" = TRACKED_SENSORS_TRAIT,
"TRAIT_SUIT_SENSORS" = TRAIT_SUIT_SENSORS,
"TRAIT_NANITE_SENSORS" = TRAIT_NANITE_SENSORS,
Expand All @@ -178,7 +173,15 @@
"TRAIT_NORADDAMAGE" = TRAIT_NORADDAMAGE,
"TRAIT_MOBILE" = TRAIT_MOBILE,
"INSTANT_DO_AFTER" = INSTANT_DO_AFTER,
"TRAIT_UNKNOWN" = TRAIT_UNKNOWN,
"TRAIT_UI_BLOCKED" = TRAIT_UI_BLOCKED,
"TRAIT_UNINTELLIGIBLE_SPEECH" = TRAIT_UNINTELLIGIBLE_SPEECH,
"TRAIT_UNSTABLE" = TRAIT_UNSTABLE,
"TRAIT_XENO_HOST" = TRAIT_XENO_HOST,
"TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE,
"TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
"TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
"TRAIT_VORACIOUS" = TRAIT_VORACIOUS,
"TRAIT_UNKNOWN" = TRAIT_UNKNOWN
"TRAIT_IGNORING_GRAVITY" = TRAIT_IGNORING_GRAVITY,
"TRAIT_FORCED_GRAVITY" = TRAIT_FORCED_GRAVITY,
"TRAIT_MOVE_UPSIDE_DOWN" = TRAIT_MOVE_UPSIDE_DOWN,
Expand All @@ -191,6 +194,19 @@
"TRAIT_PARALYSIS" = TRAIT_PARALYSIS,
"TRAIT_DISABLED_BY_WOUND" = TRAIT_DISABLED_BY_WOUND
),
/obj/item/organ = list(
"TRAIT_LIVING_HEART" = TRAIT_LIVING_HEART,
),
/obj/item/organ/liver = list(
"TRAIT_COMEDY_METABOLISM" = TRAIT_COMEDY_METABOLISM,
"TRAIT_CULINARY_METABOLISM" = TRAIT_CULINARY_METABOLISM,
"TRAIT_ENGINEER_METABOLISM" = TRAIT_ENGINEER_METABOLISM,
"TRAIT_GREYTIDE_METABOLISM" = TRAIT_GREYTIDE_METABOLISM,
"TRAIT_LAW_ENFORCEMENT_METABOLISM" = TRAIT_LAW_ENFORCEMENT_METABOLISM,
"TRAIT_MEDICAL_METABOLISM" = TRAIT_MEDICAL_METABOLISM,
"TRAIT_PRETENDER_ROYAL_METABOLISM" = TRAIT_PRETENDER_ROYAL_METABOLISM,
"TRAIT_ROYAL_METABOLISM" = TRAIT_ROYAL_METABOLISM,
),
/obj/item = list(
"TRAIT_NODROP" = TRAIT_NODROP,
"TRAIT_NO_STORAGE_INSERT" = TRAIT_NO_STORAGE_INSERT,
Expand All @@ -203,9 +219,6 @@
"TRAIT_FISH_SAFE_STORAGE" = TRAIT_FISH_SAFE_STORAGE,
"TRAIT_FISH_CASE_COMPATIBILE" = TRAIT_FISH_CASE_COMPATIBILE,
"TRAIT_NEEDS_TWO_HANDS" = TRAIT_NEEDS_TWO_HANDS,
"TRAIT_AI_BAGATTACK" = TRAIT_AI_BAGATTACK,
"TRAIT_ALLOW_HERETIC_CASTING" = TRAIT_ALLOW_HERETIC_CASTING,
"TRAIT_LIVING_HEART" = TRAIT_LIVING_HEART,
"TRAIT_NO_STRIP" = TRAIT_NO_STRIP,
"TRAIT_DRYABLE" = TRAIT_DRYABLE,
"TRAIT_DRIED" = TRAIT_DRIED,
Expand Down Expand Up @@ -249,7 +262,7 @@
"STATION_TRAIT_STRONG_SUPPLY_LINES" = STATION_TRAIT_STRONG_SUPPLY_LINES,
"STATION_TRAIT_UNITED_BUDGET" = STATION_TRAIT_UNITED_BUDGET
)
))

Check warning on line 265 in code/_globalvars/traits/_traits.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0000: Error recovery had to skip to code/_globalvars/traits/_traits.dm:268:1

/// value -> trait name, generated on use from trait_by_type global
GLOBAL_LIST(trait_name_map)
Expand Down
9 changes: 9 additions & 0 deletions code/datums/components/squeak.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
if(istype(parent, /obj/item/clothing/shoes))
RegisterSignal(parent, COMSIG_SHOES_STEP_ACTION, PROC_REF(step_squeak))

if(istype(parent, /obj/item/organ/liver))
// Liver squeaking is depending on them functioning like a clown's liver
RegisterSignal(parent, SIGNAL_REMOVETRAIT(TRAIT_COMEDY_METABOLISM), PROC_REF(on_comedy_metabolism_removal))

override_squeak_sounds = custom_sounds
if(chance_override)
squeak_chance = chance_override
Expand Down Expand Up @@ -130,3 +134,8 @@
//If the dir changes it means we're going through a bend in the pipes, let's pretend we bumped the wall
if(old_dir != new_dir)
play_squeak()

/datum/component/squeak/proc/on_comedy_metabolism_removal(datum/source, trait)
SIGNAL_HANDLER

qdel(src)
2 changes: 1 addition & 1 deletion code/game/objects/items/clown_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@

/obj/item/bikehorn
name = "bike horn"
desc = "A horn off of a bicycle."
desc = "A horn off of a bicycle. Rumour has it that they're made from recycled clowns."
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "bike_horn"
item_state = "bike_horn"
Expand Down
5 changes: 3 additions & 2 deletions code/game/objects/items/food/donuts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,9 @@
return "[icon_state]_inbox"

///Override for checkliked in edible component, because all cops LOVE donuts
/obj/item/food/donut/proc/check_liked(mob/living/carbon/human/H)
if(HAS_TRAIT(H.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM) && !HAS_TRAIT(H, TRAIT_AGEUSIA))
/obj/item/food/donut/proc/check_liked(mob/living/carbon/human/consumer)
var/obj/item/organ/liver/liver = consumer.get_organ_slot(ORGAN_SLOT_LIVER)

Check failure on line 55 in code/game/objects/items/food/donuts.dm

View workflow job for this annotation

GitHub Actions / Run Linters

undefined proc: "get_organ_slot" on /mob/living/carbon/human
if(!HAS_TRAIT(consumer, TRAIT_AGEUSIA) && liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
return FOOD_LIKED

//Regular, tasty donut.
Expand Down
48 changes: 47 additions & 1 deletion code/modules/antagonists/nukeop/clownop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,30 @@
name = "Clown Operative Leader"
roundend_category = "clown operatives"
antagpanel_category = "ClownOp"
nukeop_outfit = /datum/outfit/syndicate/clownop/leader
nukeop_outfit = /datum/outfit/syndicate/clownop

/datum/antagonist/nukeop/clownop/admin_add(datum/mind/new_owner,mob/admin)
new_owner.assigned_role = "Clown Operative"
new_owner.add_antag_datum(src)
message_admins("[key_name_admin(admin)] has clown op'ed [key_name_admin(new_owner)].")
log_admin("[key_name(admin)] has clown op'ed [key_name(new_owner)].")

/datum/antagonist/nukeop/clownop/apply_innate_effects(mob/living/mob_override)
. = ..()
var/mob/living/L = owner.current || mob_override
ADD_TRAIT(L.mind, TRAIT_NAIVE, CLOWNOP_TRAIT)

/datum/antagonist/nukeop/clownop/remove_innate_effects(mob/living/mob_override)
var/mob/living/L = owner.current || mob_override
REMOVE_TRAIT(L.mind, TRAIT_NAIVE, CLOWNOP_TRAIT)
return ..()

/datum/antagonist/nukeop/clownop/equip_op()
. = ..()
var/mob/living/current_mob = owner.current
var/obj/item/organ/liver/liver = current_mob.getorganslot(ORGAN_SLOT_LIVER)
if(liver)
ADD_TRAIT(liver, TRAIT_COMEDY_METABOLISM, CLOWNOP_TRAIT)

/datum/antagonist/nukeop/leader/clownop/give_alias()
title = pick("Head Honker", "Slipmaster", "Clown King", "Honkbearer")
Expand All @@ -23,3 +46,26 @@
new_owner.add_antag_datum(src)
message_admins("[key_name_admin(admin)] has clown op'ed [key_name_admin(new_owner)].")
log_admin("[key_name(admin)] has clown op'ed [key_name(new_owner)].")

/datum/antagonist/nukeop/leader/clownop
name = "Clown Operative Leader"
roundend_category = "clown operatives"
antagpanel_category = "ClownOp"
nukeop_outfit = /datum/outfit/syndicate/clownop/leader

/datum/antagonist/nukeop/leader/clownop/apply_innate_effects(mob/living/mob_override)
. = ..()
var/mob/living/L = owner.current || mob_override
ADD_TRAIT(L, TRAIT_NAIVE, CLOWNOP_TRAIT)

/datum/antagonist/nukeop/leader/clownop/remove_innate_effects(mob/living/mob_override)
var/mob/living/L = owner.current || mob_override
REMOVE_TRAIT(L, TRAIT_NAIVE, CLOWNOP_TRAIT)
return ..()

/datum/antagonist/nukeop/leader/clownop/equip_op()
. = ..()
var/mob/living/L = owner.current
var/obj/item/organ/liver/liver = L.getorganslot(ORGAN_SLOT_LIVER)
if(liver)
ADD_TRAIT(liver, TRAIT_COMEDY_METABOLISM, CLOWNOP_TRAIT)
2 changes: 1 addition & 1 deletion code/modules/clothing/glasses/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
icon_state = "healthhud"
emissive_state = "hud_emissive"
hud_type = DATA_HUD_MEDICAL_ADVANCED
hud_trait = TRAIT_MEDICAL_HUD
hud_trait = list(TRAIT_MEDICAL_HUD, TRAIT_ENTRAILS_READER)
glass_colour_type = /datum/client_colour/glass_colour/lightblue

/obj/item/clothing/glasses/hud/health/night
Expand Down
Loading
Loading