From 813591ad15c2c3988b4ec1bc9736af3af953fc84 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sat, 15 Jun 2024 19:42:58 +0200 Subject: [PATCH] [MIRROR] Small playsound audit, particularly involving portal sounds (#28170) * Small playsound audit, particularly involving portal sounds * wew --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> --- code/__DEFINES/sound.dm | 4 ++ code/game/machinery/computer/camera.dm | 2 +- .../computer/prisoner/gulag_teleporter.dm | 2 +- .../machinery/computer/records/records.dm | 2 +- code/game/machinery/teleporter.dm | 57 +++++++------------ code/game/objects/effects/portals.dm | 17 +++--- code/game/objects/items/botpad_remote.dm | 4 +- code/game/objects/items/cards_ids.dm | 2 +- code/game/objects/items/cigs_lighters.dm | 2 +- .../objects/items/devices/traitordevices.dm | 2 +- code/game/objects/items/stacks/bscrystal.dm | 4 +- code/game/objects/items/storage/toolbox.dm | 2 +- code/game/objects/items/teleportation.dm | 22 +++---- .../structures/water_structures/toilet.dm | 2 +- code/game/sound.dm | 20 +++++++ code/modules/antagonists/cult/blood_magic.dm | 25 ++++---- code/modules/antagonists/cult/cult_comms.dm | 6 +- code/modules/antagonists/cult/cult_items.dm | 4 +- code/modules/antagonists/cult/runes.dm | 7 ++- .../traitor/objectives/eyesnatching.dm | 2 +- .../components/avatar_connection.dm | 2 +- code/modules/bitrunning/objects/netpod.dm | 2 +- code/modules/clothing/head/hat.dm | 2 +- code/modules/economy/holopay.dm | 2 +- code/modules/events/wormholes.dm | 16 ++++-- .../mining/equipment/wormhole_jaunter.dm | 1 - .../carbon/human/species_types/monkeys.dm | 10 +--- .../file_system/programs/secureye.dm | 2 +- code/modules/pai/pai.dm | 2 +- .../projectiles/guns/energy/special.dm | 1 + code/modules/projectiles/pins.dm | 2 +- .../projectile/special/wormhole.dm | 1 - .../chemistry/reagents/toxin_reagents.dm | 2 +- .../spell_types/self/sanguine_strike.dm | 2 +- code/modules/wiremod/shell/bot.dm | 2 +- code/modules/wiremod/shell/compact_remote.dm | 2 +- code/modules/wiremod/shell/controller.dm | 2 +- code/modules/wiremod/shell/gun.dm | 2 +- 38 files changed, 128 insertions(+), 115 deletions(-) diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 3f84955fe98..99bf5033e97 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -234,3 +234,7 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_SEAR "sear" #define SFX_REEL "reel" #define SFX_RATTLE "rattle" +#define SFX_PORTAL_ENTER "portal_enter" +#define SFX_PORTAL_CLOSE "portal_closed" +#define SFX_PORTAL_CREATED "portal_created" +#define SFX_SCREECH "screech" diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 5b27bfabf70..9fb0293fc54 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -116,7 +116,7 @@ if(action == "switch_camera") var/obj/machinery/camera/selected_camera = locate(params["camera"]) in GLOB.cameranet.cameras active_camera = selected_camera - playsound(src, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) if(isnull(active_camera)) return TRUE diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index 9f5ec0b3d64..4c2f4dacde3 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -149,7 +149,7 @@ prisoner.Paralyze(40) // small travel dizziness to_chat(prisoner, span_warning("The teleportation makes you a little dizzy.")) new /obj/effect/particle_effect/sparks(get_turf(prisoner)) - playsound(src, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(teleporter.locked) teleporter.locked = FALSE teleporter.toggle_open() diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm index f0b360ff1c8..e8d8beef854 100644 --- a/code/game/machinery/computer/records/records.dm +++ b/code/game/machinery/computer/records/records.dm @@ -100,7 +100,7 @@ if(!target) return FALSE - playsound(src, "sound/machines/terminal_button0[rand(1, 8)].ogg", 50, TRUE) + playsound(src, SFX_TERMINAL_TYPE, 50, TRUE) update_preview(user, params["assigned_view"], target) return TRUE diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 4a6151c94f4..23733344917 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -50,7 +50,6 @@ to_chat(AM, span_warning("You can't use this here!")) return if(is_ready()) - playsound(loc, "sound/effects/portal_travel.ogg", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) teleport(AM) /obj/machinery/teleport/hub/attackby(obj/item/W, mob/user, params) @@ -74,43 +73,25 @@ com.target_ref = null visible_message(span_alert("Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.")) return - if (ismovable(M)) - if(do_teleport(M, target, channel = TELEPORT_CHANNEL_BLUESPACE)) - use_energy(active_power_usage) - if(!calibrated && prob(30 - ((accuracy) * 10))) //oh dear a problem - if(ishuman(M))//don't remove people from the round randomly you jerks - var/mob/living/carbon/human/human = M - /* - SKYRAT EDIT CHANGE ORIGINAL - if(!(human.mob_biotypes & (MOB_ROBOTIC|MOB_MINERAL|MOB_UNDEAD|MOB_SPIRIT))) - var/datum/species/species_to_transform = /datum/species/fly - if(check_holidays(MOTH_WEEK)) - species_to_transform = /datum/species/moth - if(human.dna && human.dna.species.id != initial(species_to_transform.id)) - to_chat(M, span_hear("You hear a buzzing in your ears.")) - human.set_species(species_to_transform) - log_game("[human] ([key_name(human)]) was turned into a [initial(species_to_transform.name)] through [src].") - - */ //SKYRAT EDIT REMOVAL END - // SKYRAT EDIT ADDITION BEGIN - if(!HAS_TRAIT(human, TRAIT_NODISMEMBER)) - to_chat(human, span_danger("Your limbs lose molecular cohesion as you teleport!")) - var/list/bodyparts_dismember = list() - var/rad_mod = 0 - for(var/obj/item/bodypart/BP in human.bodyparts) - if(BP.body_zone == BODY_ZONE_CHEST || BP.body_zone== BODY_ZONE_HEAD) - continue - bodyparts_dismember.Add(BP) - for(var/i in 1 to 2) //Removing two bodyparts. - var/obj/item/bodypart/BP = pick(bodyparts_dismember) - if(!istype(BP)) - rad_mod += 300 //Bad snowflake, take more rads! - break - bodyparts_dismember.Remove(BP) //GC optimisation - BP.dismember() - qdel(BP) - //SKYRAT EDIT ADDITION END - calibrated = FALSE - return + if(!ismovable(M)) + return + var/turf/start_turf = get_turf(M) + if(!do_teleport(M, target, channel = TELEPORT_CHANNEL_BLUESPACE)) + return + playsound(loc, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + use_energy(active_power_usage) + new /obj/effect/temp_visual/portal_animation(start_turf, src, M) + if(!calibrated && ishuman(M) && prob(30 - ((accuracy) * 10))) //oh dear a problem + var/mob/living/carbon/human/human = M + if(!(human.mob_biotypes & (MOB_ROBOTIC|MOB_MINERAL|MOB_UNDEAD|MOB_SPIRIT))) + var/datum/species/species_to_transform = /datum/species/fly + if(check_holidays(MOTH_WEEK)) + species_to_transform = /datum/species/moth + if(human.dna && human.dna.species.id != initial(species_to_transform.id)) + to_chat(M, span_hear("You hear a buzzing in your ears.")) + human.set_species(species_to_transform) + human.log_message("was turned into a [initial(species_to_transform.name)] through [src].", LOG_GAME) + calibrated = FALSE /obj/machinery/teleport/hub/update_icon_state() icon_state = "[base_icon_state][panel_open ? "-o" : (is_ready() ? 1 : 0)]" diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index d3d12b28b5f..a7aabee6f4d 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -6,6 +6,8 @@ var/obj/effect/portal/P2 = new newtype(actual_destination, _lifespan, P1, TRUE, null) if(!istype(P1) || !istype(P2)) return + playsound(P1, SFX_PORTAL_CREATED, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(P2, SFX_PORTAL_CREATED, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) P1.link_portal(P2) P1.hardlinked = TRUE return list(P1, P2) @@ -69,7 +71,6 @@ /obj/effect/portal/attackby(obj/item/W, mob/user, params) if(user && Adjacent(user)) - playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) teleport(user) return TRUE @@ -79,7 +80,6 @@ return TRUE /obj/effect/portal/Bumped(atom/movable/bumper) - playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) teleport(bumper) /obj/effect/portal/attack_hand(mob/user, list/modifiers) @@ -87,13 +87,11 @@ if(.) return if(Adjacent(user)) - playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) teleport(user) /obj/effect/portal/attack_robot(mob/living/user) if(Adjacent(user)) - playsound(loc, "sound/effects/portal_travel.ogg" , 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) teleport(user) /obj/effect/portal/Initialize(mapload, _lifespan = 0, obj/effect/portal/_linked, automatic_link = FALSE, turf/hard_target_override) @@ -103,7 +101,7 @@ . = INITIALIZE_HINT_QDEL CRASH("Somebody fucked up.") if(_lifespan > 0) - QDEL_IN(src, _lifespan) + addtimer(src, PROC_REF(expire), _lifespan, TIMER_DELETE_ME) link_portal(_linked) hardlinked = automatic_link if(isturf(hard_target_override)) @@ -111,6 +109,10 @@ if(wibbles) apply_wibbly_filters(src) +/obj/effect/portal/proc/expire() + playsound(loc, SFX_PORTAL_CLOSE, 50, FALSE, SHORT_RANGE_SOUND_EXTRARANGE) + qdel(src) + /obj/effect/portal/singularity_pull() return @@ -126,7 +128,6 @@ QDEL_NULL(linked) else linked = null - playsound(loc, "sound/effects/portal_close.ogg" , 50, FALSE, SHORT_RANGE_SOUND_EXTRARANGE) return ..() /obj/effect/portal/attack_ghost(mob/dead/observer/O) @@ -152,6 +153,8 @@ var/obj/projectile/P = M P.ignore_source_check = TRUE new /obj/effect/temp_visual/portal_animation(start_turf, src, M) + playsound(start_turf, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(real_target, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) return TRUE return FALSE @@ -213,7 +216,7 @@ /obj/effect/portal/permanent/one_way/one_use/teleport(atom/movable/M, force = FALSE) . = ..() if (. && !isdead(M)) - qdel(src) + expire() /** * Animation used for transitioning atoms which are teleporting somewhere via a portal diff --git a/code/game/objects/items/botpad_remote.dm b/code/game/objects/items/botpad_remote.dm index ff77b088063..d2f2db3e1ac 100644 --- a/code/game/objects/items/botpad_remote.dm +++ b/code/game/objects/items/botpad_remote.dm @@ -16,12 +16,12 @@ return ..() /obj/item/botpad_remote/attack_self(mob/living/user) - playsound(src, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) try_launch(user) return /obj/item/botpad_remote/attack_self_secondary(mob/living/user) - playsound(src, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) if(connected_botpad) connected_botpad.recall(user) return diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index e584094f820..13d01731309 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -477,7 +477,7 @@ var/obj/structure/holopay/new_store = new(projection) if(new_store?.assign_card(projection, src)) COOLDOWN_START(src, last_holopay_projection, HOLOPAY_PROJECTION_INTERVAL) - playsound(projection, "sound/effects/empulse.ogg", 40, TRUE) + playsound(projection, 'sound/effects/empulse.ogg', 40, TRUE) my_store = new_store /** diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 0c058766da2..46516ec5fb9 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -844,7 +844,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /// Destroy the lighter when it's shot by a bullet /obj/item/lighter/proc/on_intercepted_bullet(mob/living/victim, obj/projectile/bullet) victim.visible_message(span_warning("\The [bullet] shatters on [victim]'s lighter!")) - playsound(victim, get_sfx(SFX_RICOCHET), 100, TRUE) + playsound(victim, SFX_RICOCHET, 100, TRUE) new /obj/effect/decal/cleanable/oil(get_turf(src)) do_sparks(1, TRUE, src) victim.dropItemToGround(src, force = TRUE, silent = TRUE) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index b87bbda2841..0dc69cb9c81 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -389,7 +389,7 @@ effective or pretty fucking useless. COMBAT_MESSAGE_RANGE, ) - playsound(src, "sound/items/drill_use.ogg", 80, TRUE, -1) + playsound(src, 'sound/items/drill_use.ogg', 80, TRUE, -1) var/obj/machinery/porta_turret/syndicate/toolbox/turret = new(get_turf(loc)) set_faction(turret, user) turret.toolbox = src diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 641dce6cf4c..410724862f3 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -33,7 +33,7 @@ /obj/item/stack/ore/bluespace_crystal/attack_self(mob/user) user.visible_message(span_warning("[user] crushes [src]!"), span_danger("You crush [src]!")) new /obj/effect/particle_effect/sparks(loc) - playsound(loc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(loc, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) blink_mob(user) use(1) @@ -45,7 +45,7 @@ visible_message(span_notice("[src] fizzles and disappears upon impact!")) var/turf/T = get_turf(hit_atom) new /obj/effect/particle_effect/sparks(T) - playsound(loc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(loc, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(isliving(hit_atom)) blink_mob(hit_atom) use(1) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 5237d00b480..77f0f2cb8b2 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -482,7 +482,7 @@ playsound(src, 'sound/items/click.ogg', 25, TRUE) return TRUE to_chat(user, span_warning("You put your hand on the hand scanner, and it rejects it with an angry chimpanzee screech!")) - playsound(src, "sound/creatures/monkey/monkey_screech_[rand(1,7)].ogg", 75, TRUE) + playsound(src, SFX_SCREECH, 75, TRUE) return FALSE /obj/item/storage/toolbox/guncase/monkeycase/PopulateContents() diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index d224c68dfa2..6d50f36028e 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -136,9 +136,9 @@ /obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user) if(is_parent_of_portal(target)) - qdel(target) - to_chat(user, span_notice("You dispel [target] with \the [src]!")) - playsound(loc, "sound/effects/portal_close.ogg", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + to_chat(user, span_notice("You dispel [target] with [src]!")) + var/obj/effect/portal/portal = target + portal.expire() return TRUE return FALSE @@ -259,7 +259,7 @@ var/list/obj/effect/portal/created = create_portal_pair(get_turf(user), get_teleport_turf(get_turf(teleport_target)), 300, 1, null) if(LAZYLEN(created) != 2) return - playsound(loc, pick("sound/effects/portal_open_1.ogg", "sound/effects/portal_open_2.ogg", "sound/effects/portal_open_3.ogg" ), 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + var/obj/effect/portal/portal1 = created[1] var/obj/effect/portal/portal2 = created[2] @@ -433,9 +433,9 @@ new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(current_location) new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(destination) make_bloods(current_location, destination, user) - playsound(current_location, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(current_location, SFX_PORTAL_ENTER, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) playsound(destination, 'sound/effects/phasein.ogg', 25, 1, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(destination, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(destination, SFX_PORTAL_ENTER, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) /obj/item/syndicate_teleporter/proc/malfunctioning(mob/guy_teleporting, turf/current_location) var/area/current_area = get_area(current_location) @@ -470,9 +470,9 @@ balloon_alert(user, "emergency teleport triggered!") if (!HAS_TRAIT(user, TRAIT_NOBLOOD)) make_bloods(mobloc, emergency_destination, user) - playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mobloc, SFX_PORTAL_ENTER, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) playsound(emergency_destination, 'sound/effects/phasein.ogg', 25, 1, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(emergency_destination, 'sound/effects/portal_travel.ogg', 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(emergency_destination, SFX_PORTAL_ENTER, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) else //We tried to save. We failed. Death time. get_fragged(user, destination) @@ -482,9 +482,9 @@ victim.forceMove(destination) new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(mobloc) new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(destination) - playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(destination, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(destination, "sound/magic/disintegrate.ogg", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mobloc, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(destination, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(destination, 'sound/magic/disintegrate.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(!not_holding_tele) to_chat(victim, span_userdanger("You teleport into [destination], [src] tries to save you, but...")) else diff --git a/code/game/objects/structures/water_structures/toilet.dm b/code/game/objects/structures/water_structures/toilet.dm index ab6ebc38fad..7a64404a238 100644 --- a/code/game/objects/structures/water_structures/toilet.dm +++ b/code/game/objects/structures/water_structures/toilet.dm @@ -162,7 +162,7 @@ if(flushing) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN flushing = TRUE - playsound(src, "sound/machines/toilet_flush.ogg", cover_open ? 40 : 20, TRUE) + playsound(src, 'sound/machines/toilet_flush.ogg', cover_open ? 40 : 20, TRUE) if(cover_open && (dir & SOUTH)) update_appearance(UPDATE_OVERLAYS) flick_overlay_view(mutable_appearance(icon, "[base_icon_state]-water-flick"), 3 SECONDS) diff --git a/code/game/sound.dm b/code/game/sound.dm index 83931d213e6..01eb5d66ef4 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -453,4 +453,24 @@ 'sound/items/rattle2.ogg', 'sound/items/rattle3.ogg', ) + if(SFX_PORTAL_CLOSE) + soundin = 'sound/effects/portal_close.ogg' + if(SFX_PORTAL_ENTER) + soundin = 'sound/effects/portal_travel.ogg' + if(SFX_PORTAL_CREATED) + soundin = pick( + 'sound/effects/portal_open_1.ogg', + 'sound/effects/portal_open_2.ogg', + 'sound/effects/portal_open_3.ogg', + ) + if(SFX_SCREECH) + soundin = pick( + 'sound/creatures/monkey/monkey_screech_1.ogg', + 'sound/creatures/monkey/monkey_screech_2.ogg', + 'sound/creatures/monkey/monkey_screech_3.ogg', + 'sound/creatures/monkey/monkey_screech_4.ogg', + 'sound/creatures/monkey/monkey_screech_5.ogg', + 'sound/creatures/monkey/monkey_screech_6.ogg', + 'sound/creatures/monkey/monkey_screech_7.ogg', + ) return soundin diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 2b170b88a68..6472ef9cca1 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -379,33 +379,36 @@ cast_spell(user, user) /obj/item/melee/blood_magic/attack(mob/living/M, mob/living/carbon/user) - if(!iscarbon(user) || !IS_CULTIST(user)) - uses = 0 - qdel(src) - return log_combat(user, M, "used a cult spell on", source.name, "") SSblackbox.record_feedback("tally", "cult_spell_invoke", 1, "[name]") M.lastattacker = user.real_name M.lastattackerckey = user.ckey + user.do_attack_animation(M) cast_spell(M, user) -/obj/item/melee/blood_magic/attack_atom(atom/attacked_atom, mob/living/user, params) +/obj/item/melee/blood_magic/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!iscarbon(user) || !IS_CULTIST(user)) uses = 0 qdel(src) - return - log_combat(user, attacked_atom, "used a cult spell on", source.name, "") + return ITEM_INTERACT_BLOCKING + + if(isliving(interacting_with)) + return ITEM_INTERACT_SKIP_TO_ATTACK + + user.do_attack_animation(interacting_with) + log_combat(user, interacting_with, "used a cult spell on", source.name, "") SSblackbox.record_feedback("tally", "cult_spell_invoke", 1, "[name]") - cast_spell(attacked_atom, user) + cast_spell(interacting_with, user) + return ITEM_INTERACT_SUCCESS /obj/item/melee/blood_magic/proc/cast_spell(atom/target, mob/living/carbon/user) if(invocation) user.whisper(invocation, language = /datum/language/common) if(health_cost) if(user.active_hand_index == 1) - user.apply_damage(health_cost, BRUTE, BODY_ZONE_L_ARM) + user.apply_damage(health_cost, BRUTE, BODY_ZONE_L_ARM, wound_bonus = CANT_WOUND) else - user.apply_damage(health_cost, BRUTE, BODY_ZONE_R_ARM) + user.apply_damage(health_cost, BRUTE, BODY_ZONE_R_ARM, wound_bonus = CANT_WOUND) if(uses <= 0) qdel(src) else if(source) @@ -513,6 +516,8 @@ null, span_hear("You hear a boom."), ) + playsound(origin, SFX_PORTAL_ENTER, 50, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(dest, SFX_PORTAL_ENTER, 50, TRUE, SILENCED_SOUND_EXTRARANGE) return ..() //Shackles diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 586cb44172e..a4f3b291f74 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -236,13 +236,13 @@ switch(i) if(1) new /obj/effect/temp_visual/cult/sparks(mobloc, B.current.dir) - playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mobloc, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(2) new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, B.current.dir) - playsound(mobloc, 'sound/effects/portal_travel.ogg', 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mobloc, SFX_PORTAL_ENTER, 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(3) new /obj/effect/temp_visual/dir_setting/cult/phase(mobloc, B.current.dir) - playsound(mobloc, 'sound/effects/portal_travel.ogg', 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mobloc, SFX_PORTAL_ENTER, 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(4) playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, TRUE) if(B.current != owner) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 40daec644c6..c9512d64e6a 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -620,9 +620,9 @@ Striking a noncultist, however, will tear their flesh."} new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, user_cultist.dir) new /obj/effect/temp_visual/dir_setting/cult/phase(destination, user_cultist.dir) - playsound(mobloc, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mobloc, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) playsound(destination, 'sound/effects/phasein.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(destination, 'sound/effects/portal_travel.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(destination, SFX_PORTAL_ENTER, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) /obj/item/flashlight/flare/culttorch name = "void torch" diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 656db40922e..926981bb096 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -526,6 +526,8 @@ structure_check() searches for nearby cultist structures required for the invoca movesuccess = TRUE if(movedsomething) ..() + playsound(src, SFX_PORTAL_ENTER, 50, TRUE) + playsound(target, SFX_PORTAL_ENTER, 50, TRUE) if(moveuserlater) if(do_teleport(user, target, channel = TELEPORT_CHANNEL_CULT)) movesuccess = TRUE @@ -548,7 +550,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/teleport/proc/handle_portal(portal_type, turf/origin) var/turf/T = get_turf(src) close_portal() // To avoid stacking descriptions/animations - playsound(T, 'sound/effects/portal_travel.ogg', 100, TRUE, 14) + playsound(T, SFX_PORTAL_CREATED, 100, TRUE, 14) inner_portal = new /obj/effect/temp_visual/cult/portal(T) if(portal_type == "space") set_light_color(color) @@ -862,12 +864,15 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) "Overwhelming vertigo consumes you as you are hurled through the air!") ..() visible_message(span_warning("A foggy shape materializes atop [src] and solidifies into [cultist_to_summon]!")) + var/turf/old_turf = get_turf(cultist_to_summon) if(!do_teleport(cultist_to_summon, get_turf(src))) to_chat(user, span_warning("The summoning has completely failed for [cultist_to_summon]!")) fail_logmsg += "target failed criteria to teleport." //catch-all term, just means they failed do_teleport somehow. The most common reasons why someone should fail to be summoned already have verbose messages. log_game(fail_logmsg) fail_invoke() return + playsound(src, SFX_PORTAL_ENTER, 100, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(old_turf, SFX_PORTAL_ENTER, 100, TRUE, SILENCED_SOUND_EXTRARANGE) qdel(src) //Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby diff --git a/code/modules/antagonists/traitor/objectives/eyesnatching.dm b/code/modules/antagonists/traitor/objectives/eyesnatching.dm index 5773c4e90e0..31dec4e812a 100644 --- a/code/modules/antagonists/traitor/objectives/eyesnatching.dm +++ b/code/modules/antagonists/traitor/objectives/eyesnatching.dm @@ -190,7 +190,7 @@ ) eyeballies.apply_organ_damage(eyeballies.maxHealth) target.emote("scream") - playsound(target, "sound/effects/wounds/crackandbleed.ogg", 100) + playsound(target, 'sound/effects/wounds/crackandbleed.ogg', 100) log_combat(user, target, "cracked the skull of (eye snatching)", src) if(!do_after(user, eye_snatch_enthusiasm, target = target, extra_checks = CALLBACK(src, PROC_REF(eyeballs_exist), eyeballies, head, target))) diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm index 20d4aa94b4c..5803efb0854 100644 --- a/code/modules/bitrunning/components/avatar_connection.dm +++ b/code/modules/bitrunning/components/avatar_connection.dm @@ -60,7 +60,7 @@ var/datum/action/avatar_domain_info/action = new(help_datum) action.Grant(avatar) - avatar.playsound_local(avatar, "sound/magic/blink.ogg", 25, TRUE) + avatar.playsound_local(avatar, 'sound/magic/blink.ogg', 25, TRUE) avatar.set_static_vision(2 SECONDS) avatar.set_temp_blindness(1 SECONDS) diff --git a/code/modules/bitrunning/objects/netpod.dm b/code/modules/bitrunning/objects/netpod.dm index cf8be61f62f..98bc96231b3 100644 --- a/code/modules/bitrunning/objects/netpod.dm +++ b/code/modules/bitrunning/objects/netpod.dm @@ -263,7 +263,7 @@ open_machine() return - mob_occupant.playsound_local(src, "sound/magic/blink.ogg", 25, TRUE) + mob_occupant.playsound_local(src, 'sound/magic/blink.ogg', 25, TRUE) mob_occupant.set_static_vision(2 SECONDS) mob_occupant.set_temp_blindness(1 SECONDS) mob_occupant.Paralyze(2 SECONDS) diff --git a/code/modules/clothing/head/hat.dm b/code/modules/clothing/head/hat.dm index c91fdbaf923..eeb7f1653f3 100644 --- a/code/modules/clothing/head/hat.dm +++ b/code/modules/clothing/head/hat.dm @@ -116,7 +116,7 @@ victim.visible_message(span_warning("\The [bullet] sends [victim]'s hat flying!")) victim.dropItemToGround(src, force = TRUE, silent = TRUE) throw_at(get_edge_target_turf(loc, pick(GLOB.alldirs)), range = 3, speed = 3) - playsound(victim, get_sfx(SFX_RICOCHET), 100, TRUE) + playsound(victim, SFX_RICOCHET, 100, TRUE) /datum/armor/head_cowboy melee = 5 diff --git a/code/modules/economy/holopay.dm b/code/modules/economy/holopay.dm index 15247d19d57..54f6be3666a 100644 --- a/code/modules/economy/holopay.dm +++ b/code/modules/economy/holopay.dm @@ -238,7 +238,7 @@ * Deletes the holopay thereafter. */ /obj/structure/holopay/proc/dissipate() - playsound(loc, "sound/effects/empulse.ogg", 40, TRUE) + playsound(loc, 'sound/effects/empulse.ogg', 40, TRUE) visible_message(span_notice("The pay stand vanishes.")) qdel(src) diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 7dcaf0861c3..83028d129c4 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -25,23 +25,24 @@ GLOBAL_LIST_EMPTY(all_wormholes) // So we can pick wormholes to teleport to end_when = rand(40, 80) /datum/round_event/wormholes/start() - for(var/turf/open/floor/T in world) - if(is_station_level(T.z)) - pick_turfs += T + for(var/turf/open/floor/valid in GLOB.station_turfs) + pick_turfs += valid for(var/i in 1 to number_of_wormholes) var/turf/T = pick(pick_turfs) wormholes += new /obj/effect/portal/wormhole(T, 0, null, FALSE) + playsound(T, SFX_PORTAL_CREATED, 20, TRUE, SILENCED_SOUND_EXTRARANGE) // much much quieter /datum/round_event/wormholes/announce(fake) priority_announce("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert", ANNOUNCER_SPANOMALIES) /datum/round_event/wormholes/tick() if(activeFor % shift_frequency == 0) - for(var/obj/effect/portal/wormhole/O in wormholes) + for(var/obj/effect/portal/wormhole/O as anything in wormholes) var/turf/T = pick(pick_turfs) - if(T) + if(isopenturf(T)) O.forceMove(T) + playsound(T, SFX_PORTAL_CREATED, 20, TRUE, SILENCED_SOUND_EXTRARANGE) /datum/round_event/wormholes/end() QDEL_LIST(wormholes) @@ -78,4 +79,7 @@ GLOBAL_LIST_EMPTY(all_wormholes) // So we can pick wormholes to teleport to hard_target = P.loc if(!hard_target) return - do_teleport(M, hard_target, 1, null, null, channel = TELEPORT_CHANNEL_WORMHOLE) ///You will appear adjacent to the beacon + var/turf/start_turf = get_turf(M) + if(do_teleport(M, hard_target, 1, null, null, channel = TELEPORT_CHANNEL_WORMHOLE)) ///You will appear adjacent to the beacon + playsound(start_turf, SFX_PORTAL_ENTER, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(hard_target, SFX_PORTAL_ENTER, 50, 1, SHORT_RANGE_SOUND_EXTRARANGE) diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index d5b7bb7b529..eb94f68a1f9 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -61,7 +61,6 @@ else if(adjacent) try_move_adjacent(tunnel) - playsound(src, "sound/effects/portal_travel.ogg",50,TRUE) qdel(src) return FALSE // used for chasm code diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm index cc2b5fd6093..42f14e53dad 100644 --- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm +++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm @@ -61,15 +61,7 @@ return ..() /datum/species/monkey/get_scream_sound(mob/living/carbon/human/monkey) - return pick( - 'sound/creatures/monkey/monkey_screech_1.ogg', - 'sound/creatures/monkey/monkey_screech_2.ogg', - 'sound/creatures/monkey/monkey_screech_3.ogg', - 'sound/creatures/monkey/monkey_screech_4.ogg', - 'sound/creatures/monkey/monkey_screech_5.ogg', - 'sound/creatures/monkey/monkey_screech_6.ogg', - 'sound/creatures/monkey/monkey_screech_7.ogg', - ) + return get_sfx(SFX_SCREECH) /datum/species/monkey/get_physical_attributes() return "Monkeys are slippery, can crawl into vents, and are more dextrous than humans.. but only when stealing things. \ diff --git a/code/modules/modular_computers/file_system/programs/secureye.dm b/code/modules/modular_computers/file_system/programs/secureye.dm index aa3ed0e5828..a754c37d811 100644 --- a/code/modules/modular_computers/file_system/programs/secureye.dm +++ b/code/modules/modular_computers/file_system/programs/secureye.dm @@ -150,7 +150,7 @@ else camera_ref = null if(!spying) - playsound(computer, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(computer, SFX_TERMINAL_TYPE, 25, FALSE) if(isnull(camera_ref)) return TRUE if(internal_tracker) diff --git a/code/modules/pai/pai.dm b/code/modules/pai/pai.dm index 356dc429d76..caf10606a02 100644 --- a/code/modules/pai/pai.dm +++ b/code/modules/pai/pai.dm @@ -452,7 +452,7 @@ to_chat(src, span_userdanger("Your mental faculties leave you.")) to_chat(src, span_rose("oblivion... ")) balloon_alert(user, "personality wiped") - playsound(src, "sound/machines/buzz-two.ogg", 30, TRUE) + playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) qdel(src) return TRUE diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index d2c4de62df5..5082bd02310 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -282,6 +282,7 @@ qdel(p_blue) p_blue = new_portal crosslink() + playsound(new_portal, SFX_PORTAL_CREATED, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) /obj/item/gun/energy/wormhole_projector/core_inserted firing_core = TRUE diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index 0c4dc094159..7ee44a10e7d 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -381,7 +381,7 @@ /obj/item/firing_pin/monkey/pin_auth(mob/living/user) if(!is_simian(user)) - playsound(get_turf(src), "sound/creatures/monkey/monkey_screech_[rand(1,7)].ogg", 75, TRUE) + playsound(src, SFX_SCREECH, 75, TRUE) return FALSE return TRUE diff --git a/code/modules/projectiles/projectile/special/wormhole.dm b/code/modules/projectiles/projectile/special/wormhole.dm index c3a5159f8aa..dbcb6f4cf8b 100644 --- a/code/modules/projectiles/projectile/special/wormhole.dm +++ b/code/modules/projectiles/projectile/special/wormhole.dm @@ -29,5 +29,4 @@ return BULLET_ACT_BLOCK . = ..() - playsound(loc, pick("sound/effects/portal_open1.ogg" , "sound/effects/portal_open2.ogg" , "sound/effects/portal_open3.ogg"), 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) projector.create_portal(src, get_turf(src)) diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 15508aa98ee..6695b0b9db1 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -1201,7 +1201,7 @@ var/selected_part = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) //God help you if the same limb gets picked twice quickly. var/obj/item/bodypart/BP = affected_mob.get_bodypart(selected_part) if(BP) - playsound(affected_mob, get_sfx(SFX_DESECRATION), 50, TRUE, -1) + playsound(affected_mob, SFX_DESECRATION, 50, TRUE, -1) affected_mob.visible_message(span_warning("[affected_mob]'s bones hurt too much!!"), span_danger("Your bones hurt too much!!")) affected_mob.say("OOF!!", forced = /datum/reagent/toxin/bonehurtingjuice) if(BP.receive_damage(brute = 20 * REM * seconds_per_tick, burn = 0, blocked = 200, updating_health = FALSE, wound_bonus = rand(30, 130))) diff --git a/code/modules/spells/spell_types/self/sanguine_strike.dm b/code/modules/spells/spell_types/self/sanguine_strike.dm index 7afa3deb8d9..4c819a69690 100644 --- a/code/modules/spells/spell_types/self/sanguine_strike.dm +++ b/code/modules/spells/spell_types/self/sanguine_strike.dm @@ -66,7 +66,7 @@ var/mob/living/living_target = target if(living_target.blood_volume < BLOOD_VOLUME_SURVIVE) return - playsound(target, "sound/effects/wounds/crackandbleed.ogg", 100) + playsound(target, 'sound/effects/wounds/crackandbleed.ogg', 100) playsound(target, 'sound/magic/charge.ogg', 100) var/attack_direction = get_dir(user, living_target) if(iscarbon(living_target)) diff --git a/code/modules/wiremod/shell/bot.dm b/code/modules/wiremod/shell/bot.dm index 533c654e787..3117f13b9f8 100644 --- a/code/modules/wiremod/shell/bot.dm +++ b/code/modules/wiremod/shell/bot.dm @@ -43,6 +43,6 @@ /obj/item/circuit_component/bot/proc/on_attack_hand(atom/source, mob/user) SIGNAL_HANDLER source.balloon_alert(user, "pushed button") - playsound(source, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(source, SFX_TERMINAL_TYPE, 25, FALSE) entity.set_output(user) signal.set_output(COMPONENT_SIGNAL) diff --git a/code/modules/wiremod/shell/compact_remote.dm b/code/modules/wiremod/shell/compact_remote.dm index 3336be06ddb..0697a449dbe 100644 --- a/code/modules/wiremod/shell/compact_remote.dm +++ b/code/modules/wiremod/shell/compact_remote.dm @@ -45,6 +45,6 @@ /obj/item/circuit_component/compact_remote/proc/send_trigger(atom/source, mob/user) SIGNAL_HANDLER source.balloon_alert(user, "clicked primary button") - playsound(source, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(source, SFX_TERMINAL_TYPE, 25, FALSE) entity.set_output(user) signal.set_output(COMPONENT_SIGNAL) diff --git a/code/modules/wiremod/shell/controller.dm b/code/modules/wiremod/shell/controller.dm index b46dad3673f..9afe0303be8 100644 --- a/code/modules/wiremod/shell/controller.dm +++ b/code/modules/wiremod/shell/controller.dm @@ -53,7 +53,7 @@ /obj/item/circuit_component/controller/proc/handle_trigger(atom/source, user, port_name, datum/port/output/port_signal) source.balloon_alert(user, "clicked [port_name] button") - playsound(source, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(source, SFX_TERMINAL_TYPE, 25, FALSE) entity.set_output(user) port_signal.set_output(COMPONENT_SIGNAL) diff --git a/code/modules/wiremod/shell/gun.dm b/code/modules/wiremod/shell/gun.dm index 283815fb334..8e9a3d987fd 100644 --- a/code/modules/wiremod/shell/gun.dm +++ b/code/modules/wiremod/shell/gun.dm @@ -68,7 +68,7 @@ /obj/item/circuit_component/wiremod_gun/proc/handle_shot(atom/source, mob/firer, atom/target, angle) SIGNAL_HANDLER - playsound(source, get_sfx(SFX_TERMINAL_TYPE), 25, FALSE) + playsound(source, SFX_TERMINAL_TYPE, 25, FALSE) shooter.set_output(firer) shot.set_output(target) signal.set_output(COMPONENT_SIGNAL)