mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-23 23:54:45 +00:00
## About The Pull Request Removes some boilerplate from transforming component, uses traits in a similar way to the two-handed component Also fixes #74955 (If it's still broken?) ## Why It's Good For The Game Makes it a bit cleaner to work with. Cause I wanna do something with this in the future maybe. ## Changelog 🆑 Melbert fix: Fixed e-cutlasses and bananium swords having invisible inhands code: Removed boilerplate from transforming component /🆑 --------- Co-authored-by: san7890 <the@san7890.com>
53 lines
1.8 KiB
Plaintext
53 lines
1.8 KiB
Plaintext
/obj/item/boxcutter
|
|
name = "boxcutter"
|
|
desc = "A tool for cutting boxes, or throats."
|
|
icon = 'icons/obj/boxcutter.dmi'
|
|
icon_state = "boxcutter"
|
|
inhand_icon_state = "boxcutter"
|
|
base_icon_state = "boxcutter"
|
|
lefthand_file = 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/boxcutter_righthand.dmi'
|
|
inhand_icon_state = null
|
|
attack_verb_continuous = list("prods", "pokes")
|
|
attack_verb_simple = list("prod", "poke")
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
resistance_flags = FIRE_PROOF
|
|
force = 0
|
|
/// Used on Initialize, how much time to cut cable restraints and zipties.
|
|
var/snap_time_weak_handcuffs = 0 SECONDS
|
|
/// Used on Initialize, how much time to cut real handcuffs. Null means it can't.
|
|
var/snap_time_strong_handcuffs = null
|
|
|
|
/obj/item/boxcutter/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/update_icon_updates_onmob)
|
|
AddComponent(/datum/component/butchering, \
|
|
speed = 7 SECONDS, \
|
|
effectiveness = 100, \
|
|
)
|
|
|
|
AddComponent( \
|
|
/datum/component/transforming, \
|
|
force_on = 10, \
|
|
throwforce_on = 4, \
|
|
throw_speed_on = throw_speed, \
|
|
sharpness_on = SHARP_EDGED, \
|
|
hitsound_on = 'sound/weapons/bladeslice.ogg', \
|
|
w_class_on = WEIGHT_CLASS_NORMAL, \
|
|
attack_verb_continuous_on = list("cuts", "stabs", "slashes"), \
|
|
attack_verb_simple_on = list("cut", "stab", "slash"), \
|
|
)
|
|
|
|
RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))
|
|
|
|
/obj/item/boxcutter/proc/on_transform(obj/item/source, mob/user, active)
|
|
SIGNAL_HANDLER
|
|
|
|
playsound(src, 'sound/items/boxcutter_activate.ogg', 50)
|
|
tool_behaviour = (active ? TOOL_KNIFE : NONE)
|
|
if(active)
|
|
AddElement(/datum/element/cuffsnapping, snap_time_weak_handcuffs, snap_time_strong_handcuffs)
|
|
else
|
|
RemoveElement(/datum/element/cuffsnapping, snap_time_weak_handcuffs, snap_time_strong_handcuffs)
|
|
return COMPONENT_NO_DEFAULT_MESSAGE
|