From c461128a5611137389d81ced1c7e4e1171195e87 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Wed, 16 Mar 2016 20:37:25 -0400 Subject: [PATCH 1/7] Alcohol refactor --- code/__DEFINES/misc.dm | 2 +- .../gamemodes/changeling/powers/panacea.dm | 3 +- code/game/machinery/vending.dm | 2 +- .../food&drinks/drinks/drinks/bottle.dm | 6 + .../drinks/drinks/drinkingglass.dm | 20 ++ .../food&drinks/recipes/drinks_recipes.dm | 37 +- code/modules/mob/living/bloodcrawl.dm | 22 +- code/modules/mob/living/carbon/human/death.dm | 1 + .../mob/living/carbon/human/examine.dm | 15 + code/modules/mob/living/carbon/human/human.dm | 1 + .../mob/living/carbon/human/human_defines.dm | 2 + code/modules/mob/living/carbon/human/life.dm | 81 +++++ code/modules/mob/living/living_defines.dm | 4 +- code/modules/reagents/chemistry/holder.dm | 3 +- .../chemistry/machinery/chem_dispenser.dm | 14 +- .../chemistry/reagents/alcohol_reagents.dm | 333 ++++++++++++------ .../chemistry/reagents/medicine_reagents.dm | 3 + code/modules/reagents/chemistry/recipes.dm | 3 +- icons/obj/drinks.dmi | Bin 59228 -> 60873 bytes 19 files changed, 415 insertions(+), 137 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 6029de927b8..1bec490f140 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -378,4 +378,4 @@ var/list/bloody_footprints_cache = list() #define PLANT_NORMAL 0 #define PLANT_WEED 1 #define PLANT_MUSHROOM 2 -#define PLANT_ALIEN 3 \ No newline at end of file +#define PLANT_ALIEN 3 diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index b34d41a7881..e72decb7b34 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/changeling/panacea name = "Anatomic Panacea" - desc = "Expels impurifications from our form; curing diseases, removing parasites, toxins and radiation, and resetting our genetic code completely." + desc = "Expels impurifications from our form; curing diseases, removing parasites, sobering us, purging toxins and radiation, and resetting our genetic code completely." helptext = "Can be used while unconscious." chemical_cost = 20 dna_cost = 1 @@ -21,6 +21,7 @@ user.reagents.add_reagent("mutadone", 10) user.reagents.add_reagent("potass_iodide", 10) user.reagents.add_reagent("charcoal", 20) + user.reagents.add_reagent("antihol", 10) for(var/datum/disease/D in user.viruses) D.cure() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 4ad70d8a672..145b97cc6fb 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -621,7 +621,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/item/weapon/reagent_containers/food/drinks/bottle/tequila = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/beer = 6, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 5, /obj/item/weapon/reagent_containers/food/drinks/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 8, diff --git a/code/modules/food&drinks/drinks/drinks/bottle.dm b/code/modules/food&drinks/drinks/drinks/bottle.dm index afd9607f7e1..fd42f55559b 100644 --- a/code/modules/food&drinks/drinks/drinks/bottle.dm +++ b/code/modules/food&drinks/drinks/drinks/bottle.dm @@ -231,6 +231,12 @@ icon_state = "winebottle" list_reagents = list("wine" = 100) +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe + name = "T&T Extra-Strong Absinthe" + desc = "An strong alcoholic drink brewed and distributed by Terb & Tonte Inc." + icon_state = "absinthebottle" + list_reagents = list("absinthe" = 100) + //////////////////////////JUICES AND STUFF /////////////////////// /obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice diff --git a/code/modules/food&drinks/drinks/drinks/drinkingglass.dm b/code/modules/food&drinks/drinks/drinks/drinkingglass.dm index bd70905ff91..d8629f5180e 100644 --- a/code/modules/food&drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food&drinks/drinks/drinks/drinkingglass.dm @@ -486,6 +486,26 @@ icon_state = "gibbfloats" name = "Gibbfloat" desc = "Dr. Gibb with ice cream on top." + if("whiskey_sour") + icon_state = "whiskey_sour" + name = "Whiskey Sour" + desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying." + if("fetching_fizz") + icon_state = "fetching_fizz" + name = "Fetching Fizz" + desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste." + if("hearty_punch") + icon_state = "hearty_punch" + name = "Hearty Punch" + desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead." + if("absinthe") + icon_state = "absinthe" + name = "glass of absinthe" + desc = "It's as strong as it smells." + if("bacchus_blessing") + icon_state = "glass_brown2" + name = "Bacchus' Blessing" + desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?" else icon_state ="glass_brown" var/image/I = image(icon, "glassoverlay") diff --git a/code/modules/food&drinks/recipes/drinks_recipes.dm b/code/modules/food&drinks/recipes/drinks_recipes.dm index c93a638d9b6..49bf16ec7bc 100644 --- a/code/modules/food&drinks/recipes/drinks_recipes.dm +++ b/code/modules/food&drinks/recipes/drinks_recipes.dm @@ -577,4 +577,39 @@ result = "grappa" required_reagents = list ("wine" = 10) required_catalysts = list ("enzyme" = 5) - result_amount = 10 \ No newline at end of file + result_amount = 10 + +/datum/chemical_reaction/whiskey_sour + name = "Whiskey Sour" + id = "whiskey_sour" + result = "whiskey_sour" + required_reagents = list("whiskey" = 1, "lemonjuice" = 1, "sugar" = 1) + result_amount = 3 + mix_message = "The mixture darkens to a rich gold hue." + mix_sound = null + +/datum/chemical_reaction/fetching_fizz + name = "Fetching Fizz" + id = "fetching_fizz" + result = "fetching_fizz" + required_reagents = list("nuka_cola" = 1, "iron" = 1, "uranium" = 1) //Manufacturable from only the mining station + result_amount = 3 + mix_message = "The mixture slightly vibrates before settling." + +/datum/chemical_reaction/hearty_punch + name = "Hearty Punch" + id = "hearty_punch" + result = "hearty_punch" + required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5) + result_amount = 1 //Very little, for balance reasons + mix_message = "The mixture darkens to a healthy crimson." + mix_sound = null + required_temp = 315 //Piping hot! + +/datum/chemical_reaction/bacchus_blessing + name = "Bacchus' Blessing" + id = "bacchus_blessing" + result = "bacchus_blessing" + required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1) + result_amount = 4 + mix_message = "The mixture turns to a sickening froth." diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index 697462bab78..43d343dcbf9 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -56,6 +56,8 @@ var/mob/living/victim = src.pulling if(victim.stat == CONSCIOUS) src.visible_message("[victim] kicks free of the blood pool just before entering it!") + else if(victim.reagents && victim.reagents.has_reagent("demonsblood")) + visible_message("Something prevents [victim] from entering the pool!", "A strange force is blocking [victim] from entering!") else victim.loc = holder victim.emote("scream") @@ -69,13 +71,19 @@ playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) sleep(30) if(kidnapped) - src << "You devour [kidnapped]. Your health is fully restored." - src.adjustBruteLoss(-1000) - src.adjustFireLoss(-1000) - src.adjustOxyLoss(-1000) - src.adjustToxLoss(-1000) - kidnapped.ghostize() - qdel(kidnapped) + if(kidnapped.reagents && kidnapped.reagents.has_reagent("devilskiss")) + src << "AAH! THEIR FLESH! IT BURNS!" + adjustBruteLoss(25) //I can't use adjustHealth() here because bloodcrawl affects /mob/living and adjustHealth() only affects simple mobs + kidnapped.loc = get_turf(B) + kidnapped.visible_message("[B] violently expels [kidnapped]!") + else + src << "You devour [kidnapped]. Your health is fully restored." + src.adjustBruteLoss(-1000) + src.adjustFireLoss(-1000) + src.adjustOxyLoss(-1000) + src.adjustToxLoss(-1000) + kidnapped.ghostize() + qdel(kidnapped) else src << "You happily devour... nothing? Your meal vanished at some point!" src.notransform = 0 diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 33ac914b274..2ff5e4db411 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -16,6 +16,7 @@ /mob/living/carbon/human/death(gibbed) if(stat == DEAD) return + stat = DEAD dizziness = 0 jitteriness = 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 6a8d07444aa..4d72eea8665 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -246,6 +246,21 @@ if(reagents.has_reagent("teslium")) msg += "[t_He] is emitting a gentle blue glow!\n" + if(drunkenness && !skipface && stat != DEAD) //Drunkenness + switch(drunkenness) + if(11 to 21) + msg += "[t_He] [t_is] slightly flushed.\n" + if(22 to 41) + msg += "[t_He] [t_is] flushed.\n" + if(42 to 51) + msg += "[t_He] [t_is] quite flushed and [t_his] breath smells of alcohol.\n" + if(52 to 61) + msg += "[t_He] is very flushed and [t_his] movements jerky, with breath reeking of alcohol.\n" + if(62 to 91) + msg += "[t_He] looks like a drunken mess.\n" + if(92 to INFINITY) + msg += "[t_He] is a shitfaced, slobbering wreck.\n" + msg += "" if(!appears_dead) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c2a6b07536c..2baf7eb7430 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -951,6 +951,7 @@ L.Insert(src) restore_blood() remove_all_embedded_objects() + modify_drunkenness(-drunkenness) for(var/datum/mutation/human/HM in dna.mutations) if(HM.quality != POSITIVE) dna.remove_mutation(HM.name) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9076f4afcfb..c5ee9ba2d6c 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -53,3 +53,5 @@ var/name_override //For temporary visible name changes var/heart_attack = 0 + + var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index faf39511b2b..432893ddf38 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -35,6 +35,8 @@ //heart attack stuff handle_heart() + handle_alcohol() //Alcohol + //Stuff jammed in your limbs hurts handle_embedded_objects() //Update our name based on whether our face is obscured/disfigured @@ -318,4 +320,83 @@ adjustOxyLoss(5) adjustBruteLoss(1) +/* +Alcohol Poisoning Chart +Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning) +In addition, severe effects won't always trigger unless the drink is poisonously strong +All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance + +0: Non-alcoholic +1-10: Barely classifiable as alcohol - occassional slurring +11-20: Slight alcohol content - slurring +21-30: Below average - imbiber begins to look slightly drunk +31-40: Just below average - no unique effects +41-50: Average - mild disorientation, imbiber begins to look drunk +51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk +61-70: Above average - small chance of blurry vision, imbiber begins to look smashed +71-80: High alcohol content - blurry vision, imbiber completely shitfaced +81-90: Extremely high alcohol content - heavy toxin damage, passing out +91-100: Dangerously toxic - swift death +*/ + +/mob/living/carbon/human/proc/handle_alcohol() + if(sleeping) + modify_drunkenness(-1.5) //Sleeping helps you recover from alcohol poisoning + else + modify_drunkenness(-0.2) //Becoming sober takes much longer than becoming drunk + + if(!drunkenness) + return 0 + + if(drunkenness >= 6) + if(prob(25)) + slurring += 2 + jitteriness = max(jitteriness - 3, 0) + + if(drunkenness >= 11 && slurring < 5) + slurring += 1.2 + + if(drunkenness >= 41) + if(prob(25)) + confused += 2 + Dizzy(10) + + if(drunkenness >= 51) + if(prob(5)) + confused += 10 + vomit() + Dizzy(25) + + if(drunkenness >= 61) + if(prob(50)) + blur_eyes(5) + + if(drunkenness >= 71) + blur_eyes(5) + + if(drunkenness >= 81) + adjustToxLoss(0.2) + if(prob(5)) + src << "Maybe you should lie down for a bit..." + + if(drunkenness >= 91) + if(!sleeping) + adjustToxLoss(1) + if(prob(20)) + if(SSshuttle.emergency.mode == SHUTTLE_DOCKED && z == ZLEVEL_STATION) //QoL mainly + src << "You're so tired... but you can't miss that shuttle..." + else if(!sleeping) + src << "Just a quick nap..." + Sleeping(45) + + if(drunkenness >= 101) + adjustToxLoss(4) //Let's be honest you shouldn't be alive by now + +/mob/living/carbon/human/proc/modify_drunkenness(var/amount) + drunkenness += amount + if(sleeping) + if(drunkenness >= 101) + drunkenness -= 25 //Mainly to ensure that you don't goddamn die from it for balance reasons + drunkenness = Clamp(drunkenness, 0, INFINITY) + #undef HUMAN_MAX_OXYLOSS diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 5f506aaebad..e2f38650cc0 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -55,6 +55,6 @@ var/bubble_icon = "default" //what icon the mob uses for speechbubbles var/last_bumped = 0 - var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666) + var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (69) - var/list/butcher_results = null \ No newline at end of file + var/list/butcher_results = null diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index c65357d392d..4297b94732e 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -378,7 +378,8 @@ var/const/INJECT = 5 //injection var/list/seen = viewers(4, get_turf(my_atom)) if(!istype(my_atom, /mob)) // No bubbling mobs - playsound(get_turf(my_atom), 'sound/effects/bubbles.ogg', 80, 1) + if(C.mix_sound) + playsound(get_turf(my_atom), C.mix_sound, 80, 1) for(var/mob/M in seen) M << "\icon[my_atom] [C.mix_message]" diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 07c91896be4..85f61b23a0a 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -270,6 +270,7 @@ /obj/machinery/chem_dispenser/drinks name = "soda dispenser" + desc = "Contains a large reservoir of soft drinks." anchored = 1 icon = 'icons/obj/chemical.dmi' icon_state = "soda_dispenser" @@ -291,7 +292,8 @@ "sugar", "orangejuice", "limejuice", - "tomatojuice" + "tomatojuice", + "lemonjuice" ) /obj/machinery/chem_dispenser/drinks/attackby(obj/item/I, mob/user) @@ -311,16 +313,11 @@ /obj/machinery/chem_dispenser/drinks/beer name = "booze dispenser" + desc = "Contains a large reservoir of the good stuff." anchored = 1 icon = 'icons/obj/chemical.dmi' icon_state = "booze_dispenser" dispensable_reagents = list( - "lemon_lime", - "sugar", - "orangejuice", - "limejuice", - "sodawater", - "tonic", "beer", "kahlua", "whiskey", @@ -331,5 +328,6 @@ "tequila", "vermouth", "cognac", - "ale" + "ale", + "absinthe" ) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index c1c1f1e2603..5fdb7ecdb1c 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1,17 +1,8 @@ +#define ALCOHOL_RATE 0.015 //The rate at which alcohol affects you; by default, one glass of whiskey gets you just above tipsy - - -/////////////////////////////////////////////////////////////////////////////////////// - //ALCOHOLS -///////////////////////////////////////////////////////////////////////////////////// - -/*boozepwr chart -55 = non-toxic alchohol -45 = medium-toxic -35 = the hard stuff -25 = potent mixes -<15 = deadly toxic -*/ +////////////// I don't know who made this header before I refactored alcohols but I'm going to fucking strangle them because it was so ugly, holy Christ +// ALCOHOLS // +////////////// /datum/reagent/consumable/ethanol name = "Ethanol" @@ -19,36 +10,45 @@ description = "A well-known alcohol with a variety of applications." color = "#404030" // rgb: 64, 64, 48 nutriment_factor = 0 - var/boozepwr = 10 //lower numbers mean the booze will have an effect faster. + var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning + +/* +Boozepwr Chart +Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning) +In addition, severe effects won't always trigger unless the drink is poisonously strong +All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance + +0: Non-alcoholic +1-10: Barely classifiable as alcohol - occassional slurring +11-20: Slight alcohol content - slurring +21-30: Below average - imbiber begins to look slightly drunk +31-40: Just below average - no unique effects +41-50: Average - mild disorientation, imbiber begins to look drunk +51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk +61-70: Above average - small chance of blurry vision, imbiber begins to look smashed +71-80: High alcohol content - blurry vision, imbiber completely shitfaced +81-90: Extremely high alcohol content - heavy toxin damage, passing out +91-100: Dangerously toxic - swift death +*/ /datum/reagent/consumable/ethanol/on_mob_life(mob/living/M) - M.jitteriness = max(M.jitteriness-5,0) - if(current_cycle >= boozepwr*0.5) - var/drunk_value = sqrt(volume*1000/boozepwr) - if(volume >= boozepwr*0.2) - if(M.slurring < drunk_value) - M.slurring += 4 - M.Dizzy(drunk_value) - if(volume >= boozepwr*0.8) - if(M.confused < drunk_value) - M.confused += 3 - if(volume >= boozepwr*3.8) - M.adjustToxLoss(1, 0) - . = 1 + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.modify_drunkenness(boozepwr * ALCOHOL_RATE) return ..() || . /datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume) if(istype(O,/obj/item/weapon/paper)) var/obj/item/weapon/paper/paperaffected = O paperaffected.clearpaper() - usr << "The solution melts away the ink on the paper." + usr << "[paperaffected]'s ink washes away." if(istype(O,/obj/item/weapon/book)) if(reac_volume >= 5) var/obj/item/weapon/book/affectedbook = O affectedbook.dat = null - usr << "The solution melts away the ink on the book." + usr << "Through thorough application, you wash away [affectedbook]'s writing." else - usr << "It wasn't enough..." + usr << "The ink smears, but doesn't wash away!" return /datum/reagent/consumable/ethanol/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel. @@ -61,17 +61,25 @@ /datum/reagent/consumable/ethanol/beer name = "Beer" id = "beer" - description = "An alcoholic beverage made from malted grains, hops, yeast, and water." + description = "An alcoholic beverage brewed since ancient times on Old Earth. Still popular today." color = "#664300" // rgb: 102, 67, 0 nutriment_factor = 1 * REAGENTS_METABOLISM - boozepwr = 55 + boozepwr = 25 -/datum/reagent/consumable/ethanol/beer/greenbeer +/datum/reagent/consumable/ethanol/beer/green name = "Green Beer" id = "greenbeer" - description = "An alcoholic beverage made from malted grains, hops, yeast, and water. Dyed a festive green." + description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety is dyed a festive green." color = "#A8E61D" +/datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/M) + if(M.color != color) + M.color = color + return ..() + +/datum/reagent/consumable/ethanol/beer/green/on_mob_delete(mob/living/M) + M.color = initial(M.color) + /datum/reagent/consumable/ethanol/kahlua name = "Kahlua" id = "kahlua" @@ -84,15 +92,14 @@ M.drowsyness = max(0,M.drowsyness-3) M.AdjustSleeping(-2, 0) M.Jitter(5) - ..() - return 1 + return ..() /datum/reagent/consumable/ethanol/whiskey name = "Whiskey" id = "whiskey" description = "A superb and well-aged single-malt whiskey. Damn." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 75 /datum/reagent/consumable/ethanol/thirteenloko name = "Thirteen Loko" @@ -100,7 +107,7 @@ description = "A potent mixture of caffeine and alcohol." color = "#102000" // rgb: 16, 32, 0 nutriment_factor = 1 * REAGENTS_METABOLISM - boozepwr = 35 + boozepwr = 80 /datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M) M.drowsyness = max(0,M.drowsyness-7) @@ -108,15 +115,14 @@ if (M.bodytemperature > 310) M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(5) - ..() - return 1 + return ..() /datum/reagent/consumable/ethanol/vodka name = "Vodka" id = "vodka" description = "Number one drink AND fueling choice for Russians worldwide." color = "#0064C8" // rgb: 0, 100, 200 - boozepwr = 35 + boozepwr = 65 /datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/M) M.radiation = max(M.radiation-2,0) @@ -128,7 +134,7 @@ description = "This appears to be beer mixed with milk. Disgusting." color = "#895C4C" // rgb: 137, 92, 76 nutriment_factor = 2 * REAGENTS_METABOLISM - boozepwr = 55 + boozepwr = 15 /datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(10)) @@ -141,7 +147,7 @@ id = "threemileisland" description = "Made for a woman, strong enough for a man." color = "#666340" // rgb: 102, 99, 64 - boozepwr = 15 + boozepwr = 10 /datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/M) M.set_drugginess(50) @@ -152,21 +158,21 @@ id = "gin" description = "It's gin. In space. I say, good sir." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 55 + boozepwr = 45 /datum/reagent/consumable/ethanol/rum name = "Rum" id = "rum" description = "Yohoho and all that." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 45 + boozepwr = 60 /datum/reagent/consumable/ethanol/tequila name = "Tequila" id = "tequila" description = "A strong and mildly flavoured, Mexican produced spirit. Feeling thirsty, hombre?" color = "#FFFF91" // rgb: 255, 255, 145 - boozepwr = 35 + boozepwr = 70 /datum/reagent/consumable/ethanol/vermouth name = "Vermouth" @@ -180,35 +186,47 @@ id = "wine" description = "An premium alcoholic beverage made from distilled grape juice." color = "#7E4043" // rgb: 126, 64, 67 - boozepwr = 45 + boozepwr = 35 /datum/reagent/consumable/ethanol/grappa name = "Grappa" id = "grappa" description = "A fine Italian brandy, for when regular wine just isn't alcoholic enough for you." color = "#F8EBF1" - boozepwr = 35 + boozepwr = 45 /datum/reagent/consumable/ethanol/cognac name = "Cognac" id = "cognac" description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication." color = "#AB3C05" // rgb: 171, 60, 5 - boozepwr = 45 + boozepwr = 75 + +/datum/reagent/consumable/ethanol/absinthe + name = "Absinthe" + id = "absinthe" + description = "A powerful alcoholic drink. Rumored to cause hallucinations but does not." + color = rgb(10, 206, 0) + boozepwr = 80 //Very strong even by default + +/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/M) + if(prob(10)) + M.hallucination += 4 //Reference to the urban myth + ..() /datum/reagent/consumable/ethanol/hooch name = "Hooch" id = "hooch" description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?" color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 100 /datum/reagent/consumable/ethanol/ale name = "Ale" id = "ale" description = "A dark alchoholic beverage made by malted barley and yeast." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 55 + boozepwr = 65 /datum/reagent/consumable/ethanol/goldschlager name = "Goldschlager" @@ -222,56 +240,70 @@ id = "patron" description = "Tequila with silver in it, a favorite of alcoholic women in the club scene." color = "#585840" // rgb: 88, 88, 64 - boozepwr = 45 + boozepwr = 60 /datum/reagent/consumable/ethanol/gintonic name = "Gin and Tonic" id = "gintonic" description = "An all time classic, mild cocktail." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 55 + boozepwr = 25 /datum/reagent/consumable/ethanol/cuba_libre name = "Cuba Libre" id = "cubalibre" - description = "Rum, mixed with cola. Viva la revolution." + description = "Rum, mixed with cola. Viva la revolucion." color = "#3E1B00" // rgb: 62, 27, 0 - boozepwr = 45 + boozepwr = 50 + +/datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/M) + if(M.mind && M.mind.special_role in list("Revolutionary", "Head Revolutionary")) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries. + M.adjustBruteLoss(-1, 0) + M.adjustFireLoss(-1, 0) + M.adjustToxLoss(-1, 0) + M.adjustOxyLoss(-5, 0) + . = 1 + return ..() || . /datum/reagent/consumable/ethanol/whiskey_cola name = "Whiskey Cola" id = "whiskeycola" description = "Whiskey, mixed with cola. Surprisingly refreshing." color = "#3E1B00" // rgb: 62, 27, 0 - boozepwr = 35 + boozepwr = 70 /datum/reagent/consumable/ethanol/martini name = "Classic Martini" id = "martini" description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 60 /datum/reagent/consumable/ethanol/vodkamartini name = "Vodka Martini" id = "vodkamartini" description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 25 + boozepwr = 65 /datum/reagent/consumable/ethanol/white_russian name = "White Russian" id = "whiterussian" description = "That's just, like, your opinion, man..." color = "#A68340" // rgb: 166, 131, 64 - boozepwr = 35 + boozepwr = 50 /datum/reagent/consumable/ethanol/screwdrivercocktail name = "Screwdriver" id = "screwdrivercocktail" description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious." color = "#A68310" // rgb: 166, 131, 16 - boozepwr = 35 + boozepwr = 55 + +/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/M) + if(M.mind && M.mind.assigned_role in list("Station Engineer", "Atmospheric Technician", "Chief Engineer")) //Engineers lose radiation poisoning at a massive rate. + M.radiation = max(M.radiation - 25, 0) + return ..() /datum/reagent/consumable/ethanol/booger name = "Booger" @@ -285,28 +317,38 @@ id = "bloodymary" description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 55 /datum/reagent/consumable/ethanol/brave_bull name = "Brave Bull" id = "bravebull" description = "It's just as effective as Dutch-Courage!." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 80 + +/datum/reagent/consumable/ethanol/brave_bull/on_mob_life(mob/living/M) + if(M.maxHealth == initial(M.maxHealth)) //Brave Bull makes you sturdier, and thus capable of withstanding a tiny bit more punishment. + M.maxHealth += 5 + M.health += 5 + return ..() + +/datum/reagent/consumable/ethanol/brave_bull/on_mob_delete(mob/living/M) + if(M.maxHealth != initial(M.maxHealth)) + M.maxHealth = initial(M.maxHealth) /datum/reagent/consumable/ethanol/tequila_sunrise name = "Tequila Sunrise" id = "tequilasunrise" description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~" color = "#FFE48C" // rgb: 255, 228, 140 - boozepwr = 35 + boozepwr = 45 /datum/reagent/consumable/ethanol/toxins_special name = "Toxins Special" id = "toxinsspecial" description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!" color = "#664300" // rgb: 102, 67, 0 - boozepwr = 15 + boozepwr = 25 /datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M as mob) if (M.bodytemperature < 330) @@ -316,50 +358,49 @@ /datum/reagent/consumable/ethanol/beepsky_smash name = "Beepsky Smash" id = "beepskysmash" - description = "Deny drinking this and prepare for THE LAW." + description = "Drink this and prepare for the LAW." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 25 + boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD metabolization_rate = 0.8 /datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/M) - M.Stun(2) - ..() - return 1 + M.Stun(2, 0) + return ..() /datum/reagent/consumable/ethanol/irish_cream name = "Irish Cream" id = "irishcream" - description = "Whiskey-imbued cream, what else would you expect from the Irish." + description = "Whiskey-imbued cream, what else would you expect from the Irish?" color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 70 -/datum/reagent/consumable/ethanol/manly_dorf +/datum/reagent/consumable/ethanol/manly_dorf //THE SPRITE FOR THIS HAS A HANDLE AND THE HANDLE HAD A STRIP OF WHITE PIXELS BETWEEN IT AND THE MUG AND I FINALLY REMOVED IT AND OH GOD I'M SO HAPPY name = "The Manly Dorf" id = "manlydorf" description = "Beer and Ale, brought together in a delicious mix. Intended for true men only." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 45 //was 10, but really its only beer and ale, both weak alchoholic beverages + boozepwr = 100 //For the manly only /datum/reagent/consumable/ethanol/longislandicedtea name = "Long Island Iced Tea" id = "longislandicedtea" description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 25 + boozepwr = 35 /datum/reagent/consumable/ethanol/moonshine name = "Moonshine" id = "moonshine" description = "You've really hit rock bottom now... your liver packed its bags and left last night." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 25 + boozepwr = 95 /datum/reagent/consumable/ethanol/b52 name = "B-52" id = "b52" description = "Coffee, Irish Cream, and cognac. You will get bombed." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 25 + boozepwr = 85 /datum/reagent/consumable/ethanol/irishcoffee name = "Irish Coffee" @@ -380,21 +421,21 @@ id = "blackrussian" description = "For the lactose-intolerant. Still as classy as a White Russian." color = "#360000" // rgb: 54, 0, 0 - boozepwr = 35 + boozepwr = 70 /datum/reagent/consumable/ethanol/manhattan name = "Manhattan" id = "manhattan" description = "The Detective's undercover drink of choice. He never could stomach gin..." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 45 + boozepwr = 30 /datum/reagent/consumable/ethanol/manhattan_proj name = "Manhattan Project" id = "manhattan_proj" description = "A scientist's drink of choice, for pondering ways to blow up the station." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 15 + boozepwr = 45 /datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/M) M.set_drugginess(30) @@ -405,14 +446,14 @@ id = "whiskeysoda" description = "For the more refined griffon." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 70 /datum/reagent/consumable/ethanol/antifreeze name = "Anti-freeze" id = "antifreeze" - description = "Ultimate refreshment." + description = "The ultimate refreshment. Not what it sounds like." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 25 + boozepwr = 35 /datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/M) if (M.bodytemperature < 330) @@ -422,30 +463,45 @@ /datum/reagent/consumable/ethanol/barefoot name = "Barefoot" id = "barefoot" - description = "Barefoot and pregnant" + description = "Barefoot and pregnant." color = "#664300" // rgb: 102, 67, 0 boozepwr = 45 +/datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/M) + if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes. + var/mob/living/carbon/human/H = M + if(!H.shoes) + H.adjustBruteLoss(-3, 0) + . = 1 + return ..() || . + /datum/reagent/consumable/ethanol/snowwhite name = "Snow White" id = "snowwhite" - description = "A cold refreshment" + description = "A cold refreshment." color = "#FFFFFF" // rgb: 255, 255, 255 - boozepwr = 45 + boozepwr = 35 -/datum/reagent/consumable/ethanol/demonsblood - name = "Demons Blood" +/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dagged into a pool of blood by a slaughter demon. + name = "Demon's Blood" id = "demonsblood" description = "AHHHH!!!!" color = "#820000" // rgb: 130, 0, 0 - boozepwr = 35 + boozepwr = 75 + +/datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it. + name = "Devil's Kiss" + id = "devilskiss" + description = "Creepy time!" + color = "#A68310" // rgb: 166, 131, 16 + boozepwr = 70 /datum/reagent/consumable/ethanol/vodkatonic name = "Vodka and Tonic" id = "vodkatonic" - description = "For when a gin and tonic isn't russian enough." + description = "For when a gin and tonic isn't Russian enough." color = "#0064C8" // rgb: 0, 100, 200 - boozepwr = 35 + boozepwr = 70 /datum/reagent/consumable/ethanol/ginfizz name = "Gin Fizz" @@ -455,7 +511,7 @@ boozepwr = 45 /datum/reagent/consumable/ethanol/bahama_mama - name = "Bahama mama" + name = "Bahama Mama" id = "bahama_mama" description = "Tropical cocktail." color = "#FF7F3B" // rgb: 255, 127, 59 @@ -466,33 +522,26 @@ id = "singulo" description = "A blue-space beverage!" color = "#2E6671" // rgb: 46, 102, 113 - boozepwr = 15 + boozepwr = 35 /datum/reagent/consumable/ethanol/sbiten name = "Sbiten" id = "sbiten" description = "A spicy Vodka! Might be a little hot for the little guys!" color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 70 /datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M) if (M.bodytemperature < 360) M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 return ..() -/datum/reagent/consumable/ethanol/devilskiss - name = "Devils Kiss" - id = "devilskiss" - description = "Creepy time!" - color = "#A68310" // rgb: 166, 131, 16 - boozepwr = 35 - /datum/reagent/consumable/ethanol/red_mead name = "Red Mead" id = "red_mead" description = "The true Viking drink! Even though it has a strange red color." color = "#C73C00" // rgb: 199, 60, 0 - boozepwr = 45 + boozepwr = 51 //Red drinks are stronger /datum/reagent/consumable/ethanol/mead name = "Mead" @@ -500,14 +549,14 @@ description = "A Viking drink, though a cheap one." color = "#664300" // rgb: 102, 67, 0 nutriment_factor = 1 * REAGENTS_METABOLISM - boozepwr = 45 + boozepwr = 50 /datum/reagent/consumable/ethanol/iced_beer name = "Iced Beer" id = "iced_beer" description = "A beer which is so cold the air around it freezes." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 55 + boozepwr = 15 /datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M) if(M.bodytemperature > 270) @@ -519,7 +568,7 @@ id = "grog" description = "Watered down rum, Nanotrasen approves!" color = "#664300" // rgb: 102, 67, 0 - boozepwr = 90 + boozepwr = 1 //Basically nothing /datum/reagent/consumable/ethanol/aloe name = "Aloe" @@ -533,21 +582,21 @@ id = "andalusia" description = "A nice, strange named drink." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 40 /datum/reagent/consumable/ethanol/alliescocktail name = "Allies Cocktail" id = "alliescocktail" - description = "A drink made from your allies, not as sweet as when made from your enemies." + description = "A drink made from your allies. Not as sweet as those made from your enemies." color = "#664300" // rgb: 102, 67, 0 - boozepwr = 35 + boozepwr = 45 /datum/reagent/consumable/ethanol/acid_spit name = "Acid Spit" id = "acidspit" description = "A drink for the daring, can be deadly if incorrectly prepared!" color = "#365000" // rgb: 54, 80, 0 - boozepwr = 45 + boozepwr = 80 /datum/reagent/consumable/ethanol/amasec name = "Amasec" @@ -561,7 +610,13 @@ id = "changelingsting" description = "You take a tiny sip and feel a burning sensation..." color = "#2E6671" // rgb: 46, 102, 113 - boozepwr = 15 + boozepwr = 95 + +/datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/M) + if(M.mind && M.mind.changeling) //Changeling Sting assists in the recharging of changeling chemicals. + M.mind.changeling.chem_charges += metabolization_rate + M.mind.changeling.chem_charges = Clamp(M.mind.changeling.chem_charges, 0, M.mind.changeling.chem_storage) + return ..() /datum/reagent/consumable/ethanol/irishcarbomb name = "Irish Car Bomb" @@ -575,7 +630,12 @@ id = "syndicatebomb" description = "Tastes like terrorism!" color = "#2E6671" // rgb: 46, 102, 113 - boozepwr = 15 + boozepwr = 90 + +/datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/M) + if(prob(5)) + playsound(get_turf(M), 'sound/effects/explosionfar.ogg', 100, 1) + return ..() /datum/reagent/consumable/ethanol/erikasurprise name = "Erika Surprise" @@ -590,7 +650,7 @@ description = "Only for the experienced. You think you see sand floating in the glass." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#2E6671" // rgb: 46, 102, 113 - boozepwr = 25 + boozepwr = 65 /datum/reagent/consumable/ethanol/bananahonk name = "Banana Mama" @@ -598,7 +658,7 @@ description = "A drink from Clown Heaven." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#FFFF91" // rgb: 255, 255, 140 - boozepwr = 25 + boozepwr = 60 /datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/M) if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) ) @@ -612,7 +672,7 @@ description = "A drink from Mime Heaven." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#664300" // rgb: 102, 67, 0 - boozepwr = 15 + boozepwr = 59 //Proof that clowns are better than mimes right here /datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/M) if(istype(M, /mob/living/carbon/human) && M.job in list("Mime")) @@ -625,4 +685,49 @@ id = "drunkenblumpkin" description = "A weird mix of whiskey and blumpkin juice." color = "#1EA0FF" // rgb: 102, 67, 0 - boozepwr = 35 \ No newline at end of file + boozepwr = 50 + +/datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour. + name = "Whiskey Sour" + id = "whiskey_sour" + description = "Lemon juice/whiskey/sugar mixture. Moderate alcohol content." + color = rgb(255, 201, 49) + boozepwr = 35 + +/datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber! + name = "Fetching Fizz" + id = "fetching_fizz" + description = "Whiskey sour/iron/uranium mixture resulting in highly magnetic slurry. Mild alcohol content." //Requires no alcohol to make but has alcohol anyway because ~magic~ + color = rgb(255, 91, 15) + boozepwr = 10 + metabolization_rate = 0.1 * REAGENTS_METABOLISM + +/datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/M) + for(var/obj/item/weapon/ore/O in orange(3, M)) + step_towards(O, get_turf(M)) + return ..() + +/datum/reagent/consumable/ethanol/hearty_punch //Another reference. Heals those in critical condition extremely quickly. If you die with it in your system, it will be removed and you will live! + name = "Hearty Punch" + id = "hearty_punch" + description = "Brave bull/syndicate bomb/absinthe mixture resulting in an energizing beverage. Mild alcohol content." + color = rgb(140, 0, 0) + boozepwr = 10 + metabolization_rate = 0.1 * REAGENTS_METABOLISM + +/datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/M) + if(M.stat == UNCONSCIOUS && M.health <= 0) + M.adjustBruteLoss(-7, 0) + M.adjustFireLoss(-7, 0) + M.adjustToxLoss(-7, 0) + M.adjustOxyLoss(-7, 0) + M.adjustCloneLoss(-7, 0) + . = 1 + return ..() || . + +/datum/reagent/consumable/ethanol/bacchus_blessing //An EXTREMELY powerful drink. Smashed in seconds, dead in minutes. + name = "Bacchus' Blessing" + id = "bacchus_blessing" + description = "Unidentifiable mixture. Unmeasurably high alcohol content." + color = rgb(51, 19, 3) //Sickly brown + boozepwr = 300 //I warned you diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index dc099bbbe64..87f81ba14c5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -766,6 +766,9 @@ M.confused = 0 M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3*REM, 0, 1) M.adjustToxLoss(-0.2*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.drunkenness = max(H.drunkenness - 10, 0) //Extremely fast at purging drunkenness ..() . = 1 diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index c03e3cf066f..373f233b875 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -14,7 +14,8 @@ var/mob_react = 0 //Determines if a chemical reaction can occur inside a mob var/required_temp = 0 - var/mix_message = "The solution begins to bubble." + var/mix_message = "The solution begins to bubble." //The message shown to nearby people upon mixing, if applicable + var/mix_sound = 'sound/effects/bubbles.ogg' //The sound played upon mixing, if applicable /datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, created_volume) return diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index b2518ca7fd42d9ca850d2e9767e2a0829e553c4d..f66c78eb8ec7e0d553409e82decd14ae183705e6 100644 GIT binary patch delta 58908 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 delta 57481 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 n4Gb@tN7_UA=yH3BqhG~y Date: Sat, 19 Mar 2016 16:14:56 -0400 Subject: [PATCH 2/7] Removes uranium from Fetching Fizz recipe --- code/modules/food&drinks/recipes/drinks_recipes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food&drinks/recipes/drinks_recipes.dm b/code/modules/food&drinks/recipes/drinks_recipes.dm index 49bf16ec7bc..c869a11842d 100644 --- a/code/modules/food&drinks/recipes/drinks_recipes.dm +++ b/code/modules/food&drinks/recipes/drinks_recipes.dm @@ -592,7 +592,7 @@ name = "Fetching Fizz" id = "fetching_fizz" result = "fetching_fizz" - required_reagents = list("nuka_cola" = 1, "iron" = 1, "uranium" = 1) //Manufacturable from only the mining station + required_reagents = list("nuka_cola" = 1, "iron" = 1) //Manufacturable from only the mining station result_amount = 3 mix_message = "The mixture slightly vibrates before settling." From b5f07260287594bf520c43dbe716b5ba3fb23778 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Mar 2016 17:34:42 -0400 Subject: [PATCH 3/7] Code optimization --- .../mob/living/carbon/human/examine.dm | 10 +- code/modules/mob/living/carbon/human/life.dm | 93 +++++++++---------- code/modules/mob/living/living_defines.dm | 2 +- .../chemistry/reagents/alcohol_reagents.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 2 +- 5 files changed, 50 insertions(+), 59 deletions(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 4d72eea8665..5227981c056 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -250,15 +250,15 @@ switch(drunkenness) if(11 to 21) msg += "[t_He] [t_is] slightly flushed.\n" - if(22 to 41) + if(21.01 to 41) //.01s are used in case drunkenness ends up to be a small decimal msg += "[t_He] [t_is] flushed.\n" - if(42 to 51) + if(41.01 to 51) msg += "[t_He] [t_is] quite flushed and [t_his] breath smells of alcohol.\n" - if(52 to 61) + if(51.01 to 61) msg += "[t_He] is very flushed and [t_his] movements jerky, with breath reeking of alcohol.\n" - if(62 to 91) + if(61.01 to 91) msg += "[t_He] looks like a drunken mess.\n" - if(92 to INFINITY) + if(91.01 to INFINITY) msg += "[t_He] is a shitfaced, slobbering wreck.\n" msg += "" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 432893ddf38..12d9cb42b4d 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -35,8 +35,6 @@ //heart attack stuff handle_heart() - handle_alcohol() //Alcohol - //Stuff jammed in your limbs hurts handle_embedded_objects() //Update our name based on whether our face is obscured/disfigured @@ -335,68 +333,61 @@ All effects don't start immediately, but rather get worse over time; the rate is 51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk 61-70: Above average - small chance of blurry vision, imbiber begins to look smashed 71-80: High alcohol content - blurry vision, imbiber completely shitfaced -81-90: Extremely high alcohol content - heavy toxin damage, passing out +81-90: Extremely high alcohol content - light brain damage, passing out 91-100: Dangerously toxic - swift death */ -/mob/living/carbon/human/proc/handle_alcohol() - if(sleeping) - modify_drunkenness(-1.5) //Sleeping helps you recover from alcohol poisoning - else - modify_drunkenness(-0.2) //Becoming sober takes much longer than becoming drunk +/mob/living/carbon/human/handle_status_effects() + ..() + if(drunkenness) + modify_drunkenness(-0.2) //Slow sobering - sleeping increases it to 1 per tick - if(!drunkenness) - return 0 + if(drunkenness >= 6) + if(prob(25)) + slurring += 2 + jitteriness = max(jitteriness - 3, 0) - if(drunkenness >= 6) - if(prob(25)) - slurring += 2 - jitteriness = max(jitteriness - 3, 0) + if(drunkenness >= 11 && slurring < 5) + slurring += 1.2 - if(drunkenness >= 11 && slurring < 5) - slurring += 1.2 + if(drunkenness >= 41) + if(prob(25)) + confused += 2 + Dizzy(10) - if(drunkenness >= 41) - if(prob(25)) - confused += 2 - Dizzy(10) + if(drunkenness >= 51) + if(prob(5)) + confused += 10 + vomit() + Dizzy(25) - if(drunkenness >= 51) - if(prob(5)) - confused += 10 - vomit() - Dizzy(25) + if(drunkenness >= 61) + if(prob(50)) + blur_eyes(5) - if(drunkenness >= 61) - if(prob(50)) + if(drunkenness >= 71) blur_eyes(5) - if(drunkenness >= 71) - blur_eyes(5) + if(drunkenness >= 81) + adjustToxLoss(0.2) + if(prob(5) && !sleeping) + src << "Maybe you should lie down for a bit..." - if(drunkenness >= 81) - adjustToxLoss(0.2) - if(prob(5)) - src << "Maybe you should lie down for a bit..." + if(drunkenness >= 91) + adjustBrainLoss(0.4) + if(prob(20)) + if(SSshuttle.emergency.mode == SHUTTLE_DOCKED && z == ZLEVEL_STATION) //QoL mainly + src << "You're so tired... but you can't miss that shuttle..." + else if(!sleeping) + src << "Just a quick nap..." + Sleeping(45) - if(drunkenness >= 91) - if(!sleeping) - adjustToxLoss(1) - if(prob(20)) - if(SSshuttle.emergency.mode == SHUTTLE_DOCKED && z == ZLEVEL_STATION) //QoL mainly - src << "You're so tired... but you can't miss that shuttle..." - else if(!sleeping) - src << "Just a quick nap..." - Sleeping(45) - - if(drunkenness >= 101) - adjustToxLoss(4) //Let's be honest you shouldn't be alive by now - -/mob/living/carbon/human/proc/modify_drunkenness(var/amount) - drunkenness += amount - if(sleeping) if(drunkenness >= 101) - drunkenness -= 25 //Mainly to ensure that you don't goddamn die from it for balance reasons - drunkenness = Clamp(drunkenness, 0, INFINITY) + adjustToxLoss(4) //Let's be honest you shouldn't be alive by now + +/mob/living/carbon/human/proc/modify_drunkenness(amount) + if(sleeping) + amount *= 5 + drunkenness = max(drunkenness + amount, 0) #undef HUMAN_MAX_OXYLOSS diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index e2f38650cc0..85ab36335ad 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -55,6 +55,6 @@ var/bubble_icon = "default" //what icon the mob uses for speechbubbles var/last_bumped = 0 - var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (69) + var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666) var/list/butcher_results = null diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 5fdb7ecdb1c..fe9010e7180 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -482,7 +482,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#FFFFFF" // rgb: 255, 255, 255 boozepwr = 35 -/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dagged into a pool of blood by a slaughter demon. +/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon. name = "Demon's Blood" id = "demonsblood" description = "AHHHH!!!!" diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 87f81ba14c5..ddf6ce110cf 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -768,7 +768,7 @@ M.adjustToxLoss(-0.2*REM, 0) if(ishuman(M)) var/mob/living/carbon/human/H = M - H.drunkenness = max(H.drunkenness - 10, 0) //Extremely fast at purging drunkenness + H.modify_drunkenness(-10) ..() . = 1 From ce7118c8939e20c2decf4f9774a95e32f3e1f181 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Mar 2016 23:37:10 -0400 Subject: [PATCH 4/7] Implements @phil235's recommended changes --- code/modules/mob/living/carbon/human/life.dm | 16 +++++++--------- .../chemistry/reagents/alcohol_reagents.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 12d9cb42b4d..333ccb0c9c3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -340,7 +340,10 @@ All effects don't start immediately, but rather get worse over time; the rate is /mob/living/carbon/human/handle_status_effects() ..() if(drunkenness) - modify_drunkenness(-0.2) //Slow sobering - sleeping increases it to 1 per tick + if(sleeping) + drunkenness = max(drunkenness - 1.5, 0) + else + drunkenness = max(drunkenness - 0.2, 0) if(drunkenness >= 6) if(prob(25)) @@ -370,24 +373,19 @@ All effects don't start immediately, but rather get worse over time; the rate is if(drunkenness >= 81) adjustToxLoss(0.2) - if(prob(5) && !sleeping) + if(prob(5) && !stat) src << "Maybe you should lie down for a bit..." if(drunkenness >= 91) adjustBrainLoss(0.4) - if(prob(20)) + if(prob(20) && !stat) if(SSshuttle.emergency.mode == SHUTTLE_DOCKED && z == ZLEVEL_STATION) //QoL mainly src << "You're so tired... but you can't miss that shuttle..." - else if(!sleeping) + else src << "Just a quick nap..." Sleeping(45) if(drunkenness >= 101) adjustToxLoss(4) //Let's be honest you shouldn't be alive by now -/mob/living/carbon/human/proc/modify_drunkenness(amount) - if(sleeping) - amount *= 5 - drunkenness = max(drunkenness + amount, 0) - #undef HUMAN_MAX_OXYLOSS diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index fe9010e7180..7747dd578ad 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -34,7 +34,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/on_mob_life(mob/living/M) if(ishuman(M)) var/mob/living/carbon/human/H = M - H.modify_drunkenness(boozepwr * ALCOHOL_RATE) + H.drunkenness = max((H.drunkenness + boozepwr * ALCOHOL_RATE), 0) return ..() || . /datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index ddf6ce110cf..e65f633be04 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -768,7 +768,7 @@ M.adjustToxLoss(-0.2*REM, 0) if(ishuman(M)) var/mob/living/carbon/human/H = M - H.modify_drunkenness(-10) + H.drunkenness = max(H.drunkenness - 10, 0) ..() . = 1 From 0b28d11e48a61525239821cfab3926c791acd0e3 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Mar 2016 23:38:06 -0400 Subject: [PATCH 5/7] Fun removal --- code/modules/reagents/chemistry/reagents/alcohol_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 7747dd578ad..f1110d935a8 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -374,7 +374,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#664300" // rgb: 102, 67, 0 boozepwr = 70 -/datum/reagent/consumable/ethanol/manly_dorf //THE SPRITE FOR THIS HAS A HANDLE AND THE HANDLE HAD A STRIP OF WHITE PIXELS BETWEEN IT AND THE MUG AND I FINALLY REMOVED IT AND OH GOD I'M SO HAPPY +/datum/reagent/consumable/ethanol/manly_dorf name = "The Manly Dorf" id = "manlydorf" description = "Beer and Ale, brought together in a delicious mix. Intended for true men only." From 28a767043a7283019bd421b1ba8a5bbe1d6248cf Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Mar 2016 12:21:14 -0400 Subject: [PATCH 6/7] A few more optimizations --- code/modules/mob/living/carbon/human/death.dm | 1 - code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/reagents/chemistry/reagents/alcohol_reagents.dm | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 2ff5e4db411..33ac914b274 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -16,7 +16,6 @@ /mob/living/carbon/human/death(gibbed) if(stat == DEAD) return - stat = DEAD dizziness = 0 jitteriness = 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2baf7eb7430..451fd823185 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -951,7 +951,7 @@ L.Insert(src) restore_blood() remove_all_embedded_objects() - modify_drunkenness(-drunkenness) + drunkenness = 0 for(var/datum/mutation/human/HM in dna.mutations) if(HM.quality != POSITIVE) dna.remove_mutation(HM.name) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index f1110d935a8..0bdac8356cb 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1,4 +1,4 @@ -#define ALCOHOL_RATE 0.015 //The rate at which alcohol affects you; by default, one glass of whiskey gets you just above tipsy +#define ALCOHOL_RATE 0.015 //The rate at which alcohol affects you; by default, one full glass of straight whiskey gets you shitfaced ////////////// I don't know who made this header before I refactored alcohols but I'm going to fucking strangle them because it was so ugly, holy Christ // ALCOHOLS // From 916e1cada0d1197051ea4b55ff9924d5730bdfcd Mon Sep 17 00:00:00 2001 From: Xhuis Date: Mon, 21 Mar 2016 17:03:19 -0400 Subject: [PATCH 7/7] Modifies alcohol poisoning formula, thanks to @phil235 --- .../modules/reagents/chemistry/reagents/alcohol_reagents.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 0bdac8356cb..7537b9a67ec 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1,4 +1,5 @@ -#define ALCOHOL_RATE 0.015 //The rate at which alcohol affects you; by default, one full glass of straight whiskey gets you shitfaced +#define ALCOHOL_THRESHOLD_MODIFIER 0.05 //Greater numbers mean that less alcohol has greater intoxication potential +#define ALCOHOL_RATE 0.005 //The rate at which alcohol affects you ////////////// I don't know who made this header before I refactored alcohols but I'm going to fucking strangle them because it was so ugly, holy Christ // ALCOHOLS // @@ -34,7 +35,8 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/on_mob_life(mob/living/M) if(ishuman(M)) var/mob/living/carbon/human/H = M - H.drunkenness = max((H.drunkenness + boozepwr * ALCOHOL_RATE), 0) + if(H.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER) + H.drunkenness = max((H.drunkenness + (sqrt(volume) * boozepwr * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk return ..() || . /datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume)