From 6bae20b0a02dfa30e1ec5a6e18da3fc4d99a0d77 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 1 Oct 2015 19:30:42 +0200 Subject: [PATCH] Syringe gun update, borghydro update --- code/datums/uplink_item.dm | 8 + code/modules/projectiles/gun.dm | 1 + code/modules/projectiles/guns/projectile.dm | 2 +- .../guns}/syringe_gun.dm | 143 ++++++++++-------- .../reagents/reagent_containers/borghydro.dm | 8 +- paradise.dme | 2 +- 6 files changed, 92 insertions(+), 72 deletions(-) rename code/modules/{reagents => projectiles/guns}/syringe_gun.dm (76%) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 7f3372e6271..05a8971bc50 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -511,6 +511,14 @@ var/list/uplink_items = list() item = /obj/item/weapon/soap/syndie cost = 1 surplus = 50 + +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any space a small item can." + reference = "DART" + item = /obj/item/weapon/gun/syringe/syndicate + cost = 4 + surplus = 50 /datum/uplink_item/stealthy_weapons/detomatix name = "Detomatix PDA Cartridge" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 2497bb89c6c..c1eb0f1ebee 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -27,6 +27,7 @@ var/ghettomodded = 0 var/recoil = 0 var/can_suppress = 0 + var/can_unsuppress = 1 var/clumsy_check = 1 var/sawn_desc = null var/sawn_state = SAWN_INTACT diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 03340af09b7..f7b61436dfe 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -100,7 +100,7 @@ /obj/item/weapon/gun/projectile/attack_hand(mob/user as mob) if(loc == user) - if(silenced) + if(silenced && can_unsuppress) var/obj/item/weapon/suppressor/S = silenced if(user.l_hand != src && user.r_hand != src) ..() diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm similarity index 76% rename from code/modules/reagents/syringe_gun.dm rename to code/modules/projectiles/guns/syringe_gun.dm index 7a0d207aca1..672f683e3b2 100644 --- a/code/modules/reagents/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -1,66 +1,77 @@ -/obj/item/weapon/gun/syringe - name = "syringe gun" - desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance." - icon_state = "syringegun" - item_state = "syringegun" - w_class = 3 - throw_speed = 2 - throw_range = 10 - force = 4 - materials = list(MAT_METAL=2000) - clumsy_check = 0 - fire_sound = 'sound/items/syringeproj.ogg' - var/list/syringes = list() - var/max_syringes = 1 - -/obj/item/weapon/gun/syringe/process_chambered() - if(!syringes.len) return 0 - - var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] - - if(!S) return 0 - - in_chamber = new /obj/item/projectile/bullet/dart/syringe(src) - S.reagents.trans_to(in_chamber, S.reagents.total_volume) - in_chamber.name = S.name - syringes.Remove(S) - - qdel(S) - return 1 - -/obj/item/weapon/gun/syringe/examine(mob/user) - ..(user) - user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining." - -/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob) - if(!syringes.len) - user << "[src] is empty." - return 0 - - var/obj/item/weapon/reagent_containers/syringe/S = syringes[syringes.len] - - if(!S) return 0 - S.loc = user.loc - - syringes.Remove(S) - user << "You unload [S] from \the [src]!" - - return 1 - -/obj/item/weapon/gun/syringe/attackby(var/obj/item/A as obj, mob/user as mob, var/show_msg = 1, params) - if(istype(A, /obj/item/weapon/reagent_containers/syringe)) - if(syringes.len < max_syringes) - user.drop_item() - user << "You load [A] into \the [src]!" - syringes.Add(A) - A.loc = src - return 1 - else - usr << "[src] cannot hold more syringes." - return 0 - -/obj/item/weapon/gun/syringe/rapidsyringe - name = "rapid syringe gun" - desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes." - icon_state = "rapidsyringegun" - max_syringes = 6 \ No newline at end of file +/obj/item/weapon/gun/syringe + name = "syringe gun" + desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance." + icon_state = "syringegun" + item_state = "syringegun" + w_class = 3 + throw_speed = 3 + throw_range = 7 + force = 4 + materials = list(MAT_METAL=2000) + clumsy_check = 0 + fire_sound = 'sound/items/syringeproj.ogg' + var/list/syringes = list() + var/max_syringes = 1 + +/obj/item/weapon/gun/syringe/process_chambered() + if(!syringes.len) return 0 + + var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] + + if(!S) return 0 + + in_chamber = new /obj/item/projectile/bullet/dart/syringe(src) + S.reagents.trans_to(in_chamber, S.reagents.total_volume) + in_chamber.name = S.name + syringes.Remove(S) + + qdel(S) + return 1 + +/obj/item/weapon/gun/syringe/examine(mob/user) + ..(user) + user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining." + +/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob) + if(!syringes.len) + user << "[src] is empty." + return 0 + + var/obj/item/weapon/reagent_containers/syringe/S = syringes[syringes.len] + + if(!S) return 0 + S.forceMove(user.loc) + + syringes.Remove(S) + user << "You unload [S] from \the [src]!" + + return 1 + +/obj/item/weapon/gun/syringe/attackby(var/obj/item/A as obj, mob/user as mob, var/show_msg = 1, params) + if(istype(A, /obj/item/weapon/reagent_containers/syringe)) + if(syringes.len < max_syringes) + user.drop_item() + user << "You load [A] into \the [src]!" + syringes.Add(A) + A.forceMove(src) + return 1 + else + usr << "[src] cannot hold more syringes." + return 0 + +/obj/item/weapon/gun/syringe/rapidsyringe + name = "rapid syringe gun" + desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes." + icon_state = "rapidsyringegun" + max_syringes = 6 + +/obj/item/weapon/gun/syringe/syndicate + name = "dart pistol" + desc = "A small spring-loaded sidearm that functions identically to a syringe gun." + icon_state = "syringe_pistol" + item_state = "gun" //Smaller inhand + w_class = 2 + origin_tech = "combat=2;syndicate=2" + force = 2 //Also very weak because it's smaller + silenced = 1 //Softer fire sound + can_unsuppress = 0 //Permanently silenced diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 757ff34b630..f34c8aa8eb3 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -29,7 +29,7 @@ icon_state = "borghypo_s" charge_cost = 20 recharge_time = 2 - reagent_ids = list("omnizine", "salbutamol", "mannitol", "mutadone", "charcoal", "potass_iodide") + reagent_ids = list("syndicate_nanites", "potass_iodide", "ether") /obj/item/weapon/reagent_containers/borghypo/New() ..() @@ -100,7 +100,7 @@ charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes. var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]] - user << "\blue Synthesizer is now producing '[R.name]'." + user << "Synthesizer is now producing '[R.name]'." return /obj/item/weapon/reagent_containers/borghypo/examine(mob/user) @@ -112,8 +112,8 @@ for(var/datum/reagents/RS in reagent_list) var/datum/reagent/R = locate() in RS.reagent_list if(R) - user << "\blue It currently has [R.volume] units of [R.name] stored." + user << "It currently has [R.volume] units of [R.name] stored." empty = 0 if(empty) - user << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more." + user << "It is currently empty. Allow some time for the internal syntheszier to produce more." diff --git a/paradise.dme b/paradise.dme index 510d4864fbe..641a34617f1 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1608,6 +1608,7 @@ #include "code\modules\projectiles\guns\energy.dm" #include "code\modules\projectiles\guns\magic.dm" #include "code\modules\projectiles\guns\projectile.dm" +#include "code\modules\projectiles\guns\syringe_gun.dm" #include "code\modules\projectiles\guns\energy\advtaser.dm" #include "code\modules\projectiles\guns\energy\hos.dm" #include "code\modules\projectiles\guns\energy\laser.dm" @@ -1642,7 +1643,6 @@ #include "code\modules\reagents\grenade_launcher.dm" #include "code\modules\reagents\reagent_containers.dm" #include "code\modules\reagents\reagent_dispenser.dm" -#include "code\modules\reagents\syringe_gun.dm" #include "code\modules\reagents\newchem\Blob-Reagents.dm" #include "code\modules\reagents\newchem\chem_heater.dm" #include "code\modules\reagents\newchem\drinks.dm"