Removes All Weapons

This commit is contained in:
Fox McCloud
2018-04-15 16:25:56 -04:00
parent 8b576c4d42
commit 5c4aa9b3fd
1100 changed files with 17642 additions and 17666 deletions
@@ -14,7 +14,7 @@
var/energy = 100
var/max_energy = 100
var/amount = 30
var/obj/item/weapon/reagent_containers/beaker = null
var/obj/item/reagent_containers/beaker = null
var/recharged = 0
var/hackedcheck = 0
var/list/dispensable_reagents = list("hydrogen", "lithium", "carbon", "nitrogen", "oxygen", "fluorine",
@@ -63,13 +63,13 @@
overlays.Cut()
var/amount = pick(3,3,4)
var/list/options = list()
options[/obj/item/weapon/stock_parts/capacitor/adv] = "Add an advanced capacitor to fix it."
options[/obj/item/weapon/stock_parts/console_screen] = "Replace the console screen to fix it."
options[/obj/item/weapon/stock_parts/manipulator/pico] = "Upgrade to a pico manipulator to fix it."
options[/obj/item/weapon/stock_parts/matter_bin/super] = "Give it a super matter bin to fix it."
options[/obj/item/weapon/stock_parts/cell/super] = "Replace the reagent synthesizer with a super capacity cell to fix it."
options[/obj/item/stock_parts/capacitor/adv] = "Add an advanced capacitor to fix it."
options[/obj/item/stock_parts/console_screen] = "Replace the console screen to fix it."
options[/obj/item/stock_parts/manipulator/pico] = "Upgrade to a pico manipulator to fix it."
options[/obj/item/stock_parts/matter_bin/super] = "Give it a super matter bin to fix it."
options[/obj/item/stock_parts/cell/super] = "Replace the reagent synthesizer with a super capacity cell to fix it."
options[/obj/item/device/mass_spectrometer/adv] = "Replace the reagent scanner with an advanced mass spectrometer to fix it"
options[/obj/item/weapon/stock_parts/micro_laser/high] = "Repair the reagent synthesizer with an high-power micro-laser to fix it"
options[/obj/item/stock_parts/micro_laser/high] = "Repair the reagent synthesizer with an high-power micro-laser to fix it"
options[/obj/item/device/reagent_scanner/adv] = "Replace the reagent scanner with an advanced reagent scanner to fix it"
options[/obj/item/stack/nanopaste] = "Apply some nanopaste to the broken nozzles to fix it."
options[/obj/item/stack/sheet/plasteel] = "Surround the outside with a plasteel cover to fix it."
@@ -166,7 +166,7 @@
if(href_list["dispense"])
if(dispensable_reagents.Find(href_list["dispense"]) && beaker != null)
var/obj/item/weapon/reagent_containers/glass/B = beaker
var/obj/item/reagent_containers/glass/B = beaker
var/datum/reagents/R = B.reagents
var/space = R.maximum_volume - R.total_volume
@@ -182,21 +182,21 @@
if(href_list["removeamount"])
var/amount = text2num(href_list["removeamount"])
if(isnum(amount) && (amount > 0))
var/obj/item/weapon/reagent_containers/glass/B = beaker
var/obj/item/reagent_containers/glass/B = beaker
var/datum/reagents/R = B.reagents
var/id = href_list["remove"]
R.remove_reagent(id, amount)
if(href_list["ejectBeaker"])
if(beaker)
var/obj/item/weapon/reagent_containers/glass/B = beaker
var/obj/item/reagent_containers/glass/B = beaker
B.forceMove(loc)
beaker = null
overlays.Cut()
add_fingerprint(usr)
return 1 // update UIs attached to this object
/obj/machinery/chem_dispenser/attackby(obj/item/weapon/reagent_containers/B, mob/user, params)
/obj/machinery/chem_dispenser/attackby(obj/item/reagent_containers/B, mob/user, params)
if(isrobot(user))
return
@@ -217,7 +217,7 @@
to_chat(user, "<span class='warning'>Something is already loaded into the machine.</span>")
return
if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food/drinks))
if(istype(B, /obj/item/reagent_containers/glass) || istype(B, /obj/item/reagent_containers/food/drinks))
beaker = B
if(!user.drop_item())
to_chat(user, "<span class='warning'>[B] is stuck to you!</span>")
@@ -231,7 +231,7 @@
overlays += icon_beaker
return
/obj/machinery/chem_dispenser/attackby(obj/item/weapon/B, mob/user, params)
/obj/machinery/chem_dispenser/attackby(obj/item/B, mob/user, params)
..()
if(istype(B, /obj/item/device/multitool))
if(hackedcheck == 0)
@@ -304,46 +304,46 @@
/obj/machinery/chem_dispenser/constructable/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/chem_dispenser(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/stock_parts/cell/super(null)
component_parts += new /obj/item/circuitboard/chem_dispenser(null)
component_parts += new /obj/item/stock_parts/matter_bin(null)
component_parts += new /obj/item/stock_parts/matter_bin(null)
component_parts += new /obj/item/stock_parts/manipulator(null)
component_parts += new /obj/item/stock_parts/capacitor(null)
component_parts += new /obj/item/stock_parts/console_screen(null)
component_parts += new /obj/item/stock_parts/cell/super(null)
RefreshParts()
/obj/machinery/chem_dispenser/constructable/upgraded/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/chem_dispenser(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null)
component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null)
component_parts += new /obj/item/circuitboard/chem_dispenser(null)
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
component_parts += new /obj/item/stock_parts/manipulator/pico(null)
component_parts += new /obj/item/stock_parts/capacitor/super(null)
component_parts += new /obj/item/stock_parts/console_screen(null)
component_parts += new /obj/item/stock_parts/cell/hyper(null)
RefreshParts()
/obj/machinery/chem_dispenser/constructable/RefreshParts()
var/time = 0
var/temp_energy = 0
var/i
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
temp_energy += M.rating
temp_energy--
max_energy = temp_energy * 5 //max energy = (bin1.rating + bin2.rating - 1) * 5, 5 on lowest 25 on highest
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
for(var/obj/item/stock_parts/capacitor/C in component_parts)
time += C.rating
for(var/obj/item/weapon/stock_parts/cell/P in component_parts)
for(var/obj/item/stock_parts/cell/P in component_parts)
time += round(P.maxcharge, 10000) / 10000
recharge_delay = 10 / (time/2) //delay between recharges, double the usual time on lowest 33% less than usual on highest
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
for(var/obj/item/stock_parts/manipulator/M in component_parts)
for(i=1, i<=M.rating, i++)
dispensable_reagents = sortList(dispensable_reagents | special_reagents[i])
/obj/machinery/chem_dispenser/constructable/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/reagent_containers/glass))
if(istype(I, /obj/item/reagent_containers/glass))
if(panel_open)
to_chat(user, "<span class='notice'>Close the maintenance panel first.</span>")
return
@@ -357,7 +357,7 @@
if(exchange_parts(user, I))
return
if(istype(I, /obj/item/weapon/wrench))
if(istype(I, /obj/item/wrench))
playsound(src, I.usesound, 50, 1)
if(anchored)
anchored = 0
@@ -367,9 +367,9 @@
to_chat(user, "<span class='caution'>[src] is now secured.</span>")
if(panel_open)
if(istype(I, /obj/item/weapon/crowbar))
if(istype(I, /obj/item/crowbar))
if(beaker)
var/obj/item/weapon/reagent_containers/glass/B = beaker
var/obj/item/reagent_containers/glass/B = beaker
B.forceMove(loc)
beaker = null
default_deconstruction_crowbar(I)
@@ -6,7 +6,7 @@
icon_state = "mixer0b"
use_power = 1
idle_power_usage = 40
var/obj/item/weapon/reagent_containers/beaker = null
var/obj/item/reagent_containers/beaker = null
var/desired_temp = 300
var/heater_coefficient = 0.03
var/on = FALSE
@@ -14,22 +14,22 @@
/obj/machinery/chem_heater/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/chem_heater(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/circuitboard/chem_heater(null)
component_parts += new /obj/item/stock_parts/micro_laser(null)
component_parts += new /obj/item/stock_parts/console_screen(null)
RefreshParts()
/obj/machinery/chem_heater/upgraded/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/chem_heater(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/circuitboard/chem_heater(null)
component_parts += new /obj/item/stock_parts/micro_laser/ultra(null)
component_parts += new /obj/item/stock_parts/console_screen(null)
RefreshParts()
/obj/machinery/chem_heater/RefreshParts()
heater_coefficient = 0.03
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts)
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
heater_coefficient *= M.rating
/obj/machinery/chem_heater/process()
@@ -72,7 +72,7 @@
if(isrobot(user))
return
if(istype(I, /obj/item/weapon/reagent_containers/glass))
if(istype(I, /obj/item/reagent_containers/glass))
if(beaker)
to_chat(user, "<span class='notice'>A beaker is already loaded into the machine.</span>")
return
@@ -91,7 +91,7 @@
return
if(panel_open)
if(istype(I, /obj/item/weapon/crowbar))
if(istype(I, /obj/item/crowbar))
eject_beaker()
default_deconstruction_crowbar(I)
return 1
@@ -6,8 +6,8 @@
icon_state = "mixer0"
use_power = 1
idle_power_usage = 20
var/obj/item/weapon/reagent_containers/beaker = null
var/obj/item/weapon/storage/pill_bottle/loaded_pill_bottle = null
var/obj/item/reagent_containers/beaker = null
var/obj/item/storage/pill_bottle/loaded_pill_bottle = null
var/mode = 0
var/condi = 0
var/useramount = 30 // Last used amount
@@ -43,9 +43,9 @@
spawn(rand(0, 15))
stat |= NOPOWER
/obj/machinery/chem_master/attackby(obj/item/weapon/B, mob/user, params)
/obj/machinery/chem_master/attackby(obj/item/B, mob/user, params)
if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
if(istype(B, /obj/item/reagent_containers/glass) || istype(B, /obj/item/reagent_containers/food/drinks/drinkingglass))
if(beaker)
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
@@ -59,7 +59,7 @@
SSnanoui.update_uis(src)
icon_state = "mixer1"
else if(istype(B, /obj/item/weapon/storage/pill_bottle))
else if(istype(B, /obj/item/storage/pill_bottle))
if(loaded_pill_bottle)
to_chat(user, "<span class='warning'>A pill bottle is already loaded into the machine.</span>")
@@ -97,7 +97,7 @@
printing = 1
visible_message("<span class='notice'>[src] rattles and prints out a sheet of paper.</span>")
playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(loc)
var/obj/item/paper/P = new /obj/item/paper(loc)
P.info = "<CENTER><B>Chemical Analysis</B></CENTER><BR>"
P.info += "<b>Time of analysis:</b> [station_time_timestamp()]<br><br>"
P.info += "<b>Chemical name:</b> [href_list["name"]]<br>"
@@ -202,7 +202,7 @@
return
name = reject_bad_text(name)
while(count--)
var/obj/item/weapon/reagent_containers/food/pill/P = new/obj/item/weapon/reagent_containers/food/pill(loc)
var/obj/item/reagent_containers/food/pill/P = new/obj/item/reagent_containers/food/pill(loc)
if(!name) name = reagents.get_master_reagent_name()
P.name = "[name] pill"
P.pixel_x = rand(-7, 7) //random position
@@ -218,7 +218,7 @@
if(!name)
return
name = reject_bad_text(name)
var/obj/item/weapon/reagent_containers/food/condiment/pack/P = new/obj/item/weapon/reagent_containers/food/condiment/pack(loc)
var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(loc)
if(!name) name = reagents.get_master_reagent_name()
P.originalname = name
P.name = "[name] pack"
@@ -243,7 +243,7 @@
name = reject_bad_text(name)
var/is_medical_patch = chemical_safety_check(reagents)
while(count--)
var/obj/item/weapon/reagent_containers/food/pill/patch/P = new/obj/item/weapon/reagent_containers/food/pill/patch(loc)
var/obj/item/reagent_containers/food/pill/patch/P = new/obj/item/reagent_containers/food/pill/patch(loc)
if(!name) name = reagents.get_master_reagent_name()
P.name = "[name] patch"
P.pixel_x = rand(-7, 7) //random position
@@ -258,7 +258,7 @@
if(!name)
return
name = reject_bad_text(name)
var/obj/item/weapon/reagent_containers/glass/bottle/P = new/obj/item/weapon/reagent_containers/glass/bottle(loc)
var/obj/item/reagent_containers/glass/bottle/P = new/obj/item/reagent_containers/glass/bottle(loc)
if(!name) name = reagents.get_master_reagent_name()
P.name = "[name] bottle"
P.pixel_x = rand(-7, 7) //random position
@@ -266,7 +266,7 @@
P.icon_state = bottlesprite
reagents.trans_to(P,30)
else
var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(loc)
var/obj/item/reagent_containers/food/condiment/P = new/obj/item/reagent_containers/food/condiment(loc)
reagents.trans_to(P,50)
else if(href_list["change_pill"])
#define MAX_PILL_SPRITE 20 //max icon state of the pill sprites
@@ -384,11 +384,11 @@
/obj/machinery/chem_master/constructable/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/chem_master(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null)
component_parts += new /obj/item/circuitboard/chem_master(null)
component_parts += new /obj/item/stock_parts/manipulator(null)
component_parts += new /obj/item/stock_parts/console_screen(null)
component_parts += new /obj/item/reagent_containers/glass/beaker(null)
component_parts += new /obj/item/reagent_containers/glass/beaker(null)
/obj/machinery/chem_master/constructable/attackby(obj/item/B, mob/user, params)
@@ -406,7 +406,7 @@
return
if(panel_open)
if(istype(B, /obj/item/weapon/crowbar))
if(istype(B, /obj/item/crowbar))
default_deconstruction_crowbar(B)
return 1
else
@@ -5,12 +5,12 @@
anchored = 1
icon = 'icons/obj/chemical.dmi'
icon_state = "mixer0"
circuit = /obj/item/weapon/circuitboard/pandemic
circuit = /obj/item/circuitboard/pandemic
use_power = 1
idle_power_usage = 20
var/temp_html = ""
var/wait = null
var/obj/item/weapon/reagent_containers/beaker = null
var/obj/item/reagent_containers/beaker = null
/obj/machinery/computer/pandemic/New()
..()
@@ -76,7 +76,7 @@
if(href_list["create_vaccine"])
if(!wait)
var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(loc)
var/obj/item/reagent_containers/glass/bottle/B = new/obj/item/reagent_containers/glass/bottle(loc)
if(B)
B.pixel_x = rand(-3, 3)
B.pixel_y = rand(-3, 3)
@@ -121,7 +121,7 @@
var/name = stripped_input(usr,"Name:","Name the culture",D.name,MAX_NAME_LEN)
if(name == null || wait)
return
var/obj/item/weapon/reagent_containers/glass/bottle/B = new/obj/item/weapon/reagent_containers/glass/bottle(loc)
var/obj/item/reagent_containers/glass/bottle/B = new/obj/item/reagent_containers/glass/bottle(loc)
B.icon_state = "round_bottle"
B.pixel_x = rand(-3, 3)
B.pixel_y = rand(-3, 3)
@@ -274,7 +274,7 @@
/obj/machinery/computer/pandemic/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/reagent_containers) && (I.flags & OPENCONTAINER))
if(istype(I, /obj/item/reagent_containers) && (I.flags & OPENCONTAINER))
if(stat & (NOPOWER|BROKEN)) return
if(beaker)
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine!</span>")
@@ -288,7 +288,7 @@
updateUsrDialog()
icon_state = "mixer1"
else if(istype(I, /obj/item/weapon/screwdriver))
else if(istype(I, /obj/item/screwdriver))
if(beaker)
beaker.loc = get_turf(src)
..()
@@ -9,7 +9,7 @@
active_power_usage = 100
pass_flags = PASSTABLE
var/operating = 0
var/obj/item/weapon/reagent_containers/beaker = null
var/obj/item/reagent_containers/beaker = null
var/limit = 10
//IMPORTANT NOTE! A negative number is a multiplier, a positive number is a flat amount to add. 0 means equal to the amount of the original reagent
@@ -28,69 +28,69 @@
/obj/item/stack/sheet/mineral/tranquillite = list("nothing" = 20),
/obj/item/stack/sheet/mineral/silver = list("silver" = 20),
/obj/item/stack/sheet/mineral/gold = list("gold" = 20),
/obj/item/weapon/grown/nettle/basic = list("sacid" = 0),
/obj/item/weapon/grown/nettle/death = list("facid" = 0, "sacid" = 0),
/obj/item/weapon/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0),
/obj/item/grown/nettle/basic = list("sacid" = 0),
/obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0),
/obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0),
//Blender Stuff
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/oat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0),
/obj/item/weapon/reagent_containers/food/snacks/egg = list("egg" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/rice = list("rice" = -5),
/obj/item/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0),
/obj/item/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0),
/obj/item/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
/obj/item/reagent_containers/food/snacks/grown/oat = list("flour" = -5),
/obj/item/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
/obj/item/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0),
/obj/item/reagent_containers/food/snacks/egg = list("egg" = -5),
/obj/item/reagent_containers/food/snacks/grown/rice = list("rice" = -5),
//Grinder stuff, but only if dry
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0),
/obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
/obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0),
/obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
/obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0),
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
/obj/item/slime_extract = list(),
/obj/item/weapon/reagent_containers/food = list(),
/obj/item/weapon/reagent_containers/honeycomb = list()
/obj/item/reagent_containers/food = list(),
/obj/item/reagent_containers/honeycomb = list()
)
var/list/juice_items = list (
//Juicer Stuff
/obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot = list("carrotjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/berries = list("berryjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/banana = list("banana" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/potato = list("potato" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = list("lemonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = list("orangejuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = list("limejuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/pineapple = list("pineapplejuice" = 0)
/obj/item/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0),
/obj/item/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/carrot = list("carrotjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/berries = list("berryjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/banana = list("banana" = 0),
/obj/item/reagent_containers/food/snacks/grown/potato = list("potato" = 0),
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon = list("lemonjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/citrus/orange = list("orangejuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/citrus/lime = list("limejuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0),
/obj/item/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0),
/obj/item/reagent_containers/food/snacks/grown/pineapple = list("pineapplejuice" = 0)
)
var/list/dried_items = list(
//Grinder stuff, but only if dry,
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0)
/obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
/obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0),
/obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
/obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0)
)
var/list/holdingitems = list()
/obj/machinery/reagentgrinder/New()
..()
beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
return
/obj/machinery/reagentgrinder/Destroy()
@@ -112,7 +112,7 @@
if(default_unfasten_wrench(user, I))
return
if (istype(I, /obj/item/weapon/reagent_containers) && (I.flags & OPENCONTAINER) )
if (istype(I, /obj/item/reagent_containers) && (I.flags & OPENCONTAINER) )
if (!beaker)
if(!user.drop_item())
return 1
@@ -125,8 +125,8 @@
return 1 //no afterattack
if(is_type_in_list(I, dried_items))
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/grown))
var/obj/item/weapon/reagent_containers/food/snacks/grown/G = I
if(istype(I, /obj/item/reagent_containers/food/snacks/grown))
var/obj/item/reagent_containers/food/snacks/grown/G = I
if(!G.dry)
to_chat(user, "<span class='warning'>You must dry that first!</span>")
return 1
@@ -136,9 +136,9 @@
return 1
//Fill machine with a bag!
if(istype(I, /obj/item/weapon/storage/bag))
var/obj/item/weapon/storage/bag/B = I
for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in B.contents)
if(istype(I, /obj/item/storage/bag))
var/obj/item/storage/bag/B = I
for (var/obj/item/reagent_containers/food/snacks/grown/G in B.contents)
B.remove_from_storage(G, src)
holdingitems += G
if(holdingitems && holdingitems.len >= limit) //Sanity checking so the blender doesn't overfill
@@ -260,7 +260,7 @@
holdingitems = list()
updateUsrDialog()
/obj/machinery/reagentgrinder/proc/is_allowed(obj/item/weapon/reagent_containers/O)
/obj/machinery/reagentgrinder/proc/is_allowed(obj/item/reagent_containers/O)
for (var/i in blend_items)
if(istype(O, i))
return 1
@@ -271,17 +271,17 @@
if (istype(O, i))
return blend_items[i]
/obj/machinery/reagentgrinder/proc/get_allowed_snack_by_id(obj/item/weapon/reagent_containers/food/snacks/O)
/obj/machinery/reagentgrinder/proc/get_allowed_snack_by_id(obj/item/reagent_containers/food/snacks/O)
for(var/i in blend_items)
if(istype(O, i))
return blend_items[i]
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_id(obj/item/weapon/reagent_containers/food/snacks/O)
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_id(obj/item/reagent_containers/food/snacks/O)
for(var/i in juice_items)
if(istype(O, i))
return juice_items[i]
/obj/machinery/reagentgrinder/proc/get_grownweapon_amount(obj/item/weapon/grown/O)
/obj/machinery/reagentgrinder/proc/get_grownweapon_amount(obj/item/grown/O)
if (!istype(O) || !O.seed)
return 5
else if (O.seed.potency == -1)
@@ -289,7 +289,7 @@
else
return round(O.seed.potency)
/obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/weapon/reagent_containers/food/snacks/grown/O)
/obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/reagent_containers/food/snacks/grown/O)
if (!istype(O) || !O.seed)
return 5
else if (O.seed.potency == -1)
@@ -318,7 +318,7 @@
updateUsrDialog()
//Snacks
for (var/obj/item/weapon/reagent_containers/food/snacks/O in holdingitems)
for (var/obj/item/reagent_containers/food/snacks/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
@@ -356,7 +356,7 @@
updateUsrDialog()
//Snacks and Plants
for (var/obj/item/weapon/reagent_containers/food/snacks/O in holdingitems)
for (var/obj/item/reagent_containers/food/snacks/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
@@ -410,7 +410,7 @@
remove_object(O)
break
//Plants
for (var/obj/item/weapon/grown/O in holdingitems)
for (var/obj/item/grown/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
var/allowed = get_allowed_by_id(O)
@@ -440,7 +440,7 @@
remove_object(O)
//Everything else - Transfers reagents from it into beaker
for (var/obj/item/weapon/reagent_containers/O in holdingitems)
for (var/obj/item/reagent_containers/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
var/amount = O.reagents.total_volume
@@ -16,13 +16,13 @@
..()
/datum/reagent/consumable/ethanol/reaction_obj(obj/O, volume)
if(istype(O,/obj/item/weapon/paper))
var/obj/item/weapon/paper/paperaffected = O
if(istype(O,/obj/item/paper))
var/obj/item/paper/paperaffected = O
paperaffected.clearpaper()
to_chat(usr, "The solution melts away the ink on the paper.")
if(istype(O,/obj/item/weapon/book))
if(istype(O,/obj/item/book))
if(volume >= 5)
var/obj/item/weapon/book/affectedbook = O
var/obj/item/book/affectedbook = O
affectedbook.dat = null
to_chat(usr, "The solution melts away the ink on the book.")
else
@@ -528,7 +528,7 @@
/datum/reagent/consumable/chocolate/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/choc_pile(T)
new /obj/item/reagent_containers/food/snacks/choc_pile(T)
/datum/reagent/consumable/mugwort
name = "Mugwort"
@@ -589,7 +589,7 @@
/datum/reagent/consumable/cheese/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge(T)
new /obj/item/reagent_containers/food/snacks/cheesewedge(T)
/datum/reagent/consumable/fake_cheese
name = "Cheese substitute"
@@ -621,7 +621,7 @@
/datum/reagent/consumable/weird_cheese/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/weirdcheesewedge(T)
new /obj/item/reagent_containers/food/snacks/weirdcheesewedge(T)
/datum/reagent/consumable/beans
name = "Refried beans"
@@ -877,13 +877,13 @@
/datum/reagent/ectoplasm/reaction_turf(turf/T, volume)
if(volume >= 10 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T)
new /obj/item/reagent_containers/food/snacks/ectoplasm(T)
///Vomit///
/datum/reagent/consumable/bread/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/breadslice(T)
new /obj/item/reagent_containers/food/snacks/breadslice(T)
/datum/reagent/vomit
name = "Vomit"
@@ -11,7 +11,7 @@
T.color = color
/datum/reagent/paint/reaction_obj(obj/O, volume)
if(istype(O, /obj/item/weapon/light))
if(istype(O, /obj/item/light))
O.color = color
/datum/reagent/paint/red
@@ -101,8 +101,8 @@
/datum/reagent/water/reaction_obj(obj/O, volume)
O.extinguish()
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube))
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O
cube.Expand()
// Dehydrated carp
if(istype(O, /obj/item/toy/carpplushie/dehy_carp))
@@ -10,7 +10,7 @@
/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/tofu(location)
new /obj/item/reagent_containers/food/snacks/tofu(location)
/datum/chemical_reaction/chocolate_bar
name = "Chocolate Bar"
@@ -22,7 +22,7 @@
/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
new /obj/item/reagent_containers/food/snacks/chocolatebar(location)
/datum/chemical_reaction/chocolate_bar2
name = "Chocolate Bar"
@@ -34,7 +34,7 @@
/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
new /obj/item/reagent_containers/food/snacks/chocolatebar(location)
/datum/chemical_reaction/soysauce
name = "Soy Sauce"
@@ -54,7 +54,7 @@
/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location)
new /obj/item/reagent_containers/food/snacks/sliceable/cheesewheel(location)
/datum/chemical_reaction/syntiflesh
name = "Syntiflesh"
@@ -66,7 +66,7 @@
/datum/chemical_reaction/syntiflesh/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
new /obj/item/reagent_containers/food/snacks/meat/syntiflesh(location)
/datum/chemical_reaction/hot_ramen
name = "Hot Ramen"
@@ -100,7 +100,7 @@
/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
new /obj/item/reagent_containers/food/snacks/dough(location)
/datum/chemical_reaction/corn_syrup
name = "corn_syrup"
@@ -257,7 +257,7 @@
/datum/chemical_reaction/soapification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/weapon/soap/homemade(location)
new /obj/item/soap/homemade(location)
/datum/chemical_reaction/candlefication
name = "Candlefication"
@@ -280,7 +280,7 @@
/datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct(location)
new /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct(location)
/datum/chemical_reaction/lye
name = "lye"
@@ -39,7 +39,7 @@
/datum/chemical_reaction/slimemonkey/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
for(var/i = 1, i <= 3, i++)
var /obj/item/weapon/reagent_containers/food/snacks/monkeycube/M = new /obj/item/weapon/reagent_containers/food/snacks/monkeycube
var /obj/item/reagent_containers/food/snacks/monkeycube/M = new /obj/item/reagent_containers/food/snacks/monkeycube
M.forceMove(get_turf(holder.my_atom))
//Green
@@ -148,22 +148,22 @@
/datum/chemical_reaction/slimebork/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
var/list/blocked = list(/obj/item/weapon/reagent_containers/food/snacks,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/sliceable,
/obj/item/weapon/reagent_containers/food/snacks/margheritaslice,
/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice,
/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,
/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat/slab,
/obj/item/weapon/reagent_containers/food/snacks/grown,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
/obj/item/weapon/reagent_containers/food/snacks/deepfryholder
var/list/blocked = list(/obj/item/reagent_containers/food/snacks,
/obj/item/reagent_containers/food/snacks/breadslice,
/obj/item/reagent_containers/food/snacks/sliceable,
/obj/item/reagent_containers/food/snacks/margheritaslice,
/obj/item/reagent_containers/food/snacks/meatpizzaslice,
/obj/item/reagent_containers/food/snacks/mushroompizzaslice,
/obj/item/reagent_containers/food/snacks/vegetablepizzaslice,
/obj/item/reagent_containers/food/snacks/meat,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/grown,
/obj/item/reagent_containers/food/snacks/grown/mushroom,
/obj/item/reagent_containers/food/snacks/deepfryholder
)
blocked |= typesof(/obj/item/weapon/reagent_containers/food/snacks/customizable)
blocked |= typesof(/obj/item/reagent_containers/food/snacks/customizable)
var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - blocked
var/list/borks = typesof(/obj/item/reagent_containers/food/snacks) - blocked
// BORK BORK BORK
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
@@ -193,21 +193,21 @@
/datum/chemical_reaction/slimebork2/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
var/list/borks = subtypesof(/obj/item/weapon/reagent_containers/food/drinks)
var/list/blocked = list(/obj/item/weapon/reagent_containers/food/drinks/cans/adminbooze,
/obj/item/weapon/reagent_containers/food/drinks/cans/madminmalt,
/obj/item/weapon/reagent_containers/food/drinks/shaker,
/obj/item/weapon/reagent_containers/food/drinks/britcup,
/obj/item/weapon/reagent_containers/food/drinks/sillycup,
/obj/item/weapon/reagent_containers/food/drinks/cans,
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,
/obj/item/weapon/reagent_containers/food/drinks/bottle,
/obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
var/list/borks = subtypesof(/obj/item/reagent_containers/food/drinks)
var/list/blocked = list(/obj/item/reagent_containers/food/drinks/cans/adminbooze,
/obj/item/reagent_containers/food/drinks/cans/madminmalt,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/reagent_containers/food/drinks/britcup,
/obj/item/reagent_containers/food/drinks/sillycup,
/obj/item/reagent_containers/food/drinks/cans,
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
/obj/item/reagent_containers/food/drinks/drinkingglass,
/obj/item/reagent_containers/food/drinks/bottle,
/obj/item/reagent_containers/food/drinks/mushroom_bowl
)
blocked += typesof(/obj/item/weapon/reagent_containers/food/drinks/flask)
blocked += typesof(/obj/item/weapon/reagent_containers/food/drinks/trophy)
blocked += typesof(/obj/item/weapon/reagent_containers/food/drinks/cans/bottler)
blocked += typesof(/obj/item/reagent_containers/food/drinks/flask)
blocked += typesof(/obj/item/reagent_containers/food/drinks/trophy)
blocked += typesof(/obj/item/reagent_containers/food/drinks/cans/bottler)
borks -= blocked
// BORK BORK BORK
@@ -348,7 +348,7 @@
/datum/chemical_reaction/slimecell/on_reaction(datum/reagents/holder, created_volume)
feedback_add_details("slime_cores_used","[type]")
var/obj/item/weapon/stock_parts/cell/high/slime/P = new /obj/item/weapon/stock_parts/cell/high/slime
var/obj/item/stock_parts/cell/high/slime/P = new /obj/item/stock_parts/cell/high/slime
P.forceMove(get_turf(holder.my_atom))
/datum/chemical_reaction/slimeglow
@@ -564,7 +564,7 @@
/datum/chemical_reaction/slimecrystal/on_reaction(datum/reagents/holder, created_volume)
feedback_add_details("slime_cores_used","[type]")
if(holder.my_atom)
var/obj/item/weapon/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom))
var/obj/item/ore/bluespace_crystal/BC = new(get_turf(holder.my_atom))
BC.visible_message("<span class='notice'>The [BC.name] appears out of thin air!</span>")
//Cerulean
@@ -663,7 +663,7 @@
/datum/chemical_reaction/slimepaint/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
var/list/paints = subtypesof(/obj/item/weapon/reagent_containers/glass/paint)
var/list/paints = subtypesof(/obj/item/reagent_containers/glass/paint)
var/chosen = pick(paints)
var/obj/P = new chosen
if(P)
+11 -11
View File
@@ -1,4 +1,4 @@
/obj/item/weapon/reagent_containers
/obj/item/reagent_containers
name = "Container"
desc = "..."
icon = 'icons/obj/chemical.dmi'
@@ -11,7 +11,7 @@
var/spawned_disease = null
var/disease_amount = 20
/obj/item/weapon/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
/obj/item/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
set category = "Object"
set src in range(0)
@@ -25,10 +25,10 @@
if(N)
amount_per_transfer_from_this = N
/obj/item/weapon/reagent_containers/New()
/obj/item/reagent_containers/New()
..()
if(!possible_transfer_amounts)
verbs -= /obj/item/weapon/reagent_containers/verb/set_APTFT
verbs -= /obj/item/reagent_containers/verb/set_APTFT
create_reagents(volume)
if(spawned_disease)
var/datum/disease/F = new spawned_disease(0)
@@ -37,31 +37,31 @@
if(list_reagents)
reagents.add_reagent_list(list_reagents)
/obj/item/weapon/reagent_containers/ex_act()
/obj/item/reagent_containers/ex_act()
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
R.on_ex_act()
..()
/obj/item/weapon/reagent_containers/fire_act()
/obj/item/reagent_containers/fire_act()
reagents.chem_temp += 30
reagents.handle_reactions()
..()
/obj/item/weapon/reagent_containers/attack_self(mob/user)
/obj/item/reagent_containers/attack_self(mob/user)
return
// this prevented pills, food, and other things from being picked up by bags.
// possibly intentional, but removing it allows us to not duplicate functionality.
// -Sayu (storage conslidation)
/*
/obj/item/weapon/reagent_containers/attackby(obj/item/I as obj, mob/user as mob, params)
/obj/item/reagent_containers/attackby(obj/item/I as obj, mob/user as mob, params)
return
*/
/obj/item/weapon/reagent_containers/afterattack(obj/target, mob/user , flag)
/obj/item/reagent_containers/afterattack(obj/target, mob/user , flag)
return
/obj/item/weapon/reagent_containers/proc/reagentlist(obj/item/weapon/reagent_containers/snack) //Attack logs for regents in pills
/obj/item/reagent_containers/proc/reagentlist(obj/item/reagent_containers/snack) //Attack logs for regents in pills
var/data
if(snack && snack.reagents && snack.reagents.reagent_list && snack.reagents.reagent_list.len) //find a reagent list if there is and check if it has entries
for(var/datum/reagent/R in snack.reagents.reagent_list) //no reagents will be left behind
@@ -69,7 +69,7 @@
return data
else return "No reagents"
/obj/item/weapon/reagent_containers/wash(mob/user, atom/source)
/obj/item/reagent_containers/wash(mob/user, atom/source)
if(is_open_container())
if(reagents.total_volume >= volume)
to_chat(user, "<span class='warning'>[src] is full.</span>")
@@ -1,4 +1,4 @@
/obj/item/weapon/reagent_containers/blood
/obj/item/reagent_containers/blood
name = "BloodPack"
var/base_name = "BloodPack"
desc = "Contains blood used for transfusion."
@@ -9,18 +9,18 @@
var/blood_type = null
var/label_text = ""
/obj/item/weapon/reagent_containers/blood/New()
/obj/item/reagent_containers/blood/New()
..()
if(blood_type != null)
name = "BloodPack [blood_type]"
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
update_icon()
/obj/item/weapon/reagent_containers/blood/on_reagent_change()
/obj/item/reagent_containers/blood/on_reagent_change()
update_icon()
update_name_label()
/obj/item/weapon/reagent_containers/blood/update_icon()
/obj/item/reagent_containers/blood/update_icon()
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
if(0 to 9)
@@ -30,8 +30,8 @@
if(51 to INFINITY)
icon_state = "full"
/obj/item/weapon/reagent_containers/blood/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/pen) || istype(I, /obj/item/device/flashlight/pen))
/obj/item/reagent_containers/blood/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/pen) || istype(I, /obj/item/device/flashlight/pen))
var/tmp_label = sanitize(input(user, "Enter a label for [name]","Label",label_text))
if(length(tmp_label) > MAX_NAME_LEN)
to_chat(user, "<span class='warning'>The label can be at most [MAX_NAME_LEN] characters long.</span>")
@@ -40,7 +40,7 @@
label_text = tmp_label
update_name_label()
/obj/item/weapon/reagent_containers/blood/proc/update_name_label()
/obj/item/reagent_containers/blood/proc/update_name_label()
if(reagents.total_volume == 0)
base_name = "Empty BloodPack"
desc = "Seems pretty useless... Maybe if there were a way to fill it?"
@@ -52,35 +52,35 @@
else
name = "[base_name] ([label_text])"
/obj/item/weapon/reagent_containers/blood/random/New()
/obj/item/reagent_containers/blood/random/New()
blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-")
..()
/obj/item/weapon/reagent_containers/blood/APlus
/obj/item/reagent_containers/blood/APlus
blood_type = "A+"
label_text = "A+"
/obj/item/weapon/reagent_containers/blood/AMinus
/obj/item/reagent_containers/blood/AMinus
blood_type = "A-"
label_text = "A-"
/obj/item/weapon/reagent_containers/blood/BPlus
/obj/item/reagent_containers/blood/BPlus
blood_type = "B+"
label_text = "B+"
/obj/item/weapon/reagent_containers/blood/BMinus
/obj/item/reagent_containers/blood/BMinus
blood_type = "B-"
label_text = "B-"
/obj/item/weapon/reagent_containers/blood/OPlus
/obj/item/reagent_containers/blood/OPlus
blood_type = "O+"
label_text = "O+"
/obj/item/weapon/reagent_containers/blood/OMinus
/obj/item/reagent_containers/blood/OMinus
blood_type = "O-"
label_text = "O-"
/obj/item/weapon/reagent_containers/blood/empty
/obj/item/reagent_containers/blood/empty
name = "Empty BloodPack"
desc = "Seems pretty useless... Maybe if there were a way to fill it?"
icon_state = "empty"
@@ -1,5 +1,5 @@
/obj/item/weapon/reagent_containers/borghypo
/obj/item/reagent_containers/borghypo
name = "Cyborg Hypospray"
desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment."
icon = 'icons/obj/hypo.dmi'
@@ -18,13 +18,13 @@
var/list/reagent_ids = list("salglu_solution", "epinephrine", "spaceacillin", "charcoal", "hydrocodone")
//var/list/reagent_ids = list("salbutamol", "silver_sulfadiazine", "styptic_powder", "charcoal", "epinephrine", "spaceacillin", "hydrocodone")
/obj/item/weapon/reagent_containers/borghypo/surgeon
/obj/item/reagent_containers/borghypo/surgeon
reagent_ids = list("styptic_powder", "epinephrine", "salbutamol")
/obj/item/weapon/reagent_containers/borghypo/crisis
/obj/item/reagent_containers/borghypo/crisis
reagent_ids = list("salglu_solution", "epinephrine", "sal_acid")
/obj/item/weapon/reagent_containers/borghypo/syndicate
/obj/item/reagent_containers/borghypo/syndicate
name = "syndicate cyborg hypospray"
desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense."
icon_state = "borghypo_s"
@@ -33,18 +33,18 @@
reagent_ids = list("syndicate_nanites", "potass_iodide", "ether")
bypass_protection = 1
/obj/item/weapon/reagent_containers/borghypo/New()
/obj/item/reagent_containers/borghypo/New()
..()
for(var/R in reagent_ids)
add_reagent(R)
processing_objects.Add(src)
/obj/item/weapon/reagent_containers/borghypo/Destroy()
/obj/item/reagent_containers/borghypo/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
/obj/item/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
@@ -60,7 +60,7 @@
return 1
// Use this to add more chemicals for the borghypo to produce.
/obj/item/weapon/reagent_containers/borghypo/proc/add_reagent(reagent)
/obj/item/reagent_containers/borghypo/proc/add_reagent(reagent)
reagent_ids |= reagent
var/datum/reagents/RG = new(30)
RG.my_atom = src
@@ -69,7 +69,7 @@
var/datum/reagents/R = reagent_list[reagent_list.len]
R.add_reagent(reagent, 30)
/obj/item/weapon/reagent_containers/borghypo/attack(mob/living/M, mob/user)
/obj/item/reagent_containers/borghypo/attack(mob/living/M, mob/user)
var/datum/reagents/R = reagent_list[mode]
if(!R.total_volume)
to_chat(user, "<span class='warning'>The injector is empty.</span>")
@@ -94,7 +94,7 @@
to_chat(user, "<span class='notice'>[trans] units injected. [R.total_volume] units remaining.</span>")
return
/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user)
/obj/item/reagent_containers/borghypo/attack_self(mob/user)
playsound(loc, 'sound/effects/pop.ogg', 50, 0) //Change the mode
mode++
if(mode > reagent_list.len)
@@ -105,7 +105,7 @@
to_chat(user, "<span class='notice'>Synthesizer is now producing '[R.name]'.</span>")
return
/obj/item/weapon/reagent_containers/borghypo/examine(mob/user)
/obj/item/reagent_containers/borghypo/examine(mob/user)
if(!..(user, 2))
return
@@ -1,7 +1,7 @@
//Not to be confused with /obj/item/weapon/reagent_containers/food/drinks/bottle
//Not to be confused with /obj/item/reagent_containers/food/drinks/bottle
/obj/item/weapon/reagent_containers/glass/bottle
/obj/item/reagent_containers/glass/bottle
name = "bottle"
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
@@ -12,10 +12,10 @@
flags = OPENCONTAINER
volume = 30
/obj/item/weapon/reagent_containers/glass/bottle/on_reagent_change()
/obj/item/reagent_containers/glass/bottle/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/update_icon()
/obj/item/reagent_containers/glass/bottle/update_icon()
overlays.Cut()
underlays.Cut()
@@ -42,92 +42,92 @@
var/image/lid = image(icon, src, "lid_bottle")
overlays += lid
/obj/item/weapon/reagent_containers/glass/bottle/toxin
/obj/item/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
icon_state = "small_bottle"
list_reagents = list("toxin" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/cyanide
/obj/item/reagent_containers/glass/bottle/cyanide
name = "cyanide bottle"
desc = "A small bottle of cyanide. Bitter almonds?"
icon_state = "small_bottle"
list_reagents = list("cyanide" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
/obj/item/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
icon_state = "bottle"
list_reagents = list("mutagen" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
/obj/item/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
icon_state = "bottle"
list_reagents = list("ammonia" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
/obj/item/reagent_containers/glass/bottle/diethylamine
name = "diethylamine bottle"
desc = "A small bottle."
icon_state = "round_bottle"
list_reagents = list("diethylamine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/facid
/obj/item/reagent_containers/glass/bottle/facid
name = "Fluorosulfuric Acid Bottle"
desc = "A small bottle. Contains a small amount of Fluorosulfuric Acid"
icon_state = "round_bottle"
list_reagents = list("facid" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine
/obj/item/reagent_containers/glass/bottle/adminordrazine
name = "Adminordrazine Bottle"
desc = "A small bottle. Contains the liquid essence of the gods."
icon = 'icons/obj/drinks.dmi'
icon_state = "holyflask"
list_reagents = list("adminordrazine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
/obj/item/reagent_containers/glass/bottle/capsaicin
name = "Capsaicin Bottle"
desc = "A small bottle. Contains hot sauce."
icon_state = "round_bottle"
list_reagents = list("capsaicin" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/frostoil
/obj/item/reagent_containers/glass/bottle/frostoil
name = "Frost Oil Bottle"
desc = "A small bottle. Contains cold sauce."
icon_state = "round_bottle"
list_reagents = list("frostoil" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/morphine
/obj/item/reagent_containers/glass/bottle/morphine
name = "Morphine Bottle"
desc = "A small bottle. Contains morphine."
icon_state = "round_bottle"
list_reagents = list("morphine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/ether
/obj/item/reagent_containers/glass/bottle/ether
name = "Ether Bottle"
desc = "A small bottle. Contains ether."
icon_state = "round_bottle"
list_reagents = list("ether" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/charcoal
/obj/item/reagent_containers/glass/bottle/charcoal
name = "Charcoal Bottle"
desc = "A small bottle. Contains charcoal."
icon_state = "round_bottle"
list_reagents = list("charcoal" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine
/obj/item/reagent_containers/glass/bottle/epinephrine
name = "Epinephrine Bottle"
desc = "A small bottle. Contains epinephrine."
icon_state = "round_bottle"
list_reagents = list("epinephrine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/pancuronium
/obj/item/reagent_containers/glass/bottle/pancuronium
name = "Pancuronium Bottle"
desc = "A small bottle of pancuronium."
icon_state = "round_bottle"
list_reagents = list("pancuronium" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/sulfonal
/obj/item/reagent_containers/glass/bottle/sulfonal
name = "Sulfonal Bottle"
desc = "A small bottle of Sulfonal."
icon_state = "round_bottle"
@@ -135,198 +135,198 @@
//Reagent bottles
/obj/item/weapon/reagent_containers/glass/bottle/reagent
/obj/item/reagent_containers/glass/bottle/reagent
name = "Reagent Bottle"
desc = "A bottle for storing reagents"
icon_state = "reagent_bottle"
volume = 50
/obj/item/weapon/reagent_containers/glass/bottle/reagent/oil
/obj/item/reagent_containers/glass/bottle/reagent/oil
name = "Oil Bottle"
desc = "A reagent bottle. Contains oil."
list_reagents = list("oil" = 50)
pixel_x = -4
pixel_y = 6
/obj/item/weapon/reagent_containers/glass/bottle/reagent/phenol
/obj/item/reagent_containers/glass/bottle/reagent/phenol
name = "Phenol Bottle"
desc = "A reagent bottle. Contains phenol."
list_reagents = list("phenol" = 50)
pixel_x = 6
pixel_y = 6
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acetone
/obj/item/reagent_containers/glass/bottle/reagent/acetone
name = "Acetone Bottle"
desc = "A reagent bottle. Contains acetone."
list_reagents = list("acetone" = 50)
pixel_x = -4
/obj/item/weapon/reagent_containers/glass/bottle/reagent/ammonia
/obj/item/reagent_containers/glass/bottle/reagent/ammonia
name = "Ammonia Bottle"
desc = "A reagent bottle. Contains ammonia."
list_reagents = list("ammonia" = 50)
pixel_x = 6
/obj/item/weapon/reagent_containers/glass/bottle/reagent/diethylamine
/obj/item/reagent_containers/glass/bottle/reagent/diethylamine
name = "Diethylamine Bottle"
desc = "A reagent bottle. Contains diethylamine."
list_reagents = list("diethylamine" = 50)
pixel_x = -4
pixel_y = -6
/obj/item/weapon/reagent_containers/glass/bottle/reagent/acid
/obj/item/reagent_containers/glass/bottle/reagent/acid
name = "Acid Bottle"
desc = "A reagent bottle. Contains sulfuric acid."
list_reagents = list("sacid" = 50)
pixel_x = 6
pixel_y = -6
/obj/item/weapon/reagent_containers/glass/bottle/reagent/formaldehyde
/obj/item/reagent_containers/glass/bottle/reagent/formaldehyde
name = "Formaldehyde Bottle"
desc = "A reagent bottle. Contains formaldehyde."
list_reagents = list("formaldehyde" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/morphine
/obj/item/reagent_containers/glass/bottle/reagent/morphine
name = "Morphine Bottle"
desc = "A reagent bottle. Contains morphine."
list_reagents = list("morphine" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/insulin
/obj/item/reagent_containers/glass/bottle/reagent/insulin
name = "Insulin Bottle"
desc = "A reagent bottle. Contains insulin."
list_reagents = list("insulin" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hairgrownium
/obj/item/reagent_containers/glass/bottle/reagent/hairgrownium
name = "Hair Grow Gel"
desc = "A bottle full of a stimulative hair growth formula"
list_reagents = list("hairgrownium" = 50)
/obj/item/weapon/reagent_containers/glass/bottle/reagent/hair_dye
/obj/item/reagent_containers/glass/bottle/reagent/hair_dye
name = "Quantum Hair Dye Bottle"
desc = "A bottle of the ever-changing quantum hair dye."
list_reagents = list("hair_dye" = 50)
////////////////////Traitor Poison Bottle//////////////////////////////
/obj/item/weapon/reagent_containers/glass/bottle/traitor
/obj/item/reagent_containers/glass/bottle/traitor
desc = "It has a small skull and crossbones on it. Uh-oh!"
possible_transfer_amounts = list(5,10,15,25,30,40)
volume = 40
/obj/item/weapon/reagent_containers/glass/bottle/traitor/New()
/obj/item/reagent_containers/glass/bottle/traitor/New()
..()
reagents.add_reagent(pick_list("chemistry_tools.json", "traitor_poison_bottle"), 40)
/obj/item/weapon/reagent_containers/glass/bottle/plasma
/obj/item/reagent_containers/glass/bottle/plasma
name = "plasma dust bottle"
desc = "A small bottle of plasma in dust form. Extremely toxic and reacts with micro-organisms inside blood."
icon_state = "wide_bottle"
list_reagents = list("plasma_dust" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine
/obj/item/reagent_containers/glass/bottle/diphenhydramine
name = "diphenhydramine bottle"
desc = "A small bottle of diphenhydramine."
icon_state = "bottle"
list_reagents = list("diphenhydramine" = 30)
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
/obj/item/reagent_containers/glass/bottle/flu_virion
name = "Flu virion culture bottle"
desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/advance/flu
/obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion
/obj/item/reagent_containers/glass/bottle/epiglottis_virion
name = "Epiglottis virion culture bottle"
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/advance/voice_change
/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion
/obj/item/reagent_containers/glass/bottle/liver_enhance_virion
name = "Liver enhancement virion culture bottle"
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/advance/heal
/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion
/obj/item/reagent_containers/glass/bottle/hullucigen_virion
name = "Hullucigen virion culture bottle"
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/advance/hullucigen
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
/obj/item/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_state = "round_bottle"
spawned_disease = /datum/disease/pierrot_throat
/obj/item/weapon/reagent_containers/glass/bottle/cold
/obj/item/reagent_containers/glass/bottle/cold
name = "Rhinovirus culture bottle"
desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/advance/cold
/obj/item/weapon/reagent_containers/glass/bottle/retrovirus
/obj/item/reagent_containers/glass/bottle/retrovirus
name = "Retrovirus culture bottle"
desc = "A small bottle. Contains a retrovirus culture in a synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/dna_retrovirus
/obj/item/weapon/reagent_containers/glass/bottle/gbs
/obj/item/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_state = "round_bottle"
amount_per_transfer_from_this = 5
spawned_disease = /datum/disease/gbs
/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs
/obj/item/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_state = "round_bottle"
spawned_disease = /datum/disease/fake_gbs
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
/obj/item/reagent_containers/glass/bottle/brainrot
name = "Brainrot culture bottle"
desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium."
icon_state = "round_bottle"
spawned_disease = /datum/disease/brainrot
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
/obj/item/reagent_containers/glass/bottle/magnitis
name = "Magnitis culture bottle"
desc = "A small bottle. Contains a small dosage of Fukkos Miracos."
icon_state = "round_bottle"
spawned_disease = /datum/disease/magnitis
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
/obj/item/reagent_containers/glass/bottle/wizarditis
name = "Wizarditis culture bottle"
desc = "A small bottle. Contains a sample of Rincewindus Vulgaris."
icon_state = "round_bottle"
spawned_disease = /datum/disease/wizarditis
/obj/item/weapon/reagent_containers/glass/bottle/anxiety
/obj/item/reagent_containers/glass/bottle/anxiety
name = "Severe Anxiety culture bottle"
desc = "A small bottle. Contains a sample of Lepidopticides."
icon_state = "round_bottle"
spawned_disease = /datum/disease/anxiety
/obj/item/weapon/reagent_containers/glass/bottle/beesease
/obj/item/reagent_containers/glass/bottle/beesease
name = "Beesease culture bottle"
desc = "A small bottle. Contains a sample of invasive Apidae."
icon_state = "round_bottle"
spawned_disease = /datum/disease/beesease
/obj/item/weapon/reagent_containers/glass/bottle/fluspanish
/obj/item/reagent_containers/glass/bottle/fluspanish
name = "Spanish flu culture bottle"
desc = "A small bottle. Contains a sample of Inquisitius."
icon_state = "round_bottle"
spawned_disease = /datum/disease/fluspanish
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosis
/obj/item/reagent_containers/glass/bottle/tuberculosis
name = "Fungal Tuberculosis culture bottle"
desc = "A small bottle. Contains a sample of Fungal Tubercle bacillus."
icon_state = "round_bottle"
spawned_disease = /datum/disease/tuberculosis
/obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure
/obj/item/reagent_containers/glass/bottle/tuberculosiscure
name = "BVAK bottle"
desc = "A small bottle containing Bio Virus Antidote Kit."
icon_state = "wide_bottle"
@@ -2,7 +2,7 @@
/// Droppers. ///
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/dropper
/obj/item/reagent_containers/dropper
name = "dropper"
desc = "A dropper. Transfers 5 units."
icon_state = "dropper"
@@ -11,16 +11,16 @@
possible_transfer_amounts = list(1, 2, 3, 4, 5)
volume = 5
/obj/item/weapon/reagent_containers/dropper/on_reagent_change()
/obj/item/reagent_containers/dropper/on_reagent_change()
if(!reagents.total_volume)
icon_state = "[initial(icon_state)]"
else
icon_state = "[initial(icon_state)]1"
/obj/item/weapon/reagent_containers/dropper/attack(mob/living/M, mob/living/user, def_zone)
/obj/item/reagent_containers/dropper/attack(mob/living/M, mob/living/user, def_zone)
return
/obj/item/weapon/reagent_containers/dropper/afterattack(atom/target, mob/user, proximity)
/obj/item/reagent_containers/dropper/afterattack(atom/target, mob/user, proximity)
if(!proximity)
return
var/to_transfer = 0
@@ -71,7 +71,7 @@
return
if(reagents.total_volume)
if(!target.is_open_container() && !(istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/weapon/reagent_containers/food/pill)) && !istype(target, /obj/item/clothing/mask/cigarette))
if(!target.is_open_container() && !(istype(target, /obj/item/reagent_containers/food) && !istype(target, /obj/item/reagent_containers/food/pill)) && !istype(target, /obj/item/clothing/mask/cigarette))
to_chat(user, "<span class='warning'>You cannot directly fill this object.</span>")
return
@@ -95,14 +95,14 @@
to_chat(user, "<span class='notice'>You fill [src] with [to_transfer] units of the solution.</span>")
/obj/item/weapon/reagent_containers/dropper/cyborg
/obj/item/reagent_containers/dropper/cyborg
name = "Industrial Dropper"
desc = "A larger dropper. Transfers 10 units."
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
volume = 10
/obj/item/weapon/reagent_containers/dropper/precision
/obj/item/reagent_containers/dropper/precision
name = "pipette"
desc = "A high precision pippette. Holds 1 unit."
icon_state = "pipette"
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/// (Mixing)Glass.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/glass
/obj/item/reagent_containers/glass
name = " "
var/base_name = " "
desc = " "
@@ -24,12 +24,12 @@
/obj/structure/closet,
/obj/structure/sink,
/obj/structure/toilet,
/obj/item/weapon/storage,
/obj/item/storage,
/obj/machinery/atmospherics/unary/cryo_cell,
/obj/machinery/dna_scannernew,
/obj/item/weapon/grenade/chem_grenade,
/obj/item/grenade/chem_grenade,
/mob/living/simple_animal/bot/medbot,
/obj/item/weapon/storage/secure/safe,
/obj/item/storage/secure/safe,
/obj/machinery/iv_drip,
/obj/machinery/computer/pandemic,
/obj/machinery/disposal,
@@ -41,20 +41,20 @@
/obj/machinery/hydroponics,
/obj/machinery/constructable_frame,
/obj/machinery/icemachine,
/obj/item/weapon/bombcore/chemical,
/obj/item/bombcore/chemical,
/obj/machinery/vending)
/obj/item/weapon/reagent_containers/glass/New()
/obj/item/reagent_containers/glass/New()
..()
base_name = name
/obj/item/weapon/reagent_containers/glass/examine(mob/user)
/obj/item/reagent_containers/glass/examine(mob/user)
if(!..(user, 2))
return
if(!is_open_container())
to_chat(user, "<span class='notice'>Airtight lid seals it completely.</span>")
/obj/item/weapon/reagent_containers/glass/attack_self()
/obj/item/reagent_containers/glass/attack_self()
..()
if(is_open_container())
to_chat(usr, "<span class='notice'>You put the lid on [src].</span>")
@@ -64,7 +64,7 @@
flags |= OPENCONTAINER
update_icon()
/obj/item/weapon/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
if(!proximity)
return
if(!is_open_container())
@@ -121,7 +121,7 @@
var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
to_chat(user, "<span class='notice'>You transfer [trans] units of the solution to [target].</span>")
else if(istype(target, /obj/item/weapon/reagent_containers/glass) && !target.is_open_container())
else if(istype(target, /obj/item/reagent_containers/glass) && !target.is_open_container())
to_chat(user, "<span class='warning'>You cannot fill [target] while it is sealed.</span>")
return
@@ -135,7 +135,7 @@
return
/obj/item/weapon/reagent_containers/glass/attackby(obj/item/I, mob/user, params)
/obj/item/reagent_containers/glass/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
return
if(is_hot(I))
@@ -143,7 +143,7 @@
reagents.chem_temp += 15
to_chat(user, "<span class='notice'>You heat [src] with [I].</span>")
reagents.handle_reactions()
if(istype(I, /obj/item/weapon/pen) || istype(I, /obj/item/device/flashlight/pen))
if(istype(I, /obj/item/pen) || istype(I, /obj/item/device/flashlight/pen))
var/tmp_label = sanitize(input(user, "Enter a label for [name]","Label",label_text))
if(length(tmp_label) > MAX_NAME_LEN)
to_chat(user, "<span class='warning'>The label can be at most [MAX_NAME_LEN] characters long.</span>")
@@ -151,16 +151,16 @@
to_chat(user, "<span class='notice'>You set the label to \"[tmp_label]\".</span>")
label_text = tmp_label
update_name_label()
if(istype(I,/obj/item/weapon/storage/bag))
if(istype(I,/obj/item/storage/bag))
..()
/obj/item/weapon/reagent_containers/glass/proc/update_name_label()
/obj/item/reagent_containers/glass/proc/update_name_label()
if(label_text == "")
name = base_name
else
name = "[base_name] ([label_text])"
/obj/item/weapon/reagent_containers/glass/beaker
/obj/item/reagent_containers/glass/beaker
name = "beaker"
desc = "A beaker. Can hold up to 50 units."
icon = 'icons/obj/chemical.dmi'
@@ -170,10 +170,10 @@
var/obj/item/device/assembly_holder/assembly = null
var/can_assembly = 1
/obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change()
/obj/item/reagent_containers/glass/beaker/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/update_icon()
/obj/item/reagent_containers/glass/beaker/update_icon()
overlays.Cut()
if(reagents.total_volume)
@@ -205,7 +205,7 @@
if(assembly)
overlays += "assembly"
/obj/item/weapon/reagent_containers/glass/beaker/verb/remove_assembly()
/obj/item/reagent_containers/glass/beaker/verb/remove_assembly()
set name = "Remove Assembly"
set category = "Object"
set src in usr
@@ -219,12 +219,12 @@
else
to_chat(usr, "<span class='notice'>There is no assembly to remove.</span>")
/obj/item/weapon/reagent_containers/glass/beaker/proc/heat_beaker()
/obj/item/reagent_containers/glass/beaker/proc/heat_beaker()
if(reagents)
reagents.chem_temp += 30
reagents.handle_reactions()
/obj/item/weapon/reagent_containers/glass/beaker/attackby(obj/item/weapon/W, mob/user, params)
/obj/item/reagent_containers/glass/beaker/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/device/assembly_holder) && can_assembly)
if(assembly)
to_chat(usr, "<span class='warning'>[src] already has an assembly.</span>")
@@ -236,27 +236,27 @@
else
..()
/obj/item/weapon/reagent_containers/glass/beaker/HasProximity(atom/movable/AM)
/obj/item/reagent_containers/glass/beaker/HasProximity(atom/movable/AM)
if(assembly)
assembly.HasProximity(AM)
/obj/item/weapon/reagent_containers/glass/beaker/Crossed(atom/movable/AM)
/obj/item/reagent_containers/glass/beaker/Crossed(atom/movable/AM)
if(assembly)
assembly.Crossed(AM)
/obj/item/weapon/reagent_containers/glass/beaker/on_found(mob/finder) //for mousetraps
/obj/item/reagent_containers/glass/beaker/on_found(mob/finder) //for mousetraps
if(assembly)
assembly.on_found(finder)
/obj/item/weapon/reagent_containers/glass/beaker/hear_talk(mob/living/M, msg)
/obj/item/reagent_containers/glass/beaker/hear_talk(mob/living/M, msg)
if(assembly)
assembly.hear_talk(M, msg)
/obj/item/weapon/reagent_containers/glass/beaker/hear_message(mob/living/M, msg)
/obj/item/reagent_containers/glass/beaker/hear_message(mob/living/M, msg)
if(assembly)
assembly.hear_message(M, msg)
/obj/item/weapon/reagent_containers/glass/beaker/large
/obj/item/reagent_containers/glass/beaker/large
name = "large beaker"
desc = "A large beaker. Can hold up to 100 units."
icon_state = "beakerlarge"
@@ -266,7 +266,7 @@
possible_transfer_amounts = list(5,10,15,25,30,50,100)
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/beaker/vial
/obj/item/reagent_containers/glass/beaker/vial
name = "vial"
desc = "A small glass vial. Can hold up to 25 units."
icon_state = "vial"
@@ -277,7 +277,7 @@
flags = OPENCONTAINER
can_assembly = 0
/obj/item/weapon/reagent_containers/glass/beaker/drugs
/obj/item/reagent_containers/glass/beaker/drugs
name = "baggie"
desc = "A baggie. Can hold up to 10 units."
icon_state = "baggie"
@@ -287,7 +287,7 @@
flags = OPENCONTAINER
can_assembly = 0
/obj/item/weapon/reagent_containers/glass/beaker/noreact
/obj/item/reagent_containers/glass/beaker/noreact
name = "cryostasis beaker"
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
icon_state = "beakernoreact"
@@ -297,11 +297,11 @@
origin_tech = "materials=2;engineering=3;plasmatech=3"
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/beaker/noreact/New()
/obj/item/reagent_containers/glass/beaker/noreact/New()
..()
reagents.set_reacting(FALSE)
/obj/item/weapon/reagent_containers/glass/beaker/bluespace
/obj/item/reagent_containers/glass/beaker/bluespace
name = "bluespace beaker"
desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units."
icon_state = "beakerbluespace"
@@ -312,21 +312,21 @@
flags = OPENCONTAINER
origin_tech = "bluespace=5;materials=4;plasmatech=4"
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
/obj/item/reagent_containers/glass/beaker/cryoxadone
list_reagents = list("cryoxadone" = 30)
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric
/obj/item/reagent_containers/glass/beaker/sulphuric
list_reagents = list("sacid" = 50)
/obj/item/weapon/reagent_containers/glass/beaker/slime
/obj/item/reagent_containers/glass/beaker/slime
list_reagents = list("slimejelly" = 50)
/obj/item/weapon/reagent_containers/glass/beaker/drugs/meth
/obj/item/reagent_containers/glass/beaker/drugs/meth
list_reagents = list("methamphetamine" = 10)
/obj/item/weapon/reagent_containers/glass/bucket
/obj/item/reagent_containers/glass/bucket
desc = "It's a bucket."
name = "bucket"
icon = 'icons/obj/janitor.dmi'
@@ -341,18 +341,18 @@
slot_flags = SLOT_HEAD
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/bucket/equipped(mob/user, slot)
/obj/item/reagent_containers/glass/bucket/equipped(mob/user, slot)
..()
if(slot == slot_head && reagents.total_volume)
to_chat(user, "<span class='userdanger'>[src]'s contents spill all over you!</span>")
reagents.reaction(user, TOUCH)
reagents.clear_reagents()
/obj/item/weapon/reagent_containers/glass/bucket/attackby(obj/D, mob/user, params)
/obj/item/reagent_containers/glass/bucket/attackby(obj/D, mob/user, params)
if(isprox(D))
to_chat(user, "You add [D] to [src].")
qdel(D)
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
user.put_in_hands(new /obj/item/bucket_sensor)
user.unEquip(src)
qdel(src)
else
@@ -2,7 +2,7 @@
/// HYPOSPRAY
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/hypospray
/obj/item/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 = 'icons/obj/hypo.dmi'
@@ -15,7 +15,7 @@
slot_flags = SLOT_BELT
var/ignore_flags = 0
/obj/item/weapon/reagent_containers/hypospray/attack(mob/living/M, mob/user)
/obj/item/reagent_containers/hypospray/attack(mob/living/M, mob/user)
if(!reagents.total_volume)
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
@@ -41,10 +41,10 @@
return TRUE
/obj/item/weapon/reagent_containers/hypospray/CMO
/obj/item/reagent_containers/hypospray/CMO
list_reagents = list("omnizine" = 30)
/obj/item/weapon/reagent_containers/hypospray/combat
/obj/item/reagent_containers/hypospray/combat
name = "combat stimulant injector"
desc = "A modified air-needle autoinjector, used by support operatives to quickly heal injuries in combat."
amount_per_transfer_from_this = 10
@@ -54,12 +54,12 @@
ignore_flags = 1 // So they can heal their comrades.
list_reagents = list("epinephrine" = 30, "omnizine" = 30, "teporone" = 15)
/obj/item/weapon/reagent_containers/hypospray/combat/nanites
/obj/item/reagent_containers/hypospray/combat/nanites
desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with expensive medical nanites for rapid healing."
volume = 100
list_reagents = list("nanites" = 100)
/obj/item/weapon/reagent_containers/hypospray/autoinjector
/obj/item/reagent_containers/hypospray/autoinjector
name = "emergency autoinjector"
desc = "A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge."
icon_state = "autoinjector"
@@ -71,7 +71,7 @@
flags = null
list_reagents = list("epinephrine" = 10)
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M, mob/user)
/obj/item/reagent_containers/hypospray/autoinjector/attack(mob/M, mob/user)
if(!reagents.total_volume)
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
@@ -79,26 +79,26 @@
update_icon()
return TRUE
/obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon()
/obj/item/reagent_containers/hypospray/autoinjector/update_icon()
if(reagents.total_volume > 0)
icon_state = initial(icon_state)
else
icon_state = "[initial(icon_state)]0"
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine()
/obj/item/reagent_containers/hypospray/autoinjector/examine()
..()
if(reagents && reagents.reagent_list.len)
to_chat(usr, "<span class='notice'>It is currently loaded.</span>")
else
to_chat(usr, "<span class='notice'>It is spent.</span>")
/obj/item/weapon/reagent_containers/hypospray/autoinjector/teporone //basilisks
/obj/item/reagent_containers/hypospray/autoinjector/teporone //basilisks
name = "teporone autoinjector"
desc = "A rapid way to regulate your body's temperature in the event of a hardsuit malfunction."
icon_state = "lepopen"
list_reagents = list("teporone" = 10)
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack //goliath kiting
/obj/item/reagent_containers/hypospray/autoinjector/stimpack //goliath kiting
name = "stimpack autoinjector"
desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor."
icon_state = "stimpen"
@@ -106,7 +106,7 @@
amount_per_transfer_from_this = 20
list_reagents = list("methamphetamine" = 10, "coffee" = 10)
/obj/item/weapon/reagent_containers/hypospray/autoinjector/stimulants
/obj/item/reagent_containers/hypospray/autoinjector/stimulants
name = "Stimulants autoinjector"
desc = "Rapidly stimulates and regernates the body's organ system."
icon_state = "stimpen"
@@ -115,7 +115,7 @@
volume = 50
list_reagents = list("stimulants" = 50)
/obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium
/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium
name = "nanocalcium autoinjector"
desc = "After a short period of time the nanites will slow the body's systems and assist with bone repair. Nanomachines son."
icon_state = "bonepen"
@@ -124,6 +124,6 @@
volume = 30
list_reagents = list("nanocalcium" = 30)
/obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium/attack(mob/living/M, mob/user)
/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium/attack(mob/living/M, mob/user)
if(..())
playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, 1)
@@ -1,4 +1,4 @@
/obj/item/weapon/reagent_containers/food/pill/patch
/obj/item/reagent_containers/food/pill/patch
name = "chemical patch"
desc = "A chemical patch for touch based applications."
icon = 'icons/obj/chemical.dmi'
@@ -10,31 +10,31 @@
apply_method = "apply"
transfer_efficiency = 0.5 //patches aren't as effective at getting chemicals into the bloodstream.
/obj/item/weapon/reagent_containers/food/pill/patch/afterattack(obj/target, mob/user , proximity)
/obj/item/reagent_containers/food/pill/patch/afterattack(obj/target, mob/user , proximity)
return // thanks inheritance again
/obj/item/weapon/reagent_containers/food/pill/patch/styptic
/obj/item/reagent_containers/food/pill/patch/styptic
name = "healing patch"
desc = "Helps with brute injuries."
icon_state = "bandaid_brute"
instant_application = 1
list_reagents = list("styptic_powder" = 40)
/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf
/obj/item/reagent_containers/food/pill/patch/silver_sulf
name = "burn patch"
desc = "Helps with burn injuries."
icon_state = "bandaid_burn"
instant_application = 1
list_reagents = list("silver_sulfadiazine" = 40)
/obj/item/weapon/reagent_containers/food/pill/patch/synthflesh
/obj/item/reagent_containers/food/pill/patch/synthflesh
name = "syntheflesh patch"
desc = "Helps with burn injuries."
icon_state = "bandaid_med"
instant_application = 1
list_reagents = list("synthflesh" = 20)
/obj/item/weapon/reagent_containers/food/pill/patch/nicotine
/obj/item/reagent_containers/food/pill/patch/nicotine
name = "nicotine patch"
desc = "Helps temporarily curb the cravings of nicotine dependency."
list_reagents = list("nicotine" = 20)
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/// Pills.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/pill
/obj/item/reagent_containers/food/pill
name = "pill"
desc = "a pill."
icon = 'icons/obj/chemical.dmi'
@@ -12,15 +12,15 @@
consume_sound = null
taste = FALSE
/obj/item/weapon/reagent_containers/food/pill/New()
/obj/item/reagent_containers/food/pill/New()
..()
if(!icon_state)
icon_state = "pill[rand(1,20)]"
/obj/item/weapon/reagent_containers/food/pill/attack_self(mob/user)
/obj/item/reagent_containers/food/pill/attack_self(mob/user)
return
/obj/item/weapon/reagent_containers/food/pill/attack(mob/living/carbon/M, mob/user, def_zone)
/obj/item/reagent_containers/food/pill/attack(mob/living/carbon/M, mob/user, def_zone)
if(!istype(M))
return 0
bitesize = reagents.total_volume
@@ -30,7 +30,7 @@
return 1
return 0
/obj/item/weapon/reagent_containers/food/pill/afterattack(obj/target, mob/user, proximity)
/obj/item/reagent_containers/food/pill/afterattack(obj/target, mob/user, proximity)
if(!proximity)
return
@@ -51,67 +51,67 @@
////////////////////////////////////////////////////////////////////////////////
//Pills
/obj/item/weapon/reagent_containers/food/pill/tox
/obj/item/reagent_containers/food/pill/tox
name = "Toxins pill"
desc = "Highly toxic."
icon_state = "pill21"
list_reagents = list("toxin" = 50)
/obj/item/weapon/reagent_containers/food/pill/initropidril
/obj/item/reagent_containers/food/pill/initropidril
name = "initropidril pill"
desc = "Don't swallow this."
icon_state = "pill21"
list_reagents = list("initropidril" = 50)
/obj/item/weapon/reagent_containers/food/pill/adminordrazine
/obj/item/reagent_containers/food/pill/adminordrazine
name = "Adminordrazine pill"
desc = "It's magic. We don't have to explain it."
icon_state = "pill16"
list_reagents = list("adminordrazine" = 50)
/obj/item/weapon/reagent_containers/food/pill/methamphetamine
/obj/item/reagent_containers/food/pill/methamphetamine
name = "Methamphetamine pill"
desc = "Helps improve the ability to concentrate."
icon_state = "pill8"
list_reagents = list("methamphetamine" = 5)
/obj/item/weapon/reagent_containers/food/pill/haloperidol
/obj/item/reagent_containers/food/pill/haloperidol
name = "Haloperidol pill"
desc = "Haloperidol is an anti-psychotic use to treat psychiatric problems."
icon_state = "pill8"
list_reagents = list("haloperidol" = 15)
/obj/item/weapon/reagent_containers/food/pill/happy
/obj/item/reagent_containers/food/pill/happy
name = "Happy pill"
desc = "Happy happy joy joy!"
icon_state = "pill18"
list_reagents = list("space_drugs" = 15, "sugar" = 15)
/obj/item/weapon/reagent_containers/food/pill/zoom
/obj/item/reagent_containers/food/pill/zoom
name = "Zoom pill"
desc = "Zoooom!"
icon_state = "pill18"
list_reagents = list("synaptizine" = 5, "methamphetamine" = 5)
/obj/item/weapon/reagent_containers/food/pill/charcoal
/obj/item/reagent_containers/food/pill/charcoal
name = "Charcoal pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
list_reagents = list("charcoal" = 25)
/obj/item/weapon/reagent_containers/food/pill/salicylic
/obj/item/reagent_containers/food/pill/salicylic
name = "Salicylic Acid pill"
desc = "Commonly used to treat moderate pain and fevers."
icon_state = "pill4"
list_reagents = list("sal_acid" = 20)
/obj/item/weapon/reagent_containers/food/pill/salbutamol
/obj/item/reagent_containers/food/pill/salbutamol
name = "Salbutamol pill"
desc = "Used to treat respiratory distress."
icon_state = "pill8"
list_reagents = list("salbutamol" = 20)
/obj/item/weapon/reagent_containers/food/pill/hydrocodone
/obj/item/reagent_containers/food/pill/hydrocodone
name = "Hydrocodone pill"
desc = "Used to treat extreme pain."
icon_state = "pill6"
@@ -1,4 +1,4 @@
/obj/item/weapon/reagent_containers/spray
/obj/item/reagent_containers/spray
name = "spray bottle"
desc = "A spray bottle, with an unscrewable top."
icon = 'icons/obj/janitor.dmi'
@@ -17,9 +17,9 @@
possible_transfer_amounts = null
/obj/item/weapon/reagent_containers/spray/afterattack(atom/A, mob/user)
if(istype(A, /obj/item/weapon/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \
|| istype(A, /obj/item/weapon/reagent_containers) || istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics))
/obj/item/reagent_containers/spray/afterattack(atom/A, mob/user)
if(istype(A, /obj/item/storage) || istype(A, /obj/structure/table) || istype(A, /obj/structure/rack) || istype(A, /obj/structure/closet) \
|| istype(A, /obj/item/reagent_containers) || istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics))
return
if(istype(A, /obj/effect/proc_holder/spell))
@@ -60,7 +60,7 @@
return
/obj/item/weapon/reagent_containers/spray/proc/spray(var/atom/A)
/obj/item/reagent_containers/spray/proc/spray(var/atom/A)
var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src))
D.create_reagents(amount_per_transfer_from_this)
reagents.trans_to(D, amount_per_transfer_from_this, 1/spray_currentrange)
@@ -75,17 +75,17 @@
qdel(D)
/obj/item/weapon/reagent_containers/spray/attack_self(var/mob/user)
/obj/item/reagent_containers/spray/attack_self(var/mob/user)
amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10)
spray_currentrange = (spray_currentrange == 1 ? spray_maxrange : 1)
to_chat(user, "<span class='notice'>You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.</span>")
/obj/item/weapon/reagent_containers/spray/examine(mob/user)
/obj/item/reagent_containers/spray/examine(mob/user)
if(..(user, 0) && user == loc)
to_chat(user, "[round(reagents.total_volume)] units left.")
/obj/item/weapon/reagent_containers/spray/verb/empty()
/obj/item/reagent_containers/spray/verb/empty()
set name = "Empty Spray Bottle"
set category = "Object"
@@ -100,22 +100,22 @@
reagents.clear_reagents()
//space cleaner
/obj/item/weapon/reagent_containers/spray/cleaner
/obj/item/reagent_containers/spray/cleaner
name = "space cleaner"
desc = "BLAM!-brand non-foaming space cleaner!"
list_reagents = list("cleaner" = 250)
/obj/item/weapon/reagent_containers/spray/cleaner/drone
/obj/item/reagent_containers/spray/cleaner/drone
name = "space cleaner"
desc = "BLAM!-brand non-foaming space cleaner!"
volume = 50
list_reagents = list("cleaner" = 50)
//pepperspray
/obj/item/weapon/reagent_containers/spray/pepper
/obj/item/reagent_containers/spray/pepper
name = "pepperspray"
desc = "Manufactured by UhangInc, used to blind and down an opponent quickly."
icon = 'icons/obj/weapons.dmi'
icon = 'icons/obj/items.dmi'
icon_state = "pepperspray"
item_state = "pepperspray"
volume = 40
@@ -124,7 +124,7 @@
list_reagents = list("condensedcapsaicin" = 40)
//water flower
/obj/item/weapon/reagent_containers/spray/waterflower
/obj/item/reagent_containers/spray/waterflower
name = "water flower"
desc = "A seemingly innocent sunflower...with a twist."
icon = 'icons/obj/hydroponics/harvest.dmi'
@@ -134,11 +134,11 @@
volume = 10
list_reagents = list("water" = 10)
/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays
/obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays
return
//chemsprayer
/obj/item/weapon/reagent_containers/spray/chemsprayer
/obj/item/reagent_containers/spray/chemsprayer
name = "chem sprayer"
desc = "A utility used to spray large amounts of reagents in a given area."
icon = 'icons/obj/guns/projectile.dmi'
@@ -153,7 +153,7 @@
origin_tech = "combat=3;materials=3;engineering=3"
/obj/item/weapon/reagent_containers/spray/chemsprayer/spray(var/atom/A)
/obj/item/reagent_containers/spray/chemsprayer/spray(var/atom/A)
var/Sprays[3]
for(var/i=1, i<=3, i++) // intialize sprays
if(reagents.total_volume < 1) break
@@ -190,14 +190,14 @@
/obj/item/weapon/reagent_containers/spray/chemsprayer/attack_self(var/mob/user)
/obj/item/reagent_containers/spray/chemsprayer/attack_self(var/mob/user)
amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10)
to_chat(user, "<span class='notice'>You adjust the output switch. You'll now use [amount_per_transfer_from_this] units per spray.</span>")
// Plant-B-Gone
/obj/item/weapon/reagent_containers/spray/plantbgone // -- Skie
/obj/item/reagent_containers/spray/plantbgone // -- Skie
name = "Plant-B-Gone"
desc = "Kills those pesky weeds!"
icon = 'icons/obj/hydroponics/equipment.dmi'
@@ -5,7 +5,7 @@
#define SYRINGE_INJECT 1
#define SYRINGE_BROKEN 2
/obj/item/weapon/reagent_containers/syringe
/obj/item/reagent_containers/syringe
name = "Syringe"
desc = "A syringe."
icon = 'icons/goonstation/objects/syringe.dmi'
@@ -20,24 +20,24 @@
var/mode = SYRINGE_DRAW
var/projectile_type = /obj/item/projectile/bullet/dart/syringe
/obj/item/weapon/reagent_containers/syringe/New()
/obj/item/reagent_containers/syringe/New()
..()
if(list_reagents) //syringe starts in inject mode if its already got something inside
mode = SYRINGE_INJECT
update_icon()
/obj/item/weapon/reagent_containers/syringe/on_reagent_change()
/obj/item/reagent_containers/syringe/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/syringe/pickup(mob/user)
/obj/item/reagent_containers/syringe/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/syringe/dropped(mob/user)
/obj/item/reagent_containers/syringe/dropped(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user)
/obj/item/reagent_containers/syringe/attack_self(mob/user)
switch(mode)
if(SYRINGE_DRAW)
mode = SYRINGE_INJECT
@@ -47,19 +47,19 @@
return
update_icon()
/obj/item/weapon/reagent_containers/syringe/attack_hand()
/obj/item/reagent_containers/syringe/attack_hand()
..()
update_icon()
/obj/item/weapon/reagent_containers/syringe/attack(mob/living/M, mob/living/user, def_zone)
/obj/item/reagent_containers/syringe/attack(mob/living/M, mob/living/user, def_zone)
return
/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I, mob/user, params)
if(istype(I,/obj/item/weapon/storage/bag))
/obj/item/reagent_containers/syringe/attackby(obj/item/I, mob/user, params)
if(istype(I,/obj/item/storage/bag))
..()
return
/obj/item/weapon/reagent_containers/syringe/afterattack(atom/target, mob/user , proximity)
/obj/item/reagent_containers/syringe/afterattack(atom/target, mob/user , proximity)
if(!proximity)
return
if(!target.reagents)
@@ -120,7 +120,7 @@
to_chat(user, "<span class='notice'>[src] is empty.</span>")
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes))
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/storage/fancy/cigarettes))
to_chat(user, "<span class='warning'>You cannot directly fill [target]!</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
@@ -158,7 +158,7 @@
mode = SYRINGE_DRAW
update_icon()
/obj/item/weapon/reagent_containers/syringe/update_icon()
/obj/item/reagent_containers/syringe/update_icon()
if(mode == SYRINGE_BROKEN)
icon_state = "broken"
overlays.Cut()
@@ -184,7 +184,7 @@
filling.icon += mix_color_from_reagents(reagents.reagent_list)
overlays += filling
/obj/item/weapon/reagent_containers/ld50_syringe
/obj/item/reagent_containers/ld50_syringe
name = "Lethal Injection Syringe"
desc = "A syringe used for lethal injections."
icon = 'icons/goonstation/objects/syringe.dmi'
@@ -195,29 +195,29 @@
volume = 50
var/mode = SYRINGE_DRAW
/obj/item/weapon/reagent_containers/ld50_syringe/on_reagent_change()
/obj/item/reagent_containers/ld50_syringe/on_reagent_change()
update_icon()
/obj/item/weapon/reagent_containers/ld50_syringe/pickup(mob/user)
/obj/item/reagent_containers/ld50_syringe/pickup(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/ld50_syringe/dropped(mob/user)
/obj/item/reagent_containers/ld50_syringe/dropped(mob/user)
..()
update_icon()
/obj/item/weapon/reagent_containers/ld50_syringe/attack_self(mob/user)
/obj/item/reagent_containers/ld50_syringe/attack_self(mob/user)
mode = !mode
update_icon()
/obj/item/weapon/reagent_containers/ld50_syringe/attack_hand()
/obj/item/reagent_containers/ld50_syringe/attack_hand()
..()
update_icon()
/obj/item/weapon/reagent_containers/ld50_syringe/attackby(obj/item/I, mob/user)
/obj/item/reagent_containers/ld50_syringe/attackby(obj/item/I, mob/user)
return
/obj/item/weapon/reagent_containers/ld50_syringe/afterattack(obj/target, mob/user , flag)
/obj/item/reagent_containers/ld50_syringe/afterattack(obj/target, mob/user , flag)
if(!target.reagents)
return
@@ -252,9 +252,9 @@
if(!reagents.total_volume)
to_chat(user, "<span class='warning'>The Syringe is empty.</span>")
return
if(istype(target, /obj/item/weapon/implantcase/chem))
if(istype(target, /obj/item/implantcase/chem))
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food))
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/reagent_containers/food))
to_chat(user, "<span class='warning'>You cannot directly fill this object.</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
@@ -277,7 +277,7 @@
mode = SYRINGE_DRAW
update_icon()
/obj/item/weapon/reagent_containers/ld50_syringe/update_icon()
/obj/item/reagent_containers/ld50_syringe/update_icon()
var/rounded_vol = round(reagents.total_volume,50)
if(ismob(loc))
var/mode_t
@@ -297,30 +297,30 @@
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/syringe/antiviral
/obj/item/reagent_containers/syringe/antiviral
name = "Syringe (spaceacillin)"
desc = "Contains antiviral agents."
list_reagents = list("spaceacillin" = 15)
/obj/item/weapon/reagent_containers/ld50_syringe/lethal
/obj/item/reagent_containers/ld50_syringe/lethal
list_reagents = list("cyanide" = 10, "neurotoxin2" = 40)
/obj/item/weapon/reagent_containers/syringe/charcoal
/obj/item/reagent_containers/syringe/charcoal
name = "Syringe (charcoal)"
desc = "Contains charcoal - used to treat toxins and damage from toxins."
list_reagents = list("charcoal" = 15)
/obj/item/weapon/reagent_containers/syringe/epinephrine
/obj/item/reagent_containers/syringe/epinephrine
name = "Syringe (Epinephrine)"
desc = "Contains epinephrine - used to stabilize patients."
list_reagents = list("epinephrine" = 15)
/obj/item/weapon/reagent_containers/syringe/insulin
/obj/item/reagent_containers/syringe/insulin
name = "Syringe (insulin)"
desc = "Contains insulin - used to treat diabetes."
list_reagents = list("insulin" = 15)
/obj/item/weapon/reagent_containers/syringe/bioterror
/obj/item/reagent_containers/syringe/bioterror
name = "bioterror syringe"
desc = "Contains several paralyzing reagents."
list_reagents = list("neurotoxin" = 5, "capulettium_plus" = 5, "sodium_thiopental" = 5)
+5 -5
View File
@@ -10,7 +10,7 @@
var/tank_volume = 1000 //In units, how much the dispenser can hold
var/reagent_id = "water" //The ID of the reagent that the dispenser uses
/obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params)
/obj/structure/reagent_dispensers/attackby(obj/item/W, mob/user, params)
return
/obj/structure/reagent_dispensers/New()
@@ -136,11 +136,11 @@
test.Shift(EAST, 6)
overlays += test
if(istype(I, /obj/item/weapon/weldingtool))
if(istype(I, /obj/item/weldingtool))
if(!reagents.has_reagent("fuel"))
to_chat(user, "<span class='warning'>[src] is out of fuel!</span>")
return
var/obj/item/weapon/weldingtool/W = I
var/obj/item/weldingtool/W = I
if(!W.welding)
if(W.reagents.has_reagent("fuel", W.max_fuel))
to_chat(user, "<span class='warning'>Your [W] is already full!</span>")
@@ -211,11 +211,11 @@
to_chat(user, "<span class='warning'>There aren't any cups left!</span>")
return
user.visible_message("<span class='notice'>[user] takes a cup from [src].</span>", "<span class='notice'>You take a paper cup from [src].</span>")
var/obj/item/weapon/reagent_containers/food/drinks/sillycup/S = new(get_turf(src))
var/obj/item/reagent_containers/food/drinks/sillycup/S = new(get_turf(src))
user.put_in_hands(S)
paper_cups--
/obj/structure/reagent_dispensers/water_cooler/attackby(obj/item/weapon/W, mob/living/user, params)
/obj/structure/reagent_dispensers/water_cooler/attackby(obj/item/W, mob/living/user, params)
add_fingerprint(user)
user.changeNext_move(CLICK_CD_MELEE)
if(iswrench(W))