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."