diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index 32fe65e03ed..d545f3e9466 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -304,7 +304,7 @@
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
sharpness = IS_SHARP
var/obj/item/weapon/grenade/explosive = null
- var/war_cry = "AAAAARGH!"
+ var/war_cry = "AAAAARGH!!!"
/obj/item/weapon/twohanded/spear/update_icon()
if(explosive)
@@ -323,29 +323,6 @@
explosive.prime()
qdel(src)
-/obj/item/weapon/twohanded/spear/attackby(obj/item/I, mob/user, params)
- ..()
- if(istype(I, /obj/item/weapon/grenade))
- arm(I, user)
-
- if(istype(I, /obj/item/weapon/c4))
- var /obj/item/weapon/grenade/C4/C = new /obj/item/weapon/grenade/C4(src)
- qdel(I)
- arm(C, user)
-
-/obj/item/weapon/twohanded/spear/proc/arm(obj/item/I, mob/user)
- if(explosive)
- user << "There is already an explosive fastened to the spear."
- return
- user << "You fasten the [src] to the spear. Alt+click on the spear to set your war cry!"
- name = "explosive lance"
- desc = "A makeshift spear with [I] attached to it."
- explosive = I
- update_icon()
- user.unEquip(I)
- I.loc = src
-
-
//THIS MIGHT BE UNBALANCED SO I DUNNO
/obj/item/weapon/twohanded/spear/throw_impact(atom/target)
. = ..()
@@ -373,3 +350,20 @@
update_mob()
explosion(src.loc,-1,1,3)
qdel(src)
+
+/obj/item/weapon/twohanded/spear/CheckParts()
+ if(explosive)
+ explosive.loc = get_turf(src.loc)
+ explosive = null
+ var/obj/item/weapon/grenade/G = locate() in contents
+ if(G)
+ explosive = G
+ name = "explosive lance"
+ desc = "A makeshift spear with [G] attached to it. Alt+click on the spear to set your war cry!"
+ return
+ var/obj/item/weapon/c4/C4 = locate() in contents
+ if(C4)
+ var /obj/item/weapon/grenade/C4/C42 = new /obj/item/weapon/grenade/C4(src)
+ qdel(C4)
+ explosive = C42
+ desc = "A makeshift spear with [C42] attached to it. Alt+click on the spear to set your war cry!"
\ No newline at end of file
diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm
index 02e4fa663ad..2721f4f8ed3 100644
--- a/code/modules/crafting/recipes.dm
+++ b/code/modules/crafting/recipes.dm
@@ -27,9 +27,28 @@
/obj/item/device/assembly/igniter = 1,
/obj/item/weapon/reagent_containers/food/drinks/soda_cans = 1)
parts = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans = 1)
+ time = 30
+ category = CAT_WEAPON
+
+/datum/table_recipe/lance
+ name = "explosive lance (grenade)"
+ result = /obj/item/weapon/twohanded/spear
+ reqs = list(/obj/item/weapon/twohanded/spear = 1,
+ /obj/item/weapon/grenade = 1)
+ parts = list(/obj/item/weapon/grenade = 1)
+ time = 30
+ category = CAT_WEAPON
+
+/datum/table_recipe/lance2
+ name = "explosive lance (C4)"
+ result = /obj/item/weapon/twohanded/spear
+ reqs = list(/obj/item/weapon/twohanded/spear = 1,
+ /obj/item/weapon/c4 = 1)
+ parts = list(/obj/item/weapon/c4 = 1)
time = 80
category = CAT_WEAPON
+
/datum/table_recipe/molotov
name = "Molotov"
result = /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov