diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 51ba5d3782..448077ccc5 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -80,10 +80,46 @@ if(istype(L)) L.adjust_fire_stacks(amount / 15) -/datum/reagent/ethanol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) +/datum/reagent/ethanol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) //This used to do just toxin. That's boring. Let's make this FUN. if(issmall(M)) removed *= 2 - M.adjustToxLoss(removed * 2 * toxicity) - return + var/strength_mod = 3 //Alcohol is 3x stronger when injected into the veins. + if(alien == IS_SKRELL) + strength_mod *= 5 + if(alien == IS_TAJARA) + strength_mod *= 1.25 + if(alien == IS_UNATHI) + strength_mod *= 0.75 + if(alien == IS_DIONA) + strength_mod = 0 + + M.add_chemical_effect(CE_ALCOHOL, 1) + + if(dose * strength_mod >= strength) // Early warning + M.make_dizzy(18) // It is decreased at the speed of 3 per tick + if(dose * strength_mod >= strength * 2) // Slurring + M.slurring = max(M.slurring, 90) + if(dose * strength_mod >= strength * 3) // Confusion - walking in random directions + M.Confuse(60) + if(dose * strength_mod >= strength * 4) // Blurry vision + M.eye_blurry = max(M.eye_blurry, 30) + if(dose * strength_mod >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 60) + if(dose * strength_mod >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) + if(dose * strength_mod >= strength * 7) // Pass out + M.paralysis = max(M.paralysis, 60) + M.sleeping = max(M.sleeping, 90) + + if(druggy != 0) + M.druggy = max(M.druggy, druggy*3) + + if(adj_temp > 0 && M.bodytemperature < targ_temp) // 310 is the normal bodytemp. 310.055 + M.bodytemperature = min(targ_temp, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(adj_temp < 0 && M.bodytemperature > targ_temp) + M.bodytemperature = min(targ_temp, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + + if(halluci) + M.hallucination = max(M.hallucination, halluci*3) /datum/reagent/ethanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) if(issmall(M)) removed *= 2 diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 84639e1c39..fbca78e07d 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -462,6 +462,10 @@ for(var/datum/reagent/R in M.ingested.reagent_list) if(istype(R, /datum/reagent/ethanol)) R.dose = max(R.dose - removed * 5, 0) + if(M.bloodstr) + for(var/datum/reagent/R in M.bloodstr.reagent_list) + if(istype(R, /datum/reagent/ethanol)) + R.dose = max(R.dose - removed * 15, 0) /datum/reagent/hyronalin name = "Hyronalin" @@ -708,4 +712,4 @@ M.heal_organ_damage(2 * removed, 2 * removed) M.adjustOxyLoss(-4 * removed) M.adjustToxLoss(-2 * removed) - M.adjustCloneLoss(-2 * removed) \ No newline at end of file + M.adjustCloneLoss(-2 * removed)