mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@843 316c924e-a436-60f5-8080-3fe189b3f50e
2765 lines
84 KiB
Plaintext
2765 lines
84 KiB
Plaintext
// Bottles transfer 50 units
|
|
// Beakers transfer 50 units
|
|
// Syringes transfer 15 units
|
|
// Droppers transfer 5 units
|
|
|
|
//BUG!!!: reactions on splashing etc cause errors because stuff gets deleted before it executes.
|
|
// Bandaid fix using spawn - very ugly, need to fix this.
|
|
|
|
///////////////////////////////Grenades
|
|
/obj/item/weapon/chem_grenade
|
|
name = "metal casing"
|
|
icon_state = "chemg1"
|
|
icon = 'chemical.dmi'
|
|
item_state = "flashbang"
|
|
w_class = 2.0
|
|
force = 2.0
|
|
var/stage = 0
|
|
var/state = 0
|
|
var/list/beakers = new/list()
|
|
throw_speed = 4
|
|
throw_range = 20
|
|
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT | USEDELAY
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(1000)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W,/obj/item/assembly/time_ignite) && !stage)
|
|
user << "\blue You add [W] to the metal casing."
|
|
playsound(src.loc, 'Screwdriver2.ogg', 25, -3)
|
|
del(W) //Okay so we're not really adding anything here. cheating.
|
|
icon_state = "chemg2"
|
|
name = "unsecured grenade"
|
|
stage = 1
|
|
else if(istype(W,/obj/item/weapon/screwdriver) && stage == 1)
|
|
if(beakers.len)
|
|
user << "\blue You lock the assembly."
|
|
playsound(src.loc, 'Screwdriver.ogg', 25, -3)
|
|
name = "grenade"
|
|
icon_state = "chemg3"
|
|
stage = 2
|
|
else
|
|
user << "\red You need to add at least one beaker before locking the assembly."
|
|
else if (istype(W,/obj/item/weapon/reagent_containers/glass/beaker) && stage == 1)
|
|
if(beakers.len == 2)
|
|
user << "\red The grenade can not hold more containers."
|
|
return
|
|
else
|
|
if(W.reagents.total_volume)
|
|
user << "\blue You add \the [W] to the assembly."
|
|
user.drop_item()
|
|
W.loc = src
|
|
beakers += W
|
|
else
|
|
user << "\red \the [W] is empty."
|
|
|
|
afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
|
if (istype(target, /obj/item/weapon/storage)) return ..()
|
|
if (!src.state && stage == 2)
|
|
user << "\red You prime the grenade! 3 seconds!"
|
|
message_admins("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
|
|
src.state = 1
|
|
src.icon_state = "chemg4"
|
|
playsound(src.loc, 'armbomb.ogg', 75, 1, -3)
|
|
spawn(30)
|
|
explode()
|
|
user.drop_item()
|
|
var/t = (isturf(target) ? target : target.loc)
|
|
walk_towards(src, t, 3)
|
|
|
|
attack_self(mob/user as mob)
|
|
if (!src.state && stage == 2)
|
|
user << "\red You prime the grenade! 3 seconds!"
|
|
message_admins("[key_name_admin(user)] used a chemistry grenade ([src.name]).")
|
|
src.state = 1
|
|
src.icon_state = "chemg4"
|
|
playsound(src.loc, 'armbomb.ogg', 75, 1, -3)
|
|
spawn(30)
|
|
explode()
|
|
|
|
attack_hand()
|
|
walk(src,0)
|
|
return ..()
|
|
attack_paw()
|
|
return attack_hand()
|
|
|
|
proc
|
|
explode()
|
|
var/has_reagents = 0
|
|
for(var/obj/item/weapon/reagent_containers/glass/G in beakers)
|
|
if(G.reagents.total_volume) has_reagents = 1
|
|
|
|
if(!has_reagents)
|
|
playsound(src.loc, 'Screwdriver2.ogg', 50, 1)
|
|
state = 0
|
|
return
|
|
|
|
playsound(src.loc, 'bamf.ogg', 50, 1)
|
|
|
|
for(var/obj/item/weapon/reagent_containers/glass/G in beakers)
|
|
G.reagents.trans_to(src, G.reagents.total_volume)
|
|
|
|
if(src.reagents.total_volume) //The possible reactions didnt use up all reagents.
|
|
var/datum/effects/system/steam_spread/steam = new /datum/effects/system/steam_spread()
|
|
steam.set_up(10, 0, get_turf(src))
|
|
steam.attach(src)
|
|
steam.start()
|
|
|
|
for(var/atom/A in view(3, src.loc))
|
|
if( A == src ) continue
|
|
src.reagents.reaction(A, 1, 10)
|
|
|
|
|
|
invisibility = 100 //Why am i doing this?
|
|
spawn(50) //To make sure all reagents can work
|
|
del(src) //correctly before deleting the grenade.
|
|
|
|
|
|
/obj/item/weapon/chem_grenade/metalfoam
|
|
name = "Metal-Foam Grenade"
|
|
desc = "Used for emergency sealing of air breaches."
|
|
icon_state = "chemg3"
|
|
stage = 2
|
|
|
|
New()
|
|
..()
|
|
var/obj/item/weapon/reagent_containers/glass/B1 = new(src)
|
|
var/obj/item/weapon/reagent_containers/glass/B2 = new(src)
|
|
|
|
B1.reagents.add_reagent("aluminium", 30)
|
|
B2.reagents.add_reagent("foaming_agent", 10)
|
|
B2.reagents.add_reagent("pacid", 10)
|
|
|
|
beakers += B1
|
|
beakers += B2
|
|
|
|
/obj/item/weapon/chem_grenade/incendiary
|
|
name = "Incendiary Grenade"
|
|
desc = "Used for clearing rooms of living things."
|
|
icon_state = "chemg3"
|
|
stage = 2
|
|
|
|
New()
|
|
..()
|
|
var/obj/item/weapon/reagent_containers/glass/B1 = new(src)
|
|
var/obj/item/weapon/reagent_containers/glass/B2 = new(src)
|
|
|
|
B1.reagents.add_reagent("aluminium", 25)
|
|
B2.reagents.add_reagent("plasma", 25)
|
|
B2.reagents.add_reagent("acid", 25)
|
|
|
|
beakers += B1
|
|
beakers += B2
|
|
|
|
/obj/item/weapon/chem_grenade/cleaner
|
|
name = "Cleaner Grenade"
|
|
desc = "BLAM!-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas."
|
|
icon_state = "chemg3"
|
|
stage = 2
|
|
|
|
New()
|
|
..()
|
|
var/obj/item/weapon/reagent_containers/glass/B1 = new(src)
|
|
var/obj/item/weapon/reagent_containers/glass/B2 = new(src)
|
|
|
|
B1.reagents.add_reagent("fluorosurfactant", 30)
|
|
B2.reagents.add_reagent("water", 10)
|
|
B2.reagents.add_reagent("cleaner", 10)
|
|
|
|
beakers += B1
|
|
beakers += B2
|
|
/*
|
|
/obj/item/weapon/chem_grenade/poo
|
|
name = "poo grenade"
|
|
desc = "A ShiTastic! brand biological warfare charge. Not very effective unless the target is squeamish."
|
|
icon_state = "chemg3"
|
|
stage = 2
|
|
|
|
New()
|
|
..()
|
|
var/obj/item/weapon/reagent_containers/glass/B1 = new(src)
|
|
var/obj/item/weapon/reagent_containers/glass/B2 = new(src)
|
|
|
|
B1.reagents.add_reagent("poo", 30)
|
|
B2.reagents.add_reagent("poo", 30)
|
|
|
|
beakers += B1
|
|
beakers += B2
|
|
*/
|
|
///////////////////////////////Grenades
|
|
|
|
/obj/syringe_gun_dummy
|
|
name = ""
|
|
desc = ""
|
|
icon = 'chemical.dmi'
|
|
icon_state = "null"
|
|
anchored = 1
|
|
density = 0
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(15)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
/obj/item/weapon/gun/syringe
|
|
name = "syringe gun"
|
|
icon = 'gun.dmi'
|
|
icon_state = "syringegun"
|
|
item_state = "syringegun"
|
|
w_class = 3.0
|
|
throw_speed = 2
|
|
throw_range = 10
|
|
force = 4.0
|
|
var/list/syringes = new/list()
|
|
var/max_syringes = 1
|
|
m_amt = 2000
|
|
|
|
examine()
|
|
set src in view(2)
|
|
..()
|
|
usr << "\icon [src] Syringe gun:"
|
|
usr << "\blue [syringes] / [max_syringes] Syringes."
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
|
if(syringes.len < max_syringes)
|
|
user.drop_item()
|
|
I.loc = src
|
|
syringes += I
|
|
user << "\blue You put the syringe in the syringe gun."
|
|
user << "\blue [syringes.len] / [max_syringes] Syringes."
|
|
else
|
|
usr << "\red The syringe gun cannot hold more syringes."
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
if(!isturf(target.loc) || target == user) return
|
|
|
|
if(syringes.len)
|
|
spawn(0) fire_syringe(target,user)
|
|
else
|
|
usr << "\red The syringe gun is empty."
|
|
|
|
proc
|
|
fire_syringe(atom/target, mob/user)
|
|
if (locate (/obj/table, src.loc))
|
|
return
|
|
else
|
|
var/turf/trg = get_turf(target)
|
|
var/obj/syringe_gun_dummy/D = new/obj/syringe_gun_dummy(get_turf(src))
|
|
var/obj/item/weapon/reagent_containers/syringe/S = syringes[1]
|
|
S.reagents.trans_to(D, S.reagents.total_volume)
|
|
syringes -= S
|
|
del(S)
|
|
D.icon_state = "syringeproj"
|
|
D.name = "syringe"
|
|
playsound(user.loc, 'syringeproj.ogg', 50, 1)
|
|
|
|
for(var/i=0, i<6, i++)
|
|
if(D.loc == trg) break
|
|
step_towards(D,trg)
|
|
|
|
for(var/mob/living/carbon/M in D.loc)
|
|
if(!istype(M,/mob/living/carbon)) continue
|
|
if(M == user) continue
|
|
D.reagents.trans_to(M, 15)
|
|
M.bruteloss += 5
|
|
for(var/mob/O in viewers(world.view, D))
|
|
O.show_message(text("\red [] was hit by the syringe!", M), 1)
|
|
|
|
del(D)
|
|
|
|
for(var/atom/A in D.loc)
|
|
if(A == user) continue
|
|
if(A.density) del(D)
|
|
|
|
sleep(1)
|
|
|
|
spawn(10) del(D)
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
/obj/reagent_dispensers
|
|
name = "Dispenser"
|
|
desc = "..."
|
|
icon = 'objects.dmi'
|
|
icon_state = "watertank"
|
|
density = 1
|
|
anchored = 0
|
|
flags = FPRINT
|
|
pressure_resistance = 2*ONE_ATMOSPHERE
|
|
|
|
var/amount_per_transfer_from_this = 10
|
|
|
|
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
|
|
|
|
examine()
|
|
set src in view(2)
|
|
..()
|
|
usr << "\blue It contains:"
|
|
if(!reagents) return
|
|
if(reagents.reagent_list.len)
|
|
for(var/datum/reagent/R in reagents.reagent_list)
|
|
usr << "\blue [R.volume] units of [R.name]"
|
|
else
|
|
usr << "\blue Nothing."
|
|
|
|
ex_act(severity)
|
|
switch(severity)
|
|
if(1.0)
|
|
del(src)
|
|
return
|
|
if(2.0)
|
|
if (prob(50))
|
|
new /obj/effects/water(src.loc)
|
|
del(src)
|
|
return
|
|
if(3.0)
|
|
if (prob(5))
|
|
new /obj/effects/water(src.loc)
|
|
del(src)
|
|
return
|
|
else
|
|
return
|
|
|
|
blob_act()
|
|
if(prob(50))
|
|
new /obj/effects/water(src.loc)
|
|
del(src)
|
|
|
|
|
|
|
|
/obj/item/weapon/reagent_containers
|
|
name = "Container"
|
|
desc = "..."
|
|
icon = 'chemical.dmi'
|
|
icon_state = null
|
|
w_class = 1
|
|
var/amount_per_transfer_from_this = 5
|
|
|
|
/* New()
|
|
var/datum/reagents/R = new/datum/reagents(50)
|
|
reagents = R
|
|
R.my_atom = src */
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
return
|
|
attack_self(mob/user as mob)
|
|
return
|
|
attack(mob/M as mob, mob/user as mob, def_zone)
|
|
return
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
return
|
|
afterattack(obj/target, mob/user , flag)
|
|
return
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// (Mixing)Glass.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/obj/item/weapon/reagent_containers/glass/
|
|
name = " "
|
|
desc = " "
|
|
icon = 'chemical.dmi'
|
|
icon_state = "null"
|
|
item_state = "null"
|
|
amount_per_transfer_from_this = 10
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
|
|
var/list/can_be_placed_into = list(
|
|
/obj/machinery/chem_master/,
|
|
/obj/table,
|
|
/obj/secure_closet,
|
|
/obj/closet,
|
|
/obj/item/weapon/storage,
|
|
/obj/machinery/atmospherics/unary/cryo_cell,
|
|
/obj/item/weapon/chem_grenade,
|
|
/obj/machinery/bot/medbot,
|
|
/obj/machinery/computer/pandemic,
|
|
/obj/item/weapon/secstorage/ssafe)
|
|
|
|
examine()
|
|
set src in view(2)
|
|
..()
|
|
usr << "\blue It contains:"
|
|
if(!reagents) return
|
|
if(reagents.reagent_list.len)
|
|
for(var/datum/reagent/R in reagents.reagent_list)
|
|
usr << "\blue [R.volume] units of [R.name]"
|
|
else
|
|
usr << "\blue Nothing."
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(50)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
for(var/type in src.can_be_placed_into)
|
|
if(istype(target, type))
|
|
return
|
|
|
|
if(ismob(target) && target.reagents && reagents.total_volume)
|
|
user << "\blue You splash the solution onto [target]."
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message(text("\red [] has been splashed with something by []!", target, user), 1)
|
|
src.reagents.reaction(target, TOUCH)
|
|
spawn(5) src.reagents.clear_reagents()
|
|
return
|
|
else if(istype(target, /obj/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
|
|
|
if(!target.reagents.total_volume && target.reagents)
|
|
user << "\red [target] is empty."
|
|
return
|
|
|
|
if(reagents.total_volume >= reagents.maximum_volume)
|
|
user << "\red [src] is full."
|
|
return
|
|
|
|
var/trans = target.reagents.trans_to(src, 10)
|
|
user << "\blue You fill [src] with [trans] units of the contents of [target]."
|
|
|
|
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
|
|
if(!reagents.total_volume)
|
|
user << "\red [src] is empty."
|
|
return
|
|
|
|
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
|
user << "\red [target] is full."
|
|
return
|
|
|
|
var/trans = src.reagents.trans_to(target, 10)
|
|
user << "\blue You transfer [trans] units of the solution to [target]."
|
|
|
|
else if(reagents.total_volume)
|
|
user << "\blue You splash the solution onto [target]."
|
|
src.reagents.reaction(target, TOUCH)
|
|
spawn(5) src.reagents.clear_reagents()
|
|
return
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// (Mixing)Glass. END
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Droppers.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/obj/item/weapon/reagent_containers/dropper
|
|
name = "Dropper"
|
|
desc = "A dropper. Transfers 5 units."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "dropper0"
|
|
amount_per_transfer_from_this = 5
|
|
var/filled = 0
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(5)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
if(!target.reagents) return
|
|
|
|
if(filled)
|
|
|
|
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
|
user << "\red [target] is full."
|
|
return
|
|
|
|
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food)) //You can inject humans and food but you cant remove the shit.
|
|
user << "\red You cannot directly fill this object."
|
|
return
|
|
|
|
if(ismob(target))
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message(text("\red <B>[] drips something onto []!</B>", user, target), 1)
|
|
src.reagents.reaction(target, TOUCH)
|
|
|
|
spawn(5) src.reagents.trans_to(target, 5)
|
|
user << "\blue You transfer 5 units of the solution."
|
|
filled = 0
|
|
icon_state = "dropper[filled]"
|
|
|
|
else
|
|
|
|
if(!target.is_open_container() && !istype(target,/obj/reagent_dispensers))
|
|
user << "\red You cannot directly remove reagents from [target]."
|
|
return
|
|
|
|
if(!target.reagents.total_volume)
|
|
user << "\red [target] is empty."
|
|
return
|
|
|
|
target.reagents.trans_to(src, 5)
|
|
|
|
user << "\blue You fill the dropper with 5 units of the solution."
|
|
|
|
filled = 1
|
|
icon_state = "dropper[filled]"
|
|
|
|
return
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Droppers. END
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Syringes.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/obj/item/weapon/reagent_containers/syringe
|
|
name = "Syringe"
|
|
desc = "A syringe."
|
|
icon = 'syringe.dmi'
|
|
item_state = "syringe_0"
|
|
icon_state = "0"
|
|
amount_per_transfer_from_this = 5
|
|
var/mode = "d"
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(15)
|
|
reagents = R
|
|
R.maximum_volume = 15
|
|
R.my_atom = src
|
|
|
|
on_reagent_change()
|
|
update_icon()
|
|
|
|
pickup(mob/user)
|
|
..()
|
|
update_icon()
|
|
|
|
dropped(mob/user)
|
|
..()
|
|
update_icon()
|
|
|
|
attack_self(mob/user as mob)
|
|
switch(mode)
|
|
if("d")
|
|
mode = "i"
|
|
if("i")
|
|
mode = "d"
|
|
update_icon()
|
|
|
|
attack_hand()
|
|
..()
|
|
update_icon()
|
|
|
|
attack_paw()
|
|
return attack_hand()
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
return
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
if(!target.reagents) return
|
|
|
|
switch(mode)
|
|
if("d")
|
|
|
|
if(reagents.total_volume >= reagents.maximum_volume)
|
|
user << "\red The syringe is full."
|
|
return
|
|
|
|
if(ismob(target))//Blood!
|
|
if(src.reagents.has_reagent("blood"))
|
|
user << "\red There is already a blood sample in this syringe"
|
|
return
|
|
if(istype(target, /mob/living/carbon))//maybe just add a blood reagent to all mobs. Then you can suck them dry...With hundreds of syringes. Jolly good idea.
|
|
var/amount = src.reagents.maximum_volume - src.reagents.total_volume
|
|
var/mob/living/carbon/T = target
|
|
var/datum/reagent/B = new /datum/reagent/blood
|
|
B.holder = src
|
|
B.volume = amount
|
|
//set reagent data
|
|
B.data["donor"] = T
|
|
if(T.virus && T.virus.spread_type != SPECIAL)
|
|
B.data["virus"] = new T.virus.type(0)
|
|
B.data["blood_DNA"] = copytext(T.dna.unique_enzymes,1,0)
|
|
if(T.resistances&&T.resistances.len)
|
|
B.data["resistances"] = T.resistances.Copy()
|
|
if(istype(target, /mob/living/carbon/human))//I wish there was some hasproperty operation...
|
|
var/mob/living/carbon/human/HT = target
|
|
B.data["blood_type"] = copytext(HT.b_type,1,0)
|
|
//debug
|
|
//for(var/D in B.data)
|
|
// world << "Data [D] = [B.data[D]]"
|
|
//debug
|
|
src.reagents.reagent_list += B
|
|
src.reagents.update_total()
|
|
src.on_reagent_change()
|
|
src.reagents.handle_reactions()
|
|
user << "\blue You take a blood sample from [target]"
|
|
for(var/mob/O in viewers(4, user))
|
|
O.show_message("\red [user] takes a blood sample from [target].", 1)
|
|
return
|
|
|
|
|
|
if(!target.reagents.total_volume)
|
|
user << "\red [target] is empty."
|
|
return
|
|
|
|
|
|
if(!target.is_open_container() && !istype(target,/obj/reagent_dispensers))
|
|
user << "\red You cannot directly remove reagents from this object."
|
|
return
|
|
|
|
target.reagents.trans_to(src, 5)
|
|
|
|
user << "\blue You fill the syringe with 5 units of the solution."
|
|
|
|
if("i")
|
|
if(!reagents.total_volume)
|
|
user << "\red The Syringe is empty."
|
|
return
|
|
if(istype(target, /obj/item/weapon/implantcase/chem))
|
|
return
|
|
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
|
user << "\red [target] is full."
|
|
return
|
|
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food))
|
|
user << "\red You cannot directly fill this object."
|
|
return
|
|
|
|
if(ismob(target) && target != user)
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message(text("\red <B>[] is trying to inject []!</B>", user, target), 1)
|
|
if(!do_mob(user, target)) return
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message(text("\red [] injects [] with the syringe!", user, target), 1)
|
|
src.reagents.reaction(target, INGEST)
|
|
if(ismob(target) && target == user)
|
|
src.reagents.reaction(target, INGEST)
|
|
spawn(5)
|
|
src.reagents.trans_to(target, 5)
|
|
user << "\blue You inject 5 units of the solution. The syringe now contains [src.reagents.total_volume] units."
|
|
return
|
|
|
|
update_icon()
|
|
var/rounded_vol = round(reagents.total_volume,5)
|
|
if(ismob(loc))
|
|
icon_state = "[mode][rounded_vol]"
|
|
else
|
|
icon_state = "[rounded_vol]"
|
|
item_state = "syringe_[rounded_vol]"
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Syringes. END
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// HYPOSPRAY
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/obj/item/weapon/reagent_containers/hypospray
|
|
name = "hypospray"
|
|
desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
|
|
icon = 'syringe.dmi'
|
|
item_state = "hypo"
|
|
icon_state = "hypo"
|
|
amount_per_transfer_from_this = 10
|
|
flags = FPRINT | ONBELT | TABLEPASS | OPENCONTAINER
|
|
|
|
/obj/item/weapon/reagent_containers/hypospray/attack_paw(mob/user as mob)
|
|
return src.attack_hand(user)
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/hypospray/New()
|
|
var/datum/reagents/R = new/datum/reagents(30)
|
|
reagents = R
|
|
R.my_atom = src
|
|
//R.add_reagent("tricordrazine", 30) //uncomment this to make it start with stuff in
|
|
..()
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/hypospray/attack(mob/M as mob, mob/user as mob)
|
|
if (!( istype(M, /mob) ))
|
|
return
|
|
if (reagents.total_volume)
|
|
user << "\red You inject [M] with the hypospray."
|
|
M << "\red You feel a tiny prick!"
|
|
src.reagents.reaction(M, INGEST)
|
|
if(M.reagents) reagents.trans_to(M, 10)
|
|
user << "\red 10 units injected. [reagents.total_volume] units remaining in the hypospray."
|
|
return
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Food.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/obj/item/weapon/reagent_containers/food
|
|
|
|
New() //Sets the default container amount for all food items.
|
|
var/datum/reagents/R = new/datum/reagents(50) // if you want a food item with a different capacity
|
|
reagents = R // then just redefine it in the code for the specific food item.
|
|
R.my_atom = src
|
|
src.pixel_x = rand(-5.0, 5) //Randomizes postion slightly.
|
|
src.pixel_y = rand(-5.0, 5)
|
|
|
|
/obj/item/weapon/reagent_containers/food/condiment //Food items that aren't eaten normally and leave an empty container behind.
|
|
name = "Condiment Container"
|
|
desc = "Just your average condiment container."
|
|
icon = 'food.dmi'
|
|
icon_state = "emptycondiment"
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
return
|
|
attack_self(mob/user as mob)
|
|
return
|
|
attack(mob/M as mob, mob/user as mob, def_zone)
|
|
var/datum/reagents/R = src.reagents
|
|
|
|
if(!R.total_volume || !R)
|
|
user << "\red None of [src] left, oh no!"
|
|
return 0
|
|
|
|
if(M == user)
|
|
M << "\blue You swallow some of contents of the [src]."
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
reagents.trans_to(M, 10)
|
|
|
|
playsound(M.loc,'drink.ogg', rand(10,50), 1)
|
|
return 1
|
|
else if( istype(M, /mob/living/carbon/human) )
|
|
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] attempts to feed [M] [src].", 1)
|
|
if(!do_mob(user, M)) return
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] feeds [M] [src].", 1)
|
|
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
reagents.trans_to(M, 10)
|
|
|
|
playsound(M.loc,'drink.ogg', rand(10,50), 1)
|
|
return 1
|
|
return 0
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
return
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
if(istype(target, /obj/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
|
|
|
if(!target.reagents.total_volume)
|
|
user << "\red [target] is empty."
|
|
return
|
|
|
|
if(reagents.total_volume >= reagents.maximum_volume)
|
|
user << "\red [src] is full."
|
|
return
|
|
|
|
var/trans = target.reagents.trans_to(src, 5)
|
|
user << "\blue You fill [src] with [trans] units of the contents of [target]."
|
|
|
|
//Something like a glass or a food item. Player probably wants to transfer TO it.
|
|
else if(target.is_open_container() || istype(target, /obj/item/weapon/reagent_containers/food/snacks))
|
|
if(!reagents.total_volume)
|
|
user << "\red [src] is empty."
|
|
return
|
|
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
|
user << "\red you can't add anymore to [target]."
|
|
return
|
|
var/trans = src.reagents.trans_to(target, 5)
|
|
user << "\blue You transfer [trans] units of the condiment to [target]."
|
|
|
|
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks //Food items that are eaten normally and don't leave anything behind.
|
|
name = "snack"
|
|
desc = "yummy"
|
|
icon = 'food.dmi'
|
|
icon_state = null
|
|
var/bitesize = 1
|
|
|
|
proc/On_Consume()
|
|
return
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
return
|
|
attack_self(mob/user as mob)
|
|
return
|
|
attack(mob/M as mob, mob/user as mob, def_zone)
|
|
if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
|
|
user << "\red None of [src] left, oh no!"
|
|
del(src)
|
|
return 0
|
|
if(istype(M, /mob/living/carbon/human))
|
|
if(M == user) //If you're eating it yourself.
|
|
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
|
|
if (fullness <= 50)
|
|
M << "\red You hungrily chew out a piece of [src] and gobble it!"
|
|
if (fullness > 50 && fullness <= 150)
|
|
M << "\blue You hungrily begin to eat [src]."
|
|
if (fullness > 150 && fullness <= 350)
|
|
M << "\blue You take a bite of [src]."
|
|
if (fullness > 350 && fullness <= 550)
|
|
M << "\blue You unwillingly chew a bit of [src]."
|
|
if (fullness > (550 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
|
|
M << "\red You cannot force any more of [src] to go down your throat."
|
|
return 0
|
|
else //If you're feeding it to someone else.
|
|
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
|
|
if (fullness <= (550 * (1 + M.overeatduration / 1000)))
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] attempts to feed [M] [src].", 1)
|
|
else
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] cannot force anymore of [src] down [M]'s throat.", 1)
|
|
return 0
|
|
|
|
if(!do_mob(user, M)) return
|
|
|
|
M.attack_log += text("[] <b>[]/[]</b> feeds <b>[]/[]</b> with <b>[]</b>", world.time, user, user.client, M, M.client, src)
|
|
user.attack_log += text("[] <b>[]/[]</b> feeds <b>[]/[]</b> with <b>[]</b>", world.time, user, user.client, M, M.client, src)
|
|
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] feeds [M] [src].", 1)
|
|
if(reagents) //Handle ingestion of the reagent.
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
if(reagents.total_volume > bitesize)
|
|
var/temp_bitesize = max(reagents.total_volume /2, bitesize)
|
|
reagents.trans_to(M, temp_bitesize)
|
|
else
|
|
reagents.trans_to(M, reagents.total_volume)
|
|
if(!reagents.total_volume)
|
|
if(M == user) user << "\red You finish eating [src]."
|
|
else user << "\red [M] finishes eating [src]."
|
|
On_Consume()
|
|
del(src)
|
|
playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
|
|
return 1
|
|
|
|
return 0
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
return
|
|
afterattack(obj/target, mob/user , flag)
|
|
return
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// FOOD END
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Drinks.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/obj/item/weapon/reagent_containers/food/drinks
|
|
name = "drink"
|
|
desc = "yummy"
|
|
icon = 'drinks.dmi'
|
|
icon_state = null
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(50)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
on_reagent_change()
|
|
if (gulp_size < 5) gulp_size = 5
|
|
else gulp_size = max(round(reagents.total_volume / 5), 5)
|
|
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
return
|
|
attack_self(mob/user as mob)
|
|
return
|
|
attack(mob/M as mob, mob/user as mob, def_zone)
|
|
var/datum/reagents/R = src.reagents
|
|
var/fillevel = gulp_size
|
|
|
|
if(!R.total_volume || !R)
|
|
user << "\red None of [src] left, oh no!"
|
|
return 0
|
|
|
|
if(M == user)
|
|
M << "\blue You swallow a gulp of [src]."
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
reagents.trans_to(M, gulp_size)
|
|
|
|
playsound(M.loc,'drink.ogg', rand(10,50), 1)
|
|
return 1
|
|
else if( istype(M, /mob/living/carbon/human) )
|
|
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] attempts to feed [M] [src].", 1)
|
|
if(!do_mob(user, M)) return
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] feeds [M] [src].", 1)
|
|
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
reagents.trans_to(M, gulp_size)
|
|
|
|
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
|
var/mob/living/silicon/robot/bro = user
|
|
bro.cell.charge -= 30
|
|
var/refill = R.get_master_reagent_id()
|
|
spawn(600)
|
|
R.add_reagent(refill, fillevel)
|
|
|
|
|
|
playsound(M.loc,'drink.ogg', rand(10,50), 1)
|
|
return 1
|
|
|
|
return 0
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
return
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
|
|
if(istype(target, /obj/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
|
|
|
if(!target.reagents.total_volume)
|
|
user << "\red [target] is empty."
|
|
return
|
|
|
|
if(reagents.total_volume >= reagents.maximum_volume)
|
|
user << "\red [src] is full."
|
|
return
|
|
|
|
var/trans = target.reagents.trans_to(src, 10)
|
|
user << "\blue You fill [src] with [trans] units of the contents of [target]."
|
|
|
|
else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
|
|
if(!reagents.total_volume)
|
|
user << "\red [src] is empty."
|
|
return
|
|
|
|
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
|
user << "\red [target] is full."
|
|
return
|
|
|
|
var/trans = src.reagents.trans_to(target, 10)
|
|
user << "\blue You transfer [trans] units of the solution to [target]."
|
|
|
|
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
|
|
var/mob/living/silicon/robot/bro = user
|
|
bro.cell.charge -= 30
|
|
var/refill = reagents.get_master_reagent_id()
|
|
spawn(600)
|
|
reagents.add_reagent(refill, trans)
|
|
|
|
return
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Drinks. END
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Pills.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/obj/item/weapon/reagent_containers/pill
|
|
name = "pill"
|
|
desc = "a pill."
|
|
icon = 'chemical.dmi'
|
|
icon_state = null
|
|
item_state = "pill"
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(50)
|
|
reagents = R
|
|
R.my_atom = src
|
|
if(!icon_state)
|
|
icon_state = "pill[rand(1,20)]"
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
return
|
|
attack_self(mob/user as mob)
|
|
return
|
|
attack(mob/M as mob, mob/user as mob, def_zone)
|
|
if(M == user)
|
|
M << "\blue You swallow [src]."
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
reagents.trans_to(M, reagents.total_volume)
|
|
del(src)
|
|
else
|
|
del(src)
|
|
return 1
|
|
|
|
else if(istype(M, /mob/living/carbon/human) )
|
|
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] attempts to force [M] to swallow [src].", 1)
|
|
|
|
if(!do_mob(user, M)) return
|
|
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message("\red [user] forces [M] to swallow [src].", 1)
|
|
|
|
if(reagents.total_volume)
|
|
reagents.reaction(M, INGEST)
|
|
spawn(5)
|
|
reagents.trans_to(M, reagents.total_volume)
|
|
del(src)
|
|
else
|
|
del(src)
|
|
|
|
return 1
|
|
|
|
return 0
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
return
|
|
|
|
afterattack(obj/target, mob/user , flag)
|
|
|
|
if(target.is_open_container() == 1 && target.reagents)
|
|
if(!target.reagents.total_volume)
|
|
user << "\red [target] is empty. Cant dissolve pill."
|
|
return
|
|
user << "\blue You dissolve the pill in [target]"
|
|
reagents.trans_to(target, reagents.total_volume)
|
|
for(var/mob/O in viewers(2, user))
|
|
O.show_message("\red [user] puts something in [target].", 1)
|
|
spawn(5)
|
|
del(src)
|
|
|
|
return
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Pills. END
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// Subtypes.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//Glasses
|
|
/obj/item/weapon/reagent_containers/glass/bucket
|
|
desc = "It's a bucket."
|
|
name = "bucket"
|
|
icon = 'janitor.dmi'
|
|
icon_state = "bucket"
|
|
item_state = "bucket"
|
|
m_amt = 200
|
|
g_amt = 0
|
|
w_class = 3.0
|
|
|
|
amount_per_transfer_from_this = 20
|
|
flags = FPRINT | OPENCONTAINER
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(70)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
attackby(var/obj/D, mob/user as mob)
|
|
if(istype(D, /obj/item/device/prox_sensor))
|
|
var/obj/item/weapon/bucket_sensor/B = new /obj/item/weapon/bucket_sensor
|
|
B.loc = user
|
|
if (user.r_hand == D)
|
|
user.u_equip(D)
|
|
user.r_hand = B
|
|
else
|
|
user.u_equip(D)
|
|
user.l_hand = B
|
|
B.layer = 20
|
|
user << "You add the sensor to the bucket"
|
|
del(D)
|
|
del(src)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/cantister
|
|
desc = "It's a canister. Mainly used for transporting fuel."
|
|
name = "canister"
|
|
icon = 'tank.dmi'
|
|
icon_state = "canister"
|
|
item_state = "canister"
|
|
m_amt = 300
|
|
g_amt = 0
|
|
w_class = 4.0
|
|
|
|
amount_per_transfer_from_this = 20
|
|
flags = FPRINT
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(120)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
/obj/item/weapon/reagent_containers/glass/dispenser
|
|
name = "reagent glass"
|
|
desc = "A reagent glass."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "beaker"
|
|
amount_per_transfer_from_this = 10
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
|
|
/obj/item/weapon/reagent_containers/glass/dispenser/surfactant
|
|
name = "reagent glass (surfactant)"
|
|
icon_state = "liquid"
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("fluorosurfactant", 20)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/beaker
|
|
name = "beaker"
|
|
desc = "A beaker. Can hold up to 50 units."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "beaker0"
|
|
item_state = "beaker"
|
|
|
|
on_reagent_change()
|
|
if(reagents.total_volume)
|
|
icon_state = "beaker1"
|
|
else
|
|
icon_state = "beaker0"
|
|
|
|
/obj/item/weapon/reagent_containers/glass/blender_jug
|
|
name = "Blender Jug"
|
|
desc = "A blender jug, part of a blender."
|
|
icon = 'kitchen.dmi'
|
|
icon_state = "blender_jug_e"
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(100)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
on_reagent_change()
|
|
switch(src.reagents.total_volume)
|
|
if(0)
|
|
icon_state = "blender_jug_e"
|
|
if(1 to 75)
|
|
icon_state = "blender_jug_h"
|
|
if(76 to 100)
|
|
icon_state = "blender_jug_f"
|
|
|
|
/obj/item/weapon/reagent_containers/glass/large
|
|
name = "large reagent glass"
|
|
desc = "A large reagent glass."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "beakerlarge"
|
|
item_state = "beaker"
|
|
amount_per_transfer_from_this = 10
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/
|
|
name = "bottle"
|
|
desc = "A small bottle."
|
|
icon = 'chemical.dmi'
|
|
icon_state = null
|
|
item_state = "atoxinbottle"
|
|
amount_per_transfer_from_this = 10
|
|
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(30)
|
|
reagents = R
|
|
R.my_atom = src
|
|
if(!icon_state)
|
|
icon_state = "bottle[rand(1,20)]"
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline
|
|
name = "inaprovaline bottle"
|
|
desc = "A small bottle. Contains inaprovaline - used to stabilize patients."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle16"
|
|
amount_per_transfer_from_this = 10
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("inaprovaline", 30)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/toxin
|
|
name = "toxin bottle"
|
|
desc = "A small bottle."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle12"
|
|
amount_per_transfer_from_this = 5
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("toxin", 30)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/stoxin
|
|
name = "sleep-toxin bottle"
|
|
desc = "A small bottle."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle20"
|
|
amount_per_transfer_from_this = 5
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("stoxin", 30)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate
|
|
name = "Chloral Hydrate Bottle"
|
|
desc = "A small bottle."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle20"
|
|
amount_per_transfer_from_this = 5
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("chloralhydrate", 15) //Intentionally low since it is so strong. Still enough to knock someone out.
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin
|
|
name = "anti-toxin bottle"
|
|
desc = "A small bottle."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle17"
|
|
amount_per_transfer_from_this = 5
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("anti_toxin", 30)
|
|
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
|
|
name = "Flu virion culture bottle"
|
|
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/flu(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
|
|
name = "Pierrot's Throat culture bottle"
|
|
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/pierrot_throat(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/cold
|
|
name = "Rhinovirus culture bottle"
|
|
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/cold(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
/*
|
|
/obj/item/weapon/reagent_containers/glass/bottle/gbs
|
|
name = "GBS culture bottle"
|
|
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(20)
|
|
reagents = R
|
|
R.my_atom = src
|
|
var/datum/disease/F = new /datum/disease/gbs
|
|
var/list/data = list("virus"= F)
|
|
R.add_reagent("blood", 20, data) -- No.
|
|
*/
|
|
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
|
|
name = "GBS culture bottle"
|
|
desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/fake_gbs(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/rhumba_beat
|
|
name = "Rhumba Beat culture bottle"
|
|
desc = "A small bottle. Contains The Rhumba Beat culture in synthblood medium."//Or simply - General BullShit
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(20)
|
|
reagents = R
|
|
R.my_atom = src
|
|
var/datum/disease/F = new /datum/disease/rhumba_beat
|
|
var/list/data = list("virus"= F)
|
|
R.add_reagent("blood", 20, data)
|
|
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
|
|
name = "Brainrot culture bottle"
|
|
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/brainrot(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
|
|
name = "Magnitis culture bottle"
|
|
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/magnitis(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
|
|
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
|
|
name = "Wizarditis culture bottle"
|
|
desc = "A small bottle. Contains a sample of Rincewindus Vulgaris."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "bottle3"
|
|
amount_per_transfer_from_this = 5
|
|
New()
|
|
..()
|
|
var/datum/disease/F = new /datum/disease/wizarditis(0)
|
|
var/list/data = list("virus"= F)
|
|
reagents.add_reagent("blood", 20, data)
|
|
|
|
|
|
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
|
|
name = "beaker"
|
|
desc = "A beaker. Can hold up to 30 units."
|
|
icon = 'chemical.dmi'
|
|
icon_state = "beaker0"
|
|
item_state = "beaker"
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("cryoxadone", 30)
|
|
|
|
|
|
//Syringes
|
|
/obj/item/weapon/reagent_containers/syringe/robot
|
|
name = "Syringe (mixed)"
|
|
desc = "Contains inaprovaline & anti-toxins."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("inaprovaline", 7)
|
|
reagents.add_reagent("anti_toxin", 8)
|
|
mode = "i"
|
|
update_icon()
|
|
|
|
/obj/item/weapon/reagent_containers/syringe/inaprovaline
|
|
name = "Syringe (inaprovaline)"
|
|
desc = "Contains inaprovaline - used to stabilize patients."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("inaprovaline", 15)
|
|
update_icon()
|
|
|
|
/obj/item/weapon/reagent_containers/syringe/antitoxin
|
|
name = "Syringe (anti-toxin)"
|
|
desc = "Contains anti-toxins."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("anti_toxin", 15)
|
|
update_icon()
|
|
|
|
/obj/item/weapon/reagent_containers/syringe/antiviral
|
|
name = "Syringe (spaceacillin)"
|
|
desc = "Contains antiviral agents."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("spaceacillin", 15)
|
|
update_icon()
|
|
|
|
|
|
//////////////////////////////////////////////////
|
|
////////////////////////////////////////////Snacks
|
|
//////////////////////////////////////////////////
|
|
//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created
|
|
// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
|
|
|
|
//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40
|
|
// total for the item because you want to leave space for extra condiments. If you want effects besides healing, add a reagent for
|
|
// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use
|
|
// effects (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
|
|
|
|
//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to
|
|
// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a
|
|
// bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all
|
|
// the bites. No more contained reagents = no more bites.
|
|
|
|
//Here is an example of the new formatting for anyone who wants to add more food items.
|
|
///obj/item/weapon/reagent_containers/food/snacks/xenoburger //Identification path for the object.
|
|
// name = "Xenoburger" //Name that displays in the UI.
|
|
// desc = "Smells caustic. Tastes like heresy." //Duh
|
|
// icon_state = "xburger" //Refers to an icon in food.dmi
|
|
// New() //Don't mess with this.
|
|
// ..() //Same here.
|
|
// reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste
|
|
// reagents.add_reagent("nutriment", 2) // this line of code for all the contents.
|
|
// bitesize = 3 //This is the amount each bite consumes.
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/candy
|
|
name = "candy"
|
|
desc = "Man, that shit looks good. I bet it's got nougat. Fuck."
|
|
icon_state = "candy"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/candy_corn
|
|
name = "candy corn"
|
|
desc = "It's a handful of candy corn. Can be stored in a detective's hat."
|
|
icon_state = "candy_corn"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/chips
|
|
name = "chips"
|
|
desc = "Commander Riker's What-The-Crisps"
|
|
icon_state = "chips"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/donut
|
|
name = "donut"
|
|
desc = "Goes great with Robust Coffee."
|
|
icon_state = "donut1"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
reagents.add_reagent("sprinkles", 1)
|
|
if(prob(30))
|
|
src.icon_state = "donut2"
|
|
src.name = "frosted donut"
|
|
src.bitesize = 2
|
|
reagents.add_reagent("nutriment", 2)
|
|
reagents.add_reagent("sprinkles", 1)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/egg
|
|
name = "egg"
|
|
desc = "An egg!"
|
|
icon_state = "egg"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 1)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/flour
|
|
name = "flour"
|
|
desc = "Some flour"
|
|
icon_state = "flour"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 1)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/humanmeat
|
|
name = "-meat"
|
|
desc = "A slab of meat"
|
|
icon_state = "meat"
|
|
var/subjectname = ""
|
|
var/subjectjob = null
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/brainburger
|
|
name = "brainburger"
|
|
desc = "A strange looking burger. It looks almost sentient."
|
|
icon_state = "brainburger"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/faggot
|
|
name = "Faggot"
|
|
desc = "A great meal all round. Not a cord of wood."
|
|
icon_state = "faggot"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 2)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
|
|
name = "Donk-pocket"
|
|
desc = "The food of choice for the seasoned traitor."
|
|
icon_state = "donkpocket"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 1)
|
|
var/warm = 0
|
|
proc/cooltime() //Not working, derp?
|
|
if (src.warm)
|
|
spawn( 4200 )
|
|
src.warm = 0
|
|
src.reagents.del_reagent("tricordrazine")
|
|
src.name = "donk-pocket"
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/humanburger
|
|
name = "-burger"
|
|
var/hname = ""
|
|
var/job = null
|
|
desc = "A bloody burger."
|
|
icon_state = "hburger"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger
|
|
name = "burger"
|
|
desc = "The cornerstone of every nutritious breakfast."
|
|
icon_state = "hburger"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/omelette
|
|
name = "Omelette Du Fromage"
|
|
desc = "That's all you can say!"
|
|
icon_state = "omelette"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 10)
|
|
bitesize = 1
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W,/obj/item/weapon/kitchen/utensil/fork))
|
|
W.icon = 'kitchen.dmi'
|
|
W.icon_state = "forkloaded"
|
|
world << "[user] takes a piece of omelette with his fork!"
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/omeletteforkload
|
|
name = "Omelette Du Fromage"
|
|
desc = "That's all you can say!"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 1)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/muffin
|
|
name = "Muffin"
|
|
desc = "A delicious and spongy little cake"
|
|
icon_state = "muffin"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/roburger
|
|
name = "roburger"
|
|
desc = "The lettuce is the only organic component. Beep."
|
|
icon_state = "roburger"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 2)
|
|
reagents.add_reagent("nanites", 10)
|
|
bitesize = 3
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/xenoburger
|
|
name = "xenoburger"
|
|
desc = "Smells caustic. Tastes like heresy."
|
|
icon_state = "xburger"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("xenomicrobes", 10)
|
|
reagents.add_reagent("nutriment", 2)
|
|
bitesize = 3
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/monkeymeat
|
|
name = "meat"
|
|
desc = "A slab of meat"
|
|
icon_state = "meat"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
|
name = "carp fillet"
|
|
desc = "A fillet of spess carp meat"
|
|
icon_state = "fishfillet"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
|
|
name = "meat"
|
|
desc = "A slab of meat"
|
|
icon_state = "xenomeat"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/pie
|
|
name = "custard pie"
|
|
desc = "It smells delicious. You just want to plant your face in it."
|
|
icon_state = "pie"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/waffles
|
|
name = "waffles"
|
|
desc = "Mmm, waffles"
|
|
icon_state = "waffles"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm
|
|
name = "Eggplant Parmigiana"
|
|
desc = "The only good recipe for eggplant."
|
|
icon_state = "eggplantparm"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/jellydonut
|
|
name = "Jelly Donut"
|
|
desc = "Oh so gooey on the inside."
|
|
icon_state = "donut1" //Placeholder until I stop being lazy. ie. Never. -- Darem
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
reagents.add_reagent("sprinkles", 3)
|
|
bitesize = 2
|
|
if(prob(30))
|
|
src.icon_state = "donut2"
|
|
src.name = "Frosted Jelly Donut"
|
|
reagents.add_reagent("nutriment", 3)
|
|
reagents.add_reagent("sprinkles", 3)
|
|
bitesize = 4
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen
|
|
name = "Soylent Green"
|
|
desc = "Not made of people. Honest." //Totally people.
|
|
icon_state = "soylent"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 5)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
|
|
name = "Soylen Virdians"
|
|
desc = "Not made of people. Honest." //Actually honest for once.
|
|
icon_state = "soylent"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 5)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/carrotcake
|
|
name = "Carrot Cake"
|
|
desc = "A favorite desert of a certain wascally wabbit. Also not a lie."
|
|
icon_state = "carrotcake"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/cheesecake
|
|
name = "Cheese Cake"
|
|
desc = "DANGEROUSLY cheesy."
|
|
icon_state = "cheesecake"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/plaincake
|
|
name = "Vanilla Cake"
|
|
desc = "A plain cake, not a lie."
|
|
icon_state = "plaincake"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/humeatpie
|
|
name = "-pie"
|
|
var/hname = ""
|
|
var/job = null
|
|
icon_state = "pie" //placeholder
|
|
desc = "A delicious meatpie."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/momeatpie
|
|
name = "Meat-pie"
|
|
icon_state = "pie"
|
|
desc = "A delicious meatpie."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie
|
|
name = "Xeno-pie"
|
|
icon_state = "pie" //placeholder
|
|
desc = "A delicious meatpie. Probably heretical."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 2)
|
|
bitesize = 4
|
|
reagents.add_reagent("xenomicrobes", 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/wingfangchu
|
|
name = "Wing Fang Chu"
|
|
desc = "A savory dish of alien wing wang in soy."
|
|
icon_state = "wingfangchu"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 1)
|
|
reagents.add_reagent("xenomicrobes", 5)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/chaosdonut
|
|
name = "Chaos Donut"
|
|
desc = "Like life, it never quite tastes the same."
|
|
icon_state = "donut1"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 3)
|
|
bitesize = 2
|
|
if(prob(30))
|
|
src.icon_state = "donut2"
|
|
src.name = "Frosted Chaos Donut"
|
|
var/temp_chaos = pick(1, 2, 3)
|
|
if(temp_chaos == 1)
|
|
reagents.add_reagent("capsaicin", 3)
|
|
else if(temp_chaos == 2)
|
|
reagents.add_reagent("frostoil", 3)
|
|
else if(temp_chaos == 3)
|
|
reagents.add_reagent("nutriment", 3)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/humankabob
|
|
name = "-kabob"
|
|
var/hname = ""
|
|
var/job = null
|
|
icon_state = "kabob"
|
|
desc = "A delicious kabob"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/monkeykabob
|
|
name = "Meat-kabob"
|
|
icon_state = "kabob"
|
|
desc = "A delicious kabob"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/sosjerky
|
|
name = "Scaredy's Private Reserve Beef Jerky"
|
|
icon_state = "sosjerky"
|
|
desc = "Beef jerky made from the finest space cows."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/no_raisin
|
|
name = "4no Raisins"
|
|
icon_state = "4no_raisins"
|
|
desc = "Best raisins in the universe. Not sure why."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
|
|
name = "Space Twinkie"
|
|
icon_state = "space_twinkie"
|
|
desc = "Guaranteed to survive longer then you will."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("sugar", 4)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/tofu
|
|
name = "Tofu"
|
|
icon_state = "tofu"
|
|
desc = "We all love tofu."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 3
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers
|
|
name = "Cheesie Honkers"
|
|
icon_state = "cheesie_honkers"
|
|
desc = "Bite sized cheesie snacks that will honk all over your mouth"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/syndicake
|
|
name = "Syndi-Cakes"
|
|
icon_state = "syndi_cakes"
|
|
desc = "An extremely moist snack cake that tastes just as good after being nuked."
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
|
|
name = "Loaded Baked Potato"
|
|
desc = "Totally baked."
|
|
icon_state = "loadedbakedpotato"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 3
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/fries
|
|
name = "Space Fries"
|
|
desc = "AKA: French Fries, Freedom Fries, etc"
|
|
icon_state = "fries"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/cheesyfries
|
|
name = "Cheesy Fries"
|
|
desc = "Fries. Covered in cheese. Duh."
|
|
icon_state = "cheesyfries"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 6)
|
|
bitesize = 2
|
|
|
|
/////////////////////////////////////////////////Sliceable////////////////////////////////////////
|
|
// All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/meatbread
|
|
name = "meatbread loaf"
|
|
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
|
|
icon_state = "meatbread"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 40)
|
|
bitesize = 2
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/))
|
|
W.visible_message(" \red <B>You slice the meatbread! </B>", 1)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
|
|
del(src)
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
|
|
name = "meatbread slice"
|
|
desc = "A slice of delicious meatbread."
|
|
icon_state = "meatbreadslice"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbread
|
|
name = "xenomeatbread loaf"
|
|
desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical."
|
|
icon_state = "xenomeatbread"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 5)
|
|
reagents.add_reagent("xenomicrobes", 35)
|
|
bitesize = 2
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/))
|
|
W.visible_message(" \red <B>You slice the xenomeatbread! </B>", 1)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
|
|
del(src)
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
|
|
name = "xenomeatbread slice"
|
|
desc = "A slice of delicious meatbread. Extra Heretical."
|
|
icon_state = "xenobreadslice"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 2)
|
|
reagents.add_reagent("xenomicrobes", 6)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/tofubread
|
|
name = "Tofubread"
|
|
icon_state = "Like meatbread but for vegans. Not guaranteed to give superpowers."
|
|
icon_state = "tofubread"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 40)
|
|
bitesize = 2
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/))
|
|
W.visible_message(" \red <B>You slice the tofubread! </B>", 1)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
|
|
del(src)
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
|
|
name = "Tofubread slice"
|
|
desc = "A slice of delicious tofubread."
|
|
icon_state = "tofubreadslice"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 8)
|
|
bitesize = 2
|
|
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/cheesewheel
|
|
name = "Cheese wheel"
|
|
desc = "A big wheel of delcious Cheddar."
|
|
icon_state = "cheesewheel"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 20)
|
|
bitesize = 2
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/kitchenknife /* || /obj/item/weapon/scalpel*/))
|
|
W.visible_message(" \red <B> You slice the cheese! </B>", 1)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
|
|
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
|
|
del(src)
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
|
|
name = "Cheese wedge"
|
|
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
|
|
icon_state = "cheesewedge"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("nutriment", 4)
|
|
bitesize = 2
|
|
|
|
/obj/item/weapon/reagent_containers/food/snacks/banana
|
|
name = "Banana"
|
|
desc = "A banana."
|
|
icon = 'items.dmi'
|
|
icon_state = "banana"
|
|
item_state = "banana"
|
|
On_Consume()
|
|
var/mob/M = usr
|
|
var/obj/item/weapon/bananapeel/W = new /obj/item/weapon/bananapeel( M )
|
|
M << "\blue You peel the banana."
|
|
if (M.hand)
|
|
M.l_hand = W
|
|
else
|
|
M.r_hand = W
|
|
W.layer = 20
|
|
W.add_fingerprint(M)
|
|
New()
|
|
..()
|
|
reagents.add_reagent("banana", 5)
|
|
bitesize = 5
|
|
src.pixel_x = rand(-5.0, 5)
|
|
src.pixel_y = rand(-5.0, 5)
|
|
|
|
///////////////////////////////////////////////Condiments
|
|
//Notes by Darem: The condiments food-subtype is for stuff you don't actually eat but you use to modify existing food. They all
|
|
// leave empty containers when used up and can be filled/re-filled with other items. Formatting for first section is identical
|
|
// to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code.
|
|
|
|
/obj/item/weapon/reagent_containers/food/condiment
|
|
on_reagent_change()
|
|
if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall")
|
|
return
|
|
if(reagents.reagent_list.len > 0)
|
|
switch(reagents.get_master_reagent_id())
|
|
if("ketchup")
|
|
name = "Ketchup"
|
|
desc = "You feel more American already."
|
|
icon_state = "ketchup"
|
|
if("capsaicin")
|
|
name = "Hotsauce"
|
|
desc = "You can almost TASTE the stomach ulcers now!"
|
|
icon_state = "hotsauce"
|
|
if("enzyme")
|
|
name = "Universal Enzyme"
|
|
desc = "Used in cooking various dishes."
|
|
icon_state = "enzyme"
|
|
if("soysauce")
|
|
name = "Soy Sauce"
|
|
desc = "A salty soy-based flavoring."
|
|
icon_state = "soysauce"
|
|
if("frostoil")
|
|
name = "Coldsauce"
|
|
desc = "Leaves the tongue numb in it's passage."
|
|
icon_state = "coldsauce"
|
|
if("sodiumchloride")
|
|
name = "Salt Shaker"
|
|
desc = "Salt. From space oceans, presumably."
|
|
icon_state = "saltshaker"
|
|
if("blackpepper")
|
|
name = "Pepper Mill"
|
|
desc = "Often used to flavor food or make people sneeze."
|
|
icon_state = "peppermillsmall"
|
|
if("cornoil")
|
|
name = "Corn Oil"
|
|
desc = "A delicious oil used in cooking. Made from corn."
|
|
icon_state = "oliveoil"
|
|
else
|
|
name = "Misc Condiment Bottle"
|
|
desc = "A mixture of various condiments"
|
|
icon_state = "mixedcondiments"
|
|
else
|
|
icon_state = "emptycondiment"
|
|
name = "Condiment Bottle"
|
|
desc = "An empty condiment bottle."
|
|
return
|
|
|
|
/obj/item/weapon/reagent_containers/food/condiment/enzyme
|
|
name = "Universal Enzyme"
|
|
desc = "Used in cooking various dishes."
|
|
icon_state = "enzyme"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("enzyme", 50)
|
|
|
|
/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then
|
|
name = "Salt Shaker" // a large one.
|
|
desc = "Salt. From space oceans, presumably."
|
|
icon_state = "saltshakersmall"
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(20)
|
|
reagents = R
|
|
R.my_atom = src
|
|
reagents.add_reagent("sodiumchloride", 20)
|
|
|
|
/obj/item/weapon/reagent_containers/food/condiment/peppermill
|
|
name = "Pepper Mill"
|
|
desc = "Often used to flavor food or make people sneeze."
|
|
icon_state = "peppermillsmall"
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(20)
|
|
reagents = R
|
|
R.my_atom = src
|
|
reagents.add_reagent("blackpepper", 20)
|
|
|
|
|
|
///////////////////////////////////////////////Drinks
|
|
//Notes by Darem: Drinks are simply containers that start preloaded. Unlike condiments, the contents can be ingested directly
|
|
// rather then having to add it to something else first. They should only contain liquids. They have a default container size of 50.
|
|
// Formatting is the same as food.
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/milk
|
|
name = "Space Milk"
|
|
desc = "It's milk. White and nutritious goodness!"
|
|
icon_state = "milk"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("milk", 50)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/soymilk
|
|
name = "SoyMilk"
|
|
desc = "It's soy milk. White and nutritious goodness!"
|
|
icon_state = "soymilk"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("soymilk", 50)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/coffee
|
|
name = "Robust Coffee"
|
|
desc = "Careful, the beverage you're about to enjoy is extremely hot."
|
|
icon_state = "coffee"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("coffee", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/cola
|
|
name = "Space Cola"
|
|
desc = "Cola. in space."
|
|
icon_state = "cola"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("cola", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/beer
|
|
name = "Space Beer"
|
|
desc = "Beer. In space."
|
|
icon_state = "beer"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("beer", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/ale
|
|
name = "Magm-Ale"
|
|
desc = "A true dorf's drink of choice."
|
|
icon_state = "alebottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("ale", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/space_mountain_wind
|
|
name = "Space Mountain Wind"
|
|
desc = "Blows right through you like a space wind."
|
|
icon_state = "space_mountain_wind"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("spacemountainwind", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/thirteenloko
|
|
name = "Thirteen Loko"
|
|
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsably."
|
|
icon_state = "thirteen_loko"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("thirteenloko", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/dr_gibb
|
|
name = "Dr. Gibb"
|
|
desc = "A delicious mixture of 42 different flavors."
|
|
icon_state = "dr_gibb"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("dr_gibb", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/starkist
|
|
name = "Star-kist"
|
|
desc = "The taste of a star in liquid form."
|
|
icon_state = "starkist"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("cola", 15)
|
|
reagents.add_reagent("orangejuice", 15)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/space_up
|
|
name = "Space-Up"
|
|
desc = "Tastes like a hull breach in your mouth."
|
|
icon_state = "space-up"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("space_up", 30)
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/sillycup
|
|
name = "Paper Cup"
|
|
desc = "A paper water cup."
|
|
icon_state = "water_cup_e"
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(10)
|
|
reagents = R
|
|
R.my_atom = src
|
|
src.pixel_x = rand(-10.0, 10)
|
|
src.pixel_y = rand(-10.0, 10)
|
|
on_reagent_change()
|
|
if(reagents.total_volume)
|
|
icon_state = "water_cup"
|
|
else
|
|
icon_state = "water_cup_e"
|
|
|
|
///////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
|
|
//Notes by Darem: Functionally identical to regular drinks. The only difference is that the default bottle size is 100.
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(100)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/gin
|
|
name = "Griffeater Gin"
|
|
desc = "A bottle of high quality gin, produced in the New London Space Station."
|
|
icon_state = "ginbottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("gin", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey
|
|
name = "Uncle Git's Special Reserve"
|
|
desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES."
|
|
icon_state = "whiskeybottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("whiskey", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka
|
|
name = "Tunguska Triple Distilled"
|
|
desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide."
|
|
icon_state = "vodkabottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("vodka", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla
|
|
name = "Caccavo Guaranteed Quality Tequilla"
|
|
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
|
|
icon_state = "tequillabottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("tequilla", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/rum
|
|
name = "Captain Pete's Cuban Spiced Rum"
|
|
desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle."
|
|
icon_state = "rumbottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("rum", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth
|
|
name = "Goldeneye Vermouth"
|
|
desc = "Sweet, sweet dryness~"
|
|
icon_state = "vermouthbottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("vermouth", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua
|
|
name = "Robert Robust's Coffee Liqueur"
|
|
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK"
|
|
icon_state = "kahluabottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("kahlua", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac
|
|
name = "Chateau De Baton Premium Cognac"
|
|
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time."
|
|
icon_state = "cognacbottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("cognac", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/wine
|
|
name = "Doublebeard Bearded Special Wine"
|
|
desc = "A faint aura of unease and asspainery surrounds the bottle."
|
|
icon_state = "winebottle"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("wine", 100)
|
|
|
|
//////////////////////////JUICES AND STUFF ///////////////////////
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
|
|
name = "Orange Juice"
|
|
desc = "Full of vitamins and deliciousness!"
|
|
icon_state = "orangejuice"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("orangejuice", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/cream
|
|
name = "Milk Cream"
|
|
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
|
|
icon_state = "cream"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("cream", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice
|
|
name = "Tomato Juice"
|
|
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
|
|
icon_state = "tomatojuice"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("tomatojuice", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice
|
|
name = "Lime Juice"
|
|
desc = "Sweet-sour goodness."
|
|
icon_state = "limejuice"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("limejuice", 100)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/tonic
|
|
name = "T-Borg's Tonic Water"
|
|
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
|
icon_state = "tonic"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("tonic", 50)
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/sodawater
|
|
name = "Soda Water"
|
|
desc = "A can of soda water. Why not make a scotch and soda?"
|
|
icon_state = "sodawater"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("sodawater", 50)
|
|
|
|
|
|
//Pills
|
|
/obj/item/weapon/reagent_containers/pill/antitox
|
|
name = "Anti-toxins pill"
|
|
desc = "Neutralizes many common toxins."
|
|
icon_state = "pill17"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("anti_toxin", 50)
|
|
|
|
/obj/item/weapon/reagent_containers/pill/tox
|
|
name = "Toxins pill"
|
|
desc = "Highly toxic."
|
|
icon_state = "pill5"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("toxin", 50)
|
|
|
|
/obj/item/weapon/reagent_containers/pill/stox
|
|
name = "Sleeping pill"
|
|
desc = "Commonly used to treat insomnia."
|
|
icon_state = "pill8"
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("stoxin", 30)
|
|
|
|
/obj/item/weapon/reagent_containers/pill/kelotane
|
|
name = "Kelotane pill"
|
|
desc = "Used to treat burns."
|
|
icon_state = "pill11"
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("kelotane", 30)
|
|
|
|
/obj/item/weapon/reagent_containers/pill/inaprovaline
|
|
name = "Inaprovaline pill"
|
|
desc = "Used to stabilize patients."
|
|
icon_state = "pill20"
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("inaprovaline", 30)
|
|
|
|
/obj/item/weapon/reagent_containers/pill/dexalin
|
|
name = "Dexalin pill"
|
|
desc = "Used to treat oxygen deprivation."
|
|
icon_state = "pill16"
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("dexalin", 30)
|
|
|
|
//Dispensers
|
|
/obj/reagent_dispensers/watertank
|
|
name = "watertank"
|
|
desc = "A watertank"
|
|
icon = 'objects.dmi'
|
|
icon_state = "watertank"
|
|
amount_per_transfer_from_this = 10
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("water",1000)
|
|
|
|
/obj/reagent_dispensers/fueltank
|
|
name = "fueltank"
|
|
desc = "A fueltank"
|
|
icon = 'objects.dmi'
|
|
icon_state = "weldtank"
|
|
amount_per_transfer_from_this = 10
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("fuel",1000)
|
|
|
|
/obj/reagent_dispensers/fueltank/blob_act()
|
|
explosion(src.loc,0,1,5,7,10)
|
|
if(src)
|
|
del(src)
|
|
|
|
/obj/reagent_dispensers/fueltank/ex_act()
|
|
explosion(src.loc,-1,0,2)
|
|
if(src)
|
|
del(src)
|
|
|
|
/obj/reagent_dispensers/water_cooler
|
|
name = "Water-Cooler"
|
|
desc = "A machine that dispenses water to drink"
|
|
amount_per_transfer_from_this = 5
|
|
icon = 'vending.dmi'
|
|
icon_state = "water_cooler"
|
|
New()
|
|
..()
|
|
anchored = 1
|
|
reagents.add_reagent("water",500)
|
|
|
|
|
|
/obj/reagent_dispensers/beerkeg
|
|
name = "beer keg"
|
|
desc = "A beer keg"
|
|
icon = 'objects.dmi'
|
|
icon_state = "beertankTEMP"
|
|
amount_per_transfer_from_this = 10
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("beer",1000)
|
|
|
|
/obj/reagent_dispensers/beerkeg/blob_act()
|
|
explosion(src.loc,0,3,5,7,10)
|
|
del(src)
|
|
|
|
|
|
//////////////////////////drinkingglass and shaker//
|
|
//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink
|
|
// itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass
|
|
// icon states.
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/shaker
|
|
name = "Shaker"
|
|
desc = "A metal shaker to mix drinks in."
|
|
icon_state = "shaker"
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(100)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/flask
|
|
name = "Captain's Flask"
|
|
desc = "A metal flask belonging to the captain"
|
|
icon_state = "flask"
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(30)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass
|
|
name = "glass"
|
|
desc = "Your standard drinking glass."
|
|
icon_state = "glass_empty"
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(50)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
on_reagent_change()
|
|
/* if(reagents.reagent_list.len > 1 )
|
|
icon_state = "glass_brown"
|
|
name = "Glass of Hooch"
|
|
desc = "Two or more drinks, mixed together."
|
|
else if(reagents.reagent_list.len == 1)
|
|
for(var/datum/reagent/R in reagents.reagent_list)
|
|
switch(R.id)*/
|
|
if (reagents.reagent_list.len > 0)
|
|
//mrid = R.get_master_reagent_id()
|
|
switch(reagents.get_master_reagent_id())
|
|
if("beer")
|
|
icon_state = "beerglass"
|
|
name = "Beer glass"
|
|
desc = "A freezing pint of beer"
|
|
if("beer2")
|
|
icon_state = "beerglass"
|
|
name = "Beer glass"
|
|
desc = "A freezing pint of beer"
|
|
if("ale")
|
|
icon_state = "aleglass"
|
|
name = "Ale glass"
|
|
desc = "A freezing pint of delicious Ale"
|
|
if("milk")
|
|
icon_state = "glass_white"
|
|
name = "Glass of milk"
|
|
desc = "White and nutritious goodness!"
|
|
if("cream")
|
|
icon_state = "glass_white"
|
|
name = "Glass of cream"
|
|
desc = "Ewwww..."
|
|
if("cola")
|
|
icon_state = "glass_brown"
|
|
name = "Glass of Space Cola"
|
|
desc = "A glass of refreshing Space Cola"
|
|
if("orangejuice")
|
|
icon_state = "glass_orange"
|
|
name = "Glass of Orange juice"
|
|
desc = "Vitamins! Yay!"
|
|
if("tomatojuice")
|
|
icon_state = "glass_red"
|
|
name = "Glass of Tomato juice"
|
|
desc = "Are you sure this is tomato juice?"
|
|
if("limejuice")
|
|
icon_state = "glass_green"
|
|
name = "Glass of Lime juice"
|
|
desc = "A glass of sweet-sour lime juice."
|
|
if("whiskey")
|
|
icon_state = "whiskeyglass"
|
|
name = "Glass of whiskey"
|
|
desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
|
|
if("gin")
|
|
icon_state = "ginvodkaglass"
|
|
name = "Glass of gin"
|
|
desc = "A crystal clear glass of Griffeater gin."
|
|
if("vodka")
|
|
icon_state = "ginvodkaglass"
|
|
name = "Glass of vodka"
|
|
desc = "The glass contain wodka. Xynta."
|
|
if("wine")
|
|
icon_state = "wineglass"
|
|
name = "Glass of wine"
|
|
desc = "A very classy looking drink."
|
|
if("cognac")
|
|
icon_state = "cognacglass"
|
|
name = "Glass of cognac"
|
|
desc = "Damn, you feel like some kind of French aristocrat just by holding this."
|
|
if ("kahlua")
|
|
icon_state = "kahluaglass"
|
|
name = "Glass of RR coffee Liquor"
|
|
desc = "DAMN, THIS THING LOOKS ROBUST"
|
|
if("vermouth")
|
|
icon_state = "vermouthglass"
|
|
name = "Glass of Vermouth"
|
|
desc = "You wonder why you're even drinking this straight."
|
|
if("tequilla")
|
|
icon_state = "tequillaglass"
|
|
name = "Glass of Tequilla"
|
|
desc = "Now all that's missing is the weird colored shades!"
|
|
if("rum")
|
|
icon_state = "rumglass"
|
|
name = "Glass of Rum"
|
|
desc = "Now you want to Pray for a pirate suit, don't you?"
|
|
if("gintonic")
|
|
icon_state = "gintonicglass"
|
|
name = "Gin and Tonic"
|
|
desc = "A mild but still great cocktail. Drink up, like a true Englishman."
|
|
if("whiskeycola")
|
|
icon_state = "whiskeycolaglass"
|
|
name = "Whiskey Cola"
|
|
desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
|
|
if("whiterussian")
|
|
icon_state = "whiterussianglass"
|
|
name = "White Russian"
|
|
desc = "A very nice looking drink. But that's just, like, your opinion, man."
|
|
if("screwdrivercocktail")
|
|
icon_state = "screwdriverglass"
|
|
name = "Screwdriver"
|
|
desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
|
|
if("bloodymary")
|
|
icon_state = "bloodymaryglass"
|
|
name = "Bloody Mary"
|
|
desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
|
|
if("martini")
|
|
icon_state = "martiniglass"
|
|
name = "Classic Martini"
|
|
desc = "Damn, the barman even stirred it, not shook it."
|
|
if("vodkamartini")
|
|
icon_state = "martiniglass"
|
|
name = "Vodka martini"
|
|
desc ="A bastardisation of the classic martini. Still great."
|
|
if("gargleblaster")
|
|
icon_state = "gargleblasterglass"
|
|
name = "Pan-Galactic Gargle Blaster"
|
|
desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy."
|
|
if("bravebull")
|
|
icon_state = "bravebullglass"
|
|
name = "Brave Bull"
|
|
desc = "Tequilla and Coffee liquor, brought together in a mouthwatering mixture. Drink up."
|
|
if("tequillasunrise")
|
|
icon_state = "tequillasunriseglass"
|
|
name = "Tequilla Sunrise"
|
|
desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
|
|
if("toxinsspecial")
|
|
icon_state = "toxinsspecialglass"
|
|
name = "Toxins Special"
|
|
desc = "Whoah, this thing is on FIRE"
|
|
if("beepskysmash")
|
|
icon_state = "beepskysmashglass"
|
|
name = "Beepsky Smash"
|
|
desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
|
|
if("doctorsdelight")
|
|
icon_state = "doctorsdelightglass"
|
|
name = "Doctor's Delight"
|
|
desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
|
|
if("manlydorf")
|
|
icon_state = "manlydorfglass"
|
|
name = "The Manly Dorf"
|
|
desc = "A manly concotion made from Ale and Beer. Intended for true men only."
|
|
if("irishcream")
|
|
icon_state = "irishcreamglass"
|
|
name = "Irish Cream"
|
|
desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
|
|
if("cubalibre")
|
|
icon_state = "cubalibreglass"
|
|
name = "Cuba Libre"
|
|
desc = "A classic mix of rum and cola."
|
|
if("irishcream")
|
|
icon_state = "irishcreamglass"
|
|
name = "Irish Cream"
|
|
desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
|
|
if("cubalibre")
|
|
icon_state = "cubalibreglass"
|
|
name = "Cuba Libre"
|
|
desc = "A classic mix of rum and cola."
|
|
if("b52")
|
|
icon_state = "b52glass"
|
|
name = "B-52"
|
|
desc = "Kahlua, Irish Cream, and congac. You will get bombed."
|
|
if("longislandicedtea")
|
|
icon_state = "longislandicedteaglass"
|
|
name = "Long Island Iced Tea"
|
|
desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
|
if("margarita")
|
|
icon_state = "margaritaglass"
|
|
name = "Margarita"
|
|
desc = "On the rocks with salt on the rim. Arriba~!"
|
|
if("blackrussian")
|
|
icon_state = "blackrussianglass"
|
|
name = "Black Russian"
|
|
desc = "For the lactose-intolerant. Still as classy as a White Russian."
|
|
if("vodkatonic")
|
|
icon_state = "vodkatonicglass"
|
|
name = "Vodka and Tonic"
|
|
desc = "For when a gin and tonic isn't russian enough."
|
|
if("manhattan")
|
|
icon_state = "manhattanglass"
|
|
name = "Manhattan"
|
|
desc = "The Detective's undercover drink of choice. He never could stomach gin..."
|
|
if("ginfizz")
|
|
icon_state = "ginfizzglass"
|
|
name = "Gin Fizz"
|
|
desc = "Refreshingly lemony, deliciously dry."
|
|
if("irishcoffee")
|
|
icon_state = "irishcoffeeglass"
|
|
name = "Irish Coffee"
|
|
desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
|
|
if("hooch")
|
|
icon_state = "glass_brown2"
|
|
name = "Hooch"
|
|
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
|
if("whiskeysoda")
|
|
icon_state = "whiskeysodaglass2"
|
|
name = "Whiskey Soda"
|
|
desc = "Ultimate refreshment."
|
|
if("tonic")
|
|
icon_state = "glass_clear"
|
|
name = "Glass of Tonic Water"
|
|
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
|
if("sodawater")
|
|
icon_state = "glass_clear"
|
|
name = "Glass of Soda Water"
|
|
desc = "Soda water. Why not make a scotch and soda?"
|
|
if("water")
|
|
icon_state = "glass_clear"
|
|
name = "Glass of Water"
|
|
desc = "Are you really that boring?"
|
|
if("spacemountainwind")
|
|
icon_state = "Space_mountain_wind_glass"
|
|
name = "Glass of Space Mountain Wind"
|
|
desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
|
|
if("thirteenloko")
|
|
icon_state = "thirteen_loko_glass"
|
|
name = "Glass of Thirteen Loko"
|
|
desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass"
|
|
if("dr_gibb")
|
|
icon_state = "dr_gibb_glass"
|
|
name = "Glass of Dr. Gibb"
|
|
desc = "Dr. Gibb. Not as dangerous as the name might imply."
|
|
if("space_up")
|
|
icon_state = "space-up_glass"
|
|
name = "Glass of Space-up"
|
|
desc = "Space-up. It helps keep your cool."
|
|
if("moonshine")
|
|
icon_state = "glass_clear"
|
|
name = "Moonshine"
|
|
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
|
if("soymilk")
|
|
icon_state = "glass_white"
|
|
name = "Glass of soy milk"
|
|
desc = "White and nutritious soy goodness!"
|
|
else
|
|
icon_state ="glass_brown"
|
|
name = "Glass of ..what?"
|
|
desc = "You can't really tell what this is."
|
|
else
|
|
icon_state = "glass_empty"
|
|
name = "Drinking glass"
|
|
desc = "Your standard drinking glass"
|
|
return
|
|
|
|
///jar
|
|
|
|
/obj/item/weapon/reagent_containers/food/drinks/jar
|
|
name = "empty jar"
|
|
desc = "A jar. You're not sure what it's supposed to hold."
|
|
icon_state = "jar"
|
|
item_state = "beaker"
|
|
New()
|
|
..()
|
|
reagents.add_reagent("metroid", 50)
|
|
|
|
on_reagent_change()
|
|
if (reagents.reagent_list.len > 0)
|
|
switch(reagents.get_master_reagent_id())
|
|
if("metroid")
|
|
icon_state = "jar_metroid"
|
|
name = "metroid jam"
|
|
desc = "A jar of metroid jam. Delicious!"
|
|
else
|
|
icon_state ="jar_what"
|
|
name = "jar of something"
|
|
desc = "You can't really tell what this is."
|
|
else
|
|
icon_state = "jar"
|
|
name = "empty jar"
|
|
desc = "A jar. You're not sure what it's supposed to hold."
|
|
return
|