mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-20 14:45:05 +00:00
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑
126 lines
4.1 KiB
Plaintext
126 lines
4.1 KiB
Plaintext
/// A cable that can connect integrated circuits to anything with a USB port, such as computers and machines.
|
|
/obj/item/usb_cable
|
|
name = "usb cable"
|
|
desc = "A cable that can connect integrated circuits to anything with a USB port, such as computers and machines."
|
|
icon = 'icons/obj/science/circuits.dmi'
|
|
icon_state = "usb_cable"
|
|
inhand_icon_state = "coil_yellow"
|
|
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
|
base_icon_state = "coil"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.75)
|
|
|
|
/// The currently connected circuit
|
|
var/obj/item/integrated_circuit/attached_circuit
|
|
|
|
/obj/item/usb_cable/Destroy()
|
|
attached_circuit = null
|
|
STOP_PROCESSING(SSobj, src)
|
|
return ..()
|
|
|
|
/obj/item/usb_cable/Initialize(mapload)
|
|
. = ..()
|
|
RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
|
|
|
|
/obj/item/usb_cable/examine(mob/user)
|
|
. = ..()
|
|
|
|
if (!isnull(attached_circuit))
|
|
. += span_notice("It is attached to [attached_circuit.shell || attached_circuit].")
|
|
|
|
// Look, I'm not happy about this either, but moving an object doesn't call Moved if it's inside something else.
|
|
// There's good reason for this, but there's no element or similar yet to track it as far as I know.
|
|
// SSobj runs infrequently, this is only ran while there's an attached circuit, its performance cost is negligible.
|
|
/obj/item/usb_cable/process(seconds_per_tick)
|
|
if (!check_in_range())
|
|
return PROCESS_KILL
|
|
|
|
/obj/item/usb_cable/pre_attack(atom/target, mob/living/user, params)
|
|
. = ..()
|
|
if (.)
|
|
return
|
|
|
|
if (prob(1))
|
|
balloon_alert(user, "wrong way, god damnit")
|
|
return TRUE
|
|
|
|
var/signal_result = SEND_SIGNAL(target, COMSIG_ATOM_USB_CABLE_TRY_ATTACH, src, user)
|
|
|
|
var/last_attached_circuit = attached_circuit
|
|
if (signal_result & COMSIG_USB_CABLE_CONNECTED_TO_CIRCUIT)
|
|
if (isnull(attached_circuit))
|
|
CRASH("Producers of COMSIG_USB_CABLE_CONNECTED_TO_CIRCUIT must set attached_circuit")
|
|
balloon_alert(user, "connected to circuit\nconnect to a port")
|
|
|
|
playsound(src, 'sound/machines/pda_button/pda_button1.ogg', 20, TRUE)
|
|
|
|
if (last_attached_circuit != attached_circuit)
|
|
if (!isnull(last_attached_circuit))
|
|
unregister_circuit_signals(last_attached_circuit)
|
|
register_circuit_signals()
|
|
|
|
START_PROCESSING(SSobj, src)
|
|
|
|
return TRUE
|
|
|
|
if (signal_result & COMSIG_USB_CABLE_ATTACHED)
|
|
// Short messages are better to read
|
|
var/connection_description = "port"
|
|
if (istype(target, /obj/machinery/computer))
|
|
connection_description = "computer"
|
|
else if (ismachinery(target))
|
|
connection_description = "machine"
|
|
|
|
balloon_alert(user, "connected to [connection_description]")
|
|
playsound(src, 'sound/items/tools/screwdriver2.ogg', 20, TRUE)
|
|
|
|
return TRUE
|
|
|
|
if (signal_result & COMSIG_CANCEL_USB_CABLE_ATTACK)
|
|
return TRUE
|
|
|
|
return FALSE
|
|
|
|
/obj/item/usb_cable/suicide_act(mob/living/user)
|
|
user.visible_message(span_suicide("[user] is wrapping [src] around [user.p_their()] neck! It looks like [user.p_theyre()] trying to commit suicide!"))
|
|
return OXYLOSS
|
|
|
|
/obj/item/usb_cable/proc/register_circuit_signals()
|
|
RegisterSignal(attached_circuit, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
|
|
RegisterSignal(attached_circuit, COMSIG_QDELETING, PROC_REF(on_circuit_qdeling))
|
|
RegisterSignal(attached_circuit.shell, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
|
|
|
|
/obj/item/usb_cable/proc/unregister_circuit_signals(obj/item/integrated_circuit/old_circuit)
|
|
UnregisterSignal(attached_circuit, list(
|
|
COMSIG_MOVABLE_MOVED,
|
|
COMSIG_QDELETING,
|
|
))
|
|
|
|
UnregisterSignal(attached_circuit.shell, COMSIG_MOVABLE_MOVED)
|
|
|
|
/obj/item/usb_cable/proc/on_moved()
|
|
SIGNAL_HANDLER
|
|
|
|
check_in_range()
|
|
|
|
/obj/item/usb_cable/proc/check_in_range()
|
|
if (isnull(attached_circuit))
|
|
STOP_PROCESSING(SSobj, src)
|
|
return FALSE
|
|
|
|
if (!IN_GIVEN_RANGE(attached_circuit, src, USB_CABLE_MAX_RANGE))
|
|
balloon_alert_to_viewers("detached, too far away")
|
|
unregister_circuit_signals(attached_circuit)
|
|
attached_circuit = null
|
|
STOP_PROCESSING(SSobj, src)
|
|
return FALSE
|
|
|
|
return TRUE
|
|
|
|
/obj/item/usb_cable/proc/on_circuit_qdeling()
|
|
SIGNAL_HANDLER
|
|
|
|
attached_circuit = null
|
|
STOP_PROCESSING(SSobj, src)
|