Files
CHOMPStation2/code/game/objects/items/weapons/tools/wirecutters.dm

123 lines
4.1 KiB
Plaintext

/*
* Wirecutters
*/
/obj/item/weapon/tool/wirecutters
name = "wirecutters"
desc = "This cuts wires."
icon = 'icons/obj/tools.dmi'
icon_state = "cutters"
center_of_mass = list("x" = 18,"y" = 10)
slot_flags = SLOT_BELT
force = 6
throw_speed = 2
throw_range = 9
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
matter = list(DEFAULT_WALL_MATERIAL = 80)
attack_verb = list("pinched", "nipped")
hitsound = 'sound/items/wirecutter.ogg'
usesound = 'sound/items/wirecutter.ogg'
drop_sound = 'sound/items/drop/wirecutter.ogg'
pickup_sound = 'sound/items/pickup/wirecutter.ogg'
sharp = 1
edge = 1
toolspeed = 1
var/random_color = TRUE
/obj/item/weapon/tool/wirecutters/New()
if(random_color && prob(50))
icon_state = "cutters-y"
item_state = "cutters_yellow"
..()
/obj/item/weapon/tool/wirecutters/attack(mob/living/carbon/C as mob, mob/user as mob)
if(istype(C) && user.a_intent == I_HELP && (C.handcuffed) && (istype(C.handcuffed, /obj/item/weapon/handcuffs/cable)))
usr.visible_message("\The [usr] cuts \the [C]'s restraints with \the [src]!",\
"You cut \the [C]'s restraints with \the [src]!",\
"You hear cable being cut.")
C.handcuffed = null
if(C.buckled && C.buckled.buckle_require_restraints)
C.buckled.unbuckle_mob()
C.update_handcuffed()
return
else
..()
/obj/item/weapon/tool/wirecutters/is_wirecutter()
return TRUE
/datum/category_item/catalogue/anomalous/precursor_a/alien_wirecutters
name = "Precursor Alpha Object - Wire Seperator"
desc = "An object appearing to have a tool shape. It has two handles, and two \
sides which are attached to each other in the center. At the end on each side \
is a sharp cutting edge, made from a seperate material than the rest of the \
tool.\
<br><br>\
This tool appears to serve the same purpose as conventional wirecutters, due \
to how similar the shapes are. If so, this implies that the creators of this \
object also may utilize flexible cylindrical strands of metal to transmit \
energy and signals, just as humans do."
value = CATALOGUER_REWARD_EASY
/obj/item/weapon/tool/wirecutters/alien
name = "alien wirecutters"
desc = "Extremely sharp wirecutters, made out of a silvery-green metal."
catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_wirecutters)
icon = 'icons/obj/abductor.dmi'
icon_state = "cutters"
toolspeed = 0.1
origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
random_color = FALSE
/obj/item/weapon/tool/wirecutters/cyborg
name = "wirecutters"
desc = "This cuts wires. With science."
usesound = 'sound/items/jaws_cut.ogg'
toolspeed = 0.5
/obj/item/weapon/tool/wirecutters/hybrid
name = "strange wirecutters"
desc = "This cuts wires. With <span class='alien'>Science!</span>"
icon_state = "hybcutters"
w_class = ITEMSIZE_NORMAL
slowdown = 0.1
origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_PHORON = 2)
attack_verb = list("pinched", "nipped", "warped", "blasted")
usesound = 'sound/effects/stealthoff.ogg'
toolspeed = 0.4
reach = 2
/obj/item/weapon/tool/wirecutters/power
name = "jaws of life"
desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a cutting head."
icon_state = "jaws_cutter"
item_state = "jawsoflife"
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
matter = list(MAT_METAL=150, MAT_SILVER=50)
usesound = 'sound/items/jaws_cut.ogg'
force = 15
toolspeed = 0.25
random_color = FALSE
var/obj/item/weapon/tool/crowbar/power/counterpart = null
/obj/item/weapon/tool/wirecutters/power/New(newloc, no_counterpart = TRUE)
..(newloc)
if(!counterpart && no_counterpart)
counterpart = new(src, FALSE)
counterpart.counterpart = src
/obj/item/weapon/tool/wirecutters/power/Destroy()
if(counterpart)
counterpart.counterpart = null // So it can qdel cleanly.
QDEL_NULL(counterpart)
return ..()
/obj/item/weapon/tool/wirecutters/power/attack_self(mob/user)
playsound(src, 'sound/items/change_jaws.ogg', 50, 1)
user.drop_item(src)
counterpart.forceMove(get_turf(src))
src.forceMove(counterpart)
user.put_in_active_hand(counterpart)
to_chat(user, "<span class='notice'>You attach the pry jaws to [src].</span>")