diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm
index 1bf66a501c..9b258633e0 100644
--- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm
+++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm
@@ -296,7 +296,7 @@
/datum/crafting_recipe/ishotgun
name = "Improvised Shotgun"
- result = /obj/item/gun/ballistic/shotgun/doublebarrel/improvised
+ result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised
reqs = list(/obj/item/pipe = 1,
/obj/item/weaponcrafting/stock = 1,
/obj/item/stack/packageWrap = 5)
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index bacbf3c388..5a0e1790a9 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -664,9 +664,8 @@
lootcount = 1
spawn_on_turf = FALSE
loot = list("" = 50,
- /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 13,
- /obj/item/weaponcrafting/improvised_parts/shotgun_receiver = 13,
- /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 12,
+ /obj/item/weaponcrafting/receiver = 25,
+ /obj/item/weaponcrafting/stock = 25,
)
/obj/effect/spawner/lootdrop/weapon_parts
@@ -674,8 +673,8 @@
lootcount = 1
spawn_on_turf = FALSE
loot = list("" = 80,
- /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 5,
- /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 5,
+ /obj/item/weaponcrafting/receiver = 5,
+ /obj/item/weaponcrafting/stock = 5,
)
/obj/effect/spawner/lootdrop/ammo
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index 2cbd4f21f6..3e564a9ace 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -273,6 +273,105 @@
return
user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfeit!")
+/////////////////////////////
+// DOUBLE BARRELED SHOTGUN //
+/////////////////////////////
+
+/obj/item/gun/ballistic/revolver/doublebarrel
+ name = "double-barreled shotgun"
+ desc = "A true classic."
+ icon_state = "dshotgun"
+ item_state = "shotgun"
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_MEDIUM
+ force = 10
+ flags_1 = CONDUCT_1
+ slot_flags = ITEM_SLOT_BACK
+ mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
+ sawn_desc = "Omar's coming!"
+ obj_flags = UNIQUE_RENAME
+ unique_reskin = list("Default" = "dshotgun",
+ "Dark Red Finish" = "dshotgun-d",
+ "Ash" = "dshotgun-f",
+ "Faded Grey" = "dshotgun-g",
+ "Maple" = "dshotgun-l",
+ "Rosewood" = "dshotgun-p"
+ )
+
+/obj/item/gun/ballistic/revolver/doublebarrel/attackby(obj/item/A, mob/user, params)
+ ..()
+ if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing))
+ chamber_round()
+ if(A.tool_behaviour == TOOL_SAW || istype(A, /obj/item/gun/energy/plasmacutter))
+ sawoff(user)
+ if(istype(A, /obj/item/melee/transforming/energy))
+ var/obj/item/melee/transforming/energy/W = A
+ if(W.active)
+ sawoff(user)
+
+/obj/item/gun/ballistic/revolver/doublebarrel/attack_self(mob/living/user)
+ var/num_unloaded = 0
+ while (get_ammo() > 0)
+ var/obj/item/ammo_casing/CB
+ CB = magazine.get_round(0)
+ chambered = null
+ CB.forceMove(drop_location())
+ CB.update_icon()
+ num_unloaded++
+ if (num_unloaded)
+ to_chat(user, "You break open \the [src] and unload [num_unloaded] shell\s.")
+ else
+ to_chat(user, "[src] is empty!")
+
+/////////////////////////////
+// IMPROVISED SHOTGUN //
+/////////////////////////////
+
+/obj/item/gun/ballistic/revolver/doublebarrel/improvised
+ name = "improvised shotgun"
+ desc = "A shoddy break-action breechloaded shotgun. Less ammo-efficient than an actual shotgun, but still packs a punch."
+ icon_state = "ishotgun"
+ item_state = "shotgun"
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_MEDIUM // prevents shooting 2 at once, but doesn't require 2 hands
+ force = 10
+ slot_flags = null
+ mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
+ sawn_desc = "I'm just here for the gasoline."
+ unique_reskin = null
+ var/slung = FALSE
+
+/obj/item/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params)
+ ..()
+ if(istype(A, /obj/item/stack/cable_coil) && !sawn_off)
+ if(A.use_tool(src, user, 0, 10, skill_gain_mult = EASY_USE_TOOL_MULT))
+ slot_flags = ITEM_SLOT_BACK
+ to_chat(user, "You tie the lengths of cable to the shotgun, making a sling.")
+ slung = TRUE
+ update_icon()
+ else
+ to_chat(user, "You need at least ten lengths of cable if you want to make a sling!")
+
+/obj/item/gun/ballistic/revolver/doublebarrel/improvised/update_overlays()
+ . = ..()
+ if(slung)
+ . += "[icon_state]sling"
+
+/obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawoff(mob/user)
+ . = ..()
+ if(. && slung) //sawing off the gun removes the sling
+ new /obj/item/stack/cable_coil(get_turf(src), 10)
+ slung = 0
+ update_icon()
+
+/obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawn
+ name = "sawn-off improvised shotgun"
+ desc = "The barrel and stock have been sawn and filed down; it can fit in backpacks. You wont want to shoot two of these at once if you value your wrists."
+ icon_state = "ishotgun"
+ item_state = "gun"
+ w_class = WEIGHT_CLASS_NORMAL
+ sawn_off = TRUE
+ slot_flags = ITEM_SLOT_BELT
/obj/item/gun/ballistic/revolver/reverse //Fires directly at its user... unless the user is a clown, of course.
clumsy_check = 0
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index f3f5155217..796e544603 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -318,105 +318,7 @@
pump()
return TRUE
-/////////////////////////////
-// DOUBLE BARRELED SHOTGUN //
-/////////////////////////////
-
-/obj/item/gun/ballistic/shotgun/doublebarrel
- name = "double-barreled shotgun"
- desc = "A true classic."
- icon_state = "dshotgun"
- item_state = "shotgun"
- w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_MEDIUM
- force = 10
- flags_1 = CONDUCT_1
- slot_flags = ITEM_SLOT_BACK
- mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
- sawn_desc = "Omar's coming!"
- obj_flags = UNIQUE_RENAME
- unique_reskin = list("Default" = "dshotgun",
- "Dark Red Finish" = "dshotgun-d",
- "Ash" = "dshotgun-f",
- "Faded Grey" = "dshotgun-g",
- "Maple" = "dshotgun-l",
- "Rosewood" = "dshotgun-p"
- )
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/attackby(obj/item/A, mob/user, params)
- ..()
- if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing))
- chamber_round()
- if(A.tool_behaviour == TOOL_SAW || istype(A, /obj/item/gun/energy/plasmacutter))
- sawoff(user)
- if(istype(A, /obj/item/melee/transforming/energy))
- var/obj/item/melee/transforming/energy/W = A
- if(W.active)
- sawoff(user)
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/attack_self(mob/living/user)
- var/num_unloaded = 0
- while (get_ammo() > 0)
- var/obj/item/ammo_casing/CB
- CB = magazine.get_round(0)
- chambered = null
- CB.forceMove(drop_location())
- CB.update_icon()
- num_unloaded++
- if (num_unloaded)
- to_chat(user, "You break open \the [src] and unload [num_unloaded] shell\s.")
- else
- to_chat(user, "[src] is empty!")
-
-/////////////////////////////
-// IMPROVISED SHOTGUN //
-/////////////////////////////
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised
- name = "improvised shotgun"
- desc = "A shoddy break-action breechloaded shotgun. Less ammo-efficient than an actual shotgun, but still packs a punch."
- icon_state = "ishotgun"
- item_state = "shotgun"
- w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_MEDIUM // prevents shooting 2 at once, but doesn't require 2 hands
- force = 10
- slot_flags = null
- mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
- sawn_desc = "I'm just here for the gasoline."
- unique_reskin = null
- var/slung = FALSE
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/attackby(obj/item/A, mob/user, params)
- ..()
- if(istype(A, /obj/item/stack/cable_coil) && !sawn_off)
- if(A.use_tool(src, user, 0, 10, skill_gain_mult = EASY_USE_TOOL_MULT))
- slot_flags = ITEM_SLOT_BACK
- to_chat(user, "You tie the lengths of cable to the shotgun, making a sling.")
- slung = TRUE
- update_icon()
- else
- to_chat(user, "You need at least ten lengths of cable if you want to make a sling!")
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/update_overlays()
- . = ..()
- if(slung)
- . += "[icon_state]sling"
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(mob/user)
- . = ..()
- if(. && slung) //sawing off the gun removes the sling
- new /obj/item/stack/cable_coil(get_turf(src), 10)
- slung = 0
- update_icon()
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn
- name = "sawn-off improvised shotgun"
- desc = "The barrel and stock have been sawn and filed down; it can fit in backpacks. You wont want to shoot two of these at once if you value your wrists."
- icon_state = "ishotgun"
- item_state = "gun"
- w_class = WEIGHT_CLASS_NORMAL
- sawn_off = TRUE
- slot_flags = ITEM_SLOT_BELT
+//due to code weirdness, and the fact that a refactor is coming soon anyway, the barman's shotgun and maint shotgun are in revolver.dm
/obj/item/gun/ballistic/shotgun/doublebarrel/hook
name = "hook modified sawn-off shotgun"
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
index 61d0594d3b..bf9d5886a0 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm
@@ -74,12 +74,12 @@
build_path = /obj/item/restraints/handcuffs
category = list("hacked", "Security")
-/datum/design/rifle_receiver
- name = "Rifle Receiver"
- id = "rifle_receiver"
+/datum/design/reciever
+ name = "Modular Receiver"
+ id = "modular_receiver"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 24000)
- build_path = /obj/item/weaponcrafting/improvised_parts/rifle_receiver
+ build_path = /obj/item/weaponcrafting/receiver
category = list("hacked", "Security")
/datum/design/shotgun_slug
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm
index 539232bbcd..1b1c710e8c 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm
@@ -282,10 +282,3 @@
build_path = /obj/item/vending_refill/custom
category = list("initial", "Misc")
-/datum/design/trigger_assembly
- name = "Trigger Assembly"
- id = "trigger_assembly"
- build_type = AUTOLATHE
- materials = list(/datum/material/iron = 6500, /datum/material/glass = 50)
- build_path = /obj/item/weaponcrafting/improvised_parts/trigger_assembly
- category = list("initial", "Misc")