Files
Bubberstation/code/game/objects/items/tools/crowbar.dm
MrDoomBringer 74d9291329 Adds the Airlock Authentication Override Card (#50636)
About The Pull Request

Cryptographic sequencers can no longer open airlocks
The Airlock Authentication Override Card can open airlocks (3 charges, each charge refills over the course of a couple minutes)
Why It's Good For The Game

@optimumtact said it was good for the game
The data says the emag is the most bought traitor item. This is because the emag has too much bloat. To help mitigate this this we've taken away airlock hacking from the emag, however instead of removing the feature outright (as in #50632) we move the feature to a new item, for those who really still want to be able to hack doors
Changelog

cl MrDoomBringer with some code stolen from itseasytosee
add: added the Airlock Authentication Override Card. Use it to open airlocks!
add: added Syndicate Jaws of Life to the nuke op uplink. Use it in it's crowbar configuration to open as many doors as you'd like!
del: The cryptographic sequencer can no longer open airlocks :(
/cl

Closes #50632
2020-04-28 13:03:10 +12:00

135 lines
4.9 KiB
Plaintext

/obj/item/crowbar
name = "pocket crowbar"
desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors."
icon = 'icons/obj/tools.dmi'
icon_state = "crowbar"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
usesound = 'sound/items/crowbar.ogg'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/iron=50)
drop_sound = 'sound/items/handling/crowbar_drop.ogg'
pickup_sound = 'sound/items/handling/crowbar_pickup.ogg'
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
tool_behaviour = TOOL_CROWBAR
toolspeed = 1
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30)
var/force_opens = FALSE
/obj/item/crowbar/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1)
return (BRUTELOSS)
/obj/item/crowbar/red
icon_state = "crowbar_red"
force = 8
/obj/item/crowbar/abductor
name = "alien crowbar"
desc = "A hard-light crowbar. It appears to pry by itself, without any effort required."
icon = 'icons/obj/abductor.dmi'
usesound = 'sound/weapons/sonic_jackhammer.ogg'
icon_state = "crowbar"
toolspeed = 0.1
/obj/item/crowbar/large
name = "crowbar"
desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big."
force = 12
w_class = WEIGHT_CLASS_NORMAL
throw_speed = 3
throw_range = 3
custom_materials = list(/datum/material/iron=70)
icon_state = "crowbar_large"
item_state = "crowbar"
toolspeed = 0.7
/obj/item/crowbar/power
name = "jaws of life"
desc = "A set of jaws of life, compressed through the magic of science."
icon_state = "jaws_pry"
item_state = "jawsoflife"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
custom_materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25)
usesound = 'sound/items/jaws_pry.ogg'
force = 15
toolspeed = 0.7
force_opens = TRUE
/obj/item/crowbar/power/syndicate
name = "Syndicate jaws of life"
desc = "A rengineered copy of Nanotrasen's standard jaws of life. Can be used to force open airlocks in it's crowbar configuration."
icon_state = "jaws_pry_syndie"
toolspeed = 0.5
force_opens = TRUE
/obj/item/crowbar/power/examine()
. = ..()
. += " It's fitted with a [tool_behaviour == TOOL_CROWBAR ? "prying" : "cutting"] head."
/obj/item/crowbar/power/suicide_act(mob/user)
if(tool_behaviour == TOOL_CROWBAR)
user.visible_message("<span class='suicide'>[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(loc, 'sound/items/jaws_pry.ogg', 50, TRUE, -1)
else
user.visible_message("<span class='suicide'>[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!</span>")
playsound(loc, 'sound/items/jaws_cut.ogg', 50, TRUE, -1)
if(iscarbon(user))
var/mob/living/carbon/C = user
var/obj/item/bodypart/BP = C.get_bodypart(BODY_ZONE_HEAD)
if(BP)
BP.drop_limb()
playsound(loc, "desceration", 50, TRUE, -1)
return (BRUTELOSS)
/obj/item/crowbar/power/attack_self(mob/user)
playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, TRUE)
if(tool_behaviour == TOOL_CROWBAR)
tool_behaviour = TOOL_WIRECUTTER
to_chat(user, "<span class='notice'>You attach the cutting jaws to [src].</span>")
usesound = 'sound/items/jaws_cut.ogg'
update_icon()
else
tool_behaviour = TOOL_CROWBAR
to_chat(user, "<span class='notice'>You attach the prying jaws to [src].</span>")
usesound = 'sound/items/jaws_pry.ogg'
update_icon()
/obj/item/crowbar/power/update_icon()
if(tool_behaviour == TOOL_WIRECUTTER)
icon_state = "jaws_cutter"
else
icon_state = "jaws_pry"
/obj/item/crowbar/power/syndicate/update_icon()
if(tool_behaviour == TOOL_WIRECUTTER)
icon_state = "jaws_cutter_syndie"
else
icon_state = "jaws_pry_syndie"
/obj/item/crowbar/power/attack(mob/living/carbon/C, mob/user)
if(istype(C) && C.handcuffed && tool_behaviour == TOOL_WIRECUTTER)
user.visible_message("<span class='notice'>[user] cuts [C]'s restraints with [src]!</span>")
qdel(C.handcuffed)
return
else
..()
/obj/item/crowbar/cyborg
name = "hydraulic crowbar"
desc = "A hydraulic prying tool, simple but powerful."
icon = 'icons/obj/items_cyborg.dmi'
icon_state = "crowbar_cyborg"
usesound = 'sound/items/jaws_pry.ogg'
force = 10
toolspeed = 0.5