From fece84d97434d52003d980fbf5fa42a4223dee11 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 14 Dec 2014 03:18:10 -0500 Subject: [PATCH] Fixes-Tweakes --- code/game/machinery/autolathe.dm | 4 +- code/game/machinery/bots/medbot.dm | 35 +++-- code/game/mecha/equipment/tools/tools.dm | 2 +- code/game/objects/effects/decals/misc.dm | 5 + code/game/objects/items/devices/flash.dm | 9 +- .../items/weapons/grenades/chem_grenade.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 2 + .../projectiles/ammunition/ammo_casings.dm | 5 +- .../projectiles/ammunition/magazines.dm | 2 +- code/modules/projectiles/guns/energy.dm | 4 +- .../modules/projectiles/projectile/bullets.dm | 4 +- code/modules/reagents/Chemistry-Reagents.dm | 29 ++++ code/modules/reagents/Chemistry-Recipes.dm | 4 +- code/modules/reagents/reagent_containers.dm | 1 + .../reagents/reagent_containers/drugs.dm | 7 + .../reagents/reagent_containers/glass.dm | 7 + .../reagents/reagent_containers/spray.dm | 145 +++++++----------- code/modules/reagents/reagent_dispenser.dm | 2 +- code/modules/research/designs.dm | 5 +- icons/obj/gun.dmi | Bin 61296 -> 61176 bytes 20 files changed, 151 insertions(+), 123 deletions(-) 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 4b79d29367c64f0034a163a0e54e7b854b09aa59..d8a1dce90fa7a45304379749f2d76892ede2c7f3 100644 GIT binary patch delta 22001 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 MLlc9d%TAB}4bafc=Kufz delta 22122 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 b2J=arO=I8lP1dl3z{})si&G^A&XNBCGpR{p