From 222f679daeb2c03677d93d424fbca12d8d2a700a Mon Sep 17 00:00:00 2001
From: Killian <49700375+KillianKirilenko@users.noreply.github.com>
Date: Mon, 10 Apr 2023 13:24:17 +0100
Subject: [PATCH] concussion maul pt4
---
.../objects/items/weapons/melee/shock_maul.dm | 22 ++++++++++++++----
code/modules/mining/mine_outcrops.dm | 15 ++++++++++++
icons/mob/items/lefthand_melee.dmi | Bin 37309 -> 37304 bytes
icons/mob/items/righthand_melee.dmi | Bin 35994 -> 35989 bytes
icons/obj/weapons.dmi | Bin 50521 -> 50520 bytes
5 files changed, 32 insertions(+), 5 deletions(-)
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 25fd7edc3d790c68b2a9addac9bb4360532f4310..da3401ccedf55a2e960d0c2092f1552edc07f2e4 100644
GIT binary patch
delta 576
zcmV-G0>AyeqXM|20+1vDLy;vSe?rpkg-exH6{)-Z31~1wuwravo6!9G9g-kWcapV_z9@4I)lecQ!Hv`!k$GPYhU@RUFkQ_q9L&a2`Cej6Dg^
z_!LK_w2ozL9Y>Xg1|7>-GJpzedQCz)4^>6cGffax8C8;uBK)F(@Bmb=x{{y!t04JPxzSDiGxD>^T#%5K`3xeik#+;mBy1mc@OG9L)tEE7hNq;
zl~mllf{bJDyaMN_xX+Y%Ld`8mU6_8x;7B7`Z1{4q;R#R9-;ej|zp)+VY3|)>lyC-W
zkaJaTA#^Xgo)X#__L(Uk
zGymg|OQS8ck`VC)c`usvUz0WnbWLGVDacKW;X+){LK%nQOi$Eve|S`%z;LEh#L$;K
zh2t
zGFD&%oeH0c7ibQ`Ez2X$Fw*JWZgopQ8-eN(li{^;?cEH6?%k}(XZHHOW!tx1{2RE$
OipFgLt^Kog0!WXCs2e~4
delta 581
zcmV-L0=oUUqXNC70+1vDNRcHXe*$Uu!llZpiqzfy1T??^R*a2o6PkbDL$-m?5KmUE
z5JHLGd-Lt_GyC@XegDpOZ~O3w#tN-i%97PO3NVt?5O~S
zPhn6BV_C|QFsKZ)Xj#gl5tJJ}C=${-s49w{ZoQ~V%aUXi;TH{*6wQoIBHw`##vY`>(e?O4xjP~~gn3mWNQm8sBBrFwZL^_mcgmw`bxh5fVa9Yts
zb8uSuRjm{)(uUh=b#61o@dKnd*(`^=P2
zng4Ofg;oYSL5TQ*ycbRK*QAXCeVZGU5;EPPzYrI6A+<$+rmxg9e|S`%z_7ZP#L(9~
z<}r^)?$8K_q#HtEdRH_A*vTH0s0cSAtuQO0t_d}^9Tv`jeC))xkQ>5%t3!D&e_u!S
z7asA5pF1|0o~3m|+(@&9d3TX*uL`$beYw1G7#JLcDrcvEU$>}S)_^K$Ti_1^OiLqF
z+7#GAFa2lY1)4$OGQ<%V81ZZ}ZwV+}pnSxnf33{DTVPDQOL#IZ`rNxklh5q+eaCih
T`|vlns*1_X{YoLTZ~{n=?lc;+
diff --git a/icons/mob/items/righthand_melee.dmi b/icons/mob/items/righthand_melee.dmi
index d32382398c60fbfe158158a57a68de169f3e7baf..fc8851a610a8cc8ff00cbe458be048504a080f13 100644
GIT binary patch
delta 576
zcmV-G0>Ay5nF5uW0+1vDLy;vSe?rpkg-exH6{)-Z31~1wuwravo6!9G9g-kWcapV_z9@4I)lecQ!Hv`!k$GPYhU@RUFkQ_q9L&a2`Cej6Dg^
z_!LK_w2ozL9Y>Xg1|7>-GJpzedQCz)4^>6cGffax8C8;uBK)F(@Bmb=x{{y!t04JPxzSDiGxD>^T#%5K`3xeik#+;mBy1mc@OG9L)tEE7hNq;
zl~mllf{bJDyaMN_xX+Y%Ld`8mU6_8x;7B7`Z1{4q;R#R9-;ej|zp)+VY3|)>lyC-W
zkaJaTA#^Xgo)X#__L(Uk
zGymg|OQS8ck`VC)c`usvUz0WnbWLGVDacKW;X+){LK%nQOi$Eve|S`%z;LEh#L$;K
zh2t
zGFD&%oeH0c7ibQ`Ez2X$Fw*JWZgopQ8-eN(li{^;?cEH6?%k}(XZHHOW!tx1{2RE$
OipFgLt^Kog0ws#QX&Sx&
delta 581
zcmV-L0=oT`nF5-b0+1vDNRcHXe*$Uu!llZpiqzfy1T??^R*a2o6PkbDL$-m?5KmUE
z5JHLGd-Lt_GyC@XegDpOZ~O3w#tN-i%97PO3NVt?5O~S
zPhn6BV_C|QFsKZ)Xj#gl5tJJ}C=${-s49w{ZoQ~V%aUXi;TH{*6wQoIBHw`##vY`>(e?O4xjP~~gn3mWNQm8sBBrFwZL^_mcgmw`bxh5fVa9Yts
zb8uSuRjm{)(uUh=b#61o@dKnd*(`^=P2
zng4Ofg;oYSL5TQ*ycbRK*QAXCeVZGU5;EPPzYrI6A+<$+rmxg9e|S`%z_7ZP#L(9~
z<}r^)?$8K_q#HtEdRH_A*vTH0s0cSAtuQO0t_d}^9Tv`jeC))xkQ>5%t3!D&e_u!S
z7asA5pF1|0o~3m|+(@&9d3TX*uL`$beYw1G7#JLcDrcvEU$>}S)_^K$Ti_1^OiLqF
z+7#GAFa2lY1)4$OGQ<%V81ZZ}ZwV+}pnSxnf33{DTVPDQOL#IZ`rNxklh5q+eaCih
T`|vlns*1_X{YoLTZ~`TYB0?H5
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index 791678bde35c0659df47e821d8bb3535b0fcfb25..783441c51c244ea94b29bfb49b3b63f59f8f25d9 100644
GIT binary patch
delta 61
zcmV-D0K)&-iUZh+1CS&Eo3SN&1SwxVwx1Oo=C}t;3J#Gg?