Merge pull request #16147 from Xhuis/bacchus_approves

Alcohol Refactor (Merge-Ready)
This commit is contained in:
phil235
2016-03-24 19:05:56 +01:00
18 changed files with 403 additions and 135 deletions
+1 -1
View File
@@ -386,4 +386,4 @@ var/list/bloody_footprints_cache = list()
#define PLANT_NORMAL 0
#define PLANT_WEED 1
#define PLANT_MUSHROOM 2
#define PLANT_ALIEN 3
#define PLANT_ALIEN 3
@@ -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()
+1 -1
View File
@@ -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,
@@ -235,6 +235,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
@@ -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")
@@ -577,4 +577,39 @@
result = "grappa"
required_reagents = list ("wine" = 10)
required_catalysts = list ("enzyme" = 5)
result_amount = 10
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) //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 = "<span class='warning'>The mixture turns to a sickening froth.</span>"
+15 -7
View File
@@ -56,6 +56,8 @@
var/mob/living/victim = src.pulling
if(victim.stat == CONSCIOUS)
src.visible_message("<span class='warning'>[victim] kicks free of the blood pool just before entering it!</span>")
else if(victim.reagents && victim.reagents.has_reagent("demonsblood"))
visible_message("<span class='warning'>Something prevents [victim] from entering the pool!</span>", "<span class='warning'>A strange force is blocking [victim] from entering!</span>")
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 << "<span class='danger'>You devour [kidnapped]. Your health is fully restored.</span>"
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 << "<span class='warning'><b>AAH! THEIR FLESH! IT BURNS!</b></span>"
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("<span class='warning'>[B] violently expels [kidnapped]!</span>")
else
src << "<span class='danger'>You devour [kidnapped]. Your health is fully restored.</span>"
src.adjustBruteLoss(-1000)
src.adjustFireLoss(-1000)
src.adjustOxyLoss(-1000)
src.adjustToxLoss(-1000)
kidnapped.ghostize()
qdel(kidnapped)
else
src << "<span class='danger'>You happily devour... nothing? Your meal vanished at some point!</span>"
src.notransform = 0
@@ -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(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(41.01 to 51)
msg += "[t_He] [t_is] quite flushed and [t_his] breath smells of alcohol.\n"
if(51.01 to 61)
msg += "[t_He] is very flushed and [t_his] movements jerky, with breath reeking of alcohol.\n"
if(61.01 to 91)
msg += "[t_He] looks like a drunken mess.\n"
if(91.01 to INFINITY)
msg += "[t_He] is a shitfaced, slobbering wreck.\n"
msg += "</span>"
if(!appears_dead)
@@ -951,6 +951,7 @@
L.Insert(src)
restore_blood()
remove_all_embedded_objects()
drunkenness = 0
for(var/datum/mutation/human/HM in dna.mutations)
if(HM.quality != POSITIVE)
dna.remove_mutation(HM.name)
@@ -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
@@ -312,4 +312,74 @@
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 - light brain damage, passing out
91-100: Dangerously toxic - swift death
*/
/mob/living/carbon/human/handle_status_effects()
..()
if(drunkenness)
if(sleeping)
drunkenness = max(drunkenness - 1.5, 0)
else
drunkenness = max(drunkenness - 0.2, 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) && !stat)
src << "<span class='warning'>Maybe you should lie down for a bit...</span>"
if(drunkenness >= 91)
adjustBrainLoss(0.4)
if(prob(20) && !stat)
if(SSshuttle.emergency.mode == SHUTTLE_DOCKED && z == ZLEVEL_STATION) //QoL mainly
src << "<span class='warning'>You're so tired... but you can't miss that shuttle...</span>"
else
src << "<span class='warning'>Just a quick nap...</span>"
Sleeping(45)
if(drunkenness >= 101)
adjustToxLoss(4) //Let's be honest you shouldn't be alive by now
#undef HUMAN_MAX_OXYLOSS
+1 -1
View File
@@ -57,4 +57,4 @@
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/list/butcher_results = null
var/list/butcher_results = null
+2 -1
View File
@@ -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 << "<span class='notice'>\icon[my_atom] [C.mix_message]</span>"
@@ -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,7 +328,8 @@
"tequila",
"vermouth",
"cognac",
"ale"
"ale",
"absinthe"
)
/obj/machinery/chem_dispenser/mutagen
@@ -1,17 +1,9 @@
#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
///////////////////////////////////////////////////////////////////////////////////////
//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 +11,46 @@
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
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)
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 << "<span class='notice'>[paperaffected]'s ink washes away.</span>"
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 << "<span class='notice'>Through thorough application, you wash away [affectedbook]'s writing.</span>"
else
usr << "It wasn't enough..."
usr << "<span class='warning'>The ink smears, but doesn't wash away!</span>"
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 +63,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 +94,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 +109,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 +117,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 +136,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 +149,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 +160,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 +188,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 +242,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 +319,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 +360,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
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 +423,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 +448,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 +465,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 dragged 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 +513,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 +524,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 +551,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 +570,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 +584,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 +612,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 +632,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 +652,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 +660,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 +674,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 +687,49 @@
id = "drunkenblumpkin"
description = "A weird mix of whiskey and blumpkin juice."
color = "#1EA0FF" // rgb: 102, 67, 0
boozepwr = 35
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
@@ -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)
..()
. = 1
+2 -1
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 59 KiB