From 5a698e6924359a32a2686f6b7a12a786a7b96480 Mon Sep 17 00:00:00 2001 From: "firecage@hotmail.com" Date: Tue, 19 Jul 2011 19:05:13 +0000 Subject: [PATCH] Shock gun is fixed so it will function like it is supposed to. Also a new weapon added called the Rapid Syringe Gun. It can only be made via R&D. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1893 316c924e-a436-60f5-8080-3fe189b3f50e --- code/WorkInProgress/Chemistry-Tools.dm | 78 +++++++++++++++++++++ code/game/objects/items/weapons/guns_new.dm | 14 ++-- code/game/research/designs.dm | 9 +++ 3 files changed, 97 insertions(+), 4 deletions(-) diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm index 8b8d88fd3a6..a5af6e4a89f 100644 --- a/code/WorkInProgress/Chemistry-Tools.dm +++ b/code/WorkInProgress/Chemistry-Tools.dm @@ -401,6 +401,84 @@ return +/obj/item/weapon/gun/rapidsyringe + name = "rapid syringe gun" + icon = 'gun.dmi' + icon_state = "syringegun" + item_state = "syringegun" + w_class = 3.0 + throw_speed = 4 + throw_range = 10 + force = 8.0 + var/list/syringes = new/list() + var/max_syringes = 40 + + examine() + set src in view() + ..() + if (!(usr in view(2)) && usr!=src.loc) return + usr << "\icon [src] Rapid Syringe gun:" + usr << "\blue [syringes] / [max_syringes] Syringes." + + attackby(obj/item/I as obj, mob/user as mob) + if(istype(I, /obj/item/weapon/reagent_containers/syringe)) + if(syringes.len < max_syringes) + user.drop_item() + I.loc = src + syringes += I + user << "\blue You put the syringe in the rapid syringe gun." + user << "\blue [syringes.len] / [max_syringes] Syringes." + else + usr << "\red The rapid syringe gun cannot hold more syringes." + + afterattack(obj/target, mob/user , flag) + if(!isturf(target.loc) || target == user) return + + if(syringes.len) + spawn(0) fire_syringe(target,user) + else + usr << "\red rapid The syringe gun is empty." + + proc + fire_syringe(atom/target, mob/user) + if (locate (/obj/table, src.loc)) + return + else + var/turf/trg = get_turf(target) + var/obj/syringe_gun_dummy/D = new/obj/syringe_gun_dummy(get_turf(src)) + var/obj/item/weapon/reagent_containers/syringe/S = syringes[1] + S.reagents.trans_to(D, S.reagents.total_volume) + syringes -= S + del(S) + D.icon_state = "syringeproj" + D.name = "syringe" + playsound(user.loc, 'syringeproj.ogg', 50, 1) + + for(var/i=0, i<6, i++) + if(!D) break + if(D.loc == trg) break + step_towards(D,trg) + + for(var/mob/living/carbon/M in D.loc) + if(!istype(M,/mob/living/carbon)) continue + if(M == user) continue + D.reagents.trans_to(M, 15) + M.take_organ_damage(5) + for(var/mob/O in viewers(world.view, D)) + O.show_message(text("\red [] was hit by the syringe!", M), 1) + + del(D) + if(D) + for(var/atom/A in D.loc) + if(A == user) continue + if(A.density) del(D) + + sleep(1) + + if (D) spawn(10) del(D) + + return + /obj/reagent_dispensers name = "Dispenser" diff --git a/code/game/objects/items/weapons/guns_new.dm b/code/game/objects/items/weapons/guns_new.dm index 333e5541ab7..30c2fbe6777 100644 --- a/code/game/objects/items/weapons/guns_new.dm +++ b/code/game/objects/items/weapons/guns_new.dm @@ -72,15 +72,21 @@ name = "shock" icon_state = "fireball" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 20 - mobdamage = list(BRUTE = 0, BURN = 20, TOX = 0, OXY = 0, CLONE = 0) + damage = 25 + mobdamage = list(BRUTE = 0, BURN = 25, TOX = 0, OXY = 0, CLONE = 0) flag = "laser" + New() + ..() + effects["stun"] = 10 + effects["weak"] = 10 + effects["stutter"] = 10 + effectprob["weak"] = 25 declone name = "declown" icon_state = "declone" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 20 + damage = 70 mobdamage = list(BRUTE = 0, BURN = 0, TOX = 0, OXY = 0, CLONE = 70) flag = "laser" @@ -304,7 +310,7 @@ dart desc = "A dart for use in shotguns.." - name = "shotgun dart" + name = "shotgun daFrt" icon_state = "blshell" //someone, draw the icon, please. m_amt = 50000 //because it's like, instakill. diff --git a/code/game/research/designs.dm b/code/game/research/designs.dm index 05286510cd6..aea4afc378c 100644 --- a/code/game/research/designs.dm +++ b/code/game/research/designs.dm @@ -1038,6 +1038,15 @@ datum reliability_base = 100 build_path = "/obj/item/weapon/chemsprayer" + rapidsyringe + name = "Rapid Syringe Gun" + desc = "A gun that fires many syringes." + id = "rapidsyringe" + req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 5000, "$glass" = 1000) + build_path = "/obj/item/weapon/gun/rapidsyringe" + freeze_gun name = "Freeze Gun" desc = "A gun that shoots supercooled hydrogen particles to drastically chill a target's body temperature."