diff --git a/code/modules/reagents/reagents/dispenser.dm b/code/modules/reagents/reagents/dispenser.dm index c6a83c5736..55fc587f78 100644 --- a/code/modules/reagents/reagents/dispenser.dm +++ b/code/modules/reagents/reagents/dispenser.dm @@ -106,7 +106,7 @@ glass_desc = "A well-known alcohol with a variety of applications." allergen_factor = 1 //simulates mixed drinks containing less of the allergen, as they have only a single actual reagent unlike food - affects_robots = 1 //VOREStation Addition/Edit + affects_robots = 1 //kiss my shiny metal ass /datum/reagent/ethanol/touch_mob(var/mob/living/L, var/amount) ..() @@ -117,26 +117,13 @@ if(issmall(M)) removed *= 2 - if(alien == IS_SLIME) - strength_mod *= 2 - // VOREStation Edit - M.adjustToxLoss(removed) - var/strength_mod = 3 * M.species.chem_strength_alcohol //Alcohol is 3x stronger when injected into the veins. if(!strength_mod) return - M.add_chemical_effect(CE_ALCOHOL, 1) - - var/effective_dose = dose * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster - if(M.species.robo_ethanol_proc) //failsafe to make sure boozy-bots don't get rekt, since they only process out of bloodstream rather than ingested - effective_dose = dose * M.species.chem_strength_alcohol - - if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) - M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing - to_world("[M] gained [round(max(0,80-strength))] multiplied by [removed], divided by 30 = [round(max(0,80 - strength) * removed)/30] nutrition this processing tick.") - - if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(!(M.isSynthetic())) M.add_chemical_effect(CE_ALCOHOL, 1) + var/effective_dose = dose * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster if(effective_dose >= strength) // Early warning M.make_dizzy(18) // It is decreased at the speed of 3 per tick @@ -146,6 +133,13 @@ M.Confuse(60) if(effective_dose >= strength * 4) // Blurry vision M.eye_blurry = max(M.eye_blurry, 30) + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 60) + if(effective_dose >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) + if(effective_dose >= strength * 7) // Pass out + M.Paralyse(60) + M.Sleeping(90) if(druggy != 0) M.druggy = max(M.druggy, druggy*3) @@ -158,57 +152,51 @@ if(halluci) M.hallucination = max(M.hallucination, halluci*3) - if((M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc) || !(M.isSynthetic())) - if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 60) - if(effective_dose >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) - if(effective_dose >= strength * 7) // Pass out - M.Paralyse(60) - M.Sleeping(90) - //VOREStation Edits End - /datum/reagent/ethanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) - if(issmall(M)) removed *= 2 - if(!(M.species.allergens & allergen_type) && !(M.isSynthetic())) //assuming it doesn't cause a horrible reaction, we get the nutrition effects - VOREStation Edit (added synth check) + if(issmall(M)) + removed *= 2 - if(!(M.species.allergens & allergen_type)) //assuming it doesn't cause a horrible reaction, we get the nutrition effects + if(!(M.species.allergens & allergen_type) && !(M.isSynthetic())) //assuming it doesn't cause a horrible reaction, we get the nutrition effects - VOREStation Edit (added synth check) M.adjust_nutrition(nutriment_factor * removed) + if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) + M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing + to_world("[M] gained [round(max(0,80-strength))] multiplied by [removed], divided by 30 = [round(max(0,80 - strength) * removed)/30] nutrition this processing tick.") + var/effective_dose = dose * M.species.chem_strength_alcohol if(!effective_dose) return - if(!(M.isSynthetic())) + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) M.add_chemical_effect(CE_ALCOHOL, 1) - if(dose * strength_mod >= strength) // Early warning + if(effective_dose >= strength) // Early warning M.make_dizzy(6) // It is decreased at the speed of 3 per tick - if(dose * strength_mod >= strength * 2) // Slurring + if(effective_dose >= strength * 2) // Slurring M.slurring = max(M.slurring, 30) - if(dose * strength_mod >= strength * 3) // Confusion - walking in random directions + if(effective_dose >= strength * 3) // Confusion - walking in random directions M.Confuse(20) - if(dose * strength_mod >= strength * 4) // Blurry vision + if(effective_dose >= strength * 4) // Blurry vision M.eye_blurry = max(M.eye_blurry, 10) - if(dose * strength_mod >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 20) - if(dose * strength_mod >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - if(dose * strength_mod >= strength * 7) // Pass out - M.Paralyse(20) - M.Sleeping(30) + if((M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc) || !(M.isSynthetic())) + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 20) + if(effective_dose >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) + if(effective_dose >= strength * 7) // Pass out + M.Paralyse(20) + M.Sleeping(30) if(druggy != 0) M.druggy = max(M.druggy, druggy) - //VOREStation Edits End - 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) - if(halluci) - M.hallucination = max(M.hallucination, halluci) + 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)) /datum/reagent/ethanol/touch_obj(var/obj/O) ..()