Polaris sync

This commit is contained in:
killer653
2017-12-21 04:01:07 -05:00
514 changed files with 13847 additions and 5596 deletions
+21 -9
View File
@@ -288,14 +288,20 @@
var/obj/item/weapon/reagent_containers/beaker = null
var/limit = 10
var/list/holdingitems = list()
var/list/sheet_reagents = list(
/obj/item/stack/material/iron = "iron",
/obj/item/stack/material/uranium = "uranium",
/obj/item/stack/material/phoron = "phoron",
/obj/item/stack/material/gold = "gold",
/obj/item/stack/material/silver = "silver",
/obj/item/stack/material/platinum = "platinum",
/obj/item/stack/material/mhydrogen = "hydrogen"
var/list/sheet_reagents = list( //have a number of reageents divisible by REAGENTS_PER_SHEET (default 20) unless you like decimals,
/obj/item/stack/material/iron = list("iron"),
/obj/item/stack/material/uranium = list("uranium"),
/obj/item/stack/material/phoron = list("phoron"),
/obj/item/stack/material/gold = list("gold"),
/obj/item/stack/material/silver = list("silver"),
/obj/item/stack/material/platinum = list("platinum"),
/obj/item/stack/material/mhydrogen = list("hydrogen"),
/obj/item/stack/material/steel = list("iron", "carbon"),
/obj/item/stack/material/plasteel = list("iron", "iron", "carbon", "carbon", "platinum"), //8 iron, 8 carbon, 4 platinum,
/obj/item/stack/material/snow = list("water"),
/obj/item/stack/material/sandstone = list("silicon", "oxygen"),
/obj/item/stack/material/glass = list("silicon"),
/obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon,
)
/obj/machinery/reagentgrinder/New()
@@ -497,12 +503,18 @@
if(sheet_reagents[O.type])
var/obj/item/stack/stack = O
if(istype(stack))
var/list/sheet_components = sheet_reagents[stack.type]
var/amount_to_take = max(0,min(stack.amount,round(remaining_volume/REAGENTS_PER_SHEET)))
if(amount_to_take)
stack.use(amount_to_take)
if(QDELETED(stack))
holdingitems -= stack
beaker.reagents.add_reagent(sheet_reagents[stack.type], (amount_to_take*REAGENTS_PER_SHEET))
if(islist(sheet_components))
amount_to_take = (amount_to_take/(sheet_components.len))
for(var/i in sheet_components)
beaker.reagents.add_reagent(i, (amount_to_take*REAGENTS_PER_SHEET))
else
beaker.reagents.add_reagent(sheet_components, (amount_to_take*REAGENTS_PER_SHEET))
continue
if(O.reagents)
@@ -9,6 +9,7 @@
mrate_static = TRUE
affects_dead = 1 //so you can pump blood into someone before defibbing them
color = "#C80000"
var/volume_mod = 1 // So if you add different subtypes of blood, you can affect how much vessel blood each unit of reagent adds
glass_name = "tomato juice"
glass_desc = "Are you sure this is tomato juice?"
@@ -78,9 +79,21 @@
M.antibodies |= data["antibodies"]
/datum/reagent/blood/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.inject_blood(src, volume)
M.inject_blood(src, volume * volume_mod)
remove_self(volume)
/datum/reagent/blood/synthblood
name = "Synthetic blood"
id = "synthblood"
color = "#999966"
volume_mod = 2
/datum/reagent/blood/synthblood/initialize_data(var/newdata)
..()
if(data && !data["blood_type"])
data["blood_type"] = "O-"
return
// pure concentrated antibodies
/datum/reagent/antibodies
data = list("antibodies"=list())
@@ -133,11 +146,13 @@
else if(volume >= 10)
T.wet_floor(1)
/datum/reagent/water/touch_obj(var/obj/O)
/datum/reagent/water/touch_obj(var/obj/O, var/amount)
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube))
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
if(!cube.wrapped)
cube.Expand()
else
O.water_act(amount / 5)
/datum/reagent/water/touch_mob(var/mob/living/L, var/amount)
if(istype(L))
@@ -997,6 +997,43 @@
M.sleeping = max(M.sleeping, 20)
M.drowsyness = max(M.drowsyness, 60)
/datum/reagent/drink/milkshake/chocoshake
name = "Chocolate Milkshake"
id = "chocoshake"
description = "A refreshing chocolate milkshake."
taste_description = "cold refreshing chocolate and cream"
color = "#8e6f44" // rgb(142, 111, 68)
adj_temp = -9
glass_name = "Chocolate Milkshake"
glass_desc = "A refreshing chocolate milkshake, just like mom used to make."
/datum/reagent/drink/milkshake/berryshake
name = "Berry Milkshake"
id = "Berryshake"
description = "A refreshing berry milkshake."
taste_description = "cold refreshing berries and cream"
color = "#ffb2b2" // rgb(255, 178, 178)
adj_temp = -9
glass_name = "Berry Milkshake"
glass_desc = "A refreshing berry milkshake, just like mom used to make."
/datum/reagent/drink/milkshake/coffeeshake
name = "Coffee Milkshake"
id = "coffeeshake"
description = "A refreshing coffee milkshake."
taste_description = "cold energizing coffee and cream"
color = "#8e6f44" // rgb(142, 111, 68)
adj_temp = -9
adj_dizzy = -5
adj_drowsy = -3
adj_sleepy = -2
overdose = 45
glass_name = "Coffee Milkshake"
glass_desc = "An energizing coffee milkshake, perfect for hot days at work.."
/datum/reagent/drink/rewriter
name = "Rewriter"
id = "rewriter"
@@ -1260,6 +1297,48 @@
glass_name = "nothing"
glass_desc = "Absolutely nothing."
/datum/reagent/drink/dreamcream
name = "Dream Cream"
id = "dreamcream"
description = "A smoothy, silky mix of honey and dairy."
taste_description = "sweet, soothing dairy"
color = "#fcfcc9" // rgb(252, 252, 201)
glass_name = "Dream Cream"
glass_desc = "A smoothy, silky mix of honey and dairy."
/datum/reagent/drink/soda/vilelemon
name = "Vile Lemon"
id = "vilelemon"
description = "A fizzy, sour lemonade mix."
taste_description = "fizzy, sour lemon"
color = "#c6c603" // rgb(198, 198, 3)
glass_name = "Vile Lemon"
glass_desc = "A sour, fizzy drink with lemonade and lemonlime."
glass_special = list(DRINK_FIZZ)
/datum/reagent/drink/entdraught
name = "Ent's Draught"
id = "entdraught"
description = "A natural, earthy combination of all things peaceful."
taste_description = "fresh rain and sweet memories"
color = "#3a6617" // rgb(58, 102, 23)
glass_name = "Ent's Draught"
glass_desc = "You can almost smell the tranquility emanating from this."
/datum/reagent/drink/lovepotion
name = "Love Potion"
id = "lovepotion"
description = "Creamy strawberries and sugar, simple and sweet."
taste_description = "strawberries and cream"
color = "#fc8a8a" // rrgb(252, 138, 138)
glass_name = "Love Potion"
glass_desc = "Love me tender, love me sweet."
/* Alcohol */
// Basic
@@ -2281,6 +2360,19 @@
glass_name = "unathi liquor"
glass_desc = "This barely qualifies as a drink, and may cause euphoria and numbness. Imbiber beware!"
/datum/reagent/ethanol/unathiliquor/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien == IS_DIONA)
return
var/drug_strength = 10
if(alien == IS_SKRELL)
drug_strength = drug_strength * 0.8
M.druggy = max(M.druggy, drug_strength)
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
step(M, pick(cardinal))
/datum/reagent/ethanol/sakebomb
name = "Sake Bomb"
id = "sakebomb"
@@ -2449,16 +2541,270 @@
glass_name = "Chrysanthemum"
glass_desc = "An exotic cocktail from New Kyoto."
/datum/reagent/ethanol/unathiliquor/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
/datum/reagent/ethanol/bitters
name = "Bitters"
id = "bitters"
description = "A blend of fermented fruits and herbs, commonly used in cocktails."
taste_description = "sharp bitterness"
color = "#9b6241" // rgb(155, 98, 65)
strength = 50
glass_name = "Bitters"
glass_desc = "A blend of fermented fruits and herbs, commonly used in cocktails."
/datum/reagent/ethanol/soemmerfire
name = "Soemmer Fire"
id = "soemmerfire"
description = "A painfully hot mixed drink, for when you absolutely need to hurt right now."
taste_description = "pure fire"
color = "#d13b21" // rgb(209, 59, 33)
strength = 25
glass_name = "Soemmer Fire"
glass_desc = "A painfully hot mixed drink, for when you absolutely need to hurt right now."
/datum/reagent/drink/soemmerfire/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien == IS_DIONA)
return
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
var/drug_strength = 10
if(alien == IS_SKRELL)
drug_strength = drug_strength * 0.8
/datum/reagent/ethanol/winebrandy
name = "Wine Brandy"
id = "winebrandy"
description = "An premium spirit made from distilled wine."
taste_description = "very sweet dried fruit with many elegant notes"
color = "#4C130B" // rgb(76,19,11)
strength = 20
M.druggy = max(M.druggy, drug_strength)
if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained())
step(M, pick(cardinal))
glass_name = "Wine Brandy"
glass_desc = "A very classy looking after-dinner drink."
/datum/reagent/ethanol/morningafter
name = "Morning After"
id = "morningafter"
description = "The finest hair of the dog, coming up!"
taste_description = "bitter regrets"
color = "#482000" // rgb(72, 32, 0)
strength = 60
glass_name = "Morning After"
glass_desc = "The finest hair of the dog, coming up!"
/datum/reagent/ethanol/vesper
name = "Vesper"
id = "vesper"
description = "A dry martini, ice cold and well shaken."
taste_description = "lemony class"
color = "#cca01c" // rgb(204, 160, 28)
strength = 20
glass_name = "Vesper"
glass_desc = "A dry martini, ice cold and well shaken."
/datum/reagent/ethanol/rotgut
name = "Rotgut Fever Dream"
id = "rotgut"
description = "A heinous combination of clashing flavors."
taste_description = "plague and coldsweats"
color = "#3a6617" // rgb(58, 102, 23)
strength = 10
glass_name = "Rotgut Fever Dream"
glass_desc = "Why are you doing this to yourself?"
/datum/reagent/ethanol/voxdelight
name = "Vox's Delight"
id = "voxdelight"
description = "A dangerous combination of all things flammable. Why would you drink this?"
taste_description = "corrosive death"
color = "#7c003a" // rgb(124, 0, 58)
strength = 10
glass_name = "Vox's Delight"
glass_desc = "Not recommended if you enjoy having organs."
/datum/reagent/drink/voxdelight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien == IS_DIONA)
return
if(alien == IS_VOX)
M.adjustToxLoss(-0.5 * removed)
return
M.adjustToxLoss(3 * removed)
/datum/reagent/ethanol/screamingviking
name = "Screaming Viking"
id = "screamingviking"
description = "A boozy, citrus-packed brew."
taste_description = "the bartender's frustration"
color = "#c6c603" // rgb(198, 198, 3)
strength = 9
glass_name = "Screaming Viking"
glass_desc = "A boozy, citrus-packed brew."
/datum/reagent/ethanol/robustin
name = "Robustin"
id = "robustin"
description = "A bootleg brew of all the worst things on station."
taste_description = "cough syrup and fire"
color = "#6b0145" // rgb(107, 1, 69)
strength = 10
glass_name = "Robustin"
glass_desc = "A bootleg brew of all the worst things on station."
/datum/reagent/ethanol/virginsip
name = "Virgin Sip"
id = "virginsip"
description = "A perfect martini, watered down and ruined."
taste_description = "emasculation and failure"
color = "#2E6671" // rgb(46, 102, 113)
strength = 60
glass_name = "Virgin Sip"
glass_desc = "A perfect martini, watered down and ruined."
/datum/reagent/ethanol/jellyshot
name = "Jelly Shot"
id = "jellyshot"
description = "A thick and vibrant alcoholic gel, perfect for the night life."
taste_description = "thick, alcoholic cherry gel"
color = "#e00b0b" // rgb(224, 11, 11)
strength = 10
glass_name = "Jelly Shot"
glass_desc = "A thick and vibrant alcoholic gel, perfect for the night life."
/datum/reagent/ethanol/slimeshot
name = "Named Bullet"
id = "slimeshot"
description = "A thick and toxic slime jelly shot."
taste_description = "liquified organs"
color = "#6fa300" // rgb(111, 163, 0)
strength = 10
glass_name = "Named Bullet"
glass_desc = "A thick slime jelly shot. You can feel your death approaching."
/datum/reagent/drink/slimeshot/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien == IS_DIONA)
return
M.reagents.add_reagent("slimejelly", 0.25)
/datum/reagent/ethanol/cloverclub
name = "Clover Club"
id = "cloverclub"
description = "A light and refreshing rasberry cocktail."
taste_description = "sweet raspberry"
color = "#dd00a6" // rgb(221, 0, 166)
strength = 30
glass_name = "Clover Club"
glass_desc = "A light and refreshing rasberry cocktail."
/datum/reagent/ethanol/negroni
name = "Negroni"
id = "negroni"
description = "A dark, complicated mix of gin and campari... classy."
taste_description = "summer nights and wood smoke"
color = "#77000d" // rgb(119, 0, 13)
strength = 25
glass_name = "Negroni"
glass_desc = "A dark, complicated blend, perfect for relaxing nights by the fire."
/datum/reagent/ethanol/whiskeysour
name = "Whiskey Sour"
id = "whiskeysour"
description = "A smokey, refreshing lemoned whiskey."
taste_description = "smoke and citrus"
color = "#a0692e" // rgb(160, 105, 46)
strength = 20
glass_name = "Whisker Sour"
glass_desc = "A smokey, refreshing lemoned whiskey."
/datum/reagent/ethanol/oldfashioned
name = "Old Fashioned"
id = "oldfashioned"
description = "A classic mix of whiskey and sugar... simple and direct."
taste_description = "smokey, divine whiskey"
color = "#774410" // rgb(119, 68, 16)
strength = 15
glass_name = "Old Fashioned"
glass_desc = "A classic mix of whiskey and sugar... simple and direct."
/datum/reagent/ethanol/daiquiri
name = "Daiquiri"
id = "daiquiri"
description = "Refeshing rum and citrus. Time for a tropical get away."
taste_description = "refreshing citrus and rum"
color = "#d1ff49" // rgb(209, 255, 73
strength = 25
glass_name = "Daiquiri"
glass_desc = "Refeshing rum and citrus. Time for a tropical get away."
/datum/reagent/ethanol/mojito
name = "Mojito"
id = "mojito"
description = "Minty rum and citrus, made for sailing."
taste_description = "minty rum and lime"
color = "#d1ff49" // rgb(209, 255, 73
strength = 30
glass_name = "Mojito"
glass_desc = "Minty rum and citrus, made for sailing."
glass_special = list(DRINK_FIZZ)
/datum/reagent/ethanol/paloma
name = "Paloma"
id = "paloma"
description = "Tequila and citrus, iced just right..."
taste_description = "grapefruit and cold fire"
color = "#ffb070" // rgb(255, 176, 112)
strength = 20
glass_name = "Paloma"
glass_desc = "Tequila and citrus, iced just right..."
glass_special = list(DRINK_FIZZ)
/datum/reagent/ethanol/piscosour
name = "Pisco Sour"
id = "piscosour"
description = "Wine Brandy, Lemon, and a dream. A South American classic"
taste_description = "light sweetness"
color = "#f9f96b" // rgb(249, 249, 107)
strength = 30
glass_name = "Pisco Sour"
glass_desc = "South American bliss, served ice cold."
/datum/reagent/ethanol/coldfront
name = "Cold Front"
id = "coldfront"
description = "Minty, rich, and painfully cold. It's a blizzard in a cup."
taste_description = "biting cold"
color = "#ffe8c4" // rgb(255, 232, 196)
strength = 30
adj_temp = -20
targ_temp = 220 //Dangerous to certain races. Drink in moderation.
glass_name = "Cold Front"
glass_desc = "Minty, rich, and painfully cold. It's a blizzard in a cup."
/datum/reagent/ethanol/mintjulep
name = "Mint Julep"
id = "mintjulep"
description = "Minty and refreshing, perfect for a hot day."
taste_description = "refreshing mint"
color = "#bbfc8a" // rgb(187, 252, 138)
strength = 25
adj_temp = -5
glass_name = "Mint Julep"
glass_desc = "Minty and refreshing, perfect for a hot day."
@@ -298,6 +298,49 @@
power = 10
meltdose = 4
/datum/reagent/thermite/venom
name = "Pyrotoxin"
id = "thermite_v"
description = "A biologically produced compound capable of melting steel or other metals, similarly to thermite."
taste_description = "sweet chalk"
reagent_state = SOLID
color = "#673910"
touch_met = 50
/datum/reagent/thermite/venom/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.adjustFireLoss(3 * removed)
if(M.fire_stacks <= 1.5)
M.adjust_fire_stacks(0.15)
if(alien == IS_DIONA)
return
if(prob(10))
to_chat(M,"<span class='warning'>Your veins feel like they're on fire!</span>")
M.adjust_fire_stacks(0.1)
else if(prob(5))
M.IgniteMob()
to_chat(M,"<span class='critical'>Some of your veins rupture, the exposed blood igniting!</span>")
/datum/reagent/condensedcapsaicin/venom
name = "Irritant toxin"
id = "condensedcapsaicin_v"
description = "A biological agent that acts similarly to pepperspray. This compound seems to be particularly cruel, however, capable of permeating the barriers of blood vessels."
taste_description = "fire"
color = "#B31008"
/datum/reagent/condensedcapsaicin/venom/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
return
if(prob(50))
M.adjustToxLoss(0.5 * removed)
if(prob(50))
M.apply_effect(4, AGONY, 0)
if(prob(20))
to_chat(M,"<span class='danger'>You feel like your insides are burning!</span>")
else if(prob(20))
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!","rubs at their eyes!")]</span>")
else
M.eye_blurry = max(M.eye_blurry, 10)
/datum/reagent/lexorin
name = "Lexorin"
id = "lexorin"
@@ -313,11 +356,11 @@
if(alien == IS_SKRELL)
M.take_organ_damage(2.4 * removed, 0)
if(M.losebreath < 10)
M.losebreath++
M.AdjustLosebreath(1)
else
M.take_organ_damage(3 * removed, 0)
if(M.losebreath < 15)
M.losebreath++
M.AdjustLosebreath(1)
/datum/reagent/mutagen
name = "Unstable mutagen"
@@ -481,7 +524,7 @@
/datum/reagent/chloralhydrate/overdose(var/mob/living/carbon/M, var/alien, var/removed)
..()
M.losebreath = (min(M.losebreath + 1, 10))
M.SetLosebreath(10)
M.adjustOxyLoss(removed * overdose_mod)
/datum/reagent/chloralhydrate/beer2 //disguised as normal beer for use by emagged brobots
@@ -542,6 +585,21 @@
M.emote(pick("twitch", "drool", "moan", "gasp"))
return
/datum/reagent/serotrotium/venom
name = "Serotropic venom"
id = "serotrotium_v"
description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans. This appears to be a biologically produced form, resulting in a specifically toxic nature."
taste_description = "chalky bitterness"
/datum/reagent/serotrotium/venom/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
return
if(prob(30))
if(prob(25))
M.emote(pick("shiver", "blink_r"))
M.adjustBrainLoss(0.2 * removed)
return ..()
/datum/reagent/cryptobiolin
name = "Cryptobiolin"
id = "cryptobiolin"
+206
View File
@@ -1982,6 +1982,212 @@
required_reagents = list("sake" = 1, "melonliquor" = 1)
result_amount = 2
/datum/chemical_reaction/bitters
name = "Bitters"
id = "bitters"
result = "bitters"
required_reagents = list("mint" = 5)
catalysts = list("enzyme" = 5)
result_amount = 5
/datum/chemical_reaction/drinks/soemmerfire
name = "Soemmer Fire"
id = "soemmerfire"
result = "soemmerfire"
required_reagents = list("manhattan" = 2, "condensedcapsaicin" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/winebrandy
name = "Wine brandy"
id = "winebrandy"
result = "winebrandy"
required_reagents = list("wine" = 10)
catalysts = list("enzyme" = 10) //10u enzyme so it requires more than is usually added. Stops overlap with wine recipe
result_amount = 5
/datum/chemical_reaction/drinks/lovepotion
name = "Love Potion"
id = "lovepotion"
result = "lovepotion"
required_reagents = list("cream" = 1, "berryjuice" = 1, "sugar" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/morningafter
name = "Morning After"
id = "morningafter"
result = "morningafter"
required_reagents = list("sbiten" = 1, "coffee" = 5)
result_amount = 6
/datum/chemical_reaction/drinks/vesper
name = "Vesper"
id = "vesper"
result = "vesper"
required_reagents = list("gin" = 3, "vodka" = 1, "wine" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/rotgut
name = "Rotgut Fever Dream"
id = "rotgut"
result = "rotgut"
required_reagents = list("vodka" = 3, "rum" = 1, "whiskey" = 1, "cola" = 3)
result_amount = 8
/datum/chemical_reaction/drinks/entdraught
name = "Ent's Draught"
id = "entdraught"
result = "entdraught"
required_reagents = list("tonic" = 1, "holywater" = 1, "honey" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/voxdelight
name = "Vox's Delight"
id = "voxdelight"
result = "voxdelight"
required_reagents = list("phoron" = 3, "fuel" = 1, "water" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/screamingviking
name = "Screaming Viking"
id = "screamingviking"
result = "screamingviking"
required_reagents = list("vodka" = 1, "vermouth" = 1, "limejuice" = 1, "rum" = 1, "gin" = 1, "tonic" = 1)
result_amount = 6
/datum/chemical_reaction/drinks/vilelemon
name = "Vile Lemon"
id = "vilelemon"
result = "vilelemon"
required_reagents = list("lemonade" = 5, "spacemountainwind" = 1)
result_amount = 6
/datum/chemical_reaction/drinks/dreamcream
name = "Dream Cream"
id = "dreamcream"
result = "dreamcream"
required_reagents = list("milk" = 2, "cream" = 1, "honey" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/robustin
name = "Robustin"
id = "robustin"
result = "robustin"
required_reagents = list("antifreeze" = 1, "phoron" = 1, "fuel" = 1, "vodka" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/virginsip
name = "Virgin Sip"
id = "virginsip"
result = "virginsip"
required_reagents = list("driestmartini" = 1, "water" = 1)
result_amount = 2
/datum/chemical_reaction/drinks/chocoshake
name = "Chocolate Milkshake"
id = "chocoshake"
result = "chocoshake"
required_reagents = list("milkshake" = 1, "coco" = 1)
result_amount = 2
/datum/chemical_reaction/drinks/berryshake
name = "Berry Milkshake"
id = "berryshake"
result = "berryshake"
required_reagents = list("milkshake" = 1, "berryjuice" = 1)
result_amount = 2
/datum/chemical_reaction/drinks/coffeeshake
name = "Coffee Milkshake"
id = "coffeeshake"
result = "coffeeshake"
required_reagents = list("milkshake" = 1, "coffee" = 1)
result_amount = 2
/datum/chemical_reaction/drinks/jellyshot
name = "Jelly Shot"
id = "jellyshot"
result = "jellyshot"
required_reagents = list("cherryjelly" = 4, "vodka" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/slimeshot
name = "Named Bullet"
id = "slimeshot"
result = "slimeshot"
required_reagents = list("slimejelly" = 4, "vodka" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/negroni
name = "Negroni"
id = "negroni"
result = "negroni"
required_reagents = list("gin" = 1, "bitters" = 1, "vermouth" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/cloverclub
name = "Clover Club"
id = "cloverclub"
result = "cloverclub"
required_reagents = list("berryjuice" = 1, "lemonjuice" = 1, "gin" = 3)
result_amount = 5
/datum/chemical_reaction/drinks/oldfashioned
name = "Old Fashioned"
id = "oldfashioned"
result = "oldfashioned"
required_reagents = list("whiskey" = 3, "bitters" = 1, "sugar" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/whiskeysour
name = "Whiskey Sour"
id = "whiskeysour"
result = "whiskeysour"
required_reagents = list("whiskey" = 2, "lemonjuice" = 1, "sugar" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/daiquiri
name = "Daiquiri"
id = "daiquiri"
result = "daiquiri"
required_reagents = list("rum" = 3, "limejuice" = 2, "sugar" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/mintjulep
name = "Mint Julep"
id = "mintjulep"
result = "mintjulep"
required_reagents = list("whiskey" = 2, "water" = 1, "mint" = 1)
result_amount = 4
/datum/chemical_reaction/drinks/paloma
name = "Paloma"
id = "paloma"
result = "paloma"
required_reagents = list("orangejuice" = 1, "sodawater" = 1, "tequilla" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/mojito
name = "Mojito"
id = "mojito"
result = "mojito"
required_reagents = list("rum" = 3, "limejuice" = 1, "mint" = 1)
result_amount = 5
/datum/chemical_reaction/drinks/piscosour
name = "Pisco Sour"
id = "piscosour"
result = "piscosour"
required_reagents = list("winebrandy" = 1, "lemonjuice" = 1, "sugar" = 1)
result_amount = 3
/datum/chemical_reaction/drinks/coldfront
name = "Cold Front"
id = "coldfront"
result = "coldfront"
required_reagents = list("icecoffee" = 1, "whiskey" = 1, "mint" = 1)
result_amount = 3
//R-UST Port
/datum/chemical_reaction/hyrdophoron
name = "Hydrophoron"
@@ -44,6 +44,7 @@
cognac spawn_reagent = "cognac"
ale spawn_reagent = "ale"
mead spawn_reagent = "mead"
bitters spawn_reagent = "bitters"
// Bar, soft
ice spawn_reagent = "ice"
@@ -52,7 +52,7 @@
/obj/machinery/chemical_dispenser/bar_alc
dispense_reagents = list(
"lemon_lime", "sugar", "orangejuice", "limejuice", "sodawater", "tonic", "beer", "kahlua",
"whiskey", "wine", "vodka", "gin", "rum", "tequilla", "vermouth", "cognac", "ale", "mead"
"whiskey", "wine", "vodka", "gin", "rum", "tequilla", "vermouth", "cognac", "ale", "mead", "bitters"
)
/obj/machinery/chemical_dispenser/bar_coffee
+2 -1
View File
@@ -74,7 +74,8 @@
/obj/item/weapon/reagent_containers/chem_disp_cartridge/vermouth,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/cognac,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/ale,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/mead
/obj/item/weapon/reagent_containers/chem_disp_cartridge/mead,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/bitters
)
cost = 50
containertype = /obj/structure/closet/crate/secure
+2 -2
View File
@@ -101,7 +101,7 @@
user << "<span class='warning'>\The [blocked] is in the way!</span>"
return
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) //puts a limit on how fast people can eat/drink things
user.setClickCooldown(user.get_attack_speed(src)) //puts a limit on how fast people can eat/drink things
self_feed_message(user)
reagents.trans_to_mob(user, issmall(user) ? ceil(amount_per_transfer_from_this/2) : amount_per_transfer_from_this, CHEM_INGEST)
feed_sound(user)
@@ -119,7 +119,7 @@
other_feed_message_start(user, target)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
user.setClickCooldown(user.get_attack_speed(src))
if(!do_mob(user, target))
return
@@ -32,7 +32,7 @@
desc = "An advanced nanite and chemical synthesizer and injection system, designed for heavy-duty medical equipment. This type is capable of safely bypassing \
thick materials that other hyposprays would struggle with."
bypass_protection = TRUE // Because mercs tend to be in spacesuits.
reagent_ids = list("healing_nanites", "hyperzine", "tramadol", "oxycodone", "spaceacillin", "peridaxon", "osteodaxon", "myelamine")
reagent_ids = list("healing_nanites", "hyperzine", "tramadol", "oxycodone", "spaceacillin", "peridaxon", "osteodaxon", "myelamine", "synthblood")
/obj/item/weapon/reagent_containers/borghypo/New()
..()
@@ -132,7 +132,7 @@
recharge_time = 3
volume = 60
possible_transfer_amounts = list(5, 10, 20, 30)
reagent_ids = list("ale", "beer", "berryjuice", "coffee", "cognac", "cola", "dr_gibb", "egg", "gin", "gingerale", "hot_coco", "ice", "icetea", "kahlua", "lemonjuice", "lemon_lime", "limejuice", "mead", "milk", "mint", "orangejuice", "rum", "sake", "sodawater", "soymilk", "space_up", "spacemountainwind", "specialwhiskey", "sugar", "tea", "tequilla", "tomatojuice", "tonic", "vermouth", "vodka", "water", "watermelonjuice", "whiskey", "wine")
reagent_ids = list("ale", "beer", "berryjuice", "bitters", "coffee", "cognac", "cola", "dr_gibb", "egg", "gin", "gingerale", "hot_coco", "ice", "icetea", "kahlua", "lemonjuice", "lemon_lime", "limejuice", "mead", "milk", "mint", "orangejuice", "rum", "sake", "sodawater", "soymilk", "space_up", "spacemountainwind", "specialwhiskey", "sugar", "tea", "tequilla", "tomatojuice", "tonic", "vermouth", "vodka", "water", "watermelonjuice", "whiskey", "wine")
/obj/item/weapon/reagent_containers/borghypo/service/attack(var/mob/M, var/mob/user)
return
@@ -12,6 +12,7 @@
new /obj/item/weapon/reagent_containers/food/drinks/glass2/pint(src)
new /obj/item/weapon/reagent_containers/food/drinks/glass2/mug(src)
new /obj/item/weapon/reagent_containers/food/drinks/glass2/wine(src)
new /obj/item/weapon/reagent_containers/food/drinks/metaglass(src)
/obj/item/weapon/storage/box/glasses
name = "box of glasses"
@@ -55,6 +56,10 @@
name = "box of wine glasses"
glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/wine
/obj/item/weapon/storage/box/glasses/meta
name = "box of half-pint metamorphic glasses"
glass_type = /obj/item/weapon/reagent_containers/food/drinks/metaglass
/obj/item/weapon/storage/box/glass_extras
name = "box of cocktail garnishings"
var/extra_type = /obj/item/weapon/glass_extra
@@ -0,0 +1,502 @@
/obj/item/weapon/reagent_containers/food/drinks/metaglass
name = "metamorphic glass"
desc = "This glass changes shape and form depending on the drink inside... fancy!"
icon_state = "glass_empty"
amount_per_transfer_from_this = 5
volume = 30
unacidable = 1 //glass
center_of_mass = list("x"=16, "y"=10)
matter = list("glass" = 500)
icon = 'icons/obj/drinks.dmi'
/obj/item/weapon/reagent_containers/food/drinks/metaglass/on_reagent_change()
if (reagents.reagent_list.len > 0)
var/datum/reagent/R = reagents.get_master_reagent()
if(R.glass_icon_state)
icon_state = R.glass_icon_state
else
icon_state = "glass_brown"
if(R.glass_name)
name = R.glass_name
else
name = "Glass of.. what?"
if(R.glass_desc)
desc = R.glass_desc
else
desc = "You can't really tell what this is."
if(R.glass_center_of_mass)
center_of_mass = R.glass_center_of_mass
else
center_of_mass = list("x"=16, "y"=10)
if(R.price_tag)
price_tag = R.price_tag
else
price_tag = null
else
icon_state = "glass_empty"
name = "metamorphic glass"
desc = "This glass changes shape and form depending on the drink inside... fancy!"
center_of_mass = list("x"=16, "y"=10)
return
/*
Drinks Data
*/
/datum/reagent
var/glass_icon_state = null
var/glass_center_of_mass = null
/datum/reagent/adminordrazine
glass_icon_state = "golden_cup"
/datum/reagent/chloralhydrate/beer2
glass_icon_state = "beerglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/blood
glass_icon_state = "glass_red"
/datum/reagent/water
glass_icon_state = "glass_clear"
/datum/reagent/fuel
glass_icon_state = "dr_gibb_glass"
/datum/reagent/ethanol
glass_icon_state = "glass_clear"
/datum/reagent/sugar
glass_icon_state = "iceglass"
/datum/reagent/drink/juice/banana
glass_icon_state = "banana"
/datum/reagent/drink/juice/berry
glass_icon_state = "berryjuice"
/datum/reagent/drink/juice/carrot
glass_icon_state = "carrotjuice"
/datum/reagent/drink/juice/
glass_icon_state = "grapejuice"
/datum/reagent/drink/juice/lemon
glass_icon_state = "lemonjuice"
/datum/reagent/drink/juice/lime
glass_icon_state = "glass_green"
/datum/reagent/drink/juice/orange
glass_icon_state = "glass_orange"
/datum/reagent/toxin/poisonberryjuice
glass_icon_state = "poisonberryjuice"
/datum/reagent/drink/juice/potato
glass_icon_state = "glass_brown"
/datum/reagent/drink/juice/tomato
glass_icon_state = "glass_red"
/datum/reagent/drink/juice/watermelon
glass_icon_state = "glass_red"
/datum/reagent/drink/milk
glass_icon_state = "glass_white"
/datum/reagent/drink/chocolate
glass_icon_state = "glass_brown"
/datum/reagent/drink/tea
glass_icon_state = "bigteacup"
/datum/reagent/drink/tea/icetea
glass_icon_state = "icedteaglass"
glass_center_of_mass = list("x"=15, "y"=10)
/datum/reagent/drink/coffee
glass_icon_state = "hot_coffee"
/datum/reagent/drink/icecoffee
glass_icon_state = "icedcoffeeglass"
/datum/reagent/drink/soy_latte
glass_icon_state = "soy_latte"
glass_center_of_mass = list("x"=15, "y"=9)
/datum/reagent/drink/cafe_latte
glass_icon_state = "cafe_latte"
glass_center_of_mass = list("x"=15, "y"=9)
/datum/reagent/drink/hot_coco
glass_icon_state = "chocolateglass"
/datum/reagent/drink/soda/sodawater
glass_icon_state = "glass_clear"
/datum/reagent/drink/soda/grapesoda
glass_icon_state = "gsodaglass"
/datum/reagent/drink/soda/tonic
glass_icon_state = "glass_clear"
/datum/reagent/drink/soda/lemonade
glass_icon_state = "lemonadeglass"
/datum/reagent/drink/soda/kiraspecial
glass_icon_state = "kiraspecial"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/drink/soda/brownstar
glass_icon_state = "brownstar"
/datum/reagent/drink/milkshake
glass_icon_state = "milkshake"
glass_center_of_mass = list("x"=16, "y"=7)
/datum/reagent/drink/rewriter
glass_icon_state = "rewriter"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/drink/soda/nuka_cola
glass_icon_state = "nuka_colaglass"
glass_center_of_mass = list("x"=16, "y"=6)
/datum/reagent/drink/grenadine
glass_icon_state = "grenadineglass"
glass_center_of_mass = list("x"=17, "y"=6)
/datum/reagent/drink/soda/space_cola
glass_icon_state = "glass_brown"
/datum/reagent/drink/soda/spacemountainwind
glass_icon_state = "Space_mountain_wind_glass"
/datum/reagent/drink/soda/dr_gibb
glass_icon_state = "dr_gibb_glass"
/datum/reagent/drink/soda/space_up
glass_icon_state = "space-up_glass"
/datum/reagent/drink/soda/lemon_lime
glass_icon_state = "lemonlime"
/datum/reagent/drink/doctor_delight
glass_icon_state = "doctorsdelightglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/drink/ice
glass_icon_state = "iceglass"
/datum/reagent/drink/nothing
glass_icon_state = "nothing"
/datum/reagent/ethanol/absinthe
glass_icon_state = "absintheglass"
glass_center_of_mass = list("x"=16, "y"=5)
/datum/reagent/ethanol/ale
glass_icon_state = "aleglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/beer
glass_icon_state = "beerglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/bluecuracao
glass_icon_state = "curacaoglass"
glass_center_of_mass = list("x"=16, "y"=5)
/datum/reagent/ethanol/cognac
glass_icon_state = "cognacglass"
glass_center_of_mass = list("x"=16, "y"=6)
/datum/reagent/ethanol/deadrum
glass_icon_state = "rumglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/gin
glass_icon_state = "ginvodkaglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/coffee/kahlua
glass_icon_state = "kahluaglass"
glass_center_of_mass = list("x"=15, "y"=7)
/datum/reagent/ethanol/melonliquor
glass_icon_state = "emeraldglass"
glass_center_of_mass = list("x"=16, "y"=5)
/datum/reagent/ethanol/rum
glass_icon_state = "rumglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/sake
glass_icon_state = "ginvodkaglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/tequila
glass_icon_state = "tequillaglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/thirteenloko
glass_icon_state = "thirteen_loko_glass"
/datum/reagent/ethanol/vermouth
glass_icon_state = "vermouthglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/vodka
glass_icon_state = "ginvodkaglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/whiskey
glass_icon_state = "whiskeyglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/wine
glass_icon_state = "wineglass"
glass_center_of_mass = list("x"=15, "y"=7)
/datum/reagent/ethanol/acid_spit
glass_icon_state = "acidspitglass"
glass_center_of_mass = list("x"=16, "y"=7)
/datum/reagent/ethanol/alliescocktail
glass_icon_state = "alliescocktail"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/aloe
glass_icon_state = "aloe"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/amasec
glass_icon_state = "amasecglass"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/andalusia
glass_icon_state = "andalusia"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/antifreeze
glass_icon_state = "antifreeze"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/atomicbomb
glass_icon_state = "atomicbombglass"
glass_center_of_mass = list("x"=15, "y"=7)
/datum/reagent/ethanol/b52
glass_icon_state = "b52glass"
/datum/reagent/ethanol/bahama_mama
glass_icon_state = "bahama_mama"
glass_center_of_mass = list("x"=16, "y"=5)
/datum/reagent/ethanol/bananahonk
glass_icon_state = "bananahonkglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/barefoot
glass_icon_state = "b&p"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/beepsky_smash
glass_icon_state = "beepskysmashglass"
glass_center_of_mass = list("x"=18, "y"=10)
/datum/reagent/ethanol/bilk
glass_icon_state = "glass_brown"
/datum/reagent/ethanol/black_russian
glass_icon_state = "blackrussianglass"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/bloody_mary
glass_icon_state = "bloodymaryglass"
/datum/reagent/ethanol/booger
glass_icon_state = "booger"
/datum/reagent/ethanol/coffee/brave_bull
glass_icon_state = "bravebullglass"
glass_center_of_mass = list("x"=15, "y"=8)
/datum/reagent/ethanol/changelingsting
glass_icon_state = "changelingsting"
/datum/reagent/ethanol/martini
glass_icon_state = "martiniglass"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/cuba_libre
glass_icon_state = "cubalibreglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/demonsblood
glass_icon_state = "demonsblood"
glass_center_of_mass = list("x"=16, "y"=2)
/datum/reagent/ethanol/devilskiss
glass_icon_state = "devilskiss"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/driestmartini
glass_icon_state = "driestmartiniglass"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/ginfizz
glass_icon_state = "ginfizzglass"
glass_center_of_mass = list("x"=16, "y"=7)
/datum/reagent/ethanol/grog
glass_icon_state = "grogglass"
/datum/reagent/ethanol/erikasurprise
glass_icon_state = "erikasurprise"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/gargle_blaster
glass_icon_state = "gargleblasterglass"
glass_center_of_mass = list("x"=17, "y"=6)
/datum/reagent/ethanol/gintonic
glass_icon_state = "gintonicglass"
/datum/reagent/ethanol/goldschlager
glass_icon_state = "ginvodkaglass"
glass_center_of_mass = list("x"=16, "y"=12)
/datum/reagent/ethanol/hippies_delight
glass_icon_state = "hippiesdelightglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/hooch
glass_icon_state = "glass_brown2"
/datum/reagent/ethanol/iced_beer
glass_icon_state = "iced_beerglass"
glass_center_of_mass = list("x"=16, "y"=7)
/datum/reagent/ethanol/irishcarbomb
glass_icon_state = "irishcarbomb"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/coffee/irishcoffee
glass_icon_state = "irishcoffeeglass"
glass_center_of_mass = list("x"=15, "y"=10)
/datum/reagent/ethanol/irish_cream
glass_icon_state = "irishcreamglass"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/longislandicedtea
glass_icon_state = "longislandicedteaglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/manhattan
glass_icon_state = "manhattanglass"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/manhattan_proj
glass_icon_state = "proj_manhattanglass"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/manly_dorf
glass_icon_state = "manlydorfglass"
/datum/reagent/ethanol/margarita
glass_icon_state = "margaritaglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/mead
glass_icon_state = "meadglass"
glass_center_of_mass = list("x"=17, "y"=10)
/datum/reagent/ethanol/moonshine
glass_icon_state = "glass_clear"
/datum/reagent/ethanol/neurotoxin
glass_icon_state = "neurotoxinglass"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/patron
glass_icon_state = "patronglass"
glass_center_of_mass = list("x"=7, "y"=8)
/datum/reagent/ethanol/pwine
glass_icon_state = "pwineglass"
glass_center_of_mass = list("x"=16, "y"=5)
/datum/reagent/ethanol/red_mead
glass_icon_state = "red_meadglass"
glass_center_of_mass = list("x"=17, "y"=10)
/datum/reagent/ethanol/sbiten
glass_icon_state = "sbitenglass"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/screwdrivercocktail
glass_icon_state = "screwdriverglass"
glass_center_of_mass = list("x"=15, "y"=10)
/datum/reagent/ethanol/silencer
glass_icon_state = "silencerglass"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/singulo
glass_icon_state = "singulo"
glass_center_of_mass = list("x"=17, "y"=4)
/datum/reagent/ethanol/snowwhite
glass_icon_state = "snowwhite"
glass_center_of_mass = list("x"=16, "y"=8)
/datum/reagent/ethanol/suidream
glass_icon_state = "sdreamglass"
glass_center_of_mass = list("x"=16, "y"=5)
/datum/reagent/ethanol/syndicatebomb
glass_icon_state = "syndicatebomb"
glass_center_of_mass = list("x"=16, "y"=4)
/datum/reagent/ethanol/tequilla_sunrise
glass_icon_state = "tequillasunriseglass"
/datum/reagent/ethanol/threemileisland
glass_icon_state = "threemileislandglass"
glass_center_of_mass = list("x"=16, "y"=2)
/datum/reagent/ethanol/toxins_special
glass_icon_state = "toxinsspecialglass"
/datum/reagent/ethanol/vodkamartini
glass_icon_state = "martiniglass"
glass_center_of_mass = list("x"=17, "y"=8)
/datum/reagent/ethanol/vodkatonic
glass_icon_state = "vodkatonicglass"
glass_center_of_mass = list("x"=16, "y"=7)
/datum/reagent/ethanol/white_russian
glass_icon_state = "whiterussianglass"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/whiskey_cola
glass_icon_state = "whiskeycolaglass"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/whiskeysoda
glass_icon_state = "whiskeysodaglass2"
glass_center_of_mass = list("x"=16, "y"=9)
/datum/reagent/ethanol/specialwhiskey
glass_icon_state = "whiskeyglass"
glass_center_of_mass = list("x"=16, "y"=12)
@@ -59,6 +59,7 @@ var/list/lunchables_drink_reagents_ = list(/datum/reagent/drink/nothing,
/datum/reagent/drink/hell_ramen,
/datum/reagent/drink/hot_ramen,
/datum/reagent/drink/soda/nuka_cola)
// This default list is a bit different, it contains items we don't want
var/list/lunchables_ethanol_reagents_ = list(/datum/reagent/ethanol/acid_spit,
@@ -72,7 +73,10 @@ var/list/lunchables_ethanol_reagents_ = list(/datum/reagent/ethanol/acid_spit,
/datum/reagent/ethanol/neurotoxin,
/datum/reagent/ethanol/pwine,
/datum/reagent/ethanol/threemileisland,
/datum/reagent/ethanol/toxins_special)
/datum/reagent/ethanol/toxins_special,
/datum/reagent/ethanol/voxdelight,
/datum/reagent/ethanol/soemmerfire,
/datum/reagent/ethanol/slimeshot)
/proc/lunchables_lunches()
if(!(lunchables_lunches_[lunchables_lunches_[1]]))
@@ -29,7 +29,8 @@
//Placeholder for effect that trigger on eating that aren't tied to reagents.
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M)
if(!usr) return
if(!usr)
usr = M
if(!reagents.total_volume)
M.visible_message("<span class='notice'>[M] finishes eating \the [src].</span>","<span class='notice'>You finish eating \the [src].</span>")
usr.drop_from_inventory(src) //so icons update :[
@@ -69,7 +70,7 @@
return
// Vorestation edits in this section.
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) //puts a limit on how fast people can eat/drink things
user.setClickCooldown(user.get_attack_speed(src)) //puts a limit on how fast people can eat/drink things
if (fullness <= 50)
M << "<span class='danger'>You hungrily chew out a piece of [src] and gobble it!</span>"
if (fullness > 50 && fullness <= 150)
@@ -115,7 +116,7 @@
return 0*/
user.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>") // Vorestation edit
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
user.setClickCooldown(user.get_attack_speed(src))
if(!do_mob(user, M)) return
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]</font>")
@@ -238,7 +239,7 @@
return
user.visible_message("<b>[user]</b> nibbles away at \the [src].","You nibble away at \the [src].")
bitecount++
if(reagents && user.reagents)
if(reagents)
reagents.trans_to_mob(user, bitesize, CHEM_INGEST)
spawn(5)
if(!src && !user.client)
@@ -54,62 +54,72 @@
if(!..(user, 2))
return
if(reagents && reagents.reagent_list.len)
user << "<span class='notice'>It contains [reagents.total_volume] units of liquid.</span>"
to_chat(user, "<span class='notice'>It contains [reagents.total_volume] units of liquid.</span>")
else
user << "<span class='notice'>It is empty.</span>"
to_chat(user, "<span class='notice'>It is empty.</span>")
if(!is_open_container())
user << "<span class='notice'>Airtight lid seals it completely.</span>"
to_chat(user, "<span class='notice'>Airtight lid seals it completely.</span>")
/obj/item/weapon/reagent_containers/glass/attack_self()
..()
if(is_open_container())
usr << "<span class = 'notice'>You put the lid on \the [src].</span>"
to_chat(usr, "<span class = 'notice'>You put the lid on \the [src].</span>")
flags ^= OPENCONTAINER
else
usr << "<span class = 'notice'>You take the lid off \the [src].</span>"
to_chat(usr, "<span class = 'notice'>You take the lid off \the [src].</span>")
flags |= OPENCONTAINER
update_icon()
/obj/item/weapon/reagent_containers/glass/do_surgery(mob/living/carbon/M, mob/living/user)
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
return ..()
afterattack(M, user, 1)
return 1
/obj/item/weapon/reagent_containers/glass/attack(mob/M as mob, mob/user as mob, def_zone)
if(force && !(flags & NOBLUDGEON) && user.a_intent == I_HURT)
return ..()
if(standard_feed_mob(user, M))
return
return 0
/obj/item/weapon/reagent_containers/glass/standard_feed_mob(var/mob/user, var/mob/target)
if(!is_open_container())
to_chat(user, "<span class='notice'>You need to open \the [src] first.</span>")
return 1
if(user.a_intent == I_HURT)
return 1
return ..()
/obj/item/weapon/reagent_containers/glass/self_feed_message(var/mob/user)
to_chat(user, "<span class='notice'>You swallow a gulp from \the [src].</span>")
/obj/item/weapon/reagent_containers/glass/afterattack(var/obj/target, var/mob/user, var/proximity)
if(!is_open_container() || !proximity) //Is the container open & are they next to whatever they're clicking?
return //If not, do nothing.
return 1 //If not, do nothing.
for(var/type in can_be_placed_into) //Is it something it can be placed into?
if(istype(target, type))
return
return 1
if(standard_dispenser_refill(user, target)) //Are they clicking a water tank/some dispenser?
return
return 1
if(standard_pour_into(user, target)) //Pouring into another beaker?
return
if(user.a_intent == I_HURT) //Harm intent?
if(standard_splash_mob(user, target)) //If harm intent and can splash a mob, go ahead.
return
if(reagents && reagents.total_volume) //Otherwise? Splash the floor.
user << "<span class='notice'>You splash the solution onto [target].</span>"
if(user.a_intent == I_HURT)
if(standard_splash_mob(user,target))
return 1
if(reagents && reagents.total_volume)
to_chat(user, "<span class='notice'>You splash the solution onto [target].</span>") //They are on harm intent, aka wanting to spill it.
reagents.splash(target, reagents.total_volume)
return
return 1
..()
/obj/item/weapon/reagent_containers/glass/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen))
var/tmp_label = sanitizeSafe(input(user, "Enter a label for [name]", "Label", label_text), MAX_NAME_LEN)
if(length(tmp_label) > 50)
user << "<span class='notice'>The label can be at most 50 characters long.</span>"
to_chat(user, "<span class='notice'>The label can be at most 50 characters long.</span>")
else if(length(tmp_label) > 10)
user << "<span class='notice'>You set the label.</span>"
to_chat(user, "<span class='notice'>You set the label.</span>")
label_text = tmp_label
update_name_label()
else
user << "<span class='notice'>You set the label to \"[tmp_label]\".</span>"
to_chat(user, "<span class='notice'>You set the label to \"[tmp_label]\".</span>")
label_text = tmp_label
update_name_label()
if(istype(W,/obj/item/weapon/storage/bag))
@@ -255,10 +265,10 @@
return
else if(istype(D, /obj/item/weapon/mop) || istype(D, /obj/item/weapon/soap) || istype(D, /obj/item/weapon/reagent_containers/glass/rag)) //VOREStation Edit - "Allows soap and rags to be used on buckets"
if(reagents.total_volume < 1)
user << "<span class='warning'>\The [src] is empty!</span>"
to_chat(user, "<span class='warning'>\The [src] is empty!</span>")
else
reagents.trans_to_obj(D, 5)
user << "<span class='notice'>You wet \the [D] in \the [src].</span>"
to_chat(user, "<span class='notice'>You wet \the [D] in \the [src].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
return
else
@@ -296,10 +306,10 @@ obj/item/weapon/reagent_containers/glass/bucket/wood
return
else if(istype(D, /obj/item/weapon/mop))
if(reagents.total_volume < 1)
user << "<span class='warning'>\The [src] is empty!</span>"
to_chat(user, "<span class='warning'>\The [src] is empty!</span>")
else
reagents.trans_to_obj(D, 5)
user << "<span class='notice'>You wet \the [D] in \the [src].</span>"
to_chat(user, "<span class='notice'>You wet \the [D] in \the [src].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
return
else
@@ -51,7 +51,7 @@
user.visible_message("<span class='warning'>[user] attempts to force [M] to swallow \the [src].</span>")
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
user.setClickCooldown(user.get_attack_speed(src))
if(!do_mob(user, M))
return
@@ -198,12 +198,4 @@
/obj/item/weapon/reagent_containers/spray/plantbgone/New()
..()
reagents.add_reagent("plantbgone", 100)
/obj/item/weapon/reagent_containers/spray/plantbgone/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
if(!proximity) return
if(istype(A, /obj/effect/blob)) // blob damage in blob code
return
..()
reagents.add_reagent("plantbgone", 100)
+70 -62
View File
@@ -15,53 +15,52 @@
attackby(obj/item/weapon/W as obj, mob/user as mob)
return
New()
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
if (!possible_transfer_amounts)
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
..()
/obj/structure/reagent_dispensers/New()
var/datum/reagents/R = new/datum/reagents(5000)
reagents = R
R.my_atom = src
if (!possible_transfer_amounts)
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
..()
examine(mob/user)
if(!..(user, 2))
/obj/structure/reagent_dispensers/examine(mob/user)
if(!..(user, 2))
return
user << "<span class='notice'>It contains:</span>"
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
user << "<span class='notice'>[R.volume] units of [R.name]</span>"
else
user << "<span class='notice'>Nothing.</span>"
/obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
set category = "Object"
set src in view(1)
var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
if (N)
amount_per_transfer_from_this = N
/obj/structure/reagent_dispensers/ex_act(severity)
switch(severity)
if(1.0)
qdel(src)
return
user << "<span class='notice'>It contains:</span>"
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
user << "<span class='notice'>[R.volume] units of [R.name]</span>"
else
user << "<span class='notice'>Nothing.</span>"
verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
set category = "Object"
set src in view(1)
var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
if (N)
amount_per_transfer_from_this = N
ex_act(severity)
switch(severity)
if(1.0)
if(2.0)
if (prob(50))
new /obj/effect/effect/water(src.loc)
qdel(src)
return
if(2.0)
if (prob(50))
new /obj/effect/effect/water(src.loc)
qdel(src)
return
if(3.0)
if (prob(5))
new /obj/effect/effect/water(src.loc)
qdel(src)
return
else
return
if(3.0)
if (prob(5))
new /obj/effect/effect/water(src.loc)
qdel(src)
return
else
return
/obj/structure/reagent_dispensers/blob_act()
qdel(src)
@@ -72,16 +71,19 @@
icon = 'icons/obj/objects.dmi'
icon_state = "watertank"
amount_per_transfer_from_this = 10
New()
..()
reagents.add_reagent("water",1000)
/obj/structure/reagent_dispensers/watertank/high/New()
/obj/structure/reagent_dispensers/watertank/New()
..()
reagents.add_reagent("water", 1000)
/obj/structure/reagent_dispensers/watertank/high
name = "high-capacity water tank"
desc = "A highly-pressurized water tank made to hold vast amounts of water.."
icon_state = "watertank_high"
/obj/structure/reagent_dispensers/watertank/high/New()
..()
reagents.add_reagent("water",4000)
reagents.add_reagent("water", 4000)
/obj/structure/reagent_dispensers/fueltank
name = "fueltank"
@@ -91,9 +93,10 @@
amount_per_transfer_from_this = 10
var/modded = 0
var/obj/item/device/assembly_holder/rig = null
New()
..()
reagents.add_reagent("fuel",1000)
/obj/structure/reagent_dispensers/fueltank/New()
..()
reagents.add_reagent("fuel",1000)
/obj/structure/reagent_dispensers/fueltank/examine(mob/user)
if(!..(user, 2))
@@ -160,6 +163,9 @@
/obj/structure/reagent_dispensers/fueltank/ex_act()
explode()
/obj/structure/reagent_dispensers/fueltank/blob_act()
explode()
/obj/structure/reagent_dispensers/fueltank/proc/explode()
if (reagents.total_volume > 500)
explosion(src.loc,1,2,4)
@@ -197,9 +203,10 @@
anchored = 1
density = 0
amount_per_transfer_from_this = 45
New()
..()
reagents.add_reagent("condensedcapsaicin",1000)
/obj/structure/reagent_dispensers/peppertank/New()
..()
reagents.add_reagent("condensedcapsaicin",1000)
/obj/structure/reagent_dispensers/water_cooler
@@ -343,9 +350,10 @@
icon = 'icons/obj/objects.dmi'
icon_state = "beertankTEMP"
amount_per_transfer_from_this = 10
New()
..()
reagents.add_reagent("beer",1000)
/obj/structure/reagent_dispensers/beerkeg/New()
..()
reagents.add_reagent("beer",1000)
/obj/structure/reagent_dispensers/beerkeg/fakenuke
name = "nuclear beer keg"
@@ -361,9 +369,9 @@
amount_per_transfer_from_this = 10
anchored = 1
New()
..()
reagents.add_reagent("virusfood", 1000)
/obj/structure/reagent_dispensers/virusfood/New()
..()
reagents.add_reagent("virusfood", 1000)
/obj/structure/reagent_dispensers/acid
name = "Sulphuric Acid Dispenser"
@@ -373,6 +381,6 @@
amount_per_transfer_from_this = 10
anchored = 1
New()
..()
reagents.add_reagent("sacid", 1000)
/obj/structure/reagent_dispensers/acid/New()
..()
reagents.add_reagent("sacid", 1000)