diff --git a/code/modules/mining/kinetic_crusher.dm b/code/modules/mining/kinetic_crusher.dm
index 498f0b16bb..f4712d31b9 100644
--- a/code/modules/mining/kinetic_crusher.dm
+++ b/code/modules/mining/kinetic_crusher.dm
@@ -237,6 +237,7 @@
/obj/item/weapon/kinetic_crusher/machete
+ // general purpose. cleaves though
name = "proto-kinetic machete"
desc = "A scaled down version of a proto-kinetic crusher, used by people who don't want to lug around an axe-hammer."
icon_state = "glaive-machete"
@@ -247,14 +248,13 @@
item_state = "c-machete"
w_class = ITEMSIZE_SMALL
attack_verb = list("cleaved", "chopped", "pulped", "stabbed", "skewered")
- force = 24
can_cleave = TRUE
requires_wield = FALSE
// yeah yeah buff but polaris mobs are meatwalls.
- backstab_bonus = 40
- detonation_damage = 26
- // meme option
- thrown_bonus = 20
+ force = 24
+ detonation_damage = 36 // 60
+ backstab_bonus = 40 // 100
+ thrown_bonus = 20 // 120
update_item_state = FALSE
@@ -269,11 +269,11 @@
attack_verb = list("bashed", "kicked", "punched", "struck", "axe kicked", "uppercut", "cross-punched", "jabbed", "hammerfisted", "roundhouse kicked")
integ_light_icon = FALSE
w_class = ITEMSIZE_HUGE
- force = 30
can_cleave = FALSE
requires_wield = TRUE
- backstab_bonus = 55
- detonation_damage = 35
+ force = 28
+ detonation_damage = 37 // 75
+ backstab_bonus = 55 // 130
var/obj/item/offhand/crushergauntlets/offhand
/obj/item/weapon/kinetic_crusher/machete/gauntlets/equipped()
@@ -302,21 +302,29 @@
var/mob/living/M = loc
if(istype(M) && forced == 0)
if(M.can_wield_item(src) && src.is_held_twohanded(M))
- name = initial(name)
- wielded = TRUE
- to_chat(M, "You ready [src].")
- var/obj/item/offhand/crushergauntlets/O = new(M)
- O.name = "[name] - readied"
- O.desc = "As much as you'd like to punch things with one hand, [src] is far too unwieldy for that."
- O.linked = src
- M.put_in_inactive_hand(O)
- offhand = O
+ wield(M)
+ else
+ unwield(M)
else
- name = "[initial(name)] (unreadied)"
- wielded = FALSE
- to_chat(M, "You unready [src].")
- if(offhand)
- QDEL_NULL(offhand)
+ unwield(M)
+
+/obj/item/weapon/kinetic_crusher/machete/gauntlets/proc/wield(var/mob/living/M)
+ name = initial(name)
+ wielded = TRUE
+ to_chat(M, "You ready [src].")
+ var/obj/item/offhand/crushergauntlets/O = new(M)
+ O.name = "[name] - readied"
+ O.desc = "As much as you'd like to punch things with one hand, [src] is far too unwieldy for that."
+ O.linked = src
+ M.put_in_inactive_hand(O)
+ offhand = O
+
+/obj/item/weapon/kinetic_crusher/machete/gauntlets/proc/unwield(var/mob/living/M)
+ to_chat(M, "You unready [src].")
+ name = "[initial(name)] (unreadied)"
+ wielded = FALSE
+ if(offhand)
+ QDEL_NULL(offhand)
/obj/item/offhand
icon = 'icons/obj/weapons.dmi'
@@ -324,6 +332,7 @@
name = "offhand that shouldn't exist doo dee doo"
w_class = ITEMSIZE_NO_CONTAINER
// var/linked - redefine this wherever
+ // man i really should try porting the twohand component this is hacky and Sucks
/obj/item/offhand/crushergauntlets
var/obj/item/weapon/kinetic_crusher/machete/gauntlets/linked
@@ -333,7 +342,7 @@
linked.ready_toggle(TRUE)
/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig
- name = "mounted proto-kinetic gear"
+ name = "\improper mounted proto-kinetic gear"
var/obj/item/rig_module/gauntlets/storing_module
/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig/dropped(mob/user)
@@ -351,6 +360,7 @@
else
QDEL_NULL(src)
+// gimmicky backup for throwing
/obj/item/weapon/kinetic_crusher/machete/dagger
name = "proto-kinetic dagger"
desc = "A scaled down version of a proto-kinetic machete, usually used in a last ditch scenario."
@@ -361,13 +371,14 @@
)
item_state = "c-knife"
w_class = ITEMSIZE_SMALL
- force = 15
requires_wield = FALSE
charge_overlay = FALSE
- backstab_bonus = 35
- detonation_damage = 25
- // woohoo
- thrown_bonus = 35
+ charge_time = 10 // lowered charge in return for lowered damage
+ force = 18
+ detonation_damage = 27 // 45
+ backstab_bonus = 40 // 85
+ // gimmick mode
+ thrown_bonus = 50 // 135 but you drop your knife because you threw it
//destablizing force
@@ -387,15 +398,18 @@
hammer_synced = null
return ..()
+/obj/item/projectile/destabilizer/on_impact(var/atom/A)
+ if(ismineralturf(A))
+ var/turf/simulated/mineral/M = A
+ new /obj/effect/temp_visual/kinetic_blast(M)
+ M.GetDrilled(firer)
+ . = ..()
+
/obj/item/projectile/destabilizer/on_hit(atom/target, blocked = FALSE)
if(isliving(target))
var/mob/living/L = target
- L.add_modifier(/datum/modifier/crusher_mark, 30 SECONDS, firer, TRUE)
- var/target_turf = get_turf(target)
- if(ismineralturf(target_turf))
- var/turf/simulated/mineral/M = target_turf
- new /obj/effect/temp_visual/kinetic_blast(M)
- M.GetDrilled(firer)
+ if(hammer_synced.can_mark(L))
+ L.add_modifier(/datum/modifier/crusher_mark, 30 SECONDS, firer, TRUE)
..()
/*
@@ -404,5 +418,6 @@
there would be any if we had some
but alas
- hatterhat
+
*/
diff --git a/code/modules/mob/_modifiers/crusher_mark.dm b/code/modules/mob/_modifiers/crusher_mark.dm
index 9af2980624..96ce129aad 100644
--- a/code/modules/mob/_modifiers/crusher_mark.dm
+++ b/code/modules/mob/_modifiers/crusher_mark.dm
@@ -2,34 +2,29 @@
name = "destabilized"
desc = "You've been struck by a destabilizing bolt. By all accounts, this is probably a bad thing."
stacks = MODIFIER_STACK_EXTEND
- on_created_text = "You feel destabilized."
- on_expired_text = "You feel stable again."
+ on_created_text = "You feel physically unstable."
+ on_expired_text = "You feel physically stable again."
var/mutable_appearance/marked_underlay
var/obj/item/weapon/kinetic_crusher/hammer_synced
-/*
-/datum/modifier/New(var/new_holder, var/new_origin)
- holder = new_holder
- if(new_origin)
- origin = weakref(new_origin)
- else // We assume the holder caused the modifier if not told otherwise.
- origin = weakref(holder)
- ..()
-/mob/living/proc/add_modifier(var/modifier_type, var/expire_at = null, var/mob/living/origin = null, var/suppress_failure = FALSE)
-*/
-
/datum/modifier/crusher_mark/New(var/new_holder, var/new_origin)
. = ..()
if(isliving(new_origin))
var/mob/living/origin = new_origin
- var/obj/item/weapon/kinetic_crusher/to_sync = locate(/obj/item/weapon/kinetic_crusher) in origin
- if(to_sync)
- hammer_synced = to_sync
+ var/obj/item/weapon/kinetic_crusher/to_sync
+ if(istype(origin.get_active_hand(), /obj/item/weapon/kinetic_crusher))
+ to_sync = origin.get_active_hand()
+ else if (istype(origin.get_inactive_hand(), /obj/item/weapon/kinetic_crusher))
+ to_sync = origin.get_inactive_hand()
+ if(to_sync) // did we find it?
+ hammer_synced = to_sync // go ahead
if(hammer_synced? hammer_synced.can_mark(holder) : TRUE)
marked_underlay = mutable_appearance('icons/effects/effects.dmi', "shield2")
marked_underlay.pixel_x = -holder.pixel_x
marked_underlay.pixel_y = -holder.pixel_y
holder.underlays += marked_underlay
+ else
+ Destroy()
/datum/modifier/crusher_mark/Destroy()
hammer_synced = null