diff --git a/code/game/objects/items/weapons/melee/shock_maul.dm b/code/game/objects/items/weapons/melee/shock_maul.dm
index 76e708a32b..17a8362dad 100644
--- a/code/game/objects/items/weapons/melee/shock_maul.dm
+++ b/code/game/objects/items/weapons/melee/shock_maul.dm
@@ -7,12 +7,13 @@
//stopping power/lethality
force = 35
+ armor_penetration = 20 //the sheer impact force bypasses quite a bit of armour
var/unwielded_force_divisor = 0.25
var/wielded = 0
var/force_unwielded = 8.75
var/wieldsound = null
var/unwieldsound = null
- var/charge_force_mult = 1.75 //damage multiplier on charged hits
+ var/charge_force_mult = 1.75 //damage and AP multiplier on charged hits
var/launch_force = 3 //yeet distance
var/launch_force_unwielded = 1 //awful w/ one hand, but still gets a little distance
var/launch_force_disarm = 1.5 //distance multiplier when swinging in disarm mode, since disarm attacks do half damage
@@ -44,14 +45,20 @@
var/mob/living/M = loc
if(istype(M) && M.can_wield_item(src) && is_held_twohanded(M))
wielded = 1
- force = initial(force)
+ if(status)
+ force = initial(force)*charge_force_mult
+ else
+ force = initial(force)
launch_force = initial(launch_force)
weaken_force = initial(weaken_force)
name = "[initial(name)] (wielded)"
update_icon()
else
wielded = 0
- force = force_unwielded
+ if(status)
+ force = force_unwielded*charge_force_mult
+ else
+ force = force_unwielded
launch_force = launch_force_unwielded
weaken_force = weaken_force_unwielded
name = "[initial(name)]"
@@ -186,11 +193,12 @@
user.visible_message("[user] charges \the [src]!","You charge \the [src]. It's hammer time!")
playsound(src, "sparks", 75, 1, -1)
update_held_icon()
- force *= charge_force_mult
+ armor_penetration *= charge_force_mult
else if(status)
status = 0
user.visible_message("[user] safely disengages \the [src]'s power field.","\The [src] is now off.")
update_held_icon()
+ armor_penetration = initial(armor_penetration)
playsound(src, "sparks", 75, 1, -1)
if(!bcell)
to_chat(user, "\The [src] does not have a power source!")
@@ -209,7 +217,11 @@
update_held_icon()
if(istype(A,/obj/structure/window))
var/obj/structure/window/W = A
+ visible_message("\The [W] crumples under the force of the impact!")
W.shatter()
+ else if(istype(A,/obj/structure/barricade))
+ var/obj/structure/barricade/B = A
+ B.dismantle()
else if(istype(A,/obj/structure/grille))
qdel(A)
powercheck(hitcost)
@@ -223,7 +235,7 @@
//yeet 'em away, boys!
if(status)
var/atom/target_zone = get_edge_target_turf(user,get_dir(user, target))
- if(!target.anchored)
+ if(!target.anchored) //unless they're secured in place, natch
target.throw_at(target_zone, launch_force, 2, user, FALSE)
target.Weaken(weaken_force)
diff --git a/code/modules/mining/mine_outcrops.dm b/code/modules/mining/mine_outcrops.dm
index ae70e710e3..fb570af547 100644
--- a/code/modules/mining/mine_outcrops.dm
+++ b/code/modules/mining/mine_outcrops.dm
@@ -97,6 +97,21 @@
new outcropdrop(get_turf(src))
qdel(src)
return
+ if (istype(W, /obj/item/weapon/melee/shock_maul))
+ var/obj/item/weapon/melee/shock_maul/S = W
+ if(!S.wielded || !S.status)
+ to_chat(user, "\The [src] must be wielded in two hands and powered on to be used for mining!")
+ return
+ to_chat(user, "You pulverize \the [src]!")
+ for(var/i=0;i<(rand(mindrop,upperdrop));i++)
+ new outcropdrop(get_turf(src))
+ playsound(src, 'sound/weapons/resonator_blast.ogg', 100, 1, -1)
+ user.visible_message("\The [S] discharges with a thunderous, hair-raising crackle!")
+ S.deductcharge()
+ S.status = 0
+ S.update_held_icon()
+ qdel(src)
+ return
/obj/random/outcrop //In case you want an outcrop without pre-determining the type of ore.
name = "random rock outcrop"
diff --git a/icons/mob/items/lefthand_melee.dmi b/icons/mob/items/lefthand_melee.dmi
index 25fd7edc3d..da3401cced 100644
Binary files a/icons/mob/items/lefthand_melee.dmi and b/icons/mob/items/lefthand_melee.dmi differ
diff --git a/icons/mob/items/righthand_melee.dmi b/icons/mob/items/righthand_melee.dmi
index d32382398c..fc8851a610 100644
Binary files a/icons/mob/items/righthand_melee.dmi and b/icons/mob/items/righthand_melee.dmi differ
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index 791678bde3..783441c51c 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ