diff --git a/code/__DEFINES/chemistry.dm b/code/__DEFINES/chemistry.dm
index c448ae48e15..de7aa5398d5 100644
--- a/code/__DEFINES/chemistry.dm
+++ b/code/__DEFINES/chemistry.dm
@@ -107,15 +107,15 @@
#define INTOX_DEATH 0.45
//How many units of intoxication to remove per second
-#define INTOX_FILTER_HEALTHY 0.10
-#define INTOX_FILTER_BRUISED 0.07
-#define INTOX_FILTER_DAMAGED 0.03
+#define INTOX_FILTER_HEALTHY 0.015
+#define INTOX_FILTER_BRUISED 0.007
+#define INTOX_FILTER_DAMAGED 0.003
#define BASE_DIZZY 50 //Base dizziness from getting drunk.
#define DIZZY_ADD_SCALE 15 //Amount added for every 0.01 percent over the JUDGEIMP limit
-#define BASE_VOMIT_CHANCE 10 //Base chance
-#define VOMIT_CHANCE_SCALE 2.5 //Percent change added for every 0.01 percent over the VOMIT limit
+#define BASE_VOMIT_CHANCE 1 //Base chance
+#define VOMIT_CHANCE_SCALE 1 //Percent change added for every 0.01 percent over the VOMIT limit
#define REAGENTS_FREE_SPACE(R) (R.maximum_volume - R.total_volume)
diff --git a/code/modules/mob/living/carbon/human/intoxication.dm b/code/modules/mob/living/carbon/human/intoxication.dm
index ee1e9e01204..c0d8ee7ae71 100644
--- a/code/modules/mob/living/carbon/human/intoxication.dm
+++ b/code/modules/mob/living/carbon/human/intoxication.dm
@@ -27,24 +27,26 @@
if(bac > INTOX_BUZZED*SR && bac < INTOX_MUSCLEIMP*SR)
sprint_cost_factor += -0.1
if(prob(5))
- to_chat(src,"You feel buzzed.")
+ to_chat(src, SPAN_NOTICE("You feel buzzed."))
if(bac > INTOX_JUDGEIMP*SR)
if (dizziness == 0)
- to_chat(src,"You feel a little tipsy.")
+ to_chat(src, SPAN_NOTICE("You feel a little tipsy."))
var/target_dizziness = BASE_DIZZY + ((bac - INTOX_JUDGEIMP*SR)*DIZZY_ADD_SCALE*100)
make_dizzy(target_dizziness - dizziness)
- if(bac > INTOX_MUSCLEIMP*SR)
+ if(bac > INTOX_MUSCLEIMP*SR && bac < INTOX_REACTION*SR)
slurring = max(slurring, 25)
if (prob(5))
- to_chat(src,"You feel drunk!")
+ to_chat(src, SPAN_NOTICE("You feel drunk!"))
move_delay_mod += 2
sprint_cost_factor += 0.2
- if(bac > INTOX_REACTION*SR)
+ if(bac > INTOX_REACTION*SR && bac < INTOX_BALANCE*SR)
+ if (prob(5))
+ to_chat(src, SPAN_NOTICE("You feel absolutely smashed!"))
if (confused == 0)
- to_chat(src,"You feel uncoordinated and unsteady on your feet!")
+ to_chat(src, SPAN_WARNING("You feel uncoordinated and unsteady on your feet!"))
confused = max(confused, 10)
slurring = max(slurring, 50)
@@ -54,28 +56,31 @@
var/chance = BASE_VOMIT_CHANCE + ((bac - INTOX_VOMIT*SR)*VOMIT_CHANCE_SCALE*100)
if (prob(chance))
delayed_vomit()
- add_chemical_effect(CE_HEPATOTOXIC, 1)
if(bac > INTOX_BALANCE*SR)
slurring = max(slurring, 100)
+ if (prob(5))
+ to_chat(src, SPAN_NOTICE("You feel the room spinning..."))
if (life_tick % 4 == 1 && !lying && !buckled_to && prob(10))
- src.visible_message("[src] loses balance and falls to the ground!","You lose balance and fall to the ground!")
+ src.visible_message(SPAN_WARNING("[src] loses balance and falls to the ground!"),SPAN_WARNING("You lose balance and fall to the ground!"))
Paralyse(3 SECONDS)
if(bac > INTOX_CONSCIOUS*SR)
slurring = max(slurring, 90)
- src.visible_message("[src] loses consciousness!","You lose consciousness!")
+ src.visible_message(SPAN_DANGER("[src] loses consciousness!"),SPAN_DANGER("You lose consciousness!"))
paralysis = max(paralysis, 60 SECONDS)
sleeping = max(sleeping, 60 SECONDS)
adjustBrainLoss(5,30)
+ add_chemical_effect(CE_HEPATOTOXIC, 3)
else if(bac > INTOX_BLACKOUT*SR)
slurring = max(slurring, 80)
- src.visible_message("[src] blackouts!","You blackout!")
+ src.visible_message(SPAN_DANGER("[src] blacks out!"),SPAN_DANGER("You black out!"))
paralysis = max(paralysis, 20 SECONDS)
sleeping = max(sleeping, 20 SECONDS)
adjustBrainLoss(3,10)
+ add_chemical_effect(CE_HEPATOTOXIC, 1)
else if(prob(10))
slurring = max(slurring, 70)
- to_chat(src,"You decide that you like the ground and spend a few seconds to rest.")
+ to_chat(src,SPAN_WARNING("You decide that you like the ground and spend a few seconds to rest."))
sleeping = max(sleeping, 6 SECONDS)
adjustBrainLoss(1,5)
diff --git a/code/modules/organs/internal/liver.dm b/code/modules/organs/internal/liver.dm
index 660da454c10..03d64d93d3b 100644
--- a/code/modules/organs/internal/liver.dm
+++ b/code/modules/organs/internal/liver.dm
@@ -58,7 +58,7 @@
if (owner.intoxication > 0)
var/bac = owner.get_blood_alcohol()
var/res = owner.species ? owner.species.ethanol_resistance : 1
- if(bac >= INTOX_MUSCLEIMP * res) //Excessive blood alcohol, difficult to filter
+ if(bac >= INTOX_BLACKOUT * res) //Excessive blood alcohol, difficult to filter
owner.intoxication -= min(owner.intoxication, filter_strength/2)
else
owner.intoxication -= min(owner.intoxication, filter_strength)
@@ -71,7 +71,7 @@
/obj/item/organ/internal/liver/handle_regeneration()
if(..())
- if(!owner.total_radiation && damage > 0)
+ if(!owner.total_radiation && damage > 0 && !(owner.get_blood_alcohol() > INTOX_BLACKOUT))
if(damage < min_broken_damage)
heal_damage(0.2)
if(damage < min_bruised_damage)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
index dae27a8556f..aec1fd4bac7 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
@@ -126,7 +126,7 @@
description = DESC_PARENT
reagent_state = LIQUID
color = "#404030"
- ingest_met = REM * 5
+ ingest_met = REM * 2.5
fallback_specific_heat = 0.605
germ_adjust = 20 // as good as sterilizine, but only if you have pure ethanol. or rubbing alcohol if we get that eventually
@@ -169,7 +169,7 @@
/singleton/reagent/alcohol/affect_ingest(mob/living/carbon/M, alien, removed, var/datum/reagents/holder)
if(alien != IS_DIONA)
- M.intoxication += (strength / 100) * removed * 3.5
+ M.intoxication += (strength / 100) * removed * 6
if (druggy != 0)
M.druggy = max(M.druggy, druggy)
@@ -243,7 +243,7 @@
description = "A fairly harmless alcohol that has intoxicating effects on certain species."
reagent_state = LIQUID
color = "#404030"
- ingest_met = REM * 0.5 //Extremely slow metabolic rate means the liver will generally purge it faster than it can intoxicate you
+ ingest_met = REM * 0.25 //Extremely slow metabolic rate means the liver will generally purge it faster than it can intoxicate you
flammability_divisor = 7 //Butanol is a bit less flammable than ethanol
taste_description = "alcohol"
@@ -267,7 +267,7 @@
M.adjustHydrationLoss(-hydration_factor * removed)
if (alien == IS_UNATHI)
- ingest_met = initial(ingest_met)*3
+ ingest_met = initial(ingest_met)*9
..()
diff --git a/html/changelogs/crosarius-alcoholism.yml b/html/changelogs/crosarius-alcoholism.yml
new file mode 100644
index 00000000000..2dec520ae89
--- /dev/null
+++ b/html/changelogs/crosarius-alcoholism.yml
@@ -0,0 +1,12 @@
+author: Crosarius
+
+delete-after: True
+
+changes:
+ - qol: "Greatly reduces the rate the liver clears alcohol intoxication"
+ - qol: "Increases applied intoxication coefficient from alcohol (Alcohol is more potent)"
+ - qol: "Halves the rate that alcohol and butanol are metabolised by the body (You get drunk slower)"
+ - qol: "Increases butanol metabolism coefficient for Unathi (Unathi metabolise alcohol at a rate roughly equivalent to Humans and Alcohol)"
+ - qol: "Greatly reduced frequency of vomiting while moderately inebriated."
+ - qol: "Changes liver damage from drunkeness to occur when you black out or fall unconscious, rather than when you vomit."
+ - qol: "Causes the liver to stop regenerating when BAC rises to dangerous levels."