diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 2931117b2fe..7b3d42522a6 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -283,11 +283,15 @@ header = "Bro I'm not even drunk right now", notify_flags = NOTIFY_CATEGORY_NOFLASH, ) + var/datum/status_effect/inebriated/inebriation = owner.has_status_effect(/datum/status_effect/inebriated) + inebriation?.iron_liver = TRUE /datum/brain_trauma/severe/split_personality/blackout/on_lose() . = ..() owner.add_mood_event("hang_over", /datum/mood_event/hang_over) UnregisterSignal(owner, COMSIG_ATOM_SPLASHED) + var/datum/status_effect/inebriated/inebriation = owner.has_status_effect(/datum/status_effect/inebriated) + inebriation?.iron_liver = FALSE /datum/brain_trauma/severe/split_personality/blackout/proc/on_splashed() SIGNAL_HANDLER diff --git a/code/datums/status_effects/debuffs/drunk.dm b/code/datums/status_effects/debuffs/drunk.dm index 10afaaa017a..fc5c74f46d5 100644 --- a/code/datums/status_effects/debuffs/drunk.dm +++ b/code/datums/status_effects/debuffs/drunk.dm @@ -18,6 +18,8 @@ alert_type = null /// The level of drunkness we are currently at. var/drunk_value = 0 + /// If TRUE, drunk_value will be capped at 51, preventing serious damage + var/iron_liver = FALSE /datum/status_effect/inebriated/on_creation(mob/living/new_owner, drunk_value = 0) . = ..() @@ -57,7 +59,8 @@ /datum/status_effect/inebriated/proc/set_drunk_value(set_to) if(!isnum(set_to)) CRASH("[type] - invalid value passed to set_drunk_value. (Got: [set_to])") - + if(iron_liver) + set_to = min(51, set_to) drunk_value = set_to if(drunk_value <= 0) qdel(src)