diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index b31ebab786f..2f3a569a6d0 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -67,9 +67,9 @@ var/global/list/autolathe_recipes_hidden = list( \
new /obj/item/ammo_box/c9mm(), \
new /obj/item/ammo_casing/shotgun(), \
new /obj/item/ammo_casing/shotgun/buckshot(), \
+ new /obj/item/ammo_casing/shotgun/dart(), \
new /obj/item/ammo_casing/shotgun/incendiary(), \
- /*new /obj/item/ammo_casing/shotgun/dart(), \
- new /obj/item/weapon/shield/riot(), */ \
+/* new /obj/item/weapon/shield/riot(),*/ \
)
/obj/machinery/autolathe
name = "autolathe"
diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm
index 624453380d3..2c437492097 100644
--- a/code/game/machinery/bots/medbot.dm
+++ b/code/game/machinery/bots/medbot.dm
@@ -50,8 +50,8 @@
treatment_oxy = "dexalin"
treatment_brute = "bicaridine"
treatment_fire = "kelotane"
- treatment_tox = "anti_toxin"
-
+ treatment_tox = "anti_toxin"
+
/obj/machinery/bot/medbot/mysterious
name = "\improper Mysterious Medibot"
desc = "International Medibot of mystery."
@@ -327,12 +327,17 @@
return
//Patient has moved away from us!
- else if(patient && path && path.len && (get_dist(patient,path[path.len]) > 2))
+ else if(patient && path.len && (get_dist(patient,path[path.len]) > 2))
path = list()
mode = BOT_IDLE
last_found = world.time
- if(!stationary_mode && patient && path.len == 0 && (get_dist(src,patient) > 1))
+ else if(stationary_mode && patient)
+ patient = null
+ mode = BOT_IDLE
+ last_found = world.time
+ return
+ if(patient && path.len == 0 && (get_dist(src,patient) > 1))
spawn(0)
path = AStar(loc, get_turf(patient), /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance_cardinal, 0, 30,id=botcard)
if(!path)
@@ -368,10 +373,10 @@
if(emagged == 2) //Everyone needs our medicine. (Our medicine is toxins)
return 1
-
+
if((skin == "bezerk") && (!("syndicate" in C.faction)))
return 0
-
+
if(declare_crit && C.health <= 0) //Critical condition! Call for help!
declare(C)
@@ -394,7 +399,7 @@
if((C.getToxLoss() >= heal_threshold) && (!C.reagents.has_reagent(treatment_tox)))
return 1
- if((C.virus2.len) && (!C.reagents.has_reagent(treatment_virus)))
+ if((C.virus2.len) && (!C.reagents.has_reagent(treatment_virus)))
for (var/ID in C.virus2)
if (ID in virusDB) // If the virus is known, the medbot is aware of it
return 1
@@ -423,20 +428,20 @@
var/reagent_id = null
if(emagged == 2) //Emagged! Time to poison everybody.
- reagent_id = "toxin"
-
+ reagent_id = "toxin"
+
else
if(treat_virus)
var/virus = 0
- if(C:virus2.len)
+ if(C:virus2.len)
for (var/ID in C.virus2)
if (ID in virusDB) // If the virus is known, the medbot is aware of it and will try to cure it
- virus = 1
-
+ virus = 1
+
if (!reagent_id && (virus))
if(!C.reagents.has_reagent(treatment_virus))
- reagent_id = treatment_virus
-
+ reagent_id = treatment_virus
+
if (!reagent_id && (C.getBruteLoss() >= heal_threshold))
if(!C.reagents.has_reagent(treatment_brute))
reagent_id = treatment_brute
@@ -529,7 +534,7 @@
speak("Medical emergency! [crit_patient ? "[crit_patient]" : "A patient"] is in critical condition at [location]!",radio_frequency, radio_name)
declare_cooldown = 1
spawn(200) //Twenty seconds
- declare_cooldown = 0
+ declare_cooldown = 0
/*
* Medbot Assembly -- Can be made out of all three medkits.
diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm
index 32c150e23eb..cf3cd0022a6 100644
--- a/code/game/mecha/equipment/tools/tools.dm
+++ b/code/game/mecha/equipment/tools/tools.dm
@@ -732,7 +732,7 @@
name = "Energy Relay"
desc = "Wirelessly drains energy from any available power channel in area. The performance index is quite low."
icon_state = "tesla"
- origin_tech = "magnets=4;syndicate=2"
+ origin_tech = "magnets=4;powerstorage=3"
equip_cooldown = 10
energy_drain = 0
range = 0
diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm
index 0e170b1ddc0..3f42dab850f 100644
--- a/code/game/objects/effects/decals/misc.dm
+++ b/code/game/objects/effects/decals/misc.dm
@@ -17,6 +17,11 @@
anchored = 1
layer = 50
+/obj/effect/decal/chempuff
+ name = "chemicals"
+ icon = 'icons/obj/chempuff.dmi'
+ pass_flags = PASSTABLE | PASSGRILLE
+
/obj/effect/decal/snow
name="snow"
density=0
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index 224de285a1c..9c17c585b39 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -18,7 +18,6 @@
/obj/item/device/flash/proc/clown_check(mob/user)
if(user && (M_CLUMSY in user.mutations) && prob(50))
flash_carbon(user, user, 15, 0)
- user.visible_message("[user] blinds [user] with the flash!")
return 0
return 1
@@ -42,7 +41,7 @@
times_used = max(0, times_used) //sanity
-/obj/item/device/flash/proc/try_use_flash(var/mob/user)
+/obj/item/device/flash/proc/try_use_flash(var/mob/user = null)
flash_recharge(user)
if(broken)
@@ -67,6 +66,11 @@
if(user && convert)
terrible_conversion_proc(M, user)
M.Stun(1)
+ user.visible_message("[user] blinds [M] with the flash!")
+ return 1
+ else
+ user.visible_message("[user] fails to blind [M] with the flash!")
+ return 0
/obj/item/device/flash/attack(mob/living/M, mob/user)
if(!try_use_flash(user))
@@ -74,7 +78,6 @@
if(iscarbon(M))
flash_carbon(M, user, 5, 1)
- user.visible_message("[user] blinds [M] with the flash!")
return 1
else if(issilicon(M))
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 6a9bdbd81f9..2a6def07dca 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -417,7 +417,7 @@
B1.reagents.add_reagent("fuel",20)
B2.reagents.add_reagent("plasma", 15)
B2.reagents.add_reagent("sacid", 15)
- B1.reagents.add_reagent("fuel",20)
+ B1.reagents.add_reagent("incendiaryfuel",20)
beakers += B1
beakers += B2
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 7f97febc907..65eb6900e5e 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -136,6 +136,8 @@
src.emag.reagents.add_reagent("pacid", 250)
src.emag.name = "Polyacid spray"
+ var/obj/item/weapon/reagent_containers/spray/S = emag
+ S.banned_reagents = list()
return
/obj/item/weapon/robot_module/crisis/respawn_consumable(var/mob/living/silicon/robot/R)
diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm
index 1ec564a7c9c..27a669cf98f 100644
--- a/code/modules/projectiles/ammunition/ammo_casings.dm
+++ b/code/modules/projectiles/ammunition/ammo_casings.dm
@@ -109,12 +109,12 @@
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
icon_state = "cshell"
projectile_type = null
-/*
+
/obj/item/ammo_casing/shotgun/dart
name = "shotgun dart"
desc = "A dart for use in shotguns. Can be injected with up to 30 units of any chemical."
icon_state = "cshell"
- projectile_type = /obj/item/projectile/bullet/dart
+ projectile_type = "/obj/item/projectile/bullet/dart"
/obj/item/ammo_casing/shotgun/dart/New()
..()
@@ -124,7 +124,6 @@
/obj/item/ammo_casing/shotgun/dart/attackby()
return
-*/
/obj/item/ammo_casing/shotgun/fakebeanbag
name = "beanbag shell"
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index a7410abdad3..9e333f5c82a 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -127,7 +127,7 @@
caliber = ".45"
max_ammo = 20
-/obj/item/ammo_box/magazine/smgm/update_icon()
+/obj/item/ammo_box/magazine/smgm45/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),2)]"
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 8b8e41f2f4c..0a3c1be180a 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -46,7 +46,7 @@
else
icon_state = "energy0"
-
+/*
attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/cell))
if(!power_supply)
@@ -73,4 +73,4 @@
set src in view(1)
..()
if(!power_supply)
- usr <<"The weapon does not have a power source installed."
\ No newline at end of file
+ usr <<"The weapon does not have a power source installed." */
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 0f0491d63ac..82ecb903230 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -136,7 +136,7 @@
var/mob/living/carbon/M = target
M.silent = max(M.silent, 10)
-/*
+
/obj/item/projectile/bullet/dart
@@ -161,7 +161,7 @@
flags &= ~NOREACT
reagents.handle_reactions()
return 1
-*/
+
/obj/item/projectile/bullet/dart/metalfoam
New()
..()
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 3c4f66e399e..526a631ef36 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -1398,6 +1398,35 @@ datum
return
+ incendiary_fuel //copy-pasta of welding fuel; allow incendiary grenades to function better without the headache of people spraying fuel everywhere with regular welding fuel.
+ name = "Incendiary fuel"
+ id = "incendiaryfuel"
+ description = "A highly flammable compound used in incendiary grenades."
+ reagent_state = LIQUID
+ color = "#660000" // rgb: 102, 0, 0
+
+ reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with welding fuel to make them easy to ignite!
+ if(!istype(M, /mob/living))
+ return
+ if(method == TOUCH)
+ M.adjust_fire_stacks(volume / 10)
+ return
+
+ reaction_obj(var/obj/O, var/volume)
+ var/turf/the_turf = get_turf(O)
+ if(!the_turf)
+ return //No sense trying to start a fire if you don't have a turf to set on fire. --NEO
+ new /obj/effect/decal/cleanable/liquid_fuel(the_turf, volume)
+ reaction_turf(var/turf/T, var/volume)
+ new /obj/effect/decal/cleanable/liquid_fuel(T, volume)
+ return
+
+ on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ M.adjustToxLoss(1)
+ ..()
+ return
+
space_cleaner
name = "Space cleaner"
id = "cleaner"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 42578ff4704..3ae96df6c17 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -402,7 +402,7 @@ datum
flick("e_flash", M.flash)
M.Stun(5)
-/*
+
napalm
name = "Napalm"
id = "napalm"
@@ -425,7 +425,7 @@ datum
spawn (0) target_tile.hotspot_expose(700, 400)
holder.del_reagent("napalm")
return
-*/
+
/*
smoke
name = "Smoke"
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 1bcebc87116..61d35feaa7e 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -7,6 +7,7 @@
var/amount_per_transfer_from_this = 5
var/possible_transfer_amounts = list(5,10,15,25,30)
var/volume = 30
+ var/list/banned_reagents = list() //List of reagent IDs we reject.
/obj/item/weapon/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
diff --git a/code/modules/reagents/reagent_containers/drugs.dm b/code/modules/reagents/reagent_containers/drugs.dm
index f717929c9f9..1f9dced0500 100644
--- a/code/modules/reagents/reagent_containers/drugs.dm
+++ b/code/modules/reagents/reagent_containers/drugs.dm
@@ -59,6 +59,13 @@
user << "\red [target] is full."
return
+ if(istype(target, /obj/item/weapon/reagent_containers))
+ var/obj/item/weapon/reagent_containers/RC = target
+ for(var/bad_reg in RC.banned_reagents)
+ if(reagents.has_reagent(bad_reg, 1)) //Message is a bit "Game-y" but I can't think up a better one.
+ user << "A chemical in [src] is far too dangerous to transfer to [RC]!"
+ return
+
// /vg/: Logging transfers of bad things
if(target.reagents_to_log.len)
var/list/badshit=list()
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 6f95851c7a7..0d1b64dacd3 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -121,6 +121,13 @@
user << "\red [target] is full."
return
+
if(istype(target, /obj/item/weapon/reagent_containers))
+
var/obj/item/weapon/reagent_containers/RC = target
+
for(var/bad_reg in RC.banned_reagents)
+
if(reagents.has_reagent(bad_reg, 1)) //Message is a bit "Game-y" but I can't think up a better one.
+
user << "A chemical in [src] is far too dangerous to transfer to [RC]!"
+
return
+
// /vg/: Logging transfers of bad things
if(target.reagents_to_log.len)
var/list/badshit=list()
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index a391fa727c0..4f53ce68f19 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -6,13 +6,16 @@
item_state = "cleaner"
flags = TABLEPASS|OPENCONTAINER|FPRINT|NOBLUDGEON
slot_flags = SLOT_BELT
- throwforce = 3
+ throwforce = 0
w_class = 2.0
- throw_speed = 2
- throw_range = 10
- amount_per_transfer_from_this = 10
+ throw_speed = 3
+ throw_range = 7
+ var/spray_maxrange = 3 //what the sprayer will set spray_currentrange to in the attack_self.
+ var/spray_currentrange = 3 //the range of tiles the sprayer will reach when in fixed mode.
+ amount_per_transfer_from_this = 5
volume = 250
possible_transfer_amounts = null
+ banned_reagents = list("pacid","sacid")
/obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user as mob)
@@ -40,31 +43,7 @@
user << "\The [src] is empty!"
return
- var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src))
- D.create_reagents(amount_per_transfer_from_this)
- reagents.trans_to(D, amount_per_transfer_from_this, 1/3)
-
- D.name = "chemicals"
- D.icon = 'icons/obj/chempuff.dmi'
-
- D.icon += mix_color_from_reagents(D.reagents.reagent_list)
-
- var/turf/A_turf = get_turf(A)
-
- spawn(0)
- for(var/i=0, i<3, i++)
- step_towards(D,A)
- D.reagents.reaction(get_turf(D))
- for(var/atom/T in get_turf(D))
- D.reagents.reaction(T)
-
- // When spraying against the wall, also react with the wall, but
- // not its contents.
- if(get_dist(D, A_turf) == 1 && A_turf.density)
- D.reagents.reaction(A_turf)
- sleep(2)
- sleep(3)
- del(D)
+ spray(A)
playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
@@ -79,34 +58,52 @@
log_game("[key_name(user)] fired Space lube from \a [src].")
return
+
+/obj/item/weapon/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)
+ D.icon += mix_color_from_reagents(D.reagents.reagent_list)
+ spawn(0)
+ for(var/i=0, iYou switched [amount_per_transfer_from_this == 10 ? "on" : "off"] the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray."
-
-
-/obj/item/weapon/reagent_containers/spray/examine()
- set src in usr
- ..()
- usr << "[round(src.reagents.total_volume)] units left."
- return
+ spray_currentrange = (spray_currentrange == 1 ? spray_maxrange : 1)
+ user << "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray."
/obj/item/weapon/reagent_containers/spray/verb/empty()
set name = "Empty Spray Bottle"
set category = "Object"
set src in usr
-
- if(isturf(usr.loc))
+ if(usr.stat || !usr.canmove || usr.restrained())
+ return
+ if (alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", "Yes", "No") != "Yes")
+ return
+ if(isturf(usr.loc) && src.loc == usr)
usr << "You empty \the [src] onto the floor."
reagents.reaction(usr.loc)
- spawn(5) src.reagents.clear_reagents()
+ src.reagents.clear_reagents()
//space cleaner
/obj/item/weapon/reagent_containers/spray/cleaner
name = "space cleaner"
desc = "BLAM!-brand non-foaming space cleaner!"
+
+/obj/item/weapon/reagent_containers/spray/cleaner/New()
+ ..()
+ reagents.add_reagent("cleaner", 250)
+
/obj/item/weapon/reagent_containers/spray/cleaner/drone
name = "space cleaner"
desc = "BLAM!-brand non-foaming space cleaner!"
@@ -115,6 +112,7 @@
/obj/item/weapon/reagent_containers/spray/cleaner/New()
..()
reagents.add_reagent("cleaner", src.volume)
+
//pepperspray
/obj/item/weapon/reagent_containers/spray/pepper
name = "pepperspray"
@@ -123,7 +121,8 @@
icon_state = "pepperspray"
item_state = "pepperspray"
volume = 40
- amount_per_transfer_from_this = 10
+ spray_maxrange = 4
+ amount_per_transfer_from_this = 5
/obj/item/weapon/reagent_containers/spray/pepper/New()
@@ -147,56 +146,32 @@
/obj/item/weapon/reagent_containers/spray/waterflower/attack_self(var/mob/user) //Don't allow changing how much the flower sprays
return
-
//chemsprayer
/obj/item/weapon/reagent_containers/spray/chemsprayer
name = "chem sprayer"
- desc = "A utility used to spray large amounts of reagent in a given area."
+ desc = "A utility used to spray large amounts of reagents in a given area."
icon = 'icons/obj/gun.dmi'
icon_state = "chemsprayer"
item_state = "chemsprayer"
- throwforce = 3
+ throwforce = 0
w_class = 3.0
+ spray_maxrange = 7
+ spray_currentrange = 7
+ amount_per_transfer_from_this = 10
volume = 600
origin_tech = "combat=3;materials=3;engineering=3"
+ banned_reagents = list()//the safeties are off, spray and pay!
-//this is a big copypasta clusterfuck, but it's still better than it used to be!
-/obj/item/weapon/reagent_containers/spray/chemsprayer/afterattack(atom/A as mob|obj, mob/user as mob)
- 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))
- return
-
- if(istype(A, /obj/effect/proc_holder/spell))
- return
-
- if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1) //this block copypasted from reagent_containers/glass, for lack of a better solution
- if(!A.reagents.total_volume && A.reagents)
- user << "\The [A] is empty."
- return
-
- if(reagents.total_volume >= reagents.maximum_volume)
- user << "\The [src] is full."
- return
-
- var/trans = A.reagents.trans_to(src, A:amount_per_transfer_from_this)
- user << "You fill \the [src] with [trans] units of the contents of \the [A]."
- return
-
- if(reagents.total_volume < amount_per_transfer_from_this)
- user << "\The [src] is empty!"
- return
-
+/obj/item/weapon/reagent_containers/spray/chemsprayer/spray(var/atom/A)
var/Sprays[3]
for(var/i=1, i<=3, i++) // intialize sprays
if(src.reagents.total_volume < 1) break
- var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src))
- D.name = "chemicals"
- D.icon = 'icons/obj/chempuff.dmi'
+ var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src))
D.create_reagents(amount_per_transfer_from_this)
src.reagents.trans_to(D, amount_per_transfer_from_this)
- D.icon += mix_color_from_reagents(D.reagents.reagent_list)
+ D.color = mix_color_from_reagents(D.reagents.reagent_list)
Sprays[i] = D
@@ -208,14 +183,14 @@
for(var/i=1, i<=Sprays.len, i++)
spawn()
- var/obj/effect/decal/D = Sprays[i]
+ var/obj/effect/decal/chempuff/D = Sprays[i]
if(!D) continue
// Spreads the sprays a little bit
var/turf/my_target = pick(the_targets)
the_targets -= my_target
- for(var/j=1, j<=rand(6,8), j++)
+ for(var/j=0, j<=spray_currentrange, j++)
step_towards(D, my_target)
D.reagents.reaction(get_turf(D))
for(var/atom/t in get_turf(D))
@@ -223,18 +198,12 @@
sleep(2)
del(D)
- playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
- if(reagents.has_reagent("sacid"))
- message_admins("[key_name_admin(user)] fired sulphuric acid from a chem sprayer.")
- log_game("[key_name(user)] fired sulphuric acid from a chem sprayer.")
- if(reagents.has_reagent("pacid"))
- message_admins("[key_name_admin(user)] fired Polyacid from a chem sprayer.")
- log_game("[key_name(user)] fired Polyacid from a chem sprayer.")
- if(reagents.has_reagent("lube"))
- message_admins("[key_name_admin(user)] fired Space lube from a chem sprayer.")
- log_game("[key_name(user)] fired Space lube from a chem sprayer.")
- return
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/attack_self(var/mob/user)
+
+ amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10)
+ user << "You adjust the output switch. You'll now use [amount_per_transfer_from_this] units per spray."
/obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror/New()
..()
@@ -268,4 +237,4 @@
if (istype(A, /obj/effect/blob)) // blob damage in blob code
return
- ..()
+ ..()
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index f4736a33fdd..e1af57cda76 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -185,7 +185,7 @@
amount = min(amount, reagents.total_volume)
reagents.remove_reagent("fuel",amount)
- new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount)
+// new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount)
/obj/structure/reagent_dispensers/fueltank/HasProximity(atom/movable/AM)
if(rig)
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index aeb58ad68db..fb226832d22 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1737,7 +1737,7 @@ datum/design/decloner
materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40)
build_path = "/obj/item/weapon/gun/energy/decloner"
locked = 1
-
+/*
datum/design/chemsprayer
name = "Chem Sprayer"
desc = "An advanced chem spraying device."
@@ -1747,7 +1747,7 @@ datum/design/chemsprayer
materials = list("$metal" = 5000, "$glass" = 1000)
reliability_base = 100
build_path = "/obj/item/weapon/reagent_containers/spray/chemsprayer"
-
+*/
datum/design/rapidsyringe
name = "Rapid Syringe Gun"
desc = "A gun that fires many syringes."
@@ -1766,6 +1766,7 @@ datum/design/largecrossbow
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1500, "$uranium" = 1500, "$silver" = 1500)
build_path = "/obj/item/weapon/gun/energy/crossbow/largecrossbow"
+ locked = 1
datum/design/temp_gun
name = "Temperature Gun"
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index 4b79d29367c..d8a1dce90fa 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ