diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index ece2f0dfbcfb..78ec76bc06ab 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -135,11 +135,6 @@
icon_state = "whiskeybottle"
list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 100)
-/obj/item/reagent_containers/food/drinks/bottle/kong
- name = "Kong"
- desc = "Makes You Go Ape!"
- list_reagents = list(/datum/reagent/consumable/ethanol/whiskey/kong = 100)
-
/obj/item/reagent_containers/food/drinks/bottle/candycornliquor
name = "candy corn liquor"
desc = "Like they drank in 2D speakeasies."
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm
index 2032a33bd46d..3f39339a4d43 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm
@@ -102,15 +102,6 @@
/obj/item/reagent_containers/food/drinks/bottle = 1)
category = CAT_DRINK
-/datum/crafting_recipe/kong
- name = "Kong"
- result = /obj/item/reagent_containers/food/drinks/bottle/kong
- time = 30
- reqs = list(/datum/reagent/consumable/ethanol/whiskey = 100,
- /obj/item/reagent_containers/food/snacks/monkeycube = 1,
- /obj/item/reagent_containers/food/drinks/bottle = 1)
- category = CAT_DRINK
-
/datum/crafting_recipe/pruno
name = "pruno mix"
result = /obj/item/reagent_containers/food/drinks/bottle/pruno
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents/base_drinks.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents/base_drinks.dm
new file mode 100644
index 000000000000..cd2d0bc4764c
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents/base_drinks.dm
@@ -0,0 +1,289 @@
+/datum/reagent/consumable/ethanol/beer
+ name = "Beer"
+ description = "An alcoholic beverage, brewed originally to keep a safe source of drinking water. A timeless classic."
+ color = "#664300" // rgb: 102, 67, 0
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ boozepwr = 25
+ taste_description = "bad water"
+ glass_name = "glass of beer"
+ glass_desc = "A pint of beer."
+
+/datum/reagent/consumable/ethanol/beer/light
+ name = "Light Beer"
+ description = "An alcoholic beverage, brewed originally to keep a safe source of drinking water. This variety has reduced calorie and alcohol content."
+ boozepwr = 5 //Space Europeans hate it
+ taste_description = "dish water"
+ glass_name = "glass of light beer"
+ glass_desc = "A pint of watery light beer."
+
+/datum/reagent/consumable/ethanol/kahlua
+ name = "Kahlua"
+ description = "A widely known coffee-flavoured liqueur. Still labeled under an old name from Earth, despite the loss of history."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+ taste_description = "a bitter combination"
+ glass_icon_state = "kahluaglass"
+ glass_name = "glass of coffee liquor"
+ glass_desc = "Bitter from the coffee and alcohol alike!"
+ shot_glass_icon_state = "shotglasscream"
+
+/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M)
+ M.dizziness = max(0,M.dizziness-5)
+ M.drowsyness = max(0,M.drowsyness-3)
+ M.AdjustSleeping(-40)
+ if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
+ M.Jitter(5)
+ ..()
+ . = 1
+
+/datum/reagent/consumable/ethanol/whiskey
+ name = "Whiskey"
+ description = "A well-aged whiskey."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 75
+ taste_description = "molasses"
+ glass_icon_state = "whiskeyglass"
+ glass_name = "glass of whiskey"
+ glass_desc = "Often described as having a silky mouthfeel and a smokey aftertaste. The brown-amber color catches the light very well."
+ shot_glass_icon_state = "shotglassbrown"
+
+/datum/reagent/consumable/ethanol/vodka
+ name = "Vodka"
+ description = "A clear, hard liquor. Doubles as a flammable fuel source, if you really need it."
+ color = "#0064C8" // rgb: 0, 100, 200
+ boozepwr = 65
+ taste_description = "grain alcohol"
+ glass_icon_state = "ginvodkaglass"
+ glass_name = "glass of vodka"
+ glass_desc = "It's almost difficult to tell the glass is full of vodka until you tip it around. The smell makes your nose wrinkle... but it might just be worth it."
+ shot_glass_icon_state = "shotglassclear"
+
+/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M)
+ M.radiation = max(M.radiation-2,0)
+ return ..()
+
+/datum/reagent/consumable/ethanol/gin
+ name = "Gin"
+ description = "A very sharp alcohol, with a flavor that's distinctly fresh."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 45
+ taste_description = "an alcoholic pine tree"
+ glass_icon_state = "ginvodkaglass"
+ glass_name = "glass of gin"
+ glass_desc = "A glass of gin, made with a specific type of berry that leaves it smelling like the tree it came from. It's enough to wet your eyes."
+
+/datum/reagent/consumable/ethanol/rum
+ name = "Rum"
+ description = "The liquor of choice for sailors and spacers alike."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 60
+ taste_description = "spiked butterscotch"
+ glass_icon_state = "rumglass"
+ glass_name = "glass of rum"
+ glass_desc = "There's no need to worry about being seen as a pirate with one of these. If you add enough ice and let it melt, it'll turn into grog."
+ shot_glass_icon_state = "shotglassbrown"
+
+/datum/reagent/consumable/ethanol/tequila
+ name = "Tequila"
+ description = "A strongly flavoured spirit."
+ color = "#FFFF91" // rgb: 255, 255, 145
+ boozepwr = 70
+ taste_description = "paint stripper"
+ glass_icon_state = "tequilaglass"
+ glass_name = "glass of tequila"
+ glass_desc = "Despite the strong, woody taste, there's just enough sweetness to keep you coming for more."
+ shot_glass_icon_state = "shotglassgold"
+
+/datum/reagent/consumable/ethanol/vermouth
+ name = "Vermouth"
+ description = "A fine wine to go with a meal."
+ color = "#91FF91" // rgb: 145, 255, 145
+ boozepwr = 45
+ taste_description = "dry alcohol"
+ glass_icon_state = "vermouthglass"
+ glass_name = "glass of vermouth"
+ glass_desc = "Vermouth was used as a medicine in the past, and the flavor makes sure to remind you of that."
+ shot_glass_icon_state = "shotglassclear"
+
+/datum/reagent/consumable/ethanol/wine
+ name = "Wine"
+ description = "An alcoholic beverage made from fermented grapes of all kinds."
+ color = "#7E4043" // rgb: 126, 64, 67
+ boozepwr = 35
+ taste_description = "bitter sweetness"
+ glass_icon_state = "wineglass"
+ glass_name = "glass of wine"
+ glass_desc = "Deeply red wine in a glass. You're not enough of a sommelier to really describe how it smells."
+ shot_glass_icon_state = "shotglassred"
+
+/datum/reagent/consumable/ethanol/lizardwine
+ name = "Blueflame Pyrecask"
+ description = "A popular Zohil beverage, made by infusing specially-gathered cacti and grapes in ethanol."
+ color = "#7E4043" // rgb: 126, 64, 67
+ boozepwr = 45
+ quality = DRINK_FANTASTIC
+ taste_description = "warm sweetness"
+
+/datum/reagent/consumable/ethanol/grappa
+ name = "Grappa"
+ description = "A fine brandy mixed with spirits."
+ color = "#F8EBF1"
+ boozepwr = 60
+ taste_description = "classy bitter sweetness"
+ glass_icon_state = "grappa"
+ glass_name = "glass of grappa"
+ glass_desc = "Despite being made from the recycled remains of wine grapes, it's not bad at all."
+
+/datum/reagent/consumable/ethanol/amaretto
+ name = "Amaretto"
+ description = "A gentle drink that carries a sweet aroma."
+ color = "#E17600"
+ boozepwr = 25
+ taste_description = "fruity and nutty sweetness"
+ glass_icon_state = "amarettoglass"
+ glass_name = "glass of amaretto"
+ glass_desc = "A sweet and syrupy looking alcohol. You're lucky it wasn't lost to history."
+
+/datum/reagent/consumable/ethanol/cognac
+ name = "Cognac"
+ description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing."
+ color = "#AB3C05" // rgb: 171, 60, 5
+ boozepwr = 75
+ taste_description = "sharp and relaxing"
+ glass_icon_state = "cognacglass"
+ glass_name = "glass of cognac"
+ glass_desc = "You wonder how many exhausted Solarian bureaucrats are drinking this the same way you are, right now."
+ shot_glass_icon_state = "shotglassbrown"
+
+/datum/reagent/consumable/ethanol/absinthe
+ name = "Absinthe"
+ description = "A powerful alcoholic drink. Rumored to cause hallucinations if taken irresponsibly."
+ color = rgb(10, 206, 0)
+ boozepwr = 80 //Very strong even by default
+ taste_description = "death and licorice"
+ glass_icon_state = "absinthe"
+ glass_name = "glass of absinthe"
+ glass_desc = "The smell is enough to bring you to the verge of tears. The hint of liquorice threatens to bring you over the edge."
+ shot_glass_icon_state = "shotglassgreen"
+
+/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M)
+ if(prob(10) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
+ M.hallucination += 4 //Reference to the urban myth
+ ..()
+
+/datum/reagent/consumable/ethanol/hooch
+ name = "Hooch"
+ description = "Low quality, low grade, and low expectations."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 100
+ taste_description = "pure resignation"
+ glass_icon_state = "glass_brown2"
+ glass_name = "Hooch"
+ glass_desc = "You can't help but feel like you'd rather drink anything else right now, just from looking at it."
+
+/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
+ if(M.mind && M.mind.assigned_role == "Assistant")
+ M.heal_bodypart_damage(1,1)
+ . = 1
+ return ..() || .
+
+/datum/reagent/consumable/ethanol/ale
+ name = "Ale"
+ description = "A dark alcoholic beverage made with malted barley and yeast."
+ color = "#664300" // rgb: 102, 67, 0
+ boozepwr = 65
+ taste_description = "hearty alcoholic grains"
+ glass_icon_state = "aleglass"
+ glass_name = "glass of ale"
+ glass_desc = "A pint of ale. A classic for the working class."
+
+/datum/reagent/consumable/ethanol/hcider
+ name = "Hard Cider"
+ description = "The alcoholic sibling to apple cider."
+ color = "#CD6839"
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ boozepwr = 25
+ taste_description = "the season that falls between summer and winter"
+ glass_icon_state = "whiskeyglass"
+ glass_name = "hard cider"
+ glass_desc = "Sharper tasting, alcoholic apple cider."
+ shot_glass_icon_state = "shotglassbrown"
+
+/datum/reagent/consumable/ethanol/triple_sec
+ name = "Triple Sec"
+ description = "A sweet and vibrant orange liqueur."
+ color = "#ffcc66"
+ boozepwr = 30
+ taste_description = "a warm flowery orange taste which recalls the ocean air and summer wind of distant shores"
+ glass_icon_state = "glass_orange"
+ glass_name = "Triple Sec"
+ glass_desc = "A glass of straight triple sec. Citrusy and warm."
+
+/datum/reagent/consumable/ethanol/creme_de_menthe
+ name = "Creme de Menthe"
+ description = "A minty liqueur excellent for refreshing, cool drinks."
+ color = "#00cc00"
+ boozepwr = 20
+ taste_description = "a minty, cool, and invigorating splash of cold streamwater"
+ glass_icon_state = "glass_green"
+ glass_name = "Creme de Menthe"
+ glass_desc = "Bright green and minty - enough to tell you what it's going to taste like."
+
+/datum/reagent/consumable/ethanol/creme_de_cacao
+ name = "Creme de Cacao"
+ description = "A chocolatey liqueur excellent for adding dessert notes to beverages."
+ color = "#996633"
+ boozepwr = 20
+ taste_description = "a slick and aromatic hint of chocolates swirling in a bite of alcohol"
+ glass_icon_state = "glass_brown"
+ glass_name = "Creme de Cacao"
+ glass_desc = "Creme de Cacao - chocolate-wine, essentially. Not milk chocolate, so expect some bite."
+
+/datum/reagent/consumable/ethanol/creme_de_coconut
+ name = "Creme de Coconut"
+ description = "A coconut liqueur for smooth, creamy, tropical drinks."
+ color = "#F7F0D0"
+ boozepwr = 20
+ taste_description = "a sweet milky flavor with notes of toasted sugar"
+ glass_icon_state = "glass_white"
+ glass_name = "Creme de Coconut"
+ glass_desc = "A white glass of coconut liqueur."
+
+/datum/reagent/consumable/ethanol/sake
+ name = "Sake"
+ description = "A sweet rice wine."
+ color = "#DDDDDD"
+ boozepwr = 70
+ taste_description = "sweet rice wine"
+ glass_icon_state = "sakecup"
+ glass_name = "cup of sake"
+ glass_desc = "A cup of sake. Capable of being served hot, cold, or at room temperature, and served in a traditionally-sized little cup."
+
+/datum/reagent/consumable/ethanol/fernet
+ name = "Fernet"
+ description = "An incredibly bitter herbal liqueur used as a digestif."
+ color = "#2d4b3b" // rgb: 27, 46, 36
+ boozepwr = 80
+ taste_description = "utter bitterness"
+ glass_name = "glass of fernet"
+ glass_desc = "A glass of pure Fernet. Intensely bitter and reserved to being a digestive more than something to be enjoyed." //Hi Kevum
+
+/datum/reagent/consumable/ethanol/applejack
+ name = "Applejack"
+ description = "The officially sponsored drink by the National Association for Anti-Gravity Automobile Dragracing (NAAGAD)."
+ color = "#ff6633"
+ boozepwr = 20
+ taste_description = "resisting gravity through brandy"
+ glass_icon_state = "applejack_glass"
+ glass_name = "Applejack"
+ glass_desc = "You lament you can't watch any Agrav Races while out here."
+
+/datum/reagent/consumable/ethanol/champagne //How the hell did we not have champagne already!?
+ name = "Champagne"
+ description = "A sparkling wine known for its ability to strike fast and hard."
+ color = "#ffffc1"
+ boozepwr = 40
+ taste_description = "auspicious occasions and bad decisions"
+ glass_icon_state = "champagne_glass"
+ glass_name = "Champagne"
+ glass_desc = "A sparkling wine, traditionally served in a flute that clearly displays the slowly rising bubbles."
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm
new file mode 100644
index 000000000000..36f29e6aacde
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm
@@ -0,0 +1,94 @@
+//////////////
+// ALCOHOLS //
+//////////////
+
+
+///Greater numbers mean that less alcohol has greater intoxication potential
+#define ALCOHOL_THRESHOLD_MODIFIER 1
+///The rate at which alcohol affects you
+#define ALCOHOL_RATE 0.005
+///The exponent applied to boozepwr to make higher volume alcohol at least a little bit damaging to the liver
+#define ALCOHOL_EXPONENT 1.6
+
+
+/datum/reagent/consumable/ethanol
+ name = "Ethanol"
+ description = "A well-known alcohol with a variety of applications."
+ color = "#404030" // rgb: 64, 64, 48
+ nutriment_factor = 0
+ taste_description = "alcohol"
+ metabolization_rate = 0.5 * REAGENTS_METABOLISM
+ var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
+ accelerant_quality = 5
+
+/datum/reagent/consumable/ethanol/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
+ . = ..()
+ if(chems.has_reagent(src, 1))
+ mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 0.05))
+ mytray.adjustPests(-round(boozepwr * 0.05))
+
+
+// -CHART OUT OF DATE- -ERIKA //
+
+/*
+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/carbon/C)
+ if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER || boozepwr < 0)
+ var/booze_power = boozepwr
+ if(HAS_TRAIT(C, TRAIT_ALCOHOL_TOLERANCE)) //we're an accomplished drinker
+ booze_power *= 0.7
+ if(HAS_TRAIT(C, TRAIT_LIGHT_DRINKER))
+ booze_power *= 2
+ C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk
+ if(boozepwr > 0)
+ var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER)
+ if (istype(L))
+ L.applyOrganDamage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150))
+ return ..()
+
+/datum/reagent/consumable/ethanol/expose_obj(obj/O, reac_volume)
+ if(istype(O, /obj/item/paper))
+ var/obj/item/paper/paperaffected = O
+ paperaffected.clear_paper()
+ to_chat(usr, "[paperaffected]'s ink washes away.")
+ if(istype(O, /obj/item/book))
+ if(reac_volume >= 5)
+ var/obj/item/book/affectedbook = O
+ affectedbook.dat = null
+ O.visible_message("[O]'s writing is washed away by [name]!")
+ else
+ O.visible_message("[O]'s ink is smeared by [name], but doesn't wash away!")
+ return
+
+/datum/reagent/consumable/ethanol/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel.
+ if(!isliving(M))
+ return
+
+ if(method in list(TOUCH, SMOKE, VAPOR, PATCH))
+ M.adjust_fire_stacks(reac_volume / 15)
+
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ var/power_multiplier = boozepwr / 65 // Weak alcohol has less sterilizing power
+
+ for(var/s in C.surgeries)
+ var/datum/surgery/S = s
+ S.speed_modifier = max(0.1*power_multiplier, S.speed_modifier)
+ return ..()
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents/fruit_wine.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents/fruit_wine.dm
new file mode 100644
index 000000000000..1359b8df613f
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents/fruit_wine.dm
@@ -0,0 +1,106 @@
+/datum/reagent/consumable/ethanol/fruit_wine
+ name = "Fruit Wine"
+ description = "A wine made from grown plants."
+ color = "#FFFFFF"
+ boozepwr = 35
+ quality = DRINK_GOOD
+ taste_description = "bad coding"
+ can_synth = FALSE
+ var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit.
+ var/list/tastes = list("bad coding" = 1) //List of tastes. See above.
+
+/datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data)
+ names = data["names"]
+ tastes = data["tastes"]
+ boozepwr = data["boozepwr"]
+ color = data["color"]
+ generate_data_info(data)
+
+/datum/reagent/consumable/ethanol/fruit_wine/on_merge(list/data, amount)
+ var/diff = (amount/volume)
+ if(diff < 1)
+ color = BlendRGB(color, data["color"], diff/2) //The percentage difference over two, so that they take average if equal.
+ else
+ color = BlendRGB(color, data["color"], (1/diff)/2) //Adjust so it's always blending properly.
+ var/oldvolume = volume-amount
+
+ var/list/cachednames = data["names"]
+ for(var/name in names | cachednames)
+ names[name] = ((names[name] * oldvolume) + (cachednames[name] * amount)) / volume
+
+ var/list/cachedtastes = data["tastes"]
+ for(var/taste in tastes | cachedtastes)
+ tastes[taste] = ((tastes[taste] * oldvolume) + (cachedtastes[taste] * amount)) / volume
+
+ boozepwr *= oldvolume
+ var/newzepwr = data["boozepwr"] * amount
+ boozepwr += newzepwr
+ boozepwr /= volume //Blending boozepwr to volume.
+ generate_data_info(data)
+
+/datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data)
+ // BYOND's compiler fails to catch non-consts in a ranged switch case, and it causes incorrect behavior. So this needs to explicitly be a constant.
+ var/const/minimum_percent = 0.15 //Percentages measured between 0 and 1.
+ var/list/primary_tastes = list()
+ var/list/secondary_tastes = list()
+ glass_name = "glass of [name]"
+ glass_desc = description
+ for(var/taste in tastes)
+ var/taste_percent = tastes[taste]
+ if(taste_percent < minimum_percent)
+ continue
+ if(taste_percent > (minimum_percent * 2))
+ primary_tastes += taste
+ continue
+ secondary_tastes += taste
+
+ var/minimum_name_percent = 0.35
+ name = ""
+ var/list/names_in_order = sortTim(names, /proc/cmp_numeric_dsc, TRUE)
+ var/named = FALSE
+ for(var/fruit_name in names)
+ if(names[fruit_name] >= minimum_name_percent)
+ name += "[fruit_name] "
+ named = TRUE
+ if(named)
+ name += "wine"
+ else
+ name = "mixed [names_in_order[1]] wine"
+
+ var/alcohol_description
+ switch(boozepwr)
+ if(120 to INFINITY)
+ alcohol_description = "suicidally strong"
+ if(90 to 120)
+ alcohol_description = "intense"
+ if(70 to 90)
+ alcohol_description = "strong"
+ if(40 to 70)
+ alcohol_description = "rich"
+ if(20 to 40)
+ alcohol_description = "mild"
+ if(0 to 20)
+ alcohol_description = "sweet"
+ else
+ alcohol_description = "watery" //How the hell did you get negative boozepwr?
+
+ var/list/fruits = list()
+ if(names_in_order.len <= 3)
+ fruits = names_in_order
+ else
+ for(var/i in 1 to 3)
+ fruits += names_in_order[i]
+ fruits += "other plants"
+ var/fruit_list = english_list(fruits)
+ description = "A [alcohol_description] wine brewed from [fruit_list]."
+
+ var/flavor = ""
+ if(!primary_tastes.len)
+ primary_tastes = list("[alcohol_description] alcohol")
+ flavor += english_list(primary_tastes)
+ if(secondary_tastes.len)
+ flavor += ", with a hint of "
+ flavor += english_list(secondary_tastes)
+ taste_description = flavor
+ if(holder.my_atom)
+ holder.my_atom.on_reagent_change()
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents/mixed_drinks.dm
similarity index 76%
rename from code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
rename to code/modules/reagents/chemistry/reagents/alcohol_reagents/mixed_drinks.dm
index b4319025e484..b2de221caf41 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents/mixed_drinks.dm
@@ -1,107 +1,4 @@
-#define ALCOHOL_THRESHOLD_MODIFIER 1 //Greater numbers mean that less alcohol has greater intoxication potential
-#define ALCOHOL_RATE 0.005 //The rate at which alcohol affects you
-#define ALCOHOL_EXPONENT 1.6 //The exponent applied to boozepwr to make higher volume alcohol at least a little bit damaging to the liver
-
-////////////// 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"
- description = "A well-known alcohol with a variety of applications."
- color = "#404030" // rgb: 64, 64, 48
- nutriment_factor = 0
- taste_description = "alcohol"
- metabolization_rate = 0.5 * REAGENTS_METABOLISM
- var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
- accelerant_quality = 5
-
-/datum/reagent/consumable/ethanol/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
- . = ..()
- if(chems.has_reagent(src, 1))
- mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 0.05))
- mytray.adjustPests(-round(boozepwr * 0.05))
-
-/*
-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/carbon/C)
- if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER || boozepwr < 0)
- var/booze_power = boozepwr
- if(HAS_TRAIT(C, TRAIT_ALCOHOL_TOLERANCE)) //we're an accomplished drinker
- booze_power *= 0.7
- if(HAS_TRAIT(C, TRAIT_LIGHT_DRINKER))
- booze_power *= 2
- C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk
- if(boozepwr > 0)
- var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER)
- if (istype(L))
- L.applyOrganDamage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150))
- return ..()
-
-/datum/reagent/consumable/ethanol/expose_obj(obj/O, reac_volume)
- if(istype(O, /obj/item/paper))
- var/obj/item/paper/paperaffected = O
- paperaffected.clear_paper()
- to_chat(usr, "[paperaffected]'s ink washes away.")
- if(istype(O, /obj/item/book))
- if(reac_volume >= 5)
- var/obj/item/book/affectedbook = O
- affectedbook.dat = null
- O.visible_message("[O]'s writing is washed away by [name]!")
- else
- O.visible_message("[O]'s ink is smeared by [name], but doesn't wash away!")
- return
-
-/datum/reagent/consumable/ethanol/expose_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel.
- if(!isliving(M))
- return
-
- if(method in list(TOUCH, SMOKE, VAPOR, PATCH))
- M.adjust_fire_stacks(reac_volume / 15)
-
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- var/power_multiplier = boozepwr / 65 // Weak alcohol has less sterilizing power
-
- for(var/s in C.surgeries)
- var/datum/surgery/S = s
- S.speed_modifier = max(0.1*power_multiplier, S.speed_modifier)
- return ..()
-
-/datum/reagent/consumable/ethanol/beer
- name = "Beer"
- description = "An alcoholic beverage, brewed originally to keep a safe source of drinking water. A timeless classic."
- color = "#664300" // rgb: 102, 67, 0
- nutriment_factor = 1 * REAGENTS_METABOLISM
- boozepwr = 25
- taste_description = "bad water"
- glass_name = "glass of beer"
- glass_desc = "A pint of beer."
-
-/datum/reagent/consumable/ethanol/beer/light
- name = "Light Beer"
- description = "An alcoholic beverage, brewed originally to keep a safe source of drinking water. This variety has reduced calorie and alcohol content."
- boozepwr = 5 //Space Europeans hate it
- taste_description = "dish water"
- glass_name = "glass of light beer"
- glass_desc = "A pint of watery light beer."
+/* Mixed drinks */
/datum/reagent/consumable/ethanol/beer/green
name = "Green Beer"
@@ -120,73 +17,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/beer/green/on_mob_end_metabolize(mob/living/M)
M.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, color)
-/datum/reagent/consumable/ethanol/kahlua
- name = "Kahlua"
- description = "A widely known coffee-flavoured liqueur. Still labeled under an old name from Earth, despite the loss of history."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
- taste_description = "a bitter combination"
- glass_icon_state = "kahluaglass"
- glass_name = "glass of coffee liquor"
- glass_desc = "Bitter from the coffee and alcohol alike!"
- shot_glass_icon_state = "shotglasscream"
-
-/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M)
- M.dizziness = max(0,M.dizziness-5)
- M.drowsyness = max(0,M.drowsyness-3)
- M.AdjustSleeping(-40)
- if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
- M.Jitter(5)
- ..()
- . = 1
-
-/datum/reagent/consumable/ethanol/whiskey
- name = "Whiskey"
- description = "A well-aged whiskey."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 75
- taste_description = "molasses"
- glass_icon_state = "whiskeyglass"
- glass_name = "glass of whiskey"
- glass_desc = "Often described as having a silky mouthfeel and a smokey aftertaste. The brown-amber color catches the light very well."
- shot_glass_icon_state = "shotglassbrown"
-
-/datum/reagent/consumable/ethanol/whiskey/kong
- name = "Kong"
- description = "Makes You Go Ape!"
- color = "#332100" // rgb: 51, 33, 0
- addiction_threshold = 15
- taste_description = "the grip of a giant ape"
- glass_name = "glass of Kong"
- glass_desc = "Makes You Go Ape!"
-
-/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage1(mob/living/M)
- if(prob(5))
- to_chat(M, "You've made so many mistakes.")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_minimal", /datum/mood_event/depression_minimal)
- ..()
-
-/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage2(mob/living/M)
- if(prob(5))
- to_chat(M, "No matter what you do, people will always get hurt.")
- SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "depression_minimal", /datum/mood_event/depression_minimal)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_mild", /datum/mood_event/depression_mild)
- ..()
-
-/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage3(mob/living/M)
- if(prob(5))
- to_chat(M, "You've lost so many people.")
- SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "depression_mild", /datum/mood_event/depression_mild)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_moderate", /datum/mood_event/depression_moderate)
- ..()
-
-/datum/reagent/consumable/ethanol/whiskey/kong/addiction_act_stage4(mob/living/M)
- if(prob(5))
- to_chat(M, "Just lie down and die.")
- SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "depression_moderate", /datum/mood_event/depression_moderate)
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "depression_severe", /datum/mood_event/depression_severe)
- ..()
-
/datum/reagent/consumable/ethanol/whiskey/candycorn
name = "candy corn liquor"
description = "Like they drank in 2D speakeasies."
@@ -264,21 +94,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
to_chat(M, "You're pretty sure you just felt your heart stop for a second there...")
M.playsound_local(M, 'sound/effects/singlebeat.ogg', 100, 0)
-/datum/reagent/consumable/ethanol/vodka
- name = "Vodka"
- description = "A clear, hard liquor. Doubles as a flammable fuel source, if you really need it."
- color = "#0064C8" // rgb: 0, 100, 200
- boozepwr = 65
- taste_description = "grain alcohol"
- glass_icon_state = "ginvodkaglass"
- glass_name = "glass of vodka"
- glass_desc = "It's almost difficult to tell the glass is full of vodka until you tip it around. The smell makes your nose wrinkle... but it might just be worth it."
- shot_glass_icon_state = "shotglassclear"
-
-/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/carbon/M)
- M.radiation = max(M.radiation-2,0)
- return ..()
-
/datum/reagent/consumable/ethanol/bilk
name = "Bilk"
description = "This appears to be beer mixed with milk. Creative...?"
@@ -311,141 +126,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
M.set_drugginess(50)
return ..()
-/datum/reagent/consumable/ethanol/gin
- name = "Gin"
- description = "A very sharp alcohol, with a flavor that's distinctly fresh."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 45
- taste_description = "an alcoholic pine tree"
- glass_icon_state = "ginvodkaglass"
- glass_name = "glass of gin"
- glass_desc = "A glass of gin, made with a specific type of berry that leaves it smelling like the tree it came from. It's enough to wet your eyes."
-
-/datum/reagent/consumable/ethanol/rum
- name = "Rum"
- description = "The liquor of choice for sailors and spacers alike."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 60
- taste_description = "spiked butterscotch"
- glass_icon_state = "rumglass"
- glass_name = "glass of rum"
- glass_desc = "There's no need to worry about being seen as a pirate with one of these. If you add enough ice and let it melt, it'll turn into grog."
- shot_glass_icon_state = "shotglassbrown"
-
-/datum/reagent/consumable/ethanol/tequila
- name = "Tequila"
- description = "A strongly flavoured spirit."
- color = "#FFFF91" // rgb: 255, 255, 145
- boozepwr = 70
- taste_description = "paint stripper"
- glass_icon_state = "tequilaglass"
- glass_name = "glass of tequila"
- glass_desc = "Despite the strong, woody taste, there's just enough sweetness to keep you coming for more."
- shot_glass_icon_state = "shotglassgold"
-
-/datum/reagent/consumable/ethanol/vermouth
- name = "Vermouth"
- description = "A fine wine to go with a meal."
- color = "#91FF91" // rgb: 145, 255, 145
- boozepwr = 45
- taste_description = "dry alcohol"
- glass_icon_state = "vermouthglass"
- glass_name = "glass of vermouth"
- glass_desc = "Vermouth was used as a medicine in the past, and the flavor makes sure to remind you of that."
- shot_glass_icon_state = "shotglassclear"
-
-/datum/reagent/consumable/ethanol/wine
- name = "Wine"
- description = "An alcoholic beverage made from fermented grapes of all kinds."
- color = "#7E4043" // rgb: 126, 64, 67
- boozepwr = 35
- taste_description = "bitter sweetness"
- glass_icon_state = "wineglass"
- glass_name = "glass of wine"
- glass_desc = "Deeply red wine in a glass. You're not enough of a sommelier to really describe how it smells."
- shot_glass_icon_state = "shotglassred"
-
-/datum/reagent/consumable/ethanol/lizardwine
- name = "Blueflame Pyrecask"
- description = "A popular Zohil beverage, made by infusing specially-gathered cacti and grapes in ethanol."
- color = "#7E4043" // rgb: 126, 64, 67
- boozepwr = 45
- quality = DRINK_FANTASTIC
- taste_description = "warm sweetness"
-
-/datum/reagent/consumable/ethanol/grappa
- name = "Grappa"
- description = "A fine brandy mixed with spirits."
- color = "#F8EBF1"
- boozepwr = 60
- taste_description = "classy bitter sweetness"
- glass_icon_state = "grappa"
- glass_name = "glass of grappa"
- glass_desc = "Despite being made from the recycled remains of wine grapes, it's not bad at all."
-
-/datum/reagent/consumable/ethanol/amaretto
- name = "Amaretto"
- description = "A gentle drink that carries a sweet aroma."
- color = "#E17600"
- boozepwr = 25
- taste_description = "fruity and nutty sweetness"
- glass_icon_state = "amarettoglass"
- glass_name = "glass of amaretto"
- glass_desc = "A sweet and syrupy looking alcohol. You're lucky it wasn't lost to history."
-
-/datum/reagent/consumable/ethanol/cognac
- name = "Cognac"
- description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing."
- color = "#AB3C05" // rgb: 171, 60, 5
- boozepwr = 75
- taste_description = "sharp and relaxing"
- glass_icon_state = "cognacglass"
- glass_name = "glass of cognac"
- glass_desc = "You wonder how many exhausted Solarian bureaucrats are drinking this the same way you are, right now."
- shot_glass_icon_state = "shotglassbrown"
-
-/datum/reagent/consumable/ethanol/absinthe
- name = "Absinthe"
- description = "A powerful alcoholic drink. Rumored to cause hallucinations if taken irresponsibly."
- color = rgb(10, 206, 0)
- boozepwr = 80 //Very strong even by default
- taste_description = "death and licorice"
- glass_icon_state = "absinthe"
- glass_name = "glass of absinthe"
- glass_desc = "The smell is enough to bring you to the verge of tears. The hint of liquorice threatens to bring you over the edge."
- shot_glass_icon_state = "shotglassgreen"
-
-/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/carbon/M)
- if(prob(10) && !HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
- M.hallucination += 4 //Reference to the urban myth
- ..()
-
-/datum/reagent/consumable/ethanol/hooch
- name = "Hooch"
- description = "Low quality, low grade, and low expectations."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 100
- taste_description = "pure resignation"
- glass_icon_state = "glass_brown2"
- glass_name = "Hooch"
- glass_desc = "You can't help but feel like you'd rather drink anything else right now, just from looking at it."
-
-/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
- if(M.mind && M.mind.assigned_role == "Assistant")
- M.heal_bodypart_damage(1,1)
- . = 1
- return ..() || .
-
-/datum/reagent/consumable/ethanol/ale
- name = "Ale"
- description = "A dark alcoholic beverage made with malted barley and yeast."
- color = "#664300" // rgb: 102, 67, 0
- boozepwr = 65
- taste_description = "hearty alcoholic grains"
- glass_icon_state = "aleglass"
- glass_name = "glass of ale"
- glass_desc = "A pint of ale. A classic for the working class."
-
/datum/reagent/consumable/ethanol/goldschlager
name = "Goldschlager"
description = "100 proof cinnamon schnapps, made for the Student Unions' unbearable tastes."
@@ -514,7 +194,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "whiskey cola"
glass_desc = "An sweet-and-bitter mixture of cola and whiskey."
-
/datum/reagent/consumable/ethanol/martini
name = "Classic Martini"
description = "Vermouth with gin."
@@ -912,7 +591,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Vodka and Tonic"
glass_desc = "The stronger sibling of the Gin and Tonic."
-
/datum/reagent/consumable/ethanol/ginfizz
name = "Gin Fizz"
description = "Refreshingly lemony, deliciously dry."
@@ -924,7 +602,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "gin fizz"
glass_desc = "Refreshingly lemony, deliciously dry."
-
/datum/reagent/consumable/ethanol/bahama_mama
name = "Bahama Mama"
description = "A tropical cocktail with a complex blend of fruity flavors."
@@ -1009,7 +686,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Grog"
glass_desc = "Watered-down rum, to really stretch out your alcohol rations. A Belter classic."
-
/datum/reagent/consumable/ethanol/aloe
name = "Aloe"
description = "Zohil Cream and watermelon juice. Mellows out the alcoholic bite for a mild drink."
@@ -1204,18 +880,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "whiskey sour"
glass_desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying."
-/datum/reagent/consumable/ethanol/hcider
- name = "Hard Cider"
- description = "The alcoholic sibling to apple cider."
- color = "#CD6839"
- nutriment_factor = 1 * REAGENTS_METABOLISM
- boozepwr = 25
- taste_description = "the season that falls between summer and winter"
- glass_icon_state = "whiskeyglass"
- glass_name = "hard cider"
- glass_desc = "Sharper tasting, alcoholic apple cider."
- shot_glass_icon_state = "shotglassbrown"
-
//Another reference. Heals those in critical condition extremely quickly.
/datum/reagent/consumable/ethanol/hearty_punch
name = "Hearty Punch"
@@ -1249,8 +913,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Bacchus' Blessing"
glass_desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?"
-
-
/datum/reagent/consumable/ethanol/atomicbomb
name = "Atomic Bomb"
description = "Nuclear proliferation never tasted so good."
@@ -1403,45 +1065,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "eggnog"
glass_desc = "For enjoying the Winter Solstice."
-/datum/reagent/consumable/ethanol/triple_sec
- name = "Triple Sec"
- description = "A sweet and vibrant orange liqueur."
- color = "#ffcc66"
- boozepwr = 30
- taste_description = "a warm flowery orange taste which recalls the ocean air and summer wind of distant shores"
- glass_icon_state = "glass_orange"
- glass_name = "Triple Sec"
- glass_desc = "A glass of straight triple sec. Citrusy and warm."
-/datum/reagent/consumable/ethanol/creme_de_menthe
- name = "Creme de Menthe"
- description = "A minty liqueur excellent for refreshing, cool drinks."
- color = "#00cc00"
- boozepwr = 20
- taste_description = "a minty, cool, and invigorating splash of cold streamwater"
- glass_icon_state = "glass_green"
- glass_name = "Creme de Menthe"
- glass_desc = "Bright green and minty - enough to tell you what it's going to taste like."
-
-/datum/reagent/consumable/ethanol/creme_de_cacao
- name = "Creme de Cacao"
- description = "A chocolatey liqueur excellent for adding dessert notes to beverages."
- color = "#996633"
- boozepwr = 20
- taste_description = "a slick and aromatic hint of chocolates swirling in a bite of alcohol"
- glass_icon_state = "glass_brown"
- glass_name = "Creme de Cacao"
- glass_desc = "Creme de Cacao - chocolate-wine, essentially. Not milk chocolate, so expect some bite."
-
-/datum/reagent/consumable/ethanol/creme_de_coconut
- name = "Creme de Coconut"
- description = "A coconut liqueur for smooth, creamy, tropical drinks."
- color = "#F7F0D0"
- boozepwr = 20
- taste_description = "a sweet milky flavor with notes of toasted sugar"
- glass_icon_state = "glass_white"
- glass_name = "Creme de Coconut"
- glass_desc = "A white glass of coconut liqueur."
/datum/reagent/consumable/ethanol/quadruple_sec
name = "Quadruple Sec"
@@ -1473,17 +1097,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Quintuple Sec"
glass_desc = "The logical endpoint of the Quadruple Sec. Often had in the hands of senior security staff, though you really should not be drinking this while on-duty."
-/datum/reagent/consumable/ethanol/quintuple_sec/on_mob_life(mob/living/carbon/M)
- //Securidrink in line with the Screwdriver for engineers or Nothing for mimes but STRONG..
- if(HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM))
- M.heal_bodypart_damage(2,2,2)
- M.adjustBruteLoss(-5,0)
- M.adjustOxyLoss(-5,0)
- M.adjustFireLoss(-5,0)
- M.adjustToxLoss(-5,0)
- . = 1
- return ..()
-
/datum/reagent/consumable/ethanol/grasshopper
name = "Grasshopper"
description = "A fresh and sweet dessert shooter."
@@ -1602,16 +1215,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/L) //damage only applies when drink first enters system and won't again until drink metabolizes out
L.adjustBruteLoss(3 * min(5,volume)) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15
-/datum/reagent/consumable/ethanol/sake
- name = "Sake"
- description = "A sweet rice wine."
- color = "#DDDDDD"
- boozepwr = 70
- taste_description = "sweet rice wine"
- glass_icon_state = "sakecup"
- glass_name = "cup of sake"
- glass_desc = "A cup of sake. Capable of being served hot, cold, or at room temperature, and served in a traditionally-sized little cup."
-
/datum/reagent/consumable/ethanol/peppermint_patty
name = "Peppermint Patty"
description = "This lightly alcoholic drink combines the benefits of menthol and cocoa."
@@ -1739,14 +1342,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Gorlex Gator"
glass_desc = "A chilly drink made in remembrance of Gorlex IV. It's not a wise idea to go ordering this when the PGF are in town, though."
-/datum/reagent/consumable/ethanol/fernet
- name = "Fernet"
- description = "An incredibly bitter herbal liqueur used as a digestif."
- color = "#2d4b3b" // rgb: 27, 46, 36
- boozepwr = 80
- taste_description = "utter bitterness"
- glass_name = "glass of fernet"
- glass_desc = "A glass of pure Fernet. Intensely bitter and reserved to being a digestive more than something to be enjoyed." //Hi Kevum
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/M)
if(M.nutrition <= NUTRITION_LEVEL_STARVING)
@@ -1837,125 +1432,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
. = 1
return ..()
-/datum/reagent/consumable/ethanol/fruit_wine
- name = "Fruit Wine"
- description = "A wine made from grown plants."
- color = "#FFFFFF"
- boozepwr = 35
- quality = DRINK_GOOD
- taste_description = "bad coding"
- can_synth = FALSE
- var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit.
- var/list/tastes = list("bad coding" = 1) //List of tastes. See above.
-
-/datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data)
- names = data["names"]
- tastes = data["tastes"]
- boozepwr = data["boozepwr"]
- color = data["color"]
- generate_data_info(data)
-
-/datum/reagent/consumable/ethanol/fruit_wine/on_merge(list/data, amount)
- var/diff = (amount/volume)
- if(diff < 1)
- color = BlendRGB(color, data["color"], diff/2) //The percentage difference over two, so that they take average if equal.
- else
- color = BlendRGB(color, data["color"], (1/diff)/2) //Adjust so it's always blending properly.
- var/oldvolume = volume-amount
-
- var/list/cachednames = data["names"]
- for(var/name in names | cachednames)
- names[name] = ((names[name] * oldvolume) + (cachednames[name] * amount)) / volume
-
- var/list/cachedtastes = data["tastes"]
- for(var/taste in tastes | cachedtastes)
- tastes[taste] = ((tastes[taste] * oldvolume) + (cachedtastes[taste] * amount)) / volume
-
- boozepwr *= oldvolume
- var/newzepwr = data["boozepwr"] * amount
- boozepwr += newzepwr
- boozepwr /= volume //Blending boozepwr to volume.
- generate_data_info(data)
-
-/datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data)
- // BYOND's compiler fails to catch non-consts in a ranged switch case, and it causes incorrect behavior. So this needs to explicitly be a constant.
- var/const/minimum_percent = 0.15 //Percentages measured between 0 and 1.
- var/list/primary_tastes = list()
- var/list/secondary_tastes = list()
- glass_name = "glass of [name]"
- glass_desc = description
- for(var/taste in tastes)
- var/taste_percent = tastes[taste]
- if(taste_percent < minimum_percent)
- continue
- if(taste_percent > (minimum_percent * 2))
- primary_tastes += taste
- continue
- secondary_tastes += taste
-
- var/minimum_name_percent = 0.35
- name = ""
- var/list/names_in_order = sortTim(names, /proc/cmp_numeric_dsc, TRUE)
- var/named = FALSE
- for(var/fruit_name in names)
- if(names[fruit_name] >= minimum_name_percent)
- name += "[fruit_name] "
- named = TRUE
- if(named)
- name += "wine"
- else
- name = "mixed [names_in_order[1]] wine"
-
- var/alcohol_description
- switch(boozepwr)
- if(120 to INFINITY)
- alcohol_description = "suicidally strong"
- if(90 to 120)
- alcohol_description = "rather strong"
- if(70 to 90)
- alcohol_description = "strong"
- if(40 to 70)
- alcohol_description = "rich"
- if(20 to 40)
- alcohol_description = "mild"
- if(0 to 20)
- alcohol_description = "sweet"
- else
- alcohol_description = "watery" //How the hell did you get negative boozepwr?
-
- var/list/fruits = list()
- if(names_in_order.len <= 3)
- fruits = names_in_order
- else
- for(var/i in 1 to 3)
- fruits += names_in_order[i]
- fruits += "other plants"
- var/fruit_list = english_list(fruits)
- description = "A [alcohol_description] wine brewed from [fruit_list]."
-
- var/flavor = ""
- if(!primary_tastes.len)
- primary_tastes = list("[alcohol_description] alcohol")
- flavor += english_list(primary_tastes)
- if(secondary_tastes.len)
- flavor += ", with a hint of "
- flavor += english_list(secondary_tastes)
- taste_description = flavor
- if(holder.my_atom)
- holder.my_atom.on_reagent_change()
-
-
-/datum/reagent/consumable/ethanol/champagne //How the hell did we not have champagne already!?
- name = "Champagne"
- description = "A sparkling wine known for its ability to strike fast and hard."
- color = "#ffffc1"
- boozepwr = 40
- taste_description = "auspicious occasions and bad decisions"
- glass_icon_state = "champagne_glass"
- glass_name = "Champagne"
- glass_desc = "A sparkling wine, traditionally served in a flute that clearly displays the slowly rising bubbles."
-
-
/datum/reagent/consumable/ethanol/wizz_fizz
name = "Wizz Fizz"
description = "A magical potion, fizzy and wild! However the taste, you will find, is quite mild."
@@ -1986,16 +1462,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Stunball"
glass_desc = "Made in protest of the Mothball mixed drink being recognized by the Interstellar Bartenders Association, who refute the idea of a singular point of origin. The taste is as spiteful as its history."
-/datum/reagent/consumable/ethanol/applejack
- name = "Applejack"
- description = "The officially sponsored drink by the National Association for Anti-Gravity Automobile Dragracing (NAAGAD)."
- color = "#ff6633"
- boozepwr = 20
- taste_description = "resisting gravity through brandy"
- glass_icon_state = "applejack_glass"
- glass_name = "Applejack"
- glass_desc = "You lament you can't watch any Agrav Races while out here."
-
/datum/reagent/consumable/ethanol/jack_rose
name = "Jackalope"
description = "A light cocktail named after a famous anti-gravity racer."
@@ -2035,24 +1501,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Old Timer"
glass_desc = "You might not be the target audience of this drink if you're still out in the Frontier, though."
-/datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/M)
- if(prob(20))
- if(ishuman(M))
- var/mob/living/carbon/human/N = M
- N.age++
- if(N.age > N.dna.species.species_age_max * 0.6)
- N.facial_hair_color = "ccc"
- N.hair_color = "ccc"
- N.update_hair()
- if(N.age > N.dna.species.species_age_max * 0.8)
- N.become_nearsighted(type)
-
- if(N.age > N.dna.species.species_age_max * 1.2) //Best not let people get older than this or i might incur G-ds wrath
- M.visible_message("[M] becomes older than any man should be.. and crumbles into dust!")
- M.dust(0,1,0)
-
- return ..()
-
/datum/reagent/consumable/ethanol/rubberneck
name = "Rubberneck"
description = "A quality rubberneck should not contain any gross natural ingredients."
diff --git a/shiptest.dme b/shiptest.dme
index b6fb8021c85a..8f18e6c5773d 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -3168,7 +3168,6 @@
#include "code\modules\reagents\chemistry\machinery\pandemic.dm"
#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm"
#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm"
-#include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\cat2_medicine_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\drink_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\drug_reagents.dm"
@@ -3178,6 +3177,10 @@
#include "code\modules\reagents\chemistry\reagents\pyrotechnic_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\toxin_reagents.dm"
#include "code\modules\reagents\chemistry\reagents\trickwine_reagents.dm"
+#include "code\modules\reagents\chemistry\reagents\alcohol_reagents\base_drinks.dm"
+#include "code\modules\reagents\chemistry\reagents\alcohol_reagents\ethanol.dm"
+#include "code\modules\reagents\chemistry\reagents\alcohol_reagents\fruit_wine.dm"
+#include "code\modules\reagents\chemistry\reagents\alcohol_reagents\mixed_drinks.dm"
#include "code\modules\reagents\chemistry\recipes\cat2_medicines.dm"
#include "code\modules\reagents\chemistry\recipes\drugs.dm"
#include "code\modules\reagents\chemistry\recipes\medicine.dm"