From ef8602da9dd7ca2f38911d36bca298889068525c Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Mon, 23 Mar 2026 23:11:42 -0700 Subject: [PATCH] [MIRROR] Ammoboxes In Lathe (#12587) Co-authored-by: Will <7099514+Willburd@users.noreply.github.com> --- .../__defines/research/research_categories.dm | 1 + .../projectiles/ammunition/ammo_boxes.dm | 4 +- .../research/tg/designs/ammunition_designs.dm | 435 ++++++++++++++++++ .../tg/techwebs/nodes/security_nodes.dm | 46 +- 4 files changed, 473 insertions(+), 13 deletions(-) diff --git a/code/__defines/research/research_categories.dm b/code/__defines/research/research_categories.dm index 039d5af78e..c06e027f33 100644 --- a/code/__defines/research/research_categories.dm +++ b/code/__defines/research/research_categories.dm @@ -12,6 +12,7 @@ #define RND_SUBCATEGORY_WEAPONS_AMMO_RIFLE "/Rifle" #define RND_SUBCATEGORY_WEAPONS_AMMO_SHOTGUN "/Shotgun" #define RND_SUBCATEGORY_WEAPONS_AMMO_LOADERS "/Loaders" +#define RND_SUBCATEGORY_WEAPONS_AMMO_BOXES "/Rifle Ammo Boxes" // Wiremod Categories #define RND_CATEGORY_CIRCUITRY "/Circuitry" diff --git a/code/modules/projectiles/ammunition/ammo_boxes.dm b/code/modules/projectiles/ammunition/ammo_boxes.dm index aa847bc2c1..c6a0761736 100644 --- a/code/modules/projectiles/ammunition/ammo_boxes.dm +++ b/code/modules/projectiles/ammunition/ammo_boxes.dm @@ -477,7 +477,7 @@ /obj/item/ammo_magazine/ammo_box/b545/practice name = "ammo box (5.45mm practice)" desc = "A box of 5.45mm practice rounds" - icon_state = "hrifle-practice" + icon_state = "hrifle-blank" caliber = "5.45mm" ammo_type = /obj/item/ammo_casing/a545/practice matter = list(MAT_STEEL = 2700) @@ -497,7 +497,7 @@ /obj/item/ammo_magazine/ammo_box/b545/blank name = "ammo box (5.45mm blank)" desc = "A box of 5.45mm blank rounds" - icon_state = "hrifle-practice" + icon_state = "hrifle-blank" caliber = "5.45mm" ammo_type = /obj/item/ammo_casing/a545/blank matter = list(MAT_STEEL = 2700) diff --git a/code/modules/research/tg/designs/ammunition_designs.dm b/code/modules/research/tg/designs/ammunition_designs.dm index 2f9f134b66..5a9018166d 100644 --- a/code/modules/research/tg/designs/ammunition_designs.dm +++ b/code/modules/research/tg/designs/ammunition_designs.dm @@ -1012,3 +1012,438 @@ RND_CATEGORY_HACKED, RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_LOADERS ) + +/////////////////// +/*Rifle Ammoboxes*/ +/////////////////// + +/* + * .357 + */ + +/datum/design_techweb/ammobox_357 + SET_AMMO_DESIGN_NAMEDESC("ammo box (.357)") + id = "ammobox_357" + materials = list(MAT_STEEL = 5040) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b357 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_357_rubber + SET_AMMO_DESIGN_NAMEDESC("ammo box (.357 rubber)") + id = "ammobox_357_rubber" + materials = list(MAT_STEEL = 5040) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b357/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * .38 + */ + +/datum/design_techweb/ammobox_38 + SET_AMMO_DESIGN_NAMEDESC("ammo box (.38)") + id = "ammobox_38" + materials = list(MAT_STEEL = 1440) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b38 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_38_rubber + SET_AMMO_DESIGN_NAMEDESC("ammo box (.38 rubber)") + id = "ammobox_38_rubber" + materials = list(MAT_STEEL = 1440) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b38/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * 10mm + */ + +/datum/design_techweb/ammobox_10mm + SET_AMMO_DESIGN_NAMEDESC("ammo box (10mm)") + id = "ammobox_10mm" + materials = list(MAT_STEEL = 3000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b10mm + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_10mm_practice + SET_AMMO_DESIGN_NAMEDESC("ammo box (10mm practice)") + id = "ammobox_10mm_practice" + materials = list(MAT_STEEL = 2400) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b10mm/practice + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_10mm_rubber + SET_AMMO_DESIGN_NAMEDESC("ammo box (10mm rubber)") + id = "ammobox_10mm_rubber" + materials = list(MAT_STEEL = 2400) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b10mm/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_10mm_haywire + SET_AMMO_DESIGN_NAMEDESC("ammo box (10mm haywire)") + id = "ammobox_10mm_haywire" + materials = list(MAT_STEEL = 5200, MAT_URANIUM = 4000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b10mm/emp + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * .44 + */ + +/datum/design_techweb/ammobox_44 + SET_AMMO_DESIGN_NAMEDESC("ammo box (.44)") + id = "ammobox_44" + materials = list(MAT_STEEL = 5040) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b44 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_44_rubber + SET_AMMO_DESIGN_NAMEDESC("ammo box (.44 rubber)") + id = "ammobox_44_rubber" + materials = list(MAT_STEEL = 1440) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b44/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * .45 + */ + +/datum/design_techweb/ammobox_45 + SET_AMMO_DESIGN_NAMEDESC("ammo box (.45)") + id = "ammobox_45" + materials = list(MAT_STEEL = 1800) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b45 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_45_practice + SET_AMMO_DESIGN_NAMEDESC("ammo box (.45 practice)") + id = "ammobox_45_practice" + materials = list(MAT_STEEL = 1440) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b45/practice + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_45_ap + SET_AMMO_DESIGN_NAMEDESC("ammo box (.45 armor piercing)") + id = "ammobox_45_ap" + materials = list(MAT_STEEL = 1200, MAT_PLASTEEL = 600) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b45/ap + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_45_hp + SET_AMMO_DESIGN_NAMEDESC("ammo box (.45 hollow point)") + id = "ammobox_45_hp" + materials = list(MAT_STEEL = 1440, MAT_PLASTIC = 360) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b45/hp + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_45_rubber + SET_AMMO_DESIGN_NAMEDESC("ammo box (.45 rubber)") + id = "ammobox_45_rubber" + materials = list(MAT_STEEL = 1440) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b45/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_45_haywire + SET_AMMO_DESIGN_NAMEDESC("ammo box (.45 haywire)") + id = "ammobox_45_haywire" + materials = list(MAT_STEEL = 3120, MAT_URANIUM = 2400) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b45/emp + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * 14.5mm (anti-materiel rifle round) + */ + +/datum/design_techweb/ammobox_145 + SET_AMMO_DESIGN_NAMEDESC("ammo box (14.5mm)") + id = "ammobox_145" + materials = list(MAT_STEEL = 8750) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b145 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_145_highvel + SET_AMMO_DESIGN_NAMEDESC("ammo box (14.5mm sabot)") + id = "ammobox_145_highvel" + materials = list(MAT_STEEL = 8750) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b145/highvel + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * 7.62mm + */ + +/datum/design_techweb/ammobox_762 + SET_AMMO_DESIGN_NAMEDESC("ammo box (7.62mm)") + id = "ammobox_762" + materials = list(MAT_STEEL = 6000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b762 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_762_hp + SET_AMMO_DESIGN_NAMEDESC("ammo box (7.62mm hollow point)") + id = "ammobox_762_hp" + materials = list(MAT_STEEL = 9000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b762/hp + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_762_ap + SET_AMMO_DESIGN_NAMEDESC("ammo box (7.62mm armor piercing)") + id = "ammobox_762_ap" + materials = list(MAT_STEEL = 9000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b762/ap + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_762_practice + SET_AMMO_DESIGN_NAMEDESC("ammo box (7.62mm practice)") + id = "ammobox_762_practice" + materials = list(MAT_STEEL = 2700) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b762/practice + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_762_hunter + SET_AMMO_DESIGN_NAMEDESC("ammo box (7.62mm hunter)") + id = "ammobox_762_hunter" + materials = list(MAT_STEEL = 6000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b762/hunter + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/* + * 5.45mm + */ + +/datum/design_techweb/ammobox_545 + SET_AMMO_DESIGN_NAMEDESC("ammo box (5.45mm)") + id = "ammobox_545" + materials = list(MAT_STEEL = 5400) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_545_ap + SET_AMMO_DESIGN_NAMEDESC("ammo box (5.45mm armor piercing)") + id = "ammobox_545_ap" + materials = list(MAT_STEEL = 8100) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/ap + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_545_hp + SET_AMMO_DESIGN_NAMEDESC("ammo box (5.45mm hollow point)") + id = "ammobox_545_hp" + materials = list(MAT_STEEL = 5400) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/hp + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_545_practice + SET_AMMO_DESIGN_NAMEDESC("ammo box (5.45mm practice)") + id = "ammobox_545_practice" + materials = list(MAT_STEEL = 2700) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/practice + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_545_hunter + SET_AMMO_DESIGN_NAMEDESC("ammo box (5.45mm hunter)") + id = "ammobox_545_hunter" + materials = list(MAT_STEEL = 5400) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/hunter + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammobox_545_blank + SET_AMMO_DESIGN_NAMEDESC("ammo box (5.45mm blanks)") + id = "ammobox_545_blank" + materials = list(MAT_STEEL = 2700) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/blank + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +// huge boxes + +/datum/design_techweb/ammocrate_545 + SET_AMMO_DESIGN_NAMEDESC("large ammo crate (5.45mm)") + id = "ammocrate_545" + materials = list(MAT_STEEL = 18000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/large + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammocrate_545_ap + SET_AMMO_DESIGN_NAMEDESC("large ammo crate (5.45mm armor piercing)") + id = "ammocrate_545_ap" + materials = list(MAT_STEEL = 27000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/large/ap + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammocrate_545_hp + SET_AMMO_DESIGN_NAMEDESC("large ammo crate (5.45mm hollow point)") + id = "ammocrate_545_hp" + materials = list(MAT_STEEL = 18000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/large/hp + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammocrate_545_practice + SET_AMMO_DESIGN_NAMEDESC("large ammo crate (5.45mm practice)") + id = "ammocrate_545_practice" + materials = list(MAT_STEEL = 9000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/large/practice + category = list( + RND_CATEGORY_INITIAL, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) + +/datum/design_techweb/ammocrate_545_hunter + SET_AMMO_DESIGN_NAMEDESC("large ammo crate (5.45mm hunter)") + id = "ammocrate_545_hunter" + materials = list(MAT_STEEL = 18000) + build_type = AUTOLATHE + build_path = /obj/item/ammo_magazine/ammo_box/b545/large/hunter + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_HACKED, + RND_SUBCATEGORY_WEAPONS_AMMO + RND_SUBCATEGORY_WEAPONS_AMMO_BOXES + ) diff --git a/code/modules/research/tg/techwebs/nodes/security_nodes.dm b/code/modules/research/tg/techwebs/nodes/security_nodes.dm index 7a9f6cad88..5e3bc8359b 100644 --- a/code/modules/research/tg/techwebs/nodes/security_nodes.dm +++ b/code/modules/research/tg/techwebs/nodes/security_nodes.dm @@ -141,17 +141,6 @@ "ammobox_12g_emp", "ammobox_12g_flechette", "ammobox_12g_practice", - /* Single shells available, but probably not needed - "ammo_12g_slug", - "ammo_12g_blank", - "ammo_12g_beanbag", - "ammo_12g_flash", - "ammo_12g_pellet", - "ammo_12g_stun", - "ammo_12g_emp", - "ammo_12g_flechette", - "ammo_12g_practice", - */ // Auto shotgun drums "shotgun_mag_12g_drum", "shotgun_mag_12g_drum_beanbag", @@ -186,6 +175,41 @@ "loader_545_practice", "loader_762", "loader_762_practice", + // Boxes + "ammobox_357", + "ammobox_357_rubber", + "ammobox_38", + "ammobox_38_rubber", + "ammobox_10mm", + "ammobox_10mm_practice", + "ammobox_10mm_rubber", + "ammobox_10mm_haywire", + "ammobox_44", + "ammobox_44_rubber", + "ammobox_45", + "ammobox_45_practice", + "ammobox_45_ap", + "ammobox_45_hp", + "ammobox_45_rubber", + "ammobox_45_haywire", + "ammobox_145", + "ammobox_145_highvel", + "ammobox_762", + "ammobox_762_hp", + "ammobox_762_ap", + "ammobox_762_practice", + "ammobox_762_hunter", + "ammobox_545", + "ammobox_545_ap", + "ammobox_545_hp", + "ammobox_545_practice", + "ammobox_545_hunter", + "ammobox_545_blank", + "ammocrate_545", + "ammocrate_545_ap", + "ammocrate_545_hp", + "ammocrate_545_practice", + "ammocrate_545_hunter", ) /datum/techweb_node/sec_equip