diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm
index abd63eae07f..a893d2b22f2 100644
--- a/code/modules/antagonists/fugitive/fugitive_outfits.dm
+++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm
@@ -129,7 +129,7 @@
mask = /obj/item/clothing/mask/scarecrow
r_pocket = /obj/item/restraints/handcuffs/cable
id = /obj/item/card/id/advanced
- r_hand = /obj/item/gun/ballistic/shotgun/doublebarrel/hook
+ r_hand = /obj/item/gun/ballistic/shotgun/hook
backpack_contents = list(
/obj/item/ammo_casing/shotgun/incapacitate = 6
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 3575d66611d..0921ee05fcb 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -408,14 +408,19 @@
fire_sound = 'sound/weapons/batonextend.ogg'
max_charges = 1
item_flags = NEEDS_PERMIT | NOBLUDGEON
+ sharpness = SHARP_POINTY
force = 18
+/obj/item/gun/magic/hook/shoot_with_empty_chamber(mob/living/user)
+ to_chat(user, "[src] isn't ready to fire yet!")
+
/obj/item/ammo_casing/magic/hook
name = "hook"
desc = "A hook."
projectile_type = /obj/projectile/hook
caliber = CALIBER_HOOK
icon_state = "hook"
+ firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy
/obj/projectile/hook
name = "hook"
@@ -460,9 +465,6 @@
name = "hook"
ammo_type = /obj/item/ammo_casing/magic/hook/bounty
-/obj/item/gun/magic/hook/bounty/shoot_with_empty_chamber(mob/living/user)
- to_chat(user, "The [src] isn't ready to fire yet!")
-
/obj/item/ammo_casing/magic/hook/bounty
projectile_type = /obj/projectile/hook/bounty
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 5d52c8e2916..9c2f8dd7ec4 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -553,6 +553,11 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
name = "sawn-off [src.name]"
desc = sawn_desc
w_class = WEIGHT_CLASS_NORMAL
+ //The file might not have a "gun" icon, let's prepare for this
+ lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
+ inhand_x_dimension = 32
+ inhand_y_dimension = 32
inhand_icon_state = "gun"
worn_icon_state = "gun"
slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 9dfff2ca049..0edaa588533 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -181,48 +181,35 @@
if(.)
weapon_weight = WEAPON_MEDIUM
-/obj/item/gun/ballistic/shotgun/doublebarrel/hook
+/obj/item/gun/ballistic/shotgun/hook
name = "hook modified sawn-off shotgun"
desc = "Range isn't an issue when you can bring your victim to you."
icon_state = "hookshotgun"
- inhand_icon_state = "shotgun"
- load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg'
+ inhand_icon_state = "hookshotgun"
+ lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
+ inhand_x_dimension = 32
+ inhand_y_dimension = 32
mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty
- w_class = WEIGHT_CLASS_BULKY
weapon_weight = WEAPON_MEDIUM
- can_be_sawn_off = FALSE
- force = 16 //it has a hook on it
+ semi_auto = TRUE
+ flags_1 = CONDUCT_1
+ force = 18 //it has a hook on it
+ sharpness = SHARP_POINTY //it does in fact, have a hook on it
attack_verb_continuous = list("slashes", "hooks", "stabs")
attack_verb_simple = list("slash", "hook", "stab")
hitsound = 'sound/weapons/bladeslice.ogg'
//our hook gun!
var/obj/item/gun/magic/hook/bounty/hook
- var/toggled = FALSE
-/obj/item/gun/ballistic/shotgun/doublebarrel/hook/Initialize()
+/obj/item/gun/ballistic/shotgun/hook/Initialize()
. = ..()
hook = new /obj/item/gun/magic/hook/bounty(src)
-/obj/item/gun/ballistic/shotgun/doublebarrel/hook/AltClick(mob/user)
- if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE))
- return
- if(toggled)
- to_chat(user,"You switch to the shotgun.")
- fire_sound = initial(fire_sound)
- else
- to_chat(user,"You switch to the hook.")
- fire_sound = 'sound/weapons/batonextend.ogg'
- toggled = !toggled
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/hook/examine(mob/user)
+/obj/item/gun/ballistic/shotgun/hook/examine(mob/user)
. = ..()
- if(toggled)
- . += "Alt-click to switch to the shotgun."
- else
- . += "Alt-click to switch to the hook."
+ . += "Right-click to shoot the hook."
-/obj/item/gun/ballistic/shotgun/doublebarrel/hook/afterattack(atom/target, mob/living/user, flag, params)
- if(toggled)
- hook.afterattack(target, user, flag, params)
- else
- return ..()
+/obj/item/gun/ballistic/shotgun/hook/afterattack_secondary(atom/target, mob/user, proximity_flag, click_parameters)
+ hook.afterattack(target, user, proximity_flag, click_parameters)
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi
index 49bf4f51688..34611cbeb16 100644
Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi
index ec87f579ea0..98313a39d28 100644
Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ
diff --git a/icons/obj/guns/ballistic.dmi b/icons/obj/guns/ballistic.dmi
index 1270da9c225..43132c51d8c 100644
Binary files a/icons/obj/guns/ballistic.dmi and b/icons/obj/guns/ballistic.dmi differ