Files
Bubberstation/code/game/objects/items/tools/wirecutters.dm
san7890 7f7688b60a Demotes the "electrical conductivity" flag from flags_1 to obj_flags (#80033)
## About The Pull Request

Code to handle this flag only ever existed on the `/obj` sublevel, so
there's no need for it to be on the `/atom` level `flags_1`. There was
probably a point in time in which mobs or turfs conducted electricity
but there's zero code for it anymore so we truly just live in a society
now.
## Why It's Good For The Game

Frees up a slot on `flags_1` (which is really nice actually), proper
scoping of certain bitflag stuff, etc.
## Changelog
Not relevant to players.

I may have screwed something up, will be doing a few passes on this
myself to ensure all the search and replaces went alright but we should
be good™️
2023-12-01 21:43:46 -05: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
obj_flags = CONDUCTS_ELECTRICITY
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/antags/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