From a3208d1ac87978b65264aa3f5b085e1a9922a4b7 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Tue, 24 Nov 2020 20:27:34 +0100 Subject: [PATCH] synth alcohol immunity --- code/__DEFINES/traits.dm | 3 ++- code/_globalvars/traits.dm | 1 + code/datums/traits/neutral.dm | 2 +- code/modules/mob/living/carbon/human/species_types/android.dm | 2 +- code/modules/mob/living/carbon/human/species_types/ipc.dm | 2 +- code/modules/mob/living/carbon/human/species_types/synthliz.dm | 2 +- code/modules/reagents/chemistry/reagents/alcohol_reagents.dm | 3 +++ 7 files changed, 10 insertions(+), 5 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 4b08dbc446..6e0d323bbf 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -205,7 +205,8 @@ #define TRAIT_THERMAL_VISION "thermal_vision" #define TRAIT_NO_TELEPORT "no-teleport" //you just can't #define TRAIT_NO_INTERNALS "no-internals" -#define TRAIT_NO_ALCOHOL "alcohol_intolerance" +#define TRAIT_NO_ALCOHOL "alcohol_immunity" +#define TRAIT_TOXIC_ALCOHOL "alcohol_intolerance" #define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. #define TRAIT_FAST_PUMP "fast_pump" #define TRAIT_NO_PROCESS_FOOD "no-process-food" // You don't get benefits from nutriment, nor nutrition from reagent consumables diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index d32eae3be3..744b5c8568 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -105,6 +105,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_FREESPRINT" = TRAIT_FREESPRINT, "TRAIT_NO_INTERNALS" = TRAIT_NO_INTERNALS, "TRAIT_NO_ALCOHOL" = TRAIT_NO_ALCOHOL, + "TRAIT_TOXIC_ALCOHOL" = TRAIT_TOXIC_ALCOHOL, "TRAIT_MUTATION_STASIS" = TRAIT_MUTATION_STASIS, "TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER, "TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP, diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index e92564a3b4..73813fd253 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -109,7 +109,7 @@ name = "Alcohol Intolerance" desc = "You take toxin damage from alcohol rather than getting drunk." value = 0 - mob_trait = TRAIT_NO_ALCOHOL + mob_trait = TRAIT_TOXIC_ALCOHOL medical_record_text = "Patient's body does not react properly to ethyl alcohol." /datum/quirk/alcohol_intolerance/add() diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 3c6a2a8e13..b4f90d77f0 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -3,7 +3,7 @@ id = SPECIES_ANDROID say_mod = "states" species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL,ROBOTIC_LIMBS) - inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT, TRAIT_ROBOTIC_ORGANISM) + inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT, TRAIT_NO_ALCOHOL, TRAIT_ROBOTIC_ORGANISM) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID meat = null gib_types = /obj/effect/gibspawner/robot diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index eb870f9624..b4947992fd 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -5,7 +5,7 @@ default_color = "00FF00" blacklisted = 0 sexes = 0 - inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_NO_ALCOHOL, TRAIT_ROBOTIC_ORGANISM) species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING,HAS_FLESH,HAS_BONE,HAIR,ROBOTIC_LIMBS) hair_alpha = 210 inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index b6a7e93c72..83a613b993 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -4,7 +4,7 @@ say_mod = "beeps" default_color = "00FF00" species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE) - inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM) + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_NO_ALCOHOL, TRAIT_ROBOTIC_ORGANISM) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutant_bodyparts = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index a8d5c3d277..18a08ca5d5 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -37,6 +37,9 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/on_mob_life(mob/living/carbon/C) if(HAS_TRAIT(C, TRAIT_NO_ALCOHOL)) + return ..() + + if(HAS_TRAIT(C, TRAIT_TOXIC_ALCOHOL)) C.adjustToxLoss((boozepwr/25)*REM,forced = TRUE) else if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER) var/booze_power = boozepwr