mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
123 lines
4.1 KiB
Plaintext
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>")
|