diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 384e65bdcb..8014e04ad0 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -59,6 +59,7 @@ #define TRAIT_SKITTISH "skittish" #define TRAIT_POOR_AIM "poor_aim" #define TRAIT_PROSOPAGNOSIA "prosopagnosia" +#define TRAIT_DRUNK_HEALING "drunk_healing" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index d48c70f31b..ff3cb85b27 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -29,6 +29,16 @@ +/datum/quirk/drunkhealing + name = "Drunken Resilience" + desc = "Nothing like a good drink to make you feel on top of the world. Whenever you're drunk, you slowly recover from injuries." + value = 2 + mob_trait = TRAIT_DRUNK_HEALING + gain_text = "You feel like a drink would do you good." + lose_text = "You no longer feel like drinking would ease your pain." + medical_record_text = "Patient has unusually efficient liver metabolism and can slowly regenerate wounds by drinking alcoholic beverages." + + /datum/quirk/freerunning name = "Freerunning" desc = "You're great at quick moves! You can climb tables more quickly." diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 376f3f857b..cf8839d086 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -379,9 +379,13 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(prob(25)) slurring += 2 jitteriness = max(jitteriness - 3, 0) + if(has_trait(TRAIT_DRUNK_HEALING)) + adjustBruteLoss(-0.12, FALSE) + adjustFireLoss(-0.06, FALSE) if(drunkenness >= 11 && slurring < 5) slurring += 1.2 + if(mind && (mind.assigned_role == "Scientist" || mind.assigned_role == "Research Director")) if(SSresearch.science_tech) if(drunkenness >= 12.9 && drunkenness <= 13.8) @@ -398,10 +402,14 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(prob(5)) SSresearch.science_tech.remove_points_all(TECHWEB_POINT_TYPE_DEFAULT, BALLMER_POINTS) say(pick(GLOB.ballmer_windows_me_msg)) + if(drunkenness >= 41) if(prob(25)) confused += 2 Dizzy(10) + if(has_trait(TRAIT_DRUNK_HEALING)) // effects stack with lower tiers + adjustBruteLoss(-0.3, FALSE) + adjustFireLoss(-0.15, FALSE) if(drunkenness >= 51) if(prob(5)) @@ -412,6 +420,9 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put if(drunkenness >= 61) if(prob(50)) blur_eyes(5) + if(has_trait(TRAIT_DRUNK_HEALING)) + adjustBruteLoss(-0.4, FALSE) + adjustFireLoss(-0.2, FALSE) if(drunkenness >= 71) blur_eyes(5)