Files
Bubberstation/code/game/objects/items/tools/wirecutters.dm
T
carlarctg 285c7acf24 Refactors snipping cuffs into a bespoke cuffsnapping element (#75432)
Refactors snipping cuffs into a bespoke cuffsnapping element, adding
support for delayed cuffsnipping. Adds this element to box cutters!
Effectively speaking everything is the same as usual.

It's cool, it's based and elementized and modularized and not
hardcodeized on the jaws of life anymore. Plus it could be used in the
future for things (it won't)
2023-05-25 17:57:50 +00:00

84 lines
3.2 KiB
Plaintext

/obj/item/wirecutters
name = "wirecutters"
desc = "This cuts wires."
icon = 'icons/obj/tools.dmi'
icon_state = "cutters_map"
worn_icon_state = "cutters"
inhand_icon_state = "cutters"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
greyscale_config = /datum/greyscale_config/wirecutters
greyscale_config_belt = /datum/greyscale_config/wirecutters_belt_overlay
greyscale_config_inhand_left = /datum/greyscale_config/wirecutter_inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/wirecutter_inhand_right
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
force = 6
throw_speed = 3
throw_range = 7
w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*0.8)
attack_verb_continuous = list("pinches", "nips")
attack_verb_simple = list("pinch", "nip")
hitsound = 'sound/items/wirecutter.ogg'
usesound = 'sound/items/wirecutter.ogg'
drop_sound = 'sound/items/handling/wirecutter_drop.ogg'
pickup_sound = 'sound/items/handling/wirecutter_pickup.ogg'
tool_behaviour = TOOL_WIRECUTTER
toolspeed = 1
armor_type = /datum/armor/item_wirecutters
/// If the item should be assigned a random color
var/random_color = TRUE
/// List of possible random colors
var/static/list/wirecutter_colors = list(
COLOR_TOOL_BLUE,
COLOR_TOOL_RED,
COLOR_TOOL_PINK,
COLOR_TOOL_BROWN,
COLOR_TOOL_GREEN,
COLOR_TOOL_CYAN,
COLOR_TOOL_YELLOW,
)
/// 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
/datum/armor/item_wirecutters
fire = 50
acid = 30
/obj/item/wirecutters/Initialize(mapload)
if(random_color)
set_greyscale(colors = list(pick(wirecutter_colors)))
AddElement(/datum/element/falling_hazard, damage = force, wound_bonus = wound_bonus, hardhat_safety = TRUE, crushes = FALSE, impact_sound = hitsound)
AddElement(/datum/element/cuffsnapping, snap_time_weak_handcuffs, snap_time_strong_handcuffs)
return ..()
/obj/item/wirecutters/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
playsound(loc, usesound, 50, TRUE, -1)
return BRUTELOSS
/obj/item/wirecutters/abductor
name = "alien wirecutters"
desc = "Extremely sharp wirecutters, made out of a silvery-green metal."
icon = 'icons/obj/abductor.dmi'
custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/silver = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/plasma =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/titanium =SHEET_MATERIAL_AMOUNT, /datum/material/diamond =SHEET_MATERIAL_AMOUNT)
icon_state = "cutters"
toolspeed = 0.1
random_color = FALSE
snap_time_strong_handcuffs = 1 SECONDS
/obj/item/wirecutters/cyborg
name = "powered wirecutters"
desc = "Cuts wires with the power of ELECTRICITY. Faster than normal wirecutters."
icon = 'icons/obj/items_cyborg.dmi'
icon_state = "wirecutters_cyborg"
worn_icon_state = "cutters"
toolspeed = 0.5
random_color = FALSE