From fb7d2a8ef38a42248b106bd01addbd13bdd7c341 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sat, 30 Oct 2021 19:35:09 -0700 Subject: [PATCH 01/23] smart dart initial --- .../projectiles/ammunition/special/syringe.dm | 20 +++++++++++++++++++ .../modules/projectiles/guns/misc/chem_gun.dm | 13 ++++++++++++ 2 files changed, 33 insertions(+) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index caf5da3562..074f657e55 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -40,6 +40,26 @@ CG.syringes_left-- ..() +//smart dart test +/obj/item/ammo_casing/chemgun/smart + name = "smart dart synthesiser" + desc = "test." + projectile_type = /obj/item/projectile/bullet/dart/syringe/dart + firing_effect_type = null + harmful = FALSE + +/obj/item/ammo_casing/chemgun/smart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") + if(!BB) + return + if(istype(loc, /obj/item/gun/chem/smart)) + var/obj/item/gun/chem/smart/SG = loc + if(SG.syringes_left <= 0) + return + SG.reagents.trans_to(BB, 10) + BB.name = "Smart chemical dart" + SG.syringes_left-- + ..() + /obj/item/ammo_casing/dnainjector name = "rigged syringe gun spring" desc = "A high-power spring that throws DNA injectors." diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 779ab64bc2..a5e29a254e 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -45,3 +45,16 @@ if(chambered && !chambered.BB) chambered.newshot() last_synth = world.time + +/obj/item/gun/chem/smart + name = "improved smartdart gun" + desc = "A Nanotrasen syringe gun, modified to automatically synthesise smart chemical darts, and instead hold reagents." + icon_state = "chemgun" + item_state = "chemgun" + +obj/item/gun/chem/smart/Initialize() + . = ..() + chambered = new /obj/item/ammo_casing/chemgun/smart(src) + START_PROCESSING(SSobj, src) + create_reagents(100, OPENCONTAINER) + From 56fcd2dc9fc185291ee0cd64897ff1ad84e851d6 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 31 Oct 2021 00:48:56 -0700 Subject: [PATCH 02/23] basic ability to load hypovial added --- .../modules/projectiles/guns/misc/chem_gun.dm | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index a5e29a254e..3cce3c8d79 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -17,6 +17,11 @@ var/syringes_left = 5 var/max_syringes = 5 var/last_synth = 0 + var/obj/item/reagent_containers/glass/bottle/vial/vial + var/list/allowed_containers = list(/obj/item/reagent_containers/glass/bottle/vial/small, /obj/item/reagent_containers/glass/bottle/vial/large) + var/spawnwithvial = TRUE + var/start_vial = null + var/quickload = TRUE /obj/item/gun/chem/Initialize() . = ..() @@ -28,6 +33,49 @@ . = ..() STOP_PROCESSING(SSobj, src) +/obj/item/gun/chem/examine(mob/user) + . = ..() + if(vial) + . += "[vial] has [vial.reagents.total_volume]u remaining." + else + . += "It has no vial loaded in." + +/obj/item/gun/chem/proc/unload_hypo(obj/item/I, mob/user) + if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) + var/obj/item/reagent_containers/glass/bottle/vial/V = I + V.forceMove(user.loc) + user.put_in_hands(V) + to_chat(user, "You remove [vial] from [src].") + vial = null + //playsound(loc, 'sound/weapons/empty.ogg', 50, 1) + else + to_chat(user, "The weapon isn't loaded!") + return + +/obj/item/gun/chem/attackby(obj/item/I, mob/living/user) + if((istype(I, /obj/item/reagent_containers/glass/bottle/vial) && vial != null)) + if(!quickload) + to_chat(user, "[src] can not hold more than one vial!") + return FALSE + unload_hypo(vial, user) + if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) + var/obj/item/reagent_containers/glass/bottle/vial/V = I + if(!is_type_in_list(V, allowed_containers)) + to_chat(user, "[src] doesn't accept this type of vial.") + return FALSE + if(!user.transferItemToLoc(V,src)) + return FALSE + vial = V + user.visible_message("[user] has loaded a vial into [src].","You have loaded [vial] into [src].") + //playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) + return TRUE + else + to_chat(user, "This doesn't fit in [src].") + return FALSE + +/obj/item/gun/chem/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) + . = ..() //Don't bother changing this or removing it from containers will break. + /obj/item/gun/chem/can_shoot() return syringes_left From 7166ead8bd7b8cc798071cd7aebda5257b4cca76 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 31 Oct 2021 01:28:49 -0700 Subject: [PATCH 03/23] Uses vial as chem pool. --- code/modules/projectiles/ammunition/special/syringe.dm | 6 +++++- code/modules/projectiles/guns/misc/chem_gun.dm | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 074f657e55..0cad21cca4 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -35,7 +35,11 @@ var/obj/item/gun/chem/CG = loc if(CG.syringes_left <= 0) return - CG.reagents.trans_to(BB, 10) + //vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, log = "hypospray fill") + //CG.reagents.trans_to(BB, 10) + if (CG.vial == null) + return + CG.vial.reagents.trans_to(BB,10) BB.name = "chemical dart" CG.syringes_left-- ..() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 3cce3c8d79..f3e1638dca 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -29,6 +29,7 @@ START_PROCESSING(SSobj, src) create_reagents(100, OPENCONTAINER) + /obj/item/gun/chem/Destroy() . = ..() STOP_PROCESSING(SSobj, src) From 027509b55ae9ef6d0cb45c79bf5aeb95f3e7e462 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 31 Oct 2021 03:16:24 -0700 Subject: [PATCH 04/23] reloading fix --- .../modules/projectiles/guns/misc/chem_gun.dm | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index f3e1638dca..073a283f10 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -21,14 +21,12 @@ var/list/allowed_containers = list(/obj/item/reagent_containers/glass/bottle/vial/small, /obj/item/reagent_containers/glass/bottle/vial/large) var/spawnwithvial = TRUE var/start_vial = null - var/quickload = TRUE + var/quickload = FALSE /obj/item/gun/chem/Initialize() . = ..() chambered = new /obj/item/ammo_casing/chemgun(src) START_PROCESSING(SSobj, src) - create_reagents(100, OPENCONTAINER) - /obj/item/gun/chem/Destroy() . = ..() @@ -48,7 +46,8 @@ user.put_in_hands(V) to_chat(user, "You remove [vial] from [src].") vial = null - //playsound(loc, 'sound/weapons/empty.ogg', 50, 1) + update_icon() + playsound(loc, 'sound/weapons/empty.ogg', 50, 1) else to_chat(user, "The weapon isn't loaded!") return @@ -68,7 +67,8 @@ return FALSE vial = V user.visible_message("[user] has loaded a vial into [src].","You have loaded [vial] into [src].") - //playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) + update_icon() + playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) return TRUE else to_chat(user, "This doesn't fit in [src].") @@ -77,6 +77,19 @@ /obj/item/gun/chem/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) . = ..() //Don't bother changing this or removing it from containers will break. +/obj/item/gun/chem/attack_self(mob/living/user) + if(user) + if(user.incapacitated()) + return + else if(!vial) + to_chat(user, "This Hypo needs to be loaded first!") + return + else + unload_hypo(vial,user) + +/obj/item/gun/chem/attack(obj/item/I, mob/user, params) + return + /obj/item/gun/chem/can_shoot() return syringes_left From f148eb0a4c3ee3ec2ee80e8ae921e2910417b0ad Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 31 Oct 2021 03:24:24 -0700 Subject: [PATCH 05/23] minor cleanup --- .../modules/projectiles/ammunition/special/syringe.dm | 10 +++++----- code/modules/projectiles/guns/misc/chem_gun.dm | 11 ++++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 0cad21cca4..02178f3bee 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -24,7 +24,7 @@ /obj/item/ammo_casing/chemgun name = "dart synthesiser" - desc = "A high-power spring, linked to an energy-based dart synthesiser." + desc = "A high-power spring, linked to an energy-based piercing synthesiser." projectile_type = /obj/item/projectile/bullet/dart/piercing firing_effect_type = null @@ -44,10 +44,10 @@ CG.syringes_left-- ..() -//smart dart test +//Smart dart version of reagent launcher. /obj/item/ammo_casing/chemgun/smart - name = "smart dart synthesiser" - desc = "test." + name = "smartdart synthesiser" + desc = "A high-power spring, linked to an energy-based smartdart synthesiser." projectile_type = /obj/item/projectile/bullet/dart/syringe/dart firing_effect_type = null harmful = FALSE @@ -59,7 +59,7 @@ var/obj/item/gun/chem/smart/SG = loc if(SG.syringes_left <= 0) return - SG.reagents.trans_to(BB, 10) + SG.reagents.trans_to(BB, 20) //change to set syringe transfer BB.name = "Smart chemical dart" SG.syringes_left-- ..() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 073a283f10..a23d534ca1 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -1,8 +1,8 @@ //his isn't a subtype of the syringe gun because the syringegun subtype is made to hold syringes //this is meant to hold reagents/obj/item/gun/syringe /obj/item/gun/chem - name = "reagent gun" - desc = "A Nanotrasen syringe gun, modified to automatically synthesise chemical darts, and instead hold reagents." + name = "Reagent Repeater" + desc = "A Nanotrasen smartdart repeater rifle, modified to automatically synthesize piercing." icon_state = "chemgun" item_state = "chemgun" w_class = WEIGHT_CLASS_NORMAL @@ -32,6 +32,7 @@ . = ..() STOP_PROCESSING(SSobj, src) +//bunch of hypospray copy paste /obj/item/gun/chem/examine(mob/user) . = ..() if(vial) @@ -108,9 +109,10 @@ chambered.newshot() last_synth = world.time +//Smart dart version of the reagent launcher /obj/item/gun/chem/smart - name = "improved smartdart gun" - desc = "A Nanotrasen syringe gun, modified to automatically synthesise smart chemical darts, and instead hold reagents." + name = "smartdart repeater rifle" + desc = "An experimental version of the repeater rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." icon_state = "chemgun" item_state = "chemgun" @@ -118,5 +120,4 @@ obj/item/gun/chem/smart/Initialize() . = ..() chambered = new /obj/item/ammo_casing/chemgun/smart(src) START_PROCESSING(SSobj, src) - create_reagents(100, OPENCONTAINER) From 026ce5dec40117c950ea7f76fbd7c295285e4a51 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 31 Oct 2021 04:18:15 -0700 Subject: [PATCH 06/23] tiny bit more polish, some number tweaks, and research. --- .../projectiles/ammunition/special/syringe.dm | 23 ++++++++++--------- .../modules/projectiles/guns/misc/chem_gun.dm | 10 ++++---- .../research/designs/medical_designs.dm | 13 ++++++++++- .../research/techweb/nodes/weaponry_nodes.dm | 2 +- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 02178f3bee..67d1dbe137 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -35,11 +35,10 @@ var/obj/item/gun/chem/CG = loc if(CG.syringes_left <= 0) return - //vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, log = "hypospray fill") - //CG.reagents.trans_to(BB, 10) if (CG.vial == null) + CG.syringes_left-- return - CG.vial.reagents.trans_to(BB,10) + CG.vial.reagents.trans_to(BB, 10) BB.name = "chemical dart" CG.syringes_left-- ..() @@ -49,19 +48,21 @@ name = "smartdart synthesiser" desc = "A high-power spring, linked to an energy-based smartdart synthesiser." projectile_type = /obj/item/projectile/bullet/dart/syringe/dart - firing_effect_type = null harmful = FALSE -/obj/item/ammo_casing/chemgun/smart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/ammo_casing/chemgun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") if(!BB) return - if(istype(loc, /obj/item/gun/chem/smart)) - var/obj/item/gun/chem/smart/SG = loc - if(SG.syringes_left <= 0) + if(istype(loc, /obj/item/gun/chem)) + var/obj/item/gun/chem/CG = loc + if(CG.syringes_left <= 0) return - SG.reagents.trans_to(BB, 20) //change to set syringe transfer - BB.name = "Smart chemical dart" - SG.syringes_left-- + if (CG.vial == null) + CG.syringes_left-- + return + CG.vial.reagents.trans_to(BB, 20) + BB.name = "smart chemical dart" + CG.syringes_left-- ..() /obj/item/ammo_casing/dnainjector diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index a23d534ca1..d9ac2a7064 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -13,15 +13,13 @@ custom_materials = list(/datum/material/iron=2000) clumsy_check = FALSE fire_sound = 'sound/items/syringeproj.ogg' - var/time_per_syringe = 300 - var/syringes_left = 5 - var/max_syringes = 5 + var/time_per_syringe = 200 + var/syringes_left = 3 + var/max_syringes = 6 var/last_synth = 0 var/obj/item/reagent_containers/glass/bottle/vial/vial var/list/allowed_containers = list(/obj/item/reagent_containers/glass/bottle/vial/small, /obj/item/reagent_containers/glass/bottle/vial/large) - var/spawnwithvial = TRUE - var/start_vial = null - var/quickload = FALSE + var/quickload = TRUE // /obj/item/gun/chem/Initialize() . = ..() diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 88c37ce2a2..f8967df07c 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -122,6 +122,17 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/smartdartrepeater + name = "smartdart repeater" + desc = "An experimental smart dart rifle, it can make its own smart darts and is instead loaded with a hypovial.." + id = "smartdartrepeater" + build_type = PROTOLATHE + materials = list(/datum/material/glass = 2000, /datum/material/plastic = 1000, /datum/material/iron = 2000,/datum/material/titanium = 1000 ) + build_path = /obj/item/gun/chem/smart + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + + /datum/design/plasmarefiller name = "Plasma-Man Jumpsuit Refill" desc = "A refill pack for the auto-extinguisher on Plasma-man suits." @@ -201,7 +212,7 @@ build_path = /obj/item/storage/hypospraykit // let's not summon new hyposprays thanks category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - + /datum/design/hypospray/mkii name = "Hypospray Mk. II" id = "hypospray_mkii" diff --git a/code/modules/research/techweb/nodes/weaponry_nodes.dm b/code/modules/research/techweb/nodes/weaponry_nodes.dm index e17d7e1e7b..999000c57b 100644 --- a/code/modules/research/techweb/nodes/weaponry_nodes.dm +++ b/code/modules/research/techweb/nodes/weaponry_nodes.dm @@ -45,7 +45,7 @@ display_name = "Medical Weaponry" description = "Weapons using medical technology." prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostatis") + design_ids = list("rapidsyringe", "shotgundartcryostatis","smartdartrepeater") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) /datum/techweb_node/beam_weapons From 973d471dd42b0514740d70c88fac7e929fbbbc3e Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 31 Oct 2021 05:04:08 -0700 Subject: [PATCH 07/23] woopsie --- .../projectiles/ammunition/special/syringe.dm | 12 ++++++------ code/modules/projectiles/guns/misc/chem_gun.dm | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 67d1dbe137..7a26645e9d 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -38,7 +38,7 @@ if (CG.vial == null) CG.syringes_left-- return - CG.vial.reagents.trans_to(BB, 10) + CG.vial.reagents.trans_to(BB,10) BB.name = "chemical dart" CG.syringes_left-- ..() @@ -48,23 +48,23 @@ name = "smartdart synthesiser" desc = "A high-power spring, linked to an energy-based smartdart synthesiser." projectile_type = /obj/item/projectile/bullet/dart/syringe/dart + firing_effect_type = null harmful = FALSE -/obj/item/ammo_casing/chemgun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") +/obj/item/ammo_casing/chemgun/smart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") if(!BB) return - if(istype(loc, /obj/item/gun/chem)) - var/obj/item/gun/chem/CG = loc + if(istype(loc, /obj/item/gun/chem/smart)) + var/obj/item/gun/chem/smart/CG = loc if(CG.syringes_left <= 0) return if (CG.vial == null) CG.syringes_left-- return - CG.vial.reagents.trans_to(BB, 20) + CG.vial.reagents.trans_to(BB,20) BB.name = "smart chemical dart" CG.syringes_left-- ..() - /obj/item/ammo_casing/dnainjector name = "rigged syringe gun spring" desc = "A high-power spring that throws DNA injectors." diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index d9ac2a7064..9b2f5df530 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -110,7 +110,7 @@ //Smart dart version of the reagent launcher /obj/item/gun/chem/smart name = "smartdart repeater rifle" - desc = "An experimental version of the repeater rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." + desc = "An experimental improved version of the smart dart rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." icon_state = "chemgun" item_state = "chemgun" From 30901940420e9d6144615006a3876a27a6e257c6 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Wed, 3 Nov 2021 18:48:38 -0700 Subject: [PATCH 08/23] adds sprite --- .../modules/projectiles/guns/misc/chem_gun.dm | 4 ++-- icons/obj/guns/projectile.dmi | Bin 50814 -> 51330 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 9b2f5df530..fcf7a21cc4 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -111,8 +111,8 @@ /obj/item/gun/chem/smart name = "smartdart repeater rifle" desc = "An experimental improved version of the smart dart rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." - icon_state = "chemgun" - item_state = "chemgun" + icon_state = "chemgunrepeater" + item_state = "dartgun" obj/item/gun/chem/smart/Initialize() . = ..() diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 1504b9f0c7bf96d0c2a35f069870a657974dc5d6..5bbcca9791de629ef4e9470e80d1aba08553ebaa 100644 GIT binary patch delta 11144 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�EGpxbdY=9T9jRwFY8Q$M(E?;0?0kglmpFd{ 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 c`U{IA`ci1xc~qF delta 10624 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 From 580e398e3822d2e3c841d6493eb02f7580a042cd Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Thu, 4 Nov 2021 02:33:12 -0700 Subject: [PATCH 09/23] minor bug fix, also inhand sprites --- .../projectiles/ammunition/special/syringe.dm | 19 +++---------------- .../modules/projectiles/guns/misc/chem_gun.dm | 2 +- .../projectiles/guns/misc/syringe_gun.dm | 4 ++-- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 7a26645e9d..d57d1b99fb 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -27,6 +27,7 @@ desc = "A high-power spring, linked to an energy-based piercing synthesiser." projectile_type = /obj/item/projectile/bullet/dart/piercing firing_effect_type = null + var/dartvolume = 10 /obj/item/ammo_casing/chemgun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") if(!BB) @@ -38,7 +39,7 @@ if (CG.vial == null) CG.syringes_left-- return - CG.vial.reagents.trans_to(BB,10) + CG.vial.reagents.trans_to(BB, dartvolume) BB.name = "chemical dart" CG.syringes_left-- ..() @@ -50,21 +51,7 @@ projectile_type = /obj/item/projectile/bullet/dart/syringe/dart firing_effect_type = null harmful = FALSE - -/obj/item/ammo_casing/chemgun/smart/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") - if(!BB) - return - if(istype(loc, /obj/item/gun/chem/smart)) - var/obj/item/gun/chem/smart/CG = loc - if(CG.syringes_left <= 0) - return - if (CG.vial == null) - CG.syringes_left-- - return - CG.vial.reagents.trans_to(BB,20) - BB.name = "smart chemical dart" - CG.syringes_left-- - ..() + dartvolume = 20 /obj/item/ammo_casing/dnainjector name = "rigged syringe gun spring" desc = "A high-power spring that throws DNA injectors." diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index fcf7a21cc4..6d11479625 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -112,7 +112,7 @@ name = "smartdart repeater rifle" desc = "An experimental improved version of the smart dart rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." icon_state = "chemgunrepeater" - item_state = "dartgun" + item_state = "syringegun" obj/item/gun/chem/smart/Initialize() . = ..() diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 39b7cbf540..91275e197a 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -127,7 +127,7 @@ /obj/item/gun/syringe/dart/rapiddart name = "Repeating dart gun" icon_state = "rapiddartgun" - item_state = "rapiddartgun" + item_state = "syringegun" /obj/item/gun/syringe/dart/rapiddart/CheckParts(list/parts_list) var/obj/item/reagent_containers/glass/beaker/B = locate(/obj/item/reagent_containers/glass/beaker) in parts_list @@ -157,7 +157,7 @@ name = "blowgun" desc = "Fire syringes at a short distance." icon_state = "blowgun" - item_state = "blowgun" + item_state = "syringegun" fire_sound = 'sound/items/syringeproj.ogg' /obj/item/gun/syringe/blowgun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) From 142b74ed5d85662afc2d098dec1c7d560eab0eb5 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:15:07 -0800 Subject: [PATCH 10/23] Update code/modules/projectiles/ammunition/special/syringe.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/ammunition/special/syringe.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index d57d1b99fb..ed3b2bcabe 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -24,7 +24,7 @@ /obj/item/ammo_casing/chemgun name = "dart synthesiser" - desc = "A high-power spring, linked to an energy-based piercing synthesiser." + desc = "A high-power spring, linked to an energy-based piercing dart synthesiser." projectile_type = /obj/item/projectile/bullet/dart/piercing firing_effect_type = null var/dartvolume = 10 From 9c7f1fdfca2c42bda3cb55f4093f3ee8abb630c5 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:16:21 -0800 Subject: [PATCH 11/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 6d11479625..94d066a408 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -109,7 +109,7 @@ //Smart dart version of the reagent launcher /obj/item/gun/chem/smart - name = "smartdart repeater rifle" + name = "Smartdart repeater rifle" desc = "An experimental improved version of the smart dart rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." icon_state = "chemgunrepeater" item_state = "syringegun" From dc3e6516745724b32232cf360e18cc7906d008b0 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:16:39 -0800 Subject: [PATCH 12/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 94d066a408..34ab2a7d82 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -2,7 +2,7 @@ //this is meant to hold reagents/obj/item/gun/syringe /obj/item/gun/chem name = "Reagent Repeater" - desc = "A Nanotrasen smartdart repeater rifle, modified to automatically synthesize piercing." + desc = "A Nanotrasen smartdart repeater rifle, modified to automatically synthesize piercing darts." icon_state = "chemgun" item_state = "chemgun" w_class = WEIGHT_CLASS_NORMAL From 5ae433138e8f596835004da5ef3a58bae1961e3b Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:17:32 -0800 Subject: [PATCH 13/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 34ab2a7d82..ea0ce70501 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -117,5 +117,4 @@ obj/item/gun/chem/smart/Initialize() . = ..() chambered = new /obj/item/ammo_casing/chemgun/smart(src) - START_PROCESSING(SSobj, src) From 71a4b7ba009cbb1fe27bcd73d5636828118c7fd9 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:17:39 -0800 Subject: [PATCH 14/23] Update code/modules/research/designs/medical_designs.dm Co-authored-by: Putnam3145 --- code/modules/research/designs/medical_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index f8967df07c..3bd2f67572 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -123,7 +123,7 @@ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/smartdartrepeater - name = "smartdart repeater" + name = "Smartdart Repeater" desc = "An experimental smart dart rifle, it can make its own smart darts and is instead loaded with a hypovial.." id = "smartdartrepeater" build_type = PROTOLATHE From 76324ed06adbcde779fbee3a342c1413234223d0 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:17:49 -0800 Subject: [PATCH 15/23] Update code/modules/research/designs/medical_designs.dm Co-authored-by: Putnam3145 --- code/modules/research/designs/medical_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 3bd2f67572..663cf1fdd7 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -124,7 +124,7 @@ /datum/design/smartdartrepeater name = "Smartdart Repeater" - desc = "An experimental smart dart rifle, it can make its own smart darts and is instead loaded with a hypovial.." + desc = "An experimental smartdart rifle. It can make its own smart darts and is loaded with a hypovial." id = "smartdartrepeater" build_type = PROTOLATHE materials = list(/datum/material/glass = 2000, /datum/material/plastic = 1000, /datum/material/iron = 2000,/datum/material/titanium = 1000 ) From 47da4007f790ad31262cd58803b4c9bab3437bb3 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:18:04 -0800 Subject: [PATCH 16/23] Update code/modules/projectiles/ammunition/special/syringe.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/ammunition/special/syringe.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index ed3b2bcabe..936725e59c 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -52,6 +52,7 @@ firing_effect_type = null harmful = FALSE dartvolume = 20 + /obj/item/ammo_casing/dnainjector name = "rigged syringe gun spring" desc = "A high-power spring that throws DNA injectors." From b8078d0a63830b1bc302ecec33d2cdc2cee357d4 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:18:29 -0800 Subject: [PATCH 17/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index ea0ce70501..65f70cec8e 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -57,7 +57,7 @@ to_chat(user, "[src] can not hold more than one vial!") return FALSE unload_hypo(vial, user) - if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) + else var/obj/item/reagent_containers/glass/bottle/vial/V = I if(!is_type_in_list(V, allowed_containers)) to_chat(user, "[src] doesn't accept this type of vial.") From 6363d9a4472249c1c551c6e1758703cb8ed27c55 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:18:35 -0800 Subject: [PATCH 18/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 65f70cec8e..e55d56c0a9 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -110,7 +110,7 @@ //Smart dart version of the reagent launcher /obj/item/gun/chem/smart name = "Smartdart repeater rifle" - desc = "An experimental improved version of the smart dart rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." + desc = "An experimental improved version of the smartdart rifle. It synthesizes medicinal smart darts which it fills using an inserted hypovial. It can accommodate both large and small hypovials." icon_state = "chemgunrepeater" item_state = "syringegun" From 329336f5ed41784a06e4d9993175c0b46d4be263 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:19:06 -0800 Subject: [PATCH 19/23] Update code/modules/projectiles/ammunition/special/syringe.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/ammunition/special/syringe.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 936725e59c..4eb7dc5475 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -36,7 +36,7 @@ var/obj/item/gun/chem/CG = loc if(CG.syringes_left <= 0) return - if (CG.vial == null) + if (!CG.vial) CG.syringes_left-- return CG.vial.reagents.trans_to(BB, dartvolume) From f67cf997574a4f413e45b0e872e9377faa58167f Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:22:19 -0800 Subject: [PATCH 20/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index e55d56c0a9..6987d45ce4 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -52,7 +52,8 @@ return /obj/item/gun/chem/attackby(obj/item/I, mob/living/user) - if((istype(I, /obj/item/reagent_containers/glass/bottle/vial) && vial != null)) + if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) + if(vial) if(!quickload) to_chat(user, "[src] can not hold more than one vial!") return FALSE From 030f07844509065dea28548936f036d8bfabafe8 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 12 Nov 2021 15:22:32 -0800 Subject: [PATCH 21/23] Update code/modules/projectiles/guns/misc/chem_gun.dm Co-authored-by: Putnam3145 --- code/modules/projectiles/guns/misc/chem_gun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 6987d45ce4..82539ddc09 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -78,7 +78,7 @@ . = ..() //Don't bother changing this or removing it from containers will break. /obj/item/gun/chem/attack_self(mob/living/user) - if(user) + if(user && user.incapacitated()) if(user.incapacitated()) return else if(!vial) From e3407c5b39f3eaefa1e7cb1a29a101684a3e9a51 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Fri, 12 Nov 2021 19:00:17 -0800 Subject: [PATCH 22/23] unfucks a few things post comments. --- .../modules/projectiles/guns/misc/chem_gun.dm | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 82539ddc09..9ec9ed8a0e 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -19,7 +19,7 @@ var/last_synth = 0 var/obj/item/reagent_containers/glass/bottle/vial/vial var/list/allowed_containers = list(/obj/item/reagent_containers/glass/bottle/vial/small, /obj/item/reagent_containers/glass/bottle/vial/large) - var/quickload = TRUE // + var/quickload = TRUE /obj/item/gun/chem/Initialize() . = ..() @@ -54,11 +54,34 @@ /obj/item/gun/chem/attackby(obj/item/I, mob/living/user) if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) if(vial) + if(!quickload) + to_chat(user, "[src] can not hold more than one vial!") + return FALSE + unload_hypo(vial, user) + else + var/obj/item/reagent_containers/glass/bottle/vial/V = I + if(!is_type_in_list(V, allowed_containers)) + to_chat(user, "[src] doesn't accept this type of vial.") + return FALSE + if(!user.transferItemToLoc(V,src)) + return FALSE + vial = V + user.visible_message("[user] has loaded a vial into [src].","You have loaded [vial] into [src].") + update_icon() + playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) + return TRUE + else + to_chat(user, "This doesn't fit in [src].") + return FALSE + +/* +/obj/item/hypospray/mkii/attackby(obj/item/I, mob/living/user) + if((istype(I, /obj/item/reagent_containers/glass/bottle/vial) && vial != null)) if(!quickload) to_chat(user, "[src] can not hold more than one vial!") return FALSE unload_hypo(vial, user) - else + if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) var/obj/item/reagent_containers/glass/bottle/vial/V = I if(!is_type_in_list(V, allowed_containers)) to_chat(user, "[src] doesn't accept this type of vial.") @@ -73,17 +96,15 @@ else to_chat(user, "This doesn't fit in [src].") return FALSE +*/ /obj/item/gun/chem/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) . = ..() //Don't bother changing this or removing it from containers will break. /obj/item/gun/chem/attack_self(mob/living/user) - if(user && user.incapacitated()) - if(user.incapacitated()) - return - else if(!vial) + if(user && !user.incapacitated()) + if(!vial) to_chat(user, "This Hypo needs to be loaded first!") - return else unload_hypo(vial,user) From 8ab281dfd6a4293d7dcff12ed20401e10be12e28 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Fri, 12 Nov 2021 19:21:45 -0800 Subject: [PATCH 23/23] make hot swap work properly --- .../modules/projectiles/guns/misc/chem_gun.dm | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 9ec9ed8a0e..ccc4c5bd15 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -58,30 +58,6 @@ to_chat(user, "[src] can not hold more than one vial!") return FALSE unload_hypo(vial, user) - else - var/obj/item/reagent_containers/glass/bottle/vial/V = I - if(!is_type_in_list(V, allowed_containers)) - to_chat(user, "[src] doesn't accept this type of vial.") - return FALSE - if(!user.transferItemToLoc(V,src)) - return FALSE - vial = V - user.visible_message("[user] has loaded a vial into [src].","You have loaded [vial] into [src].") - update_icon() - playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) - return TRUE - else - to_chat(user, "This doesn't fit in [src].") - return FALSE - -/* -/obj/item/hypospray/mkii/attackby(obj/item/I, mob/living/user) - if((istype(I, /obj/item/reagent_containers/glass/bottle/vial) && vial != null)) - if(!quickload) - to_chat(user, "[src] can not hold more than one vial!") - return FALSE - unload_hypo(vial, user) - if((istype(I, /obj/item/reagent_containers/glass/bottle/vial))) var/obj/item/reagent_containers/glass/bottle/vial/V = I if(!is_type_in_list(V, allowed_containers)) to_chat(user, "[src] doesn't accept this type of vial.") @@ -96,7 +72,6 @@ else to_chat(user, "This doesn't fit in [src].") return FALSE -*/ /obj/item/gun/chem/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) . = ..() //Don't bother changing this or removing it from containers will break.