diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index a0aaadd6e51..54558f0b654 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -332,6 +332,22 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine containername = "incendiary weapons crate" access = access_heads +/datum/supply_packs/security/armory/wt550 + name = "WT-550 Auto Rifle Crate" + contains = list(/obj/item/weapon/gun/projectile/automatic/wt550, + /obj/item/weapon/gun/projectile/automatic/wt550) + cost = 35 + containername = "auto rifle crate" + +/datum/supply_packs/security/armory/wt550ammo + name = "WT-550 Rifle Ammo Crate" + contains = list(/obj/item/ammo_box/magazine/wt550m9, + /obj/item/ammo_box/magazine/wt550m9, + /obj/item/ammo_box/magazine/wt550m9, + /obj/item/ammo_box/magazine/wt550m9,) + cost = 30 + containername = "auto rifle ammo crate" + /////// Implants & etc /datum/supply_packs/security/armory/loyalty diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 557407ac8a3..9914e0bb87f 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -28,17 +28,37 @@ /obj/item/ammo_casing/c9mmap desc = "A 9mm bullet casing." caliber = "9mm" - projectile_type =/obj/item/projectile/bullet/armourpiercing + projectile_type = "/obj/item/projectile/bullet/armourpiercing" /obj/item/ammo_casing/c9mmtox desc = "A 9mm bullet casing." caliber = "9mm" - projectile_type = /obj/item/projectile/bullet/toxinbullet + projectile_type = "/obj/item/projectile/bullet/toxinbullet" /obj/item/ammo_casing/c9mminc desc = "A 9mm bullet casing." caliber = "9mm" - projectile_type = /obj/item/projectile/bullet/incendiary/firebullet + projectile_type = "/obj/item/projectile/bullet/incendiary/firebullet" + +/obj/item/ammo_casing/c46x30mm + desc = "A 4.6x30mm bullet casing." + caliber = "4.6x30mm" + projectile_type = "/obj/item/projectile/bullet/weakbullet3" + +/obj/item/ammo_casing/c46x30mmap + desc = "A 4.6x30mm bullet casing." + caliber = "4.6x30mm" + projectile_type = "/obj/item/projectile/bullet/armourpiercing" + +/obj/item/ammo_casing/c46x30mmtox + desc = "A 4.6x30mm bullet casing." + caliber = "4.6x30mm" + projectile_type = "/obj/item/projectile/bullet/toxinbullet" + +/obj/item/ammo_casing/c46x30mminc + desc = "A 4.6x30mm bullet casing." + caliber = "4.6x30mm" + projectile_type = "/obj/item/projectile/bullet/incendiary/firebullet" /obj/item/ammo_casing/c45 desc = "A .45 bullet casing." @@ -60,7 +80,7 @@ desc = "A 12 gauge buckshot shell." icon_state = "gshell" projectile_type = "/obj/item/projectile/bullet/pellet" - pellets = 5 + pellets = 6 deviation = 30 /obj/item/ammo_casing/shotgun/rubbershot @@ -68,7 +88,7 @@ desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." icon_state = "bshell" projectile_type = "/obj/item/projectile/bullet/rpellet" - pellets = 5 + pellets = 6 deviation = 30 materials = list(MAT_METAL=4000) @@ -94,7 +114,7 @@ desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards. This one has been packed with even more \ propellant. It's like playing russian roulette, with a shotgun." icon_state = "improvshell" - projectile_type = /obj/item/projectile/bullet/pellet/random + projectile_type = "/obj/item/projectile/bullet/pellet/random" materials = list(MAT_METAL=250) pellets = 5 deviation = 30 @@ -135,7 +155,7 @@ name = "FRAG-12 slug" desc = "A high explosive breaching round for a 12 gauge shotgun." icon_state = "heshell" - projectile_type = /obj/item/projectile/bullet/frag12 + projectile_type = "/obj/item/projectile/bullet/frag12" /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath name = "dragonsbreath shell" @@ -150,7 +170,7 @@ desc = "An advanced shotgun shell which uses a subspace ansible crystal to produce an effect similar to a standard ion rifle. \ The unique properties of the crystal splot the pulse into a spread of individually weaker bolts." icon_state = "ionshell" - projectile_type = /obj/item/projectile/ion/weak + projectile_type = "/obj/item/projectile/ion/weak" pellets = 4 deviation = 30 @@ -158,7 +178,7 @@ name = "laser slug" desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a laser weapon in a ballistic package." icon_state = "lshell" - projectile_type = /obj/item/projectile/beam + projectile_type = "/obj/item/projectile/beam" /obj/item/ammo_casing/shotgun/techshell name = "unloaded technological shell" diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 9ef9938071a..4fb8564cb57 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -116,10 +116,33 @@ ..() icon_state = "[initial(icon_state)]-[ammo_count() ? "8" : "0"]" +/obj/item/ammo_box/magazine/wt550m9 + name = "wt550 magazine (4.6x30mm)" + icon_state = "46x30mmt-20" + ammo_type = "/obj/item/ammo_casing/c46x30mm" + caliber = "4.6x30mm" + max_ammo = 20 + +/obj/item/ammo_box/magazine/wt550m9/update_icon() + ..() + icon_state = "46x30mmt-[round(ammo_count(),4)]" + +/obj/item/ammo_box/magazine/wt550m9/wtap + name = "wt550 magazine (Armour Piercing 4.6x30mm)" + ammo_type = "/obj/item/ammo_casing/c46x30mmap" + +/obj/item/ammo_box/magazine/wt550m9/wttx + name = "wt550 magazine (Toxin Tipped 4.6x30mm)" + ammo_type = "/obj/item/ammo_casing/c46x30mmtox" + +/obj/item/ammo_box/magazine/wt550m9/wtic + name = "wt550 magazine (Incindiary 4.6x30mm)" + ammo_type = "/obj/item/ammo_casing/c46x30mminc" + /obj/item/ammo_box/magazine/uzim9mm name = "uzi magazine (9mm)" icon_state = "uzi9mm-32" - ammo_type = /obj/item/ammo_casing/c9mm + ammo_type = "/obj/item/ammo_casing/c9mm" caliber = "9mm" max_ammo = 32 @@ -137,17 +160,17 @@ /obj/item/ammo_box/magazine/smgm9mm/ap name = "SMG magazine (Armour Piercing 9mm)" - ammo_type = /obj/item/ammo_casing/c9mmap + ammo_type = "/obj/item/ammo_casing/c9mmap" materials = list(MAT_METAL = 3000) /obj/item/ammo_box/magazine/smgm9mm/toxin name = "SMG magazine (Toxin Tipped 9mm)" - ammo_type = /obj/item/ammo_casing/c9mmtox + ammo_type = "/obj/item/ammo_casing/c9mmtox" materials = list(MAT_METAL = 3000) /obj/item/ammo_box/magazine/smgm9mm/fire name = "SMG Magazine (Incendiary 9mm)" - ammo_type = /obj/item/ammo_casing/c9mminc + ammo_type = "/obj/item/ammo_casing/c9mminc" materials = list(MAT_METAL = 3000) /obj/item/ammo_box/magazine/smgm9mm/update_icon() @@ -194,7 +217,7 @@ name = "toploader magazine (5.56mm)" icon_state = "5.56m" origin_tech = "combat=5;syndicate=1" - ammo_type = /obj/item/ammo_casing/a556 + ammo_type = "/obj/item/ammo_casing/a556" caliber = "a556" max_ammo = 30 multiple_sprites = 2 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 2121d3e4cf8..69ea9084a26 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -6,11 +6,11 @@ can_suppress = 1 burst_size = 3 fire_delay = 2 - action_button_name = "Toggle Firemode" - + action_button_name = "Toggle Firemode" + /obj/item/weapon/gun/projectile/automatic/isHandgun() return 0 - + /obj/item/weapon/gun/projectile/automatic/proto name = "\improper Nanotrasen Saber SMG" desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." @@ -49,10 +49,10 @@ A.update_icon() update_icon() return 1 - + /obj/item/weapon/gun/projectile/automatic/ui_action_click() burst_select() - + /obj/item/weapon/gun/projectile/automatic/verb/burst_select() var/mob/living/carbon/human/user = usr select = !select @@ -102,14 +102,30 @@ icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]" return +/obj/item/weapon/gun/projectile/automatic/wt550 + name = "security auto rifle" + desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Automatic Rifle." + icon_state = "wt550" + item_state = "arg" + mag_type = "/obj/item/ammo_box/magazine/wt550m9" + fire_delay = 2 + can_suppress = 0 + burst_size = 1 + action_button_name = null + +/obj/item/weapon/gun/projectile/automatic/wt550/update_icon() + ..() + icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" + return + /obj/item/weapon/gun/projectile/automatic/mini_uzi name = "\improper 'Type U3' Uzi" desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." icon_state = "mini-uzi" origin_tech = "combat=5;materials=2;syndicate=8" mag_type = "/obj/item/ammo_box/magazine/uzim9mm" - burst_size = 2 - + burst_size = 2 + /obj/item/weapon/gun/projectile/automatic/l6_saw name = "\improper L6 SAW" desc = "A heavily modified 7.62 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the reciever below the designation." @@ -125,7 +141,7 @@ can_suppress = 0 burst_size = 5 fire_delay = 3 - + /obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user as mob) cover_open = !cover_open user << "You [cover_open ? "open" : "close"] [src]'s cover." @@ -190,7 +206,7 @@ ..() empty_alarm() return - + /obj/item/weapon/gun/projectile/automatic/m90/attackby(var/obj/item/A, mob/user, params) if(istype(A, /obj/item/ammo_casing)) if(istype(A, text2path(underbarrel.magazine.ammo_type))) @@ -258,4 +274,3 @@ can_suppress = 0 burst_size = 3 fire_delay = 1 - \ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 4a9c5d0b455..01917cb8ba0 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -167,6 +167,39 @@ materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAT_URANIUM = 1000) build_path = /obj/item/ammo_box/magazine/smgm9mm/toxin +//WT550 Mags + +/datum/design/mag_oldsmg + name = "WT-550 Auto Gun Magazine (4.6×30mm)" + desc = "A 20 round magazine for the out of date security WT-550 Auto Rifle" + id = "mag_oldsmg" + req_tech = list("combat" = 1, "materials" = 1) + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_box/magazine/wt550m9 + category = list("Weapons") + +/datum/design/mag_oldsmg/ap_mag + name = "WT-550 Auto Gun Armour Piercing Magazine (4.6×30mm AP)" + desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle" + id = "mag_oldsmg_ap" + materials = list(MAT_METAL = 6000, MAT_SILVER = 600) + build_path = /obj/item/ammo_box/magazine/wt550m9/wtap + +/datum/design/mag_oldsmg/ic_mag + name = "WT-550 Auto Gun Incendiary Magazine (4.6×30mm IC)" + desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle" + id = "mag_oldsmg_ic" + materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000) + build_path = /obj/item/ammo_box/magazine/wt550m9/wtic + +/datum/design/mag_oldsmg/tx_mag + name = "WT-550 Auto Gun Urnaium Magazine (4.6×30mm TX)" + desc = "A 20 round urnaium tipped magazine for the out of date security WT-550 Auto Rifle" + id = "mag_oldsmg_tx" + materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_URANIUM = 2000) + build_path = /obj/item/ammo_box/magazine/wt550m9/wttx + /datum/design/rapidsyringe name = "Rapid Syringe Gun" desc = "A gun that fires many syringes." diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index add4c667b0b..5e43710ed5f 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 15ea68c087a..0ceb1f7d7f0 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ