From 62d2b26c7a85516f392eacbb69417b9bc8f4e935 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 7 Oct 2017 22:49:52 -0500 Subject: [PATCH] Update handcuffs.dm --- code/game/objects/items/handcuffs.dm | 376 +-------------------------- 1 file changed, 1 insertion(+), 375 deletions(-) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index e7dfc96ab5..6fb85e5ad5 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -1,377 +1,3 @@ -<<<<<<< HEAD -/obj/item/restraints - breakouttime = 600 - -//Handcuffs - -/obj/item/restraints/handcuffs - name = "handcuffs" - desc = "Use this to keep prisoners in line." - gender = PLURAL - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "handcuff" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT - throwforce = 0 - w_class = WEIGHT_CLASS_SMALL - throw_speed = 3 - throw_range = 5 - materials = list(MAT_METAL=500) - origin_tech = "engineering=3;combat=3" - breakouttime = 600 //Deciseconds = 60s = 1 minute - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50) - var/cuffsound = 'sound/weapons/handcuffs.ogg' - var/trashtype = null //for disposable cuffs - -/obj/item/restraints/handcuffs/attack(mob/living/carbon/C, mob/living/carbon/human/user) - if(!istype(C)) - return - if(user.disabilities & CLUMSY && prob(50)) - to_chat(user, "Uh... how do those things work?!") - apply_cuffs(user,user) - return - - // chance of monkey retaliation - if(ismonkey(C) && prob(MONKEY_CUFF_RETALIATION_PROB)) - var/mob/living/carbon/monkey/M - M = C - M.retaliate(user) - - if(!C.handcuffed) - if(C.get_num_arms() >= 2 || C.get_arm_ignore()) - C.visible_message("[user] is trying to put [src.name] on [C]!", \ - "[user] is trying to put [src.name] on [C]!") - - playsound(loc, cuffsound, 30, 1, -2) - if(do_mob(user, C, 30) && (C.get_num_arms() >= 2 || C.get_arm_ignore())) - apply_cuffs(C,user) - to_chat(user, "You handcuff [C].") - SSblackbox.add_details("handcuffs","[type]") - - add_logs(user, C, "handcuffed") - else - to_chat(user, "You fail to handcuff [C]!") - else - to_chat(user, "[C] doesn't have two hands...") - -/obj/item/restraints/handcuffs/proc/apply_cuffs(mob/living/carbon/target, mob/user, var/dispense = 0) - if(target.handcuffed) - return - - if(!user.drop_item() && !dispense) - return - - var/obj/item/restraints/handcuffs/cuffs = src - if(trashtype) - cuffs = new trashtype() - else if(dispense) - cuffs = new type() - - cuffs.loc = target - target.handcuffed = cuffs - - target.update_handcuffed() - if(trashtype && !dispense) - qdel(src) - return - -/obj/item/restraints/handcuffs/sinew - name = "sinew restraints" - desc = "A pair of restraints fashioned from long strands of flesh." - icon = 'icons/obj/mining.dmi' - icon_state = "sinewcuff" - item_state = "sinewcuff" - breakouttime = 300 //Deciseconds = 30s - cuffsound = 'sound/weapons/cablecuff.ogg' - -/obj/item/restraints/handcuffs/cable - name = "cable restraints" - desc = "Looks like some cables tied together. Could be used to tie something up." - icon_state = "cuff_red" - item_state = "coil_red" - lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - materials = list(MAT_METAL=150, MAT_GLASS=75) - origin_tech = "engineering=2" - breakouttime = 300 //Deciseconds = 30s - cuffsound = 'sound/weapons/cablecuff.ogg' - var/datum/robot_energy_storage/wirestorage = null - -/obj/item/restraints/handcuffs/cable/attack(mob/living/carbon/C, mob/living/carbon/human/user) - if(!istype(C)) - return - if(wirestorage && wirestorage.energy < 15) - to_chat(user, "You need at least 15 wire to restrain [C]!") - return - return ..() - -/obj/item/restraints/handcuffs/cable/apply_cuffs(mob/living/carbon/target, mob/user, var/dispense = 0) - if(wirestorage) - if(!wirestorage.use_charge(15)) - to_chat(user, "You need at least 15 wire to restrain [target]!") - return - return ..(target, user, 1) - - return ..() - -/obj/item/restraints/handcuffs/cable/red - icon_state = "cuff_red" - item_state = "coil_red" - -/obj/item/restraints/handcuffs/cable/yellow - icon_state = "cuff_yellow" - item_state = "coil_yellow" - -/obj/item/restraints/handcuffs/cable/blue - icon_state = "cuff_blue" - item_state = "coil_blue" - -/obj/item/restraints/handcuffs/cable/green - icon_state = "cuff_green" - item_state = "coil_green" - -/obj/item/restraints/handcuffs/cable/pink - icon_state = "cuff_pink" - item_state = "coil_pink" - -/obj/item/restraints/handcuffs/cable/orange - icon_state = "cuff_orange" - item_state = "coil_orange" - -/obj/item/restraints/handcuffs/cable/cyan - icon_state = "cuff_cyan" - item_state = "coil_cyan" - -/obj/item/restraints/handcuffs/cable/white - icon_state = "cuff_white" - item_state = "coil_white" - -/obj/item/restraints/handcuffs/alien - icon_state = "handcuffAlien" - -/obj/item/restraints/handcuffs/fake - name = "fake handcuffs" - desc = "Fake handcuffs meant for gag purposes." - breakouttime = 10 //Deciseconds = 1s - -/obj/item/restraints/handcuffs/fake/kinky - name = "kinky handcuffs" - desc = "Fake handcuffs meant for erotic roleplay." - icon_state = "handcuffGag" - -/obj/item/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params) - ..() - if(istype(I, /obj/item/stack/rods)) - var/obj/item/stack/rods/R = I - if (R.use(1)) - var/obj/item/wirerod/W = new /obj/item/wirerod - remove_item_from_storage(user) - user.put_in_hands(W) - to_chat(user, "You wrap the cable restraint around the top of the rod.") - qdel(src) - else - to_chat(user, "You need one rod to make a wired rod!") - return - else if(istype(I, /obj/item/stack/sheet/metal)) - var/obj/item/stack/sheet/metal/M = I - if(M.get_amount() < 6) - to_chat(user, "You need at least six metal sheets to make good enough weights!") - return - to_chat(user, "You begin to apply [I] to [src]...") - if(do_after(user, 35, target = src)) - if(M.get_amount() < 6 || !M) - return - var/obj/item/restraints/legcuffs/bola/S = new /obj/item/restraints/legcuffs/bola - M.use(6) - user.put_in_hands(S) - to_chat(user, "You make some weights out of [I] and tie them to [src].") - remove_item_from_storage(user) - qdel(src) - else - return ..() - -/obj/item/restraints/handcuffs/cable/zipties/cyborg/attack(mob/living/carbon/C, mob/user) - if(iscyborg(user)) - if(!C.handcuffed) - playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) - C.visible_message("[user] is trying to put zipties on [C]!", \ - "[user] is trying to put zipties on [C]!") - if(do_mob(user, C, 30)) - if(!C.handcuffed) - C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) - C.update_handcuffed() - to_chat(user, "You handcuff [C].") - add_logs(user, C, "handcuffed") - else - to_chat(user, "You fail to handcuff [C]!") - -/obj/item/restraints/handcuffs/cable/zipties - name = "zipties" - desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use." - icon_state = "cuff_white" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - materials = list() - breakouttime = 450 //Deciseconds = 45s - trashtype = /obj/item/restraints/handcuffs/cable/zipties/used - -/obj/item/restraints/handcuffs/cable/zipties/used - desc = "A pair of broken zipties." - icon_state = "cuff_white_used" - item_state = "cuff_white" - -/obj/item/restraints/handcuffs/cable/zipties/used/attack() - return - - -//Legcuffs - -/obj/item/restraints/legcuffs - name = "leg cuffs" - desc = "Use this to keep prisoners in line." - gender = PLURAL - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "handcuff" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - flags_1 = CONDUCT_1 - throwforce = 0 - w_class = WEIGHT_CLASS_NORMAL - origin_tech = "engineering=3;combat=3" - slowdown = 7 - breakouttime = 300 //Deciseconds = 30s = 0.5 minute - -/obj/item/restraints/legcuffs/beartrap - name = "bear trap" - throw_speed = 1 - throw_range = 1 - icon_state = "beartrap" - desc = "A trap used to catch bears and other legged creatures." - origin_tech = "engineering=4" - var/armed = 0 - var/trap_damage = 20 - -/obj/item/restraints/legcuffs/beartrap/Initialize() - . = ..() - icon_state = "[initial(icon_state)][armed]" - -/obj/item/restraints/legcuffs/beartrap/suicide_act(mob/user) - user.visible_message("[user] is sticking [user.p_their()] head in the [src.name]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) - return (BRUTELOSS) - -/obj/item/restraints/legcuffs/beartrap/attack_self(mob/user) - ..() - if(ishuman(user) && !user.stat && !user.restrained()) - armed = !armed - icon_state = "[initial(icon_state)][armed]" - to_chat(user, "[src] is now [armed ? "armed" : "disarmed"]") - -/obj/item/restraints/legcuffs/beartrap/Crossed(AM as mob|obj) - if(armed && isturf(src.loc)) - if(isliving(AM)) - var/mob/living/L = AM - var/snap = 0 - var/def_zone = "chest" - if(iscarbon(L)) - var/mob/living/carbon/C = L - snap = 1 - if(!C.lying) - def_zone = pick("l_leg", "r_leg") - if(!C.legcuffed && C.get_num_legs() >= 2) //beartrap can't cuff your leg if there's already a beartrap or legcuffs, or you don't have two legs. - C.legcuffed = src - src.loc = C - C.update_inv_legcuffed() - SSblackbox.add_details("handcuffs","[type]") - else if(isanimal(L)) - var/mob/living/simple_animal/SA = L - if(SA.mob_size > MOB_SIZE_TINY) - snap = 1 - if(L.movement_type & FLYING) - snap = 0 - if(snap) - armed = 0 - icon_state = "[initial(icon_state)][armed]" - playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) - L.visible_message("[L] triggers \the [src].", \ - "You trigger \the [src]!") - L.apply_damage(trap_damage,BRUTE, def_zone) - ..() - -/obj/item/restraints/legcuffs/beartrap/energy - name = "energy snare" - armed = 1 - icon_state = "e_snare" - trap_damage = 0 - flags_1 = DROPDEL_1 - -/obj/item/restraints/legcuffs/beartrap/energy/New() - ..() - addtimer(CALLBACK(src, .proc/dissipate), 100) - -/obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate() - if(!ismob(loc)) - do_sparks(1, TRUE, src) - qdel(src) - -/obj/item/restraints/legcuffs/beartrap/energy/attack_hand(mob/user) - Crossed(user) //honk - -/obj/item/restraints/legcuffs/beartrap/energy/cyborg - breakouttime = 20 // Cyborgs shouldn't have a strong restraint - -/obj/item/restraints/legcuffs/bola - name = "bola" - desc = "A restraining device designed to be thrown at the target. Upon connecting with said target, it will wrap around their legs, making it difficult for them to move quickly." - icon_state = "bola" - breakouttime = 35//easy to apply, easy to break out of - gender = NEUTER - origin_tech = "engineering=3;combat=1" - var/knockdown = 0 - -/obj/item/restraints/legcuffs/bola/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - if(!..()) - return - playsound(src.loc,'sound/weapons/bolathrow.ogg', 75, 1) - -/obj/item/restraints/legcuffs/bola/throw_impact(atom/hit_atom) - if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed, - return//abort - var/mob/living/carbon/C = hit_atom - if(!C.legcuffed && C.get_num_legs() >= 2) - visible_message("\The [src] ensnares [C]!") - C.legcuffed = src - src.loc = C - C.update_inv_legcuffed() - SSblackbox.add_details("handcuffs","[type]") - to_chat(C, "\The [src] ensnares you!") - C.Knockdown(knockdown) - -/obj/item/restraints/legcuffs/bola/tactical//traitor variant - name = "reinforced bola" - desc = "A strong bola, made with a long steel chain. It looks heavy, enough so that it could trip somebody." - icon_state = "bola_r" - breakouttime = 70 - origin_tech = "engineering=4;combat=3" - knockdown = 20 - -/obj/item/restraints/legcuffs/bola/energy //For Security - name = "energy bola" - desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests." - icon_state = "ebola" - hitsound = 'sound/weapons/taserhit.ogg' - w_class = WEIGHT_CLASS_SMALL - breakouttime = 60 - -/obj/item/restraints/legcuffs/bola/energy/throw_impact(atom/hit_atom) - if(iscarbon(hit_atom)) - var/obj/item/restraints/legcuffs/beartrap/B = new /obj/item/restraints/legcuffs/beartrap/energy/cyborg(get_turf(hit_atom)) - B.Crossed(hit_atom) - qdel(src) - ..() -======= /obj/item/restraints breakouttime = 600 @@ -744,4 +370,4 @@ B.Crossed(hit_atom) qdel(src) ..() ->>>>>>> b6d349e... Remove drop_item, drop_item_v, put_in_hands_or_del (#31386) +