From e6487e4fbfac5f74fe03ce5faa967d7f6eeb27a0 Mon Sep 17 00:00:00 2001 From: Niezan Date: Fri, 30 Aug 2024 18:25:13 -0700 Subject: [PATCH] Dart gun & 5.7x28mm mag fixs --- .../ammunition/calibers/normal/a5_7mm.dm | 174 ++++++++++++++++++ .../ammunition/calibers/special/dart.dm | 73 ++++++++ icons/modules/projectiles/casings/slim.dmi | Bin 0 -> 1347 bytes 3 files changed, 247 insertions(+) create mode 100644 code/modules/projectiles/ammunition/calibers/normal/a5_7mm.dm create mode 100644 code/modules/projectiles/ammunition/calibers/special/dart.dm create mode 100644 icons/modules/projectiles/casings/slim.dmi diff --git a/code/modules/projectiles/ammunition/calibers/normal/a5_7mm.dm b/code/modules/projectiles/ammunition/calibers/normal/a5_7mm.dm new file mode 100644 index 0000000000..ad7e3d6691 --- /dev/null +++ b/code/modules/projectiles/ammunition/calibers/normal/a5_7mm.dm @@ -0,0 +1,174 @@ +/datum/ammo_caliber/a5_7mm + caliber = "5.7x28mm" + +//* Casings + +/obj/item/ammo_casing/a5_7mm + icon = 'icons/modules/projectiles/casings/slim.dmi' + icon_state = "small" + desc = "A 5.7x28mm bullet casing." + caliber = /datum/ammo_caliber/a5_7mm + projectile_type = /obj/projectile/bullet/pistol/lap + materials_base = list(MAT_STEEL = 30, MAT_COPPER = 30) + +/obj/item/ammo_casing/a5_7mm/ap + desc = "A 5.7x28mm armor-piercing bullet casing." + icon_state = "small-reinf" + projectile_type = /obj/projectile/bullet/pistol/ap + materials_base = list(MAT_STEEL = 80, MAT_COPPER = 30) + +/obj/item/ammo_casing/a5_7mm/hp + icon_state = "small-tech" + desc = "A 5.7x28mm hollow-point bullet casing." + projectile_type = /obj/projectile/bullet/pistol/hp + materials_base = list(MAT_STEEL = 60, MAT_COPPER = 30) + +/obj/item/ammo_casing/a5_7mm/hunter + desc = "A 5.7x28mm hunting bullet casing." + icon_state = "small-silver" + projectile_type = /obj/projectile/bullet/pistol/hunter + materials_base = list(MAT_STEEL = 30, MAT_COPPER = 50) + +//* Magazines + +/obj/item/ammo_magazine/a5_7mm + ammo_caliber = /datum/ammo_caliber/a5_7mm + ammo_preload = /obj/item/ammo_casing/a5_7mm + +/obj/item/ammo_magazine/a5_7mm/nt_les + name = "magazine (5.7x28mm)" + desc = "A durable top-loading magazine, designed for withstanding rough treatment." + icon = 'icons/modules/projectiles/magazines/old_magazine_stick.dmi' + icon_state = "ntles-1" + base_icon_state = "ntles" + rendering_system = GUN_RENDERING_STATES + rendering_count = 1 + ammo_max = 20 + +/obj/item/ammo_magazine/a5_7mm/nt_les/ap + name = "magazine (5.7x28mm armor piercing)" + rendering_static_overlay = "ap" + ammo_preload = /obj/item/ammo_casing/a5_7mm/ap + +/obj/item/ammo_magazine/a5_7mm/nt_les/hp + name = "magazine (5.7x28mm hollow-point)" + rendering_static_overlay = "hp" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hp + +/obj/item/ammo_magazine/a5_7mm/nt_les/hunter + name = "magazine (5.7x28mm hunter)" + rendering_static_overlay = "hunter" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hunter + +/obj/item/ammo_magazine/a5_7mm/nt_les/empty + ammo_current = 0 + +/obj/item/ammo_magazine/a5_7mm/nt_les/highcap + name = "high capacity magazine (5.7x28mm)" + icon_state = "ntles-high-1" + base_icon_state = "ntles-high" + ammo_max = 50 + +/obj/item/ammo_magazine/a5_7mm/nt_les/highcap/ap + name = "high capacity magazine (5.7x28mm armor piercing)" + rendering_static_overlay = "ap" + ammo_preload = /obj/item/ammo_casing/a5_7mm/ap +/obj/item/ammo_magazine/a5_7mm/nt_les/highcap/hp + name = "high capacity magazine (5.7x28mm hollow-point)" + rendering_static_overlay = "hp" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hp + +/obj/item/ammo_magazine/a5_7mm/nt_les/highcap/hunter + name = "high capacity magazine (5.7x28mm hunter)" + rendering_static_overlay = "hunter" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hunter + +/obj/item/ammo_magazine/a5_7mm/nt_les/highcap/empty + ammo_current = 0 + +//Harpy SMG + +/obj/item/ammo_magazine/a5_7mm/harpy_smg + name = "NT-SMG-8 magazine (5.7x28mm)" + desc = "A compact double stack aluminum magazine." + icon = 'icons/modules/projectiles/magazines/old_magazine_stick.dmi' + icon_state = "harpy" + rendering_count = 1 + rendering_system = GUN_RENDERING_STATES + ammo_max = 40 + +/obj/item/ammo_magazine/a5_7mm/harpy_smg/ap + name = "NT-SMG-8 magazine (5.7x28mm armor piercing)" + rendering_static_overlay = "ap" + ammo_preload = /obj/item/ammo_casing/a5_7mm/ap + +//Fiveseven mags +/obj/item/ammo_magazine/a5_7mm/five_seven + name = "fiveseven magazine (5.7x28mm)" + desc = "A sturdy double stack magazine with a reinforced spring, designed for withstanding rough treatment." + icon = 'icons/modules/projectiles/magazines/old_magazine_stick.dmi' + icon_state = "fiveseven-0" + base_icon_state = "fiveseven" + materials_base = list(MAT_STEEL = 300) + rendering_system = GUN_RENDERING_STATES + rendering_count = 1 + ammo_caliber = /datum/ammo_caliber/a5_7mm + ammo_preload = /obj/item/ammo_casing/a5_7mm + ammo_max = 20 + +/obj/item/ammo_magazine/a5_7mm/five_seven/ap + name = "magazine (5.7x28mm armor piercing)" + rendering_static_overlay = "ap" + ammo_preload = /obj/item/ammo_casing/a5_7mm/ap + +/obj/item/ammo_magazine/a5_7mm/five_seven/hp + name = "magazine (5.7x28mm hollow-point)" + rendering_static_overlay = "hp" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hp + +/obj/item/ammo_magazine/a5_7mm/five_seven/hunter + name = "magazine (5.7x28mm hunter)" + rendering_static_overlay = "hunter" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hunter + +/obj/item/ammo_magazine/a5_7mm/five_seven/empty + ammo_current = 0 + +/obj/item/ammo_magazine/a5_7mm/five_seven/highcap + name = "high capacity fiveseven magazine (5.7x28mm)" + desc = "A sturdy, extra long double stack magazine with a reinforced spring, designed for withstanding rough treatment." + icon_state = "fiveseven-high-1" + base_icon_state = "fiveseven-high" + ammo_max = 30 + +/obj/item/ammo_magazine/a5_7mm/five_seven/highcap/ap + name = "high capacity magazine (5.7x28mm armor piercing)" + rendering_static_overlay = "ap" + ammo_preload = /obj/item/ammo_casing/a5_7mm/ap +/obj/item/ammo_magazine/a5_7mm/five_seven/highcap/hp + name = "high capacity magazine (5.7x28mm hollow-point)" + rendering_static_overlay = "hp" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hp + +/obj/item/ammo_magazine/a5_7mm/five_seven/highcap/hunter + name = "high capacity magazine (5.7x28mm hunter)" + rendering_static_overlay = "hunter" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hunter + +/obj/item/ammo_magazine/a5_7mm/five_seven/highcap/empty + ammo_current = 0 + +/obj/item/ammo_magazine/a5_7mm/p90 + name = "high capacity top mounted magazine (5.7x28mm armor-piercing)" + icon_state = "p90-1" + base_icon_state = "p90" + rendering_system = GUN_RENDERING_STATES + ammo_preload = /obj/item/ammo_casing/a5_7mm/ap + ammo_max = 50 + +/obj/item/ammo_magazine/a5_7mm/p90/hunter + name = "high capacity top mounted magazine (5.7x28mm hunter)" + ammo_preload = /obj/item/ammo_casing/a5_7mm/hunter + +/obj/item/ammo_magazine/a5_7mm/p90/empty + ammo_current = 0 diff --git a/code/modules/projectiles/ammunition/calibers/special/dart.dm b/code/modules/projectiles/ammunition/calibers/special/dart.dm new file mode 100644 index 0000000000..118dac8ddb --- /dev/null +++ b/code/modules/projectiles/ammunition/calibers/special/dart.dm @@ -0,0 +1,73 @@ +/datum/ammo_caliber/dart + caliber = "dart" + +//* Casings *// + +/obj/item/ammo_casing/dart/chemdart + name = "chemical dart" + desc = "A casing containing a small hardened, hollow dart." + icon_state = "dart" + caliber = /datum/ammo_caliber/dart + projectile_type = /obj/projectile/bullet/chemdart + +/obj/item/ammo_casing/dart/chemdart/small + name = "short chemical dart" + icon_state = "dartsmall" + desc = "A casing containing a small hardened, hollow dart." + projectile_type = /obj/projectile/bullet/chemdart/small + +//* Magazines *// + +/obj/item/ammo_magazine/chemdart + name = "dart cartridge" + desc = "A rack of hollow darts." + + icon = 'icons/modules/projectiles/magazines/darts.dmi' + icon_state = "darts-5" + base_icon_state = "darts" + rendering_system = GUN_RENDERING_STATES + rendering_count = 5 + + item_state = "rcdammo" + origin_tech = list(TECH_MATERIAL = 2) + magazine_type = MAGAZINE_TYPE_NORMAL + ammo_caliber = /datum/ammo_caliber/dart + ammo_preload = /obj/item/ammo_casing/dart/chemdart + ammo_max = 5 + +/obj/item/ammo_magazine/chemdart/small + name = "small dart cartridge" + desc = "A rack of hollow darts." + + icon_state = "darts_small-5" + base_icon_state = "darts_small" + rendering_system = GUN_RENDERING_STATES + rendering_count = 3 + + origin_tech = list(TECH_MATERIAL = 2) + ammo_preload = /obj/item/ammo_casing/dart/chemdart/small + ammo_max = 3 + +//* Projectiles *// + +/obj/projectile/bullet/chemdart + name = "dart" + icon_state = "dart" + damage = 5 + var/reagent_amount = 15 + range = WORLD_ICON_SIZE * 15 + + muzzle_type = null + +/obj/projectile/bullet/chemdart/Initialize(mapload) + . = ..() + create_reagents(reagent_amount) + +/obj/projectile/bullet/chemdart/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) + if(blocked < 2 && isliving(target)) + var/mob/living/L = target + if(L.can_inject(target_zone=def_zone)) + reagents.trans_to_mob(L, reagent_amount, CHEM_INJECT) + +/obj/projectile/bullet/chemdart/small + reagent_amount = 10 diff --git a/icons/modules/projectiles/casings/slim.dmi b/icons/modules/projectiles/casings/slim.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6a88fe907a216b361f73de8362f2eb527714f34e GIT binary patch literal 1347 zcmXw%3pA8z7{@=y^{@sfOSv@L*|s{dO>z&Rh*`O8B-<7`m`tM?w=kG-t3)bWD-G5- zyCUUMZJ2z1~e6CS4qwJUyropTkV`jc@r#8B%k0Dz$u4%!0@djLfTQFSaV1Yf;;Z=gT@QPbh{ zG^exCo(pwmYK2DX@t{z^YkrELzQCDb5ve|LDKW{!#8e`M3;-EbW#ep2{(fW53geKk zrv1_J?iVk-zAETE(yGg@^&K;#(hM*|Gc{Wz4qvvh@Y@u6iTk0jMtT%M2^c#5R9 z+kVXa`pR71clwV)5oZ^i`=z*rlHr4KMLvr?*#tc4avt$aW7tRDaMtgwxirg|hBdqZ zbCDHqdgCCwu)etFd7DO2!Hy^QcddDwRj>-o+6th(PU9UcA~v&zu-jsy?VAq=9=PxQ zcRU8Z6H(qXI=oPD=I@e|fv%`-7f@~AZTD;<4*)bf@jl*R8C9aU1Ig1a#@ZpFxKlUW zS8Ct849%fADYm-`E&5}Gs9y+6TXiNEn02BwOPn3ZNdt@Oxe^)9K+mo8bWV8{8b<>&SVYy>)7J?- z+Og(ST$KlGWH80Htr?wN!t9cvbyQWulF9Y*^h4frehy%F*)@Lb8dPEqL&(izlsBJV z@Hq^vFzl0$l8FTmHWvOJ7BRBhU+*amJZ>J zy3miaasf4{#Z!rZM}*}N*Rdl3Fs=ppcC1pm$@0={=kjbKp3R+c z*wB5$&q8M&O9r@LV`rB_%-fzNOo!!y<#Q2DkQf2EAWuG%LU+wJFkOV#csb5ph{z5W zzvA7VP_8b&mp*6K2)L*1L>gb<(Pg9YWml5|d9$?dtH#|RH#(iVq)J!Jm)8@)!0?bp zNP&Pf$$)xCJ8j~(Q!aF&*1fp>Fk z#Mul-_57svJ(R@hjoaC0Rr*OT@ z4saA3R6qF^o=2E6jNAi}&T%#14p$tctU&H$0H}DQ;mf^NIXgqvPEqZ^N$P zCKErZZ;3S~ff?0ou>-QKhN$%R$0n;_zj9qEP?9NZ>0BBzcf>ls#5QNH_n7X z?*%3n8}N>W3l1KbM