Merge remote-tracking branch 'upstream/master' into TGUI-3.0

This commit is contained in:
Artur
2020-05-30 18:52:02 +03:00
361 changed files with 10271 additions and 3115 deletions
@@ -23,7 +23,7 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
circuit = /obj/item/circuitboard/machine/chem_dispenser
var/obj/item/stock_parts/cell/cell
var/powerefficiency = 0.1
var/powerefficiency = 0.0666666
var/amount = 30
var/recharge_amount = 10
var/recharge_counter = 0
@@ -386,7 +386,7 @@
/obj/machinery/chem_dispenser/RefreshParts()
recharge_amount = initial(recharge_amount)
var/newpowereff = 0.0666666
var/newpowereff = initial(powerefficiency)
for(var/obj/item/stock_parts/cell/P in component_parts)
cell = P
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
@@ -719,3 +719,58 @@
component_parts += new /obj/item/stack/sheet/glass(null)
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
RefreshParts()
///An unique, less efficient model found in the medbay apothecary room.
/obj/machinery/chem_dispenser/apothecary
name = "apothecary chem dispenser"
desc = "A cheaper chem dispenser meant for small scale medicine production."
icon_state = "minidispenser"
working_state = "minidispenser_working"
nopower_state = "minidispenser_nopower"
circuit = /obj/item/circuitboard/machine/chem_dispenser/apothecary
powerefficiency = 0.0833333
dispensable_reagents = list( //radium and stable plasma moved to upgrade tier 1 and 2, they've little to do with most medicines anyway.
/datum/reagent/hydrogen,
/datum/reagent/lithium,
/datum/reagent/carbon,
/datum/reagent/nitrogen,
/datum/reagent/oxygen,
/datum/reagent/fluorine,
/datum/reagent/sodium,
/datum/reagent/aluminium,
/datum/reagent/silicon,
/datum/reagent/phosphorus,
/datum/reagent/sulfur,
/datum/reagent/chlorine,
/datum/reagent/potassium,
/datum/reagent/iron,
/datum/reagent/copper,
/datum/reagent/mercury,
/datum/reagent/water,
/datum/reagent/consumable/ethanol,
/datum/reagent/consumable/sugar,
/datum/reagent/toxin/acid,
/datum/reagent/fuel,
/datum/reagent/silver,
/datum/reagent/iodine,
/datum/reagent/bromine
)
upgrade_reagents = list(
/datum/reagent/oil,
/datum/reagent/ammonia,
/datum/reagent/radium
)
upgrade_reagents2 = list(
/datum/reagent/acetone,
/datum/reagent/phenol,
/datum/reagent/stable_plasma
)
upgrade_reagents3 = list(
/datum/reagent/medicine/mine_salve
)
emagged_reagents = list(
/datum/reagent/drug/space_drugs,
/datum/reagent/toxin/carpotoxin,
/datum/reagent/medicine/morphine
)
@@ -559,3 +559,128 @@
var/mob/living/carbon/C = M
if(!C.undergoing_cardiac_arrest())
C.set_heartattack(TRUE)
//aphrodisiac & anaphrodisiac
/datum/reagent/drug/aphrodisiac
name = "Crocin"
description = "Naturally found in the crocus and gardenia flowers, this drug acts as a natural and safe aphrodisiac."
taste_description = "strawberries"
color = "#FFADFF"//PINK, rgb(255, 173, 255)
can_synth = FALSE
/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M)
if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO))
if((prob(min(current_cycle/2,5))))
M.emote(pick("moan","blush"))
if(prob(min(current_cycle/4,10)))
var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.")
to_chat(M, "<span class='userlove'>[aroused_message]</span>")
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/list/genits = H.adjust_arousal(current_cycle, aphro = TRUE) // redundant but should still be here
for(var/g in genits)
var/obj/item/organ/genital/G = g
to_chat(M, "<span class='userlove'>[G.arousal_verb]!</span>")
..()
/datum/reagent/drug/aphrodisiacplus
name = "Hexacrocin"
description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\
Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a \
permanent increase in libido (commonly referred to as 'bimbofication')."
taste_description = "liquid desire"
color = "#FF2BFF"//dark pink
addiction_threshold = 20
overdose_threshold = 20
can_synth = FALSE
/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M)
if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO))
if(prob(5))
if(prob(current_cycle))
M.say(pick("Hnnnnngghh...", "Ohh...", "Mmnnn..."))
else
M.emote(pick("moan","blush"))
if(prob(5))
var/aroused_message
if(current_cycle>25)
aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!")
else
aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.")
to_chat(M, "<span class='userlove'>[aroused_message]</span>")
REMOVE_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/list/genits = H.adjust_arousal(100, aphro = TRUE) // redundant but should still be here
for(var/g in genits)
var/obj/item/organ/genital/G = g
to_chat(M, "<span class='userlove'>[G.arousal_verb]!</span>")
..()
/datum/reagent/drug/aphrodisiacplus/addiction_act_stage2(mob/living/M)
if(prob(30))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2)
..()
/datum/reagent/drug/aphrodisiacplus/addiction_act_stage3(mob/living/M)
if(prob(30))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3)
..()
/datum/reagent/drug/aphrodisiacplus/addiction_act_stage4(mob/living/M)
if(prob(30))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4)
..()
/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M)
if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33))
if(prob(5) && ishuman(M) && M.has_dna() && (M.client?.prefs.cit_toggles & BIMBOFICATION))
if(!HAS_TRAIT(M,TRAIT_PERMABONER))
to_chat(M, "<span class='userlove'>Your libido is going haywire!</span>")
ADD_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT)
..()
/datum/reagent/drug/anaphrodisiac
name = "Camphor"
description = "Naturally found in some species of evergreen trees, camphor is a waxy substance. When injested by most animals, it acts as an anaphrodisiac\
, reducing libido and calming them. Non-habit forming and not addictive."
taste_description = "dull bitterness"
taste_mult = 2
color = "#D9D9D9"//rgb(217, 217, 217)
reagent_state = SOLID
can_synth = FALSE
/datum/reagent/drug/anaphrodisiac/on_mob_life(mob/living/M)
if(M && M.client?.prefs.arousable && prob(16))
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/list/genits = H.adjust_arousal(-100, aphro = TRUE)
if(genits.len)
to_chat(M, "<span class='notice'>You no longer feel aroused.")
..()
/datum/reagent/drug/anaphrodisiacplus
name = "Hexacamphor"
description = "Chemically condensed camphor. Causes an extreme reduction in libido and a permanent one if overdosed. Non-addictive."
taste_description = "tranquil celibacy"
color = "#D9D9D9"//rgb(217, 217, 217)
reagent_state = SOLID
overdose_threshold = 20
can_synth = FALSE
/datum/reagent/drug/anaphrodisiacplus/on_mob_life(mob/living/M)
if(M && M.client?.prefs.arousable)
REMOVE_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/list/genits = H.adjust_arousal(-100, aphro = TRUE)
if(genits.len)
to_chat(M, "<span class='notice'>You no longer feel aroused.")
..()
/datum/reagent/drug/anaphrodisiacplus/overdose_process(mob/living/M)
if(M && M.client?.prefs.arousable && prob(5))
to_chat(M, "<span class='userlove'>You feel like you'll never feel aroused again...</span>")
ADD_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT)
..()
@@ -1735,6 +1735,22 @@
H.facial_hair_style = "Very Long Beard"
H.update_hair()
/datum/reagent/baldium
name = "Baldium"
description = "A major cause of hair loss across the world."
reagent_state = LIQUID
color = "#ecb2cf"
taste_description = "bitterness"
/datum/reagent/baldium/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
if(M && ishuman(M))
var/mob/living/carbon/human/H = M
to_chat(H, "<span class='danger'>Your hair is falling out in clumps!</span>")
H.hair_style = "Bald"
H.facial_hair_style = "Shaved"
H.update_hair()
/datum/reagent/saltpetre
name = "Saltpetre"
description = "Volatile. Controversial. Third Thing."
@@ -2178,3 +2194,93 @@
reagent_state = LIQUID
color = "#f7685e"
metabolization_rate = REAGENTS_METABOLISM * 0.25
//body bluids
/datum/reagent/consumable/semen
name = "Semen"
description = "Sperm from some animal. Useless for anything but insemination, really."
taste_description = "something salty"
taste_mult = 2 //Not very overpowering flavor
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
reagent_state = LIQUID
color = "#FFFFFF" // rgb: 255, 255, 255
can_synth = FALSE
nutriment_factor = 0.5 * REAGENTS_METABOLISM
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
if(!istype(T))
return
if(reac_volume < 10)
return
var/obj/effect/decal/cleanable/semen/S = locate() in T
if(!S)
S = new(T)
if(data["blood_DNA"])
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
/obj/effect/decal/cleanable/semen
name = "semen"
desc = null
gender = PLURAL
density = 0
layer = ABOVE_NORMAL_TURF_LAYER
icon = 'icons/obj/genitals/effects.dmi'
icon_state = "semen1"
random_icon_states = list("semen1", "semen2", "semen3", "semen4")
/obj/effect/decal/cleanable/semen/Initialize(mapload)
. = ..()
dir = GLOB.cardinals
add_blood_DNA(list("Non-human DNA" = "A+"))
/obj/effect/decal/cleanable/semen/replace_decal(obj/effect/decal/cleanable/semen/S)
if(S.blood_DNA)
blood_DNA |= S.blood_DNA
return ..()
/datum/reagent/consumable/femcum
name = "Female Ejaculate"
description = "Vaginal lubricant found in most mammals and other animals of similar nature. Where you found this is your own business."
taste_description = "something with a tang" // wew coders who haven't eaten out a girl.
taste_mult = 2
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
reagent_state = LIQUID
color = "#AAAAAA77"
can_synth = FALSE
nutriment_factor = 0.5 * REAGENTS_METABOLISM
/obj/effect/decal/cleanable/femcum
name = "female ejaculate"
desc = null
gender = PLURAL
density = 0
layer = ABOVE_NORMAL_TURF_LAYER
icon = 'icons/obj/genitals/effects.dmi'
icon_state = "fem1"
random_icon_states = list("fem1", "fem2", "fem3", "fem4")
blood_state = null
bloodiness = null
/obj/effect/decal/cleanable/femcum/Initialize(mapload)
. = ..()
dir = GLOB.cardinals
add_blood_DNA(list("Non-human DNA" = "A+"))
/obj/effect/decal/cleanable/femcum/replace_decal(obj/effect/decal/cleanable/femcum/F)
if(F.blood_DNA)
blood_DNA |= F.blood_DNA
return ..()
/datum/reagent/consumable/femcum/reaction_turf(turf/T, reac_volume)
if(!istype(T))
return
if(reac_volume < 10)
return
var/obj/effect/decal/cleanable/femcum/S = locate() in T
if(!S)
S = new(T)
if(data["blood_DNA"])
S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
@@ -1019,3 +1019,20 @@
to_chat(M, "<span class='notice'>[tox_message]</span>")
. = 1
..()
/datum/reagent/toxin/leadacetate
name = "Lead Acetate"
description = "Used hundreds of years ago as a sweetener, before it was realized that it's incredibly poisonous."
reagent_state = SOLID
color = "#2b2b2b" // rgb: 127, 132, 0
toxpwr = 0.5
taste_mult = 1.3
taste_description = "sugary sweetness"
/datum/reagent/toxin/leadacetate/on_mob_life(mob/living/carbon/M)
M.adjustOrganLoss(ORGAN_SLOT_EARS,1)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN,1)
if(prob(1))
to_chat(M, "<span class='notice'>Ah, what was that? You thought you heard something...</span>")
M.confused += 5
return ..()
@@ -62,3 +62,34 @@
results = list(/datum/reagent/moonsugar = 1, /datum/reagent/medicine/morphine = 2.5)
required_temp = 315 //a little above normal body temperature
required_reagents = list(/datum/reagent/drug/skooma = 1)
/datum/chemical_reaction/aphro
name = "crocin"
id = /datum/reagent/drug/aphrodisiac
results = list(/datum/reagent/drug/aphrodisiac = 6)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/water = 1)
required_temp = 400
mix_message = "The mixture boils off a pink vapor..."//The water boils off, leaving the crocin
/datum/chemical_reaction/aphroplus
name = "hexacrocin"
id = /datum/reagent/drug/aphrodisiacplus
results = list(/datum/reagent/drug/aphrodisiacplus = 1)
required_reagents = list(/datum/reagent/drug/aphrodisiac = 6, /datum/reagent/phenol = 1)
required_temp = 400
mix_message = "The mixture rapidly condenses and darkens in color..."
/datum/chemical_reaction/anaphro
name = "camphor"
id = /datum/reagent/drug/anaphrodisiac
results = list(/datum/reagent/drug/anaphrodisiac = 6)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/sulfur = 1)
required_temp = 400
mix_message = "The mixture boils off a yellow, smelly vapor..."//Sulfur burns off, leaving the camphor
/datum/chemical_reaction/anaphroplus
name = "pentacamphor"
id = /datum/reagent/drug/anaphrodisiacplus
results = list(/datum/reagent/drug/anaphrodisiacplus = 1)
required_reagents = list(/datum/reagent/drug/aphrodisiac = 5, /datum/reagent/acetone = 1)
required_temp = 300
mix_message = "The mixture thickens and heats up slighty..."
@@ -631,6 +631,11 @@
results = list(/datum/reagent/concentrated_barbers_aid = 2)
required_reagents = list(/datum/reagent/barbers_aid = 1, /datum/reagent/toxin/mutagen = 1)
/datum/chemical_reaction/baldium
results = list(/datum/reagent/baldium = 1)
required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/lye = 1)
required_temp = 395
/datum/chemical_reaction/saltpetre
name = "saltpetre"
id = /datum/reagent/saltpetre
@@ -351,7 +351,7 @@
name = "wooden bucket"
desc = "It's a bucket made of wood."
icon_state = "bucket_wooden"
custom_materials = null
custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 2)
slot_flags = NONE
item_flags = NO_MAT_REDEMPTION
@@ -0,0 +1,117 @@
/obj/item/reagent_containers/glass/maunamug
name = "mauna mug"
desc = "A drink served in a classy mug. Now with built-in heating!"
icon = 'icons/obj/mauna_mug.dmi'
icon_state = "maunamug"
spillable = TRUE
reagent_flags = OPENCONTAINER
// fill_icon_state = "maunafilling"
// fill_icon_thresholds = list(25)
var/obj/item/stock_parts/cell/cell
var/open = FALSE
var/on = FALSE
/obj/item/reagent_containers/glass/maunamug/Initialize(mapload, vol)
. = ..()
cell = new /obj/item/stock_parts/cell(src)
/obj/item/reagent_containers/glass/maunamug/examine(mob/user)
. = ..()
. += "<span class='notice'>The status display reads: Current temperature: <b>[reagents.chem_temp]K</b> Current Charge:[cell ? "[cell.charge / cell.maxcharge * 100]%" : "No cell found"].</span>"
if(open)
. += "<span class='notice'>The battery case is open.</span>"
/obj/item/reagent_containers/glass/maunamug/update_overlays()
. = ..()
if(reagents.total_volume >= 25)
. += mutable_appearance('icons/obj/reagentfillings.dmi', "maunafilling25", color = mix_color_from_reagents(reagents.reagent_list))
/obj/item/reagent_containers/glass/maunamug/process()
..()
if(on && (!cell || cell.charge <= 0)) //Check if we ran out of power
change_power_status(FALSE)
return FALSE
cell.use(10) //Basic cell goes for like 200 seconds, bluespace for 8000
if(!reagents.total_volume)
return FALSE
var/max_temp = min(500 + (500 * (0.2 * cell.rating)), 1000) // 373 to 1000
reagents.adjust_thermal_energy(0.8 * cell.maxcharge * reagents.total_volume, max_temp = max_temp) // 4 kelvin every tick on a basic cell. 160k on bluespace
reagents.handle_reactions()
update_icon()
if(reagents.chem_temp >= max_temp)
change_power_status(FALSE)
audible_message("<span class='notice'>The Mauna Mug lets out a happy beep and turns off!</span>")
playsound(src, 'sound/machines/chime.ogg', 50)
/obj/item/reagent_containers/glass/maunamug/Destroy()
if(cell)
QDEL_NULL(cell)
STOP_PROCESSING(SSobj, src)
. = ..()
/obj/item/reagent_containers/glass/maunamug/attack_self(mob/user)
if(on)
change_power_status(FALSE)
else
if(!cell || cell.charge <= 0)
return FALSE //No power, so don't turn on
change_power_status(TRUE)
/obj/item/reagent_containers/glass/maunamug/proc/change_power_status(status)
on = status
if(on)
START_PROCESSING(SSobj, src)
else
STOP_PROCESSING(SSobj, src)
update_icon()
/obj/item/reagent_containers/glass/maunamug/screwdriver_act(mob/living/user, obj/item/I)
. = ..()
open = !open
to_chat(user, "<span class='notice'>You screw the battery case on [src] [open ? "open" : "closed"] .</span>")
update_icon()
/obj/item/reagent_containers/glass/maunamug/attackby(obj/item/I, mob/user, params)
add_fingerprint(user)
if(!istype(I, /obj/item/stock_parts/cell))
return ..()
if(!open)
to_chat(user, "<span class='warning'>The battery case must be open to insert a power cell!</span>")
return FALSE
if(cell)
to_chat(user, "<span class='warning'>There is already a power cell inside!</span>")
return FALSE
else if(!user.transferItemToLoc(I, src))
return
cell = I
user.visible_message("<span class='notice'>[user] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
update_icon()
/obj/item/reagent_containers/glass/maunamug/attack_hand(mob/living/user)
if(cell && open)
cell.update_icon()
user.put_in_hands(cell)
cell = null
to_chat(user, "<span class='notice'>You remove the power cell from [src].</span>")
on = FALSE
update_icon()
return TRUE
return ..()
/obj/item/reagent_containers/glass/maunamug/update_icon()
..()
if(open)
if(cell)
icon_state = "maunamug_bat"
else
icon_state = "maunamug_no_bat"
else if(on)
icon_state = "maunamug_on"
else
icon_state = "maunamug"
if(reagents.total_volume && reagents.chem_temp >= 400)
var/intensity = (reagents.chem_temp - 400) * 1 / 600 //Get the opacity of the incandescent overlay. Ranging from 400 to 1000
var/mutable_appearance/mug_glow = mutable_appearance(icon, "maunamug_incand")
mug_glow.alpha = 255 * intensity
add_overlay(mug_glow)
@@ -22,10 +22,17 @@
if(reagents.total_volume && roundstart)
name += " ([reagents.total_volume]u)"
/obj/item/reagent_containers/pill/attack_self(mob/user)
return
/obj/item/reagent_containers/pill/get_w_volume()
switch(reagents.total_volume)
if(0 to 9.5)
return 1
if(9.5 to 25)
return DEFAULT_VOLUME_TINY
else
return DEFAULT_VOLUME_SMALL
/obj/item/reagent_containers/pill/attack(mob/M, mob/user, def_zone)
if(!canconsume(M, user))
@@ -137,14 +144,14 @@
name = "mannitol pill"
desc = "Used to treat brain damage."
icon_state = "pill17"
list_reagents = list(/datum/reagent/medicine/mannitol = 50)
list_reagents = list(/datum/reagent/medicine/mannitol = 25)
roundstart = 1
/obj/item/reagent_containers/pill/mutadone
name = "mutadone pill"
desc = "Used to treat genetic damage."
icon_state = "pill20"
list_reagents = list(/datum/reagent/medicine/mutadone = 50)
list_reagents = list(/datum/reagent/medicine/mutadone = 25)
roundstart = 1
/obj/item/reagent_containers/pill/salicyclic
@@ -186,14 +193,14 @@
name = "prussian blue pill"
desc = "Used to treat heavy radition poisoning."
icon_state = "prussian_blue"
list_reagents = list(/datum/reagent/medicine/prussian_blue = 25, /datum/reagent/water = 10)
list_reagents = list(/datum/reagent/medicine/prussian_blue = 25)
roundstart = 1
/obj/item/reagent_containers/pill/mutarad
name = "radiation treatment deluxe pill"
desc = "Used to treat heavy radition poisoning and genetic defects."
icon_state = "anit_rad_fixgene"
list_reagents = list(/datum/reagent/medicine/prussian_blue = 15, /datum/reagent/medicine/potass_iodide = 15, /datum/reagent/medicine/mutadone = 15, /datum/reagent/water = 5)
list_reagents = list(/datum/reagent/medicine/prussian_blue = 10, /datum/reagent/medicine/potass_iodide = 10, /datum/reagent/medicine/mutadone = 5)
roundstart = 1
///////////////////////////////////////// this pill is used only in a legion mob drop
@@ -216,7 +223,7 @@
/obj/item/reagent_containers/pill/lsd
name = "hallucinogen pill"
list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 15, /datum/reagent/toxin/mindbreaker = 15)
list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 12.5, /datum/reagent/toxin/mindbreaker = 12.5)
/obj/item/reagent_containers/pill/aranesp
@@ -241,12 +241,6 @@
icon_state = "whitekeg"
reagent_id = /datum/reagent/consumable/milk
/obj/structure/reagent_dispensers/keg/semen
name = "keg of semen"
desc = "Dear lord, where did this even come from?"
icon_state = "whitekeg"
reagent_id = /datum/reagent/consumable/semen
/obj/structure/reagent_dispensers/keg/gargle
name = "keg of pan galactic gargleblaster"
desc = "A keg of... wow that's a long name."