From e540550cff53942910f354625adcb904dcca3b8c Mon Sep 17 00:00:00 2001 From: mwerezak Date: Mon, 23 Feb 2015 17:56:54 -0500 Subject: [PATCH 01/10] Adds an underslung grenade launcher to the Z8. --- .../guns/launcher/grenade_launcher.dm | 67 +++++++++++++----- .../projectiles/guns/projectile/automatic.dm | 64 ++++++++++++----- icons/obj/gun.dmi | Bin 49737 -> 49729 bytes 3 files changed, 97 insertions(+), 34 deletions(-) diff --git a/code/modules/projectiles/guns/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/launcher/grenade_launcher.dm index 38facb34b8..906e428e8d 100644 --- a/code/modules/projectiles/guns/launcher/grenade_launcher.dm +++ b/code/modules/projectiles/guns/launcher/grenade_launcher.dm @@ -1,6 +1,6 @@ /obj/item/weapon/gun/launcher/grenade name = "grenade launcher" - desc = "A bulky pump-action grenade launcher. Holds up to 5 grenades in a revolving magazine." + desc = "A bulky pump-action grenade launcher. Holds up to 6 grenades in a revolving magazine." icon_state = "riotgun" item_state = "riotgun" w_class = 4 @@ -14,7 +14,7 @@ var/obj/item/weapon/grenade/chambered var/list/grenades = new/list() - var/max_grenades = 4 //holds this + one in the chamber + var/max_grenades = 5 //holds this + one in the chamber matter = list("metal" = 2000) //revolves the magazine, allowing players to choose between multiple grenade types @@ -42,30 +42,36 @@ if(chambered) user << "\A [chambered] is chambered." +/obj/item/weapon/gun/launcher/grenade/proc/load(obj/item/weapon/grenade/G, mob/user) + if(grenades.len >= max_grenades) + user << "[src] is full." + return + user.remove_from_mob(G) + G.loc = src + grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump + user.visible_message("[user] inserts \a [G] into [src].", "You insert \a [G] into [src].") + +/obj/item/weapon/gun/launcher/grenade/proc/unload(mob/user) + if(grenades.len) + var/obj/item/weapon/grenade/G = grenades[grenades.len] + grenades.len-- + user.put_in_hands(G) + user.visible_message("[user] removes \a [G] from [src].", "You remove \a [G] from [src].") + else + user << "[src] is empty." + /obj/item/weapon/gun/launcher/grenade/attack_self(mob/user) pump(user) /obj/item/weapon/gun/launcher/grenade/attackby(obj/item/I, mob/user) if((istype(I, /obj/item/weapon/grenade))) - if(grenades.len >= max_grenades) - user << "[src] is full." - return - user.remove_from_mob(I) - I.loc = src - grenades.Insert(1, I) //add to the head of the list, so that it is loaded on the next pump - user.visible_message("[user] inserts \a [I] into [src].", "You insert \a [I] into [src].") + load(I, user) else ..() /obj/item/weapon/gun/launcher/grenade/attack_hand(mob/user) if(user.get_inactive_hand() == src) - if(grenades.len) - var/obj/item/weapon/grenade/G = grenades[grenades.len] - grenades.len-- - user.put_in_hands(G) - user.visible_message("[user] removes \a [G] from [src].", "You remove \a [G] from [src].") - else - user << "[src] is empty." + unload(user) else ..() @@ -79,3 +85,32 @@ message_admins("[key_name_admin(user)] fired a grenade ([chambered.name]) from a grenade launcher ([src.name]).") log_game("[key_name_admin(user)] used a grenade ([chambered.name]).") chambered = null + +//Underslung grenade launcher to be used with the Z8 +/obj/item/weapon/gun/launcher/grenade/underslung + name = "underslung grenade launcher" + desc = "Not much more than a tube and a firing mechanism, this grenade launcher is designed to be fitted to a rifle." + w_class = 3 + force = 5 + max_grenades = 0 + +/obj/item/weapon/gun/launcher/grenade/underslung/attack_self() + return + +//load and unload directly into chambered +/obj/item/weapon/gun/launcher/grenade/underslung/load(obj/item/weapon/grenade/G, mob/user) + if(chambered) + user << "[src] is already loaded." + return + user.remove_from_mob(G) + G.loc = src + chambered = G + user.visible_message("[user] load \a [G] into [src].", "You load \a [G] into [src].") + +/obj/item/weapon/gun/launcher/grenade/underslung/unload(mob/user) + if(chambered) + user.put_in_hands(chambered) + user.visible_message("[user] removes \a [chambered] from [src].", "You remove \a [chambered] from [src].") + chambered = null + else + user << "[src] is empty." \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index e331482d97..8776b6c591 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -47,6 +47,23 @@ icon_state = "c20r" return +/obj/item/weapon/gun/projectile/automatic/sts35 + name = "\improper STS-35 automatic rifle" + desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked." + icon_state = "arifle" + item_state = "shotgun" + w_class = 4 + force = 10 + caliber = "a762" + origin_tech = "combat=6;materials=1;syndicate=4" + slot_flags = SLOT_BACK + load_method = MAGAZINE + magazine_type = /obj/item/ammo_magazine/c762 + +/obj/item/weapon/gun/projectile/automatic/sts35/update_icon() + ..() + icon_state = (ammo_magazine)? "arifle-0" : "arifle" + /obj/item/weapon/gun/projectile/automatic/wt550 name = "\improper W-T 550 Saber" desc = "A cheap, mass produced Ward-Takahashi PDW. Uses 9mm rounds." @@ -70,7 +87,7 @@ /obj/item/weapon/gun/projectile/automatic/z8 name = "\improper Z8 Bulldog" - desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds. Makes you feel like a space marine when you hold it." + desc = "An older model bullpup carbine, made by the now defunct Zendai Foundries. Uses armor piercing 5.56mm rounds and has an underslung grenade launcher. Makes you feel like a space marine when you hold it." icon_state = "carbine" item_state = "shotgun" w_class = 4 @@ -82,6 +99,34 @@ slot_flags = SLOT_BACK load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/a556 + var/use_launcher = 0 + var/obj/item/weapon/gun/launcher/grenade/underslung/launcher + +/obj/item/weapon/gun/projectile/automatic/z8/New() + ..() + launcher = new(src) + +/obj/item/weapon/gun/projectile/automatic/z8/attack_self(mob/user) + use_launcher = !use_launcher + user << "You switch to [use_launcher? "\the [launcher]" : "firing normally"]." + +/obj/item/weapon/gun/projectile/automatic/z8/attackby(obj/item/I, mob/user) + if((istype(I, /obj/item/weapon/grenade))) + launcher.load(I, user) + else + ..() + +/obj/item/weapon/gun/projectile/automatic/z8/attack_hand(mob/user) + if(user.get_inactive_hand() == src && use_launcher) + launcher.unload(user) + else + ..() + +/obj/item/weapon/gun/projectile/automatic/z8/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0) + if(use_launcher) + launcher.Fire(target, user, params, pointblank, reflex) + else + ..() /obj/item/weapon/gun/projectile/automatic/z8/update_icon() ..() @@ -91,23 +136,6 @@ icon_state = "carbine" return -/obj/item/weapon/gun/projectile/automatic/sts35 - name = "\improper STS-35 automatic rifle" - desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked." - icon_state = "assltrifle" - item_state = "shotgun" - w_class = 4 - force = 10 - caliber = "a762" - origin_tech = "combat=6;materials=1;syndicate=4" - slot_flags = SLOT_BACK - load_method = MAGAZINE - magazine_type = /obj/item/ammo_magazine/c762 - -/obj/item/weapon/gun/projectile/automatic/sts35/update_icon() - ..() - icon_state = (ammo_magazine)? "assltrifle" : "assltrifle-noclip" - /obj/item/weapon/gun/projectile/automatic/l6_saw name = "\improper L6 SAW" desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index acf1791ceb2e3257d4070bcbe7bac2a6d5f50442..ce8762d6e1e9b6233bb6a1de1fd552f0d47eb2cc 100644 GIT binary patch delta 1310 zcmV+(1>yS1gag5Z1CS&EERiK38C68HG`xGk+jjL(V85T0_n#AX-DtC?wj>C~IHTISJa?a5>O0 z$@IgS=6wdQL{E~;Fk3gt^eex^0d3#$fX455Kfv_%IN$nJsy z6|o`|nV&M?uTZ5@ipD=nwRnx{^rJt}u|bD+{FU$^v=2vT3&? zbM(T}D{Sfzr94()i`KKyUVji+ME`&S>IV|gK9GR&flM!$_q&O=Iv*+0pgi2{U^n}i zchL!A5$Sgy_N4N|&J;WdJ{;ZW9`Qr!nbZSBAga5DZU0{}Tmt{Uezk zUH_m_yYzR;vKQcUJ~n?hO{GyTT@_8ay|DtSE|5Sa2NGBvfkc+v$bTiTrawHbDi z>i^T+I+b4b-H}GC4V!^nST{*{9nKp?{1=lNeXh@IwZOgtM@KPzwrVU_pV@E@)=QrYB(|N_6fE+{t4f*Wze!S>U!!$BRoBa=gVlYe;;6FD}dA0I$Ksz3rt z1riV{kk|yhcPzcJdkl344bginY7atV^d5{k$dm5Lg)(gBgk8hD(a0F#3L|rbD~t>h zt}y6$oE#k9I5{-9adK#Au6f4zp2UyYhw##d=ELA&UD>C`(X9EG%*!3n+5X z3n+4e3@Glj!hd>gaj!H%Cr3|03Mfs`LHAy1g3izPN)s?o^BfpCSXUmaLiY@GwrOW7!Z+tKIqxPj>z*|05`Q-9hBxQ-*lK~mUr0+>&3@5q9#(R=$Y-}jGM%t)$-9}+O8rp)DTRL2k>{kH4I{AU&DKpr1ae3wCYiLF6Y&>VjR^c`)tpNbGe6i+;scN>f@X zhRw!225x-3&Tb#mD0by>cKdxDow0mv6`QyutRmaj*H)2f%-2SdW69S>nNnElhDr9! zq|a3z?bMjQzv`HI;WAPhu~!L3Rg)RQVwb7$VwPD2i&F?6Yi zQu&87Bl-ef%bpb3;o|(H@~`|32ef_10~){M0j=Nhh~`&=qmZ%?FNyakq%4W|D5NZj z_b8-9;yqh-fgscw@RDcCE|i(h zSa885v4r&74|~%3!_E{vNHHAz=N@)%9v;^5@5X+lUQA=w!FC=0ZbPsl|NKuBFwKu_ zdQ9_!M&t9}DaT%b&-vK?-L|zsxqMZ$>&=Z7P<4?6DmjwC>WCz=;Ca9j&d0Z;fov>sASFv2$jcH(lG78HTBS7k>S#1u zCZB>Bry@dZQ{o}EsXQUJ$U0q^N#@9Mrj*Wq^cHL?bxmTg|M<2GS3prNXrLw+G*FTY z8mmY)NJ^a5Z#d4z{C`j;pjk|4WyQV#M8cU_K&Tl7GBBe+YG<^tV>6R<2_-%(lJ3R~ z(Zx*CA)=T`Iz$mONr%W`Cg~t87N1()HTjPQ?;2ZoK!epawr=l1uEV(e*@kzGt+yBk z&4#d%#tb4o;^x*28*8Dx?Tli>EVvQ30&G7$+wb+BAD9~Qn}5uUoXE2w|M&<3QbiI_ zDw2Ruk;EqGy=VE2Jz%IiXo%ipQ3ntjqxWFUQJ#EHF12MBLD)6S8;y(+t}rr3xWdRF z;R=I}$H~Ltjgv=%8z+y3HclQ5Y@B@F>2R?cY**e;saa3?J4AWUrFH~W#LOb+v4|oE zy@(to$X3@22(VcA3g>T7aa@kF0(LHI=C4X$u4R6Wqu`}XG{$TY9nsF`Y zd<8G*{K{C;`4y+Ma0HH1oDv4v5S1|4Nk5Rt7)}X;jrWu=*w|1BgS1iIvW>!eG`P`0 znwZzt?!P$f75|O9_^`|2X;Gu1OADzP3t@UouvSz3gkN#AxPgqr@5I zYokIb9PwdNJ+t{kRzSHP^GWB-z6h1bc Date: Mon, 23 Feb 2015 18:04:36 -0500 Subject: [PATCH 02/10] Misc gun tweaks --- code/modules/projectiles/ammunition/boxes.dm | 2 +- code/modules/projectiles/guns/energy/laser.dm | 1 + code/modules/projectiles/guns/projectile/automatic.dm | 5 ++++- code/modules/projectiles/guns/projectile/shotgun.dm | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index d580e72979..be30717c47 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -109,7 +109,7 @@ initial_ammo = 0 /obj/item/ammo_magazine/a556 - name = "magazine (5.56)" + name = "magazine (5.56mm)" icon_state = "5.56" origin_tech = "combat=2" mag_type = MAGAZINE diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 5046343821..527f8c2020 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -34,6 +34,7 @@ obj/item/weapon/gun/energy/laser/retro force = 5 slot_flags = SLOT_BELT origin_tech = null + charge_cost = 200 //to compensate a bit for self-recharging self_recharge = 1 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 8776b6c591..d497ecf0f2 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -49,7 +49,7 @@ /obj/item/weapon/gun/projectile/automatic/sts35 name = "\improper STS-35 automatic rifle" - desc = "A durable, rugged looking automatic weapon of a make popular on the frontier. Uses 7.62mm rounds. It is unmarked." + desc = "A durable, rugged looking automatic weapon of a make popular on the frontier worlds. Uses 7.62mm rounds. It is unmarked." icon_state = "arifle" item_state = "shotgun" w_class = 4 @@ -99,6 +99,9 @@ slot_flags = SLOT_BACK load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/a556 + auto_eject = 1 + auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' + var/use_launcher = 0 var/obj/item/weapon/gun/launcher/grenade/underslung/launcher diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 225ebd4640..f7f4fbdbe0 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -43,7 +43,7 @@ name = "combat shotgun" icon_state = "cshotgun" origin_tech = "combat=5;materials=2" - max_shells = 8 + max_shells = 7 //match the ammo box capacity, also it can hold a round in the chamber anyways, for a total of 8. ammo_type = /obj/item/ammo_casing/shotgun From 4f86f698080258ab9db70bb996c61c554f5619e2 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Mon, 23 Feb 2015 22:27:40 -0500 Subject: [PATCH 03/10] Fixes missing return that made all bullets pass through mobs --- code/modules/projectiles/projectile/bullets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 50d3c04f46..fcdab54beb 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -19,7 +19,7 @@ mob_passthrough_check = 1 else mob_passthrough_check = 0 - ..() + return ..() /obj/item/projectile/bullet/can_embed() //prevent embedding if the projectile is passing through the mob From 404c8886da38e1cfc40856410c35270622e56fb5 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 19:37:49 -0500 Subject: [PATCH 04/10] Fixes #8230 --- code/modules/clothing/under/accessories/holster.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index 3b9104b80e..d87925534a 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -19,6 +19,7 @@ user.drop_from_inventory(holstered) holstered.loc = src holstered.add_fingerprint(user) + w_class = max(w_class, holstered.w_class) user.visible_message("[user] holsters \the [holstered].", "You holster \the [holstered].") /obj/item/clothing/accessory/holster/proc/unholster(mob/user as mob) @@ -41,6 +42,7 @@ user.put_in_hands(holstered) holstered.add_fingerprint(user) holstered = null + w_class = initial(w_class) /obj/item/clothing/accessory/holster/attack_hand(mob/user as mob) if (has_suit) //if we are part of a suit From 51240556636f5c85878ea70b90719e640b548080 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 19:42:24 -0500 Subject: [PATCH 05/10] Fixes #8243 Didn't want to have to generate even more lists so this is what you get. --- code/modules/mob/living/carbon/human/examine.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index bb468eaa6c..277f88c809 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -64,7 +64,7 @@ if(istype(w_uniform,/obj/item/clothing/under)) var/obj/item/clothing/under/U = w_uniform if(U.accessories.len) - tie_msg += " with [lowertext(english_list(U.accessories))]" + tie_msg += ". Attached to it is [lowertext(english_list(U.accessories))]" if(w_uniform.blood_DNA) msg += "[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != "#030303") ? "blood" : "oil"]-stained [w_uniform.name][tie_msg]!\n" From 944be58804408f6ffd99fdcf2bd24e7cfcd6c3a3 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 20:17:35 -0500 Subject: [PATCH 06/10] Adjusts sniper rifle damage Lowers wall pierce chance back to original value to compensate, and increase the cost of ammo by 1 TC. --- code/game/gamemodes/game_mode.dm | 2 +- code/modules/projectiles/projectile/bullets.dm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3e853436fd..0ce94aabac 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -36,7 +36,7 @@ new/datum/uplink_item(/obj/item/ammo_magazine/a357, 2, ".357", "RA"), new/datum/uplink_item(/obj/item/ammo_magazine/mc9mm, 2, "9mm", "R9"), new/datum/uplink_item(/obj/item/ammo_magazine/chemdart, 2, "Darts", "AD"), - new/datum/uplink_item(/obj/item/weapon/storage/box/sniperammo, 3, "14.5mm", "SA") + new/datum/uplink_item(/obj/item/weapon/storage/box/sniperammo, 4, "14.5mm", "SA") ), "Highly Visible and Dangerous Weapons" = list( new/datum/uplink_item(/obj/item/weapon/storage/box/emps, 3, "5 EMP Grenades", "EM"), diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 1fc0bdcb7f..627785343f 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -43,10 +43,10 @@ var/chance = 0 if(istype(A, /turf/simulated/wall)) var/turf/simulated/wall/W = A - chance = round(damage/W.damage_cap*250) + chance = round(damage/W.damage_cap*180) else if(istype(A, /obj/machinery/door)) var/obj/machinery/door/D = A - chance = round(damage/D.maxhealth*150) + chance = round(damage/D.maxhealth*180) else if(istype(A, /obj/structure/girder) || istype(A, /obj/structure/cultgirder)) chance = 100 else if(istype(A, /obj/machinery) || istype(A, /obj/structure)) @@ -141,7 +141,7 @@ penetrating = 1 /obj/item/projectile/bullet/rifle/a145 - damage = 60 + damage = 80 stun = 3 weaken = 3 penetrating = 5 From 3e71802a520f913a30523544e77e1d7ab52e8b89 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 21:23:19 -0500 Subject: [PATCH 07/10] Replaces colt signal pistol with a Mk58 version. Makes more sense for the HoP, and ensures the colt remains more of a detective signature item. --- .../crates_lockers/closets/secure/security.dm | 2 +- code/modules/projectiles/guns/projectile/pistol.dm | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 35c4a7f23e..ab0a42d290 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -54,7 +54,7 @@ new /obj/item/weapon/storage/box/ids(src) new /obj/item/weapon/storage/box/ids( src ) new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/weapon/gun/projectile/colt/flash(src) + new /obj/item/weapon/gun/projectile/sec/flash(src) new /obj/item/device/flash(src) return diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index b2eb804aec..f2155fa669 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -7,11 +7,6 @@ origin_tech = "combat=2;materials=2" load_method = MAGAZINE -/obj/item/weapon/gun/projectile/colt/flash - name = "\improper Colt M1911 signal pistol" - desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 signal flash rounds." - magazine_type = /obj/item/ammo_magazine/c45m/flash - /obj/item/weapon/gun/projectile/colt/detective desc = "A cheap Martian knock-off of a Colt M1911. Uses less-than-lethal .45 rounds." magazine_type = /obj/item/ammo_magazine/c45m/rubber @@ -35,14 +30,18 @@ return 1 /obj/item/weapon/gun/projectile/sec - desc = "A Nanotrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds." + desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds." name = "\improper NT Mk58" icon_state = "secguncomp" magazine_type = /obj/item/ammo_magazine/c45m/rubber caliber = ".45" - origin_tech = "combat=3;materials=2" + origin_tech = "combat=2;materials=2" load_method = MAGAZINE +/obj/item/weapon/gun/projectile/sec/flash + name = "\improper NT Mk58 signal pistol" + desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 signal flash rounds." + magazine_type = /obj/item/ammo_magazine/c45m/flash /obj/item/weapon/gun/projectile/sec/wood desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses less-than-lethal .45 rounds." From ae6466ac4525e0f5bb94c4806bb7286e79889311 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 21:23:45 -0500 Subject: [PATCH 08/10] Examining the Z8 now shows what is loaded in the grenade launcher. --- code/modules/projectiles/guns/projectile/automatic.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index d497ecf0f2..af2b9f9368 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -139,6 +139,13 @@ icon_state = "carbine" return +/obj/item/weapon/gun/projectile/automatic/z8/examine(mob/user) + ..() + if(launcher.chambered) + user << "\The [launcher] has \a [launcher.chambered] loaded." + else + user << "\The [launcher] is empty." + /obj/item/weapon/gun/projectile/automatic/l6_saw name = "\improper L6 SAW" desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever" From 9782140d322a1a28eed6152f51aae4972cb57b19 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 21:25:31 -0500 Subject: [PATCH 09/10] Resolves #8236 Lasers deal more damage to grilles, and clicking directly on the grille makes it more likely for the grille to absorb the projectile. --- code/game/objects/structures/grille.dm | 33 ++++++++++++++++---------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 76eac1b6b4..c78754c7ed 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -67,22 +67,29 @@ //Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact var/damage = Proj.damage - var/passthrough - if(damage > 30) - passthrough = 1 - if(prob(20)) - Proj.damage *= 0.5 //weaken the projectile - else - //weaker bullets are affected to a greater extent - if(prob(20)) - passthrough = 0 - else - Proj.damage *= 0.5 //weaken the projectile - passthrough = 1 + var/passthrough = 0 + + //20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area. + //If they click on the grille itself then we assume they are aiming at the grille itself and the extra cover behaviour is always used. + switch(Proj.damage_type) + if(BRUTE) + //bullets + if(Proj.original == src || prob(20)) + Proj.damage *= between(0, Proj.damage/60, 0.5) + if(prob(max((damage-10)/25, 0))*100) + passthrough = 1 + else + Proj.damage *= between(0, Proj.damage/60, 1) + passthrough = 1 + if(BURN) + //beams and other projectiles are either blocked completely by grilles or stop half the damage. + if(!(Proj.original == src || prob(20))) + Proj.damage *= 0.5 + passthrough = 1 if(passthrough) . = -1 - damage *= 0.1 //if the bullet passes through then the grille avoids most of the damage + damage = between(0, (damage - Proj.damage)*(Proj.damage_type == BRUTE? 0.4 : 1), 10) //if the bullet passes through then the grille avoids most of the damage src.health -= damage*0.2 spawn(0) healthcheck() //spawn to make sure we return properly if the grille is deleted From b067b491a410cde84c4c4a7769eb55eb30cbc9e2 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 24 Feb 2015 23:36:19 -0500 Subject: [PATCH 10/10] Returns the laser carbine capacity to 10 --- code/modules/projectiles/guns/energy/laser.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 527f8c2020..28f95d8211 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -6,12 +6,11 @@ fire_sound = 'sound/weapons/Laser.ogg' slot_flags = SLOT_BELT|SLOT_BACK w_class = 3 - force = 10 //it has a stock, might as well give some kind of perk over the egun + force = 10 matter = list("metal" = 2000) origin_tech = "combat=3;magnets=2" projectile_type = /obj/item/projectile/beam - charge_cost = 75 - fire_delay = 1 + fire_delay = 1 //rapid fire /obj/item/weapon/gun/energy/laser/mounted self_recharge = 1