Files
Bubberstation/code/game/objects/items/tools/wrench.dm
FinancialGoose 6a9ca67482 New operating sounds for wrench, crowbar and wirecutter (#83462)
## About The Pull Request
Medical tools have some operation sounds that added to the aesthetic of
their work so I thought why not engineering.


https://github.com/tgstation/tgstation/assets/92416224/30e4558c-8a64-407b-a7fb-b1ad30966fe5





## Why It's Good For The Game
People play engineering to fix stuffs so making the aesthetic of using
the tools better should make it fixing more enjoyable.
## Changelog
🆑

sound: added operating sounds for wrench, wirecutter and crowbar

/🆑

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
2024-06-08 03:05:28 +00:00

136 lines
5.1 KiB
Plaintext

/obj/item/wrench
name = "wrench"
desc = "A wrench with common uses. Can be found in your hand."
icon = 'icons/obj/tools.dmi'
icon_state = "wrench"
inhand_icon_state = "wrench"
worn_icon_state = "wrench"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BELT
force = 5
throwforce = 7
demolition_mod = 1.25
w_class = WEIGHT_CLASS_SMALL
usesound = 'sound/items/ratchet.ogg'
operating_sound = list('sound/items/ratchet_fast.ogg', 'sound/items/ratchet_slow.ogg')
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*1.5)
drop_sound = 'sound/items/handling/wrench_drop.ogg'
pickup_sound = 'sound/items/handling/wrench_pickup.ogg'
attack_verb_continuous = list("bashes", "batters", "bludgeons", "whacks")
attack_verb_simple = list("bash", "batter", "bludgeon", "whack")
tool_behaviour = TOOL_WRENCH
toolspeed = 1
armor_type = /datum/armor/item_wrench
/datum/armor/item_wrench
fire = 50
acid = 30
/obj/item/wrench/Initialize(mapload)
. = ..()
AddElement(/datum/element/falling_hazard, damage = force, wound_bonus = wound_bonus, hardhat_safety = TRUE, crushes = FALSE, impact_sound = hitsound)
/obj/item/wrench/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1)
return BRUTELOSS
/obj/item/wrench/abductor
name = "alien wrench"
desc = "A polarized wrench. It causes anything placed between the jaws to turn."
icon = 'icons/obj/antags/abductor.dmi'
belt_icon_state = "wrench_alien"
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)
usesound = 'sound/effects/empulse.ogg'
toolspeed = 0.1
/obj/item/wrench/medical
name = "medical wrench"
desc = "A medical wrench with common(medical?) uses. Can be found in your hand."
icon_state = "wrench_medical"
inhand_icon_state = "wrench_medical"
force = 2 //MEDICAL
throwforce = 4
attack_verb_continuous = list("heals", "medicals", "taps", "pokes", "analyzes") //"cobbyed"
attack_verb_simple = list("heal", "medical", "tap", "poke", "analyze")
///var to hold the name of the person who suicided
var/suicider
/obj/item/wrench/medical/examine(mob/user)
. = ..()
if(suicider)
. += span_notice("For some reason, it reminds you of [suicider].")
/obj/item/wrench/medical/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!"))
user.Stun(100, ignore_canstun = TRUE)// Stun stops them from wandering off
user.set_light_color(COLOR_VERY_SOFT_YELLOW)
user.set_light(2)
user.add_overlay(mutable_appearance('icons/mob/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER))
playsound(loc, 'sound/effects/pray.ogg', 50, TRUE, -1)
// Let the sound effect finish playing
add_fingerprint(user)
sleep(2 SECONDS)
if(!user)
return
for(var/obj/item/suicide_wrench in user)
user.dropItemToGround(suicide_wrench)
suicider = user.real_name
user.dust()
return OXYLOSS
/obj/item/wrench/cyborg
name = "hydraulic wrench"
desc = "An advanced robotic wrench, powered by internal hydraulics. Twice as fast as the handheld version."
icon = 'icons/obj/items_cyborg.dmi'
icon_state = "toolkit_engiborg_wrench"
toolspeed = 0.5
/obj/item/wrench/combat
name = "combat wrench"
desc = "It's like a normal wrench but edgier. Can be found on the battlefield."
icon_state = "wrench_combat"
inhand_icon_state = "wrench_combat"
belt_icon_state = "wrench_combat"
attack_verb_continuous = list("devastates", "brutalizes", "commits a war crime against", "obliterates", "humiliates")
attack_verb_simple = list("devastate", "brutalize", "commit a war crime against", "obliterate", "humiliate")
tool_behaviour = null
/obj/item/wrench/combat/Initialize(mapload)
. = ..()
AddComponent( \
/datum/component/transforming, \
force_on = 6, \
throwforce_on = 8, \
hitsound_on = hitsound, \
w_class_on = WEIGHT_CLASS_NORMAL, \
clumsy_check = FALSE, \
)
RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))
/*
* Signal proc for [COMSIG_TRANSFORMING_ON_TRANSFORM].
*
* Gives it wrench behaviors when active.
*/
/obj/item/wrench/combat/proc/on_transform(obj/item/source, mob/user, active)
SIGNAL_HANDLER
tool_behaviour = active ? TOOL_WRENCH : initial(tool_behaviour)
if(user)
balloon_alert(user, "[name] [active ? "active, woe!":"restrained"]")
playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 5, TRUE)
return COMPONENT_NO_DEFAULT_MESSAGE
/obj/item/wrench/bolter
name = "bolter wrench"
desc = "A wrench designed to grab into airlock's bolting system and raise it regardless of the airlock's power status."
icon_state = "bolter_wrench"
inhand_icon_state = "bolter_wrench"
w_class = WEIGHT_CLASS_NORMAL