diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index d0c4c16784f8c..6e7f97cf53035 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -76,7 +76,7 @@ jobs: path: tools/icon_cutter/cache key: ${{ runner.os }}-cutter-${{ hashFiles('dependencies.sh') }} - name: Install OpenDream - uses: robinraju/release-downloader@v1.9 + uses: robinraju/release-downloader@v1.11 with: repository: "OpenDreamProject/OpenDream" tag: "latest" diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index b3eeeb3fb1e56..aaf01306a806e 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -23,7 +23,7 @@ jobs: - name: "Setup python" if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: '3.x' diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 2ffef72218384..40710a9044b74 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -27,10 +27,9 @@ jobs: touch dmdoc/.nojekyll echo codedocs.tgstation13.org > dmdoc/CNAME - name: Deploy - uses: JamesIves/github-pages-deploy-action@3.7.1 + uses: JamesIves/github-pages-deploy-action@v4.6.4 with: - BRANCH: gh-pages - CLEAN: true - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SINGLE_COMMIT: true - FOLDER: dmdoc + branch: gh-pages + clean: true + single-commit: true + folder: dmdoc diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 241db03f6e82d..1b268802227af 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/stale@v4 + - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 7 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself" diff --git a/.github/workflows/tgs_test.yml b/.github/workflows/tgs_test.yml index bd538307aa3f3..37062e440735a 100644 --- a/.github/workflows/tgs_test.yml +++ b/.github/workflows/tgs_test.yml @@ -57,7 +57,7 @@ jobs: - 5000:5000 #Can't use env here for some reason steps: - name: Setup dotnet - uses: actions/setup-dotnet@v2 + uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm index a2b3d227d5db2..7b7cec2c72a05 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm @@ -66,7 +66,7 @@ /obj/effect/step_trigger/sound_effect{ happens_once = 1; name = "\proper a grave mistake"; - sound = 'sound/hallucinations/i_see_you1.ogg'; + sound = 'sound/effects/hallucinations/i_see_you1.ogg'; triggerer_only = 1 }, /obj/effect/step_trigger/message{ diff --git a/_maps/RandomZLevels/museum.dmm b/_maps/RandomZLevels/museum.dmm index 88bf95847b9a4..d9c7d0aa705a6 100644 --- a/_maps/RandomZLevels/museum.dmm +++ b/_maps/RandomZLevels/museum.dmm @@ -1235,7 +1235,7 @@ }, /obj/item/reagent_containers/cup/glass/coffee, /obj/item/paper/fluff/scrambled_pass{ - puzzle_id = "museum_r_wing_puzzle" + puzzle_id = "museum_right_wing" }, /turf/open/floor/iron/dark, /area/awaymission/museum) @@ -34926,7 +34926,7 @@ FK FK FK FK -FO +FK FK FK FK @@ -37490,7 +37490,7 @@ GQ FK FK vb -FK +FO FK FK PP diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 920c3c93f8d55..70090fc32fcee 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -10266,6 +10266,7 @@ /obj/item/food/popsicle/creamsicle_orange, /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, /turf/open/floor/iron/kitchen_coldroom, /area/station/medical/coldroom) "dLq" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 59c71329b21fb..096cf003ac4eb 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -1631,7 +1631,7 @@ /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "aAk" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box, @@ -2135,7 +2135,7 @@ /obj/structure/reagent_dispensers/cooking_oil, /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "aJz" = ( /obj/structure/railing, /obj/structure/table, @@ -4200,7 +4200,7 @@ "byb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "byf" = ( /obj/structure/closet/emcloset/anchored, /turf/open/floor/plating, @@ -8267,7 +8267,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /mob/living/basic/goat/pete, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "cYP" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -10056,7 +10056,7 @@ "dCh" = ( /obj/machinery/gibber, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "dCi" = ( /obj/structure/table/reinforced/rglass, /obj/item/storage/backpack/duffelbag/sec, @@ -16256,7 +16256,7 @@ "fNy" = ( /obj/structure/closet/secure_closet/freezer/meat, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "fNB" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 1 @@ -36207,6 +36207,9 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"mMT" = ( +/turf/closed/wall, +/area/station/service/kitchen/coldroom) "mNl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, @@ -37574,6 +37577,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"nlz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "nlI" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -40888,8 +40898,10 @@ /area/station/maintenance/department/science) "oBU" = ( /obj/machinery/food_cart, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "oCb" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 1 @@ -44775,7 +44787,7 @@ /obj/structure/kitchenspike, /obj/machinery/light/directional/west, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "pTt" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -47955,6 +47967,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"rbt" = ( +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "rbw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, @@ -50245,7 +50267,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "rNJ" = ( /turf/closed/wall, /area/station/maintenance/solars/port/fore) @@ -53736,7 +53758,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "sUM" = ( /obj/item/radio/intercom/directional/west, /turf/open/openspace, @@ -55255,7 +55277,7 @@ /obj/structure/kitchenspike, /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "txo" = ( /obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/engine, @@ -59791,7 +59813,7 @@ "uZg" = ( /obj/machinery/icecream_vat, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "uZx" = ( /turf/closed/wall, /area/station/hallway/primary/central) @@ -93333,10 +93355,10 @@ bIi acc jrX gGm -enu -enu -enu -enu +mMT +mMT +mMT +mMT edv eBb hRB @@ -93589,12 +93611,12 @@ kYl sUD dGc fDN -enu -enu +mMT +mMT twW pTn -enu -enu +mMT +mMT hwk hRB jkF @@ -93846,12 +93868,12 @@ heh jUd acc fDN -enu +mMT uZg byb rNs -rNs -sUI +nlz +rbt cXL enu tGt @@ -94103,12 +94125,12 @@ acc acc acc fDN -enu +mMT oBU aAg cYH aJv -enu +mMT drJ shG vMb @@ -94360,12 +94382,12 @@ acB jmn atX mUW -enu +mMT fNy rNs rNs dCh -enu +mMT alP enu nii @@ -94617,12 +94639,12 @@ gGS bcu bcu pPy -enu -enu +mMT +mMT sUI -enu -enu -enu +mMT +mMT +mMT duS pQM pYu diff --git a/_maps/shuttles/whiteship_kilo.dmm b/_maps/shuttles/whiteship_kilo.dmm index 3dda9d34da2a1..0192f6aa1188a 100644 --- a/_maps/shuttles/whiteship_kilo.dmm +++ b/_maps/shuttles/whiteship_kilo.dmm @@ -399,14 +399,7 @@ /turf/open/floor/plating, /area/shuttle/abandoned/cargo) "ry" = ( -/obj/machinery/porta_turret/centcom_shuttle/weak{ - dir = 4; - name = "Old Mining Turret"; - lethal_projectile = /obj/projectile/kinetic/miner; - lethal_projectile_sound = 'sound/weapons/kinetic_accel.ogg'; - stun_projectile = /obj/projectile/kinetic/miner; - stun_projectile_sound = 'sound/weapons/kinetic_accel.ogg' - }, +/obj/machinery/porta_turret/centcom_shuttle/weak/mining, /turf/closed/wall/mineral/titanium, /area/shuttle/abandoned/bar) "rC" = ( diff --git a/_maps/templates/holodeck_holdoutbunker.dmm b/_maps/templates/holodeck_holdoutbunker.dmm index 782cbd919aa89..fccad07bfed85 100644 --- a/_maps/templates/holodeck_holdoutbunker.dmm +++ b/_maps/templates/holodeck_holdoutbunker.dmm @@ -28,12 +28,6 @@ }, /turf/open/floor/holofloor/asteroid, /area/template_noop) -"x" = ( -/obj/structure/foamedmetal, -/obj/structure/window/spawner/directional/east, -/obj/structure/bookcase/random/fiction, -/turf/open/floor/holofloor/asteroid, -/area/template_noop) "I" = ( /obj/structure/table, /obj/item/gun/energy/laser, @@ -62,7 +56,7 @@ a "} (2,1,1) = {" b -x +b b b b diff --git a/code/__DEFINES/actions.dm b/code/__DEFINES/actions.dm index 99f9c1aca551d..a99baa7cd65dd 100644 --- a/code/__DEFINES/actions.dm +++ b/code/__DEFINES/actions.dm @@ -10,6 +10,8 @@ #define AB_CHECK_INCAPACITATED (1<<4) ///Action button checks if user is jaunting #define AB_CHECK_PHASED (1<<5) +///Action button checks if user is not on an open turf +#define AB_CHECK_OPEN_TURF (1<<6) DEFINE_BITFIELD(check_flags, list( "CHECK IF HANDS BLOCKED" = AB_CHECK_HANDS_BLOCKED, @@ -18,6 +20,7 @@ DEFINE_BITFIELD(check_flags, list( "CHECK IF CONSCIOUS" = AB_CHECK_CONSCIOUS, "CHECK IF INCAPACITATED" = AB_CHECK_INCAPACITATED, "CHECK IF TEMPORARILY INCORPOREAL" = AB_CHECK_PHASED, + "CHECK IF NOT ON AN OPEN TURF" = AB_CHECK_OPEN_TURF, )) ///Action button triggered with right click diff --git a/code/__DEFINES/apc_defines.dm b/code/__DEFINES/apc_defines.dm index ee6c2bb67d636..efcfdd864f2ec 100644 --- a/code/__DEFINES/apc_defines.dm +++ b/code/__DEFINES/apc_defines.dm @@ -54,12 +54,6 @@ /// The APCs external powernet has enough power to charge the APC. #define APC_HAS_POWER 2 -// Ethereals: -/// How long it takes an ethereal to drain or charge APCs. Also used as a spam limiter. -#define APC_DRAIN_TIME (7.5 SECONDS) -/// How much power ethereals gain/drain from APCs. -#define APC_POWER_GAIN (0.2 * STANDARD_CELL_CHARGE) - // Wires & EMPs: /// The wire value used to reset the APCs wires after one's EMPed. #define APC_RESET_EMP "emp" diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index 40f342df26834..516fe8c4e193a 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -51,3 +51,5 @@ #define separator_hr(str) ("
" + str + "
") /// Emboldens runechat messages #define RUNECHAT_BOLD(str) "+[str]+" +/// Helper which creates a chat message which may have a tooltip in some contexts, but not others. +#define conditional_tooltip(normal_text, tooltip_text, condition) ((condition) ? (span_tooltip(tooltip_text, normal_text)) : (normal_text)) diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index 925c7bc4e718e..36a2ca2c80584 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -15,9 +15,6 @@ ///from base of atom/movable/Bump(): (/atom) #define COMSIG_MOVABLE_BUMP "movable_bump" #define COMPONENT_INTERCEPT_BUMPED (1<<0) -///from base of atom/movable/newtonian_move(): (inertia_direction, start_delay) -#define COMSIG_MOVABLE_NEWTONIAN_MOVE "movable_newtonian_move" - #define COMPONENT_MOVABLE_NEWTONIAN_BLOCK (1<<0) ///from datum/component/drift/apply_initial_visuals(): () #define COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT "movable_drift_visual_attempt" #define DRIFT_VISUAL_FAILED (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm index 5fe266bc3f0d1..4a558c5fa7e03 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm @@ -52,6 +52,8 @@ #define MOVE_ARG_NEW_LOC 1 /// The argument of move_args which dictates our movement direction #define MOVE_ARG_DIRECTION 2 +/// From base of /client/Move(): (new_loc, direction) +#define COMSIG_MOB_CLIENT_MOVE_NOGRAV "mob_client_move_nograv" /// From base of /client/Move(): (direction, old_dir) #define COMSIG_MOB_CLIENT_MOVED "mob_client_moved" /// From base of /client/proc/change_view() (mob/source, new_size) @@ -253,5 +255,9 @@ /// from /mob/proc/key_down(): (key, client/client, full_key) #define COMSIG_MOB_KEYDOWN "mob_key_down" +/// from /mob/Process_Spacemove(movement_dir, continuous_move): (movement_dir, continuous_move, atom/backup) +#define COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE "mob_attempt_halt_spacemove" + #define COMPONENT_PREVENT_SPACEMOVE_HALT (1<<0) + /// from /mob/update_incapacitated(): (old_incap, new_incap) #define COMSIG_MOB_INCAPACITATE_CHANGED "mob_incapacitated" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index 1b167de3354d2..a9cc41b7d8d8d 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -417,6 +417,8 @@ #define COMSIG_PROJECTILE_ON_SPAWN_DROP "projectile_on_spawn_drop" ///sent to the projectile when spawning the item (shrapnel) that may be embedded: (new_item) #define COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED "projectile_on_spawn_embedded" +///sent to the projectile when successfully embedding into something +#define COMSIG_PROJECTILE_ON_EMBEDDED "projectile_on_embedded" // /obj/vehicle/sealed/car/vim signals diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index a8a7ad975af2e..cffe920215335 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -84,10 +84,10 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/grass3.ogg', 'sound/effects/footstep/grass4.ogg'), 75, 0), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 1), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 1), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', @@ -134,10 +134,10 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/grass3.ogg', 'sound/effects/footstep/grass4.ogg'), 75, 0), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 1), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 1), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', @@ -178,10 +178,10 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/grass3.ogg', 'sound/effects/footstep/grass4.ogg'), 75, 0), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 1), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 1), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', @@ -196,10 +196,10 @@ GLOBAL_LIST_INIT(heavyfootstep, list( 'sound/effects/footstep/heavy1.ogg', 'sound/effects/footstep/heavy2.ogg'), 100, 2), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 2), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 2), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index be3546ea102d1..9a2c01f0bfb92 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -134,3 +134,19 @@ GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) #define MOVELOOP_FAILURE 0 #define MOVELOOP_SUCCESS 1 #define MOVELOOP_NOT_READY 2 + +#define NEWTONS *1 + +#define DEFAULT_INERTIA_SPEED 5 +/// Maximum inertia that an object can hold. Used to prevent objects from getting to stupid speeds. +#define INERTIA_FORCE_CAP 25 NEWTONS +/// How much inertia is deducted when a mob has newtonian spacemove capabilities and is not moving in the same direction +#define INERTIA_FORCE_SPACEMOVE_REDUCTION 0.75 NEWTONS +/// How much inertia we must have to not be able to instantly stop after having something to grab +#define INERTIA_FORCE_SPACEMOVE_GRAB 1.5 NEWTONS +/// How much inertia is required for the impacted object to be thrown at the wall +#define INERTIA_FORCE_THROW_FLOOR 10 NEWTONS +/// How much inertia is required past the floor to add 1 strength +#define INERTIA_FORCE_PER_THROW_FORCE 5 NEWTONS +// Results in maximum speed of 1 tile per tick, capped at about 2/3rds of maximum force +#define INERTIA_SPEED_COEF 0.375 diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 7322340fb1f4f..4335d535ee6f6 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -184,3 +184,4 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_DEFAULT_FISH_SLAP "default_fish_slap" #define SFX_ALT_FISH_SLAP "alt_fish_slap" #define SFX_FISH_PICKUP "fish_pickup" +#define SFX_LIQUID_POUR "liquid_pour" diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm index a4f81a168e610..9b3c2612afa34 100644 --- a/code/__DEFINES/span.dm +++ b/code/__DEFINES/span.dm @@ -14,8 +14,8 @@ #define span_alien(str) ("" + str + "") #define span_announce(str) ("" + str + "") #define span_announcement_header(str) ("" + str + "") -#define span_average(str) ("" + str + "") +#define span_bad(str) ("" + str + "") #define span_big(str) ("" + str + "") #define span_bigicon(str) ("" + str + "") #define span_binarysay(str) ("" + str + "") @@ -48,9 +48,12 @@ #define span_drone(str) ("" + str + "") #define span_engradio(str) ("" + str + "") #define span_extremelybig(str) ("" + str + "") +#define span_emote(str) ("" + str + "") #define span_enteradio(str) ("" + str + "") +#define span_game(str) ("" + str + "") #define span_game_say(str) ("" + str + "") #define span_ghostalert(str) ("" + str + "") +#define span_good(str) ("" + str + "") #define span_green(str) ("" + str + "") #define span_greenannounce(str) ("" + str + "") #define span_greenteamradio(str) ("" + str + "") @@ -70,6 +73,7 @@ #define span_info(str) ("" + str + "") #define span_infoplain(str) ("" + str + "") #define span_interface(str) ("" + str + "") +#define span_italics(str) ("" + str + "") #define span_linkify(str) ("" + str + "") #define span_looc(str) ("" + str + "") #define span_major_announcement_text(str) ("" + str + "") diff --git a/code/__DEFINES/surgery.dm b/code/__DEFINES/surgery.dm index feddc24c6f858..237e956ca7fae 100644 --- a/code/__DEFINES/surgery.dm +++ b/code/__DEFINES/surgery.dm @@ -28,6 +28,8 @@ #define ORGAN_VIRGIN (1<<10) /// ALWAYS show this when scanned by advanced scanners, even if it is totally healthy #define ORGAN_PROMINENT (1<<11) +/// An organ that is ostensibly dangerous when inside a body +#define ORGAN_HAZARDOUS (1<<12) /// Helper to figure out if a limb is organic #define IS_ORGANIC_LIMB(limb) (limb.bodytype & BODYTYPE_ORGANIC) diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index c911181c43166..4fdf598f65977 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -988,7 +988,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///This fish is currently on cooldown and cannot splash ink unto people's faces #define TRAIT_FISH_INK_ON_COOLDOWN "fish_ink_on_cooldown" ///This fish requires two hands to carry even if smaller than FISH_SIZE_TWO_HANDS_REQUIRED, as long as it's bulky-sized. -#define TRAIT_FISH_SHOULD_TWOHANDED "should_twohanded" +#define TRAIT_FISH_SHOULD_TWOHANDED "fish_should_twohanded" +///This fish won't be killed when cooked. +#define TRAIT_FISH_SURVIVE_COOKING "fish_survive_cooking" /// Trait given to angelic constructs to let them purge cult runes #define TRAIT_ANGELIC "angelic" @@ -1278,6 +1280,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to a turf that should not be allowed to be terraformed, such as turfs holding ore vents. #define TRAIT_NO_TERRAFORM "no_terraform" +///Trait that prevents mobs from stopping by grabbing objects +#define TRAIT_NOGRAV_ALWAYS_DRIFT "nograv_always_drift" + ///Mobs with these trait do not get italicized/quiet speech when speaking in low pressure #define TRAIT_SPEECH_BOOSTER "speech_booster" diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index e3d1f9f065b18..beb2b98944bc0 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -299,6 +299,9 @@ /// Trait when a drink was renamed by a shaker #define SHAKER_LABEL_TRAIT "shaker_trait" +/// Trait given by a jetpack +#define JETPACK_TRAIT "jetpack_trait" + /// Trait added by style component #define STYLE_TRAIT "style" diff --git a/code/__DEFINES/~doppler_defines/span.dm b/code/__DEFINES/~doppler_defines/span.dm index 0cf649540d128..50b00a06af8b8 100644 --- a/code/__DEFINES/~doppler_defines/span.dm +++ b/code/__DEFINES/~doppler_defines/span.dm @@ -1,8 +1,6 @@ -#define span_italics(str) ("" + str + "") #define span_pink(str) ("" + str + "") #define span_brown(str) ("" + str + "") #define span_cyan(str) ("" + str + "") #define span_orange(str) ("" + str + "") #define span_yellow(str) ("" + str + "") #define span_rlooc(str) ("" + str + "") -#define span_emote(str) ("" + str + "") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 699ae8aa72cdd..3eb89831957b8 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -235,7 +235,7 @@ if(!SSticker.IsRoundInProgress() || QDELETED(character)) return var/area/player_area = get_area(character) - deadchat_broadcast(" has arrived at the station at [player_area.name].", "[character.real_name] ([rank])", follow_target = character, message_type=DEADCHAT_ARRIVALRATTLE) + deadchat_broadcast(span_game(" has arrived at the station at [span_name(player_area.name)]."), span_game("[span_name(character.real_name)] ([rank])"), follow_target = character, message_type=DEADCHAT_ARRIVALRATTLE) if(!character.mind) return if(!GLOB.announcement_systems.len) diff --git a/code/__HELPERS/honkerblast.dm b/code/__HELPERS/honkerblast.dm index c0712f420f2d7..f49a5ca4aca29 100644 --- a/code/__HELPERS/honkerblast.dm +++ b/code/__HELPERS/honkerblast.dm @@ -5,7 +5,7 @@ var/list/properly_honked = list() var/list/severely_honked = list() - playsound(origin_turf, 'sound/items/airhorn.ogg', 100, TRUE) + playsound(origin_turf, 'sound/items/airhorn/airhorn.ogg', 100, TRUE) for(var/mob/living/carbon/victim as anything in hearers(max(light_range, medium_range, heavy_range), origin_turf)) if(!victim.can_hear()) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 4c0cf3038f58f..7c12561c9977b 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -402,7 +402,7 @@ world /// appearance system (overlays/underlays, etc.) is not available. /// /// Only the first argument is required. -/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE) +/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE, parentcolor) // Loop through the underlays, then overlays, sorting them into the layers list #define PROCESS_OVERLAYS_OR_UNDERLAYS(flat, process, base_layer) \ for (var/i in 1 to process.len) { \ @@ -513,6 +513,20 @@ world var/addY1 = 0 var/addY2 = 0 + if(appearance.color) + if(islist(appearance.color)) + flat.MapColors(arglist(appearance.color)) + else + flat.Blend(appearance.color, ICON_MULTIPLY) + + if(parentcolor && !(appearance.appearance_flags & RESET_COLOR)) + if(islist(parentcolor)) + flat.MapColors(arglist(parentcolor)) + else + flat.Blend(parentcolor, ICON_MULTIPLY) + + var/next_parentcolor = appearance.color || parentcolor + for(var/image/layer_image as anything in layers) if(layer_image.alpha == 0) continue @@ -520,8 +534,14 @@ world if(layer_image == copy) // 'layer_image' is an /image based on the object being flattened. curblend = BLEND_OVERLAY add = icon(layer_image.icon, layer_image.icon_state, base_icon_dir) + if(appearance.color) + if(islist(appearance.color)) + add.MapColors(arglist(appearance.color)) + else + add.Blend(appearance.color, ICON_MULTIPLY) else // 'I' is an appearance object. - add = getFlatIcon(image(layer_image), curdir, curicon, curstate, curblend, FALSE, no_anim) + add = getFlatIcon(image(layer_image), curdir, curicon, curstate, curblend, FALSE, no_anim, next_parentcolor) + if(!add) continue @@ -553,11 +573,6 @@ world // Blend the overlay into the flattened icon flat.Blend(add, blendMode2iconMode(curblend), layer_image.pixel_x + 2 - flatX1, layer_image.pixel_y + 2 - flatY1) - if(appearance.color) - if(islist(appearance.color)) - flat.MapColors(arglist(appearance.color)) - else - flat.Blend(appearance.color, ICON_MULTIPLY) if(appearance.alpha < 255) flat.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY) diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index 5a55fd46fd296..395aa12f1397f 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -241,3 +241,7 @@ /// Useful for providing an additive modifier to a value that is used as a divisor, such as `/obj/projectile/var/speed` /proc/reciprocal_add(x, y) return 1/((1/x)+y) + +/// 180s an angle +/proc/reverse_angle(angle) + return (angle + 180) % 360 diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 7c8e84e226d23..867f6f9e7649d 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -208,7 +208,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( var/atom/target_loc = target?.loc var/drifting = FALSE - if(GLOB.move_manager.processing_on(user, SSspacedrift)) + if(GLOB.move_manager.processing_on(user, SSnewtonian_movement)) drifting = TRUE var/holding = user.get_active_held_item() @@ -237,7 +237,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( if(!QDELETED(progbar)) progbar.update(world.time - starttime) - if(drifting && !GLOB.move_manager.processing_on(user, SSspacedrift)) + if(drifting && !GLOB.move_manager.processing_on(user, SSnewtonian_movement)) drifting = FALSE user_loc = user.loc diff --git a/code/__HELPERS/movement.dm b/code/__HELPERS/movement.dm new file mode 100644 index 0000000000000..e820b3dfff125 --- /dev/null +++ b/code/__HELPERS/movement.dm @@ -0,0 +1,2 @@ +/// Converts w_class into newtons from throwing it, in (0.6 ~ 2.2) range +#define WEIGHT_TO_NEWTONS(w_class, arguments...) 0.2 NEWTONS + w_class * 0.4 NEWTONS diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 895ff2388fd26..db381d2d589a4 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -142,7 +142,7 @@ else finalized_announcement = CHAT_ALERT_DEFAULT_SPAN(jointext(minor_announcement_strings, "")) - var/custom_sound = sound_override || (alert ? 'sound/misc/notice1.ogg' : 'sound/misc/notice2.ogg') + var/custom_sound = sound_override || (alert ? 'sound/announcer/notice/notice1.ogg' : 'sound/announcer/notice/notice2.ogg') dispatch_announcement_to_players(finalized_announcement, players, custom_sound, should_play_sound) /// Sends an announcement about the level changing to players. Uses the passed in datum and the subsystem's previous security level to generate the message. @@ -186,7 +186,7 @@ /// Proc that just dispatches the announcement to our applicable audience. Only the announcement is a mandatory arg. /proc/dispatch_announcement_to_players(announcement, list/players = GLOB.player_list, sound_override = null, should_play_sound = TRUE) - var/sound_to_play = !isnull(sound_override) ? sound_override : 'sound/misc/notice2.ogg' + var/sound_to_play = !isnull(sound_override) ? sound_override : 'sound/announcer/notice/notice2.ogg' for(var/mob/target in players) if(isnewplayer(target) || !target.can_hear()) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 71e80014bb54a..72af6cf3ac181 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -571,7 +571,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) /datum/controller/subsystem/ticker/proc/medal_report() if(GLOB.commendations.len) var/list/parts = list() - parts += "Medal Commendations:" + parts += span_header("Medal Commendations:") for (var/com in GLOB.commendations) parts += com return "
[parts.Join("
")]
" @@ -660,7 +660,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) var/datum/action/report/R = new C.player_details.player_actions += R R.Grant(C.mob) - to_chat(C,"Show roundend report again") + to_chat(C,span_infoplain("Show roundend report again")) /datum/action/report name = "Show roundend report" diff --git a/code/_globalvars/lists/achievements.dm b/code/_globalvars/lists/achievements.dm index 283931f99847c..c788f070ad3b7 100644 --- a/code/_globalvars/lists/achievements.dm +++ b/code/_globalvars/lists/achievements.dm @@ -3,7 +3,7 @@ GLOBAL_LIST_EMPTY(commendations) GLOBAL_LIST_INIT(achievement_categories, list("Bosses", "Jobs", "Skills", "Misc", "Mafia", "Scores")) ///A list of sounds that can be played when unlocking an achievement, set in the preferences. GLOBAL_LIST_INIT(achievement_sounds, list( - CHEEVO_SOUND_PING = sound('sound/effects/glockenspiel_ping.ogg', volume = 70), - CHEEVO_SOUND_JINGLE = sound('sound/effects/beeps_jingle.ogg', volume = 70), - CHEEVO_SOUND_TADA = sound('sound/effects/tada_fanfare.ogg', volume = 30), + CHEEVO_SOUND_PING = sound('sound/effects/achievement/glockenspiel_ping.ogg', volume = 70), + CHEEVO_SOUND_JINGLE = sound('sound/effects/achievement/beeps_jingle.ogg', volume = 70), + CHEEVO_SOUND_TADA = sound('sound/effects/achievement/tada_fanfare.ogg', volume = 30), )) diff --git a/code/_globalvars/lists/ambience.dm b/code/_globalvars/lists/ambience.dm index 12a389cf081f8..24d765b71c183 100644 --- a/code/_globalvars/lists/ambience.dm +++ b/code/_globalvars/lists/ambience.dm @@ -1,167 +1,167 @@ GLOBAL_LIST_INIT(generic_ambience,list( - 'sound/ambience/ambigen1.ogg', - 'sound/ambience/ambigen2.ogg', - 'sound/ambience/ambigen3.ogg', - 'sound/ambience/ambigen4.ogg', - 'sound/ambience/ambigen5.ogg', - 'sound/ambience/ambigen6.ogg', - 'sound/ambience/ambigen7.ogg', - 'sound/ambience/ambigen8.ogg', - 'sound/ambience/ambigen9.ogg', - 'sound/ambience/ambigen10.ogg', - 'sound/ambience/ambigen11.ogg', - 'sound/ambience/ambigen13.ogg', - 'sound/ambience/ambigen14.ogg', + 'sound/ambience/general/ambigen1.ogg', + 'sound/ambience/general/ambigen2.ogg', + 'sound/ambience/general/ambigen3.ogg', + 'sound/ambience/general/ambigen4.ogg', + 'sound/ambience/general/ambigen5.ogg', + 'sound/ambience/general/ambigen6.ogg', + 'sound/ambience/general/ambigen7.ogg', + 'sound/ambience/general/ambigen8.ogg', + 'sound/ambience/general/ambigen9.ogg', + 'sound/ambience/general/ambigen10.ogg', + 'sound/ambience/general/ambigen11.ogg', + 'sound/ambience/general/ambigen13.ogg', + 'sound/ambience/general/ambigen14.ogg', )) GLOBAL_LIST_INIT(holy_ambience,list( - 'sound/ambience/ambicha1.ogg', - 'sound/ambience/ambicha2.ogg', - 'sound/ambience/ambicha3.ogg', - 'sound/ambience/ambicha4.ogg', - 'sound/ambience/ambiholy.ogg', - 'sound/ambience/ambiholy2.ogg', - 'sound/ambience/ambiholy3.ogg', + 'sound/ambience/holy/ambicha1.ogg', + 'sound/ambience/holy/ambicha2.ogg', + 'sound/ambience/holy/ambicha3.ogg', + 'sound/ambience/holy/ambicha4.ogg', + 'sound/ambience/holy/ambiholy.ogg', + 'sound/ambience/holy/ambiholy2.ogg', + 'sound/ambience/holy/ambiholy3.ogg', )) GLOBAL_LIST_INIT(danger_ambience,list( - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', )) GLOBAL_LIST_INIT(ruins_ambience,list( - 'sound/ambience/ambicave.ogg', - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimine.ogg', - 'sound/ambience/ambimystery.ogg', - 'sound/ambience/ambiruin.ogg', - 'sound/ambience/ambiruin2.ogg', - 'sound/ambience/ambiruin3.ogg', - 'sound/ambience/ambiruin4.ogg', - 'sound/ambience/ambiruin5.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', - 'sound/ambience/ambitech3.ogg', + 'sound/ambience/lavaland/ambicave.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/ruin/ambimine.ogg', + 'sound/ambience/misc/ambimystery.ogg', + 'sound/ambience/ruin/ambiruin.ogg', + 'sound/ambience/ruin/ambiruin2.ogg', + 'sound/ambience/ruin/ambiruin3.ogg', + 'sound/ambience/ruin/ambiruin4.ogg', + 'sound/ambience/ruin/ambiruin5.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', + 'sound/ambience/engineering/ambitech3.ogg', )) GLOBAL_LIST_INIT(engi_ambience,list( - 'sound/ambience/ambiatmos.ogg', - 'sound/ambience/ambiatmos2.ogg', - 'sound/ambience/ambisin1.ogg', - 'sound/ambience/ambisin2.ogg', - 'sound/ambience/ambisin3.ogg', - 'sound/ambience/ambisin4.ogg', - 'sound/ambience/ambitech.ogg', - 'sound/ambience/ambitech2.ogg', - 'sound/ambience/ambitech3.ogg', + 'sound/ambience/engineering/ambiatmos.ogg', + 'sound/ambience/engineering/ambiatmos2.ogg', + 'sound/ambience/engineering/ambisin1.ogg', + 'sound/ambience/engineering/ambisin2.ogg', + 'sound/ambience/engineering/ambisin3.ogg', + 'sound/ambience/engineering/ambisin4.ogg', + 'sound/ambience/engineering/ambitech.ogg', + 'sound/ambience/engineering/ambitech2.ogg', + 'sound/ambience/engineering/ambitech3.ogg', )) GLOBAL_LIST_INIT(mining_ambience, list( - 'sound/ambience/ambicave.ogg', - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambilava1.ogg', - 'sound/ambience/ambilava2.ogg', - 'sound/ambience/ambilava3.ogg', - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimine.ogg', - 'sound/ambience/ambiruin.ogg', - 'sound/ambience/ambiruin2.ogg', - 'sound/ambience/ambiruin3.ogg', - 'sound/ambience/ambiruin4.ogg', - 'sound/ambience/ambiruin5.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', + 'sound/ambience/lavaland/ambicave.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', + 'sound/ambience/lavaland/ambilava1.ogg', + 'sound/ambience/lavaland/ambilava2.ogg', + 'sound/ambience/lavaland/ambilava3.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/ruin/ambimine.ogg', + 'sound/ambience/ruin/ambiruin.ogg', + 'sound/ambience/ruin/ambiruin2.ogg', + 'sound/ambience/ruin/ambiruin3.ogg', + 'sound/ambience/ruin/ambiruin4.ogg', + 'sound/ambience/ruin/ambiruin5.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', )) GLOBAL_LIST_INIT(icemoon_ambience,list( - 'sound/ambience/ambiicetheme.ogg', - 'sound/ambience/ambiicemelody1.ogg', - 'sound/ambience/ambiicemelody2.ogg', - 'sound/ambience/ambiicemelody3.ogg', - 'sound/ambience/ambiicemelody4.ogg', - 'sound/ambience/ambiicesting1.ogg', - 'sound/ambience/ambiicesting2.ogg', - 'sound/ambience/ambiicesting3.ogg', - 'sound/ambience/ambiicesting4.ogg', - 'sound/ambience/ambiicesting5.ogg', + 'sound/ambience/icemoon/ambiicetheme.ogg', + 'sound/ambience/icemoon/ambiicemelody1.ogg', + 'sound/ambience/icemoon/ambiicemelody2.ogg', + 'sound/ambience/icemoon/ambiicemelody3.ogg', + 'sound/ambience/icemoon/ambiicemelody4.ogg', + 'sound/ambience/icemoon/ambiicesting1.ogg', + 'sound/ambience/icemoon/ambiicesting2.ogg', + 'sound/ambience/icemoon/ambiicesting3.ogg', + 'sound/ambience/icemoon/ambiicesting4.ogg', + 'sound/ambience/icemoon/ambiicesting5.ogg', )) GLOBAL_LIST_INIT(medical_ambience,list( - 'sound/ambience/ambinice.ogg', + 'sound/ambience/medical/ambinice.ogg', )) GLOBAL_LIST_INIT(virology_ambience,list( - 'sound/ambience/ambiviro.ogg', - 'sound/ambience/ambiviro1.ogg', - 'sound/ambience/ambiviro2.ogg', + 'sound/ambience/medical/ambiviro.ogg', + 'sound/ambience/medical/ambiviro1.ogg', + 'sound/ambience/medical/ambiviro2.ogg', )) GLOBAL_LIST_INIT(spooky_ambience,list( - 'sound/ambience/ambimo1.ogg', - 'sound/ambience/ambimo2.ogg', - 'sound/ambience/ambimystery.ogg', - 'sound/ambience/ambiodd.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', + 'sound/ambience/medical/ambimo1.ogg', + 'sound/ambience/medical/ambimo2.ogg', + 'sound/ambience/misc/ambimystery.ogg', + 'sound/ambience/misc/ambiodd.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', )) GLOBAL_LIST_INIT(space_ambience,list( - 'sound/ambience/ambiatmos.ogg', - 'sound/ambience/ambispace.ogg', - 'sound/ambience/ambispace2.ogg', - 'sound/ambience/ambispace3.ogg', - 'sound/ambience/ambispace4.ogg', - 'sound/ambience/ambispace5.ogg', - 'sound/ambience/ambispace6.ogg', - 'sound/ambience/title2.ogg', + 'sound/ambience/engineering/ambiatmos.ogg', + 'sound/ambience/space/ambispace.ogg', + 'sound/ambience/space/ambispace2.ogg', + 'sound/ambience/space/ambispace3.ogg', + 'sound/ambience/space/ambispace4.ogg', + 'sound/ambience/space/ambispace5.ogg', + 'sound/ambience/space/ambispace6.ogg', + 'sound/music/lobby_music/title2.ogg', )) GLOBAL_LIST_INIT(maint_ambience,list( - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimaint2.ogg', - 'sound/ambience/ambimaint3.ogg', - 'sound/ambience/ambimaint4.ogg', - 'sound/ambience/ambimaint5.ogg', - 'sound/ambience/ambimaint6.ogg', - 'sound/ambience/ambimaint7.ogg', - 'sound/ambience/ambimaint8.ogg', - 'sound/ambience/ambimaint9.ogg', - 'sound/ambience/ambimaint10.ogg', - 'sound/ambience/ambimaint11.ogg', - 'sound/ambience/ambimaint12.ogg', - 'sound/ambience/ambitech2.ogg', - 'sound/voice/lowHiss1.ogg', - 'sound/voice/lowHiss2.ogg', - 'sound/voice/lowHiss3.ogg', - 'sound/voice/lowHiss4.ogg', - 'sound/ambience/maintambience.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/maintenance/ambimaint2.ogg', + 'sound/ambience/maintenance/ambimaint3.ogg', + 'sound/ambience/maintenance/ambimaint4.ogg', + 'sound/ambience/maintenance/ambimaint5.ogg', + 'sound/ambience/maintenance/ambimaint6.ogg', + 'sound/ambience/maintenance/ambimaint7.ogg', + 'sound/ambience/maintenance/ambimaint8.ogg', + 'sound/ambience/maintenance/ambimaint9.ogg', + 'sound/ambience/maintenance/ambimaint10.ogg', + 'sound/ambience/maintenance/ambimaint11.ogg', + 'sound/ambience/maintenance/ambimaint12.ogg', + 'sound/ambience/engineering/ambitech2.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss1.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss2.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss3.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss4.ogg', + 'sound/ambience/maintenance/maintambience.ogg', )) GLOBAL_LIST_INIT(away_ambience,list( - 'sound/ambience/ambiatmos.ogg', - 'sound/ambience/ambiatmos2.ogg', - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambimaint.ogg', - 'sound/ambience/ambiodd.ogg', - 'sound/ambience/ambiruin.ogg', - 'sound/ambience/ambiruin2.ogg', - 'sound/ambience/ambiruin3.ogg', - 'sound/ambience/ambiruin4.ogg', - 'sound/ambience/ambiruin5.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', - 'sound/ambience/ambitech.ogg', - 'sound/ambience/ambitech2.ogg', + 'sound/ambience/engineering/ambiatmos.ogg', + 'sound/ambience/engineering/ambiatmos2.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', + 'sound/ambience/maintenance/ambimaint.ogg', + 'sound/ambience/misc/ambiodd.ogg', + 'sound/ambience/ruin/ambiruin.ogg', + 'sound/ambience/ruin/ambiruin2.ogg', + 'sound/ambience/ruin/ambiruin3.ogg', + 'sound/ambience/ruin/ambiruin4.ogg', + 'sound/ambience/ruin/ambiruin5.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', + 'sound/ambience/engineering/ambitech.ogg', + 'sound/ambience/engineering/ambitech2.ogg', )) GLOBAL_LIST_INIT(reebe_ambience,list( - 'sound/ambience/ambireebe1.ogg', - 'sound/ambience/ambireebe2.ogg', - 'sound/ambience/ambireebe3.ogg', + 'sound/ambience/misc/ambireebe1.ogg', + 'sound/ambience/misc/ambireebe2.ogg', + 'sound/ambience/misc/ambireebe3.ogg', )) GLOBAL_LIST_INIT(creepy_ambience,list( @@ -169,25 +169,25 @@ GLOBAL_LIST_INIT(creepy_ambience,list( 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg', - 'sound/hallucinations/behind_you1.ogg', - 'sound/hallucinations/behind_you2.ogg', - 'sound/hallucinations/far_noise.ogg', - 'sound/hallucinations/growl1.ogg', - 'sound/hallucinations/growl2.ogg', - 'sound/hallucinations/growl3.ogg', - 'sound/hallucinations/i_see_you1.ogg', - 'sound/hallucinations/i_see_you2.ogg', - 'sound/hallucinations/im_here1.ogg', - 'sound/hallucinations/im_here2.ogg', - 'sound/hallucinations/look_up1.ogg', - 'sound/hallucinations/look_up2.ogg', - 'sound/hallucinations/over_here1.ogg', - 'sound/hallucinations/over_here2.ogg', - 'sound/hallucinations/over_here3.ogg', - 'sound/hallucinations/turn_around1.ogg', - 'sound/hallucinations/turn_around2.ogg', - 'sound/hallucinations/veryfar_noise.ogg', - 'sound/hallucinations/wail.ogg', + 'sound/effects/hallucinations/behind_you1.ogg', + 'sound/effects/hallucinations/behind_you2.ogg', + 'sound/effects/hallucinations/far_noise.ogg', + 'sound/effects/hallucinations/growl1.ogg', + 'sound/effects/hallucinations/growl2.ogg', + 'sound/effects/hallucinations/growl3.ogg', + 'sound/effects/hallucinations/i_see_you1.ogg', + 'sound/effects/hallucinations/i_see_you2.ogg', + 'sound/effects/hallucinations/im_here1.ogg', + 'sound/effects/hallucinations/im_here2.ogg', + 'sound/effects/hallucinations/look_up1.ogg', + 'sound/effects/hallucinations/look_up2.ogg', + 'sound/effects/hallucinations/over_here1.ogg', + 'sound/effects/hallucinations/over_here2.ogg', + 'sound/effects/hallucinations/over_here3.ogg', + 'sound/effects/hallucinations/turn_around1.ogg', + 'sound/effects/hallucinations/turn_around2.ogg', + 'sound/effects/hallucinations/veryfar_noise.ogg', + 'sound/effects/hallucinations/wail.ogg', )) GLOBAL_LIST_INIT(ambience_assoc,list( diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 82cc3f1cf10b3..123deaa2518e5 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -134,22 +134,22 @@ GLOBAL_LIST_EMPTY(female_clothing_icons) GLOBAL_LIST_INIT(scarySounds, list( 'sound/effects/footstep/clownstep1.ogg', 'sound/effects/footstep/clownstep2.ogg', - 'sound/effects/glassbr1.ogg', - 'sound/effects/glassbr2.ogg', - 'sound/effects/glassbr3.ogg', - 'sound/items/welder.ogg', - 'sound/items/welder2.ogg', - 'sound/machines/airlock.ogg', - 'sound/voice/hiss1.ogg', - 'sound/voice/hiss2.ogg', - 'sound/voice/hiss3.ogg', - 'sound/voice/hiss4.ogg', - 'sound/voice/hiss5.ogg', - 'sound/voice/hiss6.ogg', - 'sound/weapons/armbomb.ogg', - 'sound/weapons/taser.ogg', - 'sound/weapons/thudswoosh.ogg', - 'sound/weapons/shove.ogg', + 'sound/effects/glass/glassbr1.ogg', + 'sound/effects/glass/glassbr2.ogg', + 'sound/effects/glass/glassbr3.ogg', + 'sound/items/tools/welder.ogg', + 'sound/items/tools/welder2.ogg', + 'sound/machines/airlock/airlock.ogg', + 'sound/mobs/non-humanoids/hiss/hiss1.ogg', + 'sound/mobs/non-humanoids/hiss/hiss2.ogg', + 'sound/mobs/non-humanoids/hiss/hiss3.ogg', + 'sound/mobs/non-humanoids/hiss/hiss4.ogg', + 'sound/mobs/non-humanoids/hiss/hiss5.ogg', + 'sound/mobs/non-humanoids/hiss/hiss6.ogg', + 'sound/items/weapons/armbomb.ogg', + 'sound/items/weapons/taser.ogg', + 'sound/items/weapons/thudswoosh.ogg', + 'sound/items/weapons/shove.ogg', )) diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 6660604acd69f..798c2eae7ae45 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -544,6 +544,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE, "TRAIT_XRAY_HEARING" = TRAIT_XRAY_HEARING, "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION, + "TRAIT_NOGRAV_ALWAYS_DRIFT" = TRAIT_NOGRAV_ALWAYS_DRIFT, "TRAIT_SPEECH_BOOSTER" = TRAIT_SPEECH_BOOSTER, "TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING, "TRAIT_ILLUSORY_EFFECT" = TRAIT_ILLUSORY_EFFECT, @@ -623,6 +624,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED, "TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS, "TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER, + "TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING, "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, "TRAIT_FISH_WELL_COOKED" = TRAIT_FISH_WELL_COOKED, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index b24fdac208d26..c1910e642fc84 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -350,6 +350,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED, "TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS, "TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER, + "TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING, "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index d477195a603ab..5e4ee1e849dbb 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -435,7 +435,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." if(!QDELETED(rube) && !QDELETED(offerer)) offerer.visible_message(span_danger("[offerer] pulls away from [rube]'s slap at the last second, dodging the high-five entirely!"), span_nicegreen("[rube] fails to make contact with your hand, making an utter fool of [rube.p_them()]self!"), span_hear("You hear a disappointing sound of flesh not hitting flesh!"), ignored_mobs=rube) to_chat(rube, span_userdanger("[uppertext("NO! [offerer] PULLS [offerer.p_their()] HAND AWAY FROM YOURS! YOU'RE TOO SLOW!")]")) - playsound(offerer, 'sound/weapons/thudswoosh.ogg', 100, TRUE, 1) + playsound(offerer, 'sound/items/weapons/thudswoosh.ogg', 100, TRUE, 1) rube.Knockdown(1 SECONDS) offerer.add_mood_event("high_five", /datum/mood_event/down_low) rube.add_mood_event("high_five", /datum/mood_event/too_slow) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 5af9b7e016156..e7c4ef3e06790 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -214,7 +214,7 @@ return FALSE if(!force && !HAS_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND)) - playsound(src, 'sound/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) + playsound(src, 'sound/items/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) else if(hitsound) playsound(src, hitsound, get_clamped_volume(), TRUE, extrarange = stealthy_audio ? SILENCED_SOUND_EXTRARANGE : -1, falloff_distance = 0) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 964459aea68d4..c17d86902a8a6 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -319,7 +319,7 @@ default = "http://tgstation13.org/phpBB/index.php" /datum/config_entry/string/rulesurl - default = "http://www.tgstation13.org/wiki/Rules" + default = "http://tgstation13.org/wiki/Rules" /datum/config_entry/string/githuburl default = "https://www.github.com/tgstation/tgstation" diff --git a/code/controllers/subsystem/ambience.dm b/code/controllers/subsystem/ambience.dm index 7258b0b16e948..87f088a41ea13 100644 --- a/code/controllers/subsystem/ambience.dm +++ b/code/controllers/subsystem/ambience.dm @@ -70,16 +70,16 @@ SUBSYSTEM_DEF(ambience) ///A list of rare sound effects to fuck with players. No, it does not contain actual minecraft sounds anymore. var/static/list/minecraft_cave_noises = list( - 'sound/machines/airlock.ogg', + 'sound/machines/airlock/airlock.ogg', 'sound/effects/snap.ogg', 'sound/effects/footstep/clownstep1.ogg', 'sound/effects/footstep/clownstep2.ogg', - 'sound/items/welder.ogg', - 'sound/items/welder2.ogg', - 'sound/items/crowbar.ogg', + 'sound/items/tools/welder.ogg', + 'sound/items/tools/welder2.ogg', + 'sound/items/tools/crowbar.ogg', 'sound/items/deconstruct.ogg', - 'sound/ambience/source_holehit3.ogg', - 'sound/ambience/cavesound3.ogg', + 'sound/ambience/misc/source_holehit3.ogg', + 'sound/ambience//misc/cavesound3.ogg', ) /area/station/maintenance/play_ambience(mob/M, sound/override_sound, volume) diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm index efe857b936ddf..4d182febb07e5 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm @@ -577,7 +577,7 @@ player_mind.add_antag_datum(/datum/antagonist/nightmare) new_nightmare.set_species(/datum/species/shadow/nightmare) - playsound(new_nightmare, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(new_nightmare, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(new_nightmare)] has been made into a Nightmare by the midround ruleset.") log_dynamic("[key_name(new_nightmare)] was spawned as a Nightmare by the midround ruleset.") return new_nightmare @@ -618,7 +618,7 @@ player_mind.transfer_to(S) player_mind.add_antag_datum(/datum/antagonist/space_dragon) - playsound(S, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(S, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Space Dragon by the midround ruleset.") log_dynamic("[key_name(S)] was spawned as a Space Dragon by the midround ruleset.") priority_announce("A large organic energy flux has been recorded near of [station_name()], please stand-by.", "Lifesign Alert") @@ -930,7 +930,7 @@ new_datum.original_ref = WEAKREF(clone_victim.mind) new_datum.setup_clone() - playsound(clone, 'sound/weapons/zapbang.ogg', 30, TRUE) + playsound(clone, 'sound/items/weapons/zapbang.ogg', 30, TRUE) new /obj/item/storage/toolbox/mechanical(clone.loc) //so they dont get stuck in maints message_admins("[ADMIN_LOOKUPFLW(clone)] has been made into a Paradox Clone by the midround ruleset.") @@ -995,7 +995,7 @@ player_mind.special_role = antag_flag player_mind.add_antag_datum(antag_datum) - playsound(voidwalker, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(voidwalker, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(voidwalker)] has been made into a Voidwalker by the midround ruleset.") log_dynamic("[key_name(voidwalker)] was spawned as a Voidwalker by the midround ruleset.") return voidwalker diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index 7bb597ba30e12..2f678291eb6c7 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -521,7 +521,7 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec * - [creaking_sound][/sound]: The sound that plays when the station creaks during the explosion. * - [hull_creaking_sound][/sound]: The sound that plays when the station creaks after the explosion. */ -/datum/controller/subsystem/explosions/proc/shake_the_room(turf/epicenter, near_distance, far_distance, quake_factor, echo_factor, creaking, sound/near_sound = sound(get_sfx(SFX_EXPLOSION)), sound/far_sound = sound('sound/effects/explosionfar.ogg'), sound/echo_sound = sound('sound/effects/explosion_distant.ogg'), sound/creaking_sound = sound(get_sfx(SFX_EXPLOSION_CREAKING)), hull_creaking_sound = sound(get_sfx(SFX_HULL_CREAKING))) +/datum/controller/subsystem/explosions/proc/shake_the_room(turf/epicenter, near_distance, far_distance, quake_factor, echo_factor, creaking, sound/near_sound = sound(get_sfx(SFX_EXPLOSION)), sound/far_sound = sound('sound/effects/explosion/explosionfar.ogg'), sound/echo_sound = sound('sound/effects/explosion/explosion_distant.ogg'), sound/creaking_sound = sound(get_sfx(SFX_EXPLOSION_CREAKING)), hull_creaking_sound = sound(get_sfx(SFX_HULL_CREAKING))) var/frequency = get_rand_frequency() var/blast_z = epicenter.z if(isnull(creaking)) // Autoset creaking. diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm index faa2df1050ec2..93b823f18b595 100644 --- a/code/controllers/subsystem/id_access.dm +++ b/code/controllers/subsystem/id_access.dm @@ -410,7 +410,7 @@ SUBSYSTEM_DEF(id_access) id_card.assignment = trim.assignment var/datum/job/trim_job = trim.find_job() - if (!isnull(trim_job) && !isnull(id_card.registered_account)) + if (!isnull(id_card.registered_account)) var/datum/job/old_job = id_card.registered_account.account_job id_card.registered_account.account_job = trim_job id_card.registered_account.update_account_job_lists(trim_job, old_job) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 0b04b25c59721..74b820894b256 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -680,7 +680,7 @@ SUBSYSTEM_DEF(job) job_debug("RJCT: Player rejected, Player: [player]") unassigned -= player if(!run_divide_occupation_pure) - to_chat(player, "You have failed to qualify for any job you desired.") + to_chat(player, span_infoplain("You have failed to qualify for any job you desired.")) player.ready = PLAYER_NOT_READY diff --git a/code/controllers/subsystem/movement/movement.dm b/code/controllers/subsystem/movement/movement.dm index 425c67a0c474f..d6043d596bb0e 100644 --- a/code/controllers/subsystem/movement/movement.dm +++ b/code/controllers/subsystem/movement/movement.dm @@ -66,7 +66,7 @@ SUBSYSTEM_DEF(movement) return // Still work to be done var/bucket_time = bucket_info[MOVEMENT_BUCKET_TIME] smash_bucket(1, bucket_time) // We assume we're the first bucket in the queue right now - visual_delay = MC_AVERAGE_FAST(visual_delay, max((world.time - canonical_time) / wait, 1)) + visual_delay = MC_AVERAGE_FAST(visual_delay, max((world.time - canonical_time) / TICKS2DS(wait), 1)) /// Removes a bucket from our system. You only need to pass in the time, but if you pass in the index of the list you save us some work /datum/controller/subsystem/movement/proc/smash_bucket(index, bucket_time) diff --git a/code/controllers/subsystem/movement/movement_types.dm b/code/controllers/subsystem/movement/movement_types.dm index ec0136bc8c178..58b1c58b0bca1 100644 --- a/code/controllers/subsystem/movement/movement_types.dm +++ b/code/controllers/subsystem/movement/movement_types.dm @@ -869,3 +869,95 @@ var/atom/old_loc = moving.loc holder.current_pipe = holder.current_pipe.transfer(holder) return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/** + * Helper proc for the smooth_move datum + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * angle - Angle at which we want to move + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ + +/datum/move_manager/proc/smooth_move(moving, angle, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/smooth_move, priority, flags, extra_info, delay, timeout, angle) + +/datum/move_loop/smooth_move + /// Angle at which we move. 0 is north because byond. + var/angle = 0 + /// When this gets bigger than 1, we move a turf + var/x_ticker = 0 + var/y_ticker = 0 + /// The rate at which we move, between 0 and 1. Cached to cut down on trig + var/x_rate = 0 + var/y_rate = 1 + /// Sign for our movement + var/x_sign = 1 + var/y_sign = 1 + /// Actual move delay, as delay will be modified by move() depending on what direction we move in + var/saved_delay + +/datum/move_loop/smooth_move/setup(delay, timeout, angle) + . = ..() + if(!.) + return FALSE + set_angle(angle) + saved_delay = delay + +/datum/move_loop/smooth_move/set_delay(new_delay) + new_delay = round(new_delay, world.tick_lag) + . = ..() + saved_delay = delay + +/datum/move_loop/smooth_move/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, atom/chasing, home = FALSE) + if(..() && angle == src.angle) + return TRUE + return FALSE + +/datum/move_loop/smooth_move/move() + var/atom/old_loc = moving.loc + // Defaulting to 2 because if one rate is 0 the other is guaranteed to be 1, so maxing out at 1 to_move + var/x_to_move = x_rate > 0 ? (1 - x_ticker) / x_rate : 2 + var/y_to_move = y_rate > 0 ? (1 - y_ticker) / y_rate : 2 + var/move_dist = min(x_to_move, y_to_move) + x_ticker += x_rate * move_dist + y_ticker += y_rate * move_dist + + // Per Bresenham's, if we are closer to the next tile's center move diagonally. Checked by seeing if we pass into the next tile after moving another half a tile + var/move_x = (x_ticker + x_rate * 0.5) > 1 + var/move_y = (y_ticker + y_rate * 0.5) > 1 + if (move_x) + x_ticker = 0 + if (move_y) + y_ticker = 0 + + var/turf/next_turf = locate(moving.x + (move_x ? x_sign : 0), moving.y + (move_y ? y_sign : 0), moving.z) + moving.Move(next_turf, get_dir(moving, next_turf), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + + if (old_loc == moving?.loc) + return MOVELOOP_FAILURE + + delay = saved_delay + if (move_x && move_y) + delay *= 1.4 + + return MOVELOOP_SUCCESS + +/datum/move_loop/smooth_move/proc/set_angle(new_angle) + angle = new_angle + x_rate = sin(angle) + y_rate = cos(angle) + x_sign = SIGN(x_rate) + y_sign = SIGN(y_rate) + x_rate = abs(x_rate) + y_rate = abs(y_rate) + x_ticker = 0 + y_ticker = 0 diff --git a/code/controllers/subsystem/movement/newtonian_movement.dm b/code/controllers/subsystem/movement/newtonian_movement.dm new file mode 100644 index 0000000000000..aeb03a576dae0 --- /dev/null +++ b/code/controllers/subsystem/movement/newtonian_movement.dm @@ -0,0 +1,31 @@ +/// The subsystem is intended to tick things related to space/newtonian movement, such as constant sources of inertia +MOVEMENT_SUBSYSTEM_DEF(newtonian_movement) + name = "Newtonian Movement" + flags = SS_NO_INIT|SS_TICKER + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + + var/stat_tag = "P" //Used for logging + var/list/processing = list() + var/list/currentrun = list() + +/datum/controller/subsystem/movement/newtonian_movement/stat_entry(msg) + msg = "[stat_tag]:[length(processing)]" + return ..() + +/datum/controller/subsystem/movement/newtonian_movement/fire(resumed = FALSE) + . = ..() + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/thing = current_run[current_run.len] + current_run.len-- + if(QDELETED(thing)) + processing -= thing + else if(thing.process(TICKS2DS(wait) * 0.1) == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/movement/spacedrift.dm b/code/controllers/subsystem/movement/spacedrift.dm deleted file mode 100644 index 4002b5eb555f2..0000000000000 --- a/code/controllers/subsystem/movement/spacedrift.dm +++ /dev/null @@ -1,5 +0,0 @@ -MOVEMENT_SUBSYSTEM_DEF(spacedrift) - name = "Space Drift" - priority = FIRE_PRIORITY_SPACEDRIFT - flags = SS_NO_INIT|SS_TICKER - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm index b8df42742e43c..170f12696147f 100644 --- a/code/controllers/subsystem/nightshift.dm +++ b/code/controllers/subsystem/nightshift.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(nightshift) /datum/controller/subsystem/nightshift/proc/announce(message) priority_announce( text = message, - sound = 'sound/misc/notice2.ogg', + sound = 'sound/announcer/notice/notice2.ogg', sender_override = "Automated Lighting System Announcement", color_override = "grey", ) diff --git a/code/controllers/subsystem/polling.dm b/code/controllers/subsystem/polling.dm index 6cdcfbfd45949..b237edd3870b6 100644 --- a/code/controllers/subsystem/polling.dm +++ b/code/controllers/subsystem/polling.dm @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(polling) * * chat_text_border_icon: Object or path to make an icon of to decorate the chat announcement. * * announce_chosen: Whether we should announce the chosen candidates in chat. This is ignored unless amount_to_pick is greater than 0. * - * Returns a list of all mobs who signed up for the poll. + * Returns a list of all mobs who signed up for the poll, OR, in the case that amount_to_pick is equal to 1 the singular mob/null if no available candidates. */ /datum/controller/subsystem/polling/proc/poll_candidates( question, @@ -155,7 +155,7 @@ SUBSYSTEM_DEF(polling) act_never = "[custom_link_style_start]\[Never For This Round\]" if(!duplicate_message_check(alert_poll)) //Only notify people once. They'll notice if there are multiple and we don't want to spam people. - SEND_SOUND(candidate_mob, 'sound/misc/notice2.ogg') + SEND_SOUND(candidate_mob, 'sound/announcer/notice/notice2.ogg') var/surrounding_icon if(chat_text_border_icon) var/image/surrounding_image @@ -175,9 +175,11 @@ SUBSYSTEM_DEF(polling) UNTIL(new_poll.finished) if(!(amount_to_pick > 0)) return new_poll.signed_up - if(length(new_poll.signed_up) < amount_to_pick) - return new_poll.signed_up for(var/pick in 1 to amount_to_pick) + // There may be less people signed up than amount_to_pick + // pick_n_take returns the default return value of null if passed an empty list, so just break in that case rather than adding null to the list. + if(!length(new_poll.signed_up)) + break new_poll.chosen_candidates += pick_n_take(new_poll.signed_up) if(announce_chosen) new_poll.announce_chosen(group) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 11a055d292ce2..0ad0a78589221 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -140,6 +140,9 @@ SUBSYSTEM_DEF(shuttle) /// Did the supermatter start a cascade event? var/supermatter_cascade = FALSE + /// List of express consoles that are waiting for pack initialization + var/list/obj/machinery/computer/cargo/express/express_consoles = list() + /datum/controller/subsystem/shuttle/Initialize() order_number = rand(1, 9000) @@ -172,6 +175,9 @@ SUBSYSTEM_DEF(shuttle) supply_packs[pack.id] = pack + for (var/obj/machinery/computer/cargo/express/console as anything in express_consoles) + console.packin_up(TRUE) + setup_shuttles(stationary_docking_ports) has_purchase_shuttle_access = init_has_purchase_shuttle_access() @@ -275,7 +281,7 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text = "Emergency shuttle uplink interference detected, shuttle call disabled while the system reinitializes. Estimated restore in [DisplayTimeText(lockout_timer, round_seconds_to = 60)].", title = "Uplink Interference", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) @@ -289,7 +295,7 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text= "Emergency shuttle uplink services are now back online.", title = "Uplink Restored", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "green", ) @@ -523,7 +529,7 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text = "Departure has been postponed indefinitely pending conflict resolution.", title = "Hostile Environment Detected", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) @@ -533,7 +539,7 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text = "You have [DisplayTimeText(emergency_dock_time)] to board the emergency shuttle.", title = "Hostile Environment Resolved", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "green", ) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index fc0375f4f0b6a..da403db9e4559 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -202,6 +202,11 @@ SUBSYSTEM_DEF(throwing) if(!thrownthing) return thrownthing.throwing = null + var/drift_force = speed + if (isitem(thrownthing)) + var/obj/item/thrownitem = thrownthing + drift_force *= WEIGHT_TO_NEWTONS(thrownitem.w_class) + if (!hit) for (var/atom/movable/obstacle as anything in get_turf(thrownthing)) //looking for our target on the turf we land on. if (obstacle == target) @@ -214,9 +219,9 @@ SUBSYSTEM_DEF(throwing) thrownthing.throw_impact(get_turf(thrownthing), src) // we haven't hit something yet and we still must, let's hit the ground. if(QDELETED(thrownthing)) //throw_impact can delete things, such as glasses smashing return //deletion should already be handled by on_thrownthing_qdel() - thrownthing.newtonian_move(init_dir) + thrownthing.newtonian_move(delta_to_angle(dist_x, dist_y), drift_force = drift_force) else - thrownthing.newtonian_move(init_dir) + thrownthing.newtonian_move(delta_to_angle(dist_x, dist_y), drift_force = drift_force) if(target) thrownthing.throw_impact(target, src) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index f5a9309457246..74825c3fb72cb 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -498,7 +498,7 @@ SUBSYSTEM_DEF(ticker) list_clear_nulls(queued_players) for (var/mob/dead/new_player/new_player in queued_players) to_chat(new_player, span_userdanger("The alive players limit has been released!
[html_encode(">>Join Game<<")]")) - SEND_SOUND(new_player, sound('sound/misc/notice1.ogg')) + SEND_SOUND(new_player, sound('sound/announcer/notice/notice1.ogg')) GLOB.latejoin_menu.ui_interact(new_player) queued_players.len = 0 queue_delay = 0 @@ -513,7 +513,7 @@ SUBSYSTEM_DEF(ticker) if(living_player_count() < hard_popcap) if(next_in_line?.client) to_chat(next_in_line, span_userdanger("A slot has opened! You have approximately 20 seconds to join. \>\>Join Game\<\<")) - SEND_SOUND(next_in_line, sound('sound/misc/notice1.ogg')) + SEND_SOUND(next_in_line, sound('sound/announcer/notice/notice1.ogg')) next_in_line.ui_interact(next_in_line) return queued_players -= next_in_line //Client disconnected, remove he diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm index d8247d3e92a5e..2f297f480ae66 100644 --- a/code/datums/actions/action.dm +++ b/code/datums/actions/action.dm @@ -114,7 +114,8 @@ RegisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(update_status_on_signal)) if(check_flags & AB_CHECK_PHASED) RegisterSignals(owner, list(SIGNAL_ADDTRAIT(TRAIT_MAGICALLY_PHASED), SIGNAL_REMOVETRAIT(TRAIT_MAGICALLY_PHASED)), PROC_REF(update_status_on_signal)) - + if(check_flags & AB_CHECK_OPEN_TURF) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(update_status_on_signal)) if(owner_has_control) RegisterSignal(grant_to, COMSIG_MOB_KEYDOWN, PROC_REF(keydown), override = TRUE) GiveAction(grant_to) @@ -141,6 +142,7 @@ UnregisterSignal(owner, list( COMSIG_LIVING_SET_BODY_POSITION, COMSIG_MOB_STATCHANGE, + COMSIG_MOVABLE_MOVED, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), SIGNAL_ADDTRAIT(TRAIT_IMMOBILIZED), SIGNAL_ADDTRAIT(TRAIT_INCAPACITATED), @@ -200,6 +202,10 @@ if (feedback) owner.balloon_alert(owner, "incorporeal!") return FALSE + if((check_flags & AB_CHECK_OPEN_TURF) && !isopenturf(owner.loc)) + if (feedback) + owner.balloon_alert(owner, "not enough space!") + return FALSE return TRUE /// Builds / updates all buttons we have shared or given out diff --git a/code/datums/actions/mobs/blood_warp.dm b/code/datums/actions/mobs/blood_warp.dm index 1e48c6e5aa419..d65c941f5df4a 100644 --- a/code/datums/actions/mobs/blood_warp.dm +++ b/code/datums/actions/mobs/blood_warp.dm @@ -57,11 +57,11 @@ shuffle_inplace(pools) found_bloodpool = pick(pools) if(found_bloodpool) - owner.visible_message("[owner] sinks into the blood...") - playsound(owner_turf, 'sound/magic/enter_blood.ogg', 100, TRUE, -1) + owner.visible_message(span_danger("[owner] sinks into the blood...")) + playsound(owner_turf, 'sound/effects/magic/enter_blood.ogg', 100, TRUE, -1) owner.forceMove(get_turf(found_bloodpool)) - playsound(get_turf(owner), 'sound/magic/exit_blood.ogg', 100, TRUE, -1) - owner.visible_message("And springs back out!") + playsound(get_turf(owner), 'sound/effects/magic/exit_blood.ogg', 100, TRUE, -1) + owner.visible_message(span_danger("And springs back out!")) SEND_SIGNAL(owner, COMSIG_BLOOD_WARP) return TRUE return FALSE diff --git a/code/datums/actions/mobs/chase_target.dm b/code/datums/actions/mobs/chase_target.dm index c88285dd636be..c64293a863b3e 100644 --- a/code/datums/actions/mobs/chase_target.dm +++ b/code/datums/actions/mobs/chase_target.dm @@ -31,7 +31,7 @@ /// This is the proc that actually does the throwing. Charge only adds a timer for this. /datum/action/cooldown/mob_cooldown/chase_target/proc/throw_thyself() - playsound(owner, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) + playsound(owner, 'sound/items/weapons/sonic_jackhammer.ogg', 50, TRUE) owner.throw_at(target, 7, 1.1, owner, FALSE, FALSE, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), owner, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY) /// Resets the charge buffs. diff --git a/code/datums/actions/mobs/create_legion_turrets.dm b/code/datums/actions/mobs/create_legion_turrets.dm index 5fb668ebc36d1..71427893f43da 100644 --- a/code/datums/actions/mobs/create_legion_turrets.dm +++ b/code/datums/actions/mobs/create_legion_turrets.dm @@ -18,7 +18,7 @@ /// Creates new legion turrets around the owner between the minimum and maximum /datum/action/cooldown/mob_cooldown/create_legion_turrets/proc/create(atom/target) - playsound(owner, 'sound/magic/RATTLEMEBONES.ogg', 100, TRUE) + playsound(owner, 'sound/effects/magic/RATTLEMEBONES.ogg', 100, TRUE) var/list/possible_locations = list() for(var/turf/checked_turf in oview(owner, 4)) //Only place the turrets on open turfs if(checked_turf.is_blocked_turf()) @@ -80,7 +80,7 @@ var/angle = get_angle(our_turf, target_turf) var/datum/point/vector/V = new(our_turf.x, our_turf.y, our_turf.z, 0, 0, angle) generate_tracer_between_points(V, V.return_vector_after_increments(6), /obj/effect/projectile/tracer/legion/tracer, 0, shot_delay, 0, 0, 0, null) - playsound(src, 'sound/machines/airlockopen.ogg', 100, TRUE) + playsound(src, 'sound/machines/airlock/airlockopen.ogg', 100, TRUE) addtimer(CALLBACK(src, PROC_REF(fire_beam), angle), shot_delay) /// Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction. @@ -88,13 +88,13 @@ var/obj/projectile/ouchie = new projectile_type(loc) ouchie.firer = src ouchie.fire(angle) - playsound(src, 'sound/effects/bin_close.ogg', 100, TRUE) + playsound(src, 'sound/effects/bin/bin_close.ogg', 100, TRUE) QDEL_IN(src, 0.5 SECONDS) /// Used for the legion turret. /obj/projectile/beam/legion name = "blood pulse" - hitsound = 'sound/magic/magic_missile.ogg' + hitsound = 'sound/effects/magic/magic_missile.ogg' damage = 19 range = 6 light_color = COLOR_SOFT_RED diff --git a/code/datums/actions/mobs/dash.dm b/code/datums/actions/mobs/dash.dm index 81d6f8165d92c..ad87ab93f9a79 100644 --- a/code/datums/actions/mobs/dash.dm +++ b/code/datums/actions/mobs/dash.dm @@ -52,11 +52,11 @@ new /obj/effect/temp_visual/small_smoke/halfsecond(step_forward_turf) var/obj/effect/temp_visual/decoy/fading/halfsecond/D = new (own_turf, owner) owner.forceMove(step_back_turf) - playsound(own_turf, 'sound/weapons/punchmiss.ogg', 40, TRUE, -1) + playsound(own_turf, 'sound/items/weapons/punchmiss.ogg', 40, TRUE, -1) owner.alpha = 0 animate(owner, alpha = 255, time = 5) SLEEP_CHECK_DEATH(0.2 SECONDS, owner) D.forceMove(step_forward_turf) owner.forceMove(target_turf) - playsound(target_turf, 'sound/weapons/punchmiss.ogg', 40, TRUE, -1) + playsound(target_turf, 'sound/items/weapons/punchmiss.ogg', 40, TRUE, -1) SLEEP_CHECK_DEATH(0.1 SECONDS, owner) diff --git a/code/datums/actions/mobs/fire_breath.dm b/code/datums/actions/mobs/fire_breath.dm index e52fa14d0d905..11ad04fa0df20 100644 --- a/code/datums/actions/mobs/fire_breath.dm +++ b/code/datums/actions/mobs/fire_breath.dm @@ -7,7 +7,7 @@ /// The range of the fire var/fire_range = 15 /// The sound played when you use this ability - var/fire_sound = 'sound/magic/fireball.ogg' + var/fire_sound = 'sound/effects/magic/fireball.ogg' /// Time to wait between spawning each fire turf var/fire_delay = 1.5 DECISECONDS /// How hot is our fire diff --git a/code/datums/actions/mobs/projectileattack.dm b/code/datums/actions/mobs/projectileattack.dm index d8f8e6bdf6427..933f94d0025f3 100644 --- a/code/datums/actions/mobs/projectileattack.dm +++ b/code/datums/actions/mobs/projectileattack.dm @@ -126,7 +126,7 @@ desc = "Fires projectiles in a spiral pattern." cooldown_time = 3 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' /// Whether or not the attack is the enraged form var/enraged = FALSE @@ -186,7 +186,7 @@ desc = "Fires projectiles in all directions." cooldown_time = 3 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' /datum/action/cooldown/mob_cooldown/projectile_attack/random_aoe/attack_sequence(mob/living/firer, atom/target) var/turf/U = get_turf(firer) @@ -208,7 +208,7 @@ desc = "Fires projectiles in a shotgun pattern." cooldown_time = 2 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' var/list/shot_angles = list(12.5, 7.5, 2.5, -2.5, -7.5, -12.5) /datum/action/cooldown/mob_cooldown/projectile_attack/shotgun_blast/attack_sequence(mob/living/firer, atom/target) @@ -263,7 +263,7 @@ desc = "Fires projectiles in specific directions." cooldown_time = 4 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' var/list/firing_directions /datum/action/cooldown/mob_cooldown/projectile_attack/dir_shots/New(Target) @@ -308,7 +308,7 @@ desc = "Fires a kinetic accelerator projectile at the target." cooldown_time = 1.5 SECONDS projectile_type = /obj/projectile/kinetic/miner - projectile_sound = 'sound/weapons/kinetic_accel.ogg' + projectile_sound = 'sound/items/weapons/kinetic_accel.ogg' /datum/action/cooldown/mob_cooldown/projectile_attack/kinetic_accelerator/Activate(atom/target_atom) . = ..() diff --git a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm index 5bd0f8404883d..0e6780adeac76 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm @@ -46,7 +46,7 @@ /datum/ai_planning_subtree/random_speech/insect speech_chance = 5 - sound = list('sound/creatures/chitter.ogg') + sound = list('sound/mobs/non-humanoids/insect/chitter.ogg') emote_hear = list("chitters.") /datum/ai_planning_subtree/random_speech/mothroach @@ -56,7 +56,7 @@ /datum/ai_planning_subtree/random_speech/mouse speech_chance = 1 speak = list("Squeak!", "SQUEAK!", "Squeak?") - sound = list('sound/creatures/mousesqueek.ogg') + sound = list('sound/mobs/non-humanoids/mouse/mousesqueek.ogg') emote_hear = list("squeaks.") emote_see = list("runs in a circle.", "shakes.") @@ -72,7 +72,7 @@ /datum/ai_planning_subtree/random_speech/sheep speech_chance = 5 speak = list("baaa","baaaAAAAAH!","baaah") - sound = list('sound/creatures/sheep1.ogg', 'sound/creatures/sheep2.ogg', 'sound/creatures/sheep3.ogg') + sound = list('sound/mobs/non-humanoids/sheep/sheep1.ogg', 'sound/mobs/non-humanoids/sheep/sheep2.ogg', 'sound/mobs/non-humanoids/sheep/sheep3.ogg') emote_hear = list("bleats.") emote_see = list("shakes her head.", "stares into the distance.") @@ -101,21 +101,21 @@ /datum/ai_planning_subtree/random_speech/chicken speech_chance = 15 // really talkative ladies speak = list("Cluck!", "BWAAAAARK BWAK BWAK BWAK!", "Bwaak bwak.") - sound = list('sound/creatures/clucks.ogg', 'sound/creatures/bagawk.ogg') + sound = list('sound/mobs/non-humanoids/chicken/clucks.ogg', 'sound/mobs/non-humanoids/chicken/bagawk.ogg') emote_hear = list("clucks.", "croons.") emote_see = list("pecks at the ground.","flaps her wings viciously.") /datum/ai_planning_subtree/random_speech/chick speech_chance = 4 speak = list("Cherp.", "Cherp?", "Chirrup.", "Cheep!") - sound = list('sound/creatures/chick_peep.ogg') + sound = list('sound/mobs/non-humanoids/chicken/chick_peep.ogg') emote_hear = list("cheeps.") emote_see = list("pecks at the ground.","flaps her tiny wings.") /datum/ai_planning_subtree/random_speech/cow speech_chance = 1 speak = list("moo?","moo","MOOOOOO") - sound = list('sound/creatures/cow.ogg') + sound = list('sound/mobs/non-humanoids/cow/cow.ogg') emote_hear = list("brays.") emote_see = list("shakes her head.") @@ -164,19 +164,19 @@ /datum/ai_planning_subtree/random_speech/pig speech_chance = 3 speak = list("oink?","oink","snurf") - sound = list('sound/creatures/pig1.ogg', 'sound/creatures/pig2.ogg') + sound = list('sound/mobs/non-humanoids/pig/pig1.ogg', 'sound/mobs/non-humanoids/pig/pig2.ogg') emote_hear = list("snorts.") emote_see = list("sniffs around.") /datum/ai_planning_subtree/random_speech/pony speech_chance = 3 - sound = list('sound/creatures/pony/whinny01.ogg', 'sound/creatures/pony/whinny02.ogg', 'sound/creatures/pony/whinny03.ogg') + sound = list('sound/mobs/non-humanoids/pony/whinny01.ogg', 'sound/mobs/non-humanoids/pony/whinny02.ogg', 'sound/mobs/non-humanoids/pony/whinny03.ogg') emote_hear = list("whinnies!") emote_see = list("horses around.") /datum/ai_planning_subtree/random_speech/pony/tamed speech_chance = 3 - sound = list('sound/creatures/pony/snort.ogg') + sound = list('sound/mobs/non-humanoids/pony/snort.ogg') emote_hear = list("snorts.") emote_see = list("snorts.") @@ -188,7 +188,7 @@ /datum/ai_planning_subtree/random_speech/ant speech_chance = 1 speak = list("BZZZZT!", "CHTCHTCHT!", "Bzzz", "ChtChtCht") - sound = list('sound/creatures/chitter.ogg') + sound = list('sound/mobs/non-humanoids/insect/chitter.ogg') emote_hear = list("buzzes.", "clacks.") emote_see = list("shakes their head.", "twitches their antennae.") @@ -200,7 +200,7 @@ /datum/ai_planning_subtree/random_speech/crab speech_chance = 1 - sound = list('sound/creatures/claw_click.ogg') + sound = list('sound/mobs/non-humanoids/crab/claw_click.ogg') emote_hear = list("clicks.") emote_see = list("clacks.") diff --git a/code/datums/ai/dog/dog_behaviors.dm b/code/datums/ai/dog/dog_behaviors.dm index 00a2f789e12b5..958b1f3d03de1 100644 --- a/code/datums/ai/dog/dog_behaviors.dm +++ b/code/datums/ai/dog/dog_behaviors.dm @@ -44,7 +44,7 @@ if(!SPT_PROB(20, seconds_per_tick)) return living_pawn.do_attack_animation(target, ATTACK_EFFECT_DISARM) - playsound(target, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(target, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) target.visible_message(span_danger("[living_pawn] paws ineffectually at [target]!"), span_danger("[living_pawn] paws ineffectually at you!")) /// Let them know we mean business @@ -54,4 +54,4 @@ living_pawn.manual_emote("[pick("barks", "growls", "stares")] menacingly at [target]!") if(!SPT_PROB(40, seconds_per_tick)) return - playsound(living_pawn, pick('sound/creatures/dog/growl1.ogg', 'sound/creatures/dog/growl2.ogg'), 50, TRUE, -1) + playsound(living_pawn, pick('sound/mobs/non-humanoids/dog/growl1.ogg', 'sound/mobs/non-humanoids/dog/growl2.ogg'), 50, TRUE, -1) diff --git a/code/datums/announcers/default_announcer.dm b/code/datums/announcers/default_announcer.dm index 9db822e02feff..bf24f611af842 100644 --- a/code/datums/announcers/default_announcer.dm +++ b/code/datums/announcers/default_announcer.dm @@ -1,20 +1,20 @@ /datum/centcom_announcer/default - welcome_sounds = list('sound/ai/default/welcome.ogg') - alert_sounds = list('sound/ai/default/attention.ogg') - command_report_sounds = list('sound/ai/default/commandreport.ogg') - event_sounds = list(ANNOUNCER_AIMALF = 'sound/ai/default/aimalf.ogg', - ANNOUNCER_ALIENS = 'sound/ai/default/aliens.ogg', - ANNOUNCER_ANIMES = 'sound/ai/default/animes.ogg', - ANNOUNCER_GRANOMALIES = 'sound/ai/default/granomalies.ogg', - ANNOUNCER_INTERCEPT = 'sound/ai/default/intercept.ogg', - ANNOUNCER_IONSTORM = 'sound/ai/default/ionstorm.ogg', - ANNOUNCER_METEORS = 'sound/ai/default/meteors.ogg', - ANNOUNCER_OUTBREAK5 = 'sound/ai/default/outbreak5.ogg', - ANNOUNCER_OUTBREAK7 = 'sound/ai/default/outbreak7.ogg', - ANNOUNCER_POWEROFF = 'sound/ai/default/poweroff.ogg', - ANNOUNCER_POWERON = 'sound/ai/default/poweron.ogg', - ANNOUNCER_RADIATION = 'sound/ai/default/radiation.ogg', - ANNOUNCER_SHUTTLECALLED = 'sound/ai/default/shuttlecalled.ogg', - ANNOUNCER_SHUTTLEDOCK = 'sound/ai/default/shuttledock.ogg', - ANNOUNCER_SHUTTLERECALLED = 'sound/ai/default/shuttlerecalled.ogg', - ANNOUNCER_SPANOMALIES = 'sound/ai/default/spanomalies.ogg') + welcome_sounds = list('sound/announcer/default/welcome.ogg') + alert_sounds = list('sound/announcer/default/attention.ogg') + command_report_sounds = list('sound/announcer/default/commandreport.ogg') + event_sounds = list(ANNOUNCER_AIMALF = 'sound/announcer/default/aimalf.ogg', + ANNOUNCER_ALIENS = 'sound/announcer/default/aliens.ogg', + ANNOUNCER_ANIMES = 'sound/announcer/default/animes.ogg', + ANNOUNCER_GRANOMALIES = 'sound/announcer/default/granomalies.ogg', + ANNOUNCER_INTERCEPT = 'sound/announcer/default/intercept.ogg', + ANNOUNCER_IONSTORM = 'sound/announcer/default/ionstorm.ogg', + ANNOUNCER_METEORS = 'sound/announcer/default/meteors.ogg', + ANNOUNCER_OUTBREAK5 = 'sound/announcer/default/outbreak5.ogg', + ANNOUNCER_OUTBREAK7 = 'sound/announcer/default/outbreak7.ogg', + ANNOUNCER_POWEROFF = 'sound/announcer/default/poweroff.ogg', + ANNOUNCER_POWERON = 'sound/announcer/default/poweron.ogg', + ANNOUNCER_RADIATION = 'sound/announcer/default/radiation.ogg', + ANNOUNCER_SHUTTLECALLED = 'sound/announcer/default/shuttlecalled.ogg', + ANNOUNCER_SHUTTLEDOCK = 'sound/announcer/default/shuttledock.ogg', + ANNOUNCER_SHUTTLERECALLED = 'sound/announcer/default/shuttlerecalled.ogg', + ANNOUNCER_SPANOMALIES = 'sound/announcer/default/spanomalies.ogg') diff --git a/code/datums/announcers/intern_announcer.dm b/code/datums/announcers/intern_announcer.dm index 5e8544c18710f..635508256b781 100644 --- a/code/datums/announcers/intern_announcer.dm +++ b/code/datums/announcers/intern_announcer.dm @@ -1,46 +1,46 @@ /datum/centcom_announcer/intern - welcome_sounds = list('sound/ai/intern/welcome/1.ogg', - 'sound/ai/intern/welcome/2.ogg', - 'sound/ai/intern/welcome/3.ogg', - 'sound/ai/intern/welcome/4.ogg', - 'sound/ai/intern/welcome/5.ogg', - 'sound/ai/intern/welcome/6.ogg') + welcome_sounds = list('sound/announcer/intern/welcome/1.ogg', + 'sound/announcer/intern/welcome/2.ogg', + 'sound/announcer/intern/welcome/3.ogg', + 'sound/announcer/intern/welcome/4.ogg', + 'sound/announcer/intern/welcome/5.ogg', + 'sound/announcer/intern/welcome/6.ogg') - alert_sounds = list('sound/ai/intern/alerts/1.ogg', - 'sound/ai/intern/alerts/2.ogg', - 'sound/ai/intern/alerts/3.ogg', - 'sound/ai/intern/alerts/4.ogg', - 'sound/ai/intern/alerts/5.ogg', - 'sound/ai/intern/alerts/6.ogg', - 'sound/ai/intern/alerts/7.ogg', - 'sound/ai/intern/alerts/8.ogg', - 'sound/ai/intern/alerts/9.ogg', - 'sound/ai/intern/alerts/10.ogg', - 'sound/ai/intern/alerts/11.ogg', - 'sound/ai/intern/alerts/12.ogg', - 'sound/ai/intern/alerts/13.ogg', - 'sound/ai/intern/alerts/14.ogg') + alert_sounds = list('sound/announcer/intern/alerts/1.ogg', + 'sound/announcer/intern/alerts/2.ogg', + 'sound/announcer/intern/alerts/3.ogg', + 'sound/announcer/intern/alerts/4.ogg', + 'sound/announcer/intern/alerts/5.ogg', + 'sound/announcer/intern/alerts/6.ogg', + 'sound/announcer/intern/alerts/7.ogg', + 'sound/announcer/intern/alerts/8.ogg', + 'sound/announcer/intern/alerts/9.ogg', + 'sound/announcer/intern/alerts/10.ogg', + 'sound/announcer/intern/alerts/11.ogg', + 'sound/announcer/intern/alerts/12.ogg', + 'sound/announcer/intern/alerts/13.ogg', + 'sound/announcer/intern/alerts/14.ogg') - command_report_sounds = list('sound/ai/intern/commandreport/1.ogg', - 'sound/ai/intern/commandreport/2.ogg', - 'sound/ai/intern/commandreport/3.ogg') + command_report_sounds = list('sound/announcer/intern/commandreport/1.ogg', + 'sound/announcer/intern/commandreport/2.ogg', + 'sound/announcer/intern/commandreport/3.ogg') - event_sounds = list(ANNOUNCER_AIMALF = 'sound/ai/default/aimalf.ogg', - ANNOUNCER_ALIENS = 'sound/ai/intern/aliens.ogg', - ANNOUNCER_ANIMES = 'sound/ai/intern/animes.ogg', - ANNOUNCER_GRANOMALIES = 'sound/ai/intern/granomalies.ogg', - ANNOUNCER_INTERCEPT = 'sound/ai/intern/intercept.ogg', - ANNOUNCER_IONSTORM = 'sound/ai/intern/ionstorm.ogg', - ANNOUNCER_METEORS = 'sound/ai/intern/meteors.ogg', - ANNOUNCER_OUTBREAK5 = 'sound/ai/intern/outbreak5.ogg', - ANNOUNCER_OUTBREAK7 = 'sound/ai/intern/outbreak7.ogg', - ANNOUNCER_POWEROFF = 'sound/ai/intern/poweroff.ogg', - ANNOUNCER_POWERON = 'sound/ai/intern/poweron.ogg', - ANNOUNCER_RADIATION = 'sound/ai/intern/radiation.ogg', - ANNOUNCER_SHUTTLECALLED = 'sound/ai/intern/shuttlecalled.ogg', - ANNOUNCER_SHUTTLEDOCK = 'sound/ai/intern/shuttledock.ogg', - ANNOUNCER_SHUTTLERECALLED = 'sound/ai/intern/shuttlerecalled.ogg', - ANNOUNCER_SPANOMALIES = 'sound/ai/intern/spanomalies.ogg') + event_sounds = list(ANNOUNCER_AIMALF = 'sound/announcer/default/aimalf.ogg', + ANNOUNCER_ALIENS = 'sound/announcer/intern/aliens.ogg', + ANNOUNCER_ANIMES = 'sound/announcer/intern/animes.ogg', + ANNOUNCER_GRANOMALIES = 'sound/announcer/intern/granomalies.ogg', + ANNOUNCER_INTERCEPT = 'sound/announcer/intern/intercept.ogg', + ANNOUNCER_IONSTORM = 'sound/announcer/intern/ionstorm.ogg', + ANNOUNCER_METEORS = 'sound/announcer/intern/meteors.ogg', + ANNOUNCER_OUTBREAK5 = 'sound/announcer/intern/outbreak5.ogg', + ANNOUNCER_OUTBREAK7 = 'sound/announcer/intern/outbreak7.ogg', + ANNOUNCER_POWEROFF = 'sound/announcer/intern/poweroff.ogg', + ANNOUNCER_POWERON = 'sound/announcer/intern/poweron.ogg', + ANNOUNCER_RADIATION = 'sound/announcer/intern/radiation.ogg', + ANNOUNCER_SHUTTLECALLED = 'sound/announcer/intern/shuttlecalled.ogg', + ANNOUNCER_SHUTTLEDOCK = 'sound/announcer/intern/shuttledock.ogg', + ANNOUNCER_SHUTTLERECALLED = 'sound/announcer/intern/shuttlerecalled.ogg', + ANNOUNCER_SPANOMALIES = 'sound/announcer/intern/spanomalies.ogg') - custom_alert_message = "Please stand by for an important message from our new intern.
" + custom_alert_message = span_alert("Please stand by for an important message from our new intern.
") diff --git a/code/datums/announcers/medbot_announcer.dm b/code/datums/announcers/medbot_announcer.dm index 17e8555221320..7269fe85c5703 100644 --- a/code/datums/announcers/medbot_announcer.dm +++ b/code/datums/announcers/medbot_announcer.dm @@ -1,21 +1,21 @@ /datum/centcom_announcer/medbot - welcome_sounds = list('sound/ai/medbot/welcome.ogg', - 'sound/ai/medbot/newAI.ogg') - alert_sounds = list('sound/ai/medbot/attention.ogg') - command_report_sounds = list('sound/ai/medbot/commandreport.ogg') - event_sounds = list(ANNOUNCER_AIMALF = 'sound/ai/default/aimalf.ogg', - ANNOUNCER_ALIENS = 'sound/ai/medbot/aliens.ogg', - ANNOUNCER_ANIMES = 'sound/ai/medbot/animes.ogg', - ANNOUNCER_GRANOMALIES = 'sound/ai/medbot/granomalies.ogg', - ANNOUNCER_INTERCEPT = 'sound/ai/medbot/intercept.ogg', - ANNOUNCER_IONSTORM = 'sound/ai/medbot/ionstorm.ogg', - ANNOUNCER_METEORS = 'sound/ai/medbot/meteors.ogg', - ANNOUNCER_OUTBREAK5 = 'sound/ai/medbot/outbreak5.ogg', - ANNOUNCER_OUTBREAK7 = 'sound/ai/medbot/outbreak7.ogg', - ANNOUNCER_POWEROFF = 'sound/ai/medbot/poweroff.ogg', - ANNOUNCER_POWERON = 'sound/ai/medbot/poweron.ogg', - ANNOUNCER_RADIATION = 'sound/ai/medbot/radiation.ogg', - ANNOUNCER_SHUTTLECALLED = 'sound/ai/medbot/shuttlecalled.ogg', - ANNOUNCER_SHUTTLEDOCK = 'sound/ai/medbot/shuttledock.ogg', - ANNOUNCER_SHUTTLERECALLED = 'sound/ai/medbot/shuttlerecalled.ogg', - ANNOUNCER_SPANOMALIES = 'sound/ai/medbot/spanomalies.ogg') + welcome_sounds = list('sound/announcer/medbot/welcome.ogg', + 'sound/announcer/medbot/newAI.ogg') + alert_sounds = list('sound/announcer/medbot/attention.ogg') + command_report_sounds = list('sound/announcer/medbot/commandreport.ogg') + event_sounds = list(ANNOUNCER_AIMALF = 'sound/announcer/default/aimalf.ogg', + ANNOUNCER_ALIENS = 'sound/announcer/medbot/aliens.ogg', + ANNOUNCER_ANIMES = 'sound/announcer/medbot/animes.ogg', + ANNOUNCER_GRANOMALIES = 'sound/announcer/medbot/granomalies.ogg', + ANNOUNCER_INTERCEPT = 'sound/announcer/medbot/intercept.ogg', + ANNOUNCER_IONSTORM = 'sound/announcer/medbot/ionstorm.ogg', + ANNOUNCER_METEORS = 'sound/announcer/medbot/meteors.ogg', + ANNOUNCER_OUTBREAK5 = 'sound/announcer/medbot/outbreak5.ogg', + ANNOUNCER_OUTBREAK7 = 'sound/announcer/medbot/outbreak7.ogg', + ANNOUNCER_POWEROFF = 'sound/announcer/medbot/poweroff.ogg', + ANNOUNCER_POWERON = 'sound/announcer/medbot/poweron.ogg', + ANNOUNCER_RADIATION = 'sound/announcer/medbot/radiation.ogg', + ANNOUNCER_SHUTTLECALLED = 'sound/announcer/medbot/shuttlecalled.ogg', + ANNOUNCER_SHUTTLEDOCK = 'sound/announcer/medbot/shuttledock.ogg', + ANNOUNCER_SHUTTLERECALLED = 'sound/announcer/medbot/shuttlerecalled.ogg', + ANNOUNCER_SPANOMALIES = 'sound/announcer/medbot/spanomalies.ogg') diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 708a416301159..ad27ee5ee3edf 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -212,6 +212,9 @@ /obj/effect/ebeam/singularity_act() return +/obj/effect/ebeam/Process_Spacemove(movement_dir, continuous_move) + return TRUE + /// A beam subtype used for advanced beams, to react to atoms entering the beam /obj/effect/ebeam/reacting /// If TRUE, atoms that exist in the beam's loc when inited count as "entering" the beam diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 99467c570990f..da0388f6c54d2 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -1,3 +1,8 @@ + +#define IMAGINARY_FRIEND_RANGE 9 +#define IMAGINARY_FRIEND_SPEECH_RANGE IMAGINARY_FRIEND_RANGE +#define IMAGINARY_FRIEND_EXTENDED_SPEECH_RANGE 999 + /datum/brain_trauma/special/imaginary_friend name = "Imaginary Friend" desc = "Patient can see and hear an imaginary person." @@ -88,11 +93,15 @@ var/mob/living/owner var/bubble_icon = "default" + /// Whether our host and other imaginary friends can hear us only when nearby or practically anywhere. + var/extended_message_range = TRUE + /mob/camera/imaginary_friend/Login() . = ..() if(!. || !client) return FALSE - greet() + if(owner) + greet() Show() /mob/camera/imaginary_friend/proc/greet() @@ -119,6 +128,7 @@ if(!owner.imaginary_group) owner.imaginary_group = list(owner) owner.imaginary_group += src + greet() /// Copies appearance from passed player prefs, or randomises them if none are provided /mob/camera/imaginary_friend/proc/setup_appearance(datum/preferences/appearance_from_prefs = null) @@ -212,7 +222,7 @@ create_chat_message(speaker, message_language, raw_message, spans) to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mods)) -/mob/camera/imaginary_friend/send_speech(message, range = 7, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) +/mob/camera/imaginary_friend/send_speech(message, range = IMAGINARY_FRIEND_SPEECH_RANGE, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) message = get_message_mods(message, message_mods) message = capitalize(message) @@ -232,6 +242,9 @@ message = "[randomnote] [capitalize(message)] [randomnote]" spans |= SPAN_SINGING + if(extended_message_range) + range = IMAGINARY_FRIEND_EXTENDED_SPEECH_RANGE + var/eavesdrop_range = 0 if (message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) @@ -528,3 +541,7 @@ real_name = "[owner.real_name]?" name = real_name human_image = icon('icons/mob/simple/lavaland/lavaland_monsters.dmi', icon_state = "curseblob") + +#undef IMAGINARY_FRIEND_RANGE +#undef IMAGINARY_FRIEND_SPEECH_RANGE +#undef IMAGINARY_FRIEND_EXTENDED_SPEECH_RANGE diff --git a/code/datums/brain_damage/magic.dm b/code/datums/brain_damage/magic.dm index 441d220a5ded3..fde1e5d2421f1 100644 --- a/code/datums/brain_damage/magic.dm +++ b/code/datums/brain_damage/magic.dm @@ -104,14 +104,14 @@ create_stalker() if(get_dist(owner, stalker) <= 1) - playsound(owner, 'sound/magic/demon_attack1.ogg', 50) + playsound(owner, 'sound/effects/magic/demon_attack1.ogg', 50) owner.visible_message(span_warning("[owner] is torn apart by invisible claws!"), span_userdanger("Ghostly claws tear your body apart!")) owner.take_bodypart_damage(rand(20, 45), wound_bonus=CANT_WOUND) else if(SPT_PROB(30, seconds_per_tick)) stalker.forceMove(get_step_towards(stalker, owner)) if(get_dist(owner, stalker) <= 8) if(!close_stalker) - var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) + var/sound/slowbeat = sound('sound/effects/health/slowbeat.ogg', repeat = TRUE) owner.playsound_local(owner, slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) close_stalker = TRUE else diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 1bf011e0fab49..f49a6d0c0bc52 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -45,7 +45,7 @@ else message = pick_list_replacements(BRAIN_DAMAGE_FILE, "god_neutral") - playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 200, TRUE, 5) + playsound(get_turf(owner), 'sound/effects/magic/clockwork/invoke_general.ogg', 200, TRUE, 5) voice_of_god(message, owner, list("colossus","yell"), 2.5, include_owner, name, TRUE) /datum/brain_trauma/special/bluespace_prophet @@ -218,7 +218,7 @@ linked = FALSE return to_chat(owner, span_warning("Your connection to [linked_target] suddenly feels extremely strong... you can feel it pulling you!")) - owner.playsound_local(owner, 'sound/magic/lightning_chargeup.ogg', 75, FALSE) + owner.playsound_local(owner, 'sound/effects/magic/lightning_chargeup.ogg', 75, FALSE) returning = TRUE addtimer(CALLBACK(src, PROC_REF(snapback)), 10 SECONDS) @@ -231,7 +231,7 @@ return to_chat(owner, span_warning("You're pulled through spacetime!")) do_teleport(owner, get_turf(linked_target), null, channel = TELEPORT_CHANNEL_QUANTUM) - owner.playsound_local(owner, 'sound/magic/repulse.ogg', 100, FALSE) + owner.playsound_local(owner, 'sound/effects/magic/repulse.ogg', 100, FALSE) linked_target = null linked = FALSE @@ -388,17 +388,17 @@ if(owner.stat != CONSCIOUS) if(prob(20)) - owner.playsound_local(beepsky, 'sound/voice/beepsky/iamthelaw.ogg', 50) + owner.playsound_local(beepsky, 'sound/mobs/non-humanoids/beepsky/iamthelaw.ogg', 50) return if(get_dist(owner, beepsky) <= 1) - owner.playsound_local(owner, 'sound/weapons/egloves.ogg', 50) + owner.playsound_local(owner, 'sound/items/weapons/egloves.ogg', 50) owner.visible_message(span_warning("[owner]'s body jerks as if it was shocked."), span_userdanger("You feel the fist of the LAW.")) owner.adjustStaminaLoss(rand(40, 70)) QDEL_NULL(beepsky) if(prob(20) && get_dist(owner, beepsky) <= 8) - owner.playsound_local(beepsky, 'sound/voice/beepsky/criminal.ogg', 40) + owner.playsound_local(beepsky, 'sound/mobs/non-humanoids/beepsky/criminal.ogg', 40) /obj/effect/client_image_holder/securitron name = "Securitron" diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 6d0f8fc565415..198b674631750 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -305,7 +305,7 @@ addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_DISCOORDINATED_TOOL_USER, TRAUMA_TRAIT), 10 SECONDS) addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, balloon_alert), owner, "dexterity regained!"), 10 SECONDS) if(prob(15)) - playsound(owner,'sound/effects/sf_hiccup_male_01.ogg', 50) + playsound(owner,'sound/mobs/humanoids/human/hiccup/sf_hiccup_male_01.ogg', 50) owner.emote("hiccup") //too drunk to feel anything //if they're to this point, they're likely dying of liver damage diff --git a/code/datums/candidate_poll.dm b/code/datums/candidate_poll.dm index f1fa9812014ed..9afec6f371bb6 100644 --- a/code/datums/candidate_poll.dm +++ b/code/datums/candidate_poll.dm @@ -74,7 +74,7 @@ if(time_left() <= 0) if(!silent) to_chat(candidate, span_danger("Sorry, you were too late for the consideration!")) - SEND_SOUND(candidate, 'sound/machines/buzz-sigh.ogg') + SEND_SOUND(candidate, 'sound/machines/buzz/buzz-sigh.ogg') return FALSE signed_up += candidate diff --git a/code/datums/cinematics/malf_doomsday.dm b/code/datums/cinematics/malf_doomsday.dm index 2eb330d9a484f..02297065afc45 100644 --- a/code/datums/cinematics/malf_doomsday.dm +++ b/code/datums/cinematics/malf_doomsday.dm @@ -5,6 +5,6 @@ flick("intro_malf", screen) stoplag(7.6 SECONDS) flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) special_callback?.Invoke() screen.icon_state = "summary_malf" diff --git a/code/datums/cinematics/narsie_summon.dm b/code/datums/cinematics/narsie_summon.dm index 2fecac2c63a80..1e0a5d1d48f94 100644 --- a/code/datums/cinematics/narsie_summon.dm +++ b/code/datums/cinematics/narsie_summon.dm @@ -5,9 +5,9 @@ screen.icon_state = null flick("intro_cult", screen) stoplag(2.5 SECONDS) - play_cinematic_sound(sound('sound/magic/enter_blood.ogg')) + play_cinematic_sound(sound('sound/effects/magic/enter_blood.ogg')) stoplag(2.8 SECONDS) - play_cinematic_sound(sound('sound/machines/terminal_off.ogg')) + play_cinematic_sound(sound('sound/machines/terminal/terminal_off.ogg')) stoplag(2 SECONDS) flick("station_corrupted", screen) play_cinematic_sound(sound('sound/effects/ghost.ogg')) @@ -20,10 +20,10 @@ /datum/cinematic/cult_fail/play_cinematic() screen.icon_state = "station_intact" stoplag(2 SECONDS) - play_cinematic_sound(sound('sound/creatures/narsie_rises.ogg')) + play_cinematic_sound(sound('sound/music/antag/bloodcult/narsie_rises.ogg')) stoplag(6 SECONDS) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) stoplag(1 SECONDS) - play_cinematic_sound(sound('sound/magic/demon_dies.ogg')) + play_cinematic_sound(sound('sound/effects/magic/demon_dies.ogg')) stoplag(3 SECONDS) special_callback?.Invoke() diff --git a/code/datums/cinematics/nuke_cinematics.dm b/code/datums/cinematics/nuke_cinematics.dm index dd827f7c0b9fd..858d95c7e5102 100644 --- a/code/datums/cinematics/nuke_cinematics.dm +++ b/code/datums/cinematics/nuke_cinematics.dm @@ -22,7 +22,7 @@ /datum/cinematic/nuke/ops_victory/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// The syndicate nuclear bomb was activated, but just barely missed the station! /datum/cinematic/nuke/ops_miss @@ -30,7 +30,7 @@ /datum/cinematic/nuke/ops_miss/play_nuke_effect() flick("station_intact_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// The self destruct, or another station-destroying entity like a blob, destroyed the station! /datum/cinematic/nuke/self_destruct @@ -38,14 +38,14 @@ /datum/cinematic/nuke/self_destruct/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// The self destruct was activated, yet somehow avoided destroying the station! /datum/cinematic/nuke/self_destruct_miss after_nuke_summary_state = "station_intact" /datum/cinematic/nuke/self_destruct_miss/play_nuke_effect() - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) special_callback?.Invoke() /// The syndicate nuclear bomb was activated, and the nuclear operatives failed to extract on their shuttle before it detonated on the station! @@ -54,7 +54,7 @@ /datum/cinematic/nuke/mutual_destruction/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// A blood cult summoned Nar'sie, but central command deployed a nuclear package to stop them. /datum/cinematic/nuke/cult @@ -62,7 +62,7 @@ /datum/cinematic/nuke/cult/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// A fake version of the nuclear detonation, where it winds up, but doesn't explode. /datum/cinematic/nuke/fake @@ -77,7 +77,7 @@ cleanup_time = 10 SECONDS /datum/cinematic/nuke/clown/play_nuke_effect() - play_cinematic_sound(sound('sound/items/airhorn.ogg')) + play_cinematic_sound(sound('sound/items/airhorn/airhorn.ogg')) flick("summary_selfdes", screen) //??? /// A fake version of the nuclear detonation, where it winds up, but doesn't explode as the nuke core within was missing. @@ -86,7 +86,7 @@ /datum/cinematic/nuke/no_core/play_nuke_effect() flick("station_intact", screen) - play_cinematic_sound(sound('sound/ambience/signal.ogg')) + play_cinematic_sound(sound('sound/ambience/misc/signal.ogg')) stoplag(10 SECONDS) /// The syndicate nuclear bomb was activated, but just missed the station by a whole z-level! @@ -96,5 +96,5 @@ /datum/cinematic/nuke/far_explosion/play_cinematic() // This one has no intro sequence. // It's actually just a global sound, which makes you wonder why it's a cinematic. - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) special_callback?.Invoke() diff --git a/code/datums/communications.dm b/code/datums/communications.dm index 92e5fdcfd74ac..6df6b1e07bb34 100644 --- a/code/datums/communications.dm +++ b/code/datums/communications.dm @@ -37,9 +37,9 @@ GLOBAL_DATUM_INIT(communications_controller, /datum/communciations_controller, n else var/list/message_data = user.treat_message(input) if(syndicate) - priority_announce(html_decode(message_data["message"]), null, 'sound/misc/announce_syndi.ogg', ANNOUNCEMENT_TYPE_SYNDICATE, has_important_message = TRUE, players = players, color_override = "red") + priority_announce(html_decode(message_data["message"]), null, 'sound/announcer/announcement/announce_syndi.ogg', ANNOUNCEMENT_TYPE_SYNDICATE, has_important_message = TRUE, players = players, color_override = "red") else - priority_announce(html_decode(message_data["message"]), null, 'sound/misc/announce.ogg', ANNOUNCEMENT_TYPE_CAPTAIN, has_important_message = TRUE, players = players) + priority_announce(html_decode(message_data["message"]), null, 'sound/announcer/announcement/announce.ogg', ANNOUNCEMENT_TYPE_CAPTAIN, has_important_message = TRUE, players = players) COOLDOWN_START(src, nonsilicon_message_cooldown, COMMUNICATION_COOLDOWN) user.log_talk(input, LOG_SAY, tag="priority announcement") message_admins("[ADMIN_LOOKUPFLW(user)] has made a priority announcement.") diff --git a/code/datums/components/chuunibyou.dm b/code/datums/components/chuunibyou.dm index 5724b93488f49..5373b3f798754 100644 --- a/code/datums/components/chuunibyou.dm +++ b/code/datums/components/chuunibyou.dm @@ -71,7 +71,7 @@ /datum/component/chuunibyou/proc/on_spell_projectile(mob/living/source, datum/action/cooldown/spell/spell, atom/cast_on, obj/projectile/to_fire) SIGNAL_HANDLER - playsound(to_fire,'sound/magic/staff_change.ogg', 75, TRUE) + playsound(to_fire,'sound/effects/magic/staff_change.ogg', 75, TRUE) to_fire.color = "#f825f8" to_fire.name = "chuuni-[to_fire.name]" to_fire.set_light(2, 2, LIGHT_COLOR_PINK, l_on = TRUE) @@ -101,7 +101,7 @@ COOLDOWN_START(src, heal_cooldown, CHUUNIBYOU_COOLDOWN_TIME) source.heal_overall_damage(heal_amount) - playsound(source, 'sound/magic/staff_healing.ogg', 30) + playsound(source, 'sound/effects/magic/staff_healing.ogg', 30) to_chat(source, span_danger("You feel slightly healed by your chuuni powers.")) /datum/component/chuunibyou/no_healing diff --git a/code/datums/components/crafting/equipment.dm b/code/datums/components/crafting/equipment.dm index dfd79e696224c..2546106d40327 100644 --- a/code/datums/components/crafting/equipment.dm +++ b/code/datums/components/crafting/equipment.dm @@ -282,3 +282,15 @@ ) category = CAT_EQUIPMENT tool_behaviors = list(TOOL_WELDER, TOOL_WIRECUTTER) + +/datum/crafting_recipe/tether_anchor + name = "Tether Anchor" + result = /obj/item/tether_anchor + reqs = list( + /obj/item/stack/sheet/iron = 5, + /obj/item/stack/rods = 2, + /obj/item/stack/cable_coil = 15 + ) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WRENCH) + time = 5 SECONDS + category = CAT_EQUIPMENT diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index bfd2385f89e01..e69d535a58b30 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -339,8 +339,7 @@ /obj/item/stack/rods = 4, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/capacitor = 1, - /obj/item/clothing/glasses/regular = 1, - /obj/item/reagent_containers/cup/glass/drinkingglass = 1, + /obj/item/reagent_containers/cup/glass/drinkingglass = 2, ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) time = 10 SECONDS diff --git a/code/datums/components/crank_recharge.dm b/code/datums/components/crank_recharge.dm index 1f2272a8debc2..4940a02b0553e 100644 --- a/code/datums/components/crank_recharge.dm +++ b/code/datums/components/crank_recharge.dm @@ -14,9 +14,11 @@ var/charge_sound_cooldown_time /// Are we currently charging var/is_charging = FALSE + /// Should you be able to move while charging, use IGNORE_USER_LOC_CHANGE if you want to move and crank + var/charge_move = NONE COOLDOWN_DECLARE(charge_sound_cooldown) -/datum/component/crank_recharge/Initialize(charging_cell, spin_to_win = FALSE, charge_amount = 500, cooldown_time = 2 SECONDS, charge_sound = 'sound/weapons/laser_crank.ogg', charge_sound_cooldown_time = 1.8 SECONDS) +/datum/component/crank_recharge/Initialize(charging_cell, spin_to_win = FALSE, charge_amount = 500, cooldown_time = 2 SECONDS, charge_sound = 'sound/items/weapons/laser_crank.ogg', charge_sound_cooldown_time = 1.8 SECONDS, charge_move = NONE) . = ..() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE @@ -28,7 +30,7 @@ src.cooldown_time = cooldown_time src.charge_sound = charge_sound src.charge_sound_cooldown_time = charge_sound_cooldown_time - + src.charge_move = charge_move /datum/component/crank_recharge/RegisterWithParent() . = ..() RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) @@ -57,7 +59,7 @@ COOLDOWN_START(src, charge_sound_cooldown, charge_sound_cooldown_time) playsound(source, charge_sound, 40) source.balloon_alert(user, "charging...") - if(!do_after(user, cooldown_time, source, interaction_key = DOAFTER_SOURCE_CHARGE_CRANKRECHARGE)) + if(!do_after(user, cooldown_time, source, interaction_key = DOAFTER_SOURCE_CHARGE_CRANKRECHARGE, timed_action_flags = charge_move)) is_charging = FALSE return charging_cell.give(charge_amount) diff --git a/code/datums/components/cuff_n_stun.dm b/code/datums/components/cuff_n_stun.dm index d238a81f06a24..fda9618e93c14 100644 --- a/code/datums/components/cuff_n_stun.dm +++ b/code/datums/components/cuff_n_stun.dm @@ -22,7 +22,7 @@ COOLDOWN_DECLARE(stun_cooldown) /datum/component/stun_n_cuff/Initialize(list/blacklist_mobs = list(), - stun_sound = 'sound/weapons/egloves.ogg', + stun_sound = 'sound/items/weapons/egloves.ogg', stun_timer = 8 SECONDS, handcuff_timer = 4 SECONDS, stun_cooldown_timer = 10 SECONDS, @@ -75,7 +75,7 @@ living_parent.balloon_alert(human_target, "already cuffed!") return - playsound(parent, 'sound/weapons/cablecuff.ogg', 30, TRUE) + playsound(parent, 'sound/items/weapons/cablecuff.ogg', 30, TRUE) human_target.visible_message(span_danger("[parent] is trying to put zipties on [human_target]!"),\ span_danger("[parent] is trying to put zipties on you!")) diff --git a/code/datums/components/cult_ritual_item.dm b/code/datums/components/cult_ritual_item.dm index 71e07e6380e11..554e3d611ba2d 100644 --- a/code/datums/components/cult_ritual_item.dm +++ b/code/datums/components/cult_ritual_item.dm @@ -176,7 +176,7 @@ * cultist - the mob doing the destroying */ /datum/component/cult_ritual_item/proc/do_destroy_girder(obj/structure/girder/cult/cult_girder, mob/living/cultist) - playsound(cult_girder, 'sound/weapons/resonator_blast.ogg', 40, TRUE, ignore_walls = FALSE) + playsound(cult_girder, 'sound/items/weapons/resonator_blast.ogg', 40, TRUE, ignore_walls = FALSE) cultist.visible_message( span_warning("[cultist] strikes [cult_girder] with [parent]!"), span_notice("You demolish [cult_girder].") @@ -320,7 +320,7 @@ if(scribe_failed) failed = CALLBACK(GLOBAL_PROC, scribe_failed) - SEND_SOUND(cultist, sound('sound/weapons/slice.ogg', 0, 1, 10)) + SEND_SOUND(cultist, sound('sound/items/weapons/slice.ogg', 0, 1, 10)) if(!do_after(cultist, scribe_mod, target = get_turf(cultist), timed_action_flags = IGNORE_SLOWDOWNS)) cleanup_shields() failed?.Invoke() @@ -371,7 +371,7 @@ var/area/summon_location = get_area(cultist) priority_announce( text = "Figments from an eldritch god are being summoned by [cultist.real_name] into [summon_location.get_original_area_name()] from an unknown dimension. Disrupt the ritual at all costs!", - sound = 'sound/ambience/antag/bloodcult/bloodcult_scribe.ogg', + sound = 'sound/music/antag/bloodcult/bloodcult_scribe.ogg', sender_override = "[command_name()] Higher Dimensional Affairs", has_important_message = TRUE, ) diff --git a/code/datums/components/deployable.dm b/code/datums/components/deployable.dm index f45a5b226c39d..ac0f006fb6cde 100644 --- a/code/datums/components/deployable.dm +++ b/code/datums/components/deployable.dm @@ -68,7 +68,7 @@ return new_direction = user.dir //Gets the direction for thing_to_be_deployed if there is a user source.balloon_alert(user, "deploying...") - playsound(source, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(source, 'sound/items/tools/ratchet.ogg', 50, TRUE) if(!do_after(user, deploy_time)) return else // If there is for some reason no user, then the location and direction are set here diff --git a/code/datums/components/direct_explosive_trap.dm b/code/datums/components/direct_explosive_trap.dm index e3a125eb928ed..1372c569bbade 100644 --- a/code/datums/components/direct_explosive_trap.dm +++ b/code/datums/components/direct_explosive_trap.dm @@ -74,7 +74,7 @@ to_chat(victim, span_bolddanger("[source] was boobytrapped!")) if (!isnull(saboteur)) to_chat(saboteur, span_bolddanger("Success! Your trap on [source] caught [victim.name]!")) - playsound(source, 'sound/effects/explosion2.ogg', 200, TRUE) + playsound(source, 'sound/effects/explosion/explosion2.ogg', 200, TRUE) new /obj/effect/temp_visual/explosion(get_turf(source)) EX_ACT(victim, explosive_force) qdel(src) diff --git a/code/datums/components/drift.dm b/code/datums/components/drift.dm deleted file mode 100644 index 7fba50d315178..0000000000000 --- a/code/datums/components/drift.dm +++ /dev/null @@ -1,194 +0,0 @@ -///Component that handles drifting -///Manages a movement loop that actually does the legwork of moving someone -///Alongside dealing with the post movement input blocking required to make things look nice -/datum/component/drift - var/atom/inertia_last_loc - var/old_dir - var/datum/move_loop/move/drifting_loop - ///Should we ignore the next glide rate input we get? - ///This is to some extent a hack around the order of operations - ///Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad - var/ignore_next_glide = FALSE - ///Have we been delayed? IE: active, but not working right this second? - var/delayed = FALSE - var/block_inputs_until - -/// Accepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start -/datum/component/drift/Initialize(direction, instant = FALSE, start_delay = 0) - if(!ismovable(parent)) - return COMPONENT_INCOMPATIBLE - . = ..() - - var/flags = MOVEMENT_LOOP_OUTSIDE_CONTROL - if(instant) - flags |= MOVEMENT_LOOP_START_FAST - var/atom/movable/movable_parent = parent - drifting_loop = GLOB.move_manager.move(moving = parent, direction = direction, delay = movable_parent.inertia_move_delay, subsystem = SSspacedrift, priority = MOVEMENT_SPACE_PRIORITY, flags = flags) - - if(!drifting_loop) //Really want to qdel here but can't - return COMPONENT_INCOMPATIBLE - - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_START, PROC_REF(drifting_start)) - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_STOP, PROC_REF(drifting_stop)) - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_PREPROCESS_CHECK, PROC_REF(before_move)) - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(after_move)) - RegisterSignal(drifting_loop, COMSIG_QDELETING, PROC_REF(loop_death)) - RegisterSignal(movable_parent, COMSIG_MOVABLE_NEWTONIAN_MOVE, PROC_REF(newtonian_impulse)) - if(drifting_loop.status & MOVELOOP_STATUS_RUNNING) - drifting_start(drifting_loop) // There's a good chance it'll autostart, gotta catch that - - var/visual_delay = movable_parent.inertia_move_delay - - // Start delay is essentially a more granular version of instant - // Isn't used in the standard case, just for things that have odd wants - if(!instant && start_delay) - drifting_loop.pause_for(start_delay) - visual_delay = start_delay - - apply_initial_visuals(visual_delay) - -/datum/component/drift/Destroy() - inertia_last_loc = null - if(!QDELETED(drifting_loop)) - qdel(drifting_loop) - drifting_loop = null - var/atom/movable/movable_parent = parent - movable_parent.inertia_moving = FALSE - return ..() - -/datum/component/drift/proc/apply_initial_visuals(visual_delay) - // If something "somewhere" doesn't want us to apply our glidesize delays, don't - if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) & DRIFT_VISUAL_FAILED) - return - - // Ignore the next glide because it's literally just us - ignore_next_glide = TRUE - var/atom/movable/movable_parent = parent - movable_parent.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSspacedrift.visual_delay)) - if(ismob(parent)) - var/mob/mob_parent = parent - //Ok this is slightly weird, but basically, we need to force the client to glide at our rate - //Make sure moving into a space move looks like a space move essentially - //There is an inbuilt assumption that gliding will be added as a part of a move call, but eh - //It's ok if it's not, it's just important if it is. - mob_parent.client?.visual_delay = MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSspacedrift.visual_delay) - -/datum/component/drift/proc/newtonian_impulse(datum/source, inertia_direction) - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - inertia_last_loc = movable_parent.loc - if(drifting_loop) - drifting_loop.direction = inertia_direction - if(!inertia_direction) - qdel(src) - return COMPONENT_MOVABLE_NEWTONIAN_BLOCK - -/datum/component/drift/proc/drifting_start() - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - inertia_last_loc = movable_parent.loc - RegisterSignal(movable_parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_move)) - // We will use glide size to intuit how long to delay our loop's next move for - // This way you can't ride two movements at once while drifting, since that'd be dumb as fuck - RegisterSignal(movable_parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(handle_glidesize_update)) - // If you stop pulling something mid drift, I want it to retain that momentum - RegisterSignal(movable_parent, COMSIG_ATOM_NO_LONGER_PULLING, PROC_REF(stopped_pulling)) - -/datum/component/drift/proc/drifting_stop() - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - movable_parent.inertia_moving = FALSE - ignore_next_glide = FALSE - UnregisterSignal(movable_parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, COMSIG_ATOM_NO_LONGER_PULLING)) - -/datum/component/drift/proc/before_move(datum/source) - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - movable_parent.inertia_moving = TRUE - old_dir = movable_parent.dir - delayed = FALSE - -/datum/component/drift/proc/after_move(datum/source, result, visual_delay) - SIGNAL_HANDLER - if(result == MOVELOOP_FAILURE) - qdel(src) - return - - var/atom/movable/movable_parent = parent - movable_parent.setDir(old_dir) - movable_parent.inertia_moving = FALSE - if(movable_parent.Process_Spacemove(drifting_loop.direction, continuous_move = TRUE)) - glide_to_halt(visual_delay) - return - - inertia_last_loc = movable_parent.loc - ignore_next_glide = TRUE - -/datum/component/drift/proc/loop_death(datum/source) - SIGNAL_HANDLER - drifting_loop = null - UnregisterSignal(parent, COMSIG_MOVABLE_NEWTONIAN_MOVE) // We won't block a component from replacing us anymore - -/datum/component/drift/proc/handle_move(datum/source, old_loc) - SIGNAL_HANDLER - // This can happen, because signals once sent cannot be stopped - if(QDELETED(src)) - return - var/atom/movable/movable_parent = parent - if(!isturf(movable_parent.loc)) - qdel(src) - return - if(movable_parent.inertia_moving) - return - if(!movable_parent.Process_Spacemove(drifting_loop.direction, continuous_move = TRUE)) - return - qdel(src) - -/// We're going to take the passed in glide size -/// and use it to manually delay our loop for that period -/// to allow the other movement to complete -/datum/component/drift/proc/handle_glidesize_update(datum/source, glide_size) - SIGNAL_HANDLER - // If we aren't drifting, or this is us, fuck off - var/atom/movable/movable_parent = parent - if(!drifting_loop || movable_parent.inertia_moving) - return - // If we are drifting, but this set came from the moveloop itself, drop the input - // I'm sorry man - if(ignore_next_glide) - ignore_next_glide = FALSE - return - var/glide_delay = round(world.icon_size / glide_size, 1) * world.tick_lag - drifting_loop.pause_for(glide_delay) - delayed = TRUE - -/// If we're pulling something and stop, we want it to continue at our rate and such -/datum/component/drift/proc/stopped_pulling(datum/source, atom/movable/was_pulling) - SIGNAL_HANDLER - // This does mean it falls very slightly behind, but otherwise they'll potentially run into us - var/next_move_in = drifting_loop.timer - world.time + world.tick_lag - was_pulling.newtonian_move(drifting_loop.direction, start_delay = next_move_in) - -/datum/component/drift/proc/glide_to_halt(glide_for) - if(!ismob(parent)) - qdel(src) - return - - var/mob/mob_parent = parent - var/client/our_client = mob_parent.client - // If we're not active, don't do the glide because it'll look dumb as fuck - if(!our_client || delayed) - qdel(src) - return - - block_inputs_until = world.time + glide_for - QDEL_IN(src, glide_for + 1) - qdel(drifting_loop) - RegisterSignal(parent, COMSIG_MOB_CLIENT_PRE_MOVE, PROC_REF(allow_final_movement)) - -/datum/component/drift/proc/allow_final_movement(datum/source) - // Some things want to allow movement out of spacedrift, we should let them - if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) & DRIFT_ALLOW_INPUT) - return - if(world.time < block_inputs_until) - return COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index 84bfa8dfad0f0..6fc61db5e76a6 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -57,7 +57,7 @@ var/damage = weapon.throwforce if(harmful) victim.throw_alert(ALERT_EMBEDDED_OBJECT, /atom/movable/screen/alert/embeddedobject) - playsound(victim,'sound/weapons/bladeslice.ogg', 40) + playsound(victim,'sound/items/weapons/bladeslice.ogg', 40) if (limb.can_bleed()) weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody! damage += weapon.w_class * embed_data.impact_pain_mult diff --git a/code/datums/components/fish_growth.dm b/code/datums/components/fish_growth.dm index bc7c8a9869e44..3ec1427fd51a8 100644 --- a/code/datums/components/fish_growth.dm +++ b/code/datums/components/fish_growth.dm @@ -11,43 +11,90 @@ var/use_drop_loc ///Is the parent deleted once the result is spawned? var/del_on_grow + ///Will the result inherit the name of the fish if that was changed from the initial name. + var/inherit_name -/datum/component/fish_growth/Initialize(result_type, growth_rate, use_drop_loc = TRUE, del_on_grow = TRUE) +/datum/component/fish_growth/Initialize(result_type, growth_time, use_drop_loc = TRUE, del_on_grow = TRUE, inherit_name = TRUE) . = ..() if(!isfish(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_FISH_LIFE, PROC_REF(on_fish_life)) src.result_type = result_type - src.growth_rate = growth_rate + growth_rate = 100 / growth_time src.use_drop_loc = use_drop_loc src.del_on_grow = del_on_grow + src.inherit_name = inherit_name -/datum/component/fish_growth/CheckDupeComponent(result_type, growth_rate, use_drop_loc = TRUE, del_on_grow = TRUE) +/datum/component/fish_growth/CheckDupeComponent( + datum/component/fish_growth/new_growth, // will be null + result_type, + growth_time, + use_drop_loc = TRUE, + del_on_grow = TRUE, + inherit_name = TRUE, +) if(result_type == src.result_type) - src.growth_rate = growth_rate + growth_rate = 100 / growth_time return TRUE //copy the growth rate and kill the new component return FALSE +/datum/component/fish_growth/RegisterWithParent() + var/evo_growth = ispath(result_type, /datum/fish_evolution) + RegisterSignal(parent, COMSIG_FISH_LIFE, PROC_REF(on_fish_life)) + if(!evo_growth) + return + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[result_type] + evolution.RegisterSignal(parent, COMSIG_FISH_BEFORE_GROWING, TYPE_PROC_REF(/datum/fish_evolution, growth_checks)) + evolution.register_fish(parent) + +/datum/component/fish_growth/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_FISH_LIFE, COMSIG_FISH_BEFORE_GROWING)) + /datum/component/fish_growth/proc/on_fish_life(obj/item/fish/source, seconds_per_tick) SIGNAL_HANDLER - if(SEND_SIGNAL(source, COMSIG_FISH_BEFORE_GROWING, seconds_per_tick) & COMPONENT_DONT_GROW) + if(source.status == FISH_DEAD) //It died just now. return - maturation += growth_rate * seconds_per_tick + var/deciseconds_elapsed = seconds_per_tick * 10 + var/growth = growth_rate * deciseconds_elapsed + if(SEND_SIGNAL(source, COMSIG_FISH_BEFORE_GROWING, seconds_per_tick, growth) & COMPONENT_DONT_GROW) + return + maturation += growth if(maturation >= 100) finish_growing(source) /datum/component/fish_growth/proc/finish_growing(obj/item/fish/source) var/atom/location = use_drop_loc ? source.drop_location() : source.loc - var/atom/movable/result = new result_type (location) - if(location != source.loc) - result.visible_message(span_boldnotice("\A [result] jumps out of [source.loc]!")) - playsound(result, 'sound/effects/fish_splash.ogg', 60) - if(isbasicmob(result)) - for(var/trait_type in source.fish_traits) - var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] - trait.apply_to_mob(result) - - addtimer(CALLBACK(result, TYPE_PROC_REF(/mob/living/basic, hop_on_nearby_turf)), 0.1 SECONDS) + var/is_evo = ispath(result_type, /datum/fish_evolution) + var/atom/movable/result + if(is_evo) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[result_type] + result = source.create_offspring(evolution.new_fish_type, evolution = evolution) + var/obj/item/fish/fishie = result + fishie.breeding_wait = source.breeding_wait + fishie.last_feeding = source.last_feeding + var/health_percent = source.health / initial(source.health) + fishie.adjust_health(fishie.health * health_percent) + else + result = new result_type (location) + if(location != source.loc) + result.visible_message(span_boldnotice("\A [result] jumps out of [source.loc]!")) + playsound(result, 'sound/effects/fish_splash.ogg', 60) + if(isbasicmob(result)) + for(var/trait_type in source.fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + trait.apply_to_mob(result) + + addtimer(CALLBACK(result, TYPE_PROC_REF(/mob/living/basic, hop_on_nearby_turf)), 0.1 SECONDS) + + if(is_evo || location == source.loc) + var/message_verb = del_on_grow ? "grows into" : "generates" + location.visible_message(span_notice("[source] [message_verb] \a [result]."), vision_distance = 3) + + if(inherit_name && source.name != initial(source.name)) + if(ismob(result)) + var/mob/mob = result + mob.fully_replace_character_name(mob.name, source.name) + else + result.name = source.name SEND_SIGNAL(source, COMSIG_FISH_FINISH_GROWING, result) diff --git a/code/datums/components/infective.dm b/code/datums/components/infective.dm index 5163ca69dacd9..ecd2f1ff836fd 100644 --- a/code/datums/components/infective.dm +++ b/code/datums/components/infective.dm @@ -37,7 +37,7 @@ src.weak_infection_chance = weak_infection_chance /datum/component/infective/Destroy() - QDEL_NULL(diseases) + QDEL_LIST(diseases) return ..() /datum/component/infective/RegisterWithParent() diff --git a/code/datums/components/interaction_booby_trap.dm b/code/datums/components/interaction_booby_trap.dm index 2ae22ffbb5ae5..ef8d3c78cfcb4 100644 --- a/code/datums/components/interaction_booby_trap.dm +++ b/code/datums/components/interaction_booby_trap.dm @@ -26,7 +26,7 @@ /datum/component/interaction_booby_trap/Initialize( explosion_light_range = 3, explosion_heavy_range = 1, // So we destroy some machine components - triggered_sound = 'sound/machines/triple_beep.ogg', + triggered_sound = 'sound/machines/beep/triple_beep.ogg', trigger_delay = 0.5 SECONDS, sound_loop_type = /datum/looping_sound/trapped_machine_beep, defuse_tool = TOOL_SCREWDRIVER, diff --git a/code/datums/components/irradiated.dm b/code/datums/components/irradiated.dm index 9562f161fb4a8..0f70e0d80b717 100644 --- a/code/datums/components/irradiated.dm +++ b/code/datums/components/irradiated.dm @@ -51,11 +51,13 @@ /datum/component/irradiated/RegisterWithParent() RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) RegisterSignal(parent, COMSIG_GEIGER_COUNTER_SCAN, PROC_REF(on_geiger_counter_scan)) + RegisterSignal(parent, COMSIG_LIVING_HEALTHSCAN, PROC_REF(on_healthscan)) /datum/component/irradiated/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_COMPONENT_CLEAN_ACT, COMSIG_GEIGER_COUNTER_SCAN, + COMSIG_LIVING_HEALTHSCAN, )) /datum/component/irradiated/Destroy(force) @@ -186,6 +188,12 @@ return COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL +/datum/component/irradiated/proc/on_healthscan(datum/source, list/render_list, advanced, mob/user, mode, tochat) + SIGNAL_HANDLER + + render_list += conditional_tooltip("Subject is irradiated.", "Supply antiradiation or antitoxin, such as [/datum/reagent/medicine/potass_iodide::name] or [/datum/reagent/medicine/pen_acid::name].", tochat) + render_list += "
" + /atom/movable/screen/alert/irradiated name = "Irradiated" desc = "You're irradiated! Heal your toxins quick, and stand under a shower to halt the incoming damage." diff --git a/code/datums/components/jetpack.dm b/code/datums/components/jetpack.dm index 437660abc82e0..1da8822091b90 100644 --- a/code/datums/components/jetpack.dm +++ b/code/datums/components/jetpack.dm @@ -17,17 +17,25 @@ var/datum/effect_system/trail_follow/trail /// The typepath to instansiate our trail as, when we need it var/effect_type + /// Drift force applied each movement tick + var/drift_force + /// Force that applied when stabiliziation is active and the player isn't moving in the same direction as the jetpack + var/stabilization_force + /// Our current user + var/mob/user /** * Arguments: * * stabilize - If we should drift when we finish moving, or sit stable in space] + * * drift_force - How much force is applied whenever the user tries to move + * * stabilization_force - How much force is applied per tick when we try to stabilize the user * * activation_signal - Signal we activate on * * deactivation_signal - Signal we deactivate on * * return_flag - Flag to return if activation fails * * check_on_move - Callback we call each time we attempt a move, we expect it to retun true if the move is ok, false otherwise. It expects an arg, TRUE if fuel should be consumed, FALSE othewise * * effect_type - Type of trail_follow to spawn */ -/datum/component/jetpack/Initialize(stabilize, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) +/datum/component/jetpack/Initialize(stabilize, drift_force = 1 NEWTONS, stabilization_force = 1 NEWTONS, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) . = ..() if(!isatom(parent)) return COMPONENT_INCOMPATIBLE @@ -44,8 +52,10 @@ src.deactivation_signal = deactivation_signal src.return_flag = return_flag src.effect_type = effect_type + src.drift_force = drift_force + src.stabilization_force = stabilization_force -/datum/component/jetpack/InheritComponent(datum/component/component, original, stabilize, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) +/datum/component/jetpack/InheritComponent(datum/component/component, original, stabilize, drift_force = 1 NEWTONS, stabilization_force = 1 NEWTONS, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) UnregisterSignal(parent, src.activation_signal) if(src.deactivation_signal) UnregisterSignal(parent, src.deactivation_signal) @@ -59,6 +69,8 @@ src.deactivation_signal = deactivation_signal src.return_flag = return_flag src.effect_type = effect_type + src.drift_force = drift_force + src.stabilization_force = stabilization_force if(trail && trail.effect_type != effect_type) setup_trail(trail.holder) @@ -66,87 +78,86 @@ /datum/component/jetpack/Destroy(force) if(trail) QDEL_NULL(trail) + user = null check_on_move = null return ..() /datum/component/jetpack/proc/setup_trail(mob/user) if(trail) QDEL_NULL(trail) - trail = new effect_type trail.auto_process = FALSE trail.set_up(user) trail.start() -/datum/component/jetpack/proc/activate(datum/source, mob/user) +/datum/component/jetpack/proc/activate(datum/source, mob/new_user) SIGNAL_HANDLER if(!check_on_move.Invoke(TRUE)) return return_flag + user = new_user RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) - RegisterSignal(user, COMSIG_MOVABLE_SPACEMOVE, PROC_REF(spacemove_react)) - RegisterSignal(user, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT, PROC_REF(block_starting_visuals)) - RegisterSignal(user, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT, PROC_REF(ignore_ending_block)) - + RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE_NOGRAV, PROC_REF(on_client_move)) + START_PROCESSING(SSnewtonian_movement, src) setup_trail(user) -/datum/component/jetpack/proc/deactivate(datum/source, mob/user) +/datum/component/jetpack/proc/deactivate(datum/source, mob/old_user) SIGNAL_HANDLER - UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - UnregisterSignal(user, COMSIG_MOVABLE_PRE_MOVE) - UnregisterSignal(user, COMSIG_MOVABLE_SPACEMOVE) - UnregisterSignal(user, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) - UnregisterSignal(user, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) + UnregisterSignal(old_user, COMSIG_MOVABLE_MOVED) + UnregisterSignal(old_user, COMSIG_MOVABLE_PRE_MOVE) + UnregisterSignal(old_user, COMSIG_MOB_CLIENT_MOVE_NOGRAV) + STOP_PROCESSING(SSnewtonian_movement, src) + user = null if(trail) QDEL_NULL(trail) -/datum/component/jetpack/proc/move_react(mob/user) +/datum/component/jetpack/proc/move_react(mob/source) SIGNAL_HANDLER - if(!user || !user.client)//Don't allow jet self using - return - if(!isturf(user.loc))//You can't use jet in nowhere or from mecha/closet - return - if(!(user.movement_type & FLOATING) || user.buckled)//You don't want use jet in gravity or while buckled. + if (!should_trigger(source)) return - if(user.pulledby)//You don't must use jet if someone pull you - return - if(user.throwing)//You don't must use jet if you thrown - return - if(user.client.intended_direction)//You use jet when press keys. yes. - thrust() -/datum/component/jetpack/proc/pre_move_react(mob/user) - SIGNAL_HANDLER - if(!trail) - return FALSE - trail.oldposition = get_turf(user) + if(source.client.intended_direction && check_on_move.Invoke(FALSE))//You use jet when press keys. yes. + trail.generate_effect() -/datum/component/jetpack/proc/spacemove_react(mob/user, movement_dir, continuous_move) - SIGNAL_HANDLER - if(!continuous_move && movement_dir) - return COMSIG_MOVABLE_STOP_SPACEMOVE - // Check if we have the fuel to stop this. Do NOT cosume any fuel, just check - // This is done because things other then us can use our fuel - if(stabilize && check_on_move.Invoke(FALSE)) - return COMSIG_MOVABLE_STOP_SPACEMOVE - -/// Returns true if the thrust went well, false otherwise -/datum/component/jetpack/proc/thrust() - if(!check_on_move.Invoke(TRUE)) +/datum/component/jetpack/proc/should_trigger(mob/source) + if(!source || !source.client)//Don't allow jet self using + return FALSE + if(!isturf(source.loc))//You can't use jet in nowhere or from mecha/closet + return FALSE + if(!(source.movement_type & FLOATING) || source.buckled)//You don't want use jet in gravity or while buckled. + return FALSE + if(source.pulledby)//You don't must use jet if someone pull you + return FALSE + if(source.throwing)//You don't must use jet if you thrown return FALSE - trail.generate_effect() return TRUE -/// Basically, tell the drift component not to do its starting visuals, because they look dumb for us -/datum/component/jetpack/proc/block_starting_visuals(datum/source) +/datum/component/jetpack/proc/pre_move_react(mob/source) SIGNAL_HANDLER - return DRIFT_VISUAL_FAILED + if(!trail) + return FALSE + trail.oldposition = get_turf(source) + +/datum/component/jetpack/process(seconds_per_tick) + if (!should_trigger(user) || !stabilize || isnull(user.drift_handler)) + return -/// If we're on, don't let the drift component block movements at the end since we can speed -/datum/component/jetpack/proc/ignore_ending_block(datum/source) + var/max_drift_force = (DEFAULT_INERTIA_SPEED / user.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + user.drift_handler.stabilize_drift(user.client.intended_direction ? dir2angle(user.client.intended_direction) : null, user.client.intended_direction ? max_drift_force : 0, stabilization_force * (seconds_per_tick * 1 SECONDS)) + +/datum/component/jetpack/proc/on_client_move(mob/source, list/move_args) SIGNAL_HANDLER - return DRIFT_ALLOW_INPUT + + if (!should_trigger(source)) + return + + if (!check_on_move.Invoke(TRUE)) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / source.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + source.newtonian_move(dir2angle(source.client.intended_direction), instant = TRUE, drift_force = drift_force, controlled_cap = max_drift_force) + source.setDir(source.client.intended_direction) diff --git a/code/datums/components/jukebox.dm b/code/datums/components/jukebox.dm index 545b9daab0b1e..071e284756f95 100644 --- a/code/datums/components/jukebox.dm +++ b/code/datums/components/jukebox.dm @@ -400,7 +400,7 @@ // Default track supplied for testing and also because it's a banger /datum/track/default - song_path = 'sound/ambience/title3.ogg' + song_path = 'sound/music/lobby_music/title3.ogg' song_name = "Tintin on the Moon" song_length = 3 MINUTES + 52 SECONDS song_beat = 1 SECONDS diff --git a/code/datums/components/mob_harvest.dm b/code/datums/components/mob_harvest.dm index b9f9f86350be5..242161027b069 100644 --- a/code/datums/components/mob_harvest.dm +++ b/code/datums/components/mob_harvest.dm @@ -25,7 +25,7 @@ ///how long it takes to harvest from the mob var/item_harvest_time = 5 SECONDS ///typepath of harvest sound - var/item_harvest_sound = 'sound/items/welder2.ogg' + var/item_harvest_sound = 'sound/items/tools/welder2.ogg' //harvest_type, produced_item_typepath and speedup_type are typepaths, not reference /datum/component/mob_harvest/Initialize(harvest_tool, fed_item, produced_item_typepath, produced_item_desc, max_ready, item_generation_wait, item_reduction_time, item_harvest_time, item_harvest_sound) diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index c59be2ed27651..a1be66654a2c0 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -343,7 +343,7 @@ parent_movable.update_appearance() if(changer) - playsound(changer, 'sound/items/ratchet.ogg', 10, TRUE) //sound + playsound(changer, 'sound/items/tools/ratchet.ogg', 10, TRUE) //sound //quickly disconnect and reconnect the network. if(active) diff --git a/code/datums/components/ranged_attacks.dm b/code/datums/components/ranged_attacks.dm index 2f9c6cb822da5..58883ce58111f 100644 --- a/code/datums/components/ranged_attacks.dm +++ b/code/datums/components/ranged_attacks.dm @@ -20,7 +20,7 @@ /datum/component/ranged_attacks/Initialize( casing_type, projectile_type, - projectile_sound = 'sound/weapons/gun/pistol/shot.ogg', + projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg', burst_shots, burst_intervals = 0.2 SECONDS, cooldown_time = 3 SECONDS, diff --git a/code/datums/components/regenerative_shield.dm b/code/datums/components/regenerative_shield.dm index 5ecf670820381..34d305b27e13f 100644 --- a/code/datums/components/regenerative_shield.dm +++ b/code/datums/components/regenerative_shield.dm @@ -59,7 +59,7 @@ if(damage >= damage_threshold || number_of_hits <= 0) return NONE - playsound(get_turf(parent), 'sound/weapons/tap.ogg', 20) + playsound(get_turf(parent), 'sound/items/weapons/tap.ogg', 20) new /obj/effect/temp_visual/guardian/phase/out(get_turf(parent)) number_of_hits = max(0, number_of_hits - 1) if(number_of_hits <= 0) @@ -71,14 +71,14 @@ for(var/obj/effect/my_effect as anything in shield_overlays) animate(my_effect, alpha = 0, time = 3 SECONDS) my_effect.remove_filter(SHIELD_FILTER) - playsound(parent, 'sound/mecha/mech_shield_drop.ogg', 20) + playsound(parent, 'sound/vehicles/mecha/mech_shield_drop.ogg', 20) /datum/component/regenerative_shield/proc/enable_shield() number_of_hits = initial(number_of_hits) for(var/obj/effect/my_effect as anything in shield_overlays) animate(my_effect, alpha = 255, time = 3 SECONDS) addtimer(CALLBACK(src, PROC_REF(apply_filter_effects), my_effect), 5 SECONDS) - playsound(parent, 'sound/mecha/mech_shield_raise.ogg', 20) + playsound(parent, 'sound/vehicles/mecha/mech_shield_raise.ogg', 20) /datum/component/regenerative_shield/proc/apply_filter_effects(obj/effect/new_effect) if(isnull(new_effect)) diff --git a/code/datums/components/religious_tool.dm b/code/datums/components/religious_tool.dm index 37b62d1aa0e3c..969e6a9a3cec1 100644 --- a/code/datums/components/religious_tool.dm +++ b/code/datums/components/religious_tool.dm @@ -159,15 +159,15 @@ /datum/component/religious_tool/proc/perform_rite(mob/living/user, path) if(user.mind.holy_role < HOLY_ROLE_PRIEST) if(user.mind.holy_role == HOLY_ROLE_DEACON) - to_chat(user, "You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.") + to_chat(user, span_warning("You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.")) else - to_chat(user, "You are not holy, and therefore cannot perform rites.") + to_chat(user, span_warning("You are not holy, and therefore cannot perform rites.")) return if(rite_types_allowlist && !is_path_in_list(path, rite_types_allowlist)) to_chat(user, span_warning("This cannot perform that kind of rite.")) return if(performing_rite) - to_chat(user, "There is a rite currently being performed here already.") + to_chat(user, span_notice("There is a rite currently being performed here already.")) return if(!user.can_perform_action(parent, FORBID_TELEKINESIS_REACH)) to_chat(user,span_warning("You are not close enough to perform the rite.")) diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index ae4d29e22f5f9..7a18e923afebe 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -389,7 +389,7 @@ if(human_user && is_clown_job(human_user.mind?.assigned_role)) // there's a new sheriff in town - playsound(movable_parent, 'sound/creatures/pony/clown_gallup.ogg', 50) + playsound(movable_parent, 'sound/mobs/non-humanoids/pony/clown_gallup.ogg', 50) COOLDOWN_START(src, pony_trot_cooldown, 500 MILLISECONDS) /datum/component/riding/creature/bear/handle_specials() diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index f7ee78673e057..3c55eae46688a 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -15,19 +15,19 @@ if(!keycheck(rider)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "[movable_parent] has no key inserted!") + to_chat(rider, span_warning("[movable_parent] has no key inserted!")) return COMPONENT_RIDDEN_STOP_Z_MOVE if(HAS_TRAIT(rider, TRAIT_INCAPACITATED)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "You cannot operate [movable_parent] right now!") + to_chat(rider, span_warning("You cannot operate [movable_parent] right now!")) return COMPONENT_RIDDEN_STOP_Z_MOVE if(ride_check_flags & RIDER_NEEDS_LEGS && HAS_TRAIT(rider, TRAIT_FLOORED)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "You can't seem to manage that while unable to stand up enough to move [movable_parent]...") + to_chat(rider, span_warning("You can't seem to manage that while unable to stand up enough to move [movable_parent]...")) return COMPONENT_RIDDEN_STOP_Z_MOVE if(ride_check_flags & RIDER_NEEDS_ARMS && HAS_TRAIT(rider, TRAIT_HANDS_BLOCKED)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "You can't seem to hold onto [movable_parent] to move it...") + to_chat(rider, span_warning("You can't seem to hold onto [movable_parent] to move it...")) return COMPONENT_RIDDEN_STOP_Z_MOVE return COMPONENT_RIDDEN_ALLOW_Z_MOVE diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index 6ff8197e09319..40df294af12a8 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -76,7 +76,7 @@ var/obj/rotated_obj = parent rotated_obj.setDir(turn(rotated_obj.dir, degrees)) if(rotation_flags & ROTATION_REQUIRE_WRENCH) - playsound(rotated_obj, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(rotated_obj, 'sound/items/tools/ratchet.ogg', 50, TRUE) post_rotation.Invoke(user, degrees) diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm index 087eb0c06d24c..903f8d9bd917f 100644 --- a/code/datums/components/scope.dm +++ b/code/datums/components/scope.dm @@ -164,7 +164,7 @@ if(HAS_TRAIT(user, TRAIT_USER_SCOPED)) user.balloon_alert(user, "already zoomed!") return - user.playsound_local(parent, 'sound/weapons/scope.ogg', 75, TRUE) + user.playsound_local(parent, 'sound/items/weapons/scope.ogg', 75, TRUE) tracker = user.overlay_fullscreen("scope", /atom/movable/screen/fullscreen/cursor_catcher/scope, isgun(parent)) tracker.assign_to_mob(user, range_modifier) tracker_owner_ckey = user.ckey @@ -210,7 +210,7 @@ )) REMOVE_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) - user.playsound_local(parent, 'sound/weapons/scope.ogg', 75, TRUE, frequency = -1) + user.playsound_local(parent, 'sound/items/weapons/scope.ogg', 75, TRUE, frequency = -1) user.clear_fullscreen("scope") // if the client has ended up in another mob, find that mob so we can fix their cursor diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm index da83c4ad2d29d..53fc330806245 100644 --- a/code/datums/components/shielded.dm +++ b/code/datums/components/shielded.dm @@ -101,7 +101,7 @@ var/obj/item/item_parent = parent COOLDOWN_START(src, charge_add_cd, charge_increment_delay) adjust_charge(charge_recovery) // set the number of charges to current + recovery per increment, clamped from zero to max_charges - playsound(item_parent, 'sound/magic/charge.ogg', 50, TRUE) + playsound(item_parent, 'sound/effects/magic/charge.ogg', 50, TRUE) if(current_charges == max_charges) playsound(item_parent, 'sound/machines/ding.ogg', 50, TRUE) diff --git a/code/datums/components/sisyphus_awarder.dm b/code/datums/components/sisyphus_awarder.dm index 2a18a2889fc65..854ed26355f25 100644 --- a/code/datums/components/sisyphus_awarder.dm +++ b/code/datums/components/sisyphus_awarder.dm @@ -65,4 +65,4 @@ "reverse_dropoff_coords" = list(bottom_of_the_hill.x, bottom_of_the_hill.y, bottom_of_the_hill.z), )) - SEND_SOUND(sisyphus, 'sound/ambience/music/sisyphus/sisyphus.ogg') + SEND_SOUND(sisyphus, 'sound/music/sisyphus/sisyphus.ogg') diff --git a/code/datums/components/sitcomlaughter.dm b/code/datums/components/sitcomlaughter.dm index 02ed818ea3044..bc69a08b80c9d 100644 --- a/code/datums/components/sitcomlaughter.dm +++ b/code/datums/components/sitcomlaughter.dm @@ -4,7 +4,7 @@ proctype = PROC_REF(EngageInComedy) mobtype = /mob/living ///Sounds used for when user has a sitcom action occur - var/list/comedysounds = list('sound/items/SitcomLaugh1.ogg', 'sound/items/SitcomLaugh2.ogg', 'sound/items/SitcomLaugh3.ogg') + var/list/comedysounds = list('sound/items/sitcom_laugh/sitcomLaugh1.ogg', 'sound/items/sitcom_laugh/sitcomLaugh2.ogg', 'sound/items/sitcom_laugh/sitcomLaugh3.ogg') ///Invoked in EngageInComedy is ran var/datum/callback/post_comedy_callback ///Cooldown for inbetween laughs diff --git a/code/datums/components/soapbox.dm b/code/datums/components/soapbox.dm index 4d4577d5e12c8..9d15e5e69292c 100644 --- a/code/datums/components/soapbox.dm +++ b/code/datums/components/soapbox.dm @@ -14,15 +14,17 @@ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(parent_moved)) ///Applies loud speech to our movable when entering the turf our parent is on -/datum/component/soapbox/proc/on_loc_entered(datum/source, atom/movable/soapbox_arrive) +/datum/component/soapbox/proc/on_loc_entered(datum/source, mob/living/soapbox_arrive) SIGNAL_HANDLER + if(!isliving(soapbox_arrive)) + return if(QDELETED(soapbox_arrive)) return RegisterSignal(soapbox_arrive, COMSIG_MOB_SAY, PROC_REF(soapbox_speech)) soapboxers += soapbox_arrive ///Takes away loud speech from our movable when it leaves the turf our parent is on -/datum/component/soapbox/proc/on_loc_exited(datum/source, atom/movable/soapbox_leave) +/datum/component/soapbox/proc/on_loc_exited(datum/source, mob/living/soapbox_leave) SIGNAL_HANDLER if(soapbox_leave in soapboxers) UnregisterSignal(soapbox_leave, COMSIG_MOB_SAY) diff --git a/code/datums/components/spin2win.dm b/code/datums/components/spin2win.dm index 4524b403355f8..ce9dfa360b323 100644 --- a/code/datums/components/spin2win.dm +++ b/code/datums/components/spin2win.dm @@ -84,7 +84,7 @@ if(start_spin_message) var/message = replacetext(start_spin_message, "%USER", spinning_user) spinning_user.visible_message(message) - playsound(spinning_user, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(spinning_user, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) stop_spinning_timer_id = addtimer(CALLBACK(src, PROC_REF(stop_spinning), spinning_user), spin_duration, TIMER_STOPPABLE|TIMER_DELETE_ME) RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_spin_equipped)) RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_spin_dropped)) @@ -95,7 +95,7 @@ STOP_PROCESSING(SSprocessing, src) UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) deltimer(stop_spinning_timer_id) - playsound(user, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(user, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) if(user && end_spin_message) var/message = replacetext(end_spin_message, "%USER", user) user.visible_message(message) @@ -111,7 +111,7 @@ return PROCESS_KILL var/mob/living/item_owner = spinning_item.loc item_owner.emote("spin") - playsound(item_owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(item_owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) for(var/mob/living/victim in orange(1, item_owner)) spinning_item.attack(victim, item_owner) diff --git a/code/datums/components/spirit_holding.dm b/code/datums/components/spirit_holding.dm index b510fde3523a4..11ceb778313a9 100644 --- a/code/datums/components/spirit_holding.dm +++ b/code/datums/components/spirit_holding.dm @@ -149,7 +149,7 @@ return // just in case var/atom/movable/exorcised_movable = parent to_chat(exorcist, span_notice("You begin to exorcise [parent]...")) - playsound(parent, 'sound/hallucinations/veryfar_noise.ogg',40,TRUE) + playsound(parent, 'sound/effects/hallucinations/veryfar_noise.ogg',40,TRUE) if(!do_after(exorcist, 4 SECONDS, target = exorcised_movable)) return playsound(parent, 'sound/effects/pray_chaplain.ogg',60,TRUE) diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index 94521486bcc5f..afd8cce49e8c7 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -1,5 +1,5 @@ /datum/component/squeak - var/static/list/default_squeak_sounds = list('sound/items/toysqueak1.ogg'=1, 'sound/items/toysqueak2.ogg'=1, 'sound/items/toysqueak3.ogg'=1) + var/static/list/default_squeak_sounds = list('sound/items/toy_squeak/toysqueak1.ogg'=1, 'sound/items/toy_squeak/toysqueak2.ogg'=1, 'sound/items/toy_squeak/toysqueak3.ogg'=1) var/list/override_squeak_sounds var/mob/holder diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm index 35f67d9cd0295..8b59717da70b8 100644 --- a/code/datums/components/stationloving.dm +++ b/code/datums/components/stationloving.dm @@ -61,7 +61,7 @@ CRASH("Unable to find a blobstart landmark for [type] to relocate [parent].") var/atom/movable/movable_parent = parent - playsound(movable_parent, 'sound/machines/synth_no.ogg', 5, TRUE) + playsound(movable_parent, 'sound/machines/synth/synth_no.ogg', 5, TRUE) var/mob/holder = get(movable_parent, /mob) if(holder) diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm index 69ade1e2f1b56..4821f70d006d3 100644 --- a/code/datums/components/summoning.dm +++ b/code/datums/components/summoning.dm @@ -24,7 +24,7 @@ max_mobs = 3, spawn_delay = 10 SECONDS, spawn_text = "appears out of nowhere", - spawn_sound = 'sound/magic/summon_magic.ogg', + spawn_sound = 'sound/effects/magic/summon_magic.ogg', list/faction, ) if(!isitem(parent) && !ishostile(parent) && !isgun(parent) && !ismachinery(parent) && !isstructure(parent) && !isprojectilespell(parent)) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 3d777e888d9fc..baf1efaee1dd5 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -104,7 +104,7 @@ tackling = TRUE RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(checkObstacle)) - playsound(user, 'sound/weapons/thudswoosh.ogg', 40, TRUE, -1) + playsound(user, 'sound/items/weapons/thudswoosh.ogg', 40, TRUE, -1) var/leap_word = isfelinid(user) ? "pounce" : "leap" //If cat, "pounce" instead of "leap". if(can_see(user, clicked_atom, 7)) @@ -533,7 +533,7 @@ else user.adjustBruteLoss(40, updating_health=FALSE) user.adjustStaminaLoss(30) - playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 60, TRUE) playsound(user, 'sound/effects/splat.ogg', 70, TRUE) playsound(user, 'sound/effects/wounds/crack2.ogg', 70, TRUE) user.emote("scream") @@ -550,7 +550,7 @@ user.adjustBruteLoss(40, updating_health = FALSE) user.adjustStaminaLoss(30) user.gain_trauma_type(BRAIN_TRAUMA_MILD) - playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 60, TRUE) playsound(user, 'sound/effects/splat.ogg', 70, TRUE) user.emote("gurgle") shake_camera(user, 7, 7) @@ -562,7 +562,7 @@ user.adjustBruteLoss(30) user.Unconscious(10 SECONDS) user.gain_trauma_type(BRAIN_TRAUMA_MILD) - user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8) + user.playsound_local(get_turf(user), 'sound/items/weapons/flashbang.ogg', 100, TRUE, 8) shake_camera(user, 6, 6) user.flash_act(1, TRUE, TRUE, length = 3.5) @@ -573,7 +573,7 @@ user.adjust_confusion(15 SECONDS) if(prob(80)) user.gain_trauma(/datum/brain_trauma/mild/concussion) - user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8) + user.playsound_local(get_turf(user), 'sound/items/weapons/flashbang.ogg', 100, TRUE, 8) user.Knockdown(4 SECONDS) shake_camera(user, 5, 5) user.flash_act(1, TRUE, TRUE, length = 2.5) @@ -593,7 +593,7 @@ user.Knockdown(2 SECONDS) shake_camera(user, 2, 2) - playsound(user, 'sound/weapons/smash.ogg', 70, TRUE) + playsound(user, 'sound/items/weapons/smash.ogg', 70, TRUE) /datum/component/tackler/proc/resetTackle() @@ -603,7 +603,7 @@ ///A special case for splatting for handling windows /datum/component/tackler/proc/splatWindow(mob/living/carbon/user, obj/structure/window/W) - playsound(user, 'sound/effects/Glasshit.ogg', 140, TRUE) + playsound(user, 'sound/effects/glass/Glasshit.ogg', 140, TRUE) if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows for(var/i in 1 to speed) @@ -682,7 +682,7 @@ var/datum/thrownthing/tackle = tackle_ref?.resolve() - playsound(owner, 'sound/weapons/smash.ogg', 70, TRUE) + playsound(owner, 'sound/items/weapons/smash.ogg', 70, TRUE) if(tackle) tackle.finalize(hit=TRUE) resetTackle() diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index e76f5d5b53cd3..b991891930cd1 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -1,39 +1,180 @@ +/// Creates a tether between two objects that limits movement range. Tether requires LOS and can be adjusted by left/right clicking its /datum/component/tether - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + dupe_mode = COMPONENT_DUPE_ALLOWED + /// Other side of the tether var/atom/tether_target + /// Maximum (and initial) distance that this tether can be adjusted to var/max_dist + /// What the tether is going to be called var/tether_name + /// Current extension distance + var/cur_dist + /// Embedded item that the tether "should" originate from + var/atom/embed_target + /// Beam effect + var/datum/beam/tether_beam -/datum/component/tether/Initialize(atom/tether_target, max_dist = 4, tether_name) - if(!isliving(parent) || !istype(tether_target) || !tether_target.loc) +/datum/component/tether/Initialize(atom/tether_target, max_dist = 7, tether_name, atom/embed_target = null, start_distance = null) + if(!ismovable(parent) || !istype(tether_target) || !tether_target.loc) return COMPONENT_INCOMPATIBLE + src.tether_target = tether_target + src.embed_target = embed_target src.max_dist = max_dist + cur_dist = max_dist + if (start_distance != null) + cur_dist = start_distance + var/datum/beam/beam = tether_target.Beam(parent, "line", 'icons/obj/clothing/modsuit/mod_modules.dmi', emissive = FALSE, beam_type = /obj/effect/ebeam/tether) + tether_beam = beam if (ispath(tether_name, /atom)) var/atom/tmp = tether_name src.tether_name = initial(tmp.name) else src.tether_name = tether_name - RegisterSignals(parent, list(COMSIG_MOVABLE_PRE_MOVE), PROC_REF(checkTether)) -/datum/component/tether/proc/checkTether(mob/mover, newloc) +/datum/component/tether/RegisterWithParent() + RegisterSignal(parent, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_tether)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(check_snap)) + RegisterSignal(tether_target, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_tether)) + RegisterSignal(tether_target, COMSIG_MOVABLE_MOVED, PROC_REF(check_snap)) + RegisterSignal(tether_target, COMSIG_QDELETING, PROC_REF(on_delete)) + RegisterSignal(tether_beam.visuals, COMSIG_CLICK, PROC_REF(beam_click)) + // Also snap if the beam gets deleted, more of a backup check than anything + RegisterSignal(tether_beam.visuals, COMSIG_QDELETING, PROC_REF(on_delete)) + + if (!isnull(embed_target)) + RegisterSignal(embed_target, COMSIG_ITEM_UNEMBEDDED, PROC_REF(on_embedded_removed)) + RegisterSignal(embed_target, COMSIG_QDELETING, PROC_REF(on_delete)) + +/datum/component/tether/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED)) + if (!QDELETED(tether_target)) + UnregisterSignal(tether_target, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED, COMSIG_QDELETING)) + if (!QDELETED(tether_beam)) + UnregisterSignal(tether_beam.visuals, list(COMSIG_CLICK, COMSIG_QDELETING)) + qdel(tether_beam) + if (!QDELETED(embed_target)) + UnregisterSignal(embed_target, list(COMSIG_ITEM_UNEMBEDDED, COMSIG_QDELETING)) + +/datum/component/tether/proc/check_tether(atom/source, new_loc) SIGNAL_HANDLER - if (get_dist(mover,newloc) > max_dist) - to_chat(mover, span_userdanger("The [tether_name] runs out of slack and prevents you from moving!")) + if (check_snap()) + return + + if (!isturf(new_loc)) + to_chat(source, span_warning("[tether_name] prevents you from entering [new_loc]!")) return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + var/atom/movable/anchor = (source == tether_target ? parent : tether_target) + if (get_dist(anchor, new_loc) > cur_dist) + if (!istype(anchor) || anchor.anchored || !anchor.Move(get_step_towards(anchor, new_loc))) + to_chat(source, span_warning("[tether_name] runs out of slack and prevents you from moving!")) + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + var/atom/blocker - out: - for(var/turf/T in get_line(tether_target,newloc)) - if (T.density) - blocker = T - break out - for(var/a in T) - var/atom/A = a - if(A.density && A != mover && A != tether_target) - blocker = A - break out + var/anchor_dir = get_dir(source, anchor) + for (var/turf/line_turf in get_line(anchor, new_loc)) + if (line_turf.density && line_turf != anchor.loc && line_turf != source.loc) + blocker = line_turf + break + if (line_turf == anchor.loc || line_turf == source.loc) + for (var/atom/in_turf in line_turf) + if ((in_turf.flags_1 & ON_BORDER_1) && (in_turf.dir & anchor_dir)) + blocker = in_turf + break + else + for (var/atom/in_turf in line_turf) + if (in_turf.density && in_turf != source && in_turf != tether_target) + blocker = in_turf + break + + if (!isnull(blocker)) + break + if (blocker) - to_chat(mover, span_userdanger("The [tether_name] catches on [blocker] and prevents you from moving!")) + to_chat(source, span_warning("[tether_name] catches on [blocker] and prevents you from moving!")) return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + + if (get_dist(anchor, new_loc) != cur_dist || !ismovable(source)) + return + + var/atom/movable/movable_source = source + var/datum/drift_handler/handler = movable_source.drift_handler + if (isnull(handler)) + return + handler.remove_angle_force(get_angle(anchor, source)) + +/datum/component/tether/proc/check_snap() + SIGNAL_HANDLER + + var/atom/atom_target = parent + // Something broke us out, snap the tether + if (get_dist(atom_target, tether_target) > cur_dist + 1 || !isturf(atom_target.loc) || !isturf(tether_target.loc) || atom_target.z != tether_target.z) + atom_target.visible_message(span_warning("[atom_target]'s [tether_name] snaps!"), span_userdanger("Your [tether_name] snaps!"), span_hear("You hear a cable snapping.")) + qdel(src) + +/datum/component/tether/proc/on_delete() + SIGNAL_HANDLER + qdel(src) + +/datum/component/tether/proc/on_embedded_removed(atom/source, mob/living/victim) + SIGNAL_HANDLER + parent.AddComponent(/datum/component/tether, source, max_dist, tether_name, cur_dist) + qdel(src) + +/datum/component/tether/proc/beam_click(atom/source, atom/location, control, params, mob/user) + SIGNAL_HANDLER + + INVOKE_ASYNC(src, PROC_REF(process_beam_click), source, location, params, user) + +/datum/component/tether/proc/process_beam_click(atom/source, atom/location, params, mob/user) + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, CTRL_CLICK)) + location.balloon_alert(user, "cutting the tether...") + if (!do_after(user, 5 SECONDS, user)) + return + + qdel(src) + location.balloon_alert(user, "tether cut!") + to_chat(parent, span_danger("Your [tether_name] has been cut!")) + return + + if (LAZYACCESS(modifiers, RIGHT_CLICK)) + if (cur_dist >= max_dist) + location.balloon_alert(user, "no coil remaining!") + return + cur_dist += 1 + location.balloon_alert(user, "tether extended") + return + + if (cur_dist <= 1) + location.balloon_alert(user, "too short!") + return + + if (cur_dist > get_dist(parent, tether_target)) + cur_dist -= 1 + location.balloon_alert(user, "tether shortened") + return + + if (!ismovable(parent) && !ismovable(tether_target)) + location.balloon_alert(user, "too short!") + return + + var/atom/movable/movable_parent = parent + var/atom/movable/movable_target = tether_target + + if (istype(movable_parent) && movable_parent.Move(get_step(movable_parent.loc, get_dir(movable_parent, movable_target)))) + cur_dist -= 1 + location.balloon_alert(user, "tether shortened") + return + + if (istype(movable_target) && movable_target.Move(get_step(movable_target.loc, get_dir(movable_target, movable_parent)))) + cur_dist -= 1 + location.balloon_alert(user, "tether shortened") + return + + location.balloon_alert(user, "too short!") + +/obj/effect/ebeam/tether + mouse_opacity = MOUSE_OPACITY_ICON diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm index 7ab8b755ca10a..1fac66c07cd64 100644 --- a/code/datums/components/thermite.dm +++ b/code/datums/components/thermite.dm @@ -116,7 +116,7 @@ */ /datum/component/thermite/proc/thermite_melt(mob/user) var/turf/parent_turf = parent - playsound(parent_turf, 'sound/items/welder.ogg', 100, TRUE) + playsound(parent_turf, 'sound/items/tools/welder.ogg', 100, TRUE) fakefire = new(parent_turf) burn_callback = CALLBACK(src, PROC_REF(burn_parent), user) burn_timer = addtimer(burn_callback, min(amount * 0.35 SECONDS, 20 SECONDS), TIMER_STOPPABLE) diff --git a/code/datums/components/transforming.dm b/code/datums/components/transforming.dm index 5276f45dc0a75..622fb2ed7d31d 100644 --- a/code/datums/components/transforming.dm +++ b/code/datums/components/transforming.dm @@ -50,7 +50,7 @@ throwforce_on = 0, throw_speed_on = 2, sharpness_on = NONE, - hitsound_on = 'sound/weapons/blade1.ogg', + hitsound_on = 'sound/items/weapons/blade1.ogg', w_class_on = WEIGHT_CLASS_BULKY, clumsy_check = TRUE, clumsy_damage = 10, @@ -174,7 +174,7 @@ /datum/component/transforming/proc/default_transform_message(obj/item/source, mob/user) if(user) source.balloon_alert(user, "[active ? "enabled" : "disabled"] [source]") - playsound(source, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(source, 'sound/items/weapons/batonextend.ogg', 50, TRUE) /* * Toggle active between true and false, and call diff --git a/code/datums/components/trapdoor.dm b/code/datums/components/trapdoor.dm index 32b72c48853e5..9efce370e82c7 100644 --- a/code/datums/components/trapdoor.dm +++ b/code/datums/components/trapdoor.dm @@ -243,10 +243,10 @@ return if(SEND_GLOBAL_SIGNAL(COMSIG_GLOB_TRAPDOOR_LINK, src) & LINKED_UP) playsound(assembly_turf, 'sound/machines/chime.ogg', 50, TRUE) - assembly_turf.visible_message("[src] has linked up to a nearby trapdoor! \ - You may now use it to check where the trapdoor is... be careful!", vision_distance = SAMETILE_MESSAGE_RANGE) + assembly_turf.visible_message(span_notice("[src] has linked up to a nearby trapdoor! \ + You may now use it to check where the trapdoor is... be careful!"), vision_distance = SAMETILE_MESSAGE_RANGE) else - playsound(assembly_turf, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(assembly_turf, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) assembly_turf.visible_message(span_warning("[src] has failed to find a trapdoor nearby to link to."), vision_distance = SAMETILE_MESSAGE_RANGE) /** @@ -321,7 +321,7 @@ return TRUE user.balloon_alert(user, "trapdoor triggered") - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) icon_state = "trapdoor_pressed" addtimer(VARSET_CALLBACK(src, icon_state, initial(icon_state)), trapdoor_cooldown_time) COOLDOWN_START(src, trapdoor_cooldown, trapdoor_cooldown_time) diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 00437a2cdd8f1..146d3c2de0785 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -11,9 +11,9 @@ /// How long does it take to get a dash charge back? var/charge_rate = 25 SECONDS /// What sound do we play on dash? - var/dash_sound = 'sound/magic/blink.ogg' + var/dash_sound = 'sound/effects/magic/blink.ogg' /// What sound do we play on recharge? - var/recharge_sound = 'sound/magic/charge.ogg' + var/recharge_sound = 'sound/effects/magic/charge.ogg' /// What effect does our beam use? var/beam_effect = "blur" /// How long does our beam last? diff --git a/code/datums/diseases/chronic_illness.dm b/code/datums/diseases/chronic_illness.dm index b1afd1d1939a9..617cfde763d11 100644 --- a/code/datums/diseases/chronic_illness.dm +++ b/code/datums/diseases/chronic_illness.dm @@ -42,7 +42,7 @@ need_mob_update += affected_mob.adjustStaminaLoss(70, updating_stamina = FALSE) if(SPT_PROB(1, seconds_per_tick)) to_chat(affected_mob, span_danger("You feel a buzzing in your brain.")) - SEND_SOUND(affected_mob, sound('sound/weapons/flash_ring.ogg')) + SEND_SOUND(affected_mob, sound('sound/items/weapons/flash_ring.ogg')) if(SPT_PROB(0.5, seconds_per_tick)) need_mob_update += affected_mob.adjustBruteLoss(1, updating_health = FALSE) if(need_mob_update) @@ -75,7 +75,7 @@ if(2) to_chat(affected_mob, span_boldwarning("There is no place for you in this timeline.")) affected_mob.adjustStaminaLoss(100, forced = TRUE) - playsound(affected_mob.loc, 'sound/magic/repulse.ogg', 100, FALSE) + playsound(affected_mob.loc, 'sound/effects/magic/repulse.ogg', 100, FALSE) affected_mob.emote("scream") for(var/mob/living/viewers in viewers(3, affected_mob.loc)) viewers.flash_act() diff --git a/code/datums/diseases/heart_failure.dm b/code/datums/diseases/heart_failure.dm index 45d4e6672fb69..419fc9efff3df 100644 --- a/code/datums/diseases/heart_failure.dm +++ b/code/datums/diseases/heart_failure.dm @@ -43,7 +43,7 @@ to_chat(affected_mob, span_warning("You feel [pick("full", "nauseated", "sweaty", "weak", "tired", "short of breath", "uneasy")].")) if(3 to 4) if(!sound) - affected_mob.playsound_local(affected_mob, 'sound/health/slowbeat.ogg', 40, FALSE, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) + affected_mob.playsound_local(affected_mob, 'sound/effects/health/slowbeat.ogg', 40, FALSE, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) sound = TRUE if(SPT_PROB(1.5, seconds_per_tick)) to_chat(affected_mob, span_danger("You feel a sharp pain in your chest!")) diff --git a/code/datums/drift_handler.dm b/code/datums/drift_handler.dm new file mode 100644 index 0000000000000..c70ea9802d6dc --- /dev/null +++ b/code/datums/drift_handler.dm @@ -0,0 +1,258 @@ +///Component that handles drifting +///Manages a movement loop that actually does the legwork of moving someone +///Alongside dealing with the post movement input blocking required to make things look nice +/datum/drift_handler + var/atom/movable/parent + var/atom/inertia_last_loc + var/old_dir + var/datum/move_loop/smooth_move/drifting_loop + ///Should we ignore the next glide rate input we get? + ///This is to some extent a hack around the order of operations + ///Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad + var/ignore_next_glide = FALSE + ///Have we been delayed? IE: active, but not working right this second? + var/delayed = FALSE + var/block_inputs_until + /// How much force is behind this drift. + var/drift_force = 1 + +/// Accepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start +/datum/drift_handler/New(atom/movable/parent, inertia_angle, instant = FALSE, start_delay = 0, drift_force = 1) + . = ..() + src.parent = parent + parent.drift_handler = src + var/flags = MOVEMENT_LOOP_OUTSIDE_CONTROL + if(instant) + flags |= MOVEMENT_LOOP_START_FAST + src.drift_force = drift_force + drifting_loop = GLOB.move_manager.smooth_move(moving = parent, angle = inertia_angle, delay = get_loop_delay(parent), subsystem = SSnewtonian_movement, priority = MOVEMENT_SPACE_PRIORITY, flags = flags) + + if(!drifting_loop) + qdel(src) + return + + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_START, PROC_REF(drifting_start)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_STOP, PROC_REF(drifting_stop)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_PREPROCESS_CHECK, PROC_REF(before_move)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(after_move)) + RegisterSignal(drifting_loop, COMSIG_QDELETING, PROC_REF(loop_death)) + RegisterSignal(parent, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE, PROC_REF(attempt_halt)) + if(drifting_loop.status & MOVELOOP_STATUS_RUNNING) + drifting_start(drifting_loop) // There's a good chance it'll autostart, gotta catch that + + var/visual_delay = get_loop_delay(parent) + + // Start delay is essentially a more granular version of instant + // Isn't used in the standard case, just for things that have odd wants + if(!instant && start_delay) + drifting_loop.pause_for(start_delay) + visual_delay = start_delay + + apply_initial_visuals(visual_delay) + +/datum/drift_handler/Destroy() + inertia_last_loc = null + if(!QDELETED(drifting_loop)) + qdel(drifting_loop) + drifting_loop = null + parent.inertia_moving = FALSE + parent.drift_handler = null + return ..() + +/datum/drift_handler/proc/apply_initial_visuals(visual_delay) + // If something "somewhere" doesn't want us to apply our glidesize delays, don't + if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) & DRIFT_VISUAL_FAILED) + return + + // Ignore the next glide because it's literally just us + ignore_next_glide = TRUE + parent.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSnewtonian_movement.visual_delay)) + if(!ismob(parent)) + return + var/mob/mob_parent = parent + //Ok this is slightly weird, but basically, we need to force the client to glide at our rate + //Make sure moving into a space move looks like a space move essentially + //There is an inbuilt assumption that gliding will be added as a part of a move call, but eh + //It's ok if it's not, it's just important if it is. + mob_parent.client?.visual_delay = MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSnewtonian_movement.visual_delay) + +/datum/drift_handler/proc/newtonian_impulse(inertia_angle, start_delay, additional_force, controlled_cap) + SIGNAL_HANDLER + inertia_last_loc = parent.loc + // We've been told to move in the middle of deletion process, tell parent to create a new handler instead + if(!drifting_loop) + qdel(src) + return FALSE + + var/applied_force = additional_force + + var/force_x = sin(drifting_loop.angle) * drift_force + sin(inertia_angle) * applied_force / parent.inertia_force_weight + var/force_y = cos(drifting_loop.angle) * drift_force + cos(inertia_angle) * applied_force / parent.inertia_force_weight + + drift_force = clamp(sqrt(force_x * force_x + force_y * force_y), 0, !isnull(controlled_cap) ? controlled_cap : INERTIA_FORCE_CAP) + if(drift_force < 0.1) // Rounding issues + qdel(src) + return TRUE + + drifting_loop.set_angle(delta_to_angle(force_x, force_y)) + drifting_loop.set_delay(get_loop_delay(parent)) + return TRUE + +/datum/drift_handler/proc/drifting_start() + SIGNAL_HANDLER + inertia_last_loc = parent.loc + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_move)) + // We will use glide size to intuit how long to delay our loop's next move for + // This way you can't ride two movements at once while drifting, since that'd be dumb as fuck + RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(handle_glidesize_update)) + // If you stop pulling something mid drift, I want it to retain that momentum + RegisterSignal(parent, COMSIG_ATOM_NO_LONGER_PULLING, PROC_REF(stopped_pulling)) + +/datum/drift_handler/proc/drifting_stop() + SIGNAL_HANDLER + parent.inertia_moving = FALSE + ignore_next_glide = FALSE + UnregisterSignal(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, COMSIG_ATOM_NO_LONGER_PULLING)) + +/datum/drift_handler/proc/before_move(datum/source) + SIGNAL_HANDLER + parent.inertia_moving = TRUE + old_dir = parent.dir + delayed = FALSE + +/datum/drift_handler/proc/after_move(datum/source, result, visual_delay) + SIGNAL_HANDLER + if(result == MOVELOOP_FAILURE) + qdel(src) + return + + parent.setDir(old_dir) + parent.inertia_moving = FALSE + if(parent.Process_Spacemove(angle2dir(drifting_loop.angle), continuous_move = TRUE)) + glide_to_halt(visual_delay) + return + + inertia_last_loc = parent.loc + ignore_next_glide = TRUE + +/datum/drift_handler/proc/loop_death(datum/source) + SIGNAL_HANDLER + drifting_loop = null + +/datum/drift_handler/proc/handle_move(datum/source, old_loc) + SIGNAL_HANDLER + // This can happen, because signals once sent cannot be stopped + if(QDELETED(src)) + return + if(!isturf(parent.loc)) + qdel(src) + return + if(parent.inertia_moving) + return + if(!parent.Process_Spacemove(angle2dir(drifting_loop.angle), continuous_move = TRUE)) + return + qdel(src) + +/// We're going to take the passed in glide size +/// and use it to manually delay our loop for that period +/// to allow the other movement to complete +/datum/drift_handler/proc/handle_glidesize_update(datum/source, glide_size) + SIGNAL_HANDLER + // If we aren't drifting, or this is us, fuck off + if(!drifting_loop || parent.inertia_moving) + return + // If we are drifting, but this set came from the moveloop itself, drop the input + // I'm sorry man + if(ignore_next_glide) + ignore_next_glide = FALSE + return + var/glide_delay = round(world.icon_size / glide_size, 1) * world.tick_lag + drifting_loop.pause_for(glide_delay) + delayed = TRUE + +/// If we're pulling something and stop, we want it to continue at our rate and such +/datum/drift_handler/proc/stopped_pulling(datum/source, atom/movable/was_pulling) + SIGNAL_HANDLER + // This does mean it falls very slightly behind, but otherwise they'll potentially run into us + var/next_move_in = drifting_loop.timer - world.time + world.tick_lag + was_pulling.newtonian_move(angle2dir(drifting_loop.angle), start_delay = next_move_in, drift_force = drift_force, controlled_cap = drift_force) + +/datum/drift_handler/proc/glide_to_halt(glide_for) + if(!ismob(parent)) + qdel(src) + return + + var/mob/mob_parent = parent + var/client/our_client = mob_parent.client + // If we're not active, don't do the glide because it'll look dumb as fuck + if(!our_client || delayed) + qdel(src) + return + + block_inputs_until = world.time + glide_for + 1 + QDEL_IN(src, glide_for + 1) + qdel(drifting_loop) + RegisterSignal(parent, COMSIG_MOB_CLIENT_PRE_MOVE, PROC_REF(allow_final_movement)) + +/datum/drift_handler/proc/allow_final_movement(datum/source) + SIGNAL_HANDLER + // Some things want to allow movement out of spacedrift, we should let them + if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) & DRIFT_ALLOW_INPUT) + return + if(world.time < block_inputs_until) + return COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE + +/datum/drift_handler/proc/attempt_halt(mob/source, movement_dir, continuous_move, atom/backup) + SIGNAL_HANDLER + + if (get_dir(source, backup) == movement_dir || source.loc == backup.loc) + if (drift_force >= INERTIA_FORCE_THROW_FLOOR) + source.throw_at(backup, 1, floor(1 + (drift_force - INERTIA_FORCE_THROW_FLOOR) / INERTIA_FORCE_PER_THROW_FORCE), spin = FALSE) + return + + if (drift_force < INERTIA_FORCE_SPACEMOVE_GRAB || isnull(drifting_loop)) + return + + if (drift_force <= INERTIA_FORCE_SPACEMOVE_REDUCTION / source.inertia_force_weight) + glide_to_halt(get_loop_delay(source)) + return COMPONENT_PREVENT_SPACEMOVE_HALT + + drift_force -= INERTIA_FORCE_SPACEMOVE_REDUCTION / source.inertia_force_weight + drifting_loop.set_delay(get_loop_delay(source)) + return COMPONENT_PREVENT_SPACEMOVE_HALT + +/datum/drift_handler/proc/get_loop_delay(atom/movable/movable) + return (DEFAULT_INERTIA_SPEED / ((1 - INERTIA_SPEED_COEF) + drift_force * INERTIA_SPEED_COEF)) * movable.inertia_move_multiplier + +/datum/drift_handler/proc/stabilize_drift(target_angle, target_force, stabilization_force) + /// We aren't drifting + if (isnull(drifting_loop)) + return + + /// Lack of angle means that we are trying to halt movement + if (isnull(target_angle)) + // Going through newtonian_move ensures that all Process_Spacemove code runs properly, instead of directly adjusting forces + parent.newtonian_move(reverse_angle(drifting_loop.angle), drift_force = min(drift_force, stabilization_force)) + return + + // Force required to be applied in order to get to the desired movement vector, with projection of current movement onto desired vector to ensure that we only compensate for excess + var/drift_projection = max(0, cos(target_angle - drifting_loop.angle)) * drift_force + var/force_x = sin(target_angle) * target_force - sin(drifting_loop.angle) * drift_force + var/force_y = cos(target_angle) * target_force - cos(drifting_loop.angle) * drift_force + var/force_angle = delta_to_angle(force_x, force_y) + var/applied_force = sqrt(force_x * force_x + force_y * force_y) + var/force_projection = max(0, cos(target_angle - force_angle)) * applied_force + force_x -= min(force_projection, drift_projection) * sin(target_angle) + force_x -= min(force_projection, drift_projection) * cos(target_angle) + applied_force = min(sqrt(force_x * force_x + force_y * force_y), stabilization_force) + parent.newtonian_move(force_angle, instant = TRUE, drift_force = applied_force) + +/// Removes all force in a certain direction +/datum/drift_handler/proc/remove_angle_force(target_angle) + /// We aren't drifting + if (isnull(drifting_loop)) + return + + var/projected_force = max(0, cos(target_angle - drifting_loop.angle)) * drift_force + if (projected_force > 0) + parent.newtonian_move(reverse_angle(target_angle), projected_force) diff --git a/code/datums/elements/bugkiller_reagent.dm b/code/datums/elements/bugkiller_reagent.dm index 57f2ae65d9209..d2c25926e966f 100644 --- a/code/datums/elements/bugkiller_reagent.dm +++ b/code/datums/elements/bugkiller_reagent.dm @@ -59,7 +59,7 @@ /datum/status_effect/bugkiller_death/on_apply() if(owner.stat == DEAD) return FALSE - playsound(owner, 'sound/voice/human/malescream_1.ogg', 25, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 5) + playsound(owner, 'sound/mobs/humanoids/human/scream/malescream_1.ogg', 25, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 5) to_chat(owner, span_userdanger("The world begins to go dark...")) owner.spasm_animation(spasm_loops) owner.adjust_eye_blur(duration) diff --git a/code/datums/elements/corrupted_organ.dm b/code/datums/elements/corrupted_organ.dm index 666ca3460fce5..504c6851e00c6 100644 --- a/code/datums/elements/corrupted_organ.dm +++ b/code/datums/elements/corrupted_organ.dm @@ -41,7 +41,7 @@ ) return var/turf/origin_turf = get_turf(organ) - playsound(organ, 'sound/magic/forcewall.ogg', vol = 100) + playsound(organ, 'sound/effects/magic/forcewall.ogg', vol = 100) new /obj/effect/temp_visual/curse_blast(origin_turf) organ.visible_message(span_revenwarning("[organ] explodes in a burst of dark energy!")) for(var/mob/living/target in range(1, origin_turf)) diff --git a/code/datums/elements/damage_threshold.dm b/code/datums/elements/damage_threshold.dm index 60c87dc5ed5c1..764f5d7a9bd6d 100644 --- a/code/datums/elements/damage_threshold.dm +++ b/code/datums/elements/damage_threshold.dm @@ -45,7 +45,7 @@ span_hear("You hear a thud."), COMBAT_MESSAGE_RANGE, ) - playsound(source, 'sound/weapons/tap.ogg', tap_vol, TRUE, -1) + playsound(source, 'sound/items/weapons/tap.ogg', tap_vol, TRUE, -1) return SUCCESSFUL_BLOCK return NONE diff --git a/code/datums/elements/deliver_first.dm b/code/datums/elements/deliver_first.dm index 0fb83a2545603..ae1947bff02a8 100644 --- a/code/datums/elements/deliver_first.dm +++ b/code/datums/elements/deliver_first.dm @@ -80,7 +80,7 @@ if(user) target.balloon_alert(user, "access denied until delivery!") if(COOLDOWN_FINISHED(src, deny_cooldown)) - playsound(target, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(target, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) COOLDOWN_START(src, deny_cooldown, DENY_SOUND_COOLDOWN) return BLOCK_OPEN diff --git a/code/datums/elements/door_pryer.dm b/code/datums/elements/door_pryer.dm index 9f01e8be2b6ab..3e2bd2c5a43d6 100644 --- a/code/datums/elements/door_pryer.dm +++ b/code/datums/elements/door_pryer.dm @@ -60,7 +60,7 @@ message = span_warning("[attacker] starts forcing the [airlock_target] open!"), blind_message = span_hear("You hear a metal screeching sound."), ) - playsound(airlock_target, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(airlock_target, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) airlock_target.balloon_alert(attacker, "prying...") if(!do_after(attacker, pry_time, airlock_target)) airlock_target.balloon_alert(attacker, "interrupted!") diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 2aae03fb3a4b6..fbaf638bdd520 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -117,6 +117,8 @@ if(!try_force_embed(payload, limb)) payload.failedEmbed() + else + SEND_SIGNAL(source, COMSIG_PROJECTILE_ON_EMBEDDED, payload, hit) Detach(source) /** diff --git a/code/datums/elements/falling_hazard.dm b/code/datums/elements/falling_hazard.dm index 355bcd92e4e01..65ac6b4569f0e 100644 --- a/code/datums/elements/falling_hazard.dm +++ b/code/datums/elements/falling_hazard.dm @@ -12,7 +12,7 @@ /// Does the target crush and flatten whoever it falls on var/crushes_people = FALSE /// What sound is played when the target falls onto a mob - var/impact_sound = 'sound/magic/clockwork/fellowship_armory.ogg' //CLANG + var/impact_sound = 'sound/effects/magic/clockwork/fellowship_armory.ogg' //CLANG /datum/element/falling_hazard/Attach(datum/target, damage, wound_bonus, hardhat_safety, crushes, impact_sound) . = ..() @@ -52,7 +52,7 @@ if(crushes_people) poor_target.Knockdown(0.25 SECONDS * fall_damage) // For a piano, that would be 15 seconds - playsound(poor_target, 'sound/weapons/parry.ogg', 50, TRUE) // You PARRIED the falling object with your EPIC hardhat + playsound(poor_target, 'sound/items/weapons/parry.ogg', 50, TRUE) // You PARRIED the falling object with your EPIC hardhat return var/obj/item/bodypart/target_head = poor_target.get_bodypart(BODY_ZONE_HEAD) diff --git a/code/datums/elements/high_fiver.dm b/code/datums/elements/high_fiver.dm index 6e4e9739cefc5..249a9f4059de4 100644 --- a/code/datums/elements/high_fiver.dm +++ b/code/datums/elements/high_fiver.dm @@ -54,7 +54,7 @@ taker.add_mood_event(descriptor, /datum/mood_event/high_five_full_hand) // not so successful now! return COMPONENT_OFFER_INTERRUPT - playsound(offerer, 'sound/weapons/slap.ogg', min(50 * slappers_giver, 300), TRUE, 1) + playsound(offerer, 'sound/items/weapons/slap.ogg', min(50 * slappers_giver, 300), TRUE, 1) offerer.add_mob_memory(/datum/memory/high_five, deuteragonist = taker, high_five_type = descriptor, high_ten = high_ten) taker.add_mob_memory(/datum/memory/high_five, deuteragonist = offerer, high_five_type = descriptor, high_ten = high_ten) diff --git a/code/datums/elements/kneejerk.dm b/code/datums/elements/kneejerk.dm index cd93fe31917ed..78c0ba7654d69 100644 --- a/code/datums/elements/kneejerk.dm +++ b/code/datums/elements/kneejerk.dm @@ -51,17 +51,17 @@ var/target_brain_damage = target_brain.damage if(target_brain_damage < BRAIN_DAMAGE_MILD) //a healthy brain produces a normal reaction - playsound(target, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(target, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) target.visible_message(span_danger("[target]'s leg kicks out sharply!"), \ span_danger("Your leg kicks out sharply!")) else if(target_brain_damage < BRAIN_DAMAGE_SEVERE) //a mildly damaged brain produces a delayed reaction - playsound(target, 'sound/weapons/punchmiss.ogg', 15, TRUE, -1) + playsound(target, 'sound/items/weapons/punchmiss.ogg', 15, TRUE, -1) target.visible_message(span_danger("After a moment, [target]'s leg kicks out sharply!"), \ span_danger("After a moment, your leg kicks out sharply!")) else if(target_brain_damage < BRAIN_DAMAGE_DEATH) //a severely damaged brain produces a delayed + weaker reaction - playsound(target, 'sound/weapons/punchmiss.ogg', 5, TRUE, -1) + playsound(target, 'sound/items/weapons/punchmiss.ogg', 5, TRUE, -1) target.visible_message(span_danger("After a moment, [target]'s leg kicks out weakly!"), \ span_danger("After a moment, your leg kicks out weakly!")) diff --git a/code/datums/elements/spooky.dm b/code/datums/elements/spooky.dm index 30a04f6348b20..89d53c4e99734 100644 --- a/code/datums/elements/spooky.dm +++ b/code/datums/elements/spooky.dm @@ -40,7 +40,7 @@ if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly))) C.adjustStaminaLoss(18) //boneless humanoids don't lose the will to live to_chat(C, "DOOT") - to_chat(C, "You're feeling more bony.") + to_chat(C, span_robot("You're feeling more bony.")) INVOKE_ASYNC(src, PROC_REF(spectral_change), H) else //the sound will spook monkeys. diff --git a/code/datums/elements/wall_tearer.dm b/code/datums/elements/wall_tearer.dm index 2c9ff5416d59b..cf61de7300919 100644 --- a/code/datums/elements/wall_tearer.dm +++ b/code/datums/elements/wall_tearer.dm @@ -51,7 +51,7 @@ var/rip_time = (istype(target, /turf/closed/wall/r_wall) ? tear_time * reinforced_multiplier : tear_time) / 3 if (rip_time > 0) tearer.visible_message(span_warning("[tearer] begins tearing through [target]!")) - playsound(tearer, 'sound/machines/airlock_alien_prying.ogg', vol = 100, vary = TRUE) + playsound(tearer, 'sound/machines/airlock/airlock_alien_prying.ogg', vol = 100, vary = TRUE) target.balloon_alert(tearer, "tearing...") if (!do_after(tearer, delay = rip_time, target = target, interaction_key = do_after_key)) tearer.balloon_alert(tearer, "interrupted!") diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 84355a8a490bf..9ce851a248665 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -100,8 +100,8 @@ user.log_message(msg, LOG_EMOTE) var/tmp_sound = get_sound(user) - if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, type)) - TIMER_COOLDOWN_START(user, type, audio_cooldown) + if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, "audible_emote_cooldown")) + TIMER_COOLDOWN_START(user, "audible_emote_cooldown", audio_cooldown) playsound(source = user,soundin = tmp_sound,vol = 50, vary = vary, ignore_walls = sound_wall_ignore) var/is_important = emote_type & EMOTE_IMPORTANT @@ -126,22 +126,22 @@ runechat_flags = EMOTE_MESSAGE, ) else if(is_important) - to_chat(viewer, "[user] [msg]") + to_chat(viewer, span_emote("[user] [msg]")) else if(is_audible && is_visual) viewer.show_message( - "[user] [msg]", MSG_AUDIBLE, - "You see how [user] [msg]", MSG_VISUAL, + span_emote("[user] [msg]"), MSG_AUDIBLE, + span_emote("You see how [user] [msg]"), MSG_VISUAL, ) else if(is_audible) - viewer.show_message("[user] [msg]", MSG_AUDIBLE) + viewer.show_message(span_emote("[user] [msg]"), MSG_AUDIBLE) else if(is_visual) - viewer.show_message("[user] [msg]", MSG_VISUAL) + viewer.show_message(span_emote("[user] [msg]"), MSG_VISUAL) return // Early exit so no dchat message // The emote has some important information, and should always be shown to the user else if(is_important) for(var/mob/viewer as anything in viewers(user)) - to_chat(viewer, "[user] [msg]") + to_chat(viewer, span_emote("[user] [msg]")) if(user.runechat_prefs_check(viewer, EMOTE_MESSAGE)) viewer.create_chat_message( speaker = user, @@ -153,7 +153,7 @@ else if(is_visual && is_audible) user.audible_message( message = msg, - deaf_message = "You see how [user] [msg]", + deaf_message = span_emote("You see how [user] [msg]"), self_message = msg, audible_message_flags = EMOTE_MESSAGE|ALWAYS_SHOW_SELF_MESSAGE, separation = space, // DOPPLER EDIT ADDITION @@ -214,7 +214,7 @@ continue if(!(get_chat_toggles(ghost.client) & CHAT_GHOSTSIGHT)) continue - to_chat(ghost, "[FOLLOW_LINK(ghost, user)] [dchatmsg]") + to_chat(ghost, span_emote("[FOLLOW_LINK(ghost, user)] [dchatmsg]")) return diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index c3562aa598732..732323d28655c 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -89,4 +89,4 @@ msg += "Protect Assistant Role From Traitor: [CONFIG_GET(flag/protect_assistant_from_antagonist)]" msg += "Enforce Human Authority: [CONFIG_GET(flag/enforce_human_authority)]" msg += "Allow Latejoin Antagonists: [CONFIG_GET(flag/allow_latejoin_antagonists)]" - to_chat(src, "[msg.Join("
")]
") + to_chat(src, span_infoplain(msg.Join("
"))) diff --git a/code/datums/looping_sounds/acid.dm b/code/datums/looping_sounds/acid.dm index e461e5d02ce9c..9dcf6e1750a0c 100644 --- a/code/datums/looping_sounds/acid.dm +++ b/code/datums/looping_sounds/acid.dm @@ -1,5 +1,5 @@ /// Soundloop for the acid component. /datum/looping_sound/acid - mid_sounds = list('sound/items/welder.ogg' = 1) + mid_sounds = list('sound/items/tools/welder.ogg' = 1) mid_length = 10 volume = 150 diff --git a/code/datums/looping_sounds/breathing.dm b/code/datums/looping_sounds/breathing.dm index 73474149ae4bb..a50e13a7fd5da 100644 --- a/code/datums/looping_sounds/breathing.dm +++ b/code/datums/looping_sounds/breathing.dm @@ -1,13 +1,13 @@ /datum/looping_sound/breathing mid_sounds = list( - 'sound/voice/breathing/internals_breathing1.ogg' = 1, - 'sound/voice/breathing/internals_breathing2.ogg' = 1, - 'sound/voice/breathing/internals_breathing3.ogg' = 1, - 'sound/voice/breathing/internals_breathing4.ogg' = 1, - 'sound/voice/breathing/internals_breathing5.ogg' = 1, - 'sound/voice/breathing/internals_breathing6.ogg' = 1, - 'sound/voice/breathing/internals_breathing7.ogg' = 1, - 'sound/voice/breathing/internals_breathing8.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing1.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing2.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing3.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing4.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing5.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing6.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing7.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing8.ogg' = 1, ) //Calculated this by using the average breathing time of an adult (12 to 20 per minute, which on average is 16 per minute) // realism is overrated, make it longer to reduce ear fatigue diff --git a/code/datums/looping_sounds/choking.dm b/code/datums/looping_sounds/choking.dm index 444204efa1fa6..6d337b1c7d648 100644 --- a/code/datums/looping_sounds/choking.dm +++ b/code/datums/looping_sounds/choking.dm @@ -1,5 +1,5 @@ /datum/looping_sound/choking - mid_sounds = list('sound/creatures/gag1.ogg' = 1, 'sound/creatures/gag2.ogg' = 1, 'sound/creatures/gag3.ogg' = 1, 'sound/creatures/gag4.ogg' = 1, 'sound/creatures/gag5.ogg' = 1) + mid_sounds = list('sound/mobs/humanoids/human/gag_vomit/gag1.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag2.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag3.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag4.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag5.ogg' = 1) mid_length = 1.6 SECONDS mid_length_vary = 0.3 SECONDS each_once = TRUE diff --git a/code/datums/looping_sounds/cyborg.dm b/code/datums/looping_sounds/cyborg.dm index 499e61757c6dd..0a01a4c7116b9 100644 --- a/code/datums/looping_sounds/cyborg.dm +++ b/code/datums/looping_sounds/cyborg.dm @@ -1,10 +1,10 @@ /datum/looping_sound/wash - mid_sounds = list('sound/creatures/cyborg/wash1.ogg' = 1, 'sound/creatures/cyborg/wash2.ogg' = 1) + mid_sounds = list('sound/mobs/non-humanoids/cyborg/wash1.ogg' = 1, 'sound/mobs/non-humanoids/cyborg/wash2.ogg' = 1) mid_length = 1.5 SECONDS // This makes them overlap slightly, which works out well for masking the fade in/out start_volume = 100 - start_sound = 'sound/creatures/cyborg/wash_start.ogg' + start_sound = 'sound/mobs/non-humanoids/cyborg/wash_start.ogg' start_length = 3.6 SECONDS // again, slightly shorter then the real time of 4 seconds, will make the transition to midsounds more seemless end_volume = 100 - end_sound = 'sound/creatures/cyborg/wash_end.ogg' + end_sound = 'sound/mobs/non-humanoids/cyborg/wash_end.ogg' vary = TRUE extra_range = 5 diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index 00fd3063e4382..7800326bb0a35 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -5,7 +5,7 @@ /datum/looping_sound/reverse_bear_trap_beep - mid_sounds = list('sound/machines/beep.ogg' = 1) + mid_sounds = list('sound/machines/beep/beep.ogg' = 1) mid_length = 60 volume = 10 @@ -24,7 +24,7 @@ mid_length = 1 SECONDS /datum/looping_sound/trapped_machine_beep - mid_sounds = list('sound/machines/beep.ogg' = 1) + mid_sounds = list('sound/machines/beep/beep.ogg' = 1) mid_length = 10 SECONDS mid_length_vary = 5 SECONDS falloff_exponent = 10 @@ -32,19 +32,19 @@ volume = 5 /datum/looping_sound/chainsaw - start_sound = list('sound/weapons/chainsaw_start.ogg' = 1) + start_sound = list('sound/items/weapons/chainsaw_start.ogg' = 1) start_length = 0.85 SECONDS - mid_sounds = list('sound/weapons/chainsaw_loop.ogg' = 1) + mid_sounds = list('sound/items/weapons/chainsaw_loop.ogg' = 1) mid_length = 0.85 SECONDS - end_sound = list('sound/weapons/chainsaw_stop.ogg' = 1) + end_sound = list('sound/items/weapons/chainsaw_stop.ogg' = 1) end_volume = 35 volume = 40 ignore_walls = FALSE /datum/looping_sound/beesmoke - mid_sounds = list('sound/weapons/beesmoke.ogg' = 1) + mid_sounds = list('sound/items/weapons/beesmoke.ogg' = 1) volume = 5 /datum/looping_sound/zipline - mid_sounds = list('sound/weapons/zipline_mid.ogg' = 1) + mid_sounds = list('sound/items/weapons/zipline_mid.ogg' = 1) volume = 5 diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index bc32b03125660..c4648a929b300 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -47,7 +47,7 @@ volume = 15 /datum/looping_sound/clock - mid_sounds = list('sound/ambience/ticking_clock.ogg' = 1) + mid_sounds = list('sound/ambience/misc/ticking_clock.ogg' = 1) mid_length = 40 volume = 50 ignore_walls = FALSE @@ -90,7 +90,7 @@ /datum/looping_sound/jackpot mid_length = 11 - mid_sounds = list('sound/machines/roulettejackpot.ogg' = 1) + mid_sounds = list('sound/machines/roulette/roulettejackpot.ogg' = 1) volume = 85 vary = TRUE @@ -141,7 +141,7 @@ falloff_exponent = 20 /datum/looping_sound/firealarm - mid_sounds = list('sound/machines/FireAlarm1.ogg' = 1,'sound/machines/FireAlarm2.ogg' = 1,'sound/machines/FireAlarm3.ogg' = 1,'sound/machines/FireAlarm4.ogg' = 1) + mid_sounds = list('sound/machines/fire_alarm/FireAlarm1.ogg' = 1,'sound/machines/fire_alarm/FireAlarm2.ogg' = 1,'sound/machines/fire_alarm/FireAlarm3.ogg' = 1,'sound/machines/fire_alarm/FireAlarm4.ogg' = 1) mid_length = 2.4 SECONDS volume = 30 @@ -151,34 +151,34 @@ falloff_exponent = 5 /datum/looping_sound/boiling - mid_sounds = list('sound/effects/bubbles2.ogg' = 1) + mid_sounds = list('sound/effects/bubbles/bubbles2.ogg' = 1) mid_length = 7 SECONDS volume = 25 /datum/looping_sound/typing mid_sounds = list( - 'sound/machines/terminal_button01.ogg' = 1, - 'sound/machines/terminal_button02.ogg' = 1, - 'sound/machines/terminal_button03.ogg' = 1, - 'sound/machines/terminal_button04.ogg' = 1, - 'sound/machines/terminal_button05.ogg' = 1, - 'sound/machines/terminal_button06.ogg' = 1, - 'sound/machines/terminal_button07.ogg' = 1, - 'sound/machines/terminal_button08.ogg' = 1, + 'sound/machines/terminal/terminal_button01.ogg' = 1, + 'sound/machines/terminal/terminal_button02.ogg' = 1, + 'sound/machines/terminal/terminal_button03.ogg' = 1, + 'sound/machines/terminal/terminal_button04.ogg' = 1, + 'sound/machines/terminal/terminal_button05.ogg' = 1, + 'sound/machines/terminal/terminal_button06.ogg' = 1, + 'sound/machines/terminal/terminal_button07.ogg' = 1, + 'sound/machines/terminal/terminal_button08.ogg' = 1, ) mid_length = 0.3 SECONDS /datum/looping_sound/soup mid_sounds = list( - 'sound/effects/soup_boil1.ogg' = 1, - 'sound/effects/soup_boil2.ogg' = 1, - 'sound/effects/soup_boil3.ogg' = 1, - 'sound/effects/soup_boil4.ogg' = 1, - 'sound/effects/soup_boil5.ogg' = 1, + 'sound/effects/soup_boil/soup_boil1.ogg' = 1, + 'sound/effects/soup_boil/soup_boil2.ogg' = 1, + 'sound/effects/soup_boil/soup_boil3.ogg' = 1, + 'sound/effects/soup_boil/soup_boil4.ogg' = 1, + 'sound/effects/soup_boil/soup_boil5.ogg' = 1, ) mid_length = 3 SECONDS volume = 80 - end_sound = 'sound/effects/soup_boil_end.ogg' + end_sound = 'sound/effects/soup_boil/soup_boil_end.ogg' end_volume = 60 extra_range = MEDIUM_RANGE_SOUND_EXTRARANGE falloff_exponent = 4 diff --git a/code/datums/looping_sounds/music.dm b/code/datums/looping_sounds/music.dm index ac76e236bc784..cc35ab8a8ee37 100644 --- a/code/datums/looping_sounds/music.dm +++ b/code/datums/looping_sounds/music.dm @@ -1,6 +1,6 @@ /datum/looping_sound/local_forecast mid_sounds = list( - 'sound/ambience/music/elevator/robocop-short.ogg' = 1, + 'sound/music/elevator/robocop-short.ogg' = 1, ) mid_length = 61 SECONDS volume = 20 diff --git a/code/datums/looping_sounds/vents.dm b/code/datums/looping_sounds/vents.dm index 2d0a3443631df..016b21db9cad0 100644 --- a/code/datums/looping_sounds/vents.dm +++ b/code/datums/looping_sounds/vents.dm @@ -1,7 +1,7 @@ /datum/looping_sound/vent_pump_overclock - start_sound = 'sound/machines/fan_start.ogg' + start_sound = 'sound/machines/fan/fan_start.ogg' start_length = 1.5 SECONDS - end_sound = 'sound/machines/fan_stop.ogg' + end_sound = 'sound/machines/fan/fan_stop.ogg' end_sound = 1.5 SECONDS - mid_sounds = 'sound/machines/fan_loop.ogg' + mid_sounds = 'sound/machines/fan/fan_loop.ogg' mid_length = 2 SECONDS diff --git a/code/datums/looping_sounds/weather.dm b/code/datums/looping_sounds/weather.dm index 6576cfb4e8d12..fa782a5f4ee5a 100644 --- a/code/datums/looping_sounds/weather.dm +++ b/code/datums/looping_sounds/weather.dm @@ -1,53 +1,53 @@ /datum/looping_sound/active_outside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/outside/active_mid1.ogg'=1, - 'sound/weather/ashstorm/outside/active_mid1.ogg'=1, - 'sound/weather/ashstorm/outside/active_mid1.ogg'=1 + 'sound/ambience/weather/ashstorm/outside/active_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/active_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/active_mid1.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/outside/active_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/outside/active_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/outside/active_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/outside/active_end.ogg' volume = 80 /datum/looping_sound/active_inside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/inside/active_mid1.ogg'=1, - 'sound/weather/ashstorm/inside/active_mid2.ogg'=1, - 'sound/weather/ashstorm/inside/active_mid3.ogg'=1 + 'sound/ambience/weather/ashstorm/inside/active_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/active_mid2.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/active_mid3.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/inside/active_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/inside/active_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/inside/active_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/inside/active_end.ogg' volume = 60 /datum/looping_sound/weak_outside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/outside/weak_mid1.ogg'=1, - 'sound/weather/ashstorm/outside/weak_mid2.ogg'=1, - 'sound/weather/ashstorm/outside/weak_mid3.ogg'=1 + 'sound/ambience/weather/ashstorm/outside/weak_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/weak_mid2.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/weak_mid3.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/outside/weak_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/outside/weak_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/outside/weak_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/outside/weak_end.ogg' volume = 50 /datum/looping_sound/weak_inside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/inside/weak_mid1.ogg'=1, - 'sound/weather/ashstorm/inside/weak_mid2.ogg'=1, - 'sound/weather/ashstorm/inside/weak_mid3.ogg'=1 + 'sound/ambience/weather/ashstorm/inside/weak_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/weak_mid2.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/weak_mid3.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/inside/weak_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/inside/weak_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/inside/weak_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/inside/weak_end.ogg' volume = 30 /datum/looping_sound/void_loop - mid_sounds = list('sound/ambience/VoidsEmbrace.ogg'=1) + mid_sounds = list('sound/music/antag/heretic/VoidsEmbrace.ogg'=1) mid_length = 1669 // exact length of the music in ticks volume = 100 extra_range = 30 diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index 28b820278e21b..35f8a254e177e 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -104,7 +104,7 @@ attacker, ) to_chat(attacker, span_danger("You slam [defender] into the ground!")) - playsound(attacker, 'sound/weapons/slam.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/slam.ogg', 50, TRUE, -1) defender.apply_damage(10, BRUTE) defender.Paralyze(12 SECONDS) log_combat(attacker, defender, "slammed (CQC)") @@ -125,7 +125,7 @@ attacker, ) to_chat(attacker, span_danger("You kick [defender]'s head, knocking [defender.p_them()] out!")) - playsound(attacker, 'sound/weapons/genhit1.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/genhit1.ogg', 50, TRUE, -1) var/helmet_protection = defender.run_armor_check(BODY_ZONE_HEAD, MELEE) defender.apply_effect(20 SECONDS, EFFECT_KNOCKDOWN, helmet_protection) @@ -141,7 +141,7 @@ attacker, ) to_chat(attacker, span_danger("You kick [defender] back!")) - playsound(attacker, 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) var/atom/throw_target = get_edge_target_turf(defender, attacker.dir) defender.throw_at(throw_target, 1, 14, attacker) defender.apply_damage(10, attacker.get_attack_type()) @@ -163,7 +163,7 @@ ) to_chat(attacker, span_danger("You punch [defender]'s neck!")) defender.adjustStaminaLoss(60) - playsound(attacker, 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) return TRUE /datum/martial_art/cqc/proc/Restrain(mob/living/attacker, mob/living/defender) @@ -201,7 +201,7 @@ attacker, ) to_chat(attacker, span_danger("You strike [defender]'s abdomen, neck and back consecutively!")) - playsound(defender, 'sound/weapons/cqchit2.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/cqchit2.ogg', 50, TRUE, -1) var/obj/item/held_item = defender.get_active_held_item() if(held_item && defender.temporarilyRemoveItemFromInventory(held_item)) attacker.put_in_hands(held_item) @@ -291,7 +291,7 @@ picked_hit_type = pick("kick", "stomp") defender.apply_damage(bonus_damage, BRUTE) - playsound(defender, (picked_hit_type == "kick" || picked_hit_type == "stomp") ? 'sound/weapons/cqchit2.ogg' : 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(defender, (picked_hit_type == "kick" || picked_hit_type == "stomp") ? 'sound/items/weapons/cqchit2.ogg' : 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) defender.visible_message( span_danger("[attacker] [picked_hit_type]ed [defender]!"), @@ -344,7 +344,7 @@ attacker, ) to_chat(attacker, span_danger("You strike [defender]'s jaw,[disarmed_item ? " disarming [defender.p_them()] of [disarmed_item] and" : ""] leaving [defender.p_them()] disoriented!")) - playsound(defender, 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) defender.set_jitter_if_lower(4 SECONDS) defender.apply_damage(5, attacker.get_attack_type()) log_combat(attacker, defender, "disarmed (CQC)", addition = disarmed_item ? "(disarmed of [disarmed_item])" : null) @@ -358,7 +358,7 @@ attacker, ) to_chat(attacker, span_warning("You fail to disarm [defender]!")) - playsound(defender, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) log_combat(attacker, defender, "failed to disarm (CQC)") return MARTIAL_ATTACK_FAIL diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 57e158cf66982..d670b8eb63806 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -201,7 +201,7 @@ attacker, ) to_chat(attacker, span_danger("You disarm [defender]!")) - playsound(defender, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) log_combat(attacker, defender, "disarmed (Krav Maga)", addition = "(disarmed of [stuff_in_hand])") return MARTIAL_ATTACK_INVALID // normal shove diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm index 47df74a3d4634..89981554f3ea3 100644 --- a/code/datums/martial/plasma_fist.dm +++ b/code/datums/martial/plasma_fist.dm @@ -41,7 +41,7 @@ /datum/martial_art/plasma_fist/proc/Tornado(mob/living/attacker, mob/living/defender) attacker.say("TORNADO SWEEP!", forced="plasma fist") - dance_rotate(attacker, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), attacker, 'sound/weapons/punch1.ogg', 15, TRUE, -1)) + dance_rotate(attacker, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), attacker, 'sound/items/weapons/punch1.ogg', 15, TRUE, -1)) tornado_spell.cast(attacker) log_combat(attacker, defender, "tornado sweeped (Plasma Fist)") return TRUE @@ -55,7 +55,7 @@ attacker, ) to_chat(attacker, span_danger("You hit [defender] with Plasma Punch!")) - playsound(defender, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 50, TRUE, -1) var/atom/throw_target = get_edge_target_turf(defender, get_dir(defender, get_step_away(defender, attacker))) defender.throw_at(throw_target, 200, 4,attacker) attacker.say("HYAH!", forced="plasma fist") @@ -66,7 +66,7 @@ var/hasclient = !!defender.client attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - playsound(defender, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 50, TRUE, -1) attacker.say("PLASMA FIST!", forced="plasma fist") defender.visible_message( span_danger("[attacker] hits [defender] with THE PLASMA FIST TECHNIQUE!"), @@ -125,7 +125,7 @@ user.apply_damage(rand(50, 70), BRUTE, wound_bonus = CANT_WOUND) addtimer(CALLBACK(src, PROC_REF(Apotheosis_end), user), 6 SECONDS) - playsound(boomspot, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + playsound(boomspot, 'sound/items/weapons/punch1.ogg', 50, TRUE, -1) explosion(user, devastation_range = plasma_power, heavy_impact_range = plasma_power*2, light_impact_range = plasma_power*4, ignorecap = TRUE, explosion_cause = src) plasma_power = 1 //just in case there is any clever way to cause it to happen again return TRUE diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index 454d23637f255..99c2b0e222464 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -67,7 +67,7 @@ attacker, ) to_chat(attacker, span_danger("You [atk_verb] [defender]!")) - playsound(defender, 'sound/weapons/punch1.ogg', 40, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 40, TRUE, -1) defender.apply_damage(defender_damage, attacker.get_attack_type(), BODY_ZONE_HEAD) attacker.apply_damage(rand(5, 10), attacker.get_attack_type(), BODY_ZONE_HEAD) if(iscarbon(defender)) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 02d0452fad265..f52050d8d76d7 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -53,7 +53,7 @@ attacker, ) to_chat(attacker, span_danger("You [atk_verb] [defender]!")) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) log_combat(attacker, defender, "strong punched (Sleeping Carp)") defender.apply_damage(20, attacker.get_attack_type(), affecting) return TRUE @@ -106,7 +106,7 @@ var/grab_log_description = "grabbed" attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) if(defender.stat != DEAD && !defender.IsUnconscious() && defender.getStaminaLoss() >= 80) //We put our target to sleep. defender.visible_message( span_danger("[attacker] carefully pinch a nerve in [defender]'s neck, knocking them out cold!"), @@ -161,7 +161,7 @@ ) to_chat(attacker, span_danger("You [atk_verb] [defender]!")) defender.apply_damage(final_damage, attacker.get_attack_type(), affecting, wound_bonus = CANT_WOUND) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) log_combat(attacker, defender, "punched (Sleeping Carp)") return MARTIAL_ATTACK_SUCCESS @@ -176,7 +176,7 @@ return MARTIAL_ATTACK_SUCCESS attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) defender.apply_damage(20, STAMINA) log_combat(attacker, defender, "disarmed (Sleeping Carp)") return MARTIAL_ATTACK_INVALID // normal disarm @@ -204,7 +204,7 @@ span_danger("[carp_user] effortlessly swats [hitting_projectile] aside! [carp_user.p_They()] can block bullets with [carp_user.p_their()] bare hands!"), span_userdanger("You deflect [hitting_projectile]!"), ) - playsound(carp_user, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + playsound(carp_user, pick('sound/items/weapons/bulletflyby.ogg', 'sound/items/weapons/bulletflyby2.ogg', 'sound/items/weapons/bulletflyby3.ogg'), 75, TRUE) hitting_projectile.firer = carp_user hitting_projectile.set_angle(rand(0, 360))//SHING return COMPONENT_BULLET_PIERCED diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 82cd275aef25e..695bf43949653 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -490,3 +490,14 @@ description = "I DIDN'T MEAN TO HURT THEM!" mood_change = -20 timeout = 10 MINUTES + +//Gained when you're hit over the head with wrapping paper or cardboard roll +/datum/mood_event/bapped + description = "Ow.. my head, I feel a bit foolish now!" + mood_change = -1 + timeout = 3 MINUTES + +/datum/mood_event/bapped/add_effects() + // Felinids apparently hate being hit over the head with cardboard + if(isfelinid(owner)) + mood_change = -2 diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index c86f7d7003334..e09a8337b72a4 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -474,7 +474,7 @@ if(prob(15)) owner.acid_act(rand(30, 50), 10) owner.visible_message(span_warning("[owner]'s skin bubbles and pops."), span_userdanger("Your bubbling flesh pops! It burns!")) - playsound(owner,'sound/weapons/sear.ogg', 50, TRUE) + playsound(owner,'sound/items/weapons/sear.ogg', 50, TRUE) /datum/mutation/human/spastic name = "Spastic" diff --git a/code/datums/mutations/fire_breath.dm b/code/datums/mutations/fire_breath.dm index 56915ff0130ea..d643bd98508d2 100644 --- a/code/datums/mutations/fire_breath.dm +++ b/code/datums/mutations/fire_breath.dm @@ -29,7 +29,7 @@ name = "Fire Breath" desc = "You breathe a cone of fire directly in front of you." button_icon_state = "fireball0" - sound = 'sound/magic/demon_dies.ogg' //horrifying lizard noises + sound = 'sound/effects/magic/demon_dies.ogg' //horrifying lizard noises school = SCHOOL_EVOCATION cooldown_time = 40 SECONDS diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 38ecb0fa07356..4eb04cdc03366 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -207,7 +207,7 @@ continue yeeted_person.adjustBruteLoss(step*0.5) - playsound(collateral_mob,'sound/weapons/punch1.ogg',50,TRUE) + playsound(collateral_mob,'sound/items/weapons/punch1.ogg',50,TRUE) log_combat(the_hulk, collateral_mob, "has smacked with tail swing victim") log_combat(the_hulk, yeeted_person, "has smacked this person into someone while tail swinging") // i have no idea how to better word this diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index 5a8d7458f3d0f..d3627167cb507 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -167,13 +167,13 @@ return to_chat(source, span_warning("You shoot with your laser eyes!")) source.changeNext_move(CLICK_CD_RANGE) - source.newtonian_move(get_dir(target, source)) + source.newtonian_move(get_angle(source, target)) var/obj/projectile/beam/laser/laser_eyes/LE = new(source.loc) LE.firer = source LE.def_zone = ran_zone(source.zone_selected) LE.preparePixelProjectile(target, source, modifiers) INVOKE_ASYNC(LE, TYPE_PROC_REF(/obj/projectile, fire)) - playsound(source, 'sound/weapons/taser2.ogg', 75, TRUE) + playsound(source, 'sound/items/weapons/taser2.ogg', 75, TRUE) ///Projectile type used by laser eyes /obj/projectile/beam/laser/laser_eyes diff --git a/code/datums/mutations/touch.dm b/code/datums/mutations/touch.dm index 2483ef2e0fa1a..634a46ab217ba 100644 --- a/code/datums/mutations/touch.dm +++ b/code/datums/mutations/touch.dm @@ -28,7 +28,7 @@ name = "Shock Touch" desc = "Channel electricity to your hand to shock people with." button_icon_state = "zap" - sound = 'sound/weapons/zapbang.ogg' + sound = 'sound/items/weapons/zapbang.ogg' cooldown_time = 12 SECONDS invocation_type = INVOCATION_NONE spell_requirements = NONE @@ -117,7 +117,7 @@ desc = "You can now lay your hands on other people to transfer a small amount of their physical injuries to yourself." button_icon = 'icons/mob/actions/actions_genetic.dmi' button_icon_state = "mending_touch" - sound = 'sound/magic/staff_healing.ogg' + sound = 'sound/effects/magic/staff_healing.ogg' cooldown_time = 12 SECONDS school = SCHOOL_RESTORATION invocation_type = INVOCATION_NONE diff --git a/code/datums/proximity_monitor/fields/timestop.dm b/code/datums/proximity_monitor/fields/timestop.dm index 79996dee2dd36..3b8001426a03c 100644 --- a/code/datums/proximity_monitor/fields/timestop.dm +++ b/code/datums/proximity_monitor/fields/timestop.dm @@ -45,13 +45,13 @@ /obj/effect/timestop/Destroy() QDEL_NULL(chronofield) if(!hidden) - playsound(src, 'sound/magic/timeparadox2.ogg', 75, TRUE, frequency = -1) //reverse! + playsound(src, 'sound/effects/magic/timeparadox2.ogg', 75, TRUE, frequency = -1) //reverse! return ..() /obj/effect/timestop/proc/timestop() target = get_turf(src) if(!hidden) - playsound(src, 'sound/magic/timeparadox2.ogg', 75, TRUE, -1) + playsound(src, 'sound/effects/magic/timeparadox2.ogg', 75, TRUE, -1) chronofield = new (src, freezerange, TRUE, immune, antimagic_flags, channelled) if(!channelled) QDEL_IN(src, duration) diff --git a/code/datums/quirks/neutral_quirks/monochromatic.dm b/code/datums/quirks/neutral_quirks/monochromatic.dm index dd66220cb56a9..ef6735df25d93 100644 --- a/code/datums/quirks/neutral_quirks/monochromatic.dm +++ b/code/datums/quirks/neutral_quirks/monochromatic.dm @@ -17,7 +17,7 @@ /datum/quirk/monochromatic/post_add() if(is_detective_job(quirk_holder.mind.assigned_role)) to_chat(quirk_holder, span_boldannounce("Mmm. Nothing's ever clear on this station. It's all shades of gray...")) - quirk_holder.playsound_local(quirk_holder, 'sound/ambience/ambidet1.ogg', 50, FALSE) + quirk_holder.playsound_local(quirk_holder, 'sound/ambience/security/ambidet1.ogg', 50, FALSE) /datum/quirk/monochromatic/remove() quirk_holder.remove_client_colour(/datum/client_colour/monochrome) diff --git a/code/datums/quirks/positive_quirks/spacer.dm b/code/datums/quirks/positive_quirks/spacer.dm index 051798b4c06a6..344462703e906 100644 --- a/code/datums/quirks/positive_quirks/spacer.dm +++ b/code/datums/quirks/positive_quirks/spacer.dm @@ -43,7 +43,7 @@ check_z(quirk_holder, skip_timers = TRUE) // drift slightly faster through zero G - quirk_holder.inertia_move_delay *= 0.8 + quirk_holder.inertia_move_multiplier *= 0.8 var/mob/living/carbon/human/human_quirker = quirk_holder human_quirker.set_mob_height(modded_height) @@ -73,7 +73,7 @@ if(QDELING(quirk_holder)) return - quirk_holder.inertia_move_delay /= 0.8 + quirk_holder.inertia_move_multiplier /= 0.8 quirk_holder.clear_mood_event("spacer") quirk_holder.remove_movespeed_modifier(/datum/movespeed_modifier/spacer) quirk_holder.remove_status_effect(/datum/status_effect/spacer) diff --git a/code/datums/station_traits/job_traits.dm b/code/datums/station_traits/job_traits.dm index b23a694cfdec9..3e8171d99c57b 100644 --- a/code/datums/station_traits/job_traits.dm +++ b/code/datums/station_traits/job_traits.dm @@ -258,7 +258,8 @@ /datum/station_trait/job/pun_pun/New() . = ..() - if(!SSticker.HasRoundStarted() || !GLOB.the_one_and_only_punpun) //Make sure we don't have two Pun Puns if loaded before the start of the round. + //Make sure we don't have two Pun Puns if loaded before the start of the round. + if(SSticker.HasRoundStarted() || !GLOB.the_one_and_only_punpun) return new /obj/effect/landmark/start/pun_pun(GLOB.the_one_and_only_punpun.loc) qdel(GLOB.the_one_and_only_punpun) diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index fc7fd4c01ef7f..8b5aadb3a06d6 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -713,7 +713,7 @@ Every shielding unit will provide an additional [shielder_time] of protection, fully protecting the station with [max_shielders] shielding units. "} - priority_announce(announcement, sound = 'sound/misc/notice1.ogg') + priority_announce(announcement, sound = 'sound/announcer/notice/notice1.ogg') //Set the display screens to the radiation alert var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 68462f1ae2ef2..cf3d1c88440b3 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -426,7 +426,7 @@ /datum/status_effect/mayhem/on_apply() . = ..() to_chat(owner, "RIP AND TEAR") - SEND_SOUND(owner, sound('sound/hallucinations/veryfar_noise.ogg')) + SEND_SOUND(owner, sound('sound/effects/hallucinations/veryfar_noise.ogg')) owner.cause_hallucination( \ /datum/hallucination/delusion/preset/demon, \ "[id] status effect", \ @@ -572,7 +572,7 @@ owner.add_stun_absorption(source = id, priority = 4) owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) ADD_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id) - owner.playsound_local(get_turf(owner), 'sound/chemistry/ahaha.ogg', vol = 100, vary = TRUE, use_reverb = TRUE) + owner.playsound_local(get_turf(owner), 'sound/effects/chemistry/ahaha.ogg', vol = 100, vary = TRUE, use_reverb = TRUE) return TRUE /datum/status_effect/blessing_of_insanity/on_remove() diff --git a/code/datums/status_effects/debuffs/choke.dm b/code/datums/status_effects/debuffs/choke.dm index c16b946aa02bd..9113c8a1a023e 100644 --- a/code/datums/status_effects/debuffs/choke.dm +++ b/code/datums/status_effects/debuffs/choke.dm @@ -217,7 +217,7 @@ var/obj/item/bodypart/chest = carbon_victim.get_bodypart(BODY_ZONE_CHEST) carbon_victim.cause_wound_of_type_and_severity(WOUND_BLUNT, chest, WOUND_SEVERITY_SEVERE, wound_source = "human force to the chest") - playsound(owner, 'sound/creatures/crack_vomit.ogg', 120, extrarange = 5, falloff_exponent = 4) + playsound(owner, 'sound/mobs/humanoids/human/gag_vomit/crack_vomit.ogg', 120, extrarange = 5, falloff_exponent = 4) vomit_up() /datum/status_effect/choke/proc/mirror_dir(atom/source, old_dir, new_dir) diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm index 08f5ae101bf77..865e9869ebeea 100644 --- a/code/datums/status_effects/debuffs/debuffs.dm +++ b/code/datums/status_effects/debuffs/debuffs.dm @@ -488,7 +488,7 @@ wasting_effect.transform = owner.transform //if the owner has been stunned the overlay should inherit that position wasting_effect.alpha = 255 animate(wasting_effect, alpha = 0, time = 32) - playsound(owner, 'sound/effects/curse5.ogg', 20, TRUE, -1) + playsound(owner, 'sound/effects/curse/curse5.ogg', 20, TRUE, -1) owner.adjustFireLoss(0.75) if(effect_last_activation <= world.time) effect_last_activation = world.time + effect_cooldown @@ -511,7 +511,7 @@ /datum/status_effect/necropolis_curse/proc/grasp(turf/spawn_turf) set waitfor = FALSE new/obj/effect/temp_visual/dir_setting/curse/grasp_portal(spawn_turf, owner.dir) - playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1) + playsound(spawn_turf, 'sound/effects/curse/curse2.ogg', 80, TRUE, -1) var/obj/projectile/curse_hand/C = new (spawn_turf) C.preparePixelProjectile(owner, spawn_turf) C.fire() diff --git a/code/datums/status_effects/debuffs/genetic_damage.dm b/code/datums/status_effects/debuffs/genetic_damage.dm index 91cfc593fcc41..21b6f1db2185c 100644 --- a/code/datums/status_effects/debuffs/genetic_damage.dm +++ b/code/datums/status_effects/debuffs/genetic_damage.dm @@ -46,15 +46,20 @@ qdel(src) return -/datum/status_effect/genetic_damage/proc/on_healthscan(datum/source, list/render_list, advanced) +/datum/status_effect/genetic_damage/proc/on_healthscan(datum/source, list/render_list, advanced, mob/user, mode, tochat) SIGNAL_HANDLER + var/message = "" if(advanced) - render_list += "Genetic damage: [round(total_damage / minimum_before_tox_damage * 100, 0.1)]%\n" + message = "Genetic damage: [round(total_damage / minimum_before_tox_damage * 100, 0.1)]%" else if(total_damage >= minimum_before_tox_damage) - render_list += "Severe genetic damage detected.\n" + message = "Severe genetic damage detected." else - render_list += "Minor genetic damage detected.\n" + message = "Minor genetic damage detected." + + if(message) + render_list += conditional_tooltip("[message]", "Irreparable under normal circumstances - will decay over time.", tochat) + render_list += "
" #undef GORILLA_MUTATION_CHANCE_PER_SECOND #undef GORILLA_MUTATION_MINIMUM_DAMAGE diff --git a/code/datums/status_effects/debuffs/hallucination.dm b/code/datums/status_effects/debuffs/hallucination.dm index 5d67acc789ed3..0d8875c6b23dd 100644 --- a/code/datums/status_effects/debuffs/hallucination.dm +++ b/code/datums/status_effects/debuffs/hallucination.dm @@ -38,13 +38,13 @@ )) /// Signal proc for [COMSIG_LIVING_HEALTHSCAN]. Show we're hallucinating to (advanced) scanners. -/datum/status_effect/hallucination/proc/on_health_scan(datum/source, list/render_list, advanced, mob/user, mode) +/datum/status_effect/hallucination/proc/on_health_scan(datum/source, list/render_list, advanced, mob/user, mode, tochat) SIGNAL_HANDLER if(!advanced) return - - render_list += "Subject is hallucinating.\n" + render_list += conditional_tooltip("Subject is hallucinating.", "Supply antipsychotic medication.", tochat) + render_list += "
" /// Signal proc for [COMSIG_CARBON_CHECKING_BODYPART], /// checking bodyparts while hallucinating can cause them to appear more damaged than they are diff --git a/code/datums/status_effects/debuffs/slime/slime_food.dm b/code/datums/status_effects/debuffs/slime/slime_food.dm index aa711bb878f75..538e62e27c597 100644 --- a/code/datums/status_effects/debuffs/slime/slime_food.dm +++ b/code/datums/status_effects/debuffs/slime/slime_food.dm @@ -54,12 +54,3 @@ /datum/status_effect/slime_food/on_remove() feeder = null - -/datum/status_effect/slime_food/update_particles() - if(particle_effect) - return - - particle_effect = new(owner, /particles/pollen) - - //particle coloured like the "pheromones" of the feeder - particle_effect.particles.color = "[feeder.chat_color]a0" diff --git a/code/datums/status_effects/debuffs/slime/slimed.dm b/code/datums/status_effects/debuffs/slime/slimed.dm index 6c2c0fb5be342..2540c4df5136c 100644 --- a/code/datums/status_effects/debuffs/slime/slimed.dm +++ b/code/datums/status_effects/debuffs/slime/slimed.dm @@ -101,17 +101,6 @@ )) to_chat(owner, span_userdanger("[feedback_text] as the layer of slime eats away at you!")) -/datum/status_effect/slimed/update_particles() - if(particle_effect) - return - - // taste the rainbow - var/particle_type = rainbow ? /particles/slime/rainbow : /particles/slime - particle_effect = new(owner, particle_type) - - if(!rainbow) - particle_effect.particles.color = "[slime_color]a0" - /datum/status_effect/slimed/get_examine_text() return span_warning("[owner.p_They()] [owner.p_are()] covered in bubbling slime!") diff --git a/code/datums/status_effects/debuffs/staggered.dm b/code/datums/status_effects/debuffs/staggered.dm index 1291da1307a61..88dd91c00e0d2 100644 --- a/code/datums/status_effects/debuffs/staggered.dm +++ b/code/datums/status_effects/debuffs/staggered.dm @@ -24,8 +24,6 @@ /datum/status_effect/staggered/on_remove() UnregisterSignal(owner, COMSIG_LIVING_DEATH) owner.remove_movespeed_modifier(/datum/movespeed_modifier/staggered) - // Resetting both X on remove so we're back to normal - animate(owner, pixel_x = owner.base_pixel_x, time = 0.2 SECONDS, flags = ANIMATION_PARALLEL) /// Signal proc that self deletes our staggered effect /datum/status_effect/staggered/proc/clear_staggered(datum/source) @@ -45,11 +43,12 @@ /// Helper proc that causes the mob to do a stagger animation. /// Doesn't change significantly, just meant to represent swaying back and forth /mob/living/proc/do_stagger_animation() - animate(src, pixel_x = 4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - sleep(0.2 SECONDS) - animate(src, pixel_x = -8, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - sleep(0.2 SECONDS) - animate(src, pixel_x = 4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) + var/normal_pos = base_pixel_x + body_position_pixel_x_offset + var/jitter_right = normal_pos + 4 + var/jitter_left = normal_pos - 4 + animate(src, pixel_x = jitter_left, 0.2 SECONDS, flags = ANIMATION_PARALLEL) + animate(pixel_x = jitter_right, time = 0.4 SECONDS) + animate(pixel_x = normal_pos, time = 0.2 SECONDS) /// Status effect specifically for instances where someone is vulnerable to being stunned when shoved. /datum/status_effect/next_shove_stuns diff --git a/code/datums/status_effects/debuffs/terrified.dm b/code/datums/status_effects/debuffs/terrified.dm index 6ed79372d01aa..61a6ecd4eda3b 100644 --- a/code/datums/status_effects/debuffs/terrified.dm +++ b/code/datums/status_effects/debuffs/terrified.dm @@ -55,7 +55,7 @@ owner.adjust_jitter_up_to(10 SECONDS * seconds_between_ticks, 10 SECONDS) if(terror_buildup >= TERROR_PANIC_THRESHOLD) //If you reach this amount of buildup in an engagement, it's time to start looking for a way out. - owner.playsound_local(get_turf(owner), 'sound/health/slowbeat.ogg', 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) + owner.playsound_local(get_turf(owner), 'sound/effects/health/slowbeat.ogg', 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) owner.add_fov_trait(id, FOV_270_DEGREES) //Terror induced tunnel vision owner.adjust_eye_blur_up_to(10 SECONDS * seconds_between_ticks, 10 SECONDS) if(prob(5)) //We have a little panic attack. Consider it GENTLE ENCOURAGEMENT to start running away. diff --git a/code/datums/status_effects/debuffs/tower_of_babel.dm b/code/datums/status_effects/debuffs/tower_of_babel.dm index b3c1ae0c477c7..a56ea1ac6d9a9 100644 --- a/code/datums/status_effects/debuffs/tower_of_babel.dm +++ b/code/datums/status_effects/debuffs/tower_of_babel.dm @@ -41,7 +41,7 @@ return owner.emote("mumble") - owner.playsound_local(get_turf(owner), 'sound/magic/magic_block_mind.ogg', 75, vary = TRUE) // sound of creepy whispers + owner.playsound_local(get_turf(owner), 'sound/effects/magic/magic_block_mind.ogg', 75, vary = TRUE) // sound of creepy whispers to_chat(owner, span_reallybig(span_hypnophrase("You feel a magical force affecting your speech patterns!"))) /datum/status_effect/tower_of_babel/magical/on_remove() diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 3d4bd7e93655c..6fd10943b7edf 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -119,7 +119,7 @@ /datum/status_effect/bounty/on_apply() to_chat(owner, span_boldnotice("You hear something behind you talking... \"You have been marked for death by [rewarded]. If you die, they will be rewarded.\"")) - playsound(owner, 'sound/weapons/gun/shotgun/rack.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/gun/shotgun/rack.ogg', 75, FALSE) return ..() /datum/status_effect/bounty/tick(seconds_between_ticks) @@ -130,7 +130,7 @@ /datum/status_effect/bounty/proc/rewards() if(rewarded && rewarded.mind && rewarded.stat != DEAD) to_chat(owner, span_boldnotice("You hear something behind you talking... \"Bounty claimed.\"")) - playsound(owner, 'sound/weapons/gun/shotgun/shot.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/gun/shotgun/shot.ogg', 75, FALSE) to_chat(rewarded, span_greentext("You feel a surge of mana flow into you!")) for(var/datum/action/cooldown/spell/spell in rewarded.actions) spell.reset_spell_cooldown() diff --git a/code/datums/status_effects/song_effects.dm b/code/datums/status_effects/song_effects.dm index f61253c987d77..d846f47f169db 100644 --- a/code/datums/status_effects/song_effects.dm +++ b/code/datums/status_effects/song_effects.dm @@ -25,7 +25,7 @@ /datum/status_effect/song/antimagic/on_apply() ADD_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT) - playsound(owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) return ..() /datum/status_effect/song/antimagic/on_remove() @@ -45,7 +45,7 @@ /datum/status_effect/song/light/on_apply() mob_light_obj = owner.mob_light(3, 1.5, color = LIGHT_COLOR_DIM_YELLOW) - playsound(owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) return TRUE /datum/status_effect/song/light/on_remove() diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index e5a7f3ee0f5a8..e7122f4b355d7 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -974,7 +974,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(user.active_storage == src && user.client) seeing += user else - is_using -= user + hide_contents(user) return seeing /** @@ -1032,8 +1032,6 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) * * mob/to_hide - the mob to hide the storage from */ /datum/storage/proc/hide_contents(mob/to_hide) - if(!to_hide.client) - return TRUE if(to_hide.active_storage == src) to_hide.active_storage = null @@ -1046,8 +1044,9 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) is_using -= to_hide - to_hide.client.screen -= storage_interfaces[to_hide].list_ui_elements() - to_hide.client.screen -= real_location.contents + if(to_hide.client) + to_hide.client.screen -= storage_interfaces[to_hide].list_ui_elements() + to_hide.client.screen -= real_location.contents QDEL_NULL(storage_interfaces[to_hide]) storage_interfaces -= to_hide @@ -1078,7 +1077,9 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) var/columns = clamp(max_slots, 1, screen_max_columns) var/rows = clamp(CEILING(adjusted_contents / columns, 1) + additional_row, 1, screen_max_rows) - for (var/ui_user in storage_interfaces) + for (var/mob/ui_user as anything in storage_interfaces) + if (isnull(storage_interfaces[ui_user])) + continue storage_interfaces[ui_user].update_position(screen_start_x, screen_pixel_x, screen_start_y, screen_pixel_y, columns, rows) var/current_x = screen_start_x diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 16ffb326f8a86..df2518b4322c6 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -13,7 +13,7 @@ /// description of weather var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open." /// The message displayed in chat to foreshadow the weather's beginning - var/telegraph_message = "The wind begins to pick up." + var/telegraph_message = span_warning("The wind begins to pick up.") /// In deciseconds, how long from the beginning of the telegraph until the weather begins var/telegraph_duration = 300 /// The sound file played to everyone on an affected z-level @@ -22,7 +22,7 @@ var/telegraph_overlay /// Displayed in chat once the weather begins in earnest - var/weather_message = "The wind begins to blow ferociously!" + var/weather_message = span_userdanger("The wind begins to blow ferociously!") /// In deciseconds, how long the weather lasts once it begins var/weather_duration = 1200 /// See above - this is the lowest possible duration @@ -37,7 +37,7 @@ var/weather_color = null /// Displayed once the weather is over - var/end_message = "The wind relents its assault." + var/end_message = span_danger("The wind relents its assault.") /// In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely var/end_duration = 300 /// Sound that plays while weather is ending diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index bb4e5af63f3ad..7d432c1e488da 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -3,16 +3,16 @@ name = "ash storm" desc = "An intense atmospheric storm lifts ash off of the planet's surface and billows it down across the area, dealing intense fire damage to the unprotected." - telegraph_message = "An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter." + telegraph_message = span_boldwarning("An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.") telegraph_duration = 300 telegraph_overlay = "light_ash" - weather_message = "Smoldering clouds of scorching ash billow down around you! Get inside!" + weather_message = span_userdanger("Smoldering clouds of scorching ash billow down around you! Get inside!") weather_duration_lower = 600 weather_duration_upper = 1200 weather_overlay = "ash_storm" - end_message = "The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now." + end_message = span_boldannounce("The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.") end_duration = 300 end_overlay = "light_ash" @@ -81,10 +81,10 @@ name = "emberfall" desc = "A passing ash storm blankets the area in harmless embers." - weather_message = "Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by..." + weather_message = span_notice("Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by...") weather_overlay = "light_ash" - end_message = "The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet." + end_message = span_notice("The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet.") end_sound = null aesthetic = TRUE diff --git a/code/datums/weather/weather_types/floor_is_lava.dm b/code/datums/weather/weather_types/floor_is_lava.dm index 03ed0c68c311a..25037d433b5eb 100644 --- a/code/datums/weather/weather_types/floor_is_lava.dm +++ b/code/datums/weather/weather_types/floor_is_lava.dm @@ -3,15 +3,15 @@ name = "the floor is lava" desc = "The ground turns into surprisingly cool lava, lightly damaging anything on the floor." - telegraph_message = "You feel the ground beneath you getting hot. Waves of heat distort the air." + telegraph_message = span_warning("You feel the ground beneath you getting hot. Waves of heat distort the air.") telegraph_duration = 150 - weather_message = "The floor is lava! Get on top of something!" + weather_message = span_userdanger("The floor is lava! Get on top of something!") weather_duration_lower = 300 weather_duration_upper = 600 weather_overlay = "lava" - end_message = "The ground cools and returns to its usual form." + end_message = span_danger("The ground cools and returns to its usual form.") end_duration = 0 area_type = /area diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index 9bf17c7a9dc76..8acf8be4b9e66 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -4,17 +4,17 @@ desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." telegraph_duration = 400 - telegraph_message = "The air begins to grow warm." + telegraph_message = span_danger("The air begins to grow warm.") - weather_message = "You feel waves of heat wash over you! Find shelter!" + weather_message = span_userdanger("You feel waves of heat wash over you! Find shelter!") weather_overlay = "ash_storm" weather_duration_lower = 600 weather_duration_upper = 1500 weather_color = "green" - weather_sound = 'sound/misc/bloblarm.ogg' + weather_sound = 'sound/announcer/alarm/bloblarm.ogg' end_duration = 100 - end_message = "The air seems to be cooling off again." + end_message = span_notice("The air seems to be cooling off again.") area_type = /area protected_areas = list(/area/station/maintenance, /area/station/ai_monitored/turret_protected/ai_upload, /area/station/ai_monitored/turret_protected/ai_upload_foyer, diff --git a/code/datums/weather/weather_types/snow_storm.dm b/code/datums/weather/weather_types/snow_storm.dm index c98ee9636a7aa..2b749cdbc84d1 100644 --- a/code/datums/weather/weather_types/snow_storm.dm +++ b/code/datums/weather/weather_types/snow_storm.dm @@ -3,18 +3,18 @@ desc = "Harsh snowstorms roam the topside of this arctic planet, burying any area unfortunate enough to be in its path." probability = 90 - telegraph_message = "Drifting particles of snow begin to dust the surrounding area.." + telegraph_message = span_warning("Drifting particles of snow begin to dust the surrounding area..") telegraph_duration = 300 telegraph_overlay = "light_snow" - weather_message = "Harsh winds pick up as dense snow begins to fall from the sky! Seek shelter!" + weather_message = span_userdanger("Harsh winds pick up as dense snow begins to fall from the sky! Seek shelter!") weather_overlay = "snow_storm" weather_duration_lower = 600 weather_duration_upper = 1500 use_glow = FALSE end_duration = 100 - end_message = "The snowfall dies down, it should be safe to go outside again." + end_message = span_boldannounce("The snowfall dies down, it should be safe to go outside again.") area_type = /area protect_indoors = TRUE diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index fa939d5b5607c..d7f98f07debd9 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -48,7 +48,7 @@ if(WIRE_PROCEED) holder.visible_message(span_danger("[icon2html(B, viewers(holder))] The bomb buzzes ominously!")) - playsound(B, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(B, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) var/seconds = B.seconds_remaining() if(seconds >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. B.detonation_timer = world.time + 600 diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm index fe6c83d8169e9..5e5258c86deb9 100644 --- a/code/datums/wounds/_wounds.dm +++ b/code/datums/wounds/_wounds.dm @@ -23,6 +23,8 @@ var/desc = "" /// The basic treatment suggested by health analyzers var/treat_text = "" + /// Even more basic treatment + var/treat_text_short = "" /// What the limb looks like on a cursory examine var/examine_desc = "is badly hurt" @@ -643,22 +645,42 @@ return span_bold("[desc]!") return "[desc]." +/** + * Prints the details about the wound for the wound scanner on simple mode + */ /datum/wound/proc/get_scanner_description(mob/user) - return "Type: [name]\nSeverity: [severity_text(simple = FALSE)]\nDescription: [desc]\nRecommended Treatment: [treat_text]" + return "Type: [name]
\ + Severity: [severity_text()]
\ + Description: [desc]
\ + Recommended Treatment: [treat_text]" +/** + * Prints the details about the wound for the wound scanner on complex mode + */ /datum/wound/proc/get_simple_scanner_description(mob/user) - return "[name] detected!\nRisk: [severity_text(simple = TRUE)]\nDescription: [simple_desc ? simple_desc : desc]\nTreatment Guide: [simple_treat_text]\nHomemade Remedies: [homemade_treat_text]" + var/severity_text_formatted = severity_text() + for(var/i in 1 to severity) + severity_text_formatted += "!" -/datum/wound/proc/severity_text(simple = FALSE) + return "[name] detected!
\ + Risk: [severity_text_formatted]
\ + Description: [simple_desc || desc]
\ + Treatment Guide: [simple_treat_text]
\ + Homemade Remedies: [homemade_treat_text]" + +/** + * Returns what text describes this wound + */ +/datum/wound/proc/severity_text() switch(severity) if(WOUND_SEVERITY_TRIVIAL) return "Trivial" if(WOUND_SEVERITY_MODERATE) - return "Moderate" + (simple ? "!" : "") + return "Moderate" if(WOUND_SEVERITY_SEVERE) - return "Severe" + (simple ? "!!" : "") + return "Severe" if(WOUND_SEVERITY_CRITICAL) - return "Critical" + (simple ? "!!!" : "") + return "Critical" /// Returns TRUE if our limb is the head or chest, FALSE otherwise. /// Essential in the sense of "we cannot live without it". diff --git a/code/datums/wounds/bones.dm b/code/datums/wounds/bones.dm index 19793643727e8..3e8c49c2d5944 100644 --- a/code/datums/wounds/bones.dm +++ b/code/datums/wounds/bones.dm @@ -209,7 +209,9 @@ /datum/wound/blunt/bone/moderate name = "Joint Dislocation" desc = "Patient's limb has been unset from socket, causing pain and reduced motor function." - treat_text = "Recommended application of bonesetter to affected limb, though manual relocation by applying an aggressive grab to the patient and helpfully interacting with afflicted limb may suffice." + treat_text = "Apply Bonesetter to the affected limb. \ + Manual relocation by via an aggressive grab and a tight hug to the affected limb may also suffice." + treat_text_short = "Apply Bonesetter, or manually relocate the limb." examine_desc = "is awkwardly janked out of place" occur_text = "janks violently and becomes unseated" severity = WOUND_SEVERITY_MODERATE @@ -344,7 +346,9 @@ /datum/wound/blunt/bone/severe name = "Hairline Fracture" desc = "Patient's bone has suffered a crack in the foundation, causing serious pain and reduced limb functionality." - treat_text = "Recommended light surgical application of bone gel, though a sling of medical gauze will prevent worsening situation." + treat_text = "Repair surgically. In the event of an emergency, an application of bone gel over the affected area will fix over time. \ + A splint or sling of medical gauze can also be used to prevent the fracture from worsening." + treat_text_short = "Repair surgically, or apply bone gel. A splint or gauze sling can also be used." examine_desc = "appears grotesquely swollen, jagged bumps hinting at chips in the bone" occur_text = "sprays chips of bone and develops a nasty looking bruise" @@ -377,8 +381,11 @@ /// Compound Fracture (Critical Blunt) /datum/wound/blunt/bone/critical name = "Compound Fracture" - desc = "Patient's bones have suffered multiple gruesome fractures, causing significant pain and near uselessness of limb." - treat_text = "Immediate binding of affected limb, followed by surgical intervention ASAP." + desc = "Patient's bones have suffered multiple fractures, \ + couped with a break in the skin, causing significant pain and near uselessness of limb." + treat_text = "Immediately bind the affected limb with gauze or a splint. Repair surgically. \ + In the event of an emergency, bone gel and surgical tape can be applied to the affected area to fix over a long period of time." + treat_text_short = "Repair surgically, or apply bone gel and surgical tape. A splint or gauze sling should also be used." examine_desc = "is thoroughly pulped and cracked, exposing shards of bone to open air" occur_text = "cracks apart, exposing broken bones to open air" diff --git a/code/datums/wounds/burns.dm b/code/datums/wounds/burns.dm index 394486fef9a24..a4ef3bd7b7df7 100644 --- a/code/datums/wounds/burns.dm +++ b/code/datums/wounds/burns.dm @@ -41,7 +41,7 @@ return . = ..() - if(strikes_to_lose_limb == 0) // we've already hit sepsis, nothing more to do + if(strikes_to_lose_limb <= 0) // we've already hit sepsis, nothing more to do victim.adjustToxLoss(0.25 * seconds_per_tick) if(SPT_PROB(0.5, seconds_per_tick)) victim.visible_message(span_danger("The infection on the remnants of [victim]'s [limb.plaintext_zone] shift and bubble nauseatingly!"), span_warning("You can feel the infection on the remnants of your [limb.plaintext_zone] coursing through your veins!"), vision_distance = COMBAT_MESSAGE_RANGE) @@ -135,6 +135,13 @@ threshold_penalty = 120 // piss easy to destroy set_disabling(TRUE) +/datum/wound/burn/flesh/set_disabling(new_value) + . = ..() + if(new_value && strikes_to_lose_limb <= 0) + treat_text_short = "Amputate or augment limb immediately, or place the patient into cryogenics." + else + treat_text_short = initial(treat_text_short) + /datum/wound/burn/flesh/get_wound_description(mob/user) if(strikes_to_lose_limb <= 0) return span_deadsay("[victim.p_Their()] [limb.plaintext_zone] has locked up completely and is non-functional.") @@ -168,9 +175,25 @@ return "[condition.Join()]" +/datum/wound/burn/flesh/severity_text(simple = FALSE) + . = ..() + . += " Burn / " + switch(infestation) + if(-INFINITY to WOUND_INFECTION_MODERATE) + . += "No" + if(WOUND_INFECTION_MODERATE to WOUND_INFECTION_SEVERE) + . += "Moderate" + if(WOUND_INFECTION_SEVERE to WOUND_INFECTION_CRITICAL) + . += "Severe" + if(WOUND_INFECTION_CRITICAL to WOUND_INFECTION_SEPTIC) + . += "Critical" + if(WOUND_INFECTION_SEPTIC to INFINITY) + . += "Total" + . += " Infection" + /datum/wound/burn/flesh/get_scanner_description(mob/user) if(strikes_to_lose_limb <= 0) // Unclear if it can go below 0, best to not take the chance - var/oopsie = "Type: [name]\nSeverity: [severity_text()]" + var/oopsie = "Type: [name]
Severity: [severity_text()]" oopsie += "
Infection Level: [span_deadsay("The body part has suffered complete sepsis and must be removed. Amputate or augment limb immediately, or place the patient in a cryotube.")]
" return oopsie @@ -249,7 +272,7 @@ // people complained about burns not healing on stasis beds, so in addition to checking if it's cured, they also get the special ability to very slowly heal on stasis beds if they have the healing effects stored /datum/wound/burn/flesh/on_stasis(seconds_per_tick, times_fired) . = ..() - if(strikes_to_lose_limb == 0) // we've already hit sepsis, nothing more to do + if(strikes_to_lose_limb <= 0) // we've already hit sepsis, nothing more to do if(SPT_PROB(0.5, seconds_per_tick)) victim.visible_message(span_danger("The infection on the remnants of [victim]'s [limb.plaintext_zone] shift and bubble nauseatingly!"), span_warning("You can feel the infection on the remnants of your [limb.plaintext_zone] coursing through your veins!"), vision_distance = COMBAT_MESSAGE_RANGE) return @@ -280,7 +303,8 @@ /datum/wound/burn/flesh/moderate name = "Second Degree Burns" desc = "Patient is suffering considerable burns with mild skin penetration, weakening limb integrity and increased burning sensations." - treat_text = "Recommended application of topical ointment or regenerative mesh to affected region." + treat_text = "Apply topical ointment or regenerative mesh to the wound." + treat_text_short = "Apply healing aid such as regenerative mesh." examine_desc = "is badly burned and breaking out in blisters" occur_text = "breaks out with violent red burns" severity = WOUND_SEVERITY_MODERATE @@ -304,7 +328,11 @@ /datum/wound/burn/flesh/severe name = "Third Degree Burns" desc = "Patient is suffering extreme burns with full skin penetration, creating serious risk of infection and greatly reduced limb integrity." - treat_text = "Recommended immediate disinfection and excision of any infected skin, followed by bandaging and ointment. If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text = "Swiftly apply healing aids such as Synthflesh or regenerative mesh to the wound. \ + Disinfect the wound and surgically debride any infected skin, and wrap in clean gauze / use ointment to prevent further infection. \ + If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text_short = "Apply healing aid such as regenerative mesh, Synthflesh, or cryogenics and disinfect / debride. \ + Clean gauze or ointment will slow infection rate." examine_desc = "appears seriously charred, with aggressive red splotches" occur_text = "chars rapidly, exposing ruined tissue and spreading angry red burns" severity = WOUND_SEVERITY_SEVERE @@ -330,7 +358,11 @@ /datum/wound/burn/flesh/critical name = "Catastrophic Burns" desc = "Patient is suffering near complete loss of tissue and significantly charred muscle and bone, creating life-threatening risk of infection and negligible limb integrity." - treat_text = "Immediate surgical debriding of any infected skin, followed by potent tissue regeneration formula and bandaging. If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text = "Immediately apply healing aids such as Synthflesh or regenerative mesh to the wound. \ + Disinfect the wound and surgically debride any infected skin, and wrap in clean gauze / use ointment to prevent further infection. \ + If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text_short = "Apply healing aid such as regenerative mesh, Synthflesh, or cryogenics and disinfect / debride. \ + Clean gauze or ointment will slow infection rate." examine_desc = "is a ruined mess of blanched bone, melted fat, and charred tissue" occur_text = "vaporizes as flesh, bone, and fat melt together in a horrifying mess" severity = WOUND_SEVERITY_CRITICAL diff --git a/code/datums/wounds/cranial_fissure.dm b/code/datums/wounds/cranial_fissure.dm index df973d3bdec90..8feebe8d2b624 100644 --- a/code/datums/wounds/cranial_fissure.dm +++ b/code/datums/wounds/cranial_fissure.dm @@ -29,7 +29,8 @@ /datum/wound/cranial_fissure name = "Cranial Fissure" desc = "Patient's crown is agape, revealing severe damage to the skull." - treat_text = "Immediate surgical reconstruction of the skull." + treat_text = "Surgical reconstruction of the skull is necessary." + treat_text_short = "Surgical reconstruction required." examine_desc = "is split open" occur_text = "is split into two separated chunks" @@ -95,7 +96,7 @@ victim.balloon_alert(user, "no eyes to take!") return TRUE - playsound(victim, 'sound/surgery/organ2.ogg', 50, TRUE) + playsound(victim, 'sound/items/handling/surgery/organ2.ogg', 50, TRUE) victim.balloon_alert(user, "pulling out eyes...") user.visible_message( span_boldwarning("[user] reaches inside [victim]'s skull..."), @@ -115,7 +116,7 @@ log_combat(user, victim, "pulled out the eyes of") - playsound(victim, 'sound/surgery/organ1.ogg', 75, TRUE) + playsound(victim, 'sound/items/handling/surgery/organ1.ogg', 75, TRUE) user.visible_message( span_boldwarning("[user] rips out [victim]'s eyes!"), span_boldwarning("You rip out [victim]'s eyes!"), diff --git a/code/datums/wounds/pierce.dm b/code/datums/wounds/pierce.dm index da4d51c0aa20f..ac0e004d5c42c 100644 --- a/code/datums/wounds/pierce.dm +++ b/code/datums/wounds/pierce.dm @@ -6,7 +6,7 @@ /datum/wound/pierce/bleed name = "Piercing Wound" - sound_effect = 'sound/weapons/slice.ogg' + sound_effect = 'sound/items/weapons/slice.ogg' processes = TRUE treatable_by = list(/obj/item/stack/medical/suture) treatable_tools = list(TOOL_CAUTERY) @@ -202,7 +202,10 @@ /datum/wound/pierce/bleed/moderate name = "Minor Skin Breakage" desc = "Patient's skin has been broken open, causing severe bruising and minor internal bleeding in affected area." - treat_text = "Treat affected site with bandaging or exposure to extreme cold. In dire cases, brief exposure to vacuum may suffice." // space is cold in ss13, so it's like an ice pack! + treat_text = "Apply bandaging or suturing to the wound, make use of blood clotting agents, \ + cauterization, or in extreme circumstances, exposure to extreme cold or vaccuum. \ + Follow with food and a rest period." + treat_text_short = "Apply bandaging or suturing." examine_desc = "has a small, circular hole, gently bleeding" occur_text = "spurts out a thin stream of blood" sound_effect = 'sound/effects/wounds/pierce1.ogg' @@ -233,7 +236,10 @@ /datum/wound/pierce/bleed/severe name = "Open Puncture" desc = "Patient's internal tissue is penetrated, causing sizeable internal bleeding and reduced limb stability." - treat_text = "Repair punctures in skin by suture or cautery, extreme cold may also work." + treat_text = "Swiftly apply bandaging or suturing to the wound, make use of blood clotting agents or saline-glucose, \ + cauterization, or in extreme circumstances, exposure to extreme cold or vaccuum. \ + Follow with iron supplements and a rest period." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "is pierced clear through, with bits of tissue obscuring the open hole" occur_text = "looses a violent spray of blood, revealing a pierced wound" sound_effect = 'sound/effects/wounds/pierce2.ogg' @@ -263,7 +269,10 @@ /datum/wound/pierce/bleed/critical name = "Ruptured Cavity" desc = "Patient's internal tissue and circulatory system is shredded, causing significant internal bleeding and damage to internal organs." - treat_text = "Surgical repair of puncture wound, followed by supervised resanguination." + treat_text = "Immediately apply bandaging or suturing to the wound, make use of blood clotting agents or saline-glucose, \ + cauterization, or in extreme circumstances, exposure to extreme cold or vaccuum. \ + Follow with supervised resanguination." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "is ripped clear through, barely held together by exposed bone" occur_text = "blasts apart, sending chunks of viscera flying in all directions" sound_effect = 'sound/effects/wounds/pierce3.ogg' diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm index dd41d48620e99..fd3cb4bd7b2b1 100644 --- a/code/datums/wounds/slash.dm +++ b/code/datums/wounds/slash.dm @@ -5,7 +5,7 @@ /datum/wound/slash name = "Slashing (Cut) Wound" - sound_effect = 'sound/weapons/slice.ogg' + sound_effect = 'sound/items/weapons/slice.ogg' /datum/wound_pregen_data/flesh_slash abstract = TRUE @@ -321,7 +321,9 @@ /datum/wound/slash/flesh/moderate name = "Rough Abrasion" desc = "Patient's skin has been badly scraped, generating moderate blood loss." - treat_text = "Application of clean bandages or first-aid grade sutures, followed by food and rest." + treat_text = "Apply bandaging or suturing to the wound. \ + Follow up with food and a rest period." + treat_text_short = "Apply bandaging or suturing." examine_desc = "has an open cut" occur_text = "is cut open, slowly leaking blood" sound_effect = 'sound/effects/wounds/blood1.ogg' @@ -350,7 +352,10 @@ /datum/wound/slash/flesh/severe name = "Open Laceration" desc = "Patient's skin is ripped clean open, allowing significant blood loss." - treat_text = "Speedy application of first-aid grade sutures and clean bandages, followed by vitals monitoring to ensure recovery." + treat_text = "Swiftly apply bandaging or suturing to the wound, \ + or make use of blood clotting agents or cauterization. \ + Follow up with iron supplements or saline-glucose and a rest period." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "has a severe cut" occur_text = "is ripped open, veins spurting blood" sound_effect = 'sound/effects/wounds/blood2.ogg' @@ -380,7 +385,10 @@ /datum/wound/slash/flesh/critical name = "Weeping Avulsion" desc = "Patient's skin is completely torn open, along with significant loss of tissue. Extreme blood loss will lead to quick death without intervention." - treat_text = "Immediate bandaging and either suturing or cauterization, followed by supervised resanguination." + treat_text = "Immediately apply bandaging or suturing to the wound, \ + or make use of blood clotting agents or cauterization. \ + Follow up supervised resanguination." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "is carved down to the bone, spraying blood wildly" occur_text = "is torn open, spraying blood wildly" sound_effect = 'sound/effects/wounds/blood3.ogg' diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 04d26a5e50a5a..b988fa0b6daa8 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -91,7 +91,7 @@ ///Does this area immediately play an ambience track upon enter? var/forced_ambience = FALSE ///The background droning loop that plays 24/7 - var/ambient_buzz = 'sound/ambience/shipambience.ogg' + var/ambient_buzz = 'sound/ambience/general/shipambience.ogg' ///The volume of the ambient buzz var/ambient_buzz_vol = 35 ///Used to decide what the minimum time between ambience is diff --git a/code/game/area/areas/ai_monitored.dm b/code/game/area/areas/ai_monitored.dm index a6964d70f6ae0..4e63479987e85 100644 --- a/code/game/area/areas/ai_monitored.dm +++ b/code/game/area/areas/ai_monitored.dm @@ -23,9 +23,9 @@ // Turret protected /area/station/ai_monitored/turret_protected - ambientsounds = list('sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') + ambientsounds = list('sound/ambience/engineering/ambitech.ogg', 'sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambiatmos.ogg', 'sound/ambience/engineering/ambiatmos2.ogg') ///Some sounds (like the space jam) are terrible when on loop. We use this variable to add it to other AI areas, but override it to keep it from the AI's core. - var/ai_will_not_hear_this = list('sound/ambience/ambimalf.ogg') + var/ai_will_not_hear_this = list('sound/ambience/misc/ambimalf.ogg') airlock_wires = /datum/wires/airlock/ai /area/station/ai_monitored/turret_protected/Initialize(mapload) diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm index 5e2219ef857e0..5ff0143c0a1a9 100644 --- a/code/game/area/areas/away_content.dm +++ b/code/game/area/areas/away_content.dm @@ -23,7 +23,7 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30" base_lighting_alpha = 200 base_lighting_color = "#FFF4AA" sound_environment = SOUND_ENVIRONMENT_PLAIN - ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg') + ambientsounds = list('sound/ambience/beach/shore.ogg', 'sound/ambience/misc/ambiodd.ogg','sound/ambience/medical/ambinice.ogg') /area/awaymission/museum/cafeteria name = "Nanotrasen Museum Cafeteria" diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 031a6dd5039d7..be6db4e077fec 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -4,7 +4,7 @@ icon_state = "mining" has_gravity = STANDARD_GRAVITY area_flags = VALID_TERRITORY | UNIQUE_AREA | FLORA_ALLOWED | CULT_PERMITTED - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/mine/lobby name = "Mining Station" @@ -134,7 +134,7 @@ flags_1 = NONE area_flags = VALID_TERRITORY | UNIQUE_AREA | FLORA_ALLOWED sound_environment = SOUND_AREA_LAVALAND - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/lavaland/surface name = "Lavaland" @@ -195,7 +195,7 @@ area_flags = UNIQUE_AREA | FLORA_ALLOWED ambience_index = AMBIENCE_ICEMOON sound_environment = SOUND_AREA_ICEMOON - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/icemoon/surface name = "Icemoon" diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index f9c57510132f6..4e806bf1c1030 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -8,7 +8,7 @@ /area/ruin/powered/clownplanet name = "\improper Clown Biodome" - ambientsounds = list('sound/ambience/clown.ogg') + ambientsounds = list('sound/music/lobby_music/clown.ogg') /area/ruin/unpowered/gaia name = "\improper Patch of Eden" @@ -38,7 +38,7 @@ /area/ruin/syndicate_lava_base name = "\improper Secret Base" ambience_index = AMBIENCE_DANGER - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/ruin/unpowered/cultaltar name = "\improper Cult Altar" @@ -49,7 +49,7 @@ name = "\improper The Lizard's Gas" icon_state = "lizardgas" sound_environment = SOUND_ENVIRONMENT_ROOM - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' //Syndicate lavaland base @@ -94,11 +94,11 @@ power_environ = FALSE power_equip = FALSE power_light = FALSE - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' //ash walker nest /area/ruin/unpowered/ash_walkers - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/ruin/unpowered/ratvar outdoors = TRUE - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 5eac7addb4ec2..ac687d6024a88 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -55,7 +55,7 @@ /area/ruin/space/has_grav/powered/aesthetic name = "Aesthetic" - ambientsounds = list('sound/ambience/ambivapor1.ogg') + ambientsounds = list('sound/ambience/misc/ambivapor1.ogg') //Ruin of Hotel @@ -335,7 +335,7 @@ /area/ruin/space/ancientstation/delta/ai name = "\improper Delta Station AI Core" icon_state = "os_delta_ai" - ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') + ambientsounds = list('sound/ambience/misc/ambimalf.ogg', 'sound/ambience/engineering/ambitech.ogg', 'sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambiatmos.ogg', 'sound/ambience/engineering/ambiatmos2.ogg') /area/ruin/space/ancientstation/delta/storage name = "\improper Delta Station Storage" @@ -546,14 +546,14 @@ /area/ruin/space/abandoned_tele name = "\improper Abandoned Teleporter" - ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/signal.ogg') + ambientsounds = list('sound/ambience/misc/ambimalf.ogg', 'sound/ambience/misc/signal.ogg') //OLD AI SAT /area/ruin/space/tcommsat_oldaisat // Since tcommsat was moved to /area/station/, this turf doesn't inhereit its properties anymore name = "\improper Abandoned Satellite" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen9.ogg', 'sound/ambience/ambitech.ogg',\ - 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg') + ambientsounds = list('sound/ambience/engineering/ambisin2.ogg', 'sound/ambience/misc/signal.ogg', 'sound/ambience/misc/signal.ogg', 'sound/ambience/general/ambigen9.ogg', 'sound/ambience/engineering/ambitech.ogg',\ + 'sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambitech3.ogg', 'sound/ambience/misc/ambimystery.ogg') airlock_wires = /datum/wires/airlock/engineering // CRASHED PRISON SHUTTLE @@ -592,7 +592,7 @@ // The planet of the clowns /area/ruin/space/has_grav/powered/clownplanet name = "\improper Clown Planet" - ambientsounds = list('sound/ambience/clown.ogg') + ambientsounds = list('sound/music/lobby_music/clown.ogg') //DERELICT SULACO /area/ruin/space/has_grav/derelictsulaco @@ -671,7 +671,7 @@ icon = 'icons/area/areas_ruins.dmi' icon_state = "ruins" requires_power = FALSE - ambientsounds = list('sound/ambience/ambigen12.ogg','sound/ambience/ambigen13.ogg','sound/ambience/ambinice.ogg') + ambientsounds = list('sound/ambience/general/ambigen12.ogg','sound/ambience/general/ambigen13.ogg','sound/ambience/medical/ambinice.ogg') // the outlet /area/ruin/space/has_grav/the_outlet/storefront diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 504efe0742ad1..f128805924fe8 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -123,7 +123,7 @@ if(SSshuttle.arrivals?.mode == SHUTTLE_CALL) var/atom/movable/screen/splash/Spl = new(null, boarder.client, TRUE) Spl.Fade(TRUE) - boarder.playsound_local(get_turf(boarder), 'sound/voice/ApproachingTG.ogg', 25) + boarder.playsound_local(get_turf(boarder), 'sound/announcer/ApproachingTG.ogg', 25) boarder.update_parallax_teleport() diff --git a/code/game/area/areas/station/command.dm b/code/game/area/areas/station/command.dm index 23f2c7c61c0fc..ee4325d94aef8 100644 --- a/code/game/area/areas/station/command.dm +++ b/code/game/area/areas/station/command.dm @@ -2,7 +2,7 @@ name = "Command" icon_state = "command" ambientsounds = list( - 'sound/ambience/signal.ogg', + 'sound/ambience/misc/signal.ogg', ) airlock_wires = /datum/wires/airlock/command sound_environment = SOUND_AREA_STANDARD_STATION diff --git a/code/game/area/areas/station/maintenance.dm b/code/game/area/areas/station/maintenance.dm index 53e6da606d085..5e636719e7a09 100644 --- a/code/game/area/areas/station/maintenance.dm +++ b/code/game/area/areas/station/maintenance.dm @@ -5,7 +5,7 @@ airlock_wires = /datum/wires/airlock/maint sound_environment = SOUND_AREA_TUNNEL_ENCLOSED forced_ambience = TRUE - ambient_buzz = 'sound/ambience/source_corridor2.ogg' + ambient_buzz = 'sound/ambience/maintenance/source_corridor2.ogg' ambient_buzz_vol = 20 /* diff --git a/code/game/area/areas/station/medical.dm b/code/game/area/areas/station/medical.dm index fc6c6ff3a7564..b45a1492b290f 100644 --- a/code/game/area/areas/station/medical.dm +++ b/code/game/area/areas/station/medical.dm @@ -11,7 +11,7 @@ name = "\improper Abandoned Medbay" icon_state = "abandoned_medbay" ambientsounds = list( - 'sound/ambience/signal.ogg', + 'sound/ambience/misc/signal.ogg', ) sound_environment = SOUND_AREA_SMALL_ENCLOSED @@ -124,5 +124,5 @@ mood_bonus = 3 mood_message = "I feel at ease here." ambientsounds = list( - 'sound/ambience/aurora_caelus_short.ogg', + 'sound/ambience/aurora_caelus/aurora_caelus_short.ogg', ) diff --git a/code/game/area/areas/station/security.dm b/code/game/area/areas/station/security.dm index 93629f35628c2..ca158e69df87b 100644 --- a/code/game/area/areas/station/security.dm +++ b/code/game/area/areas/station/security.dm @@ -79,8 +79,8 @@ name = "\improper Detective's Office" icon_state = "detective" ambientsounds = list( - 'sound/ambience/ambidet1.ogg', - 'sound/ambience/ambidet2.ogg', + 'sound/ambience/security/ambidet1.ogg', + 'sound/ambience/security/ambidet2.ogg', ) /area/station/security/detectives_office/private_investigators_office diff --git a/code/game/area/areas/station/telecomm.dm b/code/game/area/areas/station/telecomm.dm index 78ec16a59bf29..02101c28c1a90 100644 --- a/code/game/area/areas/station/telecomm.dm +++ b/code/game/area/areas/station/telecomm.dm @@ -5,14 +5,14 @@ /area/station/tcommsat icon_state = "tcomsatcham" ambientsounds = list( - 'sound/ambience/ambisin2.ogg', - 'sound/ambience/signal.ogg', - 'sound/ambience/signal.ogg', - 'sound/ambience/ambigen9.ogg', - 'sound/ambience/ambitech.ogg', - 'sound/ambience/ambitech2.ogg', - 'sound/ambience/ambitech3.ogg', - 'sound/ambience/ambimystery.ogg', + 'sound/ambience/engineering/ambisin2.ogg', + 'sound/ambience/misc/signal.ogg', + 'sound/ambience/misc/signal.ogg', + 'sound/ambience/general/ambigen9.ogg', + 'sound/ambience/engineering/ambitech.ogg', + 'sound/ambience/engineering/ambitech2.ogg', + 'sound/ambience/engineering/ambitech3.ogg', + 'sound/ambience/misc/ambimystery.ogg', ) airlock_wires = /datum/wires/airlock/engineering diff --git a/code/game/atom/atom_defense.dm b/code/game/atom/atom_defense.dm index 4a762e4de8b49..ce31eb81246f1 100644 --- a/code/game/atom/atom_defense.dm +++ b/code/game/atom/atom_defense.dm @@ -108,11 +108,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src, 'sound/weapons/smash.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/smash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) ///Called to get the damage that hulks will deal to the atom. /atom/proc/hulk_damage() diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 0928ff220df7b..f4ba6dd1968cb 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -33,8 +33,10 @@ var/speech_span ///Are we moving with inertia? Mostly used as an optimization var/inertia_moving = FALSE - ///Delay in deciseconds between inertia based movement - var/inertia_move_delay = 5 + ///Multiplier for inertia based movement in space + var/inertia_move_multiplier = 1 + ///Object "weight", higher weight reduces acceleration applied to the object + var/inertia_force_weight = 1 ///The last time we pushed off something ///This is a hack to get around dumb him him me scenarios var/last_pushoff @@ -107,6 +109,9 @@ /// The pitch adjustment that this movable uses when speaking. var/pitch = 0 + /// Datum that keeps all data related to zero-g drifting and handles related code/comsigs + var/datum/drift_handler/drift_handler + /// The filter to apply to the voice when processing the TTS audio message. var/voice_filter = "" @@ -201,6 +206,7 @@ /atom/movable/Destroy(force) QDEL_NULL(language_holder) QDEL_NULL(em_block) + QDEL_NULL(drift_handler) unbuckle_all_mobs(force = TRUE) @@ -771,7 +777,7 @@ if(!. && set_dir_on_move && update_dir && !face_mouse) // DOPPLER SHIFT EDIT : ORIGINAL : if(!. && set_dir_on_move && update_dir) setDir(first_step_dir) else if(!inertia_moving) - newtonian_move(direct) + newtonian_move(dir2angle(direct)) if(client_mobs_in_contents) update_parallax_contents() moving_diagonally = 0 @@ -845,8 +851,8 @@ /atom/movable/proc/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) SHOULD_CALL_PARENT(TRUE) - if (!inertia_moving && momentum_change) - newtonian_move(movement_dir) + if (!moving_diagonally && !inertia_moving && momentum_change && movement_dir) + newtonian_move(dir2angle(movement_dir)) // If we ain't moving diagonally right now, update our parallax // We don't do this all the time because diag movements should trigger one call to this, not two // Waste of cpu time, and it fucks the animate @@ -1265,15 +1271,19 @@ /// Only moves the object if it's under no gravity /// Accepts the direction to move, if the push should be instant, and an optional parameter to fine tune the start delay -/atom/movable/proc/newtonian_move(direction, instant = FALSE, start_delay = 0) - if(!isturf(loc) || Process_Spacemove(direction, continuous_move = TRUE)) +/// Drift force determines how much acceleration should be applied. Controlled cap, if set, will ensure that if the object was moving slower than the cap before, it cannot accelerate past the cap from this move. +/atom/movable/proc/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 1 NEWTONS, controlled_cap = null) + if(!isturf(loc) || Process_Spacemove(angle2dir(inertia_angle), continuous_move = TRUE)) return FALSE - if(SEND_SIGNAL(src, COMSIG_MOVABLE_NEWTONIAN_MOVE, direction, start_delay) & COMPONENT_MOVABLE_NEWTONIAN_BLOCK) - return TRUE - - AddComponent(/datum/component/drift, direction, instant, start_delay) + if (!isnull(drift_handler)) + if (drift_handler.newtonian_impulse(inertia_angle, start_delay, drift_force, controlled_cap)) + return TRUE + new /datum/drift_handler(src, inertia_angle, instant, start_delay, drift_force) + // Something went wrong and it failed to create itself, most likely we have a higher priority loop already + if (QDELETED(drift_handler)) + return FALSE return TRUE /atom/movable/set_explosion_block(explosion_block) @@ -1454,6 +1464,7 @@ return /atom/movable/proc/get_spacemove_backup() + var/atom/secondary_backup for(var/checked_range in orange(1, get_turf(src))) if(isarea(checked_range)) continue @@ -1461,12 +1472,18 @@ var/turf/turf = checked_range if(!turf.density) continue - return turf + if (get_dir(src, turf) in GLOB.cardinals) + return turf + secondary_backup = turf + continue var/atom/movable/checked_atom = checked_range if(checked_atom.density || !checked_atom.CanPass(src, get_dir(src, checked_atom))) if(checked_atom.last_pushoff == world.time) continue - return checked_atom + if (get_dir(src, checked_atom) in GLOB.cardinals) + return checked_atom + secondary_backup = checked_atom + return secondary_backup ///called when a mob resists while inside a container that is itself inside something. /atom/movable/proc/relay_container_resist_act(mob/living/user, obj/container) diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index c9e66c89c9576..07c12c28760ff 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -150,7 +150,7 @@ GLOBAL_LIST_EMPTY(announcement_systems) return if(machine_stat & BROKEN) visible_message(span_warning("[src] buzzes."), span_hear("You hear a faint buzz.")) - playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src.loc, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) return switch(action) if("ArrivalText") diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index 40670a22f44c4..72de51d034fe8 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -73,7 +73,7 @@ end_siphon() return - playsound(src, 'sound/items/poster_being_created.ogg', 100, TRUE) + playsound(src, 'sound/items/poster/poster_being_created.ogg', 100, TRUE) syphoning_credits += siphon_am synced_bank_account.adjust_money(-siphon_am) if(next_warning < world.time && prob(15)) diff --git a/code/game/machinery/barsigns.dm b/code/game/machinery/barsigns.dm index 11dc005269b7b..0f33028aa9a76 100644 --- a/code/game/machinery/barsigns.dm +++ b/code/game/machinery/barsigns.dm @@ -102,9 +102,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32) /obj/machinery/barsign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src.loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/barsign/attack_ai(mob/user) return attack_hand(user) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index e2f5d16cc572f..f3760fda0319a 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -366,7 +366,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) else visible_message(span_danger("\The [src] [change_msg]!")) - playsound(src, 'sound/items/wirecutter.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/wirecutter.ogg', 100, TRUE) update_appearance() //update Initialize() if you remove this. // now disconnect anyone using the camera diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm index 7760a646d9fae..d8c8a98caef77 100644 --- a/code/game/machinery/civilian_bounties.dm +++ b/code/game/machinery/civilian_bounties.dm @@ -76,11 +76,11 @@ return FALSE if(!inserted_scan_id) status_report = "Please insert your ID first." - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) return FALSE if(!inserted_scan_id.registered_account.civilian_bounty) status_report = "Please accept a new civilian bounty first." - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) return FALSE status_report = "Civilian Bounty: " var/obj/machinery/piratepad/civilian/pad = pad_ref?.resolve() @@ -89,10 +89,10 @@ continue if(inserted_scan_id.registered_account.civilian_bounty.applies_to(AM)) status_report += "Target Applicable." - playsound(loc, 'sound/machines/synth_yes.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_yes.ogg', 30 , TRUE) return status_report += "Not Applicable." - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) /** * This fully rewrites base behavior in order to only check for bounty objects, and no other types of objects like pirate-pads do. @@ -135,7 +135,7 @@ pad.visible_message(span_notice("[pad] activates!")) flick(pad.sending_state,pad) pad.icon_state = pad.idle_state - playsound(loc, 'sound/machines/synth_yes.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_yes.ogg', 30 , TRUE) sending = FALSE ///Here is where cargo bounties are added to the player's bank accounts, then adjusted and scaled into a civilian bounty. @@ -164,7 +164,7 @@ */ /obj/machinery/computer/piratepad_control/civilian/proc/pick_bounty(datum/bounty/choice) if(!inserted_scan_id || !inserted_scan_id.registered_account || !inserted_scan_id.registered_account.bounties || !inserted_scan_id.registered_account.bounties[choice]) - playsound(loc, 'sound/machines/synth_no.ogg', 40 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 40 , TRUE) return inserted_scan_id.registered_account.civilian_bounty = inserted_scan_id.registered_account.bounties[choice] inserted_scan_id.registered_account.bounties = null @@ -242,13 +242,13 @@ if(target) if(holder_item && inserting_item.InsertID(target)) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) else id_eject(user, target) user.visible_message(span_notice("[user] inserts \the [card_to_insert] into \the [src]."), span_notice("You insert \the [card_to_insert] into \the [src].")) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) ui_interact(user) return TRUE @@ -263,7 +263,7 @@ user.put_in_hands(target) user.visible_message(span_notice("[user] gets \the [target] from \the [src]."), \ span_notice("You get \the [target] from \the [src].")) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) inserted_scan_id = null return TRUE diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 6e1009def324f..8fdd5556e3b8b 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -75,16 +75,16 @@ if(machine_stat & BROKEN) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE) else - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src.loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/computer/atom_break(damage_flag) if(!circuit) //no circuit, no breaking return . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) set_light(0) /obj/machinery/computer/proc/imprint_gps(gps_tag) // Currently used by the upload computers and communications console diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index e0a7f36460041..0b28775a5b869 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -58,7 +58,7 @@ if("PRG_beginReconstruction") if(occupier?.health < 100) to_chat(usr, span_notice("Reconstruction in progress. This will take several minutes.")) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 25, FALSE) restoring = TRUE occupier.notify_revival("Your core files are being restored!", source = src) . = TRUE diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index 97bf368d3e25e..efb3f4480330e 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -57,7 +57,7 @@ return if(active_apc) disconnect_apc() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) apc.connect_remote_access(user) user.log_message("remotely accessed [apc] from [src].", LOG_GAME) log_activity("[auth_id] remotely accessed APC in [get_area_name(apc.area, TRUE)]") @@ -134,18 +134,18 @@ authenticated = TRUE auth_id = "[ID.registered_name] ([ID.assignment]):" log_activity("[auth_id] logged in to the terminal") - playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) else auth_id = "[ID.registered_name] ([ID.assignment]):" log_activity("[auth_id] attempted to log into the terminal") - playsound(src, 'sound/machines/terminal_error.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 50, FALSE) say("ID rejected, access denied!") return auth_id = "Unknown (Unknown):" log_activity("[auth_id] attempted to log into the terminal") if("log-out") log_activity("[auth_id] logged out of the terminal") - playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) authenticated = FALSE auth_id = "\[NULL\]" if("toggle-logs") diff --git a/code/game/machinery/computer/arcade/_arcade.dm b/code/game/machinery/computer/arcade/_arcade.dm index 69994634fc3b1..053ec907f3e63 100644 --- a/code/game/machinery/computer/arcade/_arcade.dm +++ b/code/game/machinery/computer/arcade/_arcade.dm @@ -78,7 +78,7 @@ /obj/machinery/computer/arcade/proc/prizevend(mob/living/user, prizes = 1) SEND_SIGNAL(src, COMSIG_ARCADE_PRIZEVEND, user, prizes) if(user.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && HAS_TRAIT(user, TRAIT_GAMERGOD)) - visible_message("[user] inputs an intense cheat code!",\ + visible_message(span_notice("[user] inputs an intense cheat code!"),\ span_notice("You hear a flurry of buttons being pressed.")) say("CODE ACTIVATED: EXTRA PRIZES.") prizes *= 2 diff --git a/code/game/machinery/computer/arcade/amputation.dm b/code/game/machinery/computer/arcade/amputation.dm index 84a02af387ad2..d20a5de2b2812 100644 --- a/code/game/machinery/computer/arcade/amputation.dm +++ b/code/game/machinery/computer/arcade/amputation.dm @@ -17,19 +17,19 @@ user.played_game() var/obj/item/bodypart/chopchop = user.get_active_hand() if(do_after(user, 5 SECONDS, target = src, extra_checks = CALLBACK(src, PROC_REF(do_they_still_have_that_hand), user, chopchop))) - playsound(src, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(src, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) to_chat(user, span_userdanger("The guillotine drops on your arm, and the machine sucks it in!")) chopchop.dismember() qdel(chopchop) user.mind?.adjust_experience(/datum/skill/gaming, 100) user.won_game() - playsound(src, 'sound/arcade/win.ogg', 50, TRUE) + playsound(src, 'sound/machines/arcade/win.ogg', 50, TRUE) new /obj/item/stack/arcadeticket((get_turf(src)), rand(6,10)) to_chat(user, span_notice("[src] dispenses a handful of tickets!")) return if(!do_they_still_have_that_hand(user, chopchop)) to_chat(user, span_warning("The guillotine drops, but your hand seems to be gone already!")) - playsound(src, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(src, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) else to_chat(user, span_notice("You (wisely) decide against putting your hand in the machine.")) user.lost_game() diff --git a/code/game/machinery/computer/arcade/battle.dm b/code/game/machinery/computer/arcade/battle.dm index 9733759b5caf4..169104d6c2fe3 100644 --- a/code/game/machinery/computer/arcade/battle.dm +++ b/code/game/machinery/computer/arcade/battle.dm @@ -226,7 +226,7 @@ user.mind?.adjust_experience(/datum/skill/gaming, exp_gained) user.won_game() SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("win", (obj_flags & EMAGGED ? "emagged":"normal"))) - playsound(loc, 'sound/arcade/win.ogg', 40) + playsound(loc, 'sound/machines/arcade/win.ogg', 40) if(ui_panel != UI_PANEL_WORLD_MAP) //we havent been booted to world map, we're still going. ui_panel = UI_PANEL_BETWEEN_FIGHTS @@ -250,11 +250,11 @@ ui_panel = UI_PANEL_GAMEOVER feedback_message = "GAME OVER." say("You have been crushed! GAME OVER.") - playsound(loc, 'sound/arcade/lose.ogg', 40, TRUE) + playsound(loc, 'sound/machines/arcade/lose.ogg', 40, TRUE) lose_game(user) else feedback_message = "User took [damage_taken] damage!" - playsound(loc, 'sound/arcade/hit.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/hit.ogg', 40, TRUE, extrarange = -3) SStgui.update_uis(src) ///Called when you attack the enemy. @@ -270,17 +270,17 @@ if(BATTLE_ARCADE_PLAYER_COUNTERATTACK) feedback_message = "User prepares to counterattack!" process_enemy_turn(user, defending_flags = BATTLE_ATTACK_FLAG_COUNTERATTACK) - playsound(loc, 'sound/arcade/mana.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/mana.ogg', 40, TRUE, extrarange = -3) if(BATTLE_ARCADE_PLAYER_DEFEND) feedback_message = "User pulls up their shield!" process_enemy_turn(user, defending_flags = BATTLE_ATTACK_FLAG_DEFEND) - playsound(loc, 'sound/arcade/mana.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/mana.ogg', 40, TRUE, extrarange = -3) if(!damage_dealt) return enemy_hp -= round(max(0, damage_dealt), 1) feedback_message = "[enemy_name] took [damage_dealt] damage!" - playsound(loc, 'sound/arcade/hit.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/hit.ogg', 40, TRUE, extrarange = -3) process_enemy_turn(user) ///Called when you successfully counterattack the enemy. @@ -289,7 +289,7 @@ var/damage_dealt = (rand(20, 30) * (!isnull(weapon) ? weapon.bonus_modifier : 1)) enemy_hp -= round(max(0, damage_dealt), 1) feedback_message = "User counterattacked for [damage_dealt] damage!" - playsound(loc, 'sound/arcade/boom.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/boom.ogg', 40, TRUE, extrarange = -3) if(enemy_hp <= 0) on_battle_win(user) SStgui.update_uis(src) @@ -334,7 +334,7 @@ enemy_hp = round(min(enemy_max_hp, enemy_hp + healed_amount), 1) enemy_mp -= round(max(0, 10), 1) feedback_message = "[enemy_name] healed for [healed_amount] health points!" - playsound(loc, 'sound/arcade/heal.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/heal.ogg', 40, TRUE, extrarange = -3) SStgui.update_uis(src) return if(player_current_mp >= 5) //minimum to steal @@ -342,7 +342,7 @@ player_current_mp -= round(max(0, healed_amount), 1) enemy_mp += healed_amount feedback_message = "[enemy_name] stole [healed_amount] MP from you!" - playsound(loc, 'sound/arcade/steal.ogg', 40, TRUE) + playsound(loc, 'sound/machines/arcade/steal.ogg', 40, TRUE) SStgui.update_uis(src) return //we couldn't heal ourselves or steal MP, we'll just attack instead. @@ -437,7 +437,7 @@ say("You don't have enough gold to rest!") return TRUE player_gold -= DEFAULT_ITEM_PRICE / 2 - playsound(loc, 'sound/mecha/skyfall_power_up.ogg', 40) + playsound(loc, 'sound/vehicles/mecha/skyfall_power_up.ogg', 40) player_current_hp = PLAYER_MAX_HP player_current_mp = PLAYER_MAX_MP return TRUE @@ -476,11 +476,11 @@ return TRUE if("continue_with_rest") if(prob(60)) - playsound(loc, 'sound/mecha/skyfall_power_up.ogg', 40) + playsound(loc, 'sound/vehicles/mecha/skyfall_power_up.ogg', 40) player_current_hp = PLAYER_MAX_HP player_current_mp = PLAYER_MAX_MP else - playsound(loc, 'sound/machines/defib_zap.ogg', 40) + playsound(loc, 'sound/machines/defib/defib_zap.ogg', 40) if(prob(40)) //You got robbed, and now have to go to your next fight. player_gold /= 2 diff --git a/code/game/machinery/computer/arcade/orion.dm b/code/game/machinery/computer/arcade/orion.dm index 3300370d18e49..a6685e4782ccd 100644 --- a/code/game/machinery/computer/arcade/orion.dm +++ b/code/game/machinery/computer/arcade/orion.dm @@ -421,7 +421,7 @@ var/sheriff = remove_crewmember(target) //I shot the sheriff if(target) killed_crew += 1 //if there was no suspected lings, this is just plain murder - playsound(loc,'sound/weapons/gun/pistol/shot.ogg', 100, TRUE) + playsound(loc,'sound/items/weapons/gun/pistol/shot.ogg', 100, TRUE) if(!settlers.len || !alive) say("The last crewmember [sheriff], shot themselves, GAME OVER!") if(obj_flags & EMAGGED) @@ -535,7 +535,7 @@ time_for_next_level = 3 SECONDS if(2) say("Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-") - playsound(loc, 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(loc, 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) time_for_next_level = 0.36 SECONDS if(3 to INFINITY) visible_message(span_userdanger("[src] explodes!")) diff --git a/code/game/machinery/computer/arcade/orion_event.dm b/code/game/machinery/computer/arcade/orion_event.dm index 7ab2f3b98b3b0..d39766200dc52 100644 --- a/code/game/machinery/computer/arcade/orion_event.dm +++ b/code/game/machinery/computer/arcade/orion_event.dm @@ -67,8 +67,8 @@ text = "Oh no! The engine has broken down! \ You can repair it with an engine part, or you \ can make repairs for 3 days." - emag_message = "You hear some large object lurch to a halt right behind you! When you go to look, nothing's there..." - emag_sound = 'sound/effects/creak1.ogg' + emag_message = span_warning("You hear some large object lurch to a halt right behind you! When you go to look, nothing's there...") + emag_sound = 'sound/effects/creak/creak1.ogg' weight = 2 event_responses = list() @@ -170,7 +170,7 @@ /datum/orion_event/hull_part/proc/fix_floor(obj/machinery/computer/arcade/orion_trail/game) game.say("A new floor suddenly appears around [game]. What the hell?") - playsound(game, 'sound/weapons/genhit.ogg', 100, TRUE) + playsound(game, 'sound/items/weapons/genhit.ogg', 100, TRUE) for(var/turf/open/space/fixed in orange(1, game)) fixed.place_on_top(/turf/open/floor/plating) @@ -264,7 +264,7 @@ else to_chat(usr, span_userdanger("Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there...")) gamer.take_bodypart_damage(30) - playsound(game, 'sound/weapons/genhit2.ogg', 100, TRUE) + playsound(game, 'sound/items/weapons/genhit2.ogg', 100, TRUE) /datum/orion_event/illness name = "Space Illness" @@ -321,7 +321,7 @@ gamer.Paralyze(60) game.say("A sudden gust of powerful wind slams [gamer] into the floor!") gamer.take_bodypart_damage(25) - playsound(game, 'sound/weapons/genhit.ogg', 100, TRUE) + playsound(game, 'sound/items/weapons/genhit.ogg', 100, TRUE) /datum/orion_event/changeling_infiltration name = "Changeling Infiltration" diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 2d8fd7e7dcaed..21f5ed3db7bab 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -67,7 +67,7 @@ concurrent_users += user_ref // Turn on the console if(length(concurrent_users) == 1 && is_living) - playsound(src, 'sound/machines/terminal_on.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 25, FALSE) use_energy(active_power_usage) // Register map objects cam_screen.display_to(user) @@ -171,7 +171,7 @@ if(length(concurrent_users) == 0 && is_living) active_camera = null last_camera_turf = null - playsound(src, 'sound/machines/terminal_off.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 25, FALSE) /obj/machinery/computer/security/proc/show_camera_static() cam_screen.vis_contents.Cut() diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 0e47a752b01d2..6640f5582fa20 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -118,7 +118,7 @@ eyeobj.eye_user = null user.remote_control = null current_user = null - playsound(src, 'sound/machines/terminal_off.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 25, FALSE) /obj/machinery/computer/camera_advanced/on_set_is_operational(old_value) if(!is_operational) @@ -296,7 +296,7 @@ continue T["[netcam.c_tag][netcam.can_use() ? null : " (Deactivated)"]"] = netcam - playsound(origin, 'sound/machines/terminal_prompt.ogg', 25, FALSE) + playsound(origin, 'sound/machines/terminal/terminal_prompt.ogg', 25, FALSE) var/camera = tgui_input_list(usr, "Camera to view", "Cameras", T) if(isnull(camera)) return @@ -305,12 +305,12 @@ var/obj/machinery/camera/final = T[camera] playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) if(final) - playsound(origin, 'sound/machines/terminal_prompt_confirm.ogg', 25, FALSE) + playsound(origin, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 25, FALSE) remote_eye.setLoc(get_turf(final)) owner.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash/static) owner.clear_fullscreen("flash", 3) //Shorter flash than normal since it's an ~~advanced~~ console! else - playsound(origin, 'sound/machines/terminal_prompt_deny.ogg', 25, FALSE) + playsound(origin, 'sound/machines/terminal/terminal_prompt_deny.ogg', 25, FALSE) /datum/action/innate/camera_multiz_up name = "Move up a floor" diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index d7b9ac03dae6d..76701eca0d852 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -130,7 +130,7 @@ battlecruiser_called = TRUE caller_card.use_charge(user) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(summon_battlecruiser), caller_card.team), rand(20 SECONDS, 1 MINUTES)) - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50, FALSE) return TRUE if(obj_flags & EMAGGED) @@ -139,7 +139,7 @@ if (authenticated) authorize_access = SSid_access.get_region_access_list(list(REGION_ALL_STATION)) balloon_alert(user, "routing circuits scrambled") - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50, FALSE) return TRUE /obj/machinery/computer/communications/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) @@ -193,11 +193,11 @@ var/obj/item/card/id/id_card = held_item?.GetID() if (!istype(id_card)) to_chat(user, span_warning("You need to swipe your ID!")) - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return if (!(ACCESS_CAPTAIN in id_card.access)) to_chat(user, span_warning("You are not authorized to do this!")) - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return var/new_sec_level = SSsecurity_level.text_level_to_number(params["newSecurityLevel"]) @@ -209,7 +209,7 @@ SSsecurity_level.set_level(new_sec_level) to_chat(user, span_notice("Authorization confirmed. Modifying security level.")) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) // Only notify people if an actual change happened user.log_message("changed the security level to [params["newSecurityLevel"]] with [src].", LOG_GAME) @@ -234,7 +234,7 @@ if (!COOLDOWN_FINISHED(src, important_action_cooldown)) return - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) var/message = trim(html_encode(params["message"]), MAX_MESSAGE_LEN) var/emagged = obj_flags & EMAGGED @@ -300,7 +300,7 @@ to_chat(user, span_notice("Request sent.")) user.log_message("has requested the nuclear codes from CentCom with reason \"[reason]\"", LOG_SAY) priority_announce("The codes for the on-station nuclear self-destruct have been requested by [user]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self-Destruct Codes Requested", SSstation.announcer.get_rand_report_sound()) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt.ogg', 50, FALSE) COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN) if ("restoreBackupRoutingData") if (!authenticated_as_non_silicon_captain(user)) @@ -308,7 +308,7 @@ if (!(obj_flags & EMAGGED)) return to_chat(user, span_notice("Backup routing data restored.")) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) obj_flags &= ~EMAGGED if ("sendToOtherSector") if (!authenticated_as_non_silicon_captain(user)) @@ -336,7 +336,7 @@ log_admin_private("[key_name(user)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[message]\"") GLOB.communications_controller.soft_filtering = TRUE - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) var/destination = params["destination"] @@ -389,7 +389,7 @@ authenticated = FALSE authorize_access = null authorize_name = null - playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) return if (obj_flags & EMAGGED) @@ -397,7 +397,7 @@ authorize_access = SSid_access.get_region_access_list(list(REGION_ALL_STATION)) authorize_name = "Unknown" to_chat(user, span_warning("[src] lets out a quiet alarm as its login is overridden.")) - playsound(src, 'sound/machines/terminal_alert.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 25, FALSE) else if(isliving(user)) var/mob/living/L = user var/obj/item/card/id/id_card = L.get_idcard(hand_first = TRUE) @@ -407,7 +407,7 @@ authorize_name = "[id_card.registered_name] - [id_card.assignment]" state = STATE_MAIN - playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) imprint_gps(gps_tag = "Encrypted Communications Channel") if ("toggleEmergencyAccess") diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index c50a073cab59b..910489999e04c 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -1347,7 +1347,7 @@ // However, if this is the case, we can't make a complete injector and // this catches that edge case if(!buffer_slot["name"] || !buffer_slot["UF"] || !buffer_slot["blood_type"]) - to_chat(usr,"Genetic data corrupted, unable to create injector.") + to_chat(usr,span_warning("Genetic data corrupted, unable to create injector.")) return I = new /obj/item/dnainjector/timed(loc) @@ -1731,7 +1731,7 @@ // However, if this is the case, we can't make a complete injector and // this catches that edge case if(!buffer_slot["UF"]) - to_chat(usr,"Genetic data corrupted, unable to apply genetic data.") + to_chat(usr,span_warning("Genetic data corrupted, unable to apply genetic data.")) return FALSE COOLDOWN_START(src, enzyme_copy_timer, ENZYME_COPY_BASE_COOLDOWN) scanner_occupant.dna.unique_features = buffer_slot["UF"] diff --git a/code/game/machinery/computer/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm index 050f3447a8ce4..7590e690d07a6 100644 --- a/code/game/machinery/computer/mechlaunchpad.dm +++ b/code/game/machinery/computer/mechlaunchpad.dm @@ -66,7 +66,7 @@ /// A proc that makes random beeping sounds for a set amount of time, the sounds are separated by a random amount of time. /obj/machinery/computer/mechpad/proc/random_beeps(mob/user, time = 0, mintime = 0, maxtime = 1) - var/static/list/beep_sounds = list('sound/machines/terminal_prompt_confirm.ogg', 'sound/machines/terminal_prompt_deny.ogg', 'sound/machines/terminal_error.ogg', 'sound/machines/terminal_select.ogg', 'sound/machines/terminal_success.ogg') + var/static/list/beep_sounds = list('sound/machines/terminal/terminal_prompt_confirm.ogg', 'sound/machines/terminal/terminal_prompt_deny.ogg', 'sound/machines/terminal/terminal_error.ogg', 'sound/machines/terminal/terminal_select.ogg', 'sound/machines/terminal/terminal_success.ogg') var/time_to_spend = 0 var/orig_time = time while(time > 0) @@ -132,7 +132,7 @@ if(!can_launch(user, where)) return flick("mechpad-launch", connected_mechpad) - playsound(connected_mechpad, 'sound/machines/triple_beep.ogg', 50, TRUE) + playsound(connected_mechpad, 'sound/machines/beep/triple_beep.ogg', 50, TRUE) addtimer(CALLBACK(src, PROC_REF(start_launch), user, where), 1 SECONDS) /obj/machinery/computer/mechpad/proc/start_launch(mob/user, obj/machinery/mechpad/where) diff --git a/code/game/machinery/computer/prisoner/_prisoner.dm b/code/game/machinery/computer/prisoner/_prisoner.dm index 9777c1b209cdf..828d981bec644 100644 --- a/code/game/machinery/computer/prisoner/_prisoner.dm +++ b/code/game/machinery/computer/prisoner/_prisoner.dm @@ -35,7 +35,7 @@ return contained_id = new_id balloon_alert_to_viewers("id inserted") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) /obj/machinery/computer/prisoner/proc/id_eject(mob/user) if(isnull(contained_id)) @@ -48,7 +48,7 @@ contained_id.forceMove(drop_location()) balloon_alert_to_viewers("id ejected") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) /obj/machinery/computer/prisoner/attackby(obj/item/weapon, mob/user, params) if(istype(weapon, /obj/item/card/id/advanced/prisoner)) diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index f03c08a8d821b..66440bb97c3fd 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -72,7 +72,7 @@ if(.) return if(isliving(usr)) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) if(!allowed(usr)) to_chat(usr, span_warning("Access denied.")) return @@ -144,7 +144,7 @@ user.log_message("teleported [key_name(prisoner)] to the Labor Camp [COORD(beacon)] for [id_goal_not_set ? "default goal of ":""][contained_id.goal] points.", LOG_GAME) prisoner.log_message("teleported to Labor Camp [COORD(beacon)] by [key_name(user)] for [id_goal_not_set ? "default goal of ":""][contained_id.goal] points.", LOG_GAME, log_globally = FALSE) teleporter.handle_prisoner(contained_id, temporary_record) - playsound(src, 'sound/weapons/emitter.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/items/weapons/emitter.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) prisoner.forceMove(get_turf(beacon)) prisoner.Paralyze(40) // small travel dizziness to_chat(prisoner, span_warning("The teleportation makes you a little dizzy.")) diff --git a/code/game/machinery/computer/prisoner/management.dm b/code/game/machinery/computer/prisoner/management.dm index 32c2ddba984df..a971dce2d9d02 100644 --- a/code/game/machinery/computer/prisoner/management.dm +++ b/code/game/machinery/computer/prisoner/management.dm @@ -52,20 +52,20 @@ GLOBAL_LIST_EMPTY_TYPED(tracked_implants, /obj/item/implant) CRASH("[usr] potentially spoofed ui action [action] on prisoner console without the console being logged in.") if(isliving(usr)) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) switch(action) if("login") if(allowed(usr)) authenticated = TRUE - playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) else - playsound(src, 'sound/machines/terminal_error.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 50, FALSE) return TRUE if("logout") authenticated = FALSE - playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) return TRUE if("insert_id") diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm index 7fd47887bc73d..a30c11c3abefa 100644 --- a/code/game/machinery/computer/records/records.dm +++ b/code/game/machinery/computer/records/records.dm @@ -57,7 +57,7 @@ expunge_record_info(target) balloon_alert(user, "record expunged") - playsound(src, 'sound/machines/terminal_eject.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 70, TRUE) investigate_log("[key_name(user)] expunged the record of [target.name].", INVESTIGATE_RECORDS) return TRUE @@ -69,7 +69,7 @@ if("logout") balloon_alert(user, "logged out") - playsound(src, 'sound/machines/terminal_off.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 70, TRUE) authenticated = FALSE return TRUE @@ -82,14 +82,14 @@ ui.close() balloon_alert(user, "purging records...") - playsound(src, 'sound/machines/terminal_alert.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 70, TRUE) if(do_after(user, 5 SECONDS)) for(var/datum/record/crew/entry in GLOB.manifest.general) expunge_record_info(entry) balloon_alert(user, "records purged") - playsound(src, 'sound/machines/terminal_off.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 70, TRUE) investigate_log("[key_name(user)] purged all records.", INVESTIGATE_RECORDS) else balloon_alert(user, "interrupted!") @@ -139,12 +139,12 @@ if(!authenticated && !allowed(user)) balloon_alert(user, "access denied") - playsound(src, 'sound/machines/terminal_error.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 70, TRUE) return FALSE if(mugshot.picture.psize_x > world.icon_size || mugshot.picture.psize_y > world.icon_size) balloon_alert(user, "photo too large!") - playsound(src, 'sound/machines/terminal_error.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 70, TRUE) return FALSE var/trimmed = copytext(mugshot.name, 9, MAX_NAME_LEN) // Remove "photo - " @@ -155,7 +155,7 @@ new /datum/record/crew(name = name, character_appearance = mugshot.picture.picture_image) balloon_alert(user, "record created") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 70, TRUE) qdel(mugshot) @@ -168,10 +168,10 @@ if(!allowed(user)) balloon_alert(user, "access denied") - playsound(src, 'sound/machines/terminal_error.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 70, TRUE) return FALSE balloon_alert(user, "logged in") - playsound(src, 'sound/machines/terminal_on.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 70, TRUE) return TRUE diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm index 8e0ee17eb158a..b2bc95e3fd060 100644 --- a/code/game/machinery/computer/records/security.dm +++ b/code/game/machinery/computer/records/security.dm @@ -209,13 +209,13 @@ var/input_name = strip_html_full(params["name"], MAX_CRIME_NAME_LEN) if(!input_name) to_chat(usr, span_warning("You must enter a name for the crime.")) - playsound(src, 'sound/machines/terminal_error.ogg', 75, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 75, TRUE) return FALSE var/max = CONFIG_GET(number/maxfine) if(params["fine"] > max) to_chat(usr, span_warning("The maximum fine is [max] credits.")) - playsound(src, 'sound/machines/terminal_error.ogg', 75, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 75, TRUE) return FALSE var/input_details @@ -326,7 +326,7 @@ /// Finishes printing, resets the printer. /obj/machinery/computer/records/security/proc/print_finish(obj/item/printable) printing = FALSE - playsound(src, 'sound/machines/terminal_eject.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 100, TRUE) printable.forceMove(loc) return TRUE @@ -335,7 +335,7 @@ /obj/machinery/computer/records/security/proc/print_record(mob/user, datum/record/crew/target, list/params) if(printing) balloon_alert(user, "printer busy") - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE printing = TRUE diff --git a/code/game/machinery/computer/warrant.dm b/code/game/machinery/computer/warrant.dm index 3b73a8b75bfea..71455fc5a2e40 100644 --- a/code/game/machinery/computer/warrant.dm +++ b/code/game/machinery/computer/warrant.dm @@ -88,26 +88,26 @@ if(!isliving(user) || issilicon(user)) to_chat(user, span_warning("ACCESS DENIED")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/mob/living/player = user var/obj/item/card/id/auth = player.get_idcard(TRUE) if(!auth) to_chat(user, span_warning("ACCESS DENIED: No ID card detected.")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/datum/bank_account/account = auth.registered_account if(!account?.account_holder || account.account_holder == "Unassigned") to_chat(user, span_warning("ACCESS DENIED: No account linked to ID.")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/amount = params["amount"] if(!amount || !isnum(amount) || amount > warrant.fine || !account.adjust_money(-amount, "Paid fine for [target.name]")) to_chat(user, span_warning("ACCESS DENIED: Invalid amount.")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE account.bank_card_talk("You have paid [amount]cr towards [target.name]'s fine of [warrant.fine]cr.") @@ -139,7 +139,7 @@ /// Finishes printing, resets the printer. /obj/machinery/computer/warrant/proc/print_finish(obj/item/paper/bounty) printing = FALSE - playsound(src, 'sound/machines/terminal_eject.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 100, TRUE) bounty.forceMove(loc) return TRUE @@ -148,7 +148,7 @@ /obj/machinery/computer/warrant/proc/print_bounty(mob/user, list/params) if(printing) balloon_alert(user, "printer busy") - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/datum/record/crew/target = locate(params["crew_ref"]) in GLOB.manifest.general diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index d2e3c895ebd1d..43946538ac51b 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -50,11 +50,11 @@ return UI_CLOSE if(!allowed(user)) to_chat(user,span_warning("Error: Access Denied.")) - user.playsound_local(src, 'sound/misc/compiler-failure.ogg', 25, TRUE) + user.playsound_local(src, 'sound/machines/compiler/compiler-failure.ogg', 25, TRUE) return UI_CLOSE if(!length(music_player.songs)) to_chat(user,span_warning("Error: No music tracks have been authorized for your station. Petition Central Command to resolve this issue.")) - user.playsound_local(src, 'sound/misc/compiler-failure.ogg', 25, TRUE) + user.playsound_local(src, 'sound/machines/compiler/compiler-failure.ogg', 25, TRUE) return UI_CLOSE return ..() @@ -79,7 +79,7 @@ to_chat(usr, span_warning("Error: The device is still resetting from the last activation, \ it will be ready again in [DisplayTimeText(COOLDOWN_TIMELEFT(src, jukebox_song_cd))].")) if(COOLDOWN_FINISHED(src, jukebox_error_cd)) - playsound(src, 'sound/misc/compiler-failure.ogg', 33, TRUE) + playsound(src, 'sound/machines/compiler/compiler-failure.ogg', 33, TRUE) COOLDOWN_START(src, jukebox_error_cd, 15 SECONDS) return TRUE @@ -134,7 +134,7 @@ if(!QDELING(src)) COOLDOWN_START(src, jukebox_song_cd, 10 SECONDS) - playsound(src,'sound/machines/terminal_off.ogg',50,TRUE) + playsound(src,'sound/machines/terminal/terminal_off.ogg',50,TRUE) update_use_power(IDLE_POWER_USE) update_appearance(UPDATE_ICON_STATE) return TRUE diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index 74ca492657b6e..544e58bcabeea 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -75,7 +75,7 @@ LAZYREMOVE(dish_drive_contents, dish) user.put_in_hands(dish) balloon_alert(user, "[dish] taken") - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) /obj/machinery/dish_drive/wrench_act(mob/living/user, obj/item/tool) @@ -89,7 +89,7 @@ return LAZYADD(dish_drive_contents, dish) balloon_alert(user, "[dish] placed in drive") - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) return else if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), dish)) @@ -129,7 +129,7 @@ LAZYADD(dish_drive_contents, dish) visible_message(span_notice("[src] beams up [dish]!")) dish.forceMove(src) - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) else step_towards(dish, src) @@ -153,7 +153,7 @@ if(!bin) if(manual) visible_message(span_warning("[src] buzzes. There are no disposal bins in range!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return var/disposed = 0 for(var/obj/item/dish in dish_drive_contents) @@ -166,8 +166,8 @@ disposed++ if (disposed) visible_message(span_notice("[src] [pick("whooshes", "bwooms", "fwooms", "pshooms")] and beams [disposed] stored item\s into the nearby [bin.name].")) - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) - playsound(bin, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) + playsound(bin, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) Beam(bin, icon_state = "rped_upgrade", time = 5) bin.update_appearance() flick("synthesizer_beam", src) diff --git a/code/game/machinery/dna_infuser/dna_infuser.dm b/code/game/machinery/dna_infuser/dna_infuser.dm index cc2641d32971e..961092c635b33 100644 --- a/code/game/machinery/dna_infuser/dna_infuser.dm +++ b/code/game/machinery/dna_infuser/dna_infuser.dm @@ -67,7 +67,7 @@ return if(occupant && infusing_from) if(!occupant.can_infuse(user)) - playsound(src, 'sound/machines/scanbuzz.ogg', 35, vary = TRUE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 35, vary = TRUE) return balloon_alert(user, "starting DNA infusion...") start_infuse() diff --git a/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm b/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm index 45d5f3ddfd997..4f8d38aa99971 100644 --- a/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm @@ -130,7 +130,7 @@ . = ..() if(prob(5)) owner.emote("squeaks") - playsound(owner, 'sound/creatures/mousesqueek.ogg', 100) + playsound(owner, 'sound/mobs/non-humanoids/mouse/mousesqueek.ogg', 100) #undef RAT_ORGAN_COLOR #undef RAT_SCLERA_COLOR diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 68251b2c1eec3..8033c697bfa3d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -125,12 +125,12 @@ var/normalspeed = TRUE var/cutAiWire = FALSE var/autoname = FALSE - var/doorOpen = 'sound/machines/airlock.ogg' - var/doorClose = 'sound/machines/airlockclose.ogg' - var/doorDeni = 'sound/machines/deniedbeep.ogg' // i'm thinkin' Deni's - var/boltUp = 'sound/machines/boltsup.ogg' - var/boltDown = 'sound/machines/boltsdown.ogg' - var/noPower = 'sound/machines/doorclick.ogg' + var/doorOpen = 'sound/machines/airlock/airlock.ogg' + var/doorClose = 'sound/machines/airlock/airlockclose.ogg' + var/doorDeni = 'sound/machines/beep/deniedbeep.ogg' // i'm thinkin' Deni's + var/boltUp = 'sound/machines/airlock/boltsup.ogg' + var/boltDown = 'sound/machines/airlock/boltsdown.ogg' + var/noPower = 'sound/machines/airlock/doorclick.ogg' /// What airlock assembly mineral plating was applied to var/previous_airlock = /obj/structure/door_assembly /// Material of inner filling; if its an airlock with glass, this should be set to "glass" @@ -1051,7 +1051,7 @@ to_chat(user, span_warning("[src] has already been sealed!")) return user.visible_message(span_notice("[user] begins sealing [src]."), span_notice("You begin sealing [src].")) - playsound(src, 'sound/items/jaws_pry.ogg', 30, TRUE) + playsound(src, 'sound/items/tools/jaws_pry.ogg', 30, TRUE) if(!do_after(user, airlockseal.seal_time, target = src)) return if(!density) @@ -1063,7 +1063,7 @@ if(!user.transferItemToLoc(airlockseal, src)) to_chat(user, span_warning("For some reason, you can't attach [airlockseal]!")) return - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) user.visible_message(span_notice("[user] finishes sealing [src]."), span_notice("You finish sealing [src].")) seal = airlockseal modify_max_integrity(max_integrity * AIRLOCK_SEAL_MULTIPLIER) @@ -1137,12 +1137,12 @@ to_chat(user, span_warning("You don't have the dexterity to remove the seal!")) return TRUE user.visible_message(span_notice("[user] begins removing the seal from [src]."), span_notice("You begin removing [src]'s pneumatic seal.")) - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) if(!do_after(user, airlockseal.unseal_time, target = src)) return TRUE if(!seal) return TRUE - playsound(src, 'sound/items/jaws_pry.ogg', 30, TRUE) + playsound(src, 'sound/items/tools/jaws_pry.ogg', 30, TRUE) airlockseal.forceMove(get_turf(user)) user.visible_message(span_notice("[user] finishes removing the seal from [src]."), span_notice("You finish removing [src]'s pneumatic seal.")) seal = null @@ -1202,7 +1202,7 @@ if(!prying_so_hard) var/time_to_open = 50 - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) //is it aliens or just the CE being a dick? + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) //is it aliens or just the CE being a dick? prying_so_hard = TRUE if(I.use_tool(src, user, time_to_open, volume = 100)) if(check_electrified && shock(user, 100)) @@ -1303,7 +1303,7 @@ return TRUE if(BYPASS_DOOR_CHECKS) // No power usage, special sound, get it open. - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) return TRUE else @@ -1381,7 +1381,7 @@ return TRUE if(BYPASS_DOOR_CHECKS) - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) return TRUE else @@ -1474,7 +1474,7 @@ var/time_to_open = 5 //half a second if(hasPower()) time_to_open = 5 SECONDS //Powered airlocks take longer to open, and are loud. - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) if(do_after(user, time_to_open, src)) @@ -2374,7 +2374,7 @@ new /obj/effect/temp_visual/cult/sac(loc) var/atom/throwtarget throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) - SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50)) + SEND_SOUND(L, sound(pick('sound/effects/hallucinations/turn_around1.ogg','sound/effects/hallucinations/turn_around2.ogg'),0,1,50)) flash_color(L, flash_color=COLOR_CULT_RED, flash_time=20) L.Paralyze(40) L.throw_at(throwtarget, 5, 1) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index cd7d8201a9ec8..5449f7f7cee4c 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -210,7 +210,7 @@ if(!red_alert_access) return audible_message(span_notice("[src] whirr[p_s()] as [p_they()] automatically lift[p_s()] access requirements!")) - playsound(src, 'sound/machines/boltsup.ogg', 50, TRUE) + playsound(src, 'sound/machines/airlock/boltsup.ogg', 50, TRUE) /obj/machinery/door/proc/try_safety_unlock(mob/user) return FALSE @@ -399,13 +399,13 @@ switch(damage_type) if(BRUTE) if(glass) - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) else if(damage_amount) - playsound(loc, 'sound/weapons/smash.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/smash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/door/emp_act(severity) . = ..() diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 2e5d909f3e952..858f2dffefff2 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -59,8 +59,8 @@ ///Keeps track of if we're playing the alarm sound loop (as only one firelock per group should be). Used during power changes. var/is_playing_alarm = FALSE - var/knock_sound = 'sound/effects/glassknock.ogg' - var/bash_sound = 'sound/effects/glassbash.ogg' + var/knock_sound = 'sound/effects/glass/glassknock.ogg' + var/bash_sound = 'sound/effects/glass/glassbash.ogg' /datum/armor/door_firedoor diff --git a/code/game/machinery/doors/passworddoor.dm b/code/game/machinery/doors/passworddoor.dm index bf27dfcffc23b..8d35f44b0d80c 100644 --- a/code/game/machinery/doors/passworddoor.dm +++ b/code/game/machinery/doors/passworddoor.dm @@ -20,7 +20,7 @@ /// Sound used upon closing. var/door_close = 'sound/machines/blastdoor.ogg' /// Sound used upon denying. - var/door_deny = 'sound/machines/buzz-sigh.ogg' + var/door_deny = 'sound/machines/buzz/buzz-sigh.ogg' /obj/machinery/door/password/voice voice_activated = TRUE diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index ab18a63361c97..cb33ed6c14f5a 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -254,7 +254,7 @@ user.visible_message(span_warning("[user] begins prying open [src]."),\ span_noticealien("You begin digging your claws into [src] with all your might!"),\ span_warning("You hear groaning metal...")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) var/time_to_open = 5 SECONDS if(hasPower()) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index a287aefeaa825..d093cc0d3556d 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -326,9 +326,9 @@ /obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(src, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/door/window/on_deconstruction(disassembled) if(disassembled) diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index af39257973cce..03a5c4c6cf93b 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -36,7 +36,7 @@ // ceasing production. Set to 0 for infinite. var/maximum_idle = 3 - var/work_sound = 'sound/items/rped.ogg' + var/work_sound = 'sound/items/tools/rped.ogg' var/create_sound = 'sound/items/deconstruct.ogg' var/recharge_sound = 'sound/machines/ping.ogg' diff --git a/code/game/machinery/fat_sucker.dm b/code/game/machinery/fat_sucker.dm index c93a0e4f7ea56..0652ab1605e5d 100644 --- a/code/game/machinery/fat_sucker.dm +++ b/code/game/machinery/fat_sucker.dm @@ -166,7 +166,7 @@ set_light(2, 1, "#ff0000") else say("Subject not fat enough.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) overlays += "[icon_state]_red" //throw a red light icon over it, to show that it won't work /obj/machinery/fat_sucker/proc/stop() diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 94612b8c9db35..5853389ac80ff 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -108,7 +108,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/flasher, 26) power_change() return - playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 100, TRUE) flick("[base_icon_state]_flash", src) flash_lighting_fx() diff --git a/code/game/machinery/flatpacker.dm b/code/game/machinery/flatpacker.dm index 01224ad8b00fa..56fcc8a8ae74c 100644 --- a/code/game/machinery/flatpacker.dm +++ b/code/game/machinery/flatpacker.dm @@ -268,7 +268,7 @@ if(!materials.has_materials(needed_mats, creation_efficiency)) say("Not enough materials to begin production.") return - playsound(src, 'sound/items/rped.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/rped.ogg', 50, TRUE) busy = TRUE flick_overlay_view(mutable_appearance('icons/obj/machines/lathes.dmi', "flatpacker_bar"), flatpack_time) @@ -401,7 +401,7 @@ new /obj/effect/temp_visual/mook_dust(loc) var/obj/machinery/new_machine = new board.build_path(loc) loc.visible_message(span_warning("[src] deploys!")) - playsound(src, 'sound/machines/terminal_eject.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 70, TRUE) new_machine.on_construction(user) qdel(src) return ITEM_INTERACT_SUCCESS diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 5fa999a690e9a..4949f53adfbfe 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -76,15 +76,15 @@ for(var/obj/item/abiotic_item in carbon_occupant.held_items + carbon_occupant.get_equipped_items()) if(!(HAS_TRAIT(abiotic_item, TRAIT_NODROP))) say("Subject may not have abiotic items on.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return if(!(carbon_occupant.mob_biotypes & MOB_ORGANIC)) say("Subject is not organic.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return if(!allow_living && !(carbon_occupant.stat == DEAD || HAS_TRAIT(carbon_occupant, TRAIT_FAKEDEATH))) //I mean, the machines scanners arent advanced enough to tell you're alive say("Subject is still alive.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return return TRUE @@ -141,7 +141,7 @@ open_machine() if (!success) say("Protocol interrupted. Aborting harvest.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) else say("Subject has been successfully harvested.") playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, FALSE) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 9744a65f53d03..d94a270cb95ce 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -522,7 +522,7 @@ Possible to do for anyone motivated enough: if(outgoing_call) holocall.Disconnect(src)//can't answer calls while calling else - playsound(src, 'sound/machines/twobeep.ogg', 100) //bring, bring! + playsound(src, 'sound/machines/beep/twobeep.ogg', 100) //bring, bring! are_ringing = TRUE if(ringing != are_ringing) diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm index b5ec2c58b3870..a2895f6ae9fcd 100644 --- a/code/game/machinery/hypnochair.dm +++ b/code/game/machinery/hypnochair.dm @@ -91,11 +91,11 @@ /obj/machinery/hypnochair/proc/interrogate() if(!trigger_phrase) - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) return var/mob/living/carbon/C = occupant if(!istype(C)) - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) return victim = C if(C.get_eye_protection() <= 0) @@ -114,13 +114,13 @@ interrupt_interrogation() return if(SPT_PROB(5, seconds_per_tick) && !(C.get_eye_protection() > 0)) - to_chat(C, "[pick(\ + to_chat(C, span_hypnophrase(pick(\ "...blue... red... green... blue, red, green, blueredgreen[span_small("blueredgreen")]",\ "...pretty colors...",\ "...you keep hearing words, but you can't seem to understand them...",\ "...so peaceful...",\ "...an annoying buzz in your ears..."\ - )]") + ))) use_energy(active_power_usage * seconds_per_tick) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index e1b10dae6e43e..437c2dbd168a6 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -256,7 +256,7 @@ // If the human is losing too much blood, beep. if(attached_mob.blood_volume < BLOOD_VOLUME_SAFE && prob(5)) audible_message(span_hear("[src] beeps loudly.")) - playsound(loc, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(loc, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) var/atom/movable/target = use_internal_storage ? src : reagent_container attached_mob.transfer_blood_to(target, amount) update_appearance(UPDATE_ICON) diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 67ad91681506d..c2fb218d50a33 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -181,11 +181,11 @@ indicator_icon = "launchpad_pull" update_indicator() - playsound(get_turf(src), 'sound/weapons/flash.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/flash.ogg', 25, TRUE) teleporting = TRUE if(!hidden) - playsound(target, 'sound/weapons/flash.ogg', 25, TRUE) + playsound(target, 'sound/items/weapons/flash.ogg', 25, TRUE) var/datum/effect_system/spark_spread/quantum/spark_system = new /datum/effect_system/spark_spread/quantum() spark_system.set_up(5, TRUE, target) spark_system.start() @@ -203,7 +203,7 @@ if(!hidden) // Takes twice as long to make sure it properly fades out. Beam(target, icon_state = teleport_beam, time = BEAM_FADE_TIME*2, beam_type = /obj/effect/ebeam/launchpad) - playsound(target, 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(target, 'sound/items/weapons/emitter2.ogg', 25, TRUE) // use a lot of power use_energy(active_power_usage) @@ -216,7 +216,7 @@ source = dest dest = target - playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/emitter2.ogg', 25, TRUE) var/first = TRUE for(var/atom/movable/ROI in source) if(ROI == src) diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index cd36dcce09ad0..834d7115b0418 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -178,7 +178,7 @@ consumed_reagents_list[reagent_id] *= production_coefficient if(!reagents.has_reagent(reagent_id, consumed_reagents_list[reagent_id])) audible_message(span_notice("[src] buzzes.")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return power = max(active_power_usage, (power + consumed_reagents_list[reagent_id])) @@ -207,7 +207,7 @@ for(var/reagent_id in modified_consumed_reagents_list) if(!reagents.has_reagent(reagent_id, modified_consumed_reagents_list[reagent_id])) audible_message(span_notice("The [src] buzzes.")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) break reagents.remove_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) diff --git a/code/game/machinery/newscaster/newscaster_machine.dm b/code/game/machinery/newscaster/newscaster_machine.dm index aced87bfe588a..18c3d9434d869 100644 --- a/code/game/machinery/newscaster/newscaster_machine.dm +++ b/code/game/machinery/newscaster/newscaster_machine.dm @@ -529,9 +529,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(machine_stat & BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, TRUE) else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/newscaster/on_deconstruction(disassembled) @@ -542,7 +542,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) /obj/machinery/newscaster/atom_break(damage_flag) . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) /obj/machinery/newscaster/attack_paw(mob/living/user, list/modifiers) @@ -623,7 +623,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(channel) if(update_alert) say("Breaking news from [channel]!") - playsound(loc, 'sound/machines/twobeep_high.ogg', 75, TRUE) + playsound(loc, 'sound/machines/beep/twobeep_high.ogg', 75, TRUE) alert = TRUE update_appearance() addtimer(CALLBACK(src, PROC_REF(remove_alert)), ALERT_DELAY, TIMER_UNIQUE|TIMER_OVERRIDE) @@ -745,10 +745,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) */ /obj/machinery/newscaster/proc/delete_bounty_request() if(!active_request || !current_user) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE if(active_request?.owner != current_user.account_holder) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE say("Deleted current request.") GLOB.request_list.Remove(active_request) @@ -759,7 +759,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) */ /obj/machinery/newscaster/proc/create_bounty() if(!current_user || !bounty_text) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE for(var/datum/station_request/iterated_station_request as anything in GLOB.request_list) if(iterated_station_request.req_number == current_user.account_id) @@ -779,11 +779,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) say("No ID detected.") return TRUE if(current_user.account_holder == active_request.owner) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE for(var/new_apply in active_request?.applicants) if(current_user.account_holder == active_request?.applicants[new_apply]) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE active_request.applicants += list(current_user) @@ -794,7 +794,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(!current_user) return TRUE if(!current_user.has_money(active_request.value) || (current_user.account_holder != active_request.owner)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return TRUE payment_target.transfer_money(current_user, active_request.value, "Bounty Request") say("Paid out [active_request.value] credits.") diff --git a/code/game/machinery/photobooth.dm b/code/game/machinery/photobooth.dm index 321ae7efd6e76..d1244bcc85d47 100644 --- a/code/game/machinery/photobooth.dm +++ b/code/game/machinery/photobooth.dm @@ -130,7 +130,7 @@ if(obj_flags & EMAGGED) var/mob/living/carbon/carbon_occupant = occupant for(var/i in 1 to 5) //play a ton of sounds to mimic it blinding you - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE) + playsound(src, pick('sound/items/polaroid/polaroid1.ogg', 'sound/items/polaroid/polaroid2.ogg'), 75, TRUE) if(carbon_occupant) carbon_occupant.flash_act(5) sleep(0.2 SECONDS) @@ -141,12 +141,12 @@ if(!do_after(occupant, 2 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) //gives them time to put their hand items away. taking_pictures = FALSE return - playsound(src, 'sound/items/polaroid1.ogg', 75, TRUE) + playsound(src, 'sound/items/polaroid/polaroid1.ogg', 75, TRUE) flash() if(!do_after(occupant, 3 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) taking_pictures = FALSE return - playsound(src, 'sound/items/polaroid2.ogg', 75, TRUE) + playsound(src, 'sound/items/polaroid/polaroid2.ogg', 75, TRUE) flash() if(!do_after(occupant, 2 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) taking_pictures = FALSE diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 31fc68b31421f..e64e01bbcf246 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -747,8 +747,8 @@ DEFINE_BITFIELD(turret_flags, list( mode = TURRET_LETHAL stun_projectile = /obj/projectile/bullet lethal_projectile = /obj/projectile/bullet - lethal_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' - stun_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg' icon_state = "syndie_off" base_icon_state = "syndie" faction = list(ROLE_SYNDICATE) @@ -769,9 +769,9 @@ DEFINE_BITFIELD(turret_flags, list( icon_state = "standard_lethal" base_icon_state = "standard" stun_projectile = /obj/projectile/energy/electrode - stun_projectile_sound = 'sound/weapons/taser.ogg' + stun_projectile_sound = 'sound/items/weapons/taser.ogg' lethal_projectile = /obj/projectile/beam/laser - lethal_projectile_sound = 'sound/weapons/laser.ogg' + lethal_projectile_sound = 'sound/items/weapons/laser.ogg' desc = "An energy blaster auto-turret." armor_type = /datum/armor/syndicate_turret @@ -788,14 +788,14 @@ DEFINE_BITFIELD(turret_flags, list( icon_state = "standard_lethal" base_icon_state = "standard" stun_projectile = /obj/projectile/energy/electrode - stun_projectile_sound = 'sound/weapons/taser.ogg' + stun_projectile_sound = 'sound/items/weapons/taser.ogg' lethal_projectile = /obj/projectile/beam/laser/heavylaser - lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + lethal_projectile_sound = 'sound/items/weapons/lasercannonfire.ogg' desc = "An energy blaster auto-turret." /obj/machinery/porta_turret/syndicate/energy/raven stun_projectile = /obj/projectile/beam/laser - stun_projectile_sound = 'sound/weapons/laser.ogg' + stun_projectile_sound = 'sound/items/weapons/laser.ogg' faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) /obj/machinery/porta_turret/syndicate/pod @@ -806,9 +806,9 @@ DEFINE_BITFIELD(turret_flags, list( /obj/machinery/porta_turret/syndicate/irs lethal_projectile = /obj/projectile/bullet/c10mm/ap - lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' stun_projectile = /obj/projectile/bullet/c10mm/ap - stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' armor_type = /datum/armor/syndicate_turret faction = list(FACTION_PIRATE) @@ -817,8 +817,8 @@ DEFINE_BITFIELD(turret_flags, list( shot_delay = 3 stun_projectile = /obj/projectile/bullet/p50/penetrator/shuttle lethal_projectile = /obj/projectile/bullet/p50/penetrator/shuttle - lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' - stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' armor_type = /datum/armor/syndicate_shuttle /datum/armor/syndicate_shuttle @@ -851,7 +851,7 @@ DEFINE_BITFIELD(turret_flags, list( installation = null uses_stored = FALSE lethal_projectile = /obj/projectile/plasma/turret - lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + lethal_projectile_sound = 'sound/items/weapons/plasma_cutter.ogg' mode = TURRET_LETHAL //It would be useless in stun mode anyway faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) //Minebots, medibots, etc that should not be shot. @@ -878,8 +878,8 @@ DEFINE_BITFIELD(turret_flags, list( scan_range = 9 stun_projectile = /obj/projectile/beam/laser lethal_projectile = /obj/projectile/beam/laser - lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' - stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + lethal_projectile_sound = 'sound/items/weapons/plasma_cutter.ogg' + stun_projectile_sound = 'sound/items/weapons/plasma_cutter.ogg' icon_state = "syndie_off" base_icon_state = "syndie" faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) @@ -904,6 +904,13 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile = /obj/projectile/beam/weak/penetrator faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) +/obj/machinery/porta_turret/centcom_shuttle/weak/mining + name = "Old Mining Turret" + lethal_projectile = /obj/projectile/kinetic/miner + lethal_projectile_sound = 'sound/items/weapons/kinetic_accel.ogg' + stun_projectile = /obj/projectile/kinetic/miner + stun_projectile_sound = 'sound/items/weapons/kinetic_accel.ogg' + //////////////////////// //Turret Control Panel// //////////////////////// diff --git a/code/game/machinery/portagrav.dm b/code/game/machinery/portagrav.dm index c970fa5f8f1c6..62fc67b7c070a 100644 --- a/code/game/machinery/portagrav.dm +++ b/code/game/machinery/portagrav.dm @@ -229,7 +229,7 @@ . = ..() if(.) return - playsound(src, 'sound/machines/terminal_button07.ogg', 45, TRUE) + playsound(src, 'sound/machines/terminal/terminal_button07.ogg', 45, TRUE) switch(action) if("adjust_grav") var/adjustment = text2num(params["adjustment"]) diff --git a/code/game/machinery/prisongate.dm b/code/game/machinery/prisongate.dm index b05b6dd90c4a1..88cb40dd50f79 100644 --- a/code/game/machinery/prisongate.dm +++ b/code/game/machinery/prisongate.dm @@ -51,7 +51,7 @@ for(var/mob/living/stowaway in cargobay.contents) //nice try bub if(COOLDOWN_FINISHED(src, spam_cooldown_time)) say("Stowaway detected in internal contents. Access denied.") - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE) COOLDOWN_START(src, spam_cooldown_time, SPAM_CD) return FALSE var/mob/living/carbon/the_toucher = gate_toucher @@ -82,7 +82,7 @@ return TRUE if(COOLDOWN_FINISHED(src, spam_cooldown_time)) say("Prison ID with ongoing sentence detected. Access denied.") - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE) COOLDOWN_START(src, spam_cooldown_time, SPAM_CD) return FALSE if(COOLDOWN_FINISHED(src, spam_cooldown_time)) diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index f5f5851b7586e..635f567b8b310 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -132,7 +132,7 @@ /obj/machinery/quantumpad/proc/doteleport(mob/user = null, obj/machinery/quantumpad/target_pad = linked_pad) if(!target_pad) return - playsound(get_turf(src), 'sound/weapons/flash.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/flash.ogg', 25, TRUE) teleporting = TRUE addtimer(CALLBACK(src, PROC_REF(teleport_contents), user, target_pad), teleport_speed) @@ -156,9 +156,9 @@ target_pad.sparks() flick("qpad-beam", src) - playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/emitter2.ogg', 25, TRUE) flick("qpad-beam", target_pad) - playsound(get_turf(target_pad), 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(get_turf(target_pad), 'sound/items/weapons/emitter2.ogg', 25, TRUE) for(var/atom/movable/ROI in get_turf(src)) if(QDELETED(ROI)) continue //sleeps in CHECK_TICK diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 8ce9265917d63..166410cfccf56 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -15,7 +15,7 @@ var/amount_produced = 50 var/crush_damage = 1000 var/eat_victim_items = TRUE - var/item_recycle_sound = 'sound/items/welder.ogg' + var/item_recycle_sound = 'sound/items/tools/welder.ogg' var/datum/component/material_container/materials /obj/machinery/recycler/Initialize(mapload) @@ -206,7 +206,7 @@ if(nom.len && sound) playsound(src, item_recycle_sound, (50 + nom.len * 5), TRUE, nom.len, ignore_walls = (nom.len - 10)) // As a substitute for playing 50 sounds at once. if(not_eaten) - playsound(src, 'sound/machines/buzz-sigh.ogg', (50 + not_eaten * 5), FALSE, not_eaten, ignore_walls = (not_eaten - 10)) // Ditto. + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', (50 + not_eaten * 5), FALSE, not_eaten, ignore_walls = (not_eaten - 10)) // Ditto. /obj/machinery/recycler/proc/recycle_item(obj/item/weapon) . = FALSE @@ -225,7 +225,7 @@ qdel(weapon) /obj/machinery/recycler/proc/emergency_stop() - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) safety_mode = TRUE update_appearance() addtimer(CALLBACK(src, PROC_REF(reboot)), SAFETY_COOLDOWN) @@ -239,7 +239,7 @@ L.forceMove(loc) if(issilicon(L)) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 50, TRUE) else playsound(src, 'sound/effects/splat.ogg', 50, TRUE) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 4a764872a8a2a..6124d15a7f4b7 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -200,7 +200,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) var/mob/living/L = usr message = L.treat_message(message)["message"] - minor_announce(message, "[department] Announcement:", html_encode = FALSE, sound_override = 'sound/misc/announce_dig.ogg') + minor_announce(message, "[department] Announcement:", html_encode = FALSE, sound_override = 'sound/announcer/announcement/announce_dig.ogg') GLOB.news_network.submit_article(message, department, "Station Announcements", null) usr.log_talk(message, LOG_SAY, tag="station announcement from [src]") message_admins("[ADMIN_LOOKUPFLW(usr)] has made a station announcement from [src] at [AREACOORD(usr)].") @@ -217,7 +217,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) return if(!reply_message) has_mail_send_error = TRUE - playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) return TRUE send_message(recipient, reply_message, REQ_NORMAL_MESSAGE_PRIORITY, REPLY_REQUEST) @@ -273,9 +273,9 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) if(!silent) if(has_mail_send_error) - playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) else - playsound(src, 'sound/machines/twobeep.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep.ogg', 50, TRUE) message_stamped_by = "" message_verified_by = "" @@ -350,7 +350,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) var/alert = new_message.get_alert() if(!silent) - playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) say(alert) if(new_message.radio_freq) diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index 3ef023ccb64d7..f0bc48916ae21 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -127,7 +127,7 @@ if(isidcard(W)) playsound(src, 'sound/machines/card_slide.ogg', 50, TRUE) else - playsound(src, 'sound/machines/terminal_success.ogg', 50, TRUE) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 50, TRUE) if(machine_stat & MAINT || !on || locked) to_chat(user, span_notice("The machine appears to be disabled.")) @@ -135,17 +135,17 @@ if(!player_card.registered_account) say("You don't have a bank account!") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE if(my_card) if(IS_DEPARTMENTAL_CARD(player_card)) // Are they using a department ID say("You cannot gamble with the department budget!") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE if(player_card.registered_account.account_balance < chosen_bet_amount) //Does the player have enough funds say("You do not have the funds to play! Lower your bet or get more money.") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE if(!chosen_bet_amount || isnull(chosen_bet_type)) return FALSE @@ -181,7 +181,7 @@ icon_state = "rolling" //Prepare the new icon state for rolling before hand. flick("flick_up", src) - playsound(src, 'sound/machines/piston_raise.ogg', 70) + playsound(src, 'sound/machines/piston/piston_raise.ogg', 70) playsound(src, 'sound/machines/chime.ogg', 50) addtimer(CALLBACK(src, PROC_REF(play), user, player_card, chosen_bet_type, chosen_bet_amount, potential_payout), 4) //Animation first @@ -209,7 +209,7 @@ if(!my_card?.registered_account) // Something happened to my_card during the 0.4 seconds delay of the timed callback. icon_state = "idle" flick("flick_down", src) - playsound(src, 'sound/machines/piston_lower.ogg', 70) + playsound(src, 'sound/machines/piston/piston_lower.ogg', 70) return var/payout = potential_payout @@ -222,7 +222,7 @@ var/rolled_number = rand(0, 36) - playsound(src, 'sound/machines/roulettewheel.ogg', 50) + playsound(src, 'sound/machines/roulette/roulettewheel.ogg', 50) addtimer(CALLBACK(src, PROC_REF(finish_play), player_id, bet_type, bet_amount, payout, rolled_number), 34) //4 deciseconds more so the animation can play addtimer(CALLBACK(src, PROC_REF(finish_play_animation)), 3 SECONDS) @@ -231,7 +231,7 @@ /obj/machinery/roulette/proc/finish_play_animation() icon_state = "idle" flick("flick_down", src) - playsound(src, 'sound/machines/piston_lower.ogg', 70) + playsound(src, 'sound/machines/piston/piston_lower.ogg', 70) ///Ran after a while to check if the player won or not. /obj/machinery/roulette/proc/finish_play(obj/item/card/id/player_id, bet_type, bet_amount, potential_payout, rolled_number) @@ -249,7 +249,7 @@ if(!is_winner) say("You lost! Better luck next time") - playsound(src, 'sound/machines/synth_no.ogg', 50) + playsound(src, 'sound/machines/synth/synth_no.ogg', 50) return FALSE // Prevents money generation exploits. Doesn't prevent the owner being a scrooge and running away with the money. @@ -257,7 +257,7 @@ potential_payout = (account_balance >= potential_payout) ? potential_payout : account_balance say("You have won [potential_payout] credits! Congratulations!") - playsound(src, 'sound/machines/synth_yes.ogg', 50) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50) dispense_prize(potential_payout) @@ -362,7 +362,7 @@ if(my_card.registered_account.account_balance >= payout) return TRUE //We got the betting amount say("The bank account of [my_card.registered_account.account_holder] does not have enough funds to pay out the potential prize, contact them to fill up their account or lower your bet!") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE /obj/machinery/roulette/update_overlays() diff --git a/code/game/machinery/scanner_gate.dm b/code/game/machinery/scanner_gate.dm index 85d816543926b..07df8db82c704 100644 --- a/code/game/machinery/scanner_gate.dm +++ b/code/game/machinery/scanner_gate.dm @@ -306,7 +306,7 @@ say("[detected_thing][reverse ? " not " : " "]detected!!") COOLDOWN_START(src, next_beep, 2 SECONDS) - playsound(source = src, soundin = 'sound/machines/scanbuzz.ogg', vol = 30, vary = FALSE, extrarange = MEDIUM_RANGE_SOUND_EXTRARANGE, falloff_distance = 4) + playsound(source = src, soundin = 'sound/machines/scanner/scanbuzz.ogg', vol = 30, vary = FALSE, extrarange = MEDIUM_RANGE_SOUND_EXTRARANGE, falloff_distance = 4) set_scanline("alarm", 2 SECONDS) /obj/machinery/scanner_gate/can_interact(mob/user) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 41aa0876169ed..d3266df16f880 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -335,14 +335,14 @@ else balloon_alert(user, "no luck!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50) did_player_win = FALSE if(did_player_win) add_filter("jackpot_rays", 3, ray_filter) animate(get_filter("jackpot_rays"), offset = 10, time = 3 SECONDS, loop = -1) addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, remove_filter), "jackpot_rays"), 3 SECONDS) - playsound(src, 'sound/machines/roulettejackpot.ogg', 50, TRUE) + playsound(src, 'sound/machines/roulette/roulettejackpot.ogg', 50, TRUE) /// Checks for a jackpot (5 matching icons in the middle row) with the given icon name /obj/machinery/computer/slot_machine/proc/check_jackpot(name) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index bf33530b93e3e..49f00741895fe 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -34,9 +34,9 @@ if(last_stasis_sound != _running) var/sound_freq = rand(5120, 8800) if(_running) - playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = sound_freq) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50, TRUE, frequency = sound_freq) else - playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = sound_freq) + playsound(src, 'sound/machines/synth/synth_no.ogg', 50, TRUE, frequency = sound_freq) last_stasis_sound = _running /obj/machinery/stasis/click_alt(mob/user) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 9ff9c562aa04c..1eff3f6587080 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -506,7 +506,7 @@ locked = FALSE if(uv_super) visible_message(span_warning("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 50, TRUE) var/datum/effect_system/fluid_spread/smoke/bad/black/smoke = new smoke.set_up(0, holder = src, location = src) smoke.start() @@ -523,7 +523,7 @@ else visible_message(span_warning("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.")) qdel(mob_occupant.GetComponent(/datum/component/irradiated)) - playsound(src, 'sound/machines/airlockclose.ogg', 25, TRUE) + playsound(src, 'sound/machines/airlock/airlockclose.ogg', 25, TRUE) var/list/things_to_clear = list() //Done this way since using GetAllContents on the SSU itself would include circuitry and such. if(suit) things_to_clear += suit diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 0ac1f7ee44df8..25dc258a38d94 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -501,7 +501,7 @@ reactants += S.reagents if(!chem_splash(get_turf(src), reagents, spread_range, reactants, temp_boost)) - playsound(loc, 'sound/items/screwdriver2.ogg', 50, TRUE) + playsound(loc, 'sound/items/tools/screwdriver2.ogg', 50, TRUE) return // The Explosion didn't do anything. No need to log, or disappear. if(adminlog) diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index c92384aa4b6c1..8b982b4e3b953 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -105,7 +105,7 @@ if(params["value"]) if(length(params["value"]) > 32) to_chat(current_user, span_warning("Error: Machine ID too long!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return else id = params["value"] @@ -115,7 +115,7 @@ if(params["value"]) if(length(params["value"]) > 15) to_chat(current_user, span_warning("Error: Network name too long!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return else for(var/obj/machinery/telecomms/linked_machine in links) @@ -130,7 +130,7 @@ if("freq") if(tempfreq in banned_frequencies) to_chat(current_user, span_warning("Error: Interference preventing filtering frequency: \"[tempfreq / 10] kHz\"")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) else if(!(tempfreq in freq_listening)) freq_listening.Add(tempfreq) diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 238994004ded0..45a91d7e5a6ec 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -84,7 +84,7 @@ return if(!transform_dead && victim.stat == DEAD) - playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src.loc, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return // Activate the cooldown @@ -92,7 +92,7 @@ cooldown_timer = world.time + cooldown_duration update_appearance() - playsound(src.loc, 'sound/items/welder.ogg', 50, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 50, TRUE) victim.emote("scream") // It is painful victim.adjustBruteLoss(max(0, 80 - victim.getBruteLoss())) // Hurt the human, don't try to kill them though. diff --git a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm index d97966160233b..d722d90ed1172 100644 --- a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm +++ b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm @@ -25,7 +25,7 @@ return new /obj/effect/temp_visual/circle_wave/bioscrambler(get_turf(src)) - playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) + playsound(src, 'sound/effects/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) COOLDOWN_START(src, pulse_cooldown, pulse_delay) for(var/mob/living/carbon/nearby in hearers(range, src)) nearby.bioscramble(name) diff --git a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm index a9d2e0bcaa0c4..2d92eaabb929c 100644 --- a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm +++ b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm @@ -11,7 +11,7 @@ /// Typepath of custom material to use for objects. var/datum/material/material /// Sound to play when transforming a tile - var/sound = 'sound/magic/blind.ogg' + var/sound = 'sound/effects/magic/blind.ogg' /// Weighted list of turfs to replace the floor with. var/list/replace_floors = list(/turf/open/floor/material = 1) /// Typepath of turf to replace walls with. @@ -255,7 +255,7 @@ icon = 'icons/obj/ore.dmi' icon_state = "uranium" material = /datum/material/uranium - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' /datum/dimension_theme/meat name = "Meat" @@ -468,4 +468,4 @@ /obj/item/reagent_containers/cup/glass/trophy = list(/obj/item/reagent_containers/cup/glass/trophy/bronze_cup = 1), /obj/machinery/door/airlock = list(/obj/machinery/door/airlock/bronze = 1), ) - sound = 'sound/magic/clockwork/fellowship_armory.ogg' + sound = 'sound/effects/magic/clockwork/fellowship_armory.ogg' diff --git a/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm b/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm index e6c3e855386b7..0998e3f803dec 100644 --- a/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm +++ b/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm @@ -132,11 +132,11 @@ icon_state = "anom" anchored = TRUE var/static/list/spooky_noises = list( - 'sound/hallucinations/growl1.ogg', - 'sound/hallucinations/growl2.ogg', - 'sound/hallucinations/growl3.ogg', - 'sound/hallucinations/veryfar_noise.ogg', - 'sound/hallucinations/wail.ogg' + 'sound/effects/hallucinations/growl1.ogg', + 'sound/effects/hallucinations/growl2.ogg', + 'sound/effects/hallucinations/growl3.ogg', + 'sound/effects/hallucinations/veryfar_noise.ogg', + 'sound/effects/hallucinations/wail.ogg' ) var/list/ghosts_spawned = list() diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index f423f3644f0c8..1124e32983f31 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -359,7 +359,7 @@ decal_reagent = /datum/reagent/ants reagent_amount = 5 /// Sound the ants make when biting - var/bite_sound = 'sound/weapons/bite.ogg' + var/bite_sound = 'sound/items/weapons/bite.ogg' /obj/effect/decal/cleanable/ants/Initialize(mapload) if(mapload && reagent_amount > 2) diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index 55cd7cd98d089..803555ae89a99 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -5,7 +5,7 @@ /obj/effect/decal/remains/acid_act() visible_message(span_warning("[src] dissolve[gender == PLURAL?"":"s"] into a puddle of sizzling goop!")) - playsound(src, 'sound/items/welder.ogg', 150, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 150, TRUE) new /obj/effect/decal/cleanable/greenglow(drop_location()) qdel(src) return TRUE diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 4fdd4ac598ee0..6ddd65f12cfca 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -20,8 +20,8 @@ would spawn and follow the beaker, even if it is carried or thrown. GLOB.cameranet.updateVisibility(src) return ..() -// Prevents effects from getting registered for SSspacedrift -/obj/effect/particle_effect/newtonian_move(direction, instant = FALSE, start_delay = 0) +// Prevents effects from getting registered for SSnewtonian_movement +/obj/effect/particle_effect/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 0, controlled_cap = null) return TRUE /datum/effect_system diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm index 6d968574c686c..07383a0aa6f0b 100644 --- a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm @@ -40,7 +40,7 @@ if(slippery_foam) AddComponent(/datum/component/slippery, 100) create_reagents(1000, REAGENT_HOLDER_INSTANT_REACT) - playsound(src, 'sound/effects/bubbles2.ogg', 80, TRUE, -3) + playsound(src, 'sound/effects/bubbles/bubbles2.ogg', 80, TRUE, -3) AddElement(/datum/element/atmos_sensitive, mapload) SSfoam.start_processing(src) @@ -324,7 +324,7 @@ return attack_hand(user, modifiers) /obj/structure/foamedmetal/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(src.loc, 'sound/weapons/tap.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/weapons/tap.ogg', 100, TRUE) /obj/structure/foamedmetal/attack_hand(mob/user, list/modifiers) . = ..() @@ -333,7 +333,7 @@ user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) to_chat(user, span_warning("You hit [src] but bounce off it!")) - playsound(src.loc, 'sound/weapons/tap.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/weapons/tap.ogg', 100, TRUE) /obj/structure/foamedmetal/attackby(obj/item/W, mob/user, params) ///A speed modifier for how fast the wall is build diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index e9a6263286e59..c98dfc2ddf78e 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -246,7 +246,7 @@ GLOBAL_VAR_INIT(glowshrooms, 0) /obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type == BURN && damage_amount) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/glowshroom/should_atmos_process(datum/gas_mixture/air, exposed_temperature) return exposed_temperature > 300 diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index f080035d54c2e..12c8c15b62eaf 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -275,7 +275,7 @@ if(active) return - playsound(src, 'sound/weapons/armbomb.ogg', 70, TRUE) + playsound(src, 'sound/items/weapons/armbomb.ogg', 70, TRUE) to_chat(user, span_warning("You arm \the [src], causing it to shake! It will deploy in 3 seconds.")) active = TRUE addtimer(CALLBACK(src, PROC_REF(deploy_mine)), 3 SECONDS) diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 255f34eff51dd..a43fee5608de3 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -66,7 +66,7 @@ return ..() // Prevents portals spawned by jaunter/handtele from floating into space when relocated to an adjacent tile. -/obj/effect/portal/newtonian_move(direction, instant = FALSE, start_delay = 0) +/obj/effect/portal/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 0, controlled_cap = null) return TRUE /obj/effect/portal/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/effects/posters/poster.dm b/code/game/objects/effects/posters/poster.dm index 4ced5babbbfa8..135887aafc83f 100644 --- a/code/game/objects/effects/posters/poster.dm +++ b/code/game/objects/effects/posters/poster.dm @@ -248,7 +248,7 @@ flick("poster_being_set", placed_poster) placed_poster.forceMove(src) //deletion of the poster is handled in poster/Exited(), so don't have to worry about P anymore. - playsound(src, 'sound/items/poster_being_created.ogg', 100, TRUE) + playsound(src, 'sound/items/poster/poster_being_created.ogg', 100, TRUE) var/turf/user_drop_location = get_turf(user) //cache this so it just falls to the ground if they move. also no tk memes allowed. if(!do_after(user, PLACE_SPEED, placed_poster, extra_checks = CALLBACK(placed_poster, TYPE_PROC_REF(/obj/structure/sign/poster, snowflake_closed_turf_check), src))) @@ -266,7 +266,7 @@ /obj/structure/sign/poster/proc/tear_poster(mob/user) visible_message(span_notice("[user] rips [src] in a single, decisive motion!") ) - playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/poster/poster_ripped.ogg', 100, TRUE) spring_trap(user) var/obj/structure/sign/poster/ripped/torn_poster = new(loc) diff --git a/code/game/objects/effects/powerup.dm b/code/game/objects/effects/powerup.dm index 3dc5db8de95de..8598d623fb0e5 100644 --- a/code/game/objects/effects/powerup.dm +++ b/code/game/objects/effects/powerup.dm @@ -59,7 +59,7 @@ icon_state = "backpack-medical" respawn_time = 30 SECONDS pickup_message = "Health restored!" - pickup_sound = 'sound/magic/staff_healing.ogg' + pickup_sound = 'sound/effects/magic/staff_healing.ogg' /// How much the pickup heals when picked up var/heal_amount = 50 /// Does this pickup fully heal when picked up @@ -89,7 +89,7 @@ icon_state = "ammobox" respawn_time = 30 SECONDS pickup_message = "Ammunition reloaded!" - pickup_sound = 'sound/weapons/gun/shotgun/rack.ogg' + pickup_sound = 'sound/items/weapons/gun/shotgun/rack.ogg' /obj/effect/powerup/ammo/trigger(mob/living/target) . = ..() @@ -110,7 +110,7 @@ name = "Lightning Orb" desc = "You feel faster just looking at it." icon_state = "speed" - pickup_sound = 'sound/magic/lightningshock.ogg' + pickup_sound = 'sound/effects/magic/lightningshock.ogg' /obj/effect/powerup/speed/trigger(mob/living/target) . = ..() diff --git a/code/game/objects/effects/rcd.dm b/code/game/objects/effects/rcd.dm index 17ea3e44a10a1..03d77f0f84504 100644 --- a/code/game/objects/effects/rcd.dm +++ b/code/game/objects/effects/rcd.dm @@ -10,7 +10,7 @@ * * fade_time - The time for RCD holograms to fade */ /proc/rcd_scan(atom/source, scan_range = RCD_DESTRUCTIVE_SCAN_RANGE, fade_time = RCD_HOLOGRAM_FADE_TIME) - playsound(source, 'sound/items/rcdscan.ogg', 50, vary = TRUE, pressure_affected = FALSE) + playsound(source, 'sound/items/tools/rcdscan.ogg', 50, vary = TRUE, pressure_affected = FALSE) var/turf/source_turf = get_turf(source) for(var/turf/open/surrounding_turf as anything in RANGE_TURFS(scan_range, source_turf)) diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 50497d531e76f..d05d5f039256b 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -4,7 +4,7 @@ var/sparks = 0 //whether sparks spread var/virusProb = 20 //the chance for viruses to spread on the gibs var/gib_mob_type //generate a fake mob to transfer DNA from if we weren't passed a mob. - var/sound_to_play = 'sound/effects/blobattack.ogg' + var/sound_to_play = 'sound/effects/blob/blobattack.ogg' var/sound_vol = 60 var/list/gibtypes = list() //typepaths of the gib decals to spawn var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn. diff --git a/code/game/objects/effects/spiderwebs.dm b/code/game/objects/effects/spiderwebs.dm index 2d0f1b9b14de2..49765c059865b 100644 --- a/code/game/objects/effects/spiderwebs.dm +++ b/code/game/objects/effects/spiderwebs.dm @@ -14,7 +14,7 @@ /obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type == BURN)//the stickiness of the web mutes all attack sounds except fire damage type - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/spider/run_atom_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) if(damage_flag == MELEE) diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 9cb926fd19756..6e7df14b7c564 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -563,7 +563,7 @@ /obj/effect/constructing_effect/proc/attacked(mob/user) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) user.changeNext_move(CLICK_CD_MELEE) - playsound(loc, 'sound/weapons/egloves.ogg', vol = 80, vary = TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', vol = 80, vary = TRUE) end() /obj/effect/constructing_effect/attackby(obj/item/weapon, mob/user, params) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 99266b3787eb6..03f6754eb9951 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -102,8 +102,10 @@ var/equip_sound ///Sound uses when picking the item up (into your hands) var/pickup_sound - ///Sound uses when dropping the item, or when its thrown. + ///Sound uses when dropping the item, or when its thrown if a thrown sound isn't specified. var/drop_sound + ///Sound used on impact when the item is thrown. + var/throw_drop_sound ///Do the drop and pickup sounds vary? var/sound_vary = FALSE ///Whether or not we use stealthy audio levels for this item's attack sounds @@ -285,7 +287,7 @@ if(!hitsound) if(damtype == BURN) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' if(damtype == BRUTE) hitsound = SFX_SWING_HIT @@ -887,7 +889,10 @@ /obj/item/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() if(!isliving(hit_atom)) //Living mobs handle hit sounds differently. - playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE) + if(throw_drop_sound) + playsound(src, throw_drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE, vary = sound_vary) + return + playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE, vary = sound_vary) return var/volume = get_volume_by_throwforce_and_or_w_class() if (throwforce > 0 || HAS_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND)) @@ -896,9 +901,9 @@ else if(hitsound) playsound(hit_atom, hitsound, volume, TRUE, -1) else - playsound(hit_atom, 'sound/weapons/genhit.ogg',volume, TRUE, -1) + playsound(hit_atom, 'sound/items/weapons/genhit.ogg',volume, TRUE, -1) else - playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) + playsound(hit_atom, 'sound/items/weapons/throwtap.ogg', 1, volume, -1) /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) if(HAS_TRAIT(src, TRAIT_NODROP)) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 4adb8d28b8c8a..4c83923355261 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -46,7 +46,7 @@ R.add_fingerprint(user) qdel(src) user.forceMove(R) - playsound(src, 'sound/items/zip.ogg', 15, TRUE, -3) + playsound(src, 'sound/items/zip/zip.ogg', 15, TRUE, -3) return OXYLOSS // Bluespace bodybag diff --git a/code/game/objects/items/boxcutter.dm b/code/game/objects/items/boxcutter.dm index 467bc666e6027..58be269bacddf 100644 --- a/code/game/objects/items/boxcutter.dm +++ b/code/game/objects/items/boxcutter.dm @@ -38,7 +38,7 @@ throwforce_on = 4, \ throw_speed_on = throw_speed, \ sharpness_on = SHARP_EDGED, \ - hitsound_on = 'sound/weapons/bladeslice.ogg', \ + hitsound_on = 'sound/items/weapons/bladeslice.ogg', \ w_class_on = WEIGHT_CLASS_NORMAL, \ attack_verb_continuous_on = list("cuts", "stabs", "slashes"), \ attack_verb_simple_on = list("cut", "stab", "slash"), \ diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm index fa849c51437da..32636b1a99c81 100644 --- a/code/game/objects/items/broom.dm +++ b/code/game/objects/items/broom.dm @@ -102,7 +102,7 @@ for (var/obj/item/garbage in items_to_sweep) garbage.Move(new_item_loc, sweep_dir) - playsound(current_item_loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + playsound(current_item_loc, 'sound/items/weapons/thudswoosh.ogg', 30, TRUE, -1) /obj/item/pushbroom/cyborg name = "cyborg push broom" diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index b49991b132a4e..960363685b1e8 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -49,7 +49,7 @@ if(!user.combat_mode || pushed_over || !isturf(loc)) return ..() user.visible_message(span_warning("[user] pushes over [src]!"), span_danger("You push over [src]!")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) push_over() /obj/item/cardboard_cutout/equipped(mob/living/user, slot) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index b28acce35d42d..2d1a16986fbe8 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -767,7 +767,7 @@ if(HAS_TRAIT(src, TRAIT_TASTEFULLY_THICK_ID_CARD) && (user.is_holding(src) || (user.CanReach(src) && user.put_in_hands(src, ignore_animation = FALSE)))) ADD_TRAIT(src, TRAIT_NODROP, "psycho") . += span_hypnophrase("Look at that subtle coloring... The tasteful thickness of it. Oh my God, it even has a watermark...") - var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) + var/sound/slowbeat = sound('sound/effects/health/slowbeat.ogg', repeat = TRUE) user.playsound_local(get_turf(src), slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) if(isliving(user)) var/mob/living/living_user = user @@ -810,7 +810,7 @@ if(registered_account.replaceable) . += span_info("Alt-Right-Click the ID to change the linked bank account.") if(registered_account.civilian_bounty) - . += "There is an active civilian bounty." + . += span_info("There is an active civilian bounty.") . += span_info("[registered_account.bounty_text()]") . += span_info("Quantity: [registered_account.bounty_num()]") . += span_info("Reward: [registered_account.bounty_value()]") diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index 5d5de16a4d12a..00ca25985bfee 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -47,13 +47,13 @@ /obj/item/chainsaw/suicide_act(mob/living/carbon/user) if(on) user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/weapons/chainsawhit.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE) var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) if(myhead) myhead.dismember() else user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/weapons/genhit1.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE) return BRUTELOSS /obj/item/chainsaw/attack_self(mob/user) @@ -66,7 +66,7 @@ butchering.butchering_enabled = on if(on) - hitsound = 'sound/weapons/chainsawhit.ogg' + hitsound = 'sound/items/weapons/chainsawhit.ogg' chainsaw_loop.start() else hitsound = SFX_SWING_HIT @@ -88,14 +88,14 @@ speed = 3 SECONDS, \ effectiveness = 100, \ bonus_modifier = 0, \ - butcher_sound = 'sound/weapons/chainsawhit.ogg', \ + butcher_sound = 'sound/items/weapons/chainsawhit.ogg', \ disabled = TRUE, \ ) AddComponent(/datum/component/two_handed, require_twohands=TRUE) /obj/item/chainsaw/doomslayer name = "THE GREAT COMMUNICATOR" - desc = "VRRRRRRR!!!" + desc = span_warning("VRRRRRRR!!!") armour_penetration = 100 force_on = 30 @@ -110,7 +110,7 @@ if (isnull(head)) return ..() - playsound(user, 'sound/weapons/slice.ogg', vol = 80, vary = TRUE) + playsound(user, 'sound/items/weapons/slice.ogg', vol = 80, vary = TRUE) target_mob.balloon_alert(user, "cutting off head...") if (!do_after(user, 2 SECONDS, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) @@ -124,7 +124,7 @@ /obj/item/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(attack_type == PROJECTILE_ATTACK) owner.visible_message(span_danger("Ranged attacks just make [owner] angrier!")) - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + playsound(src, pick('sound/items/weapons/bulletflyby.ogg', 'sound/items/weapons/bulletflyby2.ogg', 'sound/items/weapons/bulletflyby3.ogg'), 75, TRUE) return TRUE return FALSE @@ -162,7 +162,7 @@ speed = 3 SECONDS, \ effectiveness = 100, \ bonus_modifier = 0, \ - butcher_sound = 'sound/weapons/chainsawhit.ogg', \ + butcher_sound = 'sound/items/weapons/chainsawhit.ogg', \ disabled = TRUE, \ ) diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 1d1f8fad7cc56..6b4ae0f918394 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -69,8 +69,8 @@ if(!response_timer_id) return var/turf/T = get_turf(src) - T.visible_message("The proposed changes disappear \ - from [src]; it looks like they've been rejected.") + T.visible_message(span_warning("The proposed changes disappear \ + from [src]; it looks like they've been rejected.")) var/m = "[key_name(user)] has rejected the proposed station name." message_admins(m) diff --git a/code/game/objects/items/choice_beacon.dm b/code/game/objects/items/choice_beacon.dm index 6bd6472d9c8f1..aa51d71c5eda4 100644 --- a/code/game/objects/items/choice_beacon.dm +++ b/code/game/objects/items/choice_beacon.dm @@ -30,7 +30,7 @@ if(user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) return TRUE - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, TRUE) return FALSE /// Opens a menu and allows the mob to pick an option from the list @@ -162,7 +162,7 @@ // just drops the box at their feet, "quiet" and "sneaky" /obj/item/choice_beacon/augments/spawn_option(obj/choice_path, mob/living/user) new choice_path(get_turf(user)) - playsound(src, 'sound/weapons/emitter2.ogg', 50, extrarange = SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/items/weapons/emitter2.ogg', 50, extrarange = SILENCED_SOUND_EXTRARANGE) /obj/item/choice_beacon/holy name = "armaments beacon" @@ -176,7 +176,7 @@ if(user.mind?.holy_role) return ..() - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, TRUE) return FALSE // Overrides generate options so that we can show a neat radial instead diff --git a/code/game/objects/items/cigarettes.dm b/code/game/objects/items/cigarettes.dm index 168817bf1ff9f..69b65149775ba 100644 --- a/code/game/objects/items/cigarettes.dm +++ b/code/game/objects/items/cigarettes.dm @@ -47,7 +47,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "match_lit" damtype = BURN force = 3 - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' inhand_icon_state = "cigon" name = "lit [initial(name)]" desc = "A [initial(name)]. This one is lit." @@ -132,6 +132,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "cigarette" desc = "A roll of tobacco and nicotine. It is not food." icon = 'icons/obj/cigarettes.dmi' + worn_icon = 'icons/mob/clothing/mask.dmi' icon_state = "cigoff" inhand_icon_state = "cigon" //gets overriden during intialize(), just have it for unit test sanity. throw_speed = 0.5 @@ -346,7 +347,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM return lit = TRUE - playsound(src.loc, 'sound/items/cig_light.ogg', 100, 1) + playsound(src.loc, 'sound/items/lighter/cig_light.ogg', 100, 1) make_cig_smoke() if(!(flags_1 & INITIALIZED_1)) update_appearance(UPDATE_ICON) @@ -354,7 +355,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' damtype = BURN force = 4 if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire @@ -395,7 +396,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM STOP_PROCESSING(SSobj, src) reagents.flags |= NO_REACT lit = FALSE - playsound(src.loc, 'sound/items/cig_snuff.ogg', 100, 1) + playsound(src.loc, 'sound/items/lighter/cig_snuff.ogg', 100, 1) update_appearance(UPDATE_ICON) if(ismob(loc)) to_chat(loc, span_notice("Your [name] goes out.")) @@ -677,6 +678,27 @@ CIGARETTE PACKETS ARE IN FANCY.DM pixel_y = rand(-5, 5) +/obj/item/cigarette/dart + name = "fat dart" + desc = "Chuff back this fat dart" + icon_state = "bigon" + icon_on = "bigon" + icon_off = "bigoff" + w_class = WEIGHT_CLASS_BULKY + smoketime = 18 MINUTES + chem_volume = 65 + list_reagents = list(/datum/reagent/drug/nicotine = 45) + choke_time_max = 40 SECONDS + lung_harm = 2 + +/obj/item/cigarette/dart/Initialize(mapload) + . = ..() + //the compiled icon state is how it appears when it's on. + //That's how we want it to show on orbies (little virtual PDA pets). + //However we should reset their appearance on runtime. + update_appearance(UPDATE_ICON_STATE) + + //////////// // CIGARS // //////////// diff --git a/code/game/objects/items/climbingrope.dm b/code/game/objects/items/climbingrope.dm index 552b5d5885011..f10a9db76704c 100644 --- a/code/game/objects/items/climbingrope.dm +++ b/code/game/objects/items/climbingrope.dm @@ -48,8 +48,8 @@ var/away_dir = get_dir(above, target) user.visible_message(span_notice("[user] begins climbing upwards with [src]."), span_notice("You get to work on properly hooking [src] and going upwards.")) - playsound(target, 'sound/effects/picaxe1.ogg', 50) //plays twice so people above and below can hear - playsound(user_turf, 'sound/effects/picaxe1.ogg', 50) + playsound(target, 'sound/effects/pickaxe/picaxe1.ogg', 50) //plays twice so people above and below can hear + playsound(user_turf, 'sound/effects/pickaxe/picaxe1.ogg', 50) var/list/effects = list(new /obj/effect/temp_visual/climbing_hook(target, away_dir), new /obj/effect/temp_visual/climbing_hook(user_turf, away_dir)) // Our climbers athletics ability diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 58f2cb49a130a..1870b6dd2ba0f 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -209,7 +209,7 @@ desc = "Damn son, where'd you find this?" icon_state = "air_horn" worn_icon_state = "horn_air" - sound_file = 'sound/items/airhorn2.ogg' + sound_file = 'sound/items/airhorn/airhorn2.ogg' /datum/crafting_recipe/airhorn name = "Air Horn" diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 2aa0c927bedc0..45b716997c16b 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -210,7 +210,7 @@ skinhead.set_facial_hairstyle("Shaved", update = TRUE) else skinhead.set_hairstyle("Skinhead", update = TRUE) - playsound(loc, 'sound/items/welder2.ogg', 20, TRUE) + playsound(loc, 'sound/items/tools/welder2.ogg', 20, TRUE) /obj/item/razor/attack(mob/target_mob, mob/living/user, params) if(!ishuman(target_mob)) diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm index 45bb25285ef24..630637316b355 100644 --- a/code/game/objects/items/crab17.dm +++ b/code/game/objects/items/crab17.dm @@ -79,7 +79,7 @@ var/throwtarget = get_step(user, get_dir(src, user)) user.safe_throw_at(throwtarget, 1, 1, force = MOVE_FORCE_EXTREMELY_STRONG) - playsound(get_turf(src),'sound/magic/repulse.ogg', 100, TRUE) + playsound(get_turf(src),'sound/effects/magic/repulse.ogg', 100, TRUE) return @@ -126,7 +126,7 @@ sleep(3 SECONDS) if(QDELETED(src)) return - playsound(src,'sound/machines/twobeep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/twobeep.ogg',50,FALSE) var/mutable_appearance/hologram = mutable_appearance(icon, "hologram") hologram.pixel_y = 16 add_overlay(hologram) @@ -158,7 +158,7 @@ sleep(0.5 SECONDS) if(QDELETED(src)) return - playsound(src,'sound/machines/triple_beep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/triple_beep.ogg',50,FALSE) add_overlay("text") sleep(1 SECONDS) if(QDELETED(src)) @@ -247,7 +247,7 @@ dump = new /obj/structure/checkoutmachine(null, bogdanoff) priority_announce("The spacecoin bubble has popped! Get to the credit deposit machine at [get_area(src)] and cash out before you lose all of your funds!", sender_override = "CRAB-17 Protocol") animate(DF, pixel_z = -8, time = 5, , easing = LINEAR_EASING) - playsound(src, 'sound/weapons/mortar_whistle.ogg', 70, TRUE, 6) + playsound(src, 'sound/items/weapons/mortar_whistle.ogg', 70, TRUE, 6) addtimer(CALLBACK(src, PROC_REF(endLaunch)), 5, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index 24f350f37907a..fb6400fc7b36c 100644 --- a/code/game/objects/items/debug_items.dm +++ b/code/game/objects/items/debug_items.dm @@ -168,7 +168,7 @@ return if(!user.client.holder) //safety if the admin readmined to save their ass lol. to_chat(user, span_reallybig("You shouldn't have done that...")) - playsound(src, 'sound/voice/borg_deathsound.ogg') + playsound(src, 'sound/mobs/non-humanoids/cyborg/borg_deathsound.ogg') sleep(3 SECONDS) living_user.investigate_log("has been gibbed by [src].", INVESTIGATE_DEATHS) living_user.gib(DROP_ALL_REMAINS) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 491d48a66d392..9133068cb0027 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -258,10 +258,10 @@ if(cell) if(cell.charge >= paddles.revivecost) visible_message(span_notice("[src] beeps: Unit ready.")) - playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_ready.ogg', 50, FALSE) else visible_message(span_notice("[src] beeps: Charge depleted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) paddles.cooldown = FALSE paddles.update_appearance() update_power() @@ -399,7 +399,7 @@ /obj/item/shockpaddles/proc/finish_recharge() var/turf/current_turf = get_turf(src) current_turf.audible_message(span_notice("[src] beeps: Unit is recharged.")) - playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_ready.ogg', 50, FALSE) cooldown = FALSE update_appearance() @@ -418,7 +418,7 @@ user.visible_message(span_danger("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!")) if(req_defib) defib.deductcharge(revivecost) - playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) return OXYLOSS /obj/item/shockpaddles/update_icon_state() @@ -451,7 +451,7 @@ defib?.update_power() if(req_defib && !defib.powered) user.visible_message(span_warning("[defib] beeps: Not enough charge!")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) return if(!HAS_TRAIT(src, TRAIT_WIELDED)) if(iscyborg(user)) @@ -527,7 +527,7 @@ M.Knockdown(75) M.set_jitter_if_lower(100 SECONDS) M.apply_status_effect(/datum/status_effect/convulsing) - playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) if(HAS_TRAIT(M,MOB_ORGANIC)) M.emote("gasp") log_combat(user, M, "zapped", src) @@ -544,7 +544,7 @@ user.visible_message(span_notice("[user] places [src] on [H]'s chest."), span_warning("You place [src] on [H]'s chest and begin to charge them.")) var/turf/T = get_turf(defib) - playsound(src, 'sound/machines/defib_charge.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_charge.ogg', 50, FALSE) if(req_defib) T.audible_message(span_warning("\The [defib] lets out an urgent beep and lets out a steadily rising hum...")) else @@ -555,12 +555,12 @@ return if(H && H.stat == DEAD) to_chat(user, span_warning("[H] is dead.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) do_cancel() return user.visible_message(span_boldannounce("[user] shocks [H] with \the [src]!"), span_warning("You shock [H] with \the [src]!")) - playsound(src, 'sound/machines/defib_zap.ogg', 100, TRUE, -1) - playsound(src, 'sound/weapons/egloves.ogg', 100, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 100, TRUE, -1) + playsound(src, 'sound/items/weapons/egloves.ogg', 100, TRUE, -1) H.emote("scream") shock_pulling(45, H) if(H.can_heartattack() && !H.undergoing_cardiac_arrest()) @@ -582,14 +582,14 @@ update_appearance() if(do_after(user, 3 SECONDS, H, extra_checks = CALLBACK(src, PROC_REF(is_wielded)))) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process user.visible_message(span_notice("[user] places [src] on [H]'s chest."), span_warning("You place [src] on [H]'s chest.")) - playsound(src, 'sound/machines/defib_charge.ogg', 75, FALSE) + playsound(src, 'sound/machines/defib/defib_charge.ogg', 75, FALSE) var/obj/item/organ/internal/heart = H.get_organ_by_type(/obj/item/organ/internal/heart) if(do_after(user, 2 SECONDS, H, extra_checks = CALLBACK(src, PROC_REF(is_wielded)))) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total if((!combat && !req_defib) || (req_defib && !defib.combat)) for(var/obj/item/clothing/C in H.get_equipped_items()) if((C.body_parts_covered & CHEST) && (C.clothing_flags & THICKMATERIAL)) //check to see if something is obscuring their chest. user.audible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's chest is obscured. Operation aborted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) do_cancel() return if(SEND_SIGNAL(H, COMSIG_DEFIBRILLATOR_PRE_HELP_ZAP, user, src) & COMPONENT_DEFIB_STOP) @@ -598,7 +598,7 @@ if(H.stat == DEAD) H.visible_message(span_warning("[H]'s body convulses a bit.")) playsound(src, SFX_BODYFALL, 50, TRUE) - playsound(src, 'sound/machines/defib_zap.ogg', 75, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 75, TRUE, -1) shock_pulling(30, H) var/defib_result = H.can_defib() @@ -626,7 +626,7 @@ if(fail_reason) user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - [fail_reason]")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) else var/total_brute = H.getBruteLoss() var/total_burn = H.getFireLoss() @@ -645,7 +645,7 @@ if(need_mob_update) H.updatehealth() // Previous "adjust" procs don't update health, so we do it manually. user.visible_message(span_notice("[req_defib ? "[defib]" : "[src]"] pings: Resuscitation successful.")) - playsound(src, 'sound/machines/defib_success.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_success.ogg', 50, FALSE) H.set_heartattack(FALSE) if(defib_result == DEFIB_POSSIBLE) H.grab_ghost() @@ -662,9 +662,9 @@ return else if (!H.get_organ_by_type(/obj/item/organ/internal/heart)) user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's heart is missing. Operation aborted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) else if(H.undergoing_cardiac_arrest()) - playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) if(!(heart.organ_flags & ORGAN_FAILING)) H.set_heartattack(FALSE) user.visible_message(span_notice("[req_defib ? "[defib]" : "[src]"] pings: Patient's heart is now beating again.")) @@ -673,7 +673,7 @@ else user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient is not in a valid state. Operation aborted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) do_cancel() /obj/item/shockpaddles/proc/is_wielded() diff --git a/code/game/objects/items/devices/aicard_evil.dm b/code/game/objects/items/devices/aicard_evil.dm index 3e8c56ce940fd..852a105de350f 100644 --- a/code/game/objects/items/devices/aicard_evil.dm +++ b/code/game/objects/items/devices/aicard_evil.dm @@ -102,13 +102,13 @@ else AI = locate() in A if(!AI || AI.interaction_range == INFINITY) - playsound(src,'sound/machines/buzz-sigh.ogg',50,FALSE) + playsound(src,'sound/machines/buzz/buzz-sigh.ogg',50,FALSE) to_chat(user, span_notice("Error! Incompatible object!")) return ..() AI.interaction_range += 2 if(AI.interaction_range > 7) AI.interaction_range = INFINITY - playsound(src,'sound/machines/twobeep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/twobeep.ogg',50,FALSE) to_chat(user, span_notice("You insert [src] into [AI]'s compartment, and it beeps as it processes the data.")) to_chat(AI, span_notice("You process [src], and find yourself able to manipulate electronics from up to [AI.interaction_range] meters!")) qdel(src) diff --git a/code/game/objects/items/devices/battle_royale.dm b/code/game/objects/items/devices/battle_royale.dm index 70ae0a8f85b2d..5a6fe059cb6c4 100644 --- a/code/game/objects/items/devices/battle_royale.dm +++ b/code/game/objects/items/devices/battle_royale.dm @@ -238,7 +238,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) As a gesture of gratitude, we will be providing our premium broadcast to your entertainment monitors at no cost so that you can watch the excitement. \n\ Bystanders are advised not to intervene... but if you do, make it look good for the camera!", title = "Rumble Royale Beginning", - sound = 'sound/machines/alarm.ogg', + sound = 'sound/announcer/alarm/nuke_alarm.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -268,7 +268,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) priority_announce( text = message, title = "Rumble Royale Casualty Report", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -302,7 +302,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) priority_announce( text = message, title = "Rumble Royale Winner", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -317,7 +317,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) priority_announce( text = "We're halfway done folks! And bad news to anyone who hasn't made it to the [chosen_area]... you're out!", title = "Rumble Royale Update", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -335,7 +335,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) We're sorry to announce that this edition of Royal Rumble has no winner. \n\ Better luck next time!", title = "Rumble Royale Concluded", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", diff --git a/code/game/objects/items/devices/broadcast_camera.dm b/code/game/objects/items/devices/broadcast_camera.dm index f2fc0192f5684..78868844e48cb 100644 --- a/code/game/objects/items/devices/broadcast_camera.dm +++ b/code/game/objects/items/devices/broadcast_camera.dm @@ -22,6 +22,8 @@ light_on = FALSE /// Is camera streaming var/active = FALSE + /// Is the microphone turned on + var/active_microphone = TRUE /// The name of the broadcast var/broadcast_name = "Curator News" /// The networks it broadcasts to, default is CAMERANET_NETWORK_CURATOR @@ -56,6 +58,7 @@ /obj/item/broadcast_camera/examine(mob/user) . = ..() . += span_notice("Broadcast name is [broadcast_name]") + . += span_notice("The microphone is [active_microphone ? "On" : "Off"]") /obj/item/broadcast_camera/on_enter_storage(datum/storage/master_storage) . = ..() @@ -85,9 +88,11 @@ // INTERNAL RADIO internal_radio = new(src) + /// Sets the state of the microphone + set_microphone_state() set_light_on(TRUE) - playsound(source = src, soundin = 'sound/machines/terminal_processing.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE) + playsound(source = src, soundin = 'sound/machines/terminal/terminal_processing.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE) balloon_alert_to_viewers("live!") /// When deactivating the camera @@ -100,5 +105,20 @@ stop_broadcasting_network(camera_networks) set_light_on(FALSE) - playsound(source = src, soundin = 'sound/machines/terminal_prompt_deny.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE) + playsound(source = src, soundin = 'sound/machines/terminal/terminal_prompt_deny.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE) balloon_alert_to_viewers("offline") + +/obj/item/broadcast_camera/click_alt(mob/user) + active_microphone = !active_microphone + + /// Text popup for letting the user know that the microphone has changed state + balloon_alert(user, "turned [active_microphone ? "on" : "off"] the microphone.") + + ///If the radio exists as an object, set its state accordingly + if(active) + set_microphone_state() + + return CLICK_ACTION_SUCCESS + +/obj/item/broadcast_camera/proc/set_microphone_state() + internal_radio.set_broadcasting(active_microphone) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index f0a934fc198cc..fbdf3bae40a88 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -68,7 +68,7 @@ return TRUE /obj/item/chameleon/proc/make_copy(atom/target, mob/user) - playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, TRUE, -6) + playsound(get_turf(src), 'sound/items/weapons/flash.ogg', 100, TRUE, -6) to_chat(user, span_notice("Scanned [target].")) var/obj/temp = new /obj() temp.appearance = target.appearance diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm index 5814101463ba4..cd0b42e0e8ac4 100644 --- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -44,7 +44,7 @@ if(!circuits) to_chat(R, span_warning("You need more material. Use [src] on existing simple circuits to break them down.")) return - playsound(R, 'sound/items/rped.ogg', 50, TRUE) + playsound(R, 'sound/items/tools/rped.ogg', 50, TRUE) recharging = TRUE circuits-- maptext = MAPTEXT(circuits) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 5e59ee700c6aa..657d054f11cc8 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -29,9 +29,9 @@ /// Can we toggle this light on and off (used for contexual screentips only) var/toggle_context = TRUE /// The sound the light makes when it's turned on - var/sound_on = 'sound/weapons/magin.ogg' + var/sound_on = 'sound/items/weapons/magin.ogg' /// The sound the light makes when it's turned off - var/sound_off = 'sound/weapons/magout.ogg' + var/sound_off = 'sound/items/weapons/magout.ogg' /// Should the flashlight start turned on? var/start_on = FALSE @@ -359,7 +359,7 @@ light_range = 5 // A little better than the standard flashlight. light_power = 0.8 light_color = "#99ccff" - hitsound = 'sound/weapons/genhit1.ogg' + hitsound = 'sound/items/weapons/genhit1.ogg' // the desk lamps are a bit special /obj/item/flashlight/lamp @@ -428,7 +428,7 @@ if(light_on) attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' force = on_damage damtype = BURN update_brightness() @@ -455,7 +455,7 @@ name = "lit [initial(name)]" attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' force = on_damage damtype = BURN diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 91bd3040832e4..e41c346c9930d 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -59,7 +59,7 @@ return ITEM_INTERACT_BLOCKING force_proj_busy = FALSE - playsound(src,'sound/weapons/resonator_fire.ogg',50,TRUE) + playsound(src,'sound/items/weapons/resonator_fire.ogg',50,TRUE) user.visible_message(span_warning("[user] projects a forcefield!"),span_notice("You project a forcefield.")) var/obj/structure/projected_forcefield/F = new(T, src) current_fields += F @@ -124,14 +124,14 @@ /obj/structure/projected_forcefield/Destroy() visible_message(span_warning("[src] flickers and disappears!")) - playsound(src,'sound/weapons/resonator_blast.ogg',25,TRUE) + playsound(src,'sound/items/weapons/resonator_blast.ogg',25,TRUE) if(generator) generator.current_fields -= src generator = null return ..() /obj/structure/projected_forcefield/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', 80, TRUE) /obj/structure/projected_forcefield/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) if(sound_effect) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index dae54ce9e7816..03e53a87db35e 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -99,7 +99,7 @@ var/obj/item/stock_parts/attack_diode = attack_item if(crystal_lens && attack_diode.rating < 3) //only tier 3 and up are small enough to fit to_chat(user, span_warning("You try to jam \the [attack_item.name] in place, but \the [crystal_lens.name] is in the way!")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 20) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 20) if(do_after(user, 2 SECONDS, src)) var/atom/atom_to_teleport = pick(user, attack_item) if(atom_to_teleport == user) @@ -113,7 +113,7 @@ return if(!user.transferItemToLoc(attack_item, src)) return - playsound(src, 'sound/items/screwdriver.ogg', 30) + playsound(src, 'sound/items/tools/screwdriver.ogg', 30) diode = attack_item balloon_alert(user, "installed \the [diode.name]") //we have a diode now, try starting a charge sequence in case the pointer was charging when we took out the diode @@ -129,7 +129,7 @@ var/obj/item/stack/ore/bluespace_crystal/crystal_stack = attack_item if(diode && diode.rating < 3) //only lasers of tier 3 and up can house a lens to_chat(user, span_warning("You try to jam \the [crystal_stack.name] in front of the diode, but it's a bad fit!")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 20) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 20) if(do_after(user, 2 SECONDS, src)) var/atom/atom_to_teleport = pick(user, src) if(atom_to_teleport == user) @@ -148,7 +148,7 @@ if(!user.transferItemToLoc(single_crystal, src)) return crystal_lens = single_crystal - playsound(src, 'sound/items/screwdriver2.ogg', 30) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 30) balloon_alert(user, "installed \the [crystal_lens.name]") to_chat(user, span_notice("You install a [crystal_lens.name] in [src]. \ It can now be used to shine through obstacles at the cost of double the energy drain.")) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 5ab635fda482b..e3c19dfde66f3 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -223,7 +223,7 @@ if(istype(target, /obj/machinery/light)) if(replace_light(target, user) && bluespace_toggle) user.Beam(target, icon_state = "rped_upgrade", time = 0.5 SECONDS) - playsound(src, 'sound/items/pshoom.ogg', 40, 1) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, 1) return TRUE // if we are attacking a floodlight frame finish it @@ -233,7 +233,7 @@ new /obj/machinery/power/floodlight(frame.loc) if(bluespace_toggle) user.Beam(target, icon_state = "rped_upgrade", time = 0.5 SECONDS) - playsound(src, 'sound/items/pshoom.ogg', 40, 1) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, 1) to_chat(user, span_notice("You finish \the [frame] with a light tube.")) qdel(frame) return TRUE @@ -246,7 +246,7 @@ light_replaced = TRUE if(light_replaced && bluespace_toggle) user.Beam(target, icon_state = "rped_upgrade", time = 0.5 SECONDS) - playsound(src, 'sound/items/pshoom.ogg', 40, 1) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, 1) return TRUE return FALSE diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 8e29be708db6e..b9d8539562809 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -24,12 +24,12 @@ throwforce = 0 throw_range = 7 throw_speed = 3 - drop_sound = 'sound/items/handling/multitool_drop.ogg' - pickup_sound = 'sound/items/handling/multitool_pickup.ogg' + drop_sound = 'sound/items/handling/tools/multitool_drop.ogg' + pickup_sound = 'sound/items/handling/tools/multitool_pickup.ogg' custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 0.2) custom_premium_price = PAYCHECK_COMMAND * 3 toolspeed = 1 - usesound = 'sound/weapons/empty.ogg' + usesound = 'sound/items/weapons/empty.ogg' var/datum/buffer // simple machine buffer for device linkage var/mode = 0 var/apc_scanner = TRUE diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 7a9a85cc66675..cd8535e8d2823 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -154,7 +154,7 @@ // A fully locked one will do nothing, as locked is intended to be used for stuff that should never be changed if(RADIO_FREQENCY_LOCKED) balloon_alert(user, "can't override frequency lock!") - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE, SILENCED_SOUND_EXTRARANGE) return // Emagging an unlocked one will do nothing, for now diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 7303eaf873803..93a131a9b468b 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -352,7 +352,7 @@ if(isliving(talking_movable)) var/mob/living/talking_living = talking_movable if(radio_noise && !HAS_TRAIT(talking_living, TRAIT_DEAF) && talking_living.client?.prefs.read_preference(/datum/preference/toggle/radio_noise)) - SEND_SOUND(talking_living, 'sound/misc/radio_talk.ogg') + SEND_SOUND(talking_living, 'sound/items/radio/radio_talk.ogg') // All radios make an attempt to use the subspace system first signal.send_to_receivers() @@ -435,10 +435,10 @@ var/list/spans = data["spans"] if(COOLDOWN_FINISHED(src, audio_cooldown)) COOLDOWN_START(src, audio_cooldown, 0.5 SECONDS) - SEND_SOUND(holder, 'sound/misc/radio_receive.ogg') + SEND_SOUND(holder, 'sound/items/radio/radio_receive.ogg') if((SPAN_COMMAND in spans) && COOLDOWN_FINISHED(src, important_audio_cooldown)) COOLDOWN_START(src, important_audio_cooldown, 0.5 SECONDS) - SEND_SOUND(holder, 'sound/misc/radio_important.ogg') + SEND_SOUND(holder, 'sound/items/radio/radio_important.ogg') /obj/item/radio/ui_state(mob/user) return GLOB.inventory_state diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index e88b1a51187a3..342383380cf76 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -112,7 +112,7 @@ source = src, header = "Reverse bear trap armed", notify_flags = NOTIFY_CATEGORY_NOFLASH, - ghost_sound = 'sound/machines/beep.ogg', + ghost_sound = 'sound/machines/beep/beep.ogg', notify_volume = 75, ) diff --git a/code/game/objects/items/devices/scanners/autopsy_scanner.dm b/code/game/objects/items/devices/scanners/autopsy_scanner.dm index c5d33b7422656..a054b3c69d2ce 100644 --- a/code/game/objects/items/devices/scanners/autopsy_scanner.dm +++ b/code/game/objects/items/devices/scanners/autopsy_scanner.dm @@ -95,7 +95,7 @@ var/blood_type = scanned.dna.blood_type if(blood_id != /datum/reagent/blood) var/datum/reagent/reagents = GLOB.chemical_reagents_list[blood_id] - blood_type = reagents ? reagents.name : blood_id + blood_type = reagents?.name || blood_id autopsy_information += "Blood Type: [blood_type]
" autopsy_information += "Blood Volume: [scanned.blood_volume] cl ([blood_percent]%)
" @@ -108,10 +108,11 @@ for(var/datum/symptom/symptom as anything in advanced_disease.symptoms) autopsy_information += "[symptom.name] - [symptom.desc]
" - var/obj/item/paper/autopsy_report = new(user.loc) - autopsy_report.name = "Autopsy Report ([scanned.name])" + var/obj/item/paper/autopsy_report = new(user.drop_location()) + autopsy_report.name = "autopsy report of [scanned] - [station_time_timestamp()])" autopsy_report.add_raw_text(autopsy_information.Join("\n")) - autopsy_report.update_appearance(UPDATE_ICON) + autopsy_report.color = "#99ccff" + autopsy_report.update_appearance() user.put_in_hands(autopsy_report) user.balloon_alert(user, "report printed") return TRUE diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index 7374254885251..270c070d6dc5e 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -60,8 +60,6 @@ /obj/item/healthanalyzer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!isliving(interacting_with)) return NONE - if(!user.can_read(src) || user.is_blind()) - return ITEM_INTERACT_BLOCKING var/mob/living/M = interacting_with @@ -71,38 +69,45 @@ // Clumsiness/brain damage check if ((HAS_TRAIT(user, TRAIT_CLUMSY) || HAS_TRAIT(user, TRAIT_DUMB)) && prob(50)) - user.visible_message(span_warning("[user] analyzes the floor's vitals!"), \ - span_notice("You stupidly try to analyze the floor's vitals!")) - to_chat(user, "[span_info("Analyzing results for The floor:
\tOverall status: Healthy")]\ -
[span_info("Key: Suffocation/Toxin/Burn/Brute")]\ -
[span_info("\tDamage specifics: 0-0-0-0")]\ -
[span_info("Body temperature: ???")]") + var/turf/scan_turf = get_turf(user) + user.visible_message( + span_warning("[user] analyzes [scan_turf]'s vitals!"), + span_notice("You stupidly try to analyze [scan_turf]'s vitals!"), + ) + + var/floor_text = "Analyzing results for [scan_turf] ([station_time_timestamp()]):
" + floor_text += "Overall status: Unknown
" + floor_text += "Subject lacks a brain.
" + floor_text += "Body temperature: [scan_turf?.return_air()?.return_temperature() || "???"]
" + + if(user.can_read(src) && !user.is_blind()) + to_chat(user, examine_block(floor_text)) + last_scan_text = floor_text return if(ispodperson(M) && !advanced) - to_chat(user, "[M]'s biological structure is too complex for the health analyzer.") + to_chat(user, span_info("[M]'s biological structure is too complex for the health analyzer.")) return user.visible_message(span_notice("[user] analyzes [M]'s vitals.")) balloon_alert(user, "analyzing vitals") playsound(user.loc, 'sound/items/healthanalyzer.ogg', 50) + var/readability_check = user.can_read(src) && !user.is_blind() switch (scanmode) if (SCANMODE_HEALTH) - healthscan(user, M, mode, advanced) - last_scan_text = healthscan(user, M, mode, advanced, tochat = FALSE) + last_scan_text = healthscan(user, M, mode, advanced, tochat = readability_check) if (SCANMODE_WOUND) - woundscan(user, M, src) + if(readability_check) + woundscan(user, M, src) add_fingerprint(user) /obj/item/healthanalyzer/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) if(!isliving(interacting_with)) return NONE - if(!user.can_read(src) || user.is_blind()) - return ITEM_INTERACT_BLOCKING - - chemscan(user, interacting_with) + if(user.can_read(src) && !user.is_blind()) + chemscan(user, interacting_with) return ITEM_INTERACT_SUCCESS /obj/item/healthanalyzer/add_item_context( @@ -139,37 +144,35 @@ return // the final list of strings to render - var/render_list = list() + var/list/render_list = list() // Damage specifics var/oxy_loss = target.getOxyLoss() var/tox_loss = target.getToxLoss() var/fire_loss = target.getFireLoss() var/brute_loss = target.getBruteLoss() - var/mob_status = (target.stat == DEAD ? span_alert("Deceased") : "[round(target.health/target.maxHealth,0.01)*100]% healthy") + var/mob_status = (!target.appears_alive() ? span_alert("Deceased") : "[round(target.health / target.maxHealth, 0.01) * 100]% healthy") - if(HAS_TRAIT(target, TRAIT_FAKEDEATH) && !advanced) - mob_status = span_alert("Deceased") - oxy_loss = max(rand(1, 40), oxy_loss, (300 - (tox_loss + fire_loss + brute_loss))) // Random oxygen loss + if(HAS_TRAIT(target, TRAIT_FAKEDEATH) && target.stat != DEAD) + // if we don't appear to actually be in a "dead state", add fake oxyloss + if(oxy_loss + tox_loss + fire_loss + brute_loss < 200) + oxy_loss += 200 - (oxy_loss + tox_loss + fire_loss + brute_loss) + oxy_loss = clamp(oxy_loss, 0, 200) - render_list += "[span_info("Analyzing results for [target]:")]
Overall status: [mob_status]
" + render_list += "[span_info("Analyzing results for [target] ([station_time_timestamp()]):")]
Overall status: [mob_status]
" - if(ishuman(target)) - var/mob/living/carbon/human/humantarget = target - if(humantarget.undergoing_cardiac_arrest() && humantarget.stat != DEAD) - render_list += "Subject suffering from heart attack: Apply defibrillation or other electric shock immediately!
" - if(humantarget.has_reagent(/datum/reagent/inverse/technetium)) - advanced = TRUE + if(!advanced && target.has_reagent(/datum/reagent/inverse/technetium)) + advanced = TRUE - SEND_SIGNAL(target, COMSIG_LIVING_HEALTHSCAN, render_list, advanced, user, mode) + SEND_SIGNAL(target, COMSIG_LIVING_HEALTHSCAN, render_list, advanced, user, mode, tochat) // Husk detection if(HAS_TRAIT(target, TRAIT_HUSK)) if(advanced) if(HAS_TRAIT_FROM(target, TRAIT_HUSK, BURN)) - render_list += "Subject has been husked by severe burns.
" + render_list += "Subject has been husked by [conditional_tooltip("severe burns", "Tend burns and apply a de-husking agent, such as [/datum/reagent/medicine/c2/synthflesh::name].", tochat)].
" else if (HAS_TRAIT_FROM(target, TRAIT_HUSK, CHANGELING_DRAIN)) - render_list += "Subject has been husked by dessication.
" + render_list += "Subject has been husked by [conditional_tooltip("desiccation", "Irreparable. Under normal circumstances, revival can only proceed via brain transplant.", tochat)].
" else render_list += "Subject has been husked by mysterious causes.
" @@ -186,139 +189,156 @@ if(iscarbon(target)) var/mob/living/carbon/carbontarget = target - if(LAZYLEN(carbontarget.get_traumas())) - var/list/trauma_text = list() - for(var/datum/brain_trauma/trauma in carbontarget.get_traumas()) - var/trauma_desc = "" - switch(trauma.resilience) - if(TRAUMA_RESILIENCE_SURGERY) - trauma_desc += "severe " - if(TRAUMA_RESILIENCE_LOBOTOMY) - trauma_desc += "deep-rooted " - if(TRAUMA_RESILIENCE_WOUND) - trauma_desc += "fracture-derived " - if(TRAUMA_RESILIENCE_MAGIC, TRAUMA_RESILIENCE_ABSOLUTE) - trauma_desc += "permanent " - trauma_desc += trauma.scan_desc - trauma_text += trauma_desc - render_list += "Cerebral traumas detected: subject appears to be suffering from [english_list(trauma_text)].
" - if(carbontarget.quirks.len) + if(LAZYLEN(carbontarget.quirks)) render_list += "Subject Major Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MAJOR_DISABILITY, from_scan = TRUE)].
" if(advanced) render_list += "Subject Minor Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MINOR_DISABILITY, TRUE)].
" - if (HAS_TRAIT(target, TRAIT_IRRADIATED)) - render_list += "Subject is irradiated. Supply toxin healing.
" - - //Eyes and ears - if(advanced && iscarbon(target)) - var/mob/living/carbon/carbontarget = target - - // Ear status - var/obj/item/organ/internal/ears/ears = carbontarget.get_organ_slot(ORGAN_SLOT_EARS) - if(istype(ears)) - if(HAS_TRAIT_FROM(carbontarget, TRAIT_DEAF, GENETIC_MUTATION)) - render_list += "Subject is genetically deaf.
" - else if(HAS_TRAIT_FROM(carbontarget, TRAIT_DEAF, EAR_DAMAGE)) - render_list += "Subject is deaf from ear damage.
" - else if(HAS_TRAIT(carbontarget, TRAIT_DEAF)) - render_list += "Subject is deaf.
" - else - if(ears.damage) - render_list += "Subject has [ears.damage > ears.maxHealth ? "permanent ": "temporary "]hearing damage.
" - if(ears.deaf) - render_list += "Subject is [ears.damage > ears.maxHealth ? "permanently": "temporarily"] deaf.
" - - // Eye status - var/obj/item/organ/internal/eyes/eyes = carbontarget.get_organ_slot(ORGAN_SLOT_EYES) - if(istype(eyes)) - if(carbontarget.is_blind()) - render_list += "Subject is blind.
" - else if(carbontarget.is_nearsighted()) - render_list += "Subject is nearsighted.
" - // Body part damage report if(iscarbon(target)) var/mob/living/carbon/carbontarget = target - var/list/damaged = carbontarget.get_damaged_bodyparts(1,1) - if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0) - var/dmgreport = "General status:\ - \ + var/any_damage = brute_loss > 0 || fire_loss > 0 || oxy_loss > 0 || tox_loss > 0 || fire_loss > 0 + var/any_missing = length(carbontarget.bodyparts) < (carbontarget.dna?.species?.max_bodypart_count || 6) + var/any_wounded = length(carbontarget.all_wounds) + var/any_embeds = carbontarget.has_embedded_objects() + if(any_damage || (mode == SCANNER_VERBOSE && (any_missing || any_wounded || any_embeds))) + render_list += "
" + var/dmgreport = "Body status:\ + \ +
\ + \ \ \ \ \ - \ - \ - \ - \ - \ - " + \ + \ + \ + \ + \ + \ + \ + \ + " if(mode == SCANNER_VERBOSE) - for(var/obj/item/bodypart/limb as anything in damaged) - if(limb.bodytype & BODYTYPE_ROBOTIC) - dmgreport += "" - else - dmgreport += "" - dmgreport += "" - dmgreport += "" - dmgreport += "
Damage:BruteBurnToxinSuffocation
Overall:[CEILING(brute_loss,1)][CEILING(fire_loss,1)][CEILING(tox_loss,1)][CEILING(oxy_loss,1)]
Suffocation
Overall:[ceil(brute_loss)][ceil(fire_loss)][ceil(tox_loss)][ceil(oxy_loss)]
[capitalize(limb.name)]:
[capitalize(limb.plaintext_zone)]:[(limb.brute_dam > 0) ? "[CEILING(limb.brute_dam,1)]" : "0"][(limb.burn_dam > 0) ? "[CEILING(limb.burn_dam,1)]" : "0"]
" + // Follow same body zone list every time so it's consistent across all humans + for(var/zone in GLOB.all_body_zones) + var/obj/item/bodypart/limb = carbontarget.get_bodypart(zone) + if(isnull(limb)) + dmgreport += "" + dmgreport += "[capitalize(parse_zone(zone))]:" + dmgreport += "-" + dmgreport += "-" + dmgreport += "" + dmgreport += "↳ Physical trauma: [conditional_tooltip("Dismembered", "Reattach or replace surgically.", tochat)]" + continue + var/has_any_embeds = length(limb.embedded_objects) >= 1 + var/has_any_wounds = length(limb.wounds) >= 1 + var/is_damaged = limb.burn_dam > 0 || limb.brute_dam > 0 + if(!is_damaged && (zone != BODY_ZONE_CHEST || (tox_loss <= 0 && oxy_loss <= 0)) && !has_any_embeds && !has_any_wounds) + continue + dmgreport += "" + dmgreport += "[capitalize((limb.bodytype & BODYTYPE_ROBOTIC) ? limb.name : limb.plaintext_zone)]:" + dmgreport += "[limb.brute_dam > 0 ? ceil(limb.brute_dam) : "0"]" + dmgreport += "[limb.burn_dam > 0 ? ceil(limb.burn_dam) : "0"]" + if(zone == BODY_ZONE_CHEST) // tox/oxy is stored in the chest + dmgreport += "[tox_loss > 0 ? ceil(tox_loss) : "0"]" + dmgreport += "[oxy_loss > 0 ? ceil(oxy_loss) : "0"]" + dmgreport += "" + if(has_any_embeds) + var/list/embedded_names = list() + for(var/obj/item/embed as anything in limb.embedded_objects) + embedded_names[capitalize(embed.name)] += 1 + for(var/embedded_name in embedded_names) + var/displayed = embedded_name + var/embedded_amt = embedded_names[embedded_name] + if(embedded_amt > 1) + displayed = "[embedded_amt]x [embedded_name]" + dmgreport += "↳ Foreign object(s): [conditional_tooltip(displayed, "Use a hemostat to remove.", tochat)]" + if(has_any_wounds) + for(var/datum/wound/wound as anything in limb.wounds) + dmgreport += "↳ Physical trauma: [conditional_tooltip("[wound.name] ([wound.severity_text()])", wound.treat_text_short, tochat)]" + + dmgreport += "" render_list += dmgreport // tables do not need extra linebreak - for(var/obj/item/bodypart/limb as anything in carbontarget.bodyparts) - for(var/obj/item/embed as anything in limb.embedded_objects) - render_list += "Embedded object: [embed] located in \the [limb.plaintext_zone]
" if(ishuman(target)) var/mob/living/carbon/human/humantarget = target // Organ damage, missing organs - if(humantarget.organs && humantarget.organs.len) - var/render = FALSE - var/toReport = "Organs:\ - \ - \ - [advanced ? "" : ""]\ - " - - for(var/obj/item/organ/organ as anything in humantarget.organs) - var/status = organ.get_status_text(advanced) - if (status != "") + var/render = FALSE + var/toReport = "Organ status:\ + \ +
Organ:DmgStatus
\ + \ + \ + [advanced ? "" : ""]\ + \ + " + + var/list/missing_organs = list() + if(!humantarget.get_organ_slot(ORGAN_SLOT_BRAIN)) + missing_organs[ORGAN_SLOT_BRAIN] = "Brain" + if(!humantarget.needs_heart() && !humantarget.get_organ_slot(ORGAN_SLOT_HEART)) + missing_organs[ORGAN_SLOT_HEART] = "Heart" + if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOBREATH, SPECIES_TRAIT) && !isnull(humantarget.dna.species.mutantlungs) && !humantarget.get_organ_slot(ORGAN_SLOT_LUNGS)) + missing_organs[ORGAN_SLOT_LUNGS] = "Lungs" + if(!HAS_TRAIT_FROM(humantarget, TRAIT_LIVERLESS_METABOLISM, SPECIES_TRAIT) && !isnull(humantarget.dna.species.mutantliver) && !humantarget.get_organ_slot(ORGAN_SLOT_LIVER)) + missing_organs[ORGAN_SLOT_LIVER] = "Liver" + if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOHUNGER, SPECIES_TRAIT) && !isnull(humantarget.dna.species.mutantstomach) && !humantarget.get_organ_slot(ORGAN_SLOT_STOMACH)) + missing_organs[ORGAN_SLOT_STOMACH] ="Stomach" + if(!isnull(humantarget.dna.species.mutanttongue) && !humantarget.get_organ_slot(ORGAN_SLOT_TONGUE)) + missing_organs[ORGAN_SLOT_TONGUE] = "Tongue" + if(!isnull(humantarget.dna.species.mutantears) && !humantarget.get_organ_slot(ORGAN_SLOT_EARS)) + missing_organs[ORGAN_SLOT_EARS] = "Ears" + if(!isnull(humantarget.dna.species.mutantears) && !humantarget.get_organ_slot(ORGAN_SLOT_EYES)) + missing_organs[ORGAN_SLOT_EYES] = "Eyes" + + // Follow same order as in the organ_process_order so it's consistent across all humans + for(var/sorted_slot in GLOB.organ_process_order) + var/obj/item/organ/organ = humantarget.get_organ_slot(sorted_slot) + if(isnull(organ)) + if(missing_organs[sorted_slot]) render = TRUE - toReport += "\ - [advanced ? "" : ""]\ - " - - var/missing_organs = list() - if(!humantarget.get_organ_slot(ORGAN_SLOT_BRAIN)) - missing_organs += "brain" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOBLOOD, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_HEART)) - missing_organs += "heart" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOBREATH, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_LUNGS)) - missing_organs += "lungs" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_LIVERLESS_METABOLISM, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_LIVER)) - missing_organs += "liver" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOHUNGER, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_STOMACH)) - missing_organs += "stomach" - if(!humantarget.get_organ_slot(ORGAN_SLOT_TONGUE)) - missing_organs += "tongue" - if(!humantarget.get_organ_slot(ORGAN_SLOT_EARS)) - missing_organs += "ears" - if(!humantarget.get_organ_slot(ORGAN_SLOT_EYES)) - missing_organs += "eyes" - - if(length(missing_organs)) + toReport += "\ + [advanced ? "" : ""]\ + " + continue + if(mode != SCANNER_VERBOSE && !organ.show_on_condensed_scans()) + continue + var/status = organ.get_status_text(advanced, tochat) + var/appendix = organ.get_status_appendix(advanced, tochat) + if(status || appendix) + status ||= "OK" // otherwise flawless organs have no status reported by default render = TRUE - for(var/organ in missing_organs) - toReport += "\ - [advanced ? "" : ""]\ - " + toReport += "\ + \ + [advanced ? "" : ""]\ + \ + " + if(appendix) + toReport += "" + + if(render) + render_list += "
" + render_list += toReport + "
Organ:DmgStatus
[organ.name]:[CEILING(organ.damage,1)][status]
[missing_organs[sorted_slot]]:-Missing
[organ]:["-"]["Missing"]
[capitalize(organ.name)]:[organ.damage > 0 ? ceil(organ.damage) : "0"][status]
↳ [appendix]
" // tables do not need extra linebreak + + // Cybernetics + var/list/cyberimps + for(var/obj/item/organ/internal/cyberimp/cyberimp in humantarget.organs) + if(IS_ROBOTIC_ORGAN(cyberimp) && !(cyberimp.organ_flags & ORGAN_HIDDEN)) + LAZYADD(cyberimps, cyberimp.examine_title(user)) + if(LAZYLEN(cyberimps)) + if(!render) + render_list += "
" + render_list += "Detected cybernetic modifications:
" + render_list += "[english_list(cyberimps, and_text = ", and ")]
" - if(render) - render_list += toReport + "" // tables do not need extra linebreak + render_list += "
" //Genetic stability - if(advanced && humantarget.has_dna()) + if(advanced && humantarget.has_dna() && humantarget.dna.stability != initial(humantarget.dna.stability)) render_list += "Genetic Stability: [humantarget.dna.stability]%.
" // Hulk and body temperature @@ -342,51 +362,22 @@ else render_list += "[body_temperature_message]
" - // Time of death - if(target.station_timestamp_timeofdeath && (target.stat == DEAD || ((HAS_TRAIT(target, TRAIT_FAKEDEATH)) && !advanced))) - render_list += "Time of Death: [target.station_timestamp_timeofdeath]
" - var/tdelta = round(world.time - target.timeofdeath) - render_list += "Subject died [DisplayTimeText(tdelta)] ago.
" - - // Wounds - if(iscarbon(target)) - var/mob/living/carbon/carbontarget = target - var/list/wounded_parts = carbontarget.get_wounded_bodyparts() - for(var/i in wounded_parts) - var/obj/item/bodypart/wounded_part = i - render_list += "Physical trauma[LAZYLEN(wounded_part.wounds) > 1 ? "s" : ""] detected in [wounded_part.name]" - for(var/k in wounded_part.wounds) - var/datum/wound/W = k - render_list += "
[W.name] ([W.severity_text()])
Recommended treatment: [W.treat_text]
" // less lines than in woundscan() so we don't overload people trying to get basic med info - render_list += "
" - - //Diseases - for(var/datum/disease/disease as anything in target.diseases) - if(!(disease.visibility_flags & HIDDEN_SCANNER)) - render_list += "Warning: [disease.form] detected
\ -
Name: [disease.name].
Type: [disease.spread_text].
Stage: [disease.stage]/[disease.max_stages].
Possible Cure: [disease.cure_text]
\ -
" // divs do not need extra linebreak - // Blood Level - if(target.has_dna()) - var/mob/living/carbon/carbontarget = target - var/blood_id = carbontarget.get_blood_id() - if(blood_id) - if(carbontarget.is_bleeding()) - render_list += "Subject is bleeding!
" - var/blood_percent = round((carbontarget.blood_volume / BLOOD_VOLUME_NORMAL) * 100) - var/blood_type = carbontarget.dna.blood_type - if(blood_id != /datum/reagent/blood) // special blood substance - var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] - blood_type = R ? R.name : blood_id - if(carbontarget.blood_volume <= BLOOD_VOLUME_SAFE && carbontarget.blood_volume > BLOOD_VOLUME_OKAY) - render_list += "Blood level: LOW [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]
" - else if(carbontarget.blood_volume <= BLOOD_VOLUME_OKAY) - render_list += "Blood level: CRITICAL [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]
" - else - render_list += "Blood level: [blood_percent]%, [carbontarget.blood_volume] cl, type: [blood_type]
" + var/mob/living/carbon/carbontarget = target + var/blood_id = carbontarget.get_blood_id() + if(blood_id) + var/blood_percent = round((carbontarget.blood_volume / BLOOD_VOLUME_NORMAL) * 100) + var/blood_type = carbontarget.dna.blood_type + if(blood_id != /datum/reagent/blood) // special blood substance + var/datum/reagent/real_reagent = GLOB.chemical_reagents_list[blood_id] + blood_type = real_reagent?.name || blood_id + if(carbontarget.blood_volume <= BLOOD_VOLUME_SAFE && carbontarget.blood_volume > BLOOD_VOLUME_OKAY) + render_list += "Blood level: LOW [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]
" + else if(carbontarget.blood_volume <= BLOOD_VOLUME_OKAY) + render_list += "Blood level: CRITICAL [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]
" + else + render_list += "Blood level: [blood_percent]%, [carbontarget.blood_volume] cl, type: [blood_type]
" - // Blood Alcohol Content var/blood_alcohol_content = target.get_blood_alcohol_content() if(blood_alcohol_content > 0) if(blood_alcohol_content >= 0.24) @@ -394,22 +385,33 @@ else render_list += "Blood alcohol content: [blood_alcohol_content]%
" - // Cybernetics - if(iscarbon(target)) - var/mob/living/carbon/carbontarget = target - var/cyberimp_detect - for(var/obj/item/organ/internal/cyberimp/cyberimp in carbontarget.organs) - if(IS_ROBOTIC_ORGAN(cyberimp) && !(cyberimp.organ_flags & ORGAN_HIDDEN)) - cyberimp_detect += "[!cyberimp_detect ? "[cyberimp.examine_title(user)]" : ", [cyberimp.examine_title(user)]"]" - if(cyberimp_detect) - render_list += "Detected cybernetic modifications:
" - render_list += "[cyberimp_detect]
" - // we handled the last
so we don't need handholding + //Diseases + var/disease_hr = FALSE + for(var/datum/disease/disease as anything in target.diseases) + if(disease.visibility_flags & HIDDEN_SCANNER) + continue + if(!disease_hr) + render_list += "
" + disease_hr = TRUE + render_list += "\ + Warning: [disease.form] detected
\ +
\ + Name: [disease.name].
\ + Type: [disease.spread_text].
\ + Stage: [disease.stage]/[disease.max_stages].
\ + Possible Cure: [disease.cure_text]
\ +
" + // Time of death + if(target.station_timestamp_timeofdeath && !target.appears_alive()) + render_list += "
" + render_list += "Time of Death: [target.station_timestamp_timeofdeath]
" + render_list += "Subject died [DisplayTimeText(round(world.time - target.timeofdeath))] ago.
" + + . = jointext(render_list, "") if(tochat) - to_chat(user, examine_block(jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) - else - return(jointext(render_list, "")) + to_chat(user, examine_block(.), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) + return . /obj/item/healthanalyzer/click_ctrl_shift(mob/user) . = ..() @@ -426,9 +428,9 @@ /obj/item/healthanalyzer/proc/print_report(mob/user) var/obj/item/paper/report_paper = new(get_turf(src)) - report_paper.color = COLOR_STARLIGHT - report_paper.name = "Health scan report" - var/report_text = "
Health scan report. Time of scan: [station_time_timestamp()]


" + report_paper.color = "#99ccff" + report_paper.name = "health scan report - [station_time_timestamp()]" + var/report_text = "
Health scan report. Time of retrieval: [station_time_timestamp()]

" report_text += last_scan_text report_paper.add_raw_text(report_text) @@ -560,7 +562,7 @@ if(simple_scan) var/obj/item/healthanalyzer/simple/simple_scanner = scanner simple_scanner.show_emotion(AID_EMOTION_WARN) - playsound(simple_scanner, 'sound/machines/twobeep.ogg', 50, FALSE) + playsound(simple_scanner, 'sound/machines/beep/twobeep.ogg', 50, FALSE) /obj/item/healthanalyzer/simple @@ -598,7 +600,7 @@ show_emotion(AID_EMOTION_ANGRY) /obj/item/healthanalyzer/simple/proc/violence(mob/user) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) if(isliving(user)) var/mob/living/L = user to_chat(L, span_warning("[src] makes a disappointed buzz and pricks your finger for being greedy. Ow!")) @@ -623,7 +625,7 @@ ) if(!iscarbon(interacting_with)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) to_chat(user, span_notice("[src] makes a sad buzz and briefly displays an unhappy face, indicating it can't scan [interacting_with].")) show_emotion(AI_EMOTION_SAD) return ITEM_INTERACT_BLOCKING @@ -715,7 +717,7 @@ else to_chat(user, span_notice(render.Join(""))) scanner.emotion = AID_EMOTION_WARN - playsound(scanner, 'sound/machines/twobeep.ogg', 50, FALSE) + playsound(scanner, 'sound/machines/beep/twobeep.ogg', 50, FALSE) #undef SCANMODE_HEALTH #undef SCANMODE_WOUND diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm index fc5a9d39f9742..da597fa595d63 100644 --- a/code/game/objects/items/devices/swapper.dm +++ b/code/game/objects/items/devices/swapper.dm @@ -51,9 +51,9 @@ if(QDELETED(linked_swapper)) to_chat(user, span_warning("[src] is not linked with another swapper.")) return - playsound(src, 'sound/weapons/flash.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 25, TRUE) to_chat(user, span_notice("You activate [src].")) - playsound(linked_swapper, 'sound/weapons/flash.ogg', 25, TRUE) + playsound(linked_swapper, 'sound/items/weapons/flash.ogg', 25, TRUE) if(ismob(linked_swapper.loc)) var/mob/holder = linked_swapper.loc to_chat(holder, span_notice("[linked_swapper] starts buzzing.")) diff --git a/code/game/objects/items/devices/table_clock.dm b/code/game/objects/items/devices/table_clock.dm index 37c1098759e98..d9c5e44fcf76c 100644 --- a/code/game/objects/items/devices/table_clock.dm +++ b/code/game/objects/items/devices/table_clock.dm @@ -37,7 +37,7 @@ . = ..() if(attacking_item.force < 5 || broken) return - if(break_clock(break_sound = 'sound/magic/clockwork/ark_activation.ogg')) + if(break_clock(break_sound = 'sound/effects/magic/clockwork/ark_activation.ogg')) user.visible_message( span_warning("[user] smashes \the [src] so hard it stops breaking!"), span_boldannounce("I can't stand this stupid machine anymore! Shut up already!"), diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index ee4a61b935157..a2fac2b50a44f 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -380,7 +380,7 @@ effective or pretty fucking useless. COMBAT_MESSAGE_RANGE, ) - playsound(src, 'sound/items/drill_use.ogg', 80, TRUE, -1) + playsound(src, 'sound/items/tools/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/dice.dm b/code/game/objects/items/dice.dm index 64ce9803657bb..aa98d325a7d46 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -507,8 +507,8 @@ to_summon, get_turf(cast_on), precision = 1, - asoundin = 'sound/magic/wand_teleport.ogg', - asoundout = 'sound/magic/wand_teleport.ogg', + asoundin = 'sound/effects/magic/wand_teleport.ogg', + asoundout = 'sound/effects/magic/wand_teleport.ogg', channel = TELEPORT_CHANNEL_MAGIC, ) diff --git a/code/game/objects/items/dna_probe.dm b/code/game/objects/items/dna_probe.dm index 57718ca217e0b..9e3be2dce40c4 100644 --- a/code/game/objects/items/dna_probe.dm +++ b/code/game/objects/items/dna_probe.dm @@ -48,7 +48,7 @@ if(!our_vault) dna_vault_ref = WEAKREF(target)//linking the dna vault with the probe balloon_alert(user, "vault linked") - playsound(src, 'sound/machines/terminal_success.ogg', 50) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 50) return TRUE return FALSE @@ -70,14 +70,14 @@ target.animal_dna += stored_dna_animal stored_dna_animal.Cut() target.check_goal() - playsound(target, 'sound/misc/compiler-stage1.ogg', 50) + playsound(target, 'sound/machines/compiler/compiler-stage1.ogg', 50) to_chat(user, span_notice("[uploaded] new datapoints uploaded.")) return uploaded /obj/item/dna_probe/proc/scan_dna(atom/target, mob/user) var/obj/machinery/dna_vault/our_vault = dna_vault_ref?.resolve() if(!our_vault) - playsound(user, 'sound/machines/buzz-sigh.ogg', 50) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 50) balloon_alert(user, "need database!") return if(istype(target, /obj/machinery/hydroponics)) @@ -94,7 +94,7 @@ to_chat(user, span_alert("Plant needs to be ready to harvest to perform full data scan.")) //Because space dna is actually magic return stored_dna_plants[hydro_tray.myseed.type] = TRUE - playsound(src, 'sound/misc/compiler-stage2.ogg', 50) + playsound(src, 'sound/machines/compiler/compiler-stage2.ogg', 50) balloon_alert(user, "data added") return TRUE else if(ishuman(target)) @@ -109,7 +109,7 @@ to_chat(user, span_alert("No compatible DNA detected.")) return . stored_dna_human[human_target.dna.unique_identity] = TRUE - playsound(src, 'sound/misc/compiler-stage2.ogg', 50) + playsound(src, 'sound/machines/compiler/compiler-stage2.ogg', 50) balloon_alert(user, "data added") return TRUE @@ -131,7 +131,7 @@ to_chat(user, span_alert("No compatible DNA detected.")) return . stored_dna_animal[living_target.type] = TRUE - playsound(src, 'sound/misc/compiler-stage2.ogg', 50) + playsound(src, 'sound/machines/compiler/compiler-stage2.ogg', 50) balloon_alert(user, "data added") return TRUE @@ -162,7 +162,7 @@ /obj/item/dna_probe/carp_scanner/scan_dna(atom/target, mob/user) if(istype(target, /mob/living/basic/carp)) carp_dna_loaded = TRUE - playsound(src, 'sound/misc/compiler-stage2.ogg', 50) + playsound(src, 'sound/machines/compiler/compiler-stage2.ogg', 50) balloon_alert(user, "dna scanned") else return ..() diff --git a/code/game/objects/items/door_seal.dm b/code/game/objects/items/door_seal.dm index d3e80cdf16de1..a3189c94cfb00 100644 --- a/code/game/objects/items/door_seal.dm +++ b/code/game/objects/items/door_seal.dm @@ -21,6 +21,6 @@ /obj/item/door_seal/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is sealing [user.p_them()]self off from the world with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/jaws_pry.ogg', 30, TRUE) + playsound(src, 'sound/items/tools/jaws_pry.ogg', 30, TRUE) return BRUTELOSS diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index 86b99e8c47e4e..b25765a302443 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -24,7 +24,7 @@ attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") block_chance = 75 - block_sound = 'sound/weapons/block_blade.ogg' + block_sound = 'sound/items/weapons/block_blade.ogg' max_integrity = 200 armor_type = /datum/armor/item_dualsaber resistance_flags = FIRE_PROOF @@ -47,8 +47,8 @@ AddComponent(/datum/component/two_handed, \ force_unwielded = force, \ force_wielded = two_hand_force, \ - wieldsound = 'sound/weapons/saberon.ogg', \ - unwieldsound = 'sound/weapons/saberoff.ogg', \ + wieldsound = 'sound/items/weapons/saberon.ogg', \ + unwieldsound = 'sound/items/weapons/saberoff.ogg', \ wield_callback = CALLBACK(src, PROC_REF(on_wield)), \ unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \ ) @@ -60,7 +60,7 @@ to_chat(user, span_warning("You lack the grace to wield this!")) return COMPONENT_TWOHANDED_BLOCK_WIELD update_weight_class(w_class_on) - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' START_PROCESSING(SSobj, src) set_light_on(TRUE) diff --git a/code/game/objects/items/emags.dm b/code/game/objects/items/emags.dm index f854ba1b90a0c..2adfeb585ae5f 100644 --- a/code/game/objects/items/emags.dm +++ b/code/game/objects/items/emags.dm @@ -183,7 +183,7 @@ /obj/item/card/emag/doorjack/proc/recharge(mob/user) charges = min(charges+1, max_charges) - playsound(src,'sound/machines/twobeep.ogg',10,TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) + playsound(src,'sound/machines/beep/twobeep.ogg',10,TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) charge_timers.Remove(charge_timers[1]) /obj/item/card/emag/doorjack/examine(mob/user) diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index c542048b49d98..9c4192116a003 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -5,7 +5,7 @@ icon_state = "fire_extinguisher0" worn_icon_state = "fire_extinguisher" inhand_icon_state = "fire_extinguisher" - hitsound = 'sound/weapons/smash.ogg' + hitsound = 'sound/items/weapons/smash.ogg' obj_flags = CONDUCTS_ELECTRICITY throwforce = 10 w_class = WEIGHT_CLASS_NORMAL @@ -240,7 +240,7 @@ var/movementdirection = REVERSE_DIR(direction) addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection), 0.1 SECONDS) else - user.newtonian_move(REVERSE_DIR(direction)) + user.newtonian_move(dir2angle(REVERSE_DIR(direction))) //Get all the turfs that can be shot at var/turf/T = get_turf(interacting_with) diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm index 8a8f26b2c8995..265a05cfac74a 100644 --- a/code/game/objects/items/fireaxe.dm +++ b/code/game/objects/items/fireaxe.dm @@ -17,7 +17,7 @@ slot_flags = ITEM_SLOT_BACK attack_verb_continuous = list("attacks", "chops", "cleaves", "tears", "lacerates", "cuts") attack_verb_simple = list("attack", "chop", "cleave", "tear", "lacerate", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED armor_type = /datum/armor/item_fireaxe resistance_flags = FIRE_PROOF @@ -83,7 +83,7 @@ demolition_mod = 2 tool_behaviour = TOOL_CROWBAR toolspeed = 1 - usesound = 'sound/items/crowbar.ogg' + usesound = 'sound/items/tools/crowbar.ogg' //boarding axe /obj/item/fireaxe/boardingaxe diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index ad03fe9ab4f10..cd41859307efb 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -32,8 +32,8 @@ var/create_full = FALSE var/create_with_tank = FALSE var/igniter_type = /obj/item/assembly/igniter - var/acti_sound = 'sound/items/welderactivate.ogg' - var/deac_sound = 'sound/items/welderdeactivate.ogg' + var/acti_sound = 'sound/items/tools/welderactivate.ogg' + var/deac_sound = 'sound/items/tools/welderdeactivate.ogg' /obj/item/flamethrower/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/food/bread.dm b/code/game/objects/items/food/bread.dm index 0f95aac6d8528..48e7a2a21b1ae 100644 --- a/code/game/objects/items/food/bread.dm +++ b/code/game/objects/items/food/bread.dm @@ -384,7 +384,7 @@ ADD_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND, SWORDPLAY_TRAIT) attack_verb_continuous = list("slashes", "cuts") attack_verb_simple = list("slash", "cut") - hitsound = 'sound/weapons/rapierhit.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' fake_swordplay = TRUE RegisterSignal(src, COMSIG_ITEM_EQUIPPED, PROC_REF(on_sword_equipped)) @@ -418,7 +418,7 @@ /// Deadly bread used by a mime /obj/item/food/baguette/combat - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED /// Force when wielded as a sword by a mime var/active_force = 20 diff --git a/code/game/objects/items/food/burgers.dm b/code/game/objects/items/food/burgers.dm index eb73f4736b1c3..db493b341d16a 100644 --- a/code/game/objects/items/food/burgers.dm +++ b/code/game/objects/items/food/burgers.dm @@ -255,7 +255,7 @@ var/obj/machinery/light/light = locate(/obj/machinery/light) in view(4, src) light?.flicker() if(62 to 64) - playsound(loc, pick('sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg'), 50, TRUE, ignore_walls = FALSE) + playsound(loc, pick('sound/effects/hallucinations/i_see_you1.ogg', 'sound/effects/hallucinations/i_see_you2.ogg'), 50, TRUE, ignore_walls = FALSE) if(61) visible_message("[src] spews out a glob of ectoplasm!") new /obj/effect/decal/cleanable/greenglow/ecto(loc) diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm index ec3e0a0390caa..b161410bc3f6f 100644 --- a/code/game/objects/items/food/cake.dm +++ b/code/game/objects/items/food/cake.dm @@ -267,7 +267,7 @@ desc = "Just enough calories for a whole nuclear operative squad." icon_state = "energycake" force = 5 - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' food_reagents = list( /datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/sprinkles = 10, @@ -285,7 +285,7 @@ /obj/item/food/cake/birthday/energy/proc/energy_bite(mob/living/user) to_chat(user, "As you eat the cake, you accidentally hurt yourself on the embedded energy sword!") user.apply_damage(30, BRUTE, BODY_ZONE_HEAD) - playsound(user, 'sound/weapons/blade1.ogg', 5, TRUE) + playsound(user, 'sound/items/weapons/blade1.ogg', 5, TRUE) /obj/item/food/cake/birthday/energy/attack(mob/living/target_mob, mob/living/user) . = ..() @@ -298,7 +298,7 @@ desc = "For the traitor on the go." icon_state = "energycakeslice" force = 2 - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' food_reagents = list( /datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sprinkles = 2, @@ -325,7 +325,7 @@ if(eater != feeder) log_combat(feeder, eater, "fed an energy cake to", src) eater.apply_damage(18, BRUTE, BODY_ZONE_HEAD) - playsound(eater, 'sound/weapons/blade1.ogg', 5, TRUE) + playsound(eater, 'sound/items/weapons/blade1.ogg', 5, TRUE) /obj/item/food/cake/apple name = "apple cake" diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm index bcc61e721e211..d731d8c4978dc 100644 --- a/code/game/objects/items/food/egg.dm +++ b/code/game/objects/items/food/egg.dm @@ -340,4 +340,5 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) ) tastes = list("custard" = 1) foodtypes = MEAT | VEGETABLES + venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index a619be72062af..9bda586b2693f 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -290,6 +290,7 @@ tastes = list("rice and meat" = 4, "lettuce" = 2, "soy sauce" = 2) trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL + venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/fish_poke @@ -306,6 +307,7 @@ tastes = list("rice and fish" = 4, "lettuce" = 2, "soy sauce" = 2) trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL + venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_4 ////////////////////////////////////////////MEATS AND ALIKE//////////////////////////////////////////// @@ -752,13 +754,22 @@ w_class = WEIGHT_CLASS_TINY venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_1 + var/meat_source = "\"chicken\"" /obj/item/food/nugget/Initialize(mapload) . = ..() var/shape = pick("lump", "star", "lizard", "corgi") - desc = "A \"chicken\" nugget vaguely shaped like a [shape]." + desc = "A [meat_source] nugget vaguely shaped like a [shape]." icon_state = "nugget_[shape]" +///subtype harvested from fish caught from, you guess it, the deepfryer +/obj/item/food/nugget/fish + name = "fish nugget" + tastes = list("fried fish" = 1) + foodtypes = MEAT|SEAFOOD|FRIED + venue_value = FOOD_PRICE_NORMAL + meat_source = "fish" + /obj/item/food/pigblanket name = "pig in a blanket" desc = "A tiny sausage wrapped in a flakey, buttery roll. Free this pig from its blanket prison by eating it." diff --git a/code/game/objects/items/food/mexican.dm b/code/game/objects/items/food/mexican.dm index fa66db1450c8f..3dc6adc107962 100644 --- a/code/game/objects/items/food/mexican.dm +++ b/code/game/objects/items/food/mexican.dm @@ -124,6 +124,7 @@ tastes = list("nachos" = 2, "hot pepper" = 1) foodtypes = VEGETABLES | FRIED | DAIRY w_class = WEIGHT_CLASS_SMALL + venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/taco diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index 54ec5ce019012..bfd26f534de23 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -328,7 +328,7 @@ throwforce = 15 block_chance = 55 armour_penetration = 80 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' wound_bonus = -50 attack_verb_continuous = list("slaps", "slathers") attack_verb_simple = list("slap", "slather") diff --git a/code/game/objects/items/food/pancakes.dm b/code/game/objects/items/food/pancakes.dm index 52829ab4c3acd..488ba1e5eb5ad 100644 --- a/code/game/objects/items/food/pancakes.dm +++ b/code/game/objects/items/food/pancakes.dm @@ -52,7 +52,7 @@ /obj/item/food/pancakes/raw/examine(mob/user) . = ..() if(name == initial(name)) - . += "You can modify the pancake by adding blueberries or chocolate before finishing the griddle." + . += span_notice("You can modify the pancake by adding blueberries or chocolate before finishing the griddle.") /obj/item/food/pancakes/blueberry name = "blueberry pancake" diff --git a/code/game/objects/items/food/sandwichtoast.dm b/code/game/objects/items/food/sandwichtoast.dm index 47a7b563e0895..e63127a6a219d 100644 --- a/code/game/objects/items/food/sandwichtoast.dm +++ b/code/game/objects/items/food/sandwichtoast.dm @@ -41,6 +41,7 @@ /datum/reagent/carbon = 4, ) tastes = list("toast" = 2, "cheese" = 3, "butter" = 1) + venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/jelly diff --git a/code/game/objects/items/frog_statue.dm b/code/game/objects/items/frog_statue.dm index e2477d2179aca..d1f65dc4b2ad5 100644 --- a/code/game/objects/items/frog_statue.dm +++ b/code/game/objects/items/frog_statue.dm @@ -76,7 +76,7 @@ SIGNAL_HANDLER contained_frog = null - playsound(src, 'sound/magic/demon_dies.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/demon_dies.ogg', 50, TRUE) UnregisterSignal(source, COMSIG_QDELETING) /obj/item/frog_statue/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) diff --git a/code/game/objects/items/granters/_granters.dm b/code/game/objects/items/granters/_granters.dm index b205a1f0ffa64..bfdb2013cfdac 100644 --- a/code/game/objects/items/granters/_granters.dm +++ b/code/game/objects/items/granters/_granters.dm @@ -18,9 +18,9 @@ var/reading_time = 5 SECONDS /// The sounds played as the user's reading the book. var/list/book_sounds = list( - 'sound/effects/pageturn1.ogg', - 'sound/effects/pageturn2.ogg', - 'sound/effects/pageturn3.ogg', + 'sound/effects/page_turn/pageturn1.ogg', + 'sound/effects/page_turn/pageturn2.ogg', + 'sound/effects/page_turn/pageturn3.ogg', ) /obj/item/book/granter/attack_self(mob/living/user) diff --git a/code/game/objects/items/granters/martial_arts/cqc.dm b/code/game/objects/items/granters/martial_arts/cqc.dm index b2191997586ba..7d3f7f2ef9e26 100644 --- a/code/game/objects/items/granters/martial_arts/cqc.dm +++ b/code/game/objects/items/granters/martial_arts/cqc.dm @@ -3,7 +3,7 @@ name = "old manual" martial_name = "close quarters combat" desc = "A small, black manual. There are drawn instructions of tactical hand-to-hand combat." - greet = "You've mastered the basics of CQC." + greet = span_boldannounce("You've mastered the basics of CQC.") icon_state = "cqcmanual" remarks = list( "Kick... Slam...", @@ -22,7 +22,7 @@ /obj/item/book/granter/martial/cqc/recoil(mob/living/user) to_chat(user, span_warning("[src] explodes!")) - playsound(src,'sound/effects/explosion1.ogg',40,TRUE) + playsound(src,'sound/effects/explosion/explosion1.ogg',40,TRUE) user.flash_act(1, 1) user.adjustBruteLoss(6) user.adjustFireLoss(6) diff --git a/code/game/objects/items/granters/martial_arts/plasma_fist.dm b/code/game/objects/items/granters/martial_arts/plasma_fist.dm index dab85637da5b2..22b6b4aefa18e 100644 --- a/code/game/objects/items/granters/martial_arts/plasma_fist.dm +++ b/code/game/objects/items/granters/martial_arts/plasma_fist.dm @@ -3,8 +3,8 @@ name = "frayed scroll" martial_name = "plasma fist" desc = "An aged and frayed scrap of paper written in shifting runes. There are hand-drawn illustrations of pugilism." - greet = "You have learned the ancient martial art of Plasma Fist. Your combos are extremely hard to pull off, but include some of the most deadly moves ever seen including \ - the plasma fist, which when pulled off will make someone violently explode." + greet = span_boldannounce("You have learned the ancient martial art of Plasma Fist. Your combos are extremely hard to pull off, but include some of the most deadly moves ever seen including \ + the plasma fist, which when pulled off will make someone violently explode.") icon = 'icons/obj/scrolls.dmi' icon_state ="plasmafist" remarks = list( diff --git a/code/game/objects/items/granters/martial_arts/sleeping_carp.dm b/code/game/objects/items/granters/martial_arts/sleeping_carp.dm index 3c66ce8affa15..88123439725f0 100644 --- a/code/game/objects/items/granters/martial_arts/sleeping_carp.dm +++ b/code/game/objects/items/granters/martial_arts/sleeping_carp.dm @@ -3,9 +3,9 @@ name = "mysterious scroll" martial_name = "sleeping carp" desc = "A scroll filled with strange markings. It seems to be drawings of some sort of martial art." - greet = "You have learned the ancient martial art of the Sleeping Carp! Your hand-to-hand combat has become much more effective, and you are now able to deflect any projectiles \ + greet = span_sciradio("You have learned the ancient martial art of the Sleeping Carp! Your hand-to-hand combat has become much more effective, and you are now able to deflect any projectiles \ directed toward you while in Combat Mode. Your body has also hardened itself, granting extra protection against lasting wounds that would otherwise mount during extended combat. \ - However, you are also unable to use any ranged weaponry. You can learn more about your newfound art by using the Recall Teachings verb in the Sleeping Carp tab." + However, you are also unable to use any ranged weaponry. You can learn more about your newfound art by using the Recall Teachings verb in the Sleeping Carp tab.") icon = 'icons/obj/scrolls.dmi' icon_state = "sleepingcarp" worn_icon_state = "scroll" diff --git a/code/game/objects/items/grenades/_grenade.dm b/code/game/objects/items/grenades/_grenade.dm index cbf604db63d0d..780311fa4d149 100644 --- a/code/game/objects/items/grenades/_grenade.dm +++ b/code/game/objects/items/grenades/_grenade.dm @@ -17,8 +17,8 @@ obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BELT max_integrity = 40 - pickup_sound = 'sound/items/grenade_pick_up.ogg' - drop_sound = 'sound/items/grenade_drop.ogg' + pickup_sound = 'sound/items/handling/grenade/grenade_pick_up.ogg' + drop_sound = 'sound/items/handling/grenade/grenade_drop.ogg' sound_vary = TRUE /// Bitfields which prevent the grenade from detonating if set. Includes ([GRENADE_DUD]|[GRENADE_USED]) var/dud_flags = NONE @@ -155,7 +155,7 @@ if(shrapnel_type && shrapnel_radius) shrapnel_initialized = TRUE AddComponent(/datum/component/pellet_cloud, projectile_type = shrapnel_type, magnitude = shrapnel_radius) - playsound(src, 'sound/weapons/armbomb.ogg', volume, TRUE) + playsound(src, 'sound/items/weapons/armbomb.ogg', volume, TRUE) if(istype(user)) user.add_mob_memory(/datum/memory/bomb_planted, antagonist = src) active = TRUE diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 5aadc9fbb3f23..c193b9ab73b9c 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -234,7 +234,7 @@ active = TRUE update_icon_state() - playsound(src, 'sound/weapons/armbomb.ogg', volume, TRUE) + playsound(src, 'sound/items/weapons/armbomb.ogg', volume, TRUE) if(landminemode) landminemode.activate() return diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index b27285e07861c..fe5666267e07f 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -13,7 +13,7 @@ var/base_state = "clusterbang" var/payload = /obj/item/grenade/flashbang/cluster var/payload_spawner = /obj/effect/payload_spawner - var/prime_sound = 'sound/weapons/armbomb.ogg' + var/prime_sound = 'sound/items/weapons/armbomb.ogg' var/min_spawned = 4 var/max_spawned = 8 var/segment_chance = 35 @@ -207,7 +207,7 @@ icon_state = "slimebang" base_state = "slimebang" payload_spawner = /obj/effect/payload_spawner/random_slime - prime_sound = 'sound/effects/bubbles.ogg' + prime_sound = 'sound/effects/bubbles/bubbles.ogg' /obj/item/grenade/clusterbuster/slime/volatile payload_spawner = /obj/effect/payload_spawner/random_slime/volatile diff --git a/code/game/objects/items/grenades/festive.dm b/code/game/objects/items/grenades/festive.dm index e9acdd6cfd631..87c8e554213bc 100644 --- a/code/game/objects/items/grenades/festive.dm +++ b/code/game/objects/items/grenades/festive.dm @@ -29,7 +29,7 @@ lit = TRUE icon_state = "sparkler_on" force = 6 - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' name = "lit [initial(name)]" attack_verb_continuous = list("burns") attack_verb_simple = list("burn") @@ -92,7 +92,7 @@ if(det_time) det_time -= 10 to_chat(user, span_notice("You shorten the fuse of [src] with [item].")) - playsound(src, 'sound/items/wirecutter.ogg', 20, TRUE) + playsound(src, 'sound/items/tools/wirecutter.ogg', 20, TRUE) icon_state = initial(icon_state) + "_[det_time]" update_appearance() else diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 6817610bf76e7..c83801d81fc53 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -23,7 +23,7 @@ if(!flashbang_turf) return do_sparks(rand(5, 9), FALSE, src) - playsound(flashbang_turf, 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9) + playsound(flashbang_turf, 'sound/items/weapons/flashbang.ogg', 100, TRUE, 8, 0.9) new /obj/effect/dummy/lighting_obj (flashbang_turf, flashbang_range + 2, 4, COLOR_WHITE, 2) for(var/mob/living/living_mob in get_hearers_in_view(flashbang_range, flashbang_turf)) bang(get_turf(living_mob), living_mob) @@ -91,7 +91,7 @@ if(!flashbang_turf) return do_sparks(rand(5, 9), FALSE, src) - playsound(flashbang_turf, 'sound/weapons/flashbang.ogg', 50, TRUE, 8, 0.9) + playsound(flashbang_turf, 'sound/items/weapons/flashbang.ogg', 50, TRUE, 8, 0.9) new /obj/effect/dummy/lighting_obj (flashbang_turf, flashbang_range + 2, 2, COLOR_WHITE, 1) for(var/mob/living/living_mob in get_hearers_in_view(flashbang_range, flashbang_turf)) pop(get_turf(living_mob), living_mob) diff --git a/code/game/objects/items/hand_items.dm b/code/game/objects/items/hand_items.dm index cf752bf82accb..93d4cd65f3452 100644 --- a/code/game/objects/items/hand_items.dm +++ b/code/game/objects/items/hand_items.dm @@ -187,7 +187,7 @@ log_combat(user, target, "given a noogie to", addition = "([damage] brute before armor)") target.apply_damage(damage, BRUTE, BODY_ZONE_HEAD) user.adjustStaminaLoss(iteration + 5) - playsound(get_turf(user), pick('sound/effects/rustle1.ogg','sound/effects/rustle2.ogg','sound/effects/rustle3.ogg','sound/effects/rustle4.ogg','sound/effects/rustle5.ogg'), 50) + playsound(get_turf(user), pick('sound/effects/rustle/rustle1.ogg','sound/effects/rustle/rustle2.ogg','sound/effects/rustle/rustle3.ogg','sound/effects/rustle/rustle4.ogg','sound/effects/rustle/rustle5.ogg'), 50) if(prob(33)) user.visible_message(span_danger("[user] continues noogie'ing [target]!"), span_warning("You continue giving [target] a noogie!"), vision_distance=COMBAT_MESSAGE_RANGE, ignored_mobs=target) @@ -235,7 +235,7 @@ ) to_chat(slapped, span_userdanger("You see [user] scoff and pull back [user.p_their()] arm, then suddenly you're on the ground with an ungodly ringing in your ears!")) slap_volume = 120 - SEND_SOUND(slapped, sound('sound/weapons/flash_ring.ogg')) + SEND_SOUND(slapped, sound('sound/items/weapons/flash_ring.ogg')) shake_camera(slapped, 2, 2) slapped.Paralyze(2.5 SECONDS) slapped.adjust_confusion(7 SECONDS) @@ -278,7 +278,7 @@ span_notice("You slap [slapped]!"), span_hear("You hear a slap."), ) - playsound(slapped, 'sound/weapons/slap.ogg', slap_volume, TRUE, -1) + playsound(slapped, 'sound/items/weapons/slap.ogg', slap_volume, TRUE, -1) return /obj/item/hand_item/slapper/pre_attack_secondary(atom/target, mob/living/user, params) @@ -542,8 +542,8 @@ name = "kiss" icon = 'icons/mob/simple/animal.dmi' icon_state = "heart" - hitsound = 'sound/effects/kiss.ogg' - hitsound_wall = 'sound/effects/kiss.ogg' + hitsound = 'sound/effects/emotes/kiss.ogg' + hitsound_wall = 'sound/effects/emotes/kiss.ogg' pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE speed = 1.6 damage_type = BRUTE diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 9e8f1d7308860..e63085d65be52 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -48,8 +48,8 @@ breakouttime = 1 MINUTES armor_type = /datum/armor/restraints_handcuffs custom_price = PAYCHECK_COMMAND * 0.35 - pickup_sound = 'sound/items/handcuffs_pick_up.ogg' - drop_sound = 'sound/items/handcuffs_drop.ogg' + pickup_sound = 'sound/items/handling/handcuffs/handcuffs_pick_up.ogg' + drop_sound = 'sound/items/handling/handcuffs/handcuffs_drop.ogg' sound_vary = TRUE ///How long it takes to handcuff someone @@ -57,7 +57,7 @@ ///Multiplier for handcuff time var/handcuff_time_mod = 1 ///Sound that plays when starting to put handcuffs on someone - var/cuffsound = 'sound/weapons/handcuffs.ogg' + var/cuffsound = 'sound/items/weapons/handcuffs.ogg' ///Sound that plays when restrain is successful var/cuffsuccesssound = 'sound/items/handcuff_finish.ogg' ///If set, handcuffs will be destroyed on application and leave behind whatever this is set to. @@ -200,7 +200,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 1.5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 0.75) breakouttime = 30 SECONDS - cuffsound = 'sound/weapons/cablecuff.ogg' + cuffsound = 'sound/items/weapons/cablecuff.ogg' pickup_sound = null drop_sound = null restraint_strength = HANDCUFFS_TYPE_WEAK @@ -424,7 +424,7 @@ /obj/item/restraints/legcuffs/beartrap/suicide_act(mob/living/user) user.visible_message(span_suicide("[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, TRUE, -1) + playsound(loc, 'sound/items/weapons/bladeslice.ogg', 50, TRUE, -1) return BRUTELOSS /obj/item/restraints/legcuffs/beartrap/attack_self(mob/user) @@ -551,7 +551,7 @@ /obj/item/restraints/legcuffs/bola/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, gentle = FALSE, quickstart = TRUE) if(!..()) return - playsound(src.loc,'sound/weapons/bolathrow.ogg', 75, TRUE) + playsound(src.loc,'sound/items/weapons/bolathrow.ogg', 75, TRUE) /obj/item/restraints/legcuffs/bola/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed, @@ -606,7 +606,7 @@ desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests." icon_state = "ebola" inhand_icon_state = "ebola" - hitsound = 'sound/weapons/taserhit.ogg' + hitsound = 'sound/items/weapons/taserhit.ogg' w_class = WEIGHT_CLASS_SMALL breakouttime = 6 SECONDS custom_price = PAYCHECK_COMMAND * 0.35 diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm index d1e128c0b5b10..b9dc441df724a 100644 --- a/code/game/objects/items/his_grace.dm +++ b/code/game/objects/items/his_grace.dm @@ -17,9 +17,9 @@ demolition_mod = 1.25 attack_verb_continuous = list("robusts") attack_verb_simple = list("robust") - hitsound = 'sound/weapons/smash.ogg' - drop_sound = 'sound/items/handling/toolbox_drop.ogg' - pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' + hitsound = 'sound/items/weapons/smash.ogg' + drop_sound = 'sound/items/handling/toolbox/toolbox_drop.ogg' + pickup_sound = 'sound/items/handling/toolbox/toolbox_pickup.ogg' var/awakened = FALSE var/bloodthirst = HIS_GRACE_SATIATED var/prev_bloodthirst = HIS_GRACE_SATIATED @@ -133,8 +133,8 @@ if(!L.stat) L.visible_message(span_warning("[src] lunges at [L]!"), "[src] lunges at you!") do_attack_animation(L, null, src) - playsound(L, 'sound/weapons/smash.ogg', 50, TRUE) - playsound(L, 'sound/misc/desecration-01.ogg', 50, TRUE) + playsound(L, 'sound/items/weapons/smash.ogg', 50, TRUE) + playsound(L, 'sound/effects/desecration/desecration-01.ogg', 50, TRUE) L.adjustBruteLoss(force) adjust_bloodthirst(-5) //Don't stop attacking they're right there! else @@ -172,7 +172,7 @@ return var/turf/T = get_turf(src) T.visible_message(span_boldwarning("[src] slowly stops rattling and falls still, His latch snapping shut.")) - playsound(loc, 'sound/weapons/batonextend.ogg', 100, TRUE) + playsound(loc, 'sound/items/weapons/batonextend.ogg', 100, TRUE) name = initial(name) desc = initial(desc) animate(src, transform=matrix()) @@ -189,7 +189,7 @@ var/victims = 0 meal.visible_message(span_warning("[src] swings open and devours [meal]!"), "[src] consumes you!") meal.adjustBruteLoss(200) - playsound(meal, 'sound/misc/desecration-02.ogg', 75, TRUE) + playsound(meal, 'sound/effects/desecration/desecration-02.ogg', 75, TRUE) playsound(src, 'sound/items/eatfood.ogg', 100, TRUE) meal.forceMove(src) force_bonus += HIS_GRACE_FORCE_BONUS @@ -259,7 +259,7 @@ desc = "A legendary toolbox and a distant artifact from The Age of Three Powers. On its three latches engraved are the words \"The Sun\", \"The Moon\", and \"The Stars\". The entire toolbox has the words \"The World\" engraved into its sides." ascended = TRUE update_appearance() - playsound(src, 'sound/effects/his_grace_ascend.ogg', 100) + playsound(src, 'sound/effects/his_grace/his_grace_ascend.ogg', 100) if(istype(master)) master.update_held_items() master.visible_message("Gods will be watching.") diff --git a/code/game/objects/items/implants/implant_deathrattle.dm b/code/game/objects/items/implants/implant_deathrattle.dm index 64f85c020c87a..f26eb4ab947c6 100644 --- a/code/game/objects/items/implants/implant_deathrattle.dm +++ b/code/game/objects/items/implants/implant_deathrattle.dm @@ -54,10 +54,10 @@ var/area = get_area_name(get_turf(owner)) // All "hearers" hear the same sound. var/sound = pick( - 'sound/items/knell1.ogg', - 'sound/items/knell2.ogg', - 'sound/items/knell3.ogg', - 'sound/items/knell4.ogg', + 'sound/items/knell/knell1.ogg', + 'sound/items/knell/knell2.ogg', + 'sound/items/knell/knell3.ogg', + 'sound/items/knell/knell4.ogg', ) diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index 50302173a796f..503a1a183e163 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -84,7 +84,7 @@ ready = FALSE addtimer(CALLBACK(src, PROC_REF(set_ready)),injection_cooldown) else - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) update_appearance() /obj/machinery/implantchair/proc/implant_action(mob/living/M) diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index 4aff1f03388ab..c22bf5d2ac60d 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -121,7 +121,7 @@ return ITEM_INTERACT_BLOCKING if(contraband_scan(interacting_with, user)) - playsound(src, 'sound/machines/uplinkerror.ogg', 40) + playsound(src, 'sound/machines/uplink/uplinkerror.ogg', 40) balloon_alert(user, "contraband detected!") return ITEM_INTERACT_SUCCESS else @@ -195,10 +195,10 @@ */ /obj/item/inspector/proc/print_report(mob/user) if(!cell) - to_chat(user, "\The [src] doesn't seem to be on... It feels quite light. Perhaps it lacks a power cell?") + to_chat(user, span_info("\The [src] doesn't seem to be on... It feels quite light. Perhaps it lacks a power cell?")) return if(cell.charge == 0) - to_chat(user, "\The [src] doesn't seem to be on... Perhaps it ran out of power?") + to_chat(user, span_info("\The [src] doesn't seem to be on... Perhaps it ran out of power?")) return if(!cell.use(energy_per_print)) if(cell.use(ENERGY_TO_SPEAK)) @@ -389,7 +389,7 @@ if(cell.use(ENERGY_TO_SPEAK)) say("ERROR! OUT OF PAPER! MAXIMUM PRINTING SPEED UNAVAIBLE! SWITCH TO A SLOWER SPEED TO OR PROVIDE PAPER!") else - to_chat(user, "\The [src] doesn't seem to be on... Perhaps it ran out of power?") + to_chat(user, span_info("\The [src] doesn't seem to be on... Perhaps it ran out of power?")) return paper_charges-- return ..() diff --git a/code/game/objects/items/janitor_key.dm b/code/game/objects/items/janitor_key.dm index 8f96205984b42..d18ac7bd20db5 100644 --- a/code/game/objects/items/janitor_key.dm +++ b/code/game/objects/items/janitor_key.dm @@ -82,6 +82,6 @@ investigate_log("Access to the [department_access] department on [src] has expired.]", INVESTIGATE_ACCESSCHANGES) department_access = null say("Access revoked, time ran out.") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE) #undef ACCESS_TIMER_LIMIT diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 9a55b1cd57464..24506e006d81f 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -30,7 +30,7 @@ obj_flags = CONDUCTS_ELECTRICITY attack_verb_continuous = list("attacks", "stabs", "pokes") attack_verb_simple = list("attack", "stab", "poke") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' armor_type = /datum/armor/kitchen_fork sharpness = SHARP_POINTY var/datum/reagent/forkload //used to eat omelette @@ -110,7 +110,7 @@ force = 0 throwforce = 0 sharpness = SHARP_EDGED - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes") attack_verb_simple = list("prod", "whiff", "scratch", "poke") tool_behaviour = TOOL_KNIFE @@ -123,7 +123,7 @@ . += " It's fitted with a [tool_behaviour] head." /obj/item/knife/kitchen/silicon/attack_self(mob/user) - playsound(get_turf(user), 'sound/items/change_drill.ogg', 50, TRUE) + playsound(get_turf(user), 'sound/items/tools/change_drill.ogg', 50, TRUE) if(tool_behaviour != TOOL_ROLLINGPIN) tool_behaviour = TOOL_ROLLINGPIN to_chat(user, span_notice("You attach the rolling pin bit to the [src].")) @@ -140,7 +140,7 @@ icon_state = "sili_knife" force = 0 sharpness = SHARP_EDGED - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("prods", "whiffs", "scratches", "pokes") attack_verb_simple = list("prod", "whiff", "scratch", "poke") diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index 848058a6a279e..e089a5bc55d7d 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -13,7 +13,7 @@ demolition_mod = 0.75 w_class = WEIGHT_CLASS_SMALL throwforce = 10 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' throw_speed = 3 throw_range = 6 custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 6) @@ -145,7 +145,7 @@ . = ..() if(user.get_item_by_slot(ITEM_SLOT_MASK) == src && !user.has_status_effect(/datum/status_effect/choke) && prob(20)) user.apply_damage(5, BRUTE, BODY_ZONE_HEAD) - playsound(user, 'sound/weapons/slice.ogg', 50, TRUE) + playsound(user, 'sound/items/weapons/slice.ogg', 50, TRUE) user.visible_message(span_danger("[user] accidentally cuts [user.p_them()]self while pulling [src] out of [user.p_them()] teeth! What a doofus!"), span_userdanger("You accidentally cut your mouth with [src]!")) /obj/item/knife/combat/equipped(mob/living/user, slot, initial = FALSE) diff --git a/code/game/objects/items/lighter.dm b/code/game/objects/items/lighter.dm index a0613450b28d6..a27db91909c3d 100644 --- a/code/game/objects/items/lighter.dm +++ b/code/game/objects/items/lighter.dm @@ -69,7 +69,7 @@ /obj/item/lighter/suicide_act(mob/living/carbon/user) if (lit) user.visible_message(span_suicide("[user] begins holding \the [src]'s flame up to [user.p_their()] face! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 50, TRUE) return FIRELOSS else user.visible_message(span_suicide("[user] begins whacking [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) @@ -99,15 +99,15 @@ if(lit) force = 5 damtype = BURN - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) heat = heat_while_on START_PROCESSING(SSobj, src) if(fancy) - playsound(src.loc , 'sound/items/zippo_on.ogg', 100, 1) + playsound(src.loc , 'sound/items/lighter/zippo_on.ogg', 100, 1) else - playsound(src.loc, 'sound/items/lighter_on.ogg', 100, 1) + playsound(src.loc, 'sound/items/lighter/lighter_on.ogg', 100, 1) if(isliving(loc)) var/mob/living/male_model = loc if(male_model.fire_stacks && !(male_model.on_fire)) @@ -120,9 +120,9 @@ attack_verb_simple = null STOP_PROCESSING(SSobj, src) if(fancy) - playsound(src.loc , 'sound/items/zippo_off.ogg', 100, 1) + playsound(src.loc , 'sound/items/lighter/zippo_off.ogg', 100, 1) else - playsound(src.loc , 'sound/items/lighter_off.ogg', 100, 1) + playsound(src.loc , 'sound/items/lighter/lighter_off.ogg', 100, 1) set_light_on(lit) update_appearance() diff --git a/code/game/objects/items/machine_wand.dm b/code/game/objects/items/machine_wand.dm index 7d8b4a0697d67..a4e1be08ee450 100644 --- a/code/game/objects/items/machine_wand.dm +++ b/code/game/objects/items/machine_wand.dm @@ -61,7 +61,7 @@ /obj/item/machine_remote/ui_interact(mob/user, datum/tgui/ui) if(!COOLDOWN_FINISHED(src, timeout_time)) - playsound(src, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(src, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) say("Remote control disabled temporarily. Please try again soon.") return FALSE if(!controlling_machine_or_bot) @@ -92,7 +92,7 @@ /obj/item/machine_remote/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!COOLDOWN_FINISHED(src, timeout_time)) - playsound(src, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(src, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) say("Remote control disabled temporarily. Please try again soon.") return ITEM_INTERACT_BLOCKING if(!ismachinery(interacting_with) && !isbot(interacting_with)) diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm index 26cefd6eeedbd..e11310b57e868 100644 --- a/code/game/objects/items/mail.dm +++ b/code/game/objects/items/mail.dm @@ -107,7 +107,7 @@ var/tag = uppertext(GLOB.TAGGERLOCATIONS[destination_tag.currTag]) to_chat(user, span_notice("*[tag]*")) sort_tag = destination_tag.currTag - playsound(loc, 'sound/machines/twobeep_high.ogg', vol = 100, vary = TRUE) + playsound(loc, 'sound/machines/beep/twobeep_high.ogg', vol = 100, vary = TRUE) /obj/item/mail/multitool_act(mob/living/user, obj/item/tool) if(user.get_inactive_held_item() == src) @@ -145,7 +145,7 @@ user.put_in_hands(stuff) else stuff.forceMove(drop_location()) - playsound(loc, 'sound/items/poster_ripped.ogg', vol = 50, vary = TRUE) + playsound(loc, 'sound/items/poster/poster_ripped.ogg', vol = 50, vary = TRUE) qdel(src) return TRUE @@ -402,7 +402,7 @@ /obj/item/mail/traitor/after_unwrap(mob/user) user.temporarilyRemoveItemFromInventory(src, force = TRUE) - playsound(loc, 'sound/items/poster_ripped.ogg', vol = 50, vary = TRUE) + playsound(loc, 'sound/items/poster/poster_ripped.ogg', vol = 50, vary = TRUE) for(var/obj/item/stuff as anything in contents) // Mail and envelope actually can have more than 1 item. if(user.put_in_hands(stuff) && armed) var/whomst = made_by_cached_name ? "[made_by_cached_name] ([made_by_cached_ckey])" : "no one in particular" @@ -419,7 +419,7 @@ if(!do_after(user, 2 SECONDS, target = src)) return FALSE balloon_alert(user, "disarmed") - playsound(src, 'sound/machines/defib_ready.ogg', vol = 100, vary = TRUE) + playsound(src, 'sound/machines/defib/defib_ready.ogg', vol = 100, vary = TRUE) armed = FALSE return TRUE else @@ -430,7 +430,7 @@ return FALSE if(prob(50)) balloon_alert(user, "disarmed something...?") - playsound(src, 'sound/machines/defib_ready.ogg', vol = 100, vary = TRUE) + playsound(src, 'sound/machines/defib/defib_ready.ogg', vol = 100, vary = TRUE) armed = FALSE return TRUE else diff --git a/code/game/objects/items/maintenance_loot.dm b/code/game/objects/items/maintenance_loot.dm index 74d908732a562..9d1c4fe676b84 100644 --- a/code/game/objects/items/maintenance_loot.dm +++ b/code/game/objects/items/maintenance_loot.dm @@ -20,8 +20,9 @@ wound_bonus = 20 demolition_mod = 1.25 grind_results = list(/datum/reagent/lead = 20) - pickup_sound = 'sound/items/lead_pipe_pickup.ogg' - drop_sound = 'sound/items/lead_pipe_drop.ogg' + pickup_sound = 'sound/items/handling/lead_pipe/lead_pipe_pickup.ogg' + drop_sound = 'sound/items/handling/materials/metal_drop.ogg' + throw_drop_sound = 'sound/items/handling/lead_pipe/lead_pipe_drop.ogg' hitsound = 'sound/items/lead_pipe_hit.ogg' //A good battery early in the shift. Source of lead & sulfuric acid reagents. diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm index 0fd63321519c0..01e5983b7d7aa 100644 --- a/code/game/objects/items/melee/baton.dm +++ b/code/game/objects/items/melee/baton.dm @@ -177,7 +177,7 @@ /obj/item/melee/baton/proc/check_parried(mob/living/carbon/human/human_target, mob/living/user) if (human_target.check_block(src, 0, "[user]'s [name]", MELEE_ATTACK)) - playsound(human_target, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(human_target, 'sound/items/weapons/genhit.ogg', 50, TRUE) return TRUE return FALSE @@ -327,7 +327,7 @@ drop_sound = 'sound/items/baton/telescopic_baton_folded_drop.ogg' sound_vary = TRUE /// The sound effecte played when our baton is extended. - var/on_sound = 'sound/weapons/batonextend.ogg' + var/on_sound = 'sound/items/weapons/batonextend.ogg' /// The inhand iconstate used when our baton is extended. var/on_inhand_icon_state = "nullrod" /// The force on extension. @@ -407,12 +407,12 @@ stamina_damage = 85 clumsy_knockdown_time = 24 SECONDS affect_cyborg = TRUE - on_stun_sound = 'sound/effects/contractorbatonhit.ogg' + on_stun_sound = 'sound/items/weapons/contractor_baton/contractorbatonhit.ogg' unfolded_drop_sound = 'sound/items/baton/contractor_baton_unfolded_pickup.ogg' unfolded_pickup_sound = 'sound/items/baton/contractor_baton_unfolded_pickup.ogg' on_inhand_icon_state = "contractor_baton_on" - on_sound = 'sound/weapons/contractorbatonextend.ogg' + on_sound = 'sound/items/weapons/contractorbatonextend.ogg' active_force = 16 /obj/item/melee/baton/telescopic/contractor_baton/get_wait_description() @@ -442,7 +442,7 @@ knockdown_time = 5 SECONDS clumsy_knockdown_time = 15 SECONDS cooldown = 2.5 SECONDS - on_stun_sound = 'sound/weapons/egloves.ogg' + on_stun_sound = 'sound/items/weapons/egloves.ogg' on_stun_volume = 50 active = FALSE context_living_rmb_active = "Harmful Stun" @@ -507,7 +507,7 @@ var/turf/source_turf = get_turf(src) var/obj/item/melee/baton/baton = new (source_turf) baton.alpha = 20 - playsound(source_turf, 'sound/items/drill_use.ogg', 80, TRUE, -1) + playsound(source_turf, 'sound/items/tools/drill_use.ogg', 80, TRUE, -1) animate(src, alpha = 0, time = 1 SECONDS) animate(baton, alpha = 255, time = 1 SECONDS) qdel(item) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index dd70bd08c2161..f78eec3898799 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -24,7 +24,7 @@ /// Sharpness while active. var/active_sharpness = SHARP_EDGED /// Hitsound played attacking while active. - var/active_hitsound = 'sound/weapons/blade1.ogg' + var/active_hitsound = 'sound/items/weapons/blade1.ogg' /// Weight class while active. var/active_w_class = WEIGHT_CLASS_BULKY /// The heat given off when active. @@ -122,7 +122,7 @@ tool_behaviour = (active ? TOOL_SAW : NONE) //Lets energy weapons cut trees. Also lets them do bonecutting surgery, which is kinda metal! if(user) balloon_alert(user, "[name] [active ? "enabled":"disabled"]") - playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE) + playsound(src, active ? 'sound/items/weapons/saberon.ogg' : 'sound/items/weapons/saberoff.ogg', 35, TRUE) set_light_on(active) update_appearance(UPDATE_ICON_STATE) return COMPONENT_NO_DEFAULT_MESSAGE @@ -136,7 +136,7 @@ base_icon_state = "axe" lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi' - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "chops", "cleaves", "tears", "lacerates", "cuts") attack_verb_simple = list("attack", "chop", "cleave", "tear", "lacerate", "cut") force = 40 @@ -188,7 +188,7 @@ throw_range = 5 armour_penetration = 35 block_chance = 50 - block_sound = 'sound/weapons/block_blade.ogg' + block_sound = 'sound/items/weapons/block_blade.ogg' embed_type = /datum/embed_data/esword /obj/item/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) @@ -227,7 +227,7 @@ desc = "For heavy duty cutting. It has a carbon-fiber blade in addition to a toggleable hard-light edge to dramatically increase sharpness." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "esaw" - hitsound = 'sound/weapons/circsawhit.ogg' + hitsound = 'sound/items/weapons/circsawhit.ogg' force = 18 hitcost = 0.075 * STANDARD_CELL_CHARGE // Costs more than a standard cyborg esword. w_class = WEIGHT_CLASS_NORMAL @@ -321,7 +321,7 @@ base_icon_state = "blade" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") force = 30 diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 855484c3066d4..813ace6ced89e 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -21,7 +21,7 @@ w_class = WEIGHT_CLASS_NORMAL attack_verb_continuous = list("flogs", "whips", "lashes", "disciplines") attack_verb_simple = list("flog", "whip", "lash", "discipline") - hitsound = 'sound/weapons/chainhit.ogg' + hitsound = 'sound/items/weapons/chainhit.ogg' custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT) /obj/item/melee/chainofcommand/suicide_act(mob/living/user) @@ -39,7 +39,7 @@ w_class = WEIGHT_CLASS_HUGE force = 20 throwforce = 10 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") sharpness = SHARP_EDGED @@ -70,8 +70,8 @@ sharpness = SHARP_EDGED attack_verb_continuous = list("slashes", "cuts") attack_verb_simple = list("slash", "cut") - block_sound = 'sound/weapons/parry.ogg' - hitsound = 'sound/weapons/rapierhit.ogg' + block_sound = 'sound/items/weapons/parry.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT) wound_bonus = 10 bare_wound_bonus = 25 @@ -182,8 +182,8 @@ sharpness = SHARP_EDGED attack_verb_continuous = list("slashes", "cuts") attack_verb_simple = list("slash", "cut") - block_sound = 'sound/weapons/parry.ogg' - hitsound = 'sound/weapons/rapierhit.ogg' + block_sound = 'sound/items/weapons/parry.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' custom_materials = null wound_bonus = 5 bare_wound_bonus = 15 @@ -224,8 +224,8 @@ armour_penetration = 65 attack_verb_continuous = list("slashes", "stings", "prickles", "pokes") attack_verb_simple = list("slash", "sting", "prickle", "poke") - hitsound = 'sound/weapons/rapierhit.ogg' - block_sound = 'sound/weapons/parry.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' + block_sound = 'sound/items/weapons/parry.ogg' /obj/item/melee/beesword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(attack_type == PROJECTILE_ATTACK || attack_type == LEAP_ATTACK) @@ -370,7 +370,7 @@ w_class = WEIGHT_CLASS_NORMAL attack_verb_continuous = list("flogs", "whips", "lashes", "disciplines") attack_verb_simple = list("flog", "whip", "lash", "discipline") - hitsound = 'sound/weapons/whip.ogg' + hitsound = 'sound/items/weapons/whip.ogg' /obj/item/melee/curator_whip/afterattack(atom/target, mob/user, click_parameters) if(ishuman(target)) @@ -434,7 +434,7 @@ inhand_icon_state = active ? "nullrod" : null if(user) balloon_alert(user, "[active ? "extended" : "collapsed"] [src]") - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/melee/roastingstick/attackby(atom/target, mob/user) @@ -475,7 +475,7 @@ return NONE if (istype(interacting_with, /obj/singularity) && get_dist(user, interacting_with) < 10) to_chat(user, span_notice("You send [held_sausage] towards [interacting_with].")) - playsound(src, 'sound/items/rped.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/rped.ogg', 50, TRUE) beam = user.Beam(interacting_with, icon_state = "rped_upgrade", time = 10 SECONDS) return ITEM_INTERACT_SUCCESS return NONE @@ -486,21 +486,21 @@ if (!is_type_in_typecache(interacting_with, ovens)) return NONE to_chat(user, span_notice("You extend [src] towards [interacting_with].")) - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) finish_roasting(user, interacting_with) return ITEM_INTERACT_SUCCESS /obj/item/melee/roastingstick/proc/finish_roasting(user, atom/target) if(do_after(user, 10 SECONDS, target = user)) to_chat(user, span_notice("You finish roasting [held_sausage].")) - playsound(src, 'sound/items/welder2.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder2.ogg', 50, TRUE) held_sausage.add_atom_colour(rgb(103, 63, 24), FIXED_COLOUR_PRIORITY) held_sausage.name = "[target.name]-roasted [held_sausage.name]" held_sausage.desc = "[held_sausage.desc] It has been cooked to perfection on \a [target]." update_appearance() else QDEL_NULL(beam) - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) to_chat(user, span_notice("You put [src] away.")) /obj/item/melee/cleric_mace @@ -524,7 +524,7 @@ w_class = WEIGHT_CLASS_BULKY throwforce = 8 block_chance = 10 - block_sound = 'sound/weapons/genhit.ogg' + block_sound = 'sound/items/weapons/genhit.ogg' armour_penetration = 50 attack_verb_continuous = list("smacks", "strikes", "cracks", "beats") attack_verb_simple = list("smack", "strike", "crack", "beat") diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 7b9aa7ceefe08..0148076f529ec 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -57,14 +57,14 @@ /obj/item/pet_carrier/attack_self(mob/living/user) if(open) to_chat(user, span_notice("You close [src]'s door.")) - playsound(user, 'sound/effects/bin_close.ogg', 50, TRUE) + playsound(user, 'sound/effects/bin/bin_close.ogg', 50, TRUE) open = FALSE else if(locked) to_chat(user, span_warning("[src] is locked!")) return to_chat(user, span_notice("You open [src]'s door.")) - playsound(user, 'sound/effects/bin_open.ogg', 50, TRUE) + playsound(user, 'sound/effects/bin/bin_open.ogg', 50, TRUE) open = TRUE update_appearance() @@ -74,9 +74,9 @@ locked = !locked to_chat(user, span_notice("You flip the lock switch [locked ? "down" : "up"].")) if(locked) - playsound(user, 'sound/machines/boltsdown.ogg', 30, TRUE) + playsound(user, 'sound/machines/airlock/boltsdown.ogg', 30, TRUE) else - playsound(user, 'sound/machines/boltsup.ogg', 30, TRUE) + playsound(user, 'sound/machines/airlock/boltsup.ogg', 30, TRUE) update_appearance() return CLICK_ACTION_SUCCESS @@ -129,7 +129,7 @@ loc.visible_message(span_warning("[user] flips the lock switch on [src] by reaching through!"), null, null, null, user) to_chat(user, span_boldannounce("Bingo! The lock pops open!")) locked = FALSE - playsound(src, 'sound/machines/boltsup.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/boltsup.ogg', 30, TRUE) update_appearance() else loc.visible_message(span_warning("[src] starts rattling as something pushes against the door!"), null, null, null, user) diff --git a/code/game/objects/items/pillow.dm b/code/game/objects/items/pillow.dm index b924983a4272f..af2096a9c2caa 100644 --- a/code/game/objects/items/pillow.dm +++ b/code/game/objects/items/pillow.dm @@ -51,9 +51,9 @@ if(!iscarbon(target_mob)) return if(bricked || HAS_TRAIT(src, TRAIT_WIELDED)) - hit_sound = 'sound/items/pillow_hit2.ogg' + hit_sound = 'sound/items/pillow/pillow_hit2.ogg' else - hit_sound = 'sound/items/pillow_hit.ogg' + hit_sound = 'sound/items/pillow/pillow_hit.ogg' user.apply_damage(5, STAMINA) //Had to be done so one person cannot keep multiple people stam critted last_fighter = user playsound(user, hit_sound, 80) //the basic 50 vol is barely audible @@ -116,7 +116,7 @@ user.put_in_hands(pillow_trophy) pillow_trophy = null balloon_alert(user, "tag removed") - playsound(user,'sound/items/poster_ripped.ogg', 50) + playsound(user,'sound/items/poster/poster_ripped.ogg', 50) update_appearance() return CLICK_ACTION_SUCCESS diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 526b5ca2e985e..878fd0ad3bb77 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -44,7 +44,7 @@ /obj/item/pinpointer/proc/toggle_on() active = !active - playsound(src, 'sound/items/screwdriver2.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 50, TRUE) if(active) START_PROCESSING(SSfastprocess, src) else diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm index 63c4db34b3969..1ece740d4a6df 100644 --- a/code/game/objects/items/pitchfork.dm +++ b/code/game/objects/items/pitchfork.dm @@ -17,7 +17,7 @@ w_class = WEIGHT_CLASS_BULKY attack_verb_continuous = list("attacks", "impales", "pierces") attack_verb_simple = list("attack", "impale", "pierce") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED max_integrity = 200 armor_type = /datum/armor/item_pitchfork diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 93fd6cb947a5d..7c7f998251c12 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -393,7 +393,7 @@ inhand_icon_state = "carp_plushie" attack_verb_continuous = list("bites", "eats", "fin slaps") attack_verb_simple = list("bite", "eat", "fin slap") - squeak_override = list('sound/weapons/bite.ogg'=1) + squeak_override = list('sound/items/weapons/bite.ogg'=1) /obj/item/toy/plush/bubbleplush name = "\improper Bubblegum plushie" @@ -401,7 +401,7 @@ icon_state = "bubbleplush" attack_verb_continuous = list("rents") attack_verb_simple = list("rent") - squeak_override = list('sound/magic/demon_attack1.ogg'=1) + squeak_override = list('sound/effects/magic/demon_attack1.ogg'=1) /obj/item/toy/plush/ratplush name = "\improper Ratvar plushie" @@ -438,7 +438,7 @@ clash_target = null P.clashing = FALSE return - playsound(src, 'sound/magic/clockwork/ratvar_attack.ogg', 50, TRUE, frequency = 2) + playsound(src, 'sound/effects/magic/clockwork/ratvar_attack.ogg', 50, TRUE, frequency = 2) sleep(0.24 SECONDS) if(QDELETED(src)) P.clashing = FALSE @@ -457,7 +457,7 @@ if(QDELETED(P)) clash_target = null return - playsound(P, 'sound/magic/clockwork/narsie_attack.ogg', 50, TRUE, frequency = 2) + playsound(P, 'sound/effects/magic/clockwork/narsie_attack.ogg', 50, TRUE, frequency = 2) sleep(0.33 SECONDS) if(QDELETED(src)) P.clashing = FALSE @@ -476,16 +476,16 @@ if(a_winnar_is == src) say(pick("DIE.", "ROT.")) P.say(pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")) - playsound(src, 'sound/magic/clockwork/anima_fragment_attack.ogg', 50, TRUE, frequency = 2) - playsound(P, 'sound/magic/demon_dies.ogg', 50, TRUE, frequency = 2) + playsound(src, 'sound/effects/magic/clockwork/anima_fragment_attack.ogg', 50, TRUE, frequency = 2) + playsound(P, 'sound/effects/magic/demon_dies.ogg', 50, TRUE, frequency = 2) explosion(P, light_impact_range = 1) qdel(P) clash_target = null else say("NO! I will not be banished again...") P.say(pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")) - playsound(src, 'sound/magic/clockwork/anima_fragment_death.ogg', 62, TRUE, frequency = 2) - playsound(P, 'sound/magic/demon_attack1.ogg', 50, TRUE, frequency = 2) + playsound(src, 'sound/effects/magic/clockwork/anima_fragment_death.ogg', 62, TRUE, frequency = 2) + playsound(P, 'sound/effects/magic/demon_attack1.ogg', 50, TRUE, frequency = 2) explosion(src, light_impact_range = 1) qdel(src) P.clashing = FALSE @@ -511,7 +511,7 @@ greyscale_config = /datum/greyscale_config/plush_lizard attack_verb_continuous = list("claws", "hisses", "tail slaps") attack_verb_simple = list("claw", "hiss", "tail slap") - squeak_override = list('sound/weapons/slash.ogg' = 1) + squeak_override = list('sound/items/weapons/slash.ogg' = 1) /obj/item/toy/plush/lizard_plushie/Initialize(mapload) . = ..() @@ -559,7 +559,7 @@ inhand_icon_state = null attack_verb_continuous = list("bites", "hisses", "tail slaps") attack_verb_simple = list("bite", "hiss", "tail slap") - squeak_override = list('sound/weapons/bite.ogg' = 1) + squeak_override = list('sound/items/weapons/bite.ogg' = 1) /obj/item/toy/plush/nukeplushie name = "operative plushie" @@ -588,7 +588,7 @@ inhand_icon_state = null attack_verb_continuous = list("blorbles", "slimes", "absorbs") attack_verb_simple = list("blorble", "slime", "absorb") - squeak_override = list('sound/effects/blobattack.ogg' = 1) + squeak_override = list('sound/effects/blob/blobattack.ogg' = 1) gender = FEMALE //given all the jokes and drawings, I'm not sure the xenobiologists would make a slimeboy // This is supposed to be only in the bus ruin, don't spawn it elsewhere @@ -657,13 +657,13 @@ attack_verb_continuous = list("stings") attack_verb_simple = list("sting") gender = FEMALE - squeak_override = list('sound/voice/moth/scream_moth.ogg'=1) + squeak_override = list('sound/mobs/humanoids/moth/scream_moth.ogg'=1) /obj/item/toy/plush/goatplushie name = "strange goat plushie" icon_state = "goat" desc = "Despite its cuddly appearance and plush nature, it will beat you up all the same. Goats never change." - squeak_override = list('sound/weapons/punch1.ogg'=1) + squeak_override = list('sound/items/weapons/punch1.ogg'=1) /// Whether or not this goat is currently taking in a monsterous doink var/going_hard = FALSE /// Whether or not this goat has been flattened like a funny pancake @@ -724,7 +724,7 @@ inhand_icon_state = null attack_verb_continuous = list("flutters", "flaps") attack_verb_simple = list("flutter", "flap") - squeak_override = list('sound/voice/moth/scream_moth.ogg'=1) + squeak_override = list('sound/mobs/humanoids/moth/scream_moth.ogg'=1) ///Used to track how many people killed themselves with item/toy/plush/moth var/suicide_count = 0 @@ -737,7 +737,7 @@ desc = "A plushie depicting a creepy mothperson. It's killed [suicide_count] people! I don't think I want to hug it any more!" divine = TRUE resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF - playsound(src, 'sound/hallucinations/wail.ogg', 50, TRUE, -1) + playsound(src, 'sound/effects/hallucinations/wail.ogg', 50, TRUE, -1) var/list/available_spots = get_adjacent_open_turfs(loc) if(available_spots.len) //If the user is in a confined space the plushie will drop normally as the user dies, but in the open the plush is placed one tile away from the user to prevent squeak spam var/turf/open/random_open_spot = pick(available_spots) @@ -751,7 +751,7 @@ icon_state = "pkplush" attack_verb_continuous = list("hugs", "squeezes") attack_verb_simple = list("hug", "squeeze") - squeak_override = list('sound/weapons/thudswoosh.ogg'=1) + squeak_override = list('sound/items/weapons/thudswoosh.ogg'=1) /obj/item/toy/plush/rouny name = "runner plushie" @@ -770,7 +770,7 @@ inhand_icon_state = null attack_verb_continuous = list("abducts", "probes") attack_verb_continuous = list("abduct", "probe") - squeak_override = list('sound/weather/ashstorm/inside/weak_end.ogg' = 1) //very faint sound since abductors are silent as far as "speaking" is concerned. + squeak_override = list('sound/ambience/weather/ashstorm/inside/weak_end.ogg' = 1) //very faint sound since abductors are silent as far as "speaking" is concerned. /obj/item/toy/plush/abductor/agent name = "abductor agent plushie" @@ -780,8 +780,8 @@ attack_verb_continuous = list("abducts", "probes", "stuns") attack_verb_continuous = list("abduct", "probe", "stun") squeak_override = list( - 'sound/weapons/egloves.ogg' = 2, - 'sound/weapons/cablecuff.ogg' = 1, + 'sound/items/weapons/egloves.ogg' = 2, + 'sound/items/weapons/cablecuff.ogg' = 1, ) /obj/item/toy/plush/shark diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index b49fb7ec26051..f9e63d7ee3f74 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -39,7 +39,7 @@ var/charge_tick = 0 var/charge_type var/selfcharge = FALSE - var/fire_sound = 'sound/weapons/sonic_jackhammer.ogg' + var/fire_sound = 'sound/items/weapons/sonic_jackhammer.ogg' var/spin_item = TRUE //Do the projectiles spin when launched? trigger_guard = TRIGGER_GUARD_NORMAL @@ -103,7 +103,7 @@ /obj/item/pneumatic_cannon/wrench_act(mob/living/user, obj/item/tool) if(needs_air == FALSE) return - playsound(src, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/ratchet.ogg', 50, TRUE) pressure_setting = pressure_setting >= HIGH_PRESSURE ? LOW_PRESSURE : pressure_setting + 1 balloon_alert(user, "output level set to [pressure_setting_to_text(pressure_setting)]") return TRUE diff --git a/code/game/objects/items/powerfist.dm b/code/game/objects/items/powerfist.dm index 0054520c957ee..77810ff3a89b6 100644 --- a/code/game/objects/items/powerfist.dm +++ b/code/game/objects/items/powerfist.dm @@ -117,7 +117,7 @@ if(!gas_used) to_chat(user, span_warning("\The [src]'s tank is empty!")) target.apply_damage((force / 5), BRUTE) - playsound(loc, 'sound/weapons/punch1.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/punch1.ogg', 50, TRUE) target.visible_message(span_danger("[user]'s powerfist lets out a dull thunk as [user.p_they()] punch[user.p_es()] [target.name]!"), \ span_userdanger("[user]'s punches you!")) return @@ -125,7 +125,7 @@ if(!molar_cmp_equals(gas_used.total_moles(), gas_per_fist * fist_pressure_setting)) our_turf.assume_air(gas_used) to_chat(user, span_warning("\The [src]'s piston-ram lets out a weak hiss, it needs more gas!")) - playsound(loc, 'sound/weapons/punch4.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/punch4.ogg', 50, TRUE) target.apply_damage((force / 2), BRUTE) target.visible_message(span_danger("[user]'s powerfist lets out a weak hiss as [user.p_they()] punch[user.p_es()] [target.name]!"), \ span_userdanger("[user]'s punch strikes with force!")) @@ -135,8 +135,8 @@ span_userdanger("You cry out in pain as [user]'s punch flings you backwards!")) new /obj/effect/temp_visual/kinetic_blast(target.loc) target.apply_damage(force * fist_pressure_setting, BRUTE, wound_bonus = CANT_WOUND) - playsound(src, 'sound/weapons/resonator_blast.ogg', 50, TRUE) - playsound(src, 'sound/weapons/genhit2.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/resonator_blast.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit2.ogg', 50, TRUE) if(!QDELETED(target)) var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm index 335e7b3d5fbd7..a008acedb6d1c 100644 --- a/code/game/objects/items/puzzle_pieces.dm +++ b/code/game/objects/items/puzzle_pieces.dm @@ -305,7 +305,7 @@ visible_message(span_boldnotice("[src] becomes fully charged!")) powered = TRUE SEND_SIGNAL(src, COMSIG_PUZZLE_COMPLETED) - playsound(src, 'sound/machines/synth_yes.ogg', 100, TRUE) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 100, TRUE) // // literally just buttons @@ -363,7 +363,7 @@ used = single_use update_icon_state() visible_message(span_notice("[user] presses a button on [src]."), span_notice("You press a button on [src].")) - playsound(src, 'sound/machines/terminal_button07.ogg', 45, TRUE) + playsound(src, 'sound/machines/terminal/terminal_button07.ogg', 45, TRUE) on_puzzle_complete() MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle/button, 32) @@ -386,7 +386,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle/button, 32) return used = TRUE update_icon_state() - playsound(src, 'sound/machines/beep.ogg', 45, TRUE) + playsound(src, 'sound/machines/beep/beep.ogg', 45, TRUE) on_puzzle_complete() MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle/keycardpad, 32) @@ -419,11 +419,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle/keycardpad, 32) var/correct = pass_input == password balloon_alert_to_viewers("[correct ? "correct" : "wrong"] password[correct ? "" : "!"]") if(!correct) - playsound(src, 'sound/machines/buzz-sigh.ogg', 45, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 45, TRUE) return used = single_use update_icon_state() - playsound(src, 'sound/machines/terminal_button07.ogg', 45, TRUE) + playsound(src, 'sound/machines/terminal/terminal_button07.ogg', 45, TRUE) on_puzzle_complete() MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle/password, 32) diff --git a/code/game/objects/items/rcd/RCD.dm b/code/game/objects/items/rcd/RCD.dm index 279bc91d622c5..961e0fff88afd 100644 --- a/code/game/objects/items/rcd/RCD.dm +++ b/code/game/objects/items/rcd/RCD.dm @@ -16,8 +16,8 @@ item_flags = NO_MAT_REDEMPTION | NOBLUDGEON has_ammobar = TRUE actions_types = list(/datum/action/item_action/rcd_scan) - drop_sound = 'sound/items/handling/rcd_drop.ogg' - pickup_sound = 'sound/items/handling/rcd_pickup.ogg' + drop_sound = 'sound/items/handling/tools/rcd_drop.ogg' + pickup_sound = 'sound/items/handling/tools/rcd_pickup.ogg' sound_vary = TRUE /// main category of currently selected design[Structures, Airlocks, Airlock Access] @@ -426,9 +426,8 @@ interact_with_atom(target, user, modifiers) /obj/item/construction/rcd/proc/detonate_pulse() - audible_message("[src] begins to vibrate and \ - buzz loudly!","[src] begins \ - vibrating violently!") + audible_message(span_danger("[src] begins to vibrate and buzz loudly!"), \ + span_danger("[src] begins vibrating violently!")) // 5 seconds to get rid of it addtimer(CALLBACK(src, PROC_REF(detonate_pulse_explode)), 5 SECONDS) diff --git a/code/game/objects/items/rcd/RPD.dm b/code/game/objects/items/rcd/RPD.dm index 9c3aa6cffc284..07db9978e3e09 100644 --- a/code/game/objects/items/rcd/RPD.dm +++ b/code/game/objects/items/rcd/RPD.dm @@ -185,8 +185,8 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*37.5, /datum/material/glass=SHEET_MATERIAL_AMOUNT*18.75) armor_type = /datum/armor/item_pipe_dispenser resistance_flags = FIRE_PROOF - drop_sound = 'sound/items/handling/rpd_drop.ogg' - pickup_sound = 'sound/items/handling/rpd_pickup.ogg' + drop_sound = 'sound/items/handling/tools/rpd_drop.ogg' + pickup_sound = 'sound/items/handling/tools/rpd_pickup.ogg' sound_vary = TRUE ///Sparks system used when changing device in the UI var/datum/effect_system/spark_spread/spark_system diff --git a/code/game/objects/items/rcd/RPLD.dm b/code/game/objects/items/rcd/RPLD.dm index 4872dffde362e..a41e86584af81 100644 --- a/code/game/objects/items/rcd/RPLD.dm +++ b/code/game/objects/items/rcd/RPLD.dm @@ -12,8 +12,8 @@ banned_upgrades = RCD_ALL_UPGRADES & ~RCD_UPGRADE_SILO_LINK matter = 200 max_matter = 200 - drop_sound = 'sound/items/handling/rcd_drop.ogg' - pickup_sound = 'sound/items/handling/rcd_pickup.ogg' + drop_sound = 'sound/items/handling/tools/rcd_drop.ogg' + pickup_sound = 'sound/items/handling/tools/rcd_pickup.ogg' sound_vary = TRUE ///category of design selected diff --git a/code/game/objects/items/rcd/RTD.dm b/code/game/objects/items/rcd/RTD.dm index 93e5147175e4e..1925b3e6ffc66 100644 --- a/code/game/objects/items/rcd/RTD.dm +++ b/code/game/objects/items/rcd/RTD.dm @@ -24,8 +24,8 @@ item_flags = NO_MAT_REDEMPTION | NOBLUDGEON has_ammobar = TRUE banned_upgrades = RCD_ALL_UPGRADES & ~RCD_UPGRADE_SILO_LINK - drop_sound = 'sound/items/handling/rcd_drop.ogg' - pickup_sound = 'sound/items/handling/rcd_pickup.ogg' + drop_sound = 'sound/items/handling/tools/rcd_drop.ogg' + pickup_sound = 'sound/items/handling/tools/rcd_pickup.ogg' sound_vary = TRUE /// main category for tile design diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 77b087b8ac53d..ecf43fdfab776 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -75,7 +75,7 @@ inspired_human.AdjustImmobilized(-40) inspired_human.AdjustParalyzed(-40) inspired_human.AdjustUnconscious(-40) - playsound(inspired_human, 'sound/magic/staff_healing.ogg', 25, FALSE) + playsound(inspired_human, 'sound/effects/magic/staff_healing.ogg', 25, FALSE) /obj/item/banner/proc/special_inspiration(mob/living/carbon/human/H) //Any banner-specific inspiration effects go here return diff --git a/code/game/objects/items/robot/items/food.dm b/code/game/objects/items/robot/items/food.dm index b7b018362c73c..3dd15b508cc97 100644 --- a/code/game/objects/items/robot/items/food.dm +++ b/code/game/objects/items/robot/items/food.dm @@ -112,7 +112,7 @@ gumball = new /obj/item/ammo_casing/gumball(src) gumball.loaded_projectile.color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) - playsound(src.loc, 'sound/weapons/bulletflyby3.ogg', 50, TRUE) + playsound(src.loc, 'sound/items/weapons/bulletflyby3.ogg', 50, TRUE) gumball.fire_casing(target, user, params, 0, 0, null, 0, src) user.visible_message(span_warning("[user] shoots a high-velocity gumball at [target]!")) check_amount() diff --git a/code/game/objects/items/robot/items/generic.dm b/code/game/objects/items/robot/items/generic.dm index a98d13770b7ab..385baa0381ae9 100644 --- a/code/game/objects/items/robot/items/generic.dm +++ b/code/game/objects/items/robot/items/generic.dm @@ -30,7 +30,7 @@ if(ishuman(attacked_mob)) var/mob/living/carbon/human/human = attacked_mob if(human.check_block(src, 0, "[attacked_mob]'s [name]", MELEE_ATTACK)) - playsound(attacked_mob, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(attacked_mob, 'sound/items/weapons/genhit.ogg', 50, TRUE) return FALSE if(iscyborg(user)) var/mob/living/silicon/robot/robot_user = user @@ -54,7 +54,7 @@ span_userdanger("[user] prods you with [src]!"), ) - playsound(loc, 'sound/weapons/egloves.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/egloves.ogg', 50, TRUE, -1) cooldown_check = world.time + cooldown log_combat(user, attacked_mob, "stunned", src, "(Combat mode: [user.combat_mode ? "On" : "Off"])") @@ -88,9 +88,9 @@ mode = HUG_MODE_NICE switch(mode) if(HUG_MODE_NICE) - to_chat(user, "Power reset. Hugs!") + to_chat(user, span_infoplain("Power reset. Hugs!")) if(HUG_MODE_HUG) - to_chat(user, "Power increased!") + to_chat(user, span_infoplain("Power increased!")) if(HUG_MODE_SHOCK) to_chat(user, "BZZT. Electrifying arms...") if(HUG_MODE_CRUSH) @@ -114,7 +114,7 @@ span_notice("You playfully boop [attacked_mob] on the head!"), ) user.do_attack_animation(attacked_mob, ATTACK_EFFECT_BOOP) - playsound(loc, 'sound/weapons/tap.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/tap.ogg', 50, TRUE, -1) else if(ishuman(attacked_mob)) if(user.body_position == LYING_DOWN) user.visible_message( @@ -133,7 +133,7 @@ span_notice("[user] pets [attacked_mob]!"), span_notice("You pet [attacked_mob]!"), ) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) if(HUG_MODE_HUG) if(ishuman(attacked_mob)) attacked_mob.adjust_status_effects_on_shake_up() @@ -160,7 +160,7 @@ span_warning("[user] bops [attacked_mob] on the head!"), span_warning("You bop [attacked_mob] on the head!"), ) - playsound(loc, 'sound/weapons/tap.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/tap.ogg', 50, TRUE, -1) if(HUG_MODE_SHOCK) if (!COOLDOWN_FINISHED(src, shock_cooldown)) return @@ -184,7 +184,7 @@ span_userdanger("[user] shocks [attacked_mob]. It does not seem to have an effect"), span_danger("You shock [attacked_mob] to no effect."), ) - playsound(loc, 'sound/effects/sparks2.ogg', 50, TRUE, -1) + playsound(loc, 'sound/effects/sparks/sparks2.ogg', 50, TRUE, -1) user.cell.use(0.5 * STANDARD_CELL_CHARGE, force = TRUE) COOLDOWN_START(src, shock_cooldown, HUG_SHOCK_COOLDOWN) if(HUG_MODE_CRUSH) @@ -200,7 +200,7 @@ span_userdanger("[user] crushes [attacked_mob]!"), span_danger("You crush [attacked_mob]!"), ) - playsound(loc, 'sound/weapons/smash.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/smash.ogg', 50, TRUE, -1) attacked_mob.adjustBruteLoss(15) user.cell.use(0.3 * STANDARD_CELL_CHARGE, force = TRUE) COOLDOWN_START(src, crush_cooldown, HUG_CRUSH_COOLDOWN) @@ -378,7 +378,7 @@ carbon.adjust_confusion(6 SECONDS) audible_message("HUMAN HARM") - playsound(get_turf(src), 'sound/ai/harmalarm.ogg', 70, 3) + playsound(get_turf(src), 'sound/mobs/non-humanoids/cyborg/harmalarm.ogg', 70, 3) COOLDOWN_START(src, alarm_cooldown, HARM_ALARM_SAFETY_COOLDOWN) user.log_message("used a Cyborg Harm Alarm", LOG_ATTACK) if(iscyborg(user)) diff --git a/code/game/objects/items/robot/items/tools.dm b/code/game/objects/items/robot/items/tools.dm index f16cd0844901d..beaca11b695b9 100644 --- a/code/game/objects/items/robot/items/tools.dm +++ b/code/game/objects/items/robot/items/tools.dm @@ -9,8 +9,8 @@ resistance_flags = FIRE_PROOF //if it's channeling a cyborg's excess heat, it's probably fireproof force = 5 damtype = BURN - usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') //the usesounds of a lit welder - hitsound = 'sound/items/welder.ogg' //the hitsound of a lit welder + usesound = list('sound/items/tools/welder.ogg', 'sound/items/tools/welder2.ogg') //the usesounds of a lit welder + hitsound = 'sound/items/tools/welder.ogg' //the hitsound of a lit welder //Peacekeeper Cyborg Projectile Dampenening Field /obj/item/borg/projectile_dampen @@ -247,7 +247,7 @@ if(initial(tool.tool_behaviour) == new_tool_behaviour) reference = tool update_appearance(UPDATE_ICON_STATE) - playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/change_jaws.ogg', 50, TRUE) break /obj/item/borg/cyborg_omnitool/update_icon_state() @@ -267,7 +267,7 @@ /obj/item/borg/cyborg_omnitool/proc/set_upgraded(upgrade) upgraded = upgraded - playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/change_jaws.ogg', 50, TRUE) /obj/item/borg/cyborg_omnitool/medical name = "surgical omni-toolset" diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 14a7c8a1d63a5..ce350ecb788f8 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -319,7 +319,7 @@ // This canonizes that MMI'd cyborgs have memories of their previous life brainmob.add_mob_memory(/datum/memory/was_cyborged, protagonist = brainmob.mind, deuteragonist = user) brainmob.mind.transfer_to(O) - playsound(O.loc, 'sound/voice/liveagain.ogg', 75, TRUE) + playsound(O.loc, 'sound/mobs/non-humanoids/cyborg/liveagain.ogg', 75, TRUE) if(O.mind && O.mind.special_role) to_chat(O, span_userdanger("You have been robotized!")) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 4727f16ee1dd2..4b210c47e9fca 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -607,7 +607,7 @@ smoke.start() sleep(0.2 SECONDS) for(var/i in 1 to 4) - playsound(borg, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/welder.ogg', 'sound/items/ratchet.ogg'), 80, TRUE, -1) + playsound(borg, pick('sound/items/tools/drill_use.ogg', 'sound/items/tools/jaws_cut.ogg', 'sound/items/tools/jaws_pry.ogg', 'sound/items/tools/welder.ogg', 'sound/items/tools/ratchet.ogg'), 80, TRUE, -1) sleep(1.2 SECONDS) if(!prev_lockcharge) borg.SetLockdown(FALSE) @@ -827,7 +827,7 @@ if(borgo.mind) borgo.mind.grab_ghost() - playsound(loc, 'sound/voice/liveagain.ogg', 75, TRUE) + playsound(loc, 'sound/mobs/non-humanoids/cyborg/liveagain.ogg', 75, TRUE) else playsound(loc, 'sound/machines/ping.ogg', 75, TRUE) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 73aaa7e75a1cb..acab30562cdaf 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -15,7 +15,7 @@ attack_verb_continuous = list("shoves", "bashes") attack_verb_simple = list("shove", "bash") armor_type = /datum/armor/item_shield - block_sound = 'sound/weapons/block_shield.ogg' + block_sound = 'sound/items/weapons/block_shield.ogg' /// makes beam projectiles pass through the shield var/transparent = FALSE /// if the shield will break by sustaining damage @@ -163,11 +163,11 @@ custom_materials = list(/datum/material/glass= SHEET_MATERIAL_AMOUNT * 3.75, /datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT) transparent = TRUE max_integrity = 75 - shield_break_sound = 'sound/effects/glassbr3.ogg' + shield_break_sound = 'sound/effects/glass/glassbr3.ogg' shield_break_leftover = /obj/item/shard armor_type = /datum/armor/item_shield/riot - pickup_sound = 'sound/items/plastic_shield_pick_up.ogg' - drop_sound = 'sound/items/plastic_shield_drop.ogg' + pickup_sound = 'sound/items/handling/shield/plastic_shield_pick_up.ogg' + drop_sound = 'sound/items/handling/shield/plastic_shield_drop.ogg' /obj/item/shield/riot/Initialize(mapload) . = ..() @@ -305,7 +305,7 @@ throwforce = 3 throw_speed = 3 breakable_by_damage = FALSE - block_sound = 'sound/weapons/block_blade.ogg' + block_sound = 'sound/items/weapons/block_blade.ogg' is_bashable = FALSE // Gotta wait till it activates y'know shield_bash_sound = 'sound/effects/energyshieldbash.ogg' /// Force of the shield when active. @@ -355,7 +355,7 @@ if(user) balloon_alert(user, active ? "activated" : "deactivated") - playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE) + playsound(src, active ? 'sound/items/weapons/saberon.ogg' : 'sound/items/weapons/saberoff.ogg', 35, TRUE) is_bashable = !is_bashable return COMPONENT_NO_DEFAULT_MESSAGE @@ -420,7 +420,7 @@ slot_flags = active ? ITEM_SLOT_BACK : null if(user) balloon_alert(user, active ? "extended" : "collapsed") - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/shield/riot/tele/proc/can_disarm_attack(datum/source, mob/living/victim, mob/living/user, send_message = TRUE) @@ -472,6 +472,6 @@ max_integrity = 35 shield_break_leftover = /obj/item/stack/rods/two armor_type = /datum/armor/item_shield/improvised - block_sound = 'sound/items/trayhit2.ogg' + block_sound = 'sound/items/trayhit/trayhit2.ogg' #undef BATON_BASH_COOLDOWN diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index f0548fa66f404..6ad49bf836f4f 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -15,7 +15,7 @@ embed_type = /datum/embed_data/spear armour_penetration = 10 custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass= HALF_SHEET_MATERIAL_AMOUNT * 2) - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore") sharpness = SHARP_EDGED // i know the whole point of spears is that they're pointy, but edged is more devastating at the moment so diff --git a/code/game/objects/items/stacks/golem_food/golem_hand_actions.dm b/code/game/objects/items/stacks/golem_food/golem_hand_actions.dm index e4b65e033975e..00606ba3e6d77 100644 --- a/code/game/objects/items/stacks/golem_food/golem_hand_actions.dm +++ b/code/game/objects/items/stacks/golem_food/golem_hand_actions.dm @@ -35,7 +35,7 @@ qdel(src) return ITEM_INTERACT_BLOCKING - playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/sonic_jackhammer.ogg', 50, TRUE) held_gibtonite.forceMove(get_turf(src)) held_gibtonite.det_time = 2 SECONDS held_gibtonite.GibtoniteReaction(user, "A [src] has targeted [interacting_with] with a thrown and primed") diff --git a/code/game/objects/items/stacks/golem_food/golem_status_effects.dm b/code/game/objects/items/stacks/golem_food/golem_status_effects.dm index bb40f176d0026..ccc5afb5981ed 100644 --- a/code/game/objects/items/stacks/golem_food/golem_status_effects.dm +++ b/code/game/objects/items/stacks/golem_food/golem_status_effects.dm @@ -215,7 +215,7 @@ /// Shoot a beam at the target atom /datum/status_effect/golem/plasma/proc/zap_effect(atom/target) owner.Beam(target, icon_state = "lightning[rand(1,12)]", time = 0.5 SECONDS) - playsound(owner, 'sound/magic/lightningshock.ogg', vol = 50, vary = TRUE) + playsound(owner, 'sound/effects/magic/lightningshock.ogg', vol = 50, vary = TRUE) /// Makes you spaceproof /datum/status_effect/golem/plasteel @@ -313,8 +313,8 @@ arm.unarmed_attack_verbs = list("slash") arm.grappled_attack_verb = "lacerate" arm.unarmed_attack_effect = ATTACK_EFFECT_CLAW - arm.unarmed_attack_sound = 'sound/weapons/slash.ogg' - arm.unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + arm.unarmed_attack_sound = 'sound/items/weapons/slash.ogg' + arm.unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' RegisterSignal(arm, COMSIG_QDELETING, PROC_REF(on_arm_destroyed)) LAZYADD(modified_arms, arm) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index d76861b6c4932..cb3bb78f65683 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -133,7 +133,7 @@ if(!try_heal_checks(patient, user, heal_brute, heal_burn)) return FALSE if(patient.heal_bodypart_damage((heal_brute * patient.maxHealth/100))) - user.visible_message("[user] applies [src] on [patient].", "You apply [src] on [patient].") + user.visible_message(span_infoplain(span_green("[user] applies [src] on [patient].")), span_infoplain(span_green("You apply [src] on [patient]."))) return TRUE patient.balloon_alert(user, "can't heal [patient]!") return FALSE @@ -279,7 +279,7 @@ if(!do_after(user, treatment_delay, target = patient)) return - user.visible_message("[user] applies [src] to [patient]'s [limb.plaintext_zone].", "You bandage the wounds on [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone].") + user.visible_message(span_infoplain(span_green("[user] applies [src] to [patient]'s [limb.plaintext_zone].")), span_infoplain(span_green("You bandage the wounds on [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone]."))) limb.apply_gauze(src) /obj/item/stack/medical/gauze/twelve @@ -436,7 +436,7 @@ is_open = TRUE balloon_alert(user, "opened") update_appearance() - playsound(src, 'sound/items/poster_ripped.ogg', 20, TRUE) + playsound(src, 'sound/items/poster/poster_ripped.ogg', 20, TRUE) return return ..() diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 69dbe87cd5cc9..9e91ba2aaaca2 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -32,15 +32,15 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ max_amount = 50 attack_verb_continuous = list("hits", "bludgeons", "whacks") attack_verb_simple = list("hit", "bludgeon", "whack") - hitsound = 'sound/weapons/gun/general/grenade_launch.ogg' + hitsound = 'sound/items/weapons/gun/general/grenade_launch.ogg' embed_type = /datum/embed_data/rods novariants = TRUE matter_amount = 2 cost = HALF_SHEET_MATERIAL_AMOUNT source = /datum/robot_energy_storage/material/iron merge_type = /obj/item/stack/rods - pickup_sound = 'sound/items/iron_rod_pick_up.ogg' - drop_sound = 'sound/items/metal_drop.ogg' + pickup_sound = 'sound/items/handling/materials/iron_rod_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/metal_drop.ogg' sound_vary = TRUE /datum/embed_data/rods diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 19e290170f8af..8415ffa3f407f 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -32,8 +32,8 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ cost = SHEET_MATERIAL_AMOUNT source = /datum/robot_energy_storage/material/glass sniffable = TRUE - pickup_sound = 'sound/items/glass_pick_up.ogg' - drop_sound = 'sound/items/glass_drop.ogg' + pickup_sound = 'sound/items/handling/materials/glass_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/glass_drop.ogg' /datum/armor/sheet_glass fire = 50 @@ -104,8 +104,8 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) material_flags = NONE tableVariant = /obj/structure/table/glass/plasmaglass - pickup_sound = 'sound/items/glass_pick_up.ogg' - drop_sound = 'sound/items/glass_drop.ogg' + pickup_sound = 'sound/items/handling/materials/glass_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/glass_drop.ogg' /obj/item/stack/sheet/plasmaglass/fifty amount = 50 @@ -164,8 +164,8 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10) matter_amount = 6 tableVariant = /obj/structure/table/reinforced/rglass - pickup_sound = 'sound/items/glass_pick_up.ogg' - drop_sound = 'sound/items/glass_drop.ogg' + pickup_sound = 'sound/items/handling/materials/glass_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/glass_drop.ogg' /obj/item/stack/sheet/rglass/fifty amount = 50 @@ -204,8 +204,8 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ gulag_valid = TRUE matter_amount = 8 tableVariant = /obj/structure/table/reinforced/plasmarglass - pickup_sound = 'sound/items/glass_pick_up.ogg' - drop_sound = 'sound/items/glass_drop.ogg' + pickup_sound = 'sound/items/handling/materials/glass_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/glass_drop.ogg' /datum/armor/sheet_plasmarglass melee = 20 @@ -236,8 +236,8 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass tableVariant = /obj/structure/table/reinforced/titaniumglass - pickup_sound = 'sound/items/glass_pick_up.ogg' - drop_sound = 'sound/items/glass_drop.ogg' + pickup_sound = 'sound/items/handling/materials/glass_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/glass_drop.ogg' /obj/item/stack/sheet/titaniumglass/fifty amount = 50 @@ -268,8 +268,8 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass tableVariant = /obj/structure/table/reinforced/plastitaniumglass - pickup_sound = 'sound/items/glass_pick_up.ogg' - drop_sound = 'sound/items/glass_drop.ogg' + pickup_sound = 'sound/items/handling/materials/glass_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/glass_drop.ogg' /obj/item/stack/sheet/plastitaniumglass/fifty amount = 50 @@ -296,7 +296,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( custom_materials = list(/datum/material/glass=SHEET_MATERIAL_AMOUNT) attack_verb_continuous = list("stabs", "slashes", "slices", "cuts") attack_verb_simple = list("stab", "slash", "slice", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' resistance_flags = ACID_PROOF armor_type = /datum/armor/item_shard max_integrity = 40 diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 9dff36dca2dde..3956051d89bc7 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -5,8 +5,8 @@ inhand_icon_state = null novariants = TRUE merge_type = /obj/item/stack/sheet/animalhide - pickup_sound = 'sound/items/skin_pick_up.ogg' - drop_sound = 'sound/items/skin_drop.ogg' + pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/skin_drop.ogg' /obj/item/stack/sheet/animalhide/human name = "human skin" @@ -193,8 +193,8 @@ GLOBAL_LIST_INIT(carp_recipes, list ( \ icon_state = "sheet-leather" inhand_icon_state = null merge_type = /obj/item/stack/sheet/leather - pickup_sound = 'sound/items/skin_pick_up.ogg' - drop_sound = 'sound/items/skin_drop.ogg' + pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/skin_drop.ogg' GLOBAL_LIST_INIT(leather_recipes, list ( \ new/datum/stack_recipe("wallet", /obj/item/storage/wallet, 1, crafting_flags = NONE, category = CAT_CONTAINERS), \ @@ -326,7 +326,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ /obj/item/stack/sheet/animalhide/attackby(obj/item/W, mob/user, params) if(W.get_sharpness()) - playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/slice.ogg', 50, TRUE, -1) user.visible_message(span_notice("[user] starts cutting hair off \the [src]."), span_notice("You start cutting the hair off \the [src]..."), span_hear("You hear the sound of a knife rubbing against flesh.")) if(do_after(user, 5 SECONDS, target = src)) to_chat(user, span_notice("You cut the hair from [src.name].")) @@ -348,8 +348,8 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ icon_state = "sheet-hairlesshide" inhand_icon_state = null merge_type = /obj/item/stack/sheet/hairlesshide - pickup_sound = 'sound/items/skin_pick_up.ogg' - drop_sound = 'sound/items/skin_drop.ogg' + pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/skin_drop.ogg' /obj/item/stack/sheet/hairlesshide/examine(mob/user) . = ..() @@ -363,8 +363,8 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ icon_state = "sheet-wetleather" inhand_icon_state = null merge_type = /obj/item/stack/sheet/wethide - pickup_sound = 'sound/items/skin_pick_up.ogg' - drop_sound = 'sound/items/skin_drop.ogg' + pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/skin_drop.ogg' /// Reduced when exposed to high temperatures var/wetness = 30 /// Kelvin to start drying diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 877460edfaf7a..c32919094391a 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -385,8 +385,8 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ grind_results = list(/datum/reagent/cellulose = 20) //no lignocellulose or lignin reagents yet, walltype = /turf/closed/wall/mineral/wood stairs_type = /obj/structure/stairs/wood - pickup_sound = 'sound/items/wood_pick_up.ogg' - drop_sound = 'sound/items/wood_drop.ogg' + pickup_sound = 'sound/items/handling/materials/wood_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/wood_drop.ogg' /datum/armor/mineral_wood fire = 50 @@ -684,8 +684,8 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ merge_type = /obj/item/stack/sheet/cardboard grind_results = list(/datum/reagent/cellulose = 10) material_type = /datum/material/cardboard - pickup_sound = 'sound/items/cardboard_pick_up.ogg' - drop_sound = 'sound/items/cardboard_drop.ogg' + pickup_sound = 'sound/items/handling/materials/cardboard_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/cardboard_drop.ogg' /obj/item/stack/sheet/cardboard/Initialize(mapload, new_amount, merge, list/mat_override, mat_amt) . = ..() @@ -863,8 +863,8 @@ GLOBAL_LIST_INIT(plastic_recipes, list( throwforce = 7 material_type = /datum/material/plastic merge_type = /obj/item/stack/sheet/plastic - pickup_sound = 'sound/items/plastic_pick_up.ogg' - drop_sound = 'sound/items/plastic_drop.ogg' + pickup_sound = 'sound/items/handling/materials/plastic_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/plastic_drop.ogg' /obj/item/stack/sheet/plastic/fifty amount = 50 diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 110713d343612..b9a66202a16e3 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -13,8 +13,8 @@ attack_verb_simple = list("bash", "batter", "bludgeon", "thrash", "smash") novariants = FALSE material_flags = MATERIAL_EFFECTS - pickup_sound = 'sound/items/metal_pick_up.ogg' - drop_sound = 'sound/items/metal_drop.ogg' + pickup_sound = 'sound/items/handling/materials/metal_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/metal_drop.ogg' var/sheettype = null //this is used for girders in the creation of walls/false walls ///If true, this is worth points in the gulag labour stacker var/gulag_valid = FALSE diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index acfc59b64d037..a1394bbad4fd9 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -29,14 +29,14 @@ if(user.get_inactive_held_item() == src) if(is_zero_amount(delete_if_zero = TRUE)) return - playsound(user, 'sound/items/duct_tape_rip.ogg', 50, TRUE) + playsound(user, 'sound/items/duct_tape/duct_tape_rip.ogg', 50, TRUE) if(!do_after(user, 1 SECONDS)) return var/new_tape_gag = new tape_gag(src) user.put_in_hands(new_tape_gag) use(1) to_chat(user, span_notice("You rip off a piece of tape.")) - playsound(user, 'sound/items/duct_tape_snap.ogg', 50, TRUE) + playsound(user, 'sound/items/duct_tape/duct_tape_snap.ogg', 50, TRUE) return TRUE return ..() @@ -53,10 +53,10 @@ return ITEM_INTERACT_BLOCKING user.visible_message(span_notice("[user] begins wrapping [target] with [src]."), span_notice("You begin wrapping [target] with [src].")) - playsound(user, 'sound/items/duct_tape_rip.ogg', 50, TRUE) + playsound(user, 'sound/items/duct_tape/duct_tape_rip.ogg', 50, TRUE) if(do_after(user, 3 SECONDS, target=target)) - playsound(user, 'sound/items/duct_tape_snap.ogg', 50, TRUE) + playsound(user, 'sound/items/duct_tape/duct_tape_snap.ogg', 50, TRUE) use(1) if(istype(target, /obj/item/clothing/gloves/fingerless)) var/obj/item/clothing/gloves/tackler/offbrand/O = new /obj/item/clothing/gloves/tackler/offbrand diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index b4855c52fae35..8d8b38c039294 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -83,7 +83,7 @@ return target_plating = target_plating.place_on_top(placed_turf_path, flags = CHANGETURF_INHERIT_AIR) target_plating.setDir(turf_dir) - playsound(target_plating, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(target_plating, 'sound/items/weapons/genhit.ogg', 50, TRUE) return target_plating // Most executions should end here. // If we and the target tile share the same initial baseturf and they consent, replace em. @@ -98,7 +98,7 @@ target_plating = target_plating.ChangeTurf(placed_turf_path, target_plating.baseturfs, CHANGETURF_INHERIT_AIR) target_plating.setDir(turf_dir) - playsound(target_plating, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(target_plating, 'sound/items/weapons/genhit.ogg', 50, TRUE) return target_plating /obj/item/stack/tile/handle_openspace_click(turf/target, mob/user, list/modifiers) diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index d1cbb7f1ce8a3..0b6c26899f21c 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -11,12 +11,28 @@ icon_state = "wrap_paper" inhand_icon_state = "wrap_paper" greyscale_config = /datum/greyscale_config/wrap_paper - item_flags = NOBLUDGEON amount = 25 max_amount = 25 resistance_flags = FLAMMABLE merge_type = /obj/item/stack/wrapping_paper singular_name = "wrapping paper" + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 5 + hitsound = 'sound/effects/bonk.ogg' + +/obj/item/stack/wrapping_paper/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND, INNATE_TRAIT) + +/obj/item/stack/wrapping_paper/attack(mob/living/target_mob, mob/living/user, params) + . = ..() + user.visible_message( + span_warning("[user] baps [target_mob] on the head with [src]!"), + span_warning("You bap [target_mob] on the head with [src]!"), + ) + target_mob.add_mood_event("roll", /datum/mood_event/bapped) /obj/item/stack/wrapping_paper/Initialize(mapload) . = ..() @@ -155,7 +171,6 @@ else balloon_alert(user, "not enough paper!") return ITEM_INTERACT_BLOCKING - else if(istype(interacting_with, /obj/machinery/portable_atmospherics)) var/obj/machinery/portable_atmospherics/portable_atmospherics = interacting_with if(portable_atmospherics.anchored) @@ -203,3 +218,17 @@ w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 5 + hitsound = 'sound/effects/bonk.ogg' + +/obj/item/c_tube/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND, INNATE_TRAIT) + +/obj/item/c_tube/attack(mob/living/target_mob, mob/living/user, params) + . = ..() + user.visible_message( + span_warning("[user] baps [target_mob] on the head with [src]!"), + span_warning("You bap [target_mob] on the head with [src]!"), + ) + target_mob.add_mood_event("roll", /datum/mood_event/bapped) + diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index a88da6537b64e..52c4d13def241 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -250,7 +250,7 @@ attack_verb_simple = list("MEAT", "MEAT MEAT") custom_materials = list(/datum/material/meat = SHEET_MATERIAL_AMOUNT * 25) // MEAT ///Sounds used in the squeak component - var/list/meat_sounds = list('sound/effects/blobattack.ogg' = 1) + var/list/meat_sounds = list('sound/effects/blob/blobattack.ogg' = 1) ///Reagents added to the edible component, ingested when you EAT the MEAT var/list/meat_reagents = list( /datum/reagent/consumable/nutriment/protein = 10, @@ -417,11 +417,11 @@ // How much time it takes to zip up (close) the duffelbag var/zip_up_duration = 0.5 SECONDS // Audio played during zipup - var/zip_up_sfx = 'sound/items/zip_up.ogg' + var/zip_up_sfx = 'sound/items/zip/zip_up.ogg' // How much time it takes to unzip the duffel var/unzip_duration = 2.1 SECONDS // Audio played during unzip - var/unzip_sfx = 'sound/items/un_zip.ogg' + var/unzip_sfx = 'sound/items/zip/un_zip.ogg' /obj/item/storage/backpack/duffelbag/Initialize(mapload) . = ..() @@ -642,7 +642,7 @@ zip_slowdown = 0.3 // Faster unzipping. Utilizes the same noise as zipping up to fit the unzip duration. unzip_duration = 0.5 SECONDS - unzip_sfx = 'sound/items/zip_up.ogg' + unzip_sfx = 'sound/items/zip/zip_up.ogg' /obj/item/storage/backpack/duffelbag/syndie/hitman desc = "A large duffel bag for holding extra things. There is a Nanotrasen logo on the back." diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 095250fdcca52..864078c4b0839 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -396,9 +396,9 @@ do_scatter(tray_item) if(prob(50)) - playsound(M, 'sound/items/trayhit1.ogg', 50, TRUE) + playsound(M, 'sound/items/trayhit/trayhit1.ogg', 50, TRUE) else - playsound(M, 'sound/items/trayhit2.ogg', 50, TRUE) + playsound(M, 'sound/items/trayhit/trayhit2.ogg', 50, TRUE) if(ishuman(M)) if(prob(10)) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index b5bd602076e53..708f05a72b6ed 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -379,7 +379,7 @@ /obj/item/restraints/handcuffs, /obj/item/restraints/legcuffs/bola, )) - atom_storage.open_sound = 'sound/items/holster.ogg' + atom_storage.open_sound = 'sound/items/handling/holster_open.ogg' atom_storage.open_sound_vary = TRUE atom_storage.rustle_sound = FALSE diff --git a/code/game/objects/items/storage/boxes/_boxes.dm b/code/game/objects/items/storage/boxes/_boxes.dm index 9401527299689..58e68b4487ab7 100644 --- a/code/game/objects/items/storage/boxes/_boxes.dm +++ b/code/game/objects/items/storage/boxes/_boxes.dm @@ -8,8 +8,8 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' resistance_flags = FLAMMABLE - drop_sound = 'sound/items/handling/cardboardbox_drop.ogg' - pickup_sound = 'sound/items/handling/cardboardbox_pickup.ogg' + drop_sound = 'sound/items/handling/cardboard_box/cardboardbox_drop.ogg' + pickup_sound = 'sound/items/handling/cardboard_box/cardboardbox_pickup.ogg' /// What material do we get when we fold this box? var/foldable_result = /obj/item/stack/sheet/cardboard /// What drawing will we get on the face of the box? @@ -19,8 +19,8 @@ . = ..() atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL update_appearance() - atom_storage.open_sound = 'sound/items/cardboard_box_open.ogg' - atom_storage.rustle_sound = 'sound/items/cardboard_box_rustle.ogg' + atom_storage.open_sound = 'sound/items/handling/cardboard_box/cardboard_box_open.ogg' + atom_storage.rustle_sound = 'sound/items/handling/cardboard_box/cardboard_box_rustle.ogg' /obj/item/storage/box/suicide_act(mob/living/carbon/user) var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) diff --git a/code/game/objects/items/storage/boxes/service_boxes.dm b/code/game/objects/items/storage/boxes/service_boxes.dm index 767f351635d3a..f50629818ecab 100644 --- a/code/game/objects/items/storage/boxes/service_boxes.dm +++ b/code/game/objects/items/storage/boxes/service_boxes.dm @@ -47,7 +47,7 @@ /obj/item/storage/box/mousetraps name = "box of Pest-B-Gon mousetraps" - desc = "Keep out of reach of children." + desc = span_alert("Keep out of reach of children.") illustration = "mousetrap" /obj/item/storage/box/mousetraps/PopulateContents() diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm index cc8a790c8ef34..010cc7ffd7f5a 100644 --- a/code/game/objects/items/storage/holsters.dm +++ b/code/game/objects/items/storage/holsters.dm @@ -33,7 +33,7 @@ /obj/item/gun/energy/laser/captain, /obj/item/gun/energy/e_gun/hos, )) - atom_storage.open_sound = 'sound/items/holster.ogg' + atom_storage.open_sound = 'sound/items/handling/holster_open.ogg' atom_storage.open_sound_vary = TRUE /obj/item/storage/belt/holster/energy diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm index e5db3d75855ea..643a1275b6f59 100644 --- a/code/game/objects/items/storage/medkit.dm +++ b/code/game/objects/items/storage/medkit.dm @@ -18,8 +18,8 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' throw_speed = 3 throw_range = 7 - drop_sound = 'sound/items/medkit_drop.ogg' - pickup_sound = 'sound/items/medkit_pick_up.ogg' + drop_sound = 'sound/items/handling/medkit/medkit_drop.ogg' + pickup_sound = 'sound/items/handling/medkit/medkit_pick_up.ogg' sound_vary = TRUE var/empty = FALSE /// Defines damage type of the medkit. General ones stay null. Used for medibot healing bonuses @@ -82,9 +82,9 @@ /obj/item/storage/medkit/Initialize(mapload) . = ..() atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL - atom_storage.open_sound = 'sound/items/medkit_open.ogg' + atom_storage.open_sound = 'sound/items/handling/medkit/medkit_open.ogg' atom_storage.open_sound_vary = TRUE - atom_storage.rustle_sound = 'sound/items/medkit_rustle.ogg' + atom_storage.rustle_sound = 'sound/items/handling/medkit/medkit_rustle.ogg' /obj/item/storage/medkit/regular icon_state = "medkit" diff --git a/code/game/objects/items/storage/sixpack.dm b/code/game/objects/items/storage/sixpack.dm index a6e36bf05925f..f1a950f025b8c 100644 --- a/code/game/objects/items/storage/sixpack.dm +++ b/code/game/objects/items/storage/sixpack.dm @@ -42,9 +42,9 @@ new /obj/item/reagent_containers/cup/soda_cans/cola(src) /obj/item/storage/cans/sixbeer - name = "beer bottle ring" - desc = "Holds six beer bottles. Remember to recycle when you're done!" + name = "beer can ring" + desc = "Holds six beers. Remember to recycle when you're done!" /obj/item/storage/cans/sixbeer/PopulateContents() for(var/i in 1 to 6) - new /obj/item/reagent_containers/cup/glass/bottle/beer(src) + new /obj/item/reagent_containers/cup/soda_cans/beer(src) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 873b45210cdec..c939e3d0dd9f4 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -16,9 +16,9 @@ custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*5) attack_verb_continuous = list("robusts") attack_verb_simple = list("robust") - hitsound = 'sound/weapons/smash.ogg' - drop_sound = 'sound/items/handling/toolbox_drop.ogg' - pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' + hitsound = 'sound/items/weapons/smash.ogg' + drop_sound = 'sound/items/handling/toolbox/toolbox_drop.ogg' + pickup_sound = 'sound/items/handling/toolbox/toolbox_pickup.ogg' material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR var/latches = "single_latch" var/has_latches = TRUE @@ -33,8 +33,8 @@ if(prob(1)) latches = "triple_latch" update_appearance() - atom_storage.open_sound = 'sound/items/toolbox_open.ogg' - atom_storage.rustle_sound = 'sound/items/toolbox_rustle.ogg' + atom_storage.open_sound = 'sound/items/handling/toolbox/toolbox_open.ogg' + atom_storage.rustle_sound = 'sound/items/handling/toolbox/toolbox_rustle.ogg' AddElement(/datum/element/falling_hazard, damage = force, wound_bonus = wound_bonus, hardhat_safety = TRUE, crushes = FALSE, impact_sound = hitsound) /obj/item/storage/toolbox/update_overlays() diff --git a/code/game/objects/items/tail_pin.dm b/code/game/objects/items/tail_pin.dm index 71bd50b1dda21..df191da845aa4 100644 --- a/code/game/objects/items/tail_pin.dm +++ b/code/game/objects/items/tail_pin.dm @@ -8,7 +8,7 @@ throwforce = 0 throw_speed = 1 custom_materials = list(/datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT) - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("pokes", "jabs", "pins the tail on") attack_verb_simple = list("poke", "jab") sharpness = SHARP_POINTY diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index a7a577c77cf16..6976c936b665f 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -14,10 +14,16 @@ var/on = FALSE /// If the jetpack will stop when you stop moving var/stabilize = FALSE + /// If the jetpack will have a speedboost in space/nograv or not + var/full_speed = TRUE /// If our jetpack is disabled, from getting EMPd var/disabled = FALSE /// Callback for the jetpack component var/thrust_callback + /// How much force out jetpack can output per tick + var/drift_force = 1.5 NEWTONS + /// How much force this jetpack can output per tick to stabilize the user + var/stabilizer_force = 1.2 NEWTONS /obj/item/tank/jetpack/Initialize(mapload) . = ..() @@ -35,19 +41,27 @@ * Arguments * stabilize - Should this jetpack be stabalized */ -/obj/item/tank/jetpack/proc/configure_jetpack(stabilize) +/obj/item/tank/jetpack/proc/configure_jetpack(stabilize, mob/user = null) src.stabilize = stabilize AddComponent( \ /datum/component/jetpack, \ src.stabilize, \ + drift_force, \ + stabilizer_force, \ COMSIG_JETPACK_ACTIVATED, \ COMSIG_JETPACK_DEACTIVATED, \ JETPACK_ACTIVATION_FAILED, \ thrust_callback, \ - /datum/effect_system/trail_follow/ion \ + /datum/effect_system/trail_follow/ion, \ ) + if (!isnull(user) && user.get_item_by_slot(slot_flags) == src) + if (!stabilize) + ADD_TRAIT(user, TRAIT_NOGRAV_ALWAYS_DRIFT, JETPACK_TRAIT) + else + REMOVE_TRAIT(user, TRAIT_NOGRAV_ALWAYS_DRIFT, JETPACK_TRAIT) + /obj/item/tank/jetpack/item_action_slot_check(slot) if(slot & slot_flags) return TRUE @@ -73,7 +87,7 @@ cycle(user) else if(istype(action, /datum/action/item_action/jetpack_stabilization)) if(on) - configure_jetpack(!stabilize) + configure_jetpack(!stabilize, user) to_chat(user, span_notice("You turn the jetpack stabilization [stabilize ? "on" : "off"].")) else toggle_internals(user) @@ -105,12 +119,19 @@ return FALSE on = TRUE update_icon(UPDATE_ICON_STATE) + if(full_speed) + user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/full_speed) + if (!stabilize) + ADD_TRAIT(user, TRAIT_NOGRAV_ALWAYS_DRIFT, JETPACK_TRAIT) return TRUE /obj/item/tank/jetpack/proc/turn_off(mob/user) SEND_SIGNAL(src, COMSIG_JETPACK_DEACTIVATED, user) on = FALSE update_icon(UPDATE_ICON_STATE) + if(user) + user.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/full_speed) + REMOVE_TRAIT(user, TRAIT_NOGRAV_ALWAYS_DRIFT, JETPACK_TRAIT) /obj/item/tank/jetpack/proc/allow_thrust(num, use_fuel = TRUE) if(!ismob(loc)) @@ -168,6 +189,9 @@ worn_icon_state = "jetpack-improvised" volume = 20 //normal jetpacks have 70 volume gas_type = null //it starts empty + full_speed = FALSE + drift_force = 1 NEWTONS + stabilizer_force = 0.5 NEWTONS /obj/item/tank/jetpack/improvised/allow_thrust(num) if(!ismob(loc)) @@ -210,6 +234,8 @@ volume = 90 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF //steal objective items are hard to destroy. slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_SUITSTORE + drift_force = 2 NEWTONS + stabilizer_force = 2 NEWTONS /obj/item/tank/jetpack/oxygen/security name = "security jetpack (oxygen)" diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 9c7138e00dee0..8a7f18ed2cc5d 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -21,9 +21,9 @@ obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BACK worn_icon = 'icons/mob/clothing/back.dmi' //since these can also get thrown into suit storage slots. if something goes on the belt, set this to null. - hitsound = 'sound/weapons/smash.ogg' - pickup_sound = 'sound/items/gas_tank_pick_up.ogg' - drop_sound = 'sound/items/gas_tank_drop.ogg' + hitsound = 'sound/items/weapons/smash.ogg' + pickup_sound = 'sound/items/handling/gas_tank/gas_tank_pick_up.ogg' + drop_sound = 'sound/items/handling/gas_tank/gas_tank_drop.ogg' sound_vary = TRUE pressure_resistance = ONE_ATMOSPHERE * 5 force = 5 @@ -86,13 +86,13 @@ /// Called by carbons after they connect the tank to their breathing apparatus. /obj/item/tank/proc/after_internals_opened(mob/living/carbon/carbon_target) breathing_mob = carbon_target - playsound(loc, 'sound/items/internals_on.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(loc, 'sound/items/internals/internals_on.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) RegisterSignal(carbon_target, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(get_status_tab_item)) /// Called by carbons after they disconnect the tank from their breathing apparatus. /obj/item/tank/proc/after_internals_closed(mob/living/carbon/carbon_target) breathing_mob = null - playsound(loc, 'sound/items/internals_off.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(loc, 'sound/items/internals/internals_off.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) UnregisterSignal(carbon_target, COMSIG_MOB_GET_STATUS_TAB_ITEMS) /obj/item/tank/proc/get_status_tab_item(mob/living/source, list/items) @@ -443,7 +443,7 @@ /obj/item/tank/receive_signal() //This is mainly called by the sensor through sense() to the holder, and from the holder to here. audible_message(span_warning("[icon2html(src, hearers(src))] *beep* *beep* *beep*")) - playsound(src, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) + playsound(src, 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) addtimer(CALLBACK(src, PROC_REF(ignite)), 1 SECONDS) /// Attaches an assembly holder to the tank to create a bomb. diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 15db2a5d3edf2..1c23937d2b589 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -371,7 +371,7 @@ qdel(src) // Please don't spacedrift thanks -/obj/effect/resin_container/newtonian_move(direction, instant = FALSE, start_delay = 0) +/obj/effect/resin_container/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 0, controlled_cap = null) return TRUE #undef EXTINGUISHER diff --git a/code/game/objects/items/tcg/tcg.dm b/code/game/objects/items/tcg/tcg.dm index 30650fcd69f7e..1f6c334c9921b 100644 --- a/code/game/objects/items/tcg/tcg.dm +++ b/code/game/objects/items/tcg/tcg.dm @@ -400,7 +400,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices) new /obj/item/tcgcard(get_turf(user), series, template) to_chat(user, span_notice("Wow! Check out these cards!")) new /obj/effect/decal/cleanable/wrapping(get_turf(user)) - playsound(loc, 'sound/items/poster_ripped.ogg', 20, TRUE) + playsound(loc, 'sound/items/poster/poster_ripped.ogg', 20, TRUE) if(prob(contains_coin)) to_chat(user, span_notice("...and it came with a flipper, too!")) new /obj/item/coin/thunderdome(get_turf(user)) diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index 6fa7e8d23b340..8634336504d54 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -365,7 +365,7 @@ if(ishuman(loc)) var/mob/living/carbon/human/holder = loc balloon_alert(holder, "teleporter beeps") - playsound(src, 'sound/machines/twobeep.ogg', 10, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) + playsound(src, 'sound/machines/beep/twobeep.ogg', 10, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) /obj/item/syndicate_teleporter/emp_act(severity) . = ..() @@ -479,7 +479,7 @@ new /obj/effect/temp_visual/teleport_abductor/syndi_teleporter(destination) 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) + playsound(destination, 'sound/effects/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/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index d51130a4d21d2..a2efbe2d4beba 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -254,7 +254,7 @@ icon_state = "supermatter_scalpel" toolspeed = 0.5 damtype = BURN - usesound = 'sound/weapons/bladeslice.ogg' + usesound = 'sound/items/weapons/bladeslice.ogg' var/usesLeft /obj/item/scalpel/supermatter/Initialize(mapload) diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 20e3846adefab..b98ace86cf006 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -6,8 +6,8 @@ inhand_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' - operating_sound = 'sound/items/crowbar_prying.ogg' + usesound = 'sound/items/tools/crowbar.ogg' + operating_sound = 'sound/items/tools/crowbar_prying.ogg' obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BELT force = 5 @@ -15,8 +15,8 @@ demolition_mod = 1.25 w_class = WEIGHT_CLASS_SMALL custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*0.5) - drop_sound = 'sound/items/handling/crowbar_drop.ogg' - pickup_sound = 'sound/items/handling/crowbar_pickup.ogg' + drop_sound = 'sound/items/handling/tools/crowbar_drop.ogg' + pickup_sound = 'sound/items/handling/tools/crowbar_pickup.ogg' attack_verb_continuous = list("attacks", "bashes", "batters", "bludgeons", "whacks") attack_verb_simple = list("attack", "bash", "batter", "bludgeon", "whack") @@ -35,7 +35,7 @@ /obj/item/crowbar/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) + playsound(loc, 'sound/items/weapons/genhit.ogg', 50, TRUE, -1) return BRUTELOSS /obj/item/crowbar/red @@ -47,7 +47,7 @@ name = "alien crowbar" desc = "A hard-light crowbar. It appears to pry by itself, without any effort required." icon = 'icons/obj/antags/abductor.dmi' - usesound = 'sound/weapons/sonic_jackhammer.ogg' + usesound = 'sound/items/weapons/sonic_jackhammer.ogg' 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) icon_state = "crowbar" belt_icon_state = "crowbar_alien" @@ -115,7 +115,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2.25, /datum/material/silver = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/titanium = SHEET_MATERIAL_AMOUNT*1.75) - usesound = 'sound/items/jaws_pry.ogg' + usesound = 'sound/items/tools/jaws_pry.ogg' force = 15 w_class = WEIGHT_CLASS_NORMAL toolspeed = 0.7 @@ -152,7 +152,7 @@ tool_behaviour = (active ? TOOL_WIRECUTTER : TOOL_CROWBAR) if(user) balloon_alert(user, "attached [active ? "cutting" : "prying"]") - playsound(src, 'sound/items/change_jaws.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/change_jaws.ogg', 50, TRUE) if(tool_behaviour == TOOL_CROWBAR) RemoveElement(/datum/element/cuffsnapping, snap_time_weak_handcuffs, snap_time_strong_handcuffs) else @@ -174,10 +174,10 @@ /obj/item/crowbar/power/suicide_act(mob/living/user) if(tool_behaviour == TOOL_CROWBAR) user.visible_message(span_suicide("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!")) - playsound(loc, 'sound/items/jaws_pry.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/tools/jaws_pry.ogg', 50, TRUE, -1) else user.visible_message(span_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!")) - playsound(loc, 'sound/items/jaws_cut.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/tools/jaws_cut.ogg', 50, TRUE, -1) if(iscarbon(user)) var/mob/living/carbon/suicide_victim = user var/obj/item/bodypart/target_bodypart = suicide_victim.get_bodypart(BODY_ZONE_HEAD) @@ -192,7 +192,7 @@ icon = 'icons/obj/items_cyborg.dmi' icon_state = "toolkit_engiborg_crowbar" worn_icon_state = "toolkit_engiborg_crowbar" //error sprite - this shouldn't have been dropped - usesound = 'sound/items/jaws_pry.ogg' + usesound = 'sound/items/tools/jaws_pry.ogg' force = 10 toolspeed = 0.5 @@ -234,7 +234,7 @@ user.log_message("tried to pry open [mech], located at [loc_name(mech)], which is currently occupied by [mech.occupants.Join(", ")].", LOG_ATTACK) var/mech_dir = mech.dir mech.balloon_alert(user, "prying open...") - playsound(mech, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(mech, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) if(!use_tool(mech, user, (mech.mecha_flags & IS_ENCLOSED) ? 5 SECONDS : 3 SECONDS, volume = 0, extra_checks = CALLBACK(src, PROC_REF(extra_checks), mech, mech_dir))) mech.balloon_alert(user, "interrupted!") return @@ -243,7 +243,7 @@ if(isAI(occupant)) continue mech.mob_exit(occupant, randomstep = TRUE) - playsound(mech, 'sound/machines/airlockforced.ogg', 75, TRUE) + playsound(mech, 'sound/machines/airlock/airlockforced.ogg', 75, TRUE) /obj/item/crowbar/mechremoval/proc/extra_checks(obj/vehicle/sealed/mecha/mech, mech_dir) return HAS_TRAIT(src, TRAIT_WIELDED) && LAZYLEN(mech.occupants) && mech.dir == mech_dir diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index b9e0d15e69f6e..8cf9005d19137 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -20,14 +20,14 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*0.75) attack_verb_continuous = list("stabs") attack_verb_simple = list("stab") - hitsound = 'sound/weapons/bladeslice.ogg' - usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg') - operating_sound = 'sound/items/screwdriver_operating.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' + usesound = list('sound/items/tools/screwdriver.ogg', 'sound/items/tools/screwdriver2.ogg') + operating_sound = 'sound/items/tools/screwdriver_operating.ogg' tool_behaviour = TOOL_SCREWDRIVER toolspeed = 1 armor_type = /datum/armor/item_screwdriver - drop_sound = 'sound/items/handling/screwdriver_drop.ogg' - pickup_sound = 'sound/items/handling/screwdriver_pickup.ogg' + drop_sound = 'sound/items/handling/tools/screwdriver_drop.ogg' + pickup_sound = 'sound/items/handling/tools/screwdriver_pickup.ogg' sharpness = SHARP_POINTY greyscale_config = /datum/greyscale_config/screwdriver greyscale_config_inhand_left = /datum/greyscale_config/screwdriver_inhand_left @@ -68,7 +68,7 @@ icon_state = "screwdriver_a" inhand_icon_state = "screwdriver_nuke" custom_materials = list(/datum/material/iron=HALF_SHEET_MATERIAL_AMOUNT*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/items/pshoom.ogg' + usesound = 'sound/items/pshoom/pshoom.ogg' toolspeed = 0.1 random_color = FALSE greyscale_config_inhand_left = null @@ -93,8 +93,8 @@ throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far attack_verb_continuous = list("drills", "screws", "jabs", "whacks") attack_verb_simple = list("drill", "screw", "jab", "whack") - hitsound = 'sound/items/drill_hit.ogg' - usesound = 'sound/items/drill_use.ogg' + hitsound = 'sound/items/tools/drill_hit.ogg' + usesound = 'sound/items/tools/drill_use.ogg' w_class = WEIGHT_CLASS_NORMAL toolspeed = 0.7 random_color = FALSE @@ -130,7 +130,7 @@ tool_behaviour = (active ? TOOL_WRENCH : TOOL_SCREWDRIVER) if(user) balloon_alert(user, "attached [active ? "bolt bit" : "screw bit"]") - playsound(src, 'sound/items/change_drill.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/change_drill.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/screwdriver/power/examine() @@ -142,7 +142,7 @@ user.visible_message(span_suicide("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!")) else user.visible_message(span_suicide("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(loc, 'sound/items/drill_use.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/tools/drill_use.ogg', 50, TRUE, -1) return BRUTELOSS /obj/item/screwdriver/cyborg @@ -150,8 +150,8 @@ desc = "A powerful automated screwdriver, designed to be both precise and quick." icon = 'icons/obj/items_cyborg.dmi' icon_state = "toolkit_engiborg_screwdriver" - hitsound = 'sound/items/drill_hit.ogg' - usesound = 'sound/items/drill_use.ogg' + hitsound = 'sound/items/tools/drill_hit.ogg' + usesound = 'sound/items/tools/drill_use.ogg' toolspeed = 0.5 random_color = FALSE diff --git a/code/game/objects/items/tools/spess_knife.dm b/code/game/objects/items/tools/spess_knife.dm index 9fd5dbb01582a..4019aa41c701d 100644 --- a/code/game/objects/items/tools/spess_knife.dm +++ b/code/game/objects/items/tools/spess_knife.dm @@ -68,7 +68,7 @@ update_tool_parameters() update_appearance(UPDATE_ICON_STATE) - playsound(src, 'sound/weapons/empty.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/empty.ogg', 50, TRUE) /// Used to pick random tool behavior for the knife /obj/item/spess_knife/proc/pick_tool() diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index dfc406437201b..41bcc25eba652 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -12,9 +12,9 @@ force = 3 throwforce = 5 hitsound = SFX_SWING_HIT - usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') - drop_sound = 'sound/items/handling/weldingtool_drop.ogg' - pickup_sound = 'sound/items/handling/weldingtool_pickup.ogg' + usesound = list('sound/items/tools/welder.ogg', 'sound/items/tools/welder2.ogg') + drop_sound = 'sound/items/handling/tools/weldingtool_drop.ogg' + pickup_sound = 'sound/items/handling/tools/weldingtool_pickup.ogg' light_system = OVERLAY_LIGHT light_range = 2 light_power = 1.5 @@ -46,8 +46,8 @@ /// When fuel was last removed. var/burned_fuel_for = 0 - var/activation_sound = 'sound/items/welderactivate.ogg' - var/deactivation_sound = 'sound/items/welderdeactivate.ogg' + var/activation_sound = 'sound/items/tools/welderactivate.ogg' + var/deactivation_sound = 'sound/items/tools/welderdeactivate.ogg' /datum/armor/item_weldingtool fire = 100 @@ -242,7 +242,7 @@ playsound(loc, activation_sound, 50, TRUE) force = 15 damtype = BURN - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' update_appearance() START_PROCESSING(SSobj, src) else diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 7f2b11777d8f5..234f268ace29d 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -22,11 +22,11 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*0.8) attack_verb_continuous = list("pinches", "nips") attack_verb_simple = list("pinch", "nip") - hitsound = 'sound/items/wirecutter.ogg' - usesound = 'sound/items/wirecutter.ogg' - operating_sound = 'sound/items/wirecutter_cut.ogg' - drop_sound = 'sound/items/handling/wirecutter_drop.ogg' - pickup_sound = 'sound/items/handling/wirecutter_pickup.ogg' + hitsound = 'sound/items/tools/wirecutter.ogg' + usesound = 'sound/items/tools/wirecutter.ogg' + operating_sound = 'sound/items/tools/wirecutter_cut.ogg' + drop_sound = 'sound/items/handling/tools/wirecutter_drop.ogg' + pickup_sound = 'sound/items/handling/tools/wirecutter_pickup.ogg' tool_behaviour = TOOL_WIRECUTTER toolspeed = 1 armor_type = /datum/armor/item_wirecutters diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index aa72b5d257ac6..41b4556ebace5 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -13,11 +13,11 @@ 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') + usesound = 'sound/items/tools/ratchet.ogg' + operating_sound = list('sound/items/tools/ratchet_fast.ogg', 'sound/items/tools/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' + drop_sound = 'sound/items/handling/tools/wrench_drop.ogg' + pickup_sound = 'sound/items/handling/tools/wrench_pickup.ogg' attack_verb_continuous = list("bashes", "batters", "bludgeons", "whacks") attack_verb_simple = list("bash", "batter", "bludgeon", "whack") @@ -35,7 +35,7 @@ /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) + playsound(loc, 'sound/items/weapons/genhit.ogg', 50, TRUE, -1) return BRUTELOSS /obj/item/wrench/abductor @@ -124,7 +124,7 @@ 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) + playsound(src, active ? 'sound/items/weapons/saberon.ogg' : 'sound/items/weapons/saberoff.ogg', 5, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/wrench/bolter diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm index d08deec62e316..9aa8ef8ea0259 100644 --- a/code/game/objects/items/toy_mechs.dm +++ b/code/game/objects/items/toy_mechs.dm @@ -129,7 +129,7 @@ to_chat(user, span_notice("You play with [src].")) timer = world.time + cooldown if(!quiet) - playsound(user, 'sound/mecha/mechstep.ogg', 20, TRUE) + playsound(user, 'sound/vehicles/mecha/mechstep.ogg', 20, TRUE) else . = ..() @@ -193,7 +193,7 @@ to_chat(user, span_notice("You telekinetically play with [src].")) timer = world.time + cooldown if(!quiet) - playsound(user, 'sound/mecha/mechstep.ogg', 20, TRUE) + playsound(user, 'sound/vehicles/mecha/mechstep.ogg', 20, TRUE) return COMPONENT_CANCEL_ATTACK_CHAIN @@ -224,12 +224,12 @@ switch(i) if(1, 3) SpinAnimation(5, 0) - playsound(src, 'sound/mecha/mechstep.ogg', 30, TRUE) + playsound(src, 'sound/vehicles/mecha/mechstep.ogg', 30, TRUE) user.adjustBruteLoss(25) user.adjustStaminaLoss(50) if(2) user.SpinAnimation(5, 0) - playsound(user, 'sound/weapons/smash.ogg', 20, TRUE) + playsound(user, 'sound/items/weapons/smash.ogg', 20, TRUE) combat_health-- //we scratched it! if(4) say(special_attack_cry + "!!") @@ -330,7 +330,7 @@ span_danger("You begin charging [attacker]'s special attack!")) else //just attack attacker.SpinAnimation(5, 0) - playsound(attacker, 'sound/mecha/mechstep.ogg', 30, TRUE) + playsound(attacker, 'sound/vehicles/mecha/mechstep.ogg', 30, TRUE) combat_health-- attacker_controller.visible_message(span_danger("[attacker] devastates [src]!"), \ span_danger("You ram [attacker] into [src]!"), \ @@ -357,7 +357,7 @@ span_danger("[src] and [attacker] clash dramatically, causing sparks to fly!"), \ span_hear("You hear hard plastic rubbing against hard plastic."), COMBAT_MESSAGE_RANGE) if(5) //both win - playsound(attacker, 'sound/weapons/parry.ogg', 20, TRUE) + playsound(attacker, 'sound/items/weapons/parry.ogg', 20, TRUE) if(prob(50)) attacker_controller.visible_message(span_danger("[src]'s attack deflects off of [attacker]."), \ span_danger("[src]'s attack deflects off of [attacker]."), \ @@ -374,7 +374,7 @@ span_danger("You begin charging [src]'s special attack!")) else //just attack SpinAnimation(5, 0) - playsound(src, 'sound/mecha/mechstep.ogg', 30, TRUE) + playsound(src, 'sound/vehicles/mecha/mechstep.ogg', 30, TRUE) attacker.combat_health-- src_controller.visible_message(span_danger("[src] smashes [attacker]!"), \ span_danger("You smash [src] into [attacker]!"), \ @@ -476,14 +476,14 @@ switch(special_attack_type) if(SPECIAL_ATTACK_DAMAGE) //+2 damage victim.combat_health-=2 - playsound(src, 'sound/weapons/marauder.ogg', 20, TRUE) + playsound(src, 'sound/items/weapons/marauder.ogg', 20, TRUE) if(SPECIAL_ATTACK_HEAL) //+2 healing combat_health+=2 - playsound(src, 'sound/mecha/mech_shield_raise.ogg', 20, TRUE) + playsound(src, 'sound/vehicles/mecha/mech_shield_raise.ogg', 20, TRUE) if(SPECIAL_ATTACK_UTILITY) //+1 heal, +1 damage victim.combat_health-- combat_health++ - playsound(src, 'sound/mecha/mechmove01.ogg', 30, TRUE) + playsound(src, 'sound/vehicles/mecha/mechmove01.ogg', 30, TRUE) if(SPECIAL_ATTACK_OTHER) //other super_special_attack(victim) else @@ -571,7 +571,7 @@ special_attack_cry = "MEGA HORN" /obj/item/toy/mecha/honk/super_special_attack(obj/item/toy/mecha/victim) - playsound(src, 'sound/machines/honkbot_evil_laugh.ogg', 20, TRUE) + playsound(src, 'sound/mobs/non-humanoids/honkbot/honkbot_evil_laugh.ogg', 20, TRUE) victim.special_attack_cooldown += 3 //Adds cooldown to the other mech and gives a minor self heal combat_health++ @@ -605,7 +605,7 @@ special_attack_cry = "KILLER CLAMP" /obj/item/toy/mecha/deathripley/super_special_attack(obj/item/toy/mecha/victim) - playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 20, TRUE) + playsound(src, 'sound/items/weapons/sonic_jackhammer.ogg', 20, TRUE) if(victim.combat_health < combat_health) //Instantly kills the other mech if its health is below ours. say("EXECUTE!!") victim.combat_health = 0 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 139a3fcb216f2..065f4929e4089 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -199,7 +199,7 @@ return ..() /obj/item/toy/balloon/proc/pop_balloon(monkey_pop = FALSE) - playsound(src, 'sound/effects/cartoon_pop.ogg', 50, vary = TRUE) + playsound(src, 'sound/effects/cartoon_sfx/cartoon_pop.ogg', 50, vary = TRUE) if(monkey_pop) // Monkeys make money from popping bloons new /obj/item/coin/iron(get_turf(src)) qdel(src) @@ -398,7 +398,7 @@ /obj/item/toy/captainsaid/attack_self(mob/living/user) current_mode++ - playsound(src, 'sound/items/screwdriver2.ogg', 50, vary = TRUE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 50, vary = TRUE) if (current_mode <= modes.len) balloon_alert(user, "set to [current_mode]") else @@ -531,9 +531,9 @@ src.add_fingerprint(user) if (src.bullets < 1) user.show_message(span_warning("*click*"), MSG_AUDIBLE) - playsound(src, 'sound/weapons/gun/revolver/dry_fire.ogg', 30, TRUE) + playsound(src, 'sound/items/weapons/gun/revolver/dry_fire.ogg', 30, TRUE) return ITEM_INTERACT_SUCCESS - playsound(user, 'sound/weapons/gun/revolver/shot.ogg', 100, TRUE) + playsound(user, 'sound/items/weapons/gun/revolver/shot.ogg', 100, TRUE) src.bullets-- user.visible_message(span_danger("[user] fires [src] at [interacting_with]!"), \ span_danger("You fire [src] at [interacting_with]!"), \ @@ -606,7 +606,7 @@ if(user) balloon_alert(user, "[active ? "flicked out":"pushed in"] [src]") - playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 20, TRUE) + playsound(src, active ? 'sound/items/weapons/saberon.ogg' : 'sound/items/weapons/saberoff.ogg', 20, TRUE) update_appearance(UPDATE_ICON) return COMPONENT_NO_DEFAULT_MESSAGE @@ -697,9 +697,9 @@ inhand_icon_state = "artistic_toolbox" lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' - hitsound = 'sound/weapons/smash.ogg' - drop_sound = 'sound/items/handling/toolbox_drop.ogg' - pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' + hitsound = 'sound/items/weapons/smash.ogg' + drop_sound = 'sound/items/handling/toolbox/toolbox_drop.ogg' + pickup_sound = 'sound/items/handling/toolbox/toolbox_pickup.ogg' attack_verb_continuous = list("robusts") attack_verb_simple = list("robust") var/active = FALSE @@ -747,7 +747,7 @@ active = FALSE update_appearance() visible_message(span_warning("[src] slowly stops rattling and falls still, its latch snapping shut.")) //subtle difference - playsound(loc, 'sound/weapons/batonextend.ogg', 100, TRUE) + playsound(loc, 'sound/items/weapons/batonextend.ogg', 100, TRUE) animate(src, transform = matrix()) /* @@ -790,7 +790,7 @@ w_class = WEIGHT_CLASS_NORMAL attack_verb_continuous = list("attacks", "slashes", "stabs", "slices") attack_verb_simple = list("attack", "slash", "stab", "slice") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' /* * Snap pops @@ -963,7 +963,7 @@ cooldown = world.time + 600 user.audible_message(span_hear("You hear the click of a button."), self_message = span_notice("You activate [src], it plays a loud noise!")) sleep(0.5 SECONDS) - playsound(src, 'sound/machines/alarm.ogg', 20, FALSE) + playsound(src, 'sound/announcer/alarm/nuke_alarm.ogg', 20, FALSE) sleep(14 SECONDS) user.visible_message(span_alert("[src] violently explodes!")) explosion(src, light_impact_range = 1) @@ -973,7 +973,7 @@ user.visible_message(span_warning("[user] presses a button on [src]."), span_notice("You activate [src], it plays a loud noise!"), span_hear("You hear the click of a button.")) sleep(0.5 SECONDS) icon_state = "nuketoy" - playsound(src, 'sound/machines/alarm.ogg', 20, FALSE) + playsound(src, 'sound/announcer/alarm/nuke_alarm.ogg', 20, FALSE) sleep(13.5 SECONDS) icon_state = "nuketoycool" sleep(cooldown - world.time) @@ -1032,7 +1032,7 @@ if (cooldown < world.time) cooldown = (world.time + 300) // Sets cooldown at 30 seconds user.visible_message(span_warning("[user] presses the big red button."), span_notice("You press the button, it plays a loud noise!"), span_hear("The button clicks loudly.")) - playsound(src, 'sound/effects/explosionfar.ogg', 50, FALSE) + playsound(src, 'sound/effects/explosion/explosionfar.ogg', 50, FALSE) for(var/mob/M in urange(10, src)) // Checks range if(!M.stat && !isAI(M)) // Checks to make sure whoever's getting shaken is alive/not the AI // Short delay to match up with the explosion sound @@ -1104,7 +1104,7 @@ if (cooldown < world.time) cooldown = world.time + 1800 //3 minutes user.visible_message(span_warning("[user] rotates a cogwheel on [src]."), span_notice("You rotate a cogwheel on [src], it plays a loud noise!"), span_hear("You hear cogwheels turning.")) - playsound(src, 'sound/magic/clockwork/ark_activation.ogg', 50, FALSE) + playsound(src, 'sound/effects/magic/clockwork/ark_activation.ogg', 50, FALSE) else to_chat(user, span_alert("The cogwheels are already turning!")) @@ -1143,7 +1143,7 @@ icon_state = "[initial(icon_state)]_used" sleep(0.5 SECONDS) audible_message(span_danger("[icon2html(src, viewers(src))] Hiss!")) - var/list/possible_sounds = list('sound/voice/hiss1.ogg', 'sound/voice/hiss2.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss4.ogg') + var/list/possible_sounds = list('sound/mobs/non-humanoids/hiss/hiss1.ogg', 'sound/mobs/non-humanoids/hiss/hiss2.ogg', 'sound/mobs/non-humanoids/hiss/hiss3.ogg', 'sound/mobs/non-humanoids/hiss/hiss4.ogg') var/chosen_sound = pick(possible_sounds) playsound(get_turf(src), chosen_sound, 50, TRUE) addtimer(VARSET_CALLBACK(src, icon_state, "[initial(icon_state)]"), 4.5 SECONDS) @@ -1215,7 +1215,7 @@ name = "\improper Cyborg action figure" icon_state = "borg" toysay = "I. LIVE. AGAIN." - toysound = 'sound/voice/liveagain.ogg' + toysound = 'sound/mobs/non-humanoids/cyborg/liveagain.ogg' /obj/item/toy/figure/botanist name = "\improper Botanist action figure" @@ -1358,7 +1358,7 @@ name = "\improper Wizard action figure" icon_state = "wizard" toysay = "EI NATH!" - toysound = 'sound/magic/disintegrate.ogg' + toysound = 'sound/effects/magic/disintegrate.ogg' /obj/item/toy/figure/rd name = "\improper Research Director action figure" @@ -1369,13 +1369,13 @@ name = "\improper Roboticist action figure" icon_state = "roboticist" toysay = "Big stompy mechs!" - toysound = 'sound/mecha/mechstep.ogg' + toysound = 'sound/vehicles/mecha/mechstep.ogg' /obj/item/toy/figure/scientist name = "\improper Scientist action figure" icon_state = "scientist" toysay = "I call ordnance." - toysound = 'sound/effects/explosionfar.ogg' + toysound = 'sound/effects/explosion/explosionfar.ogg' /obj/item/toy/figure/syndie name = "\improper Nuclear Operative action figure" @@ -1460,7 +1460,7 @@ /obj/item/toy/braintoy/attack_self(mob/user) if(cooldown <= world.time) cooldown = (world.time + 10) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/effects/blobattack.ogg', 50, FALSE), 0.5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/effects/blob/blobattack.ogg', 50, FALSE), 0.5 SECONDS) /* * Eldritch Toys @@ -1637,7 +1637,7 @@ GLOBAL_LIST_EMPTY(intento_players) /obj/item/toy/intento/proc/boot() say("Game starting!") - playsound(src, 'sound/machines/synth_yes.ogg', 50, FALSE) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50, FALSE) state = STATE_STARTING COOLDOWN_START(src, next_process, TIME_TO_BEGIN) @@ -1716,7 +1716,7 @@ GLOBAL_LIST_EMPTY(intento_players) user.client.give_award(/datum/award/score/intento_score, user, award_score) say("GAME OVER. Your score was [score]!") - playsound(src, 'sound/machines/synth_no.ogg', 50, FALSE) + playsound(src, 'sound/machines/synth/synth_no.ogg', 50, FALSE) if(user && loc == user && obj_flags & EMAGGED) ADD_TRAIT(src, TRAIT_NODROP, type) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 821f994a1ed6f..7015e403141c4 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -67,7 +67,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 . = "A sacred weapon of the higher castes from the clown planet, used to strike fear into the hearts of their foes. Wield it with care." /obj/item/balloon_mallet/attack(mob/living/target, mob/living/user) - playsound(loc, 'sound/creatures/clown/hehe.ogg', 20) + playsound(loc, 'sound/mobs/non-humanoids/clown/hehe.ogg', 20) if (!isliving(target)) return switch(target.mob_mood.sanity) @@ -94,7 +94,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 2 throwforce = 1 w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") @@ -111,7 +111,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 inhand_icon_state = "claymore" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 40 @@ -120,7 +120,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") block_chance = 50 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED max_integrity = 200 armor_type = /datum/armor/item_claymore @@ -332,7 +332,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 user.update_held_items() name = new_name - playsound(user, 'sound/items/screwdriver2.ogg', 50, TRUE) + playsound(user, 'sound/items/tools/screwdriver2.ogg', 50, TRUE) /obj/item/claymore/highlander/robot //BLOODTHIRSTY BORGS NOW COME IN PLAID icon = 'icons/obj/items_cyborg.dmi' @@ -363,11 +363,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 40 throwforce = 10 w_class = WEIGHT_CLASS_HUGE - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") block_chance = 50 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED max_integrity = 200 armor_type = /datum/armor/item_katana @@ -447,7 +447,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throw_speed = 3 throw_range = 6 custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 6) - hitsound = 'sound/weapons/genhit.ogg' + hitsound = 'sound/items/weapons/genhit.ogg' attack_verb_continuous = list("stubs", "pokes") attack_verb_simple = list("stub", "poke") resistance_flags = FIRE_PROOF @@ -472,7 +472,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce_on = 23, \ throw_speed_on = throw_speed, \ sharpness_on = SHARP_EDGED, \ - hitsound_on = 'sound/weapons/bladeslice.ogg', \ + hitsound_on = 'sound/items/weapons/bladeslice.ogg', \ w_class_on = WEIGHT_CLASS_NORMAL, \ attack_verb_continuous_on = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts"), \ attack_verb_simple_on = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut"), \ @@ -504,7 +504,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 w_class = WEIGHT_CLASS_SMALL attack_verb_continuous = list("calls", "rings") attack_verb_simple = list("call", "ring") - hitsound = 'sound/weapons/ring.ogg' + hitsound = 'sound/items/weapons/ring.ogg' /obj/item/phone/suicide_act(mob/living/user) if(locate(/obj/structure/chair/stool) in user.loc) @@ -518,7 +518,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 desc = "A long bamboo-made staff with steel-capped ends. It is rumoured that initiates of Spider Clan train with such before getting to learn how to use a katana." force = 10 block_chance = 45 - block_sound = 'sound/weapons/genhit.ogg' + block_sound = 'sound/items/weapons/genhit.ogg' slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY hitsound = SFX_SWING_HIT @@ -675,7 +675,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(user) balloon_alert(user, active ? "extended" : "collapsed") - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/staff @@ -892,7 +892,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 to_chat(user, span_warning("You're already ready to do a home run!")) return ..() to_chat(user, span_warning("You begin gathering strength...")) - playsound(get_turf(src), 'sound/magic/lightning_chargeup.ogg', 65, TRUE) + playsound(get_turf(src), 'sound/effects/magic/lightning_chargeup.ogg', 65, TRUE) if(do_after(user, 9 SECONDS, target = src)) to_chat(user, span_userdanger("You gather power! Time for a home run!")) homerun_ready = TRUE @@ -910,7 +910,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(!QDELETED(target)) target.throw_at(throw_target, rand(8,10), 14, user) SSexplosions.medturf += throw_target - playsound(get_turf(src), 'sound/weapons/homerun.ogg', 100, TRUE) + playsound(get_turf(src), 'sound/items/weapons/homerun.ogg', 100, TRUE) homerun_ready = FALSE return else if(!QDELETED(target) && !target.anchored) @@ -963,7 +963,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 return TRUE /obj/item/melee/baseball_bat/proc/launch_back(atom/movable/target, mob/living/user, turf/target_turf, datum_throw_speed) - playsound(target, 'sound/magic/tail_swing.ogg', 50, TRUE) + playsound(target, 'sound/effects/magic/tail_swing.ogg', 50, TRUE) REMOVE_TRAIT(user, TRAIT_IMMOBILIZED, type) target.mouse_opacity = initial(target.mouse_opacity) target.add_filter("baseball_launch", 3, motion_blur_filter(1, 3)) @@ -994,7 +994,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 20 throwforce = 20 mob_thrower = TRUE - block_sound = 'sound/weapons/effects/batreflect.ogg' + block_sound = 'sound/items/weapons/effects/batreflect.ogg' /obj/item/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers return TRUE @@ -1110,11 +1110,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT block_chance = 20 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED force = 14 throwforce = 12 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") @@ -1137,7 +1137,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 attack_speed = CLICK_CD_HYPER_RAPID embed_type = /datum/embed_data/hfr_blade block_chance = 25 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK @@ -1169,7 +1169,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(attack_type == PROJECTILE_ATTACK) if(HAS_TRAIT(src, TRAIT_WIELDED) || prob(final_block_chance)) owner.visible_message(span_danger("[owner] deflects [attack_text] with [src]!")) - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + playsound(src, pick('sound/items/weapons/bulletflyby.ogg', 'sound/items/weapons/bulletflyby2.ogg', 'sound/items/weapons/bulletflyby3.ogg'), 75, TRUE) return TRUE return FALSE if(prob(final_block_chance * (HAS_TRAIT(src, TRAIT_WIELDED) ? 2 : 1))) @@ -1210,8 +1210,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 previous_target = WEAKREF(target) previous_x = x_slashed previous_y = y_slashed - playsound(src, 'sound/weapons/bladeslice.ogg', 100, vary = TRUE) - playsound(src, 'sound/weapons/zapbang.ogg', 50, vary = TRUE) + playsound(src, 'sound/items/weapons/bladeslice.ogg', 100, vary = TRUE) + playsound(src, 'sound/items/weapons/zapbang.ogg', 50, vary = TRUE) if(isliving(target)) var/mob/living/living_target = target living_target.apply_damage(force*damage_mod, BRUTE, sharpness = SHARP_EDGED, wound_bonus = wound_bonus, bare_wound_bonus = bare_wound_bonus, def_zone = user.zone_selected) diff --git a/code/game/objects/items/wizard_weapons.dm b/code/game/objects/items/wizard_weapons.dm index 34676e18bf02d..e5750c06bb2d4 100644 --- a/code/game/objects/items/wizard_weapons.dm +++ b/code/game/objects/items/wizard_weapons.dm @@ -66,7 +66,7 @@ if(isliving(target)) var/mob/living/smacked = target smacked.take_bodypart_damage(20, 0) - playsound(user, 'sound/weapons/marauder.ogg', 50, TRUE) + playsound(user, 'sound/items/weapons/marauder.ogg', 50, TRUE) vortex(get_turf(target), user) addtimer(VARSET_CALLBACK(src, charged, TRUE), 10 SECONDS) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index ceaa0e0beb734..748af49a69489 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -68,7 +68,7 @@ /obj/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) if(attack_generic(user, 60, BRUTE, MELEE, 0)) - playsound(src.loc, 'sound/weapons/slash.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/weapons/slash.ogg', 100, TRUE) /obj/attack_animal(mob/living/simple_animal/user, list/modifiers) . = ..() diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index f0c855e7c74d9..120b91a40ffbc 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -24,12 +24,12 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(loc, 'sound/effects/attackblob.ogg', 100, TRUE) + playsound(loc, 'sound/effects/blob/attackblob.ogg', 100, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) if(damage_amount) - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) /* * Generic alien stuff, not related to the purple lizards but still alien-like @@ -392,7 +392,7 @@ return if(BURST) to_chat(user, span_notice("You clear the hatched egg.")) - playsound(loc, 'sound/effects/attackblob.ogg', 100, TRUE) + playsound(loc, 'sound/effects/blob/attackblob.ogg', 100, TRUE) qdel(src) return if(GROWING) diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 365e790ca48f5..131e08808fbdb 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -38,7 +38,7 @@ unbuckle_mob(captive) add_fingerprint(hero) return - + captive.visible_message(span_warning("[captive.name] struggles to break free from the gelatinous resin!"), span_notice("You struggle to break free from the gelatinous resin... (Stay still for about a minute and a half.)"), span_hear("You hear squelching...")) @@ -95,9 +95,9 @@ /obj/structure/bed/nest/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(loc, 'sound/effects/attackblob.ogg', 100, TRUE) + playsound(loc, 'sound/effects/blob/attackblob.ogg', 100, TRUE) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/bed/nest/attack_alien(mob/living/carbon/alien/user, list/modifiers) if(!user.combat_mode) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 73020ba93bbb7..b104e472dc2b2 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -79,7 +79,7 @@ to_chat(user, span_notice("You connect the shock kit to the [name], electrifying it ")) else user.put_in_active_hand(input_shock_kit) - to_chat(user, " You cannot fit the shock kit onto the [name]!") + to_chat(user, span_notice("You cannot fit the shock kit onto the [name]!")) /obj/structure/chair/wrench_act_secondary(mob/living/user, obj/item/weapon) @@ -328,7 +328,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) throwforce = 10 demolition_mod = 1.25 throw_range = 3 - hitsound = 'sound/items/trayhit1.ogg' + hitsound = 'sound/items/trayhit/trayhit1.ogg' hit_reaction_chance = 50 custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT) item_flags = SKIP_FANTASY_ON_SPAWN @@ -418,7 +418,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) name = "bamboo stool" icon_state = "bamboo_stool" inhand_icon_state = "stool_bamboo" - hitsound = 'sound/weapons/genhit1.ogg' + hitsound = 'sound/items/weapons/genhit1.ogg' origin_type = /obj/structure/chair/stool/bamboo break_chance = 50 //Submissive and breakable unlike the chad iron stool @@ -431,7 +431,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/chair/stool/bar, 0) inhand_icon_state = "woodenchair" resistance_flags = FLAMMABLE max_integrity = 70 - hitsound = 'sound/weapons/genhit1.ogg' + hitsound = 'sound/items/weapons/genhit1.ogg' origin_type = /obj/structure/chair/wood custom_materials = null break_chance = 50 diff --git a/code/game/objects/structures/cannons/cannon.dm b/code/game/objects/structures/cannons/cannon.dm index 3a10cc17189f8..66c827442bf32 100644 --- a/code/game/objects/structures/cannons/cannon.dm +++ b/code/game/objects/structures/cannons/cannon.dm @@ -17,7 +17,7 @@ var/charge_ignited = FALSE var/fire_delay = 15 var/charge_size = 15 - var/fire_sound = 'sound/weapons/gun/general/cannon.ogg' + var/fire_sound = 'sound/items/weapons/gun/general/cannon.ogg' /obj/structure/cannon/Initialize(mapload) . = ..() diff --git a/code/game/objects/structures/cannons/mounted_guns/mounted_gun.dm b/code/game/objects/structures/cannons/mounted_guns/mounted_gun.dm index da27cdbdaf9df..f0fa9e27d7869 100644 --- a/code/game/objects/structures/cannons/mounted_guns/mounted_gun.dm +++ b/code/game/objects/structures/cannons/mounted_guns/mounted_gun.dm @@ -34,9 +34,9 @@ ///If the gun shakes the camera when firing var/firing_shakes_camera = TRUE ///sound of firing for all but last shot - var/fire_sound = 'sound/weapons/gun/general/mountedgun.ogg' + var/fire_sound = 'sound/items/weapons/gun/general/mountedgun.ogg' ///sound of firing for last shot - var/last_fire_sound = 'sound/weapons/gun/general/mountedgunend.ogg' + var/last_fire_sound = 'sound/items/weapons/gun/general/mountedgunend.ogg' /obj/structure/mounted_gun/wrench_act(mob/living/user, obj/item/tool) . = ..() diff --git a/code/game/objects/structures/construction_console/construction_actions.dm b/code/game/objects/structures/construction_console/construction_actions.dm index b9abfe70c3f71..1a6b5deeeae26 100644 --- a/code/game/objects/structures/construction_console/construction_actions.dm +++ b/code/game/objects/structures/construction_console/construction_actions.dm @@ -120,7 +120,7 @@ button_icon_state = "build_turret" structure_name = "turrets" structure_path = /obj/machinery/porta_turret/aux_base - place_sound = 'sound/items/drill_use.ogg' + place_sound = 'sound/items/tools/drill_use.ogg' /datum/action/innate/construction/place_structure/turret/after_place(obj/placed_structure, remaining) var/obj/machinery/computer/auxiliary_base/turret_controller = locate() in get_area(placed_structure) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c4740398d82d2..58e99dc8839aa 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -56,8 +56,8 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) var/mob_storage_capacity = 3 // how many human sized mob/living can fit together inside a closet. var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate then open it in a populated area to crash clients. var/cutting_tool = /obj/item/weldingtool - var/open_sound = 'sound/machines/closet_open.ogg' - var/close_sound = 'sound/machines/closet_close.ogg' + var/open_sound = 'sound/machines/closet/closet_open.ogg' + var/close_sound = 'sound/machines/closet/closet_close.ogg' var/open_sound_volume = 35 var/close_sound_volume = 50 var/material_drop = /obj/item/stack/sheet/iron @@ -331,15 +331,15 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) if(id_card) . += span_notice("It can be [EXAMINE_HINT("marked")] with a pen.") if(can_weld_shut && !welded) - . += span_notice("Its can be [EXAMINE_HINT("welded")] shut.") + . += span_notice("It can be [EXAMINE_HINT("welded")] shut.") if(welded) - . += span_notice("Its [EXAMINE_HINT("welded")] shut.") + . += span_notice("It's [EXAMINE_HINT("welded")] shut.") if(anchorable && !anchored) . += span_notice("It can be [EXAMINE_HINT("bolted")] to the ground.") if(anchored) . += span_notice("It's [anchorable ? EXAMINE_HINT("bolted") : "attached firmly"] to the ground.") if(length(paint_jobs)) - . += span_notice("It can be [EXAMINE_HINT("painted")] another texture.") + . += span_notice("It can be [EXAMINE_HINT("painted")] with another texture.") if(HAS_TRAIT(user, TRAIT_SKITTISH) && divable) . += span_notice("If you bump into [p_them()] while running, you will jump inside.") diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 66950b0845f1d..0bb1b564eceb6 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -5,8 +5,8 @@ icon_state = "bodybag" density = FALSE mob_storage_capacity = 2 - open_sound = 'sound/items/zip.ogg' - close_sound = 'sound/items/zip.ogg' + open_sound = 'sound/items/zip/zip.ogg' + close_sound = 'sound/items/zip/zip.ogg' open_sound_volume = 15 close_sound_volume = 15 integrity_failure = 0 @@ -380,7 +380,7 @@ /obj/structure/closet/body_bag/environmental/hardlight/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type in list(BRUTE, BURN)) - playsound(src, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(src, 'sound/items/weapons/egloves.ogg', 80, TRUE) /obj/structure/closet/body_bag/environmental/prisoner/hardlight name = "hardlight prisoner bodybag" @@ -392,4 +392,4 @@ /obj/structure/closet/body_bag/environmental/prisoner/hardlight/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type in list(BRUTE, BURN)) - playsound(src, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(src, 'sound/items/weapons/egloves.ogg', 80, TRUE) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 2f555ed84dea5..19eb438876483 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -105,8 +105,8 @@ resistance_flags = NONE move_speed_multiplier = 2 cutting_tool = /obj/item/weldingtool - open_sound = 'sound/machines/crate_open.ogg' - close_sound = 'sound/machines/crate_close.ogg' + open_sound = 'sound/machines/crate/crate_open.ogg' + close_sound = 'sound/machines/crate/crate_close.ogg' open_sound_volume = 35 close_sound_volume = 50 material_drop = /obj/item/stack/sheet/plasteel diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index f2171b2e8b1b0..24e9c93bdb97c 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -3,8 +3,8 @@ desc = "Old will forever be in fashion." icon_state = "cabinet" resistance_flags = FLAMMABLE - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 max_integrity = 70 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm index ca931d4c6ab10..b9f43a2009f83 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -4,8 +4,8 @@ icon_state = "cabinet" resistance_flags = FLAMMABLE max_integrity = 70 - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 door_anim_time = 0 // no animation diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 8002721335df3..355cf14651a4c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -50,8 +50,8 @@ req_access = list(ACCESS_PSYCHOLOGY) icon_state = "cabinet" door_anim_time = 0 // no animation - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index d0487198d4c7c..f639df5f12866 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -40,8 +40,8 @@ icon_state = "cabinet" resistance_flags = FLAMMABLE max_integrity = 70 - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 door_anim_time = 0 // no animation diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 553258bd360ea..e4488b0b7f436 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -151,8 +151,8 @@ resistance_flags = FLAMMABLE max_integrity = 70 door_anim_time = 0 // no animation - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' req_access = list(ACCESS_DETECTIVE) /obj/structure/closet/secure_closet/detective/PopulateContents() diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 2fed72c5bab3b..a7415c951f2f9 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -10,8 +10,8 @@ allow_dense = TRUE dense_when_open = TRUE delivery_icon = "deliverycrate" - open_sound = 'sound/machines/crate_open.ogg' - close_sound = 'sound/machines/crate_close.ogg' + open_sound = 'sound/machines/crate/crate_open.ogg' + close_sound = 'sound/machines/crate/crate_close.ogg' open_sound_volume = 35 close_sound_volume = 50 drag_slowdown = 0 @@ -121,7 +121,7 @@ if(elevation_open) AddElement(/datum/element/elevation, pixel_shift = elevation_open) if(!QDELETED(manifest)) - playsound(src, 'sound/items/poster_ripped.ogg', 75, TRUE) + playsound(src, 'sound/items/poster/poster_ripped.ogg', 75, TRUE) manifest.forceMove(get_turf(src)) manifest = null update_appearance() @@ -148,7 +148,7 @@ ///Removes the supply manifest from the closet /obj/structure/closet/crate/proc/tear_manifest(mob/user) to_chat(user, span_notice("You tear the manifest off of [src].")) - playsound(src, 'sound/items/poster_ripped.ogg', 75, TRUE) + playsound(src, 'sound/items/poster/poster_ripped.ogg', 75, TRUE) manifest.forceMove(loc) if(ishuman(user)) @@ -169,8 +169,8 @@ max_integrity = 70 material_drop = /obj/item/stack/sheet/mineral/wood material_drop_amount = 5 - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 can_install_electronics = FALSE diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index 8ff1e1aa21da8..dfe2eb8c43d47 100644 --- a/code/game/objects/structures/crates_lockers/crates/bins.dm +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -3,8 +3,8 @@ name = "trash bin" icon_state = "trashbin" base_icon_state = "trashbin" - open_sound = 'sound/effects/bin_open.ogg' - close_sound = 'sound/effects/bin_close.ogg' + open_sound = 'sound/effects/bin/bin_open.ogg' + close_sound = 'sound/effects/bin/bin_close.ogg' anchored = TRUE horizontal = FALSE delivery_icon = null @@ -67,4 +67,4 @@ items_to_sweep.Cut() to_chat(user, span_notice("You sweep the pile of garbage into [src].")) - playsound(broom.loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + playsound(broom.loc, 'sound/items/weapons/thudswoosh.ogg', 30, TRUE, -1) diff --git a/code/game/objects/structures/crates_lockers/crates/cardboard.dm b/code/game/objects/structures/crates_lockers/crates/cardboard.dm index 12008cc4022bf..5d1418e397eb5 100644 --- a/code/game/objects/structures/crates_lockers/crates/cardboard.dm +++ b/code/game/objects/structures/crates_lockers/crates/cardboard.dm @@ -6,7 +6,7 @@ material_drop_amount = 4 icon_state = "cardboard" base_icon_state = "cardboard" - open_sound = 'sound/items/poster_ripped.ogg' + open_sound = 'sound/items/poster/poster_ripped.ogg' close_sound = 'sound/machines/cardboard_box.ogg' open_sound_volume = 25 close_sound_volume = 25 diff --git a/code/game/objects/structures/crates_lockers/crates/critter.dm b/code/game/objects/structures/crates_lockers/crates/critter.dm index d116a33d8ff75..052ca9cffb63b 100644 --- a/code/game/objects/structures/crates_lockers/crates/critter.dm +++ b/code/game/objects/structures/crates_lockers/crates/critter.dm @@ -9,8 +9,8 @@ material_drop = /obj/item/stack/sheet/mineral/wood material_drop_amount = 4 delivery_icon = "deliverybox" - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 contents_pressure_protection = 0.8 diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm index 667dd9b2ebb8b..b3cce9609c06f 100644 --- a/code/game/objects/structures/crates_lockers/crates/large.dm +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -9,8 +9,8 @@ material_drop_amount = 4 delivery_icon = "deliverybox" integrity_failure = 0 //Makes the crate break when integrity reaches 0, instead of opening and becoming an invisible sprite. - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 can_install_electronics = FALSE @@ -40,7 +40,7 @@ user.visible_message(span_notice("[user] pries \the [src] open."), \ span_notice("You pry open \the [src]."), \ span_hear("You hear splitting wood.")) - playsound(src.loc, 'sound/weapons/slashmiss.ogg', 75, TRUE) + playsound(src.loc, 'sound/items/weapons/slashmiss.ogg', 75, TRUE) var/turf/T = get_turf(src) for(var/i in 1 to material_drop_amount) diff --git a/code/game/objects/structures/crates_lockers/crates/syndicrate.dm b/code/game/objects/structures/crates_lockers/crates/syndicrate.dm index 8403f82213511..a686282f287c5 100644 --- a/code/game/objects/structures/crates_lockers/crates/syndicrate.dm +++ b/code/game/objects/structures/crates_lockers/crates/syndicrate.dm @@ -52,7 +52,7 @@ unlock_contents = list() qdel(item) to_chat(user, span_notice("You twist the key into both locks at once, opening the crate.")) - playsound(src, 'sound/machines/boltsup.ogg', 50, vary = FALSE) + playsound(src, 'sound/machines/airlock/boltsup.ogg', 50, vary = FALSE) togglelock(user) /obj/structure/closet/crate/secure/syndicrate/togglelock(mob/living/user, silent) diff --git a/code/game/objects/structures/crates_lockers/crates/wooden.dm b/code/game/objects/structures/crates_lockers/crates/wooden.dm index 5ff3c69aa6bed..5703cb6ddcb39 100644 --- a/code/game/objects/structures/crates_lockers/crates/wooden.dm +++ b/code/game/objects/structures/crates_lockers/crates/wooden.dm @@ -5,8 +5,8 @@ material_drop_amount = 6 icon_state = "wooden" base_icon_state = "wooden" - open_sound = 'sound/machines/wooden_closet_open.ogg' - close_sound = 'sound/machines/wooden_closet_close.ogg' + open_sound = 'sound/machines/closet/wooden_closet_open.ogg' + close_sound = 'sound/machines/closet/wooden_closet_close.ogg' open_sound_volume = 25 close_sound_volume = 50 paint_jobs = null diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm index be4180b5fa177..a571009d0a6ca 100644 --- a/code/game/objects/structures/curtains.dm +++ b/code/game/objects/structures/curtains.dm @@ -81,11 +81,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src.loc, 'sound/weapons/slash.ogg', 80, TRUE) + playsound(src.loc, 'sound/items/weapons/slash.ogg', 80, TRUE) else - playsound(loc, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 80, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 80, TRUE) /obj/structure/curtain/bounty icon_type = "bounty" diff --git a/code/game/objects/structures/deployable_turret.dm b/code/game/objects/structures/deployable_turret.dm index 6abb14294de5b..e9162294c8f42 100644 --- a/code/game/objects/structures/deployable_turret.dm +++ b/code/game/objects/structures/deployable_turret.dm @@ -27,9 +27,9 @@ var/warned = FALSE var/list/calculated_projectile_vars /// Sound to play at the end of a burst - var/overheatsound = 'sound/weapons/sear.ogg' + var/overheatsound = 'sound/items/weapons/sear.ogg' /// Sound to play when firing - var/firesound = 'sound/weapons/gun/smg/shot.ogg' + var/firesound = 'sound/items/weapons/gun/smg/shot.ogg' /// If using a wrench on the turret will start undeploying it var/can_be_undeployed = FALSE /// What gets spawned if the object is undeployed @@ -70,7 +70,7 @@ //BUCKLE HOOKS /obj/machinery/deployable_turret/unbuckle_mob(mob/living/buckled_mob, force = FALSE, can_fall = TRUE) - playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(src,'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) for(var/obj/item/I in buckled_mob.held_items) if(istype(I, /obj/item/gun_control)) qdel(I) @@ -103,7 +103,7 @@ M.pixel_y = 14 layer = ABOVE_MOB_LAYER setDir(SOUTH) - playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(src,'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) set_anchored(TRUE) if(M.client) M.client.view_size.setTo(view_range) @@ -221,8 +221,8 @@ number_of_shots = 3 cooldown_duration = 2 SECONDS rate_of_fire = 2 - firesound = 'sound/weapons/gun/hmg/hmg.ogg' - overheatsound = 'sound/weapons/gun/smg/smgrack.ogg' + firesound = 'sound/items/weapons/gun/hmg/hmg.ogg' + overheatsound = 'sound/items/weapons/gun/smg/smgrack.ogg' can_be_undeployed = TRUE spawned_on_undeploy = /obj/item/deployable_turret_folded diff --git a/code/game/objects/structures/destructible_structures.dm b/code/game/objects/structures/destructible_structures.dm index beffa5d4fd741..e64779c31ed1a 100644 --- a/code/game/objects/structures/destructible_structures.dm +++ b/code/game/objects/structures/destructible_structures.dm @@ -1,7 +1,7 @@ /obj/structure/destructible //a base for destructible structures max_integrity = 100 - var/break_message = "The strange, admin-y structure breaks!" //The message shown when a structure breaks - var/break_sound = 'sound/magic/clockwork/invoke_general.ogg' //The sound played when a structure breaks + var/break_message = span_warning("The strange, admin-y structure breaks!") //The message shown when a structure breaks + var/break_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' //The sound played when a structure breaks var/list/debris = null //Parts left behind when a structure breaks, takes the form of list(path = amount_to_spawn) /obj/structure/destructible/atom_deconstruct(disassembled = TRUE) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 03957e2708bf0..d5e32af761e11 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -77,9 +77,9 @@ /obj/structure/displaycase/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/displaycase/atom_deconstruct(disassembled = TRUE) dump() @@ -387,7 +387,7 @@ /obj/structure/displaycase/trophy/proc/toggle_historian_mode(mob/user) historian_mode = !historian_mode balloon_alert(user, "[historian_mode ? "enabled" : "disabled"] historian mode.") - playsound(src, 'sound/machines/twobeep.ogg', vary = 50) + playsound(src, 'sound/machines/beep/twobeep.ogg', vary = 50) SStgui.update_uis(src) /obj/structure/displaycase/trophy/toggle_lock(mob/user) @@ -576,7 +576,7 @@ if(!potential_acc || !potential_acc.registered_account) return if(!check_access(potential_acc)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return toggle_lock() if("Register") @@ -585,13 +585,13 @@ if(!potential_acc || !potential_acc.registered_account) return if(!check_access(potential_acc)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return payments_acc = potential_acc.registered_account playsound(src, 'sound/machines/click.ogg', 20, TRUE) if("Adjust") if(!check_access(potential_acc) || potential_acc.registered_account != payments_acc) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return var/new_price_input = tgui_input_number(usr, "Sale price for this vend-a-tray", "New Price", 10, 1000) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index c2d67e6290145..5fc9bf674c144 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -219,7 +219,7 @@ if(!noglass) if(!glass) if(istype(G, /obj/item/stack/sheet/rglass) || istype(G, /obj/item/stack/sheet/glass)) - playsound(src, 'sound/items/crowbar.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/crowbar.ogg', 100, TRUE) user.visible_message(span_notice("[user] adds [G.name] to the airlock assembly."), \ span_notice("You start to install [G.name] into the airlock assembly...")) if(do_after(user, 4 SECONDS, target = src)) @@ -242,7 +242,7 @@ to_chat(user, span_warning("You cannot add [G] to [src]!")) return if(G.get_amount() >= 2) - playsound(src, 'sound/items/crowbar.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/crowbar.ogg', 100, TRUE) user.visible_message(span_notice("[user] adds [G.name] to the airlock assembly."), \ span_notice("You start to install [G.name] into the airlock assembly...")) if(do_after(user, 4 SECONDS, target = src)) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 0564223a7c759..a4d35f02e0c09 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -130,7 +130,7 @@ if(tool) tool.play_tool_sound(src, 100) else - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) deconstruct(disassembled) /obj/structure/falsewall/atom_deconstruct(disassembled = TRUE) diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index ab69b7bc7a41e..7af4dd0f6c0dc 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -95,9 +95,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32) if(broken) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/fireaxecabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = TRUE, attack_dir) if(open) @@ -111,7 +111,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32) if(!broken) update_appearance() broken = TRUE - playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(src, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) new /obj/item/shard(loc) new /obj/item/shard(loc) diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm index 180b085778abf..4e568a56f48b2 100644 --- a/code/game/objects/structures/fireplace.dm +++ b/code/game/objects/structures/fireplace.dm @@ -68,26 +68,25 @@ var/logs_used = min(space_for_logs, wood.amount) wood.use(logs_used) adjust_fuel_timer(LOG_BURN_TIMER * logs_used) - user.visible_message("[user] tosses some \ - wood into [src].", "You add \ - some fuel to [src].") - else if(istype(T, /obj/item/paper_bin)) + user.visible_message(span_notice("[user] tosses some wood into [src]."), span_notice("You add some fuel to [src].")) + return + + if(istype(T, /obj/item/paper_bin)) var/obj/item/paper_bin/paper_bin = T - user.visible_message("[user] throws [T] into \ - [src].", "You add [T] to [src].\ - ") + user.visible_message(span_notice("[user] throws [T] into [src]."), span_notice("You add [T] to [src].")) adjust_fuel_timer(PAPER_BURN_TIMER * paper_bin.total_paper) qdel(paper_bin) - else if(istype(T, /obj/item/paper)) - user.visible_message("[user] throws [T] into \ - [src].", "You throw [T] into [src].\ - ") + return + + if(istype(T, /obj/item/paper)) + user.visible_message(span_notice("[user] throws [T] into [src]."), span_notice("You throw [T] into [src].")) adjust_fuel_timer(PAPER_BURN_TIMER) qdel(T) - else if(try_light(T,user)) return - else - . = ..() + + if(try_light(T,user)) + return + return ..() /obj/structure/fireplace/update_overlays() . = ..() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index aa9af66868fdd..4aaba04bc1835 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -286,9 +286,9 @@ if(damage_amount) playsound(src, 'sound/effects/grillehit.ogg', 80, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 80, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 80, TRUE) /obj/structure/grille/atom_deconstruct(disassembled = TRUE) @@ -359,7 +359,7 @@ return FALSE var/obj/structure/cable/C = T.get_cable_node() if(C) - playsound(src, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + playsound(src, 'sound/effects/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) tesla_zap(source = src, zap_range = 3, power = C.newavail() * 0.01, cutoff = 1e3, zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN | ZAP_LOW_POWER_GEN | ZAP_ALLOW_DUPLICATES) //Zap for 1/100 of the amount of power. At a million watts in the grid, it will be as powerful as a tesla revolver shot. C.add_delayedload(C.newavail() * 0.0375) // you can gain up to 3.5 via the 4x upgrades power is halved by the pole so thats 2x then 1X then .5X for 3.5x the 3 bounces shock. // What do you mean by this? return ..() diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index a51e82498e2bc..f46caa48c7b8b 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -43,7 +43,7 @@ buckle_prevents_pull = TRUE layer = ABOVE_MOB_LAYER /// The sound the guillotine makes when it successfully cuts off a head - var/drop_sound = 'sound/weapons/guillotine.ogg' + var/drop_sound = 'sound/items/weapons/guillotine.ogg' /// The current state of the blade var/blade_status = GUILLOTINE_BLADE_RAISED /// How sharp the blade is diff --git a/code/game/objects/structures/gym/punching_bag.dm b/code/game/objects/structures/gym/punching_bag.dm index 59ccf6f23c2c3..bba9e4f715c2a 100644 --- a/code/game/objects/structures/gym/punching_bag.dm +++ b/code/game/objects/structures/gym/punching_bag.dm @@ -7,13 +7,13 @@ layer = ABOVE_MOB_LAYER ///List of sounds that can be played when punched. var/static/list/hit_sounds = list( - 'sound/weapons/genhit1.ogg', - 'sound/weapons/genhit2.ogg', - 'sound/weapons/genhit3.ogg', - 'sound/weapons/punch1.ogg', - 'sound/weapons/punch2.ogg', - 'sound/weapons/punch3.ogg', - 'sound/weapons/punch4.ogg', + 'sound/items/weapons/genhit1.ogg', + 'sound/items/weapons/genhit2.ogg', + 'sound/items/weapons/genhit3.ogg', + 'sound/items/weapons/punch1.ogg', + 'sound/items/weapons/punch2.ogg', + 'sound/items/weapons/punch3.ogg', + 'sound/items/weapons/punch4.ogg', ) /obj/structure/punching_bag/Initialize(mapload) diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 30983c5088d67..6d86b5f7a30d5 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -52,9 +52,9 @@ /obj/structure/holosign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', 80, TRUE) if(BURN) - playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', 80, TRUE) /obj/structure/holosign/proc/create_vis_overlay() var/turf/our_turf = get_turf(src) @@ -135,11 +135,11 @@ if(!opened) density = FALSE opened = TRUE - playsound(src, 'sound/machines/door_open.ogg', 50, TRUE) + playsound(src, 'sound/machines/door/door_open.ogg', 50, TRUE) else density = TRUE opened = FALSE - playsound(src, 'sound/machines/door_close.ogg', 50, TRUE) + playsound(src, 'sound/machines/door/door_close.ogg', 50, TRUE) update_icon_state() COOLDOWN_START(src, cooldown_open, 1 SECONDS) @@ -262,7 +262,7 @@ if(!COOLDOWN_FINISHED(src, virus_detected)) return - playsound(get_turf(src),'sound/machines/buzz-sigh.ogg', 65, TRUE, 4) + playsound(get_turf(src),'sound/machines/buzz/buzz-sigh.ogg', 65, TRUE, 4) COOLDOWN_START(src, virus_detected, 1 SECONDS) icon_state = "holo_medical-deny" update_icon_state() diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index 6efa671875915..fb082b72456dc 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(ore_probability, list( * */ /obj/structure/spawner/ice_moon/proc/destroy_effect() - playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) + playsound(loc,'sound/effects/explosion/explosionfar.ogg', 200, TRUE) visible_message(span_boldannounce("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!")) /** diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 0d7d23191742c..0b55326130022 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -162,7 +162,7 @@ to_chat(user, span_warning("You need one floor tile to build atop [src].")) return to_chat(user, span_notice("You construct new plating with [src] as support.")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) var/turf/turf_we_place_on = get_turf(src) turf_we_place_on.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) diff --git a/code/game/objects/structures/lavaland/gulag_vent.dm b/code/game/objects/structures/lavaland/gulag_vent.dm index c269c5213e71a..8cb530e31b18a 100644 --- a/code/game/objects/structures/lavaland/gulag_vent.dm +++ b/code/game/objects/structures/lavaland/gulag_vent.dm @@ -47,4 +47,4 @@ new spawned_boulder(get_turf(living_user)) living_user.visible_message(span_notice("[living_user] hauls a boulder out of [src].")) living_user.apply_damage(stamina_damage_to_inflict, STAMINA) - playsound(src, 'sound/weapons/genhit.ogg', vol = 50, vary = TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', vol = 50, vary = TRUE) diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index bf69b23238c61..b169868a85fb7 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -131,7 +131,7 @@ GLOBAL_LIST_INIT(tendrils, list()) /obj/effect/collapse/proc/collapse() for(var/mob/M in range(7,src)) shake_camera(M, 15, 1) - playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, TRUE) + playsound(get_turf(src),'sound/effects/explosion/explosionfar.ogg', 200, TRUE) visible_message(span_boldannounce("The tendril falls inward, the ground around it widening into a yawning chasm!")) for(var/turf/T in RANGE_TURFS(2,src)) if(HAS_TRAIT(T, TRAIT_NO_TERRAFORM)) diff --git a/code/game/objects/structures/lavaland/ore_vent.dm b/code/game/objects/structures/lavaland/ore_vent.dm index 1de24f030bf5e..adf888a2d9c42 100644 --- a/code/game/objects/structures/lavaland/ore_vent.dm +++ b/code/game/objects/structures/lavaland/ore_vent.dm @@ -121,7 +121,7 @@ for(var/i in 1 to 3) if(do_after(user, boulder_size * 1 SECONDS, src)) user.apply_damage(20, STAMINA) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) produce_boulder(TRUE) visible_message(span_notice("You've successfully produced a boulder! Boy are your arms tired.")) @@ -263,39 +263,40 @@ * If the node drone is dead, the ore vent is not tapped and the wave defense can be reattempted. * * Also gives xp and mining points to all nearby miners in equal measure. + * Arguments: + * - force: Set to true if you want to just skip all checks and make the vent start producing boulders. */ -/obj/structure/ore_vent/proc/handle_wave_conclusion() +/obj/structure/ore_vent/proc/handle_wave_conclusion(force = FALSE) SIGNAL_HANDLER SEND_SIGNAL(src, COMSIG_VENT_WAVE_CONCLUDED) COOLDOWN_RESET(src, wave_cooldown) particles = null - if(!QDELETED(node)) - if(get_turf(node) != get_turf(src)) - visible_message(span_danger("The [node] detaches from the [src], and the vent closes back up!")) - icon_state = initial(icon_state) - update_appearance(UPDATE_ICON_STATE) - UnregisterSignal(node, COMSIG_MOVABLE_MOVED) - node.pre_escape(success = FALSE) - node = null - return //Start over! - - tapped = TRUE //The Node Drone has survived the wave defense, and the ore vent is tapped. - SSore_generation.processed_vents += src - log_game("Ore vent [key_name_and_tag(src)] was tapped") - SSblackbox.record_feedback("tally", "ore_vent_completed", 1, type) - balloon_alert_to_viewers("vent tapped!") - icon_state = icon_state_tapped - update_appearance(UPDATE_ICON_STATE) - qdel(GetComponent(/datum/component/gps)) - UnregisterSignal(node, COMSIG_QDELETING) - else + if(QDELETED(node) && !force) visible_message(span_danger("\the [src] creaks and groans as the mining attempt fails, and the vent closes back up.")) icon_state = initial(icon_state) update_appearance(UPDATE_ICON_STATE) node = null return //Bad end, try again. + else if(!QDELETED(node) && get_turf(node) != get_turf(src) && !force) + visible_message(span_danger("The [node] detaches from the [src], and the vent closes back up!")) + icon_state = initial(icon_state) + update_appearance(UPDATE_ICON_STATE) + UnregisterSignal(node, COMSIG_MOVABLE_MOVED) + node.pre_escape(success = FALSE) + node = null + return //Start over! + + tapped = TRUE //The Node Drone has survived the wave defense, and the ore vent is tapped. + SSore_generation.processed_vents += src + log_game("Ore vent [key_name_and_tag(src)] was tapped") + SSblackbox.record_feedback("tally", "ore_vent_completed", 1, type) + balloon_alert_to_viewers("vent tapped!") + icon_state = icon_state_tapped + update_appearance(UPDATE_ICON_STATE) + qdel(GetComponent(/datum/component/gps)) + UnregisterSignal(node, COMSIG_QDELETING) for(var/mob/living/miner in range(7, src)) //Give the miners who are near the vent points and xp. var/obj/item/card/id/user_id_card = miner.get_idcard(TRUE) @@ -307,7 +308,7 @@ if(user_id_card.registered_account) user_id_card.registered_account.mining_points += point_reward_val user_id_card.registered_account.bank_card_talk("You have been awarded [point_reward_val] mining points for your efforts.") - node.pre_escape() //Visually show the drone is done and flies away. + node?.pre_escape() //Visually show the drone is done and flies away. node = null add_overlay(mutable_appearance('icons/obj/mining_zones/terrain.dmi', "well", ABOVE_MOB_LAYER)) diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm index 7c9250ed9a246..d9eb81c783c35 100644 --- a/code/game/objects/structures/life_candle.dm +++ b/code/game/objects/structures/life_candle.dm @@ -22,7 +22,7 @@ var/datum/outfit/outfit // How long until we respawn them after their death. var/respawn_time = 50 - var/respawn_sound = 'sound/magic/staff_animation.ogg' + var/respawn_sound = 'sound/effects/magic/staff_animation.ogg' /obj/structure/life_candle/Initialize(mapload) . = ..() diff --git a/code/game/objects/structures/maintenance.dm b/code/game/objects/structures/maintenance.dm index a8de16271f36d..d3eb552c46b8b 100644 --- a/code/game/objects/structures/maintenance.dm +++ b/code/game/objects/structures/maintenance.dm @@ -84,7 +84,7 @@ at the cost of risking a vicious bite.**/ to_chat(user, span_danger("You feel a sharp pain as an unseen creature sinks its [pick("fangs", "beak", "proboscis")] into your arm!")) if(affecting?.receive_damage(30)) bite_victim.update_damage_overlays() - playsound(src,'sound/weapons/bite.ogg', 70, TRUE) + playsound(src,'sound/items/weapons/bite.ogg', 70, TRUE) return to_chat(user, span_warning("You find nothing of value...")) @@ -122,8 +122,8 @@ at the cost of risking a vicious bite.**/ desc = "What is this? Who put it on this station? And why does it emanate strange energy?" icon_state = "altar" cult_examine_tip = "Even you don't understand the eldritch magic behind this." - break_message = "The structure shatters, leaving only a demonic screech!" - break_sound = 'sound/magic/demon_dies.ogg' + break_message = span_warning("The structure shatters, leaving only a demonic screech!") + break_sound = 'sound/effects/magic/demon_dies.ogg' light_color = LIGHT_COLOR_BLOOD_MAGIC light_range = 2 use_cooldown_duration = 1 MINUTES @@ -188,7 +188,7 @@ at the cost of risking a vicious bite.**/ status = ALTAR_STAGEONE update_icon() visible_message(span_warning("[src] starts creating something...")) - playsound(src, 'sound/magic/pantsaltar.ogg', 60) + playsound(src, 'sound/effects/magic/pantsaltar.ogg', 60) addtimer(CALLBACK(src, PROC_REF(pants_stagetwo)), ALTAR_TIME) /// Continues the creation, making every mob nearby nauseous. diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index b80cee093fc66..97e35d8f6f3f8 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -272,7 +272,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an update_morgue_status() update_appearance(UPDATE_ICON_STATE) if(morgue_state == MORGUE_HAS_REVIVABLE && beeper && COOLDOWN_FINISHED(src, next_beep)) - playsound(src, 'sound/weapons/gun/general/empty_alarm.ogg', 50, FALSE) //Revive them you blind fucks + playsound(src, 'sound/items/weapons/gun/general/empty_alarm.ogg', 50, FALSE) //Revive them you blind fucks COOLDOWN_START(src, next_beep, beep_cooldown) if(!connected || connected.loc != src) diff --git a/code/game/objects/structures/mystery_box.dm b/code/game/objects/structures/mystery_box.dm index cb56cfe8ef120..0a0c9ca0a1017 100644 --- a/code/game/objects/structures/mystery_box.dm +++ b/code/game/objects/structures/mystery_box.dm @@ -121,8 +121,8 @@ GLOBAL_LIST_INIT(mystery_fishing, list( max_integrity = 99999 damage_deflection = 100 - var/crate_open_sound = 'sound/machines/crate_open.ogg' - var/crate_close_sound = 'sound/machines/crate_close.ogg' + var/crate_open_sound = 'sound/machines/crate/crate_open.ogg' + var/crate_close_sound = 'sound/machines/crate/crate_close.ogg' var/open_sound = 'sound/effects/mysterybox/mbox_full.ogg' var/grant_sound = 'sound/effects/mysterybox/mbox_end.ogg' /// The box's current state, and whether it can be interacted with in different ways diff --git a/code/game/objects/structures/pinatas.dm b/code/game/objects/structures/pinatas.dm index 44d7a8b021594..56a258a45f7be 100644 --- a/code/game/objects/structures/pinatas.dm +++ b/code/game/objects/structures/pinatas.dm @@ -35,11 +35,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src, 'sound/weapons/slash.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/slash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/pinata/atom_deconstruct(disassembled) new debris(get_turf(src)) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 14e3b53680d15..b2796019f168b 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -234,7 +234,7 @@ FLOOR SAFES if(!canhear) return if(current_tick == 2) - to_chat(user, "The sounds from [src] are too fast and blend together.") + to_chat(user, span_italics("The sounds from [src] are too fast and blend together.")) if(total_ticks == 1 || prob(SOUND_CHANCE)) balloon_alert(user, pick(sounds)) diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index 743d76ef182b2..db4981aeac77a 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -53,7 +53,7 @@ to_chat(user, span_warning("[src] already has a holotag attached!")) return to_chat(user, span_notice("You affix a holotag to [src].")) - playsound(src, 'sound/machines/twobeep.ogg', 100) + playsound(src, 'sound/machines/beep/twobeep.ogg', 100) gps_tagged = TRUE assigned_tag = "\[[mob_gps_id]-[rand(100,999)]\] " + spawner_gps_id var/datum/component/gps/our_gps = GetComponent(/datum/component/gps) @@ -221,7 +221,7 @@ /obj/structure/spawner/nether/process(seconds_per_tick) for(var/mob/living/living_mob in contents) if(living_mob) - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) living_mob.adjustBruteLoss(60 * seconds_per_tick) new /obj/effect/gibspawner/generic(get_turf(living_mob), living_mob) if(living_mob.stat == DEAD) @@ -299,5 +299,5 @@ proteon.add_filter("sentient_proteon", 3, list("type" = "outline", "color" = COLOR_CULT_RED, "size" = 2, "alpha" = 40)) /obj/structure/spawner/sentient/proteon_spawner/handle_deconstruct(disassembled) - playsound('sound/hallucinations/veryfar_noise.ogg', 125) + playsound('sound/effects/hallucinations/veryfar_noise.ogg', 125) visible_message(span_cult_bold("[src] completely falls apart, the screams of the damned reaching a feverous pitch before slowly fading away into nothing.")) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 32e76bb2c83ee..834347cc84f4f 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -697,7 +697,7 @@ /obj/structure/table/bronze/tablepush(mob/living/user, mob/living/pushed_mob) ..() - playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/clockwork/fellowship_armory.ogg', 50, TRUE) /obj/structure/table/reinforced/rglass name = "reinforced glass table" @@ -913,9 +913,9 @@ if(damage_amount) playsound(loc, 'sound/items/dodgeball.ogg', 80, TRUE) else - playsound(loc, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 40, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 40, TRUE) /* * Rack destruction @@ -976,8 +976,7 @@ if(!user.temporarilyRemoveItemFromInventory(src)) return var/obj/structure/rack/R = new /obj/structure/rack(get_turf(src)) - user.visible_message("[user] assembles \a [R].\ - ", span_notice("You assemble \a [R].")) + user.visible_message(span_notice("[user] assembles \a [R]."), span_notice("You assemble \a [R].")) R.add_fingerprint(user) qdel(src) building = FALSE diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index c1963ea38a3ef..e0bb6357a8a22 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -209,7 +209,7 @@ moving = FALSE starting_turf = null say(message) - playsound(src,'sound/machines/synth_no.ogg',50,FALSE) + playsound(src,'sound/machines/synth/synth_no.ogg',50,FALSE) STOP_PROCESSING(SSfastprocess, src) /** @@ -221,7 +221,7 @@ moving = TRUE starting_turf = get_turf(src) say("Beginning training simulation.") - playsound(src,'sound/machines/triple_beep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/triple_beep.ogg',50,FALSE) START_PROCESSING(SSfastprocess, src) /** @@ -285,7 +285,7 @@ do_attack_animation(target, null, attached_item) if (obj_flags & EMAGGED) target.apply_damage(attached_item.force, BRUTE, BODY_ZONE_CHEST, attacking_item = attached_item) - playsound(src, 'sound/weapons/smash.ogg', 15, TRUE) + playsound(src, 'sound/items/weapons/smash.ogg', 15, TRUE) COOLDOWN_START(src, attack_cooldown, rand(MIN_ATTACK_DELAY, MAX_ATTACK_DELAY)) /** @@ -390,9 +390,9 @@ return FALSE total_hits++ lap_hits++ - playsound(src,'sound/weapons/smash.ogg',50,FALSE) + playsound(src,'sound/items/weapons/smash.ogg',50,FALSE) if (lap_hits % HITS_TO_KILL == 0) - playsound(src,'sound/machines/twobeep.ogg',25,FALSE) + playsound(src,'sound/machines/beep/twobeep.ogg',25,FALSE) return TRUE /obj/item/training_toolbox/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 8fc1426c5f36d..39a62204fa5d0 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -251,7 +251,7 @@ return var/obj/structure/transit_tube_pod/dispensed/pod = new(loc) AM.visible_message(span_notice("[pod] forms around [AM]."), span_notice("[pod] materializes around you.")) - playsound(src, 'sound/weapons/emitter2.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/emitter2.ogg', 50, TRUE) pod.setDir(turn(src.dir, -90)) AM.forceMove(pod) pod.update_appearance() diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index 0cf5ddf7c9130..a30a59e45a2c1 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -6,7 +6,7 @@ density = FALSE anchored = TRUE alpha = 30 //initially quite hidden when not "recharging" - var/flare_message = "the trap flares brightly!" + var/flare_message = span_warning("the trap flares brightly!") var/last_trigger = 0 var/time_between_triggers = 1 MINUTES var/charges = INFINITY @@ -20,7 +20,7 @@ /obj/structure/trap/Initialize(mapload) . = ..() - flare_message = "[src] flares brightly!" + flare_message = span_warning("[src] flares brightly!") spark_system = new spark_system.set_up(4,1,src) spark_system.attach(src) @@ -113,7 +113,7 @@ /obj/structure/trap/stun/hunter/Initialize(mapload) . = ..() time_between_triggers = 1 SECONDS - flare_message = "[src] snaps shut!" + flare_message = span_warning("[src] snaps shut!") /obj/structure/trap/stun/hunter/Destroy() if(!QDELETED(stored_item)) diff --git a/code/game/objects/structures/water_structures/toilet.dm b/code/game/objects/structures/water_structures/toilet.dm index 7237cd03c5045..986d7eae4ea05 100644 --- a/code/game/objects/structures/water_structures/toilet.dm +++ b/code/game/objects/structures/water_structures/toilet.dm @@ -25,13 +25,9 @@ var/list/cistern_items ///Lazylist of fish in the toilet, not to be mixed with the items in the cistern. Max of 3 var/list/fishes - ///Static toilet water overlay given to toilets that are facing a direction we can see the water in. - var/static/mutable_appearance/toilet_water_overlay /obj/structure/toilet/Initialize(mapload) . = ..() - if(isnull(toilet_water_overlay)) - toilet_water_overlay = mutable_appearance(icon, "[base_icon_state]-water") cover_open = round(rand(0, 1)) update_appearance(UPDATE_ICON) if(mapload && SSmapping.level_trait(z, ZTRAIT_STATION)) @@ -176,8 +172,8 @@ /obj/structure/toilet/update_overlays() . = ..() - if(!flushing && cover_open && (dir & SOUTH)) - . += toilet_water_overlay + if(!flushing && cover_open) + . += "[base_icon_state]-water" /obj/structure/toilet/atom_deconstruct(dissambled = TRUE) for(var/obj/toilet_item in cistern_items) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index fdb5193035c84..5be22d5cb8632 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -28,9 +28,9 @@ var/glass_amount = 1 var/real_explosion_block //ignore this, just use explosion_block var/break_sound = SFX_SHATTER - var/knock_sound = 'sound/effects/glassknock.ogg' - var/bash_sound = 'sound/effects/glassbash.ogg' - var/hit_sound = 'sound/effects/glasshit.ogg' + var/knock_sound = 'sound/effects/glass/glassknock.ogg' + var/bash_sound = 'sound/effects/glass/glassbash.ogg' + var/hit_sound = 'sound/effects/glass/glasshit.ogg' /// If some inconsiderate jerk has had their blood spilled on this window, thus making it cleanable var/bloodied = FALSE ///Datum that the shard and debris type is pulled from for when the glass is broken. @@ -321,9 +321,9 @@ if(damage_amount) playsound(src, hit_sound, 75, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/window/atom_deconstruct(disassembled = TRUE) @@ -450,7 +450,7 @@ addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, forceMove), loc), time_to_go + time_to_return) //we back boys addtimer(VARSET_CALLBACK(src, dramatically_disappearing, FALSE), time_to_go + time_to_return) //also set the var back addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), time_to_go + time_to_return) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(src), 'sound/effects/glass_reverse.ogg', 70, TRUE), time_to_go + time_to_return) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(src), 'sound/effects/glass/glass_reverse.ogg', 70, TRUE), time_to_go + time_to_return) var/obj/structure/grille/grill = take_grill ? (locate(/obj/structure/grille) in loc) : null if(grill) @@ -899,9 +899,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw resistance_flags = FLAMMABLE armor_type = /datum/armor/none knock_sound = SFX_PAGE_TURN - bash_sound = 'sound/weapons/slashmiss.ogg' - break_sound = 'sound/items/poster_ripped.ogg' - hit_sound = 'sound/weapons/slashmiss.ogg' + bash_sound = 'sound/items/weapons/slashmiss.ogg' + break_sound = 'sound/items/poster/poster_ripped.ogg' + hit_sound = 'sound/items/weapons/slashmiss.ogg' var/static/mutable_appearance/torn = mutable_appearance('icons/obj/smooth_structures/structure_variations.dmi',icon_state = "paper-torn", layer = ABOVE_OBJ_LAYER - 0.1) var/static/mutable_appearance/paper = mutable_appearance('icons/obj/smooth_structures/structure_variations.dmi',icon_state = "paper-whole", layer = ABOVE_OBJ_LAYER - 0.1) diff --git a/code/game/sound.dm b/code/game/sound.dm index 0b1984188dbec..fb9d70eb2cb03 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -208,83 +208,83 @@ soundin = get_sfx_doppler(soundin) // DOPPLER EDIT ADDITION - MODULAR SOUNDS switch(soundin) if(SFX_SHATTER) - soundin = pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg') + soundin = pick('sound/effects/glass/glassbr1.ogg','sound/effects/glass/glassbr2.ogg','sound/effects/glass/glassbr3.ogg') if(SFX_EXPLOSION) - soundin = pick('sound/effects/explosion1.ogg','sound/effects/explosion2.ogg') + soundin = pick('sound/effects/explosion/explosion1.ogg','sound/effects/explosion/explosion2.ogg') if(SFX_EXPLOSION_CREAKING) - soundin = pick('sound/effects/explosioncreak1.ogg', 'sound/effects/explosioncreak2.ogg') + soundin = pick('sound/effects/explosion/explosioncreak1.ogg', 'sound/effects/explosion/explosioncreak2.ogg') if(SFX_HULL_CREAKING) - soundin = pick('sound/effects/creak1.ogg', 'sound/effects/creak2.ogg', 'sound/effects/creak3.ogg') + soundin = pick('sound/effects/creak/creak1.ogg', 'sound/effects/creak/creak2.ogg', 'sound/effects/creak/creak3.ogg') if(SFX_SPARKS) - soundin = pick('sound/effects/sparks1.ogg','sound/effects/sparks2.ogg','sound/effects/sparks3.ogg','sound/effects/sparks4.ogg') + soundin = pick('sound/effects/sparks/sparks1.ogg','sound/effects/sparks/sparks2.ogg','sound/effects/sparks/sparks3.ogg','sound/effects/sparks/sparks4.ogg') if(SFX_RUSTLE) - soundin = pick('sound/effects/rustle1.ogg','sound/effects/rustle2.ogg','sound/effects/rustle3.ogg','sound/effects/rustle4.ogg','sound/effects/rustle5.ogg') + soundin = pick('sound/effects/rustle/rustle1.ogg','sound/effects/rustle/rustle2.ogg','sound/effects/rustle/rustle3.ogg','sound/effects/rustle/rustle4.ogg','sound/effects/rustle/rustle5.ogg') if(SFX_BODYFALL) - soundin = pick('sound/effects/bodyfall1.ogg','sound/effects/bodyfall2.ogg','sound/effects/bodyfall3.ogg','sound/effects/bodyfall4.ogg') + soundin = pick('sound/effects/bodyfall/bodyfall1.ogg','sound/effects/bodyfall/bodyfall2.ogg','sound/effects/bodyfall/bodyfall3.ogg','sound/effects/bodyfall/bodyfall4.ogg') if(SFX_PUNCH) - soundin = pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg') + soundin = pick('sound/items/weapons/punch1.ogg','sound/items/weapons/punch2.ogg','sound/items/weapons/punch3.ogg','sound/items/weapons/punch4.ogg') if(SFX_CLOWN_STEP) soundin = pick('sound/effects/footstep/clownstep1.ogg','sound/effects/footstep/clownstep2.ogg') if(SFX_SUIT_STEP) soundin = pick('sound/effects/suitstep1.ogg','sound/effects/suitstep2.ogg') if(SFX_SWING_HIT) - soundin = pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg') + soundin = pick('sound/items/weapons/genhit1.ogg', 'sound/items/weapons/genhit2.ogg', 'sound/items/weapons/genhit3.ogg') if(SFX_HISS) - soundin = pick('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') + soundin = pick('sound/mobs/non-humanoids/hiss/hiss1.ogg','sound/mobs/non-humanoids/hiss/hiss2.ogg','sound/mobs/non-humanoids/hiss/hiss3.ogg','sound/mobs/non-humanoids/hiss/hiss4.ogg') if(SFX_PAGE_TURN) - soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') + soundin = pick('sound/effects/page_turn/pageturn1.ogg', 'sound/effects/page_turn/pageturn2.ogg','sound/effects/page_turn/pageturn3.ogg') if(SFX_RICOCHET) - soundin = pick( 'sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg','sound/weapons/effects/ric3.ogg','sound/weapons/effects/ric4.ogg','sound/weapons/effects/ric5.ogg') + soundin = pick( 'sound/items/weapons/effects/ric1.ogg', 'sound/items/weapons/effects/ric2.ogg','sound/items/weapons/effects/ric3.ogg','sound/items/weapons/effects/ric4.ogg','sound/items/weapons/effects/ric5.ogg') if(SFX_TERMINAL_TYPE) soundin = pick(list( - 'sound/machines/terminal_button01.ogg', - 'sound/machines/terminal_button02.ogg', - 'sound/machines/terminal_button03.ogg', - 'sound/machines/terminal_button04.ogg', - 'sound/machines/terminal_button05.ogg', - 'sound/machines/terminal_button06.ogg', - 'sound/machines/terminal_button07.ogg', - 'sound/machines/terminal_button08.ogg', + 'sound/machines/terminal/terminal_button01.ogg', + 'sound/machines/terminal/terminal_button02.ogg', + 'sound/machines/terminal/terminal_button03.ogg', + 'sound/machines/terminal/terminal_button04.ogg', + 'sound/machines/terminal/terminal_button05.ogg', + 'sound/machines/terminal/terminal_button06.ogg', + 'sound/machines/terminal/terminal_button07.ogg', + 'sound/machines/terminal/terminal_button08.ogg', )) if(SFX_DESECRATION) - soundin = pick('sound/misc/desecration-01.ogg', 'sound/misc/desecration-02.ogg', 'sound/misc/desecration-03.ogg') + soundin = pick('sound/effects/desecration/desecration-01.ogg', 'sound/effects/desecration/desecration-02.ogg', 'sound/effects/desecration/desecration-03.ogg') if(SFX_IM_HERE) - soundin = pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg') + soundin = pick('sound/effects/hallucinations/im_here1.ogg', 'sound/effects/hallucinations/im_here2.ogg') if(SFX_CAN_OPEN) - soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') + soundin = pick('sound/effects/can/can_open1.ogg', 'sound/effects/can/can_open2.ogg', 'sound/effects/can/can_open3.ogg') if(SFX_BULLET_MISS) - soundin = pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg') + soundin = pick('sound/items/weapons/bulletflyby.ogg', 'sound/items/weapons/bulletflyby2.ogg', 'sound/items/weapons/bulletflyby3.ogg') if(SFX_REVOLVER_SPIN) - soundin = pick('sound/weapons/gun/revolver/spin1.ogg', 'sound/weapons/gun/revolver/spin2.ogg', 'sound/weapons/gun/revolver/spin3.ogg') + soundin = pick('sound/items/weapons/gun/revolver/spin1.ogg', 'sound/items/weapons/gun/revolver/spin2.ogg', 'sound/items/weapons/gun/revolver/spin3.ogg') if(SFX_LAW) soundin = pick(list( - 'sound/voice/beepsky/creep.ogg', - 'sound/voice/beepsky/god.ogg', - 'sound/voice/beepsky/iamthelaw.ogg', - 'sound/voice/beepsky/insult.ogg', - 'sound/voice/beepsky/radio.ogg', - 'sound/voice/beepsky/secureday.ogg', + 'sound/mobs/non-humanoids/beepsky/creep.ogg', + 'sound/mobs/non-humanoids/beepsky/god.ogg', + 'sound/mobs/non-humanoids/beepsky/iamthelaw.ogg', + 'sound/mobs/non-humanoids/beepsky/insult.ogg', + 'sound/mobs/non-humanoids/beepsky/radio.ogg', + 'sound/mobs/non-humanoids/beepsky/secureday.ogg', )) if(SFX_HONKBOT_E) soundin = pick(list( 'sound/effects/pray.ogg', - 'sound/effects/reee.ogg', - 'sound/items/AirHorn.ogg', - 'sound/items/AirHorn2.ogg', + 'sound/mobs/non-humanoids/frog/reee.ogg', + 'sound/items/airhorn/AirHorn.ogg', + 'sound/items/airhorn/AirHorn2.ogg', 'sound/items/bikehorn.ogg', 'sound/items/WEEOO1.ogg', - 'sound/machines/buzz-sigh.ogg', + 'sound/machines/buzz/buzz-sigh.ogg', 'sound/machines/ping.ogg', - 'sound/magic/Fireball.ogg', + 'sound/effects/magic/Fireball.ogg', 'sound/misc/sadtrombone.ogg', - 'sound/voice/beepsky/creep.ogg', - 'sound/voice/beepsky/iamthelaw.ogg', - 'sound/voice/hiss1.ogg', - 'sound/weapons/bladeslice.ogg', - 'sound/weapons/flashbang.ogg', + 'sound/mobs/non-humanoids/beepsky/creep.ogg', + 'sound/mobs/non-humanoids/beepsky/iamthelaw.ogg', + 'sound/mobs/non-humanoids/hiss/hiss1.ogg', + 'sound/items/weapons/bladeslice.ogg', + 'sound/items/weapons/flashbang.ogg', )) if(SFX_GOOSE) - soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg') + soundin = pick('sound/mobs/non-humanoids/goose/goose1.ogg', 'sound/mobs/non-humanoids/goose/goose2.ogg', 'sound/mobs/non-humanoids/goose/goose3.ogg', 'sound/mobs/non-humanoids/goose/goose4.ogg') if(SFX_WARPSPEED) soundin = 'sound/runtime/hyperspace/hyperspace_begin.ogg' if(SFX_SM_CALM) @@ -432,49 +432,49 @@ 'sound/machines/sm/accent/delam/33.ogg', )) if(SFX_CRUNCHY_BUSH_WHACK) - soundin = pick('sound/effects/crunchybushwhack1.ogg', 'sound/effects/crunchybushwhack2.ogg', 'sound/effects/crunchybushwhack3.ogg') + soundin = pick('sound/effects/bush/crunchybushwhack1.ogg', 'sound/effects/bush/crunchybushwhack2.ogg', 'sound/effects/bush/crunchybushwhack3.ogg') if(SFX_TREE_CHOP) - soundin = pick('sound/effects/treechop1.ogg', 'sound/effects/treechop2.ogg', 'sound/effects/treechop3.ogg') + soundin = pick('sound/effects/treechop/treechop1.ogg', 'sound/effects/treechop/treechop2.ogg', 'sound/effects/treechop/treechop3.ogg') if(SFX_ROCK_TAP) - soundin = pick('sound/effects/rocktap1.ogg', 'sound/effects/rocktap2.ogg', 'sound/effects/rocktap3.ogg') + soundin = pick('sound/effects/rock/rocktap1.ogg', 'sound/effects/rock/rocktap2.ogg', 'sound/effects/rock/rocktap3.ogg') if(SFX_SEAR) - soundin = 'sound/weapons/sear.ogg' + soundin = 'sound/items/weapons/sear.ogg' if(SFX_REEL) soundin = pick( - 'sound/items/reel1.ogg', - 'sound/items/reel2.ogg', - 'sound/items/reel3.ogg', - 'sound/items/reel4.ogg', - 'sound/items/reel5.ogg', + 'sound/items/reel/reel1.ogg', + 'sound/items/reel/reel2.ogg', + 'sound/items/reel/reel3.ogg', + 'sound/items/reel/reel4.ogg', + 'sound/items/reel/reel5.ogg', ) if(SFX_RATTLE) soundin = pick( - 'sound/items/rattle1.ogg', - 'sound/items/rattle2.ogg', - 'sound/items/rattle3.ogg', + 'sound/items/rattle/rattle1.ogg', + 'sound/items/rattle/rattle2.ogg', + 'sound/items/rattle/rattle3.ogg', ) if(SFX_PORTAL_CLOSE) - soundin = 'sound/effects/portal_close.ogg' + soundin = 'sound/effects/portal/portal_close.ogg' if(SFX_PORTAL_ENTER) - soundin = 'sound/effects/portal_travel.ogg' + soundin = 'sound/effects/portal/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', + 'sound/effects/portal/portal_open_1.ogg', + 'sound/effects/portal/portal_open_2.ogg', + 'sound/effects/portal/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', + 'sound/mobs/non-humanoids/monkey/monkey_screech_1.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_2.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_3.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_4.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_5.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_6.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_7.ogg', ) if(SFX_TOOL_SWITCH) - soundin = 'sound/items/handling/tool_switch.ogg' + soundin = 'sound/items/tools/tool_switch.ogg' if(SFX_KEYBOARD_CLICKS) soundin = pick( 'sound/machines/computer/keyboard_clicks_1.ogg', @@ -509,12 +509,18 @@ 'sound/effects/muffspeech/muffspeech9.ogg', ) if(SFX_DEFAULT_FISH_SLAP) - soundin = 'sound/creatures/fish/fish_slap1.ogg' + soundin = 'sound/mobs/non-humanoids/fish/fish_slap1.ogg' if(SFX_ALT_FISH_SLAP) - soundin = 'sound/creatures/fish/fish_slap2.ogg' + soundin = 'sound/mobs/non-humanoids/fish/fish_slap2.ogg' if(SFX_FISH_PICKUP) soundin = pick( - 'sound/creatures/fish/fish_pickup1.ogg', - 'sound/creatures/fish/fish_pickup2.ogg', + 'sound/mobs/non-humanoids/fish/fish_pickup1.ogg', + 'sound/mobs/non-humanoids/fish/fish_pickup2.ogg', + ) + if(SFX_LIQUID_POUR) + soundin = pick( + 'sound/effects/liquid_pour/liquid_pour1.ogg', + 'sound/effects/liquid_pour/liquid_pour2.ogg', + 'sound/effects/liquid_pour/liquid_pour3.ogg', ) return soundin diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index 0fbe774a7c5ae..f1297e4a02258 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -131,7 +131,7 @@ if(devastated) devastate_wall() else - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) var/newgirder = break_wall() if(newgirder) //maybe we don't /want/ a girder! transfer_fingerprints_to(newgirder) @@ -234,7 +234,7 @@ return user.changeNext_move(CLICK_CD_MELEE) to_chat(user, span_notice("You push the wall but nothing happens!")) - playsound(src, 'sound/weapons/genhit.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 25, TRUE) add_fingerprint(user) /turf/closed/wall/item_interaction(mob/living/user, obj/item/tool, list/modifiers) diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index 01478f4d9f02b..b62de34f14690 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -435,7 +435,7 @@ if(used_rods.use(1)) qdel(catwalk_bait) to_chat(user, span_notice("You construct a catwalk.")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) new /obj/structure/lattice/catwalk(src) else to_chat(user, span_warning("You need two rods to build a catwalk!")) @@ -443,7 +443,7 @@ if(used_rods.use(1)) to_chat(user, span_notice("You construct a lattice.")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) new /obj/structure/lattice(src) else to_chat(user, span_warning("You need one rod to build a lattice.")) @@ -459,7 +459,7 @@ balloon_alert(user, "need a floor tile to build!") return - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) var/turf/open/floor/plating/new_plating = place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) if(lattice) qdel(lattice) @@ -483,7 +483,7 @@ balloon_alert(user, "no tile!") return - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) new used_tiles.tile_type(src) /// Very similar to build_with_rods, this exists to allow building transport/tram girders on openspace @@ -496,5 +496,5 @@ balloon_alert(user, "not enough titanium!") return - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) new /obj/structure/girder/tram(src) diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm index 504e876d536ce..f81ac4c7f536e 100644 --- a/code/game/turfs/open/chasm.dm +++ b/code/game/turfs/open/chasm.dm @@ -65,7 +65,7 @@ to_chat(user, span_warning("You need one rod to build a lattice.")) return to_chat(user, span_notice("You construct a lattice.")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) // Create a lattice, without reverting to our baseturf new /obj/structure/lattice(src) return diff --git a/code/game/turfs/open/floor/plating.dm b/code/game/turfs/open/floor/plating.dm index 6e4834773c325..9c7cf01576178 100644 --- a/code/game/turfs/open/floor/plating.dm +++ b/code/game/turfs/open/floor/plating.dm @@ -148,10 +148,10 @@ if(L) qdel(L) to_chat(user, span_notice("You reinforce the foamed plating with tiling.")) - playsound(src, 'sound/weapons/Genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/Genhit.ogg', 50, TRUE) ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) else - playsound(src, 'sound/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself + playsound(src, 'sound/items/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) if(prob(I.force * 20 - 25)) diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index c080e228438a5..eebb74b72897b 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -16,7 +16,7 @@ light_power = 0.75 light_color = LIGHT_COLOR_LAVA light_on = FALSE - bullet_bounce_sound = 'sound/items/welder2.ogg' + bullet_bounce_sound = 'sound/items/tools/welder2.ogg' footstep = FOOTSTEP_LAVA barefootstep = FOOTSTEP_LAVA @@ -201,7 +201,7 @@ return if(R.use(1)) to_chat(user, span_notice("You construct a lattice.")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) new /obj/structure/lattice/lava(locate(x, y, z)) else to_chat(user, span_warning("You need one rod to build a heatproof lattice.")) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 19356c2e32309..38976bcfdd6df 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -47,7 +47,7 @@ GLOBAL_LIST_EMPTY(station_turfs) var/requires_activation //add to air processing after initialize? var/changing_turf = FALSE - var/bullet_bounce_sound = 'sound/weapons/gun/general/mag_bullet_remove.ogg' //sound played when a shell casing is ejected ontop of the turf. + var/bullet_bounce_sound = 'sound/items/weapons/gun/general/mag_bullet_remove.ogg' //sound played when a shell casing is ejected ontop of the turf. var/bullet_sizzle = FALSE //used by ammo_casing/bounce_away() to determine if the shell casing should make a sizzle sound when it's ejected over the turf //IE if the turf is supposed to be water, set TRUE. diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm index ca7b45649d159..e348321326473 100644 --- a/code/modules/admin/antag_panel.dm +++ b/code/modules/admin/antag_panel.dm @@ -77,16 +77,16 @@ GLOBAL_VAR(antag_prototypes) /datum/mind/proc/get_special_statuses() var/list/result = LAZYCOPY(special_statuses) if(!current) - result += "No body!" + result += span_bad("No body!") if(current && HAS_TRAIT(current, TRAIT_MINDSHIELD)) - result += "Mindshielded" + result += span_good("Mindshielded") if(current && HAS_MIND_TRAIT(current, TRAIT_UNCONVERTABLE)) - result += "Unconvertable" + result += span_good("Unconvertable") //Move these to mob if(iscyborg(current)) var/mob/living/silicon/robot/robot = current if (robot.emagged) - result += "Emagged" + result += span_bad("Emagged") return result.Join(" | ") /datum/mind/proc/traitor_panel() @@ -154,7 +154,7 @@ GLOBAL_VAR(antag_prototypes) continue else //Show removal and current one priority_sections |= antag_category - antag_header_parts += "[current_antag.name]" + antag_header_parts += span_bad("[current_antag.name]") antag_header_parts += "Remove" antag_header_parts += "Open VV" diff --git a/code/modules/admin/smites/dock_pay.dm b/code/modules/admin/smites/dock_pay.dm index 0ce91bbd4b701..a3828feb828dc 100644 --- a/code/modules/admin/smites/dock_pay.dm +++ b/code/modules/admin/smites/dock_pay.dm @@ -28,4 +28,4 @@ else card.registered_account.account_balance = card.registered_account.account_balance - new_cost card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.") - SEND_SOUND(target, 'sound/machines/buzz-sigh.ogg') + SEND_SOUND(target, 'sound/machines/buzz/buzz-sigh.ogg') diff --git a/code/modules/admin/smites/imaginary_friend_special.dm b/code/modules/admin/smites/imaginary_friend_special.dm index e670e26fd1fa4..37425faf3b1c8 100644 --- a/code/modules/admin/smites/imaginary_friend_special.dm +++ b/code/modules/admin/smites/imaginary_friend_special.dm @@ -1,6 +1,8 @@ #define CHOICE_RANDOM_APPEARANCE "Random" #define CHOICE_PREFS_APPEARANCE "Look-a-like" +#define CHOICE_PICK_PLAYER "Pick player" #define CHOICE_POLL_GHOSTS "Offer to ghosts" +#define CHOICE_END_THEM "Do it!" #define CHOICE_CANCEL "Cancel" /** @@ -15,10 +17,12 @@ **/ /datum/smite/custom_imaginary_friend name = "Imaginary Friend (Special)" - /// Who are we going to add to your head today? - var/list/friend_candidates /// Do we randomise friend appearances or not? var/random_appearance + /// Are we polling for ghosts + var/ghost_polling + /// How many imaginary friends should be added when polling + var/polled_friend_count /datum/smite/custom_imaginary_friend/configure(client/user) var/appearance_choice = tgui_alert(user, @@ -29,69 +33,99 @@ return FALSE random_appearance = appearance_choice == CHOICE_RANDOM_APPEARANCE - var/picked_client = tgui_input_list(user, "Pick the player to put in control", "New Imaginary Friend", list(CHOICE_POLL_GHOSTS) + sort_list(GLOB.clients)) - if(isnull(picked_client)) - return FALSE - - if(picked_client == CHOICE_POLL_GHOSTS) - return poll_ghosts(user) - - var/client/friend_candidate_client = picked_client - if(QDELETED(friend_candidate_client)) - to_chat(user, span_warning("Selected player no longer has a client, aborting.")) - return FALSE + var/client_selection_choice = tgui_alert(user, + "Do you want to pick a specific player, or poll for ghosts?", + "Imaginary Friend Selection?", + list(CHOICE_PICK_PLAYER, CHOICE_POLL_GHOSTS, CHOICE_CANCEL)) - if(isliving(friend_candidate_client.mob) && (tgui_alert(user, "This player already has a living mob ([friend_candidate_client.mob]). Do you still want to turn them into an Imaginary Friend?", "Remove player from mob?", list("Do it!", "Cancel")) != "Do it!")) + if(isnull(client_selection_choice) || client_selection_choice == CHOICE_CANCEL) return FALSE + ghost_polling = client_selection_choice == CHOICE_POLL_GHOSTS - if(QDELETED(friend_candidate_client)) - to_chat(user, span_warning("Selected player no longer has a client, aborting.")) - return FALSE + if(ghost_polling) + var/how_many = tgui_input_number(user, "How many imaginary friends should be added?", "Imaginary friend count", default = 1, min_value = 1) + if(isnull(how_many) || how_many < 1) + return FALSE + polled_friend_count = how_many - friend_candidates = list(friend_candidate_client) return TRUE -/// Try to offer the role to ghosts -/datum/smite/custom_imaginary_friend/proc/poll_ghosts(client/user) - var/how_many = tgui_input_number(user, "How many imaginary friends should be added?", "Imaginary friend count", default = 1, min_value = 1) - if (isnull(how_many) || how_many < 1) - return FALSE +/// Try to offer the role to ghosts +/datum/smite/custom_imaginary_friend/proc/poll_ghosts(client/user, mob/living/target) var/list/volunteers = SSpolling.poll_ghost_candidates( check_jobban = ROLE_PAI, poll_time = 10 SECONDS, ignore_category = POLL_IGNORE_IMAGINARYFRIEND, - role_name_text = "imaginary friend", + jump_target = target, + role_name_text = "an imaginary friend for [target.real_name]", ) var/volunteer_count = length(volunteers) - if (volunteer_count == 0) + if(volunteer_count == 0) to_chat(user, span_warning("No candidates volunteered, aborting.")) - return FALSE + return shuffle_inplace(volunteers) - friend_candidates = list() - while (how_many > 0 && length(volunteers) > 0) + var/list/friend_candidates = list() + while(polled_friend_count > 0 && length(volunteers) > 0) var/mob/dead/observer/lucky_ghost = pop(volunteers) if (!lucky_ghost.client) continue - how_many-- + polled_friend_count-- friend_candidates += lucky_ghost.client - return TRUE + return friend_candidates + +/// Pick client manually +/datum/smite/custom_imaginary_friend/proc/pick_client(client/user) + var/picked_client = tgui_input_list(user, "Pick the player to put in control", "New Imaginary Friend", sort_list(GLOB.clients)) + if(isnull(picked_client)) + return + + var/client/friend_candidate_client = picked_client + if(QDELETED(friend_candidate_client)) + to_chat(user, span_warning("Selected player no longer has a client, aborting.")) + return + + if(isliving(friend_candidate_client.mob)) + var/end_them_choice = tgui_alert(user, + "This player already has a living mob ([friend_candidate_client.mob]). Do you still want to turn them into an Imaginary Friend?", + "Remove player from mob?", + list(CHOICE_END_THEM, CHOICE_CANCEL)) + if(end_them_choice == CHOICE_CANCEL) + return + + if(QDELETED(friend_candidate_client)) + to_chat(user, span_warning("Selected player no longer has a client, aborting.")) + return + + return list(friend_candidate_client) + /datum/smite/custom_imaginary_friend/effect(client/user, mob/living/target) . = ..() + // Run this check before and after polling, we don't wanna poll for something which already stopped existing + if(QDELETED(target)) + to_chat(user, span_warning("The target mob no longer exists, aborting.")) + return + + var/list/friend_candidates + if(ghost_polling) + friend_candidates = poll_ghosts(user, target) + else + friend_candidates = pick_client(user) + if(QDELETED(target)) to_chat(user, span_warning("The target mob no longer exists, aborting.")) return - if(!length(friend_candidates)) + if(isnull(friend_candidates) || !length(friend_candidates)) to_chat(user, span_warning("No provided imaginary friend candidates, aborting.")) return var/list/final_clients = list() - for (var/client/client as anything in friend_candidates) - if (QDELETED(client)) + for(var/client/client as anything in friend_candidates) + if(QDELETED(client)) continue final_clients += client @@ -99,7 +133,7 @@ to_chat(user, span_warning("No provided imaginary friend candidates had clients, aborting.")) return - for (var/client/friend_candidate_client as anything in final_clients) + for(var/client/friend_candidate_client as anything in final_clients) var/mob/client_mob = friend_candidate_client.mob if(isliving(client_mob)) client_mob.ghostize() @@ -114,5 +148,7 @@ #undef CHOICE_RANDOM_APPEARANCE #undef CHOICE_PREFS_APPEARANCE +#undef CHOICE_PICK_PLAYER #undef CHOICE_POLL_GHOSTS +#undef CHOICE_END_THEM #undef CHOICE_CANCEL diff --git a/code/modules/admin/smites/immerse.dm b/code/modules/admin/smites/immerse.dm index fd330868e9940..9cdd8aca95ec8 100644 --- a/code/modules/admin/smites/immerse.dm +++ b/code/modules/admin/smites/immerse.dm @@ -5,5 +5,5 @@ /datum/smite/immerse/effect(client/user, mob/living/target) . = ..() immerse_player(target) - SEND_SOUND(target, sound('sound/voice/roleplay.ogg')) + SEND_SOUND(target, sound('sound/misc/roleplay.ogg')) to_chat(target, span_boldnotice("Please roleplay appropriately, okay?")) diff --git a/code/modules/admin/smites/lightning.dm b/code/modules/admin/smites/lightning.dm index 660af779f9b5c..6ffd8eb58695c 100644 --- a/code/modules/admin/smites/lightning.dm +++ b/code/modules/admin/smites/lightning.dm @@ -12,7 +12,7 @@ var/turf/lightning_source = get_step(get_step(user, NORTH), NORTH) lightning_source.Beam(user, icon_state="lightning[rand(1,12)]", time = 5) user.adjustFireLoss(LIGHTNING_BOLT_DAMAGE) - playsound(get_turf(user), 'sound/magic/lightningbolt.ogg', 50, TRUE) + playsound(get_turf(user), 'sound/effects/magic/lightningbolt.ogg', 50, TRUE) if(ishuman(user)) var/mob/living/carbon/human/human_target = user human_target.electrocution_animation(LIGHTNING_BOLT_ELECTROCUTION_ANIMATION_LENGTH) diff --git a/code/modules/admin/smites/nugget.dm b/code/modules/admin/smites/nugget.dm index 4525f674f2c0d..18e5254e615f5 100644 --- a/code/modules/admin/smites/nugget.dm +++ b/code/modules/admin/smites/nugget.dm @@ -16,6 +16,6 @@ if (limb.body_part == HEAD || limb.body_part == CHEST) continue addtimer(CALLBACK(limb, TYPE_PROC_REF(/obj/item/bodypart/, dismember)), timer) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), carbon_target, 'sound/effects/cartoon_pop.ogg', 70), timer) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), carbon_target, 'sound/effects/cartoon_sfx/cartoon_pop.ogg', 70), timer) addtimer(CALLBACK(carbon_target, TYPE_PROC_REF(/mob/living/, spin), 4, 1), timer - 0.4 SECONDS) timer += 2 SECONDS diff --git a/code/modules/admin/verbs/adminevents.dm b/code/modules/admin/verbs/adminevents.dm index d2eeba90262cf..b3c61e8e787f2 100644 --- a/code/modules/admin/verbs/adminevents.dm +++ b/code/modules/admin/verbs/adminevents.dm @@ -168,7 +168,7 @@ ADMIN_VERB(disable_shuttle, R_ADMIN, "Disable Shuttle", "Those fuckers aren't ge priority_announce( text = "Emergency Shuttle uplink failure, shuttle disabled until further notice.", title = "Uplink Failure", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) @@ -194,7 +194,7 @@ ADMIN_VERB(enable_shuttle, R_ADMIN, "Enable Shuttle", "Those fuckers ARE getting priority_announce( text = "Emergency Shuttle uplink reestablished, shuttle enabled.", title = "Uplink Restored", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "green", ) diff --git a/code/modules/admin/verbs/adminfun.dm b/code/modules/admin/verbs/adminfun.dm index c7acd1cba4624..c58d63581bd34 100644 --- a/code/modules/admin/verbs/adminfun.dm +++ b/code/modules/admin/verbs/adminfun.dm @@ -147,7 +147,7 @@ ADMIN_VERB(polymorph_all, R_ADMIN, "Polymorph All", "Applies the effects of the continue M.audible_message(span_hear("...wabbajack...wabbajack...")) - playsound(M.loc, 'sound/magic/staff_change.ogg', 50, TRUE, -1) + playsound(M.loc, 'sound/effects/magic/staff_change.ogg', 50, TRUE, -1) M.wabbajack() @@ -187,7 +187,7 @@ ADMIN_VERB_AND_CONTEXT_MENU(admin_smite, R_ADMIN|R_FUN, "Smite", "Smite a player /proc/firing_squad(mob/living/carbon/target, turf/source_turf, body_zone, wound_bonus, damage) if(!target.get_bodypart(body_zone)) return - playsound(target, 'sound/weapons/gun/revolver/shot.ogg', 100) + playsound(target, 'sound/items/weapons/gun/revolver/shot.ogg', 100) var/obj/projectile/bullet/smite/divine_wrath = new(source_turf) divine_wrath.damage = damage divine_wrath.wound_bonus = wound_bonus diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 8540ff99e5733..834e4741cdecf 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -103,7 +103,7 @@ ADMIN_VERB(cmd_admin_pm_panel, R_NONE, "Admin PM", "Show a list of clients to PM if(length(recipient_interactions) == 1) if(length(opening_interactions)) // Inform the admin that they aren't the first var/printable_interators = english_list(opening_interactions) - SEND_SOUND(src, sound('sound/machines/buzz-sigh.ogg', volume=30)) + SEND_SOUND(src, sound('sound/machines/buzz/buzz-sigh.ogg', volume=30)) message_prompt += "\n\n**This ticket is already being responded to by: [printable_interators]**" // add the admin who is currently responding to the list of people responding LAZYADD(recipient_ticket.opening_responders, src) diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index 7f56155c9989a..2192428846709 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -268,7 +268,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme) set_station_name("[pick(GLOB.first_names)] [pick(GLOB.last_names)]") /datum/anonymous_theme/station/announce_to_all_players() - priority_announce("Confirmed level 9 reality error event near [station_name()]. All personnel must try their best to carry on, as to not trigger more reality events by accident.", "Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') + priority_announce("Confirmed level 9 reality error event near [station_name()]. All personnel must try their best to carry on, as to not trigger more reality events by accident.", "Central Command Higher Dimensional Affairs", 'sound/announcer/notice/notice1.ogg') /datum/anonymous_theme/station/anonymous_name(mob/target) return new_station_name() diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 20cdf3514598f..b6c5e10ca1d81 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -583,8 +583,8 @@ ADMIN_VERB(jump_to_ruin, R_DEBUG, "Jump to Ruin", "Displays a list of all placed return var/datum/map_template/ruin/template = landmark.ruin_template user.mob.forceMove(get_turf(landmark)) - to_chat(user, span_name("[template.name]"), confidential = TRUE) - to_chat(user, "[template.description]", confidential = TRUE) + to_chat(user, span_name(template.name), confidential = TRUE) + to_chat(user, span_italics(template.description), confidential = TRUE) ADMIN_VERB_VISIBILITY(place_ruin, ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG) ADMIN_VERB(place_ruin, R_DEBUG, "Spawn Ruin", "Attempt to randomly place a specific ruin.", ADMIN_CATEGORY_MAPPING) @@ -625,7 +625,7 @@ ADMIN_VERB(place_ruin, R_DEBUG, "Spawn Ruin", "Attempt to randomly place a speci log_admin("[key_name(user)] randomly spawned ruin [ruinname] at [COORD(landmark)].") user.mob.forceMove(get_turf(landmark)) to_chat(user, span_name("[template.name]"), confidential = TRUE) - to_chat(user, "[template.description]", confidential = TRUE) + to_chat(user, span_italics("[template.description]"), confidential = TRUE) else to_chat(user, span_warning("Failed to place [template.name]."), confidential = TRUE) diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index 9012a8652bbff..368f6f4d6f45e 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -648,12 +648,12 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w /proc/portalAnnounce(announcement, playlightning) set waitfor = FALSE if (playlightning) - sound_to_playing_players('sound/magic/lightning_chargeup.ogg') + sound_to_playing_players('sound/effects/magic/lightning_chargeup.ogg') sleep(8 SECONDS) priority_announce(replacetext(announcement, "%STATION%", station_name())) if (playlightning) sleep(2 SECONDS) - sound_to_playing_players('sound/magic/lightningbolt.ogg') + sound_to_playing_players('sound/effects/magic/lightningbolt.ogg') /// Spawns a portal storm that spawns in sentient/non sentient mobs /// portal_appearance is a list in the form (turf's plane offset + 1) -> appearance to use @@ -671,7 +671,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w H.equipOutfit(humanoutfit) var/turf/T = get_step(loc, SOUTHWEST) T.flick_overlay_static(portal_appearance[GET_TURF_PLANE_OFFSET(T) + 1], 15) - playsound(T, 'sound/magic/lightningbolt.ogg', rand(80, 100), TRUE) + playsound(T, 'sound/effects/magic/lightningbolt.ogg', rand(80, 100), TRUE) /datum/everyone_is_an_antag_controller var/chosen_antag = "" diff --git a/code/modules/admin/verbs/server.dm b/code/modules/admin/verbs/server.dm index a8389ca0bc155..5ac9fd272b45c 100644 --- a/code/modules/admin/verbs/server.dm +++ b/code/modules/admin/verbs/server.dm @@ -98,7 +98,7 @@ ADMIN_VERB(start_now, R_SERVER, "Start Now", "Start the round RIGHT NOW.", ADMIN SSticker.start_immediately = FALSE SSticker.SetTimeLeft(3 MINUTES) to_chat(world, span_big(span_notice("The game will start in 3 minutes."))) - SEND_SOUND(world, sound('sound/ai/default/attention.ogg')) + SEND_SOUND(world, sound('sound/announcer/default/attention.ogg')) message_admins(span_adminnotice("[key_name_admin(user)] has cancelled immediate game start. Game will start in 3 minutes.")) log_admin("[key_name(user)] has cancelled immediate game start.") return @@ -202,11 +202,11 @@ ADMIN_VERB(delay, R_SERVER, "Delay Pre-Game", "Delay the game start.", ADMIN_CAT SSticker.SetTimeLeft(newtime) SSticker.start_immediately = FALSE if(newtime < 0) - to_chat(world, "The game start has been delayed.", confidential = TRUE) + to_chat(world, span_infoplain("The game start has been delayed."), confidential = TRUE) log_admin("[key_name(user)] delayed the round start.") else to_chat(world, span_infoplain(span_bold("The game will start in [DisplayTimeText(newtime)].")), confidential = TRUE) - SEND_SOUND(world, sound('sound/ai/default/attention.ogg')) + SEND_SOUND(world, sound('sound/announcer/default/attention.ogg')) log_admin("[key_name(user)] set the pre-game delay to [DisplayTimeText(newtime)].") BLACKBOX_LOG_ADMIN_VERB("Delay Game Start") diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index fc8bfa0de8486..f490095a019d9 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -415,7 +415,7 @@ GLOBAL_LIST_EMPTY(antagonists) * Appears at start of roundend_catagory section. */ /datum/antagonist/proc/roundend_report_header() - return "The [roundend_category] were:
" + return span_header("The [roundend_category] were:
") /** * Proc that sends string data for the round-end report. diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index da7c7e9e39cac..27c1fd5a0ea89 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -274,7 +274,7 @@ spawn_antag(chosen_one.client, get_turf(src), initial(demon_type.name), user.mind) to_chat(user, shatter_msg) to_chat(user, veil_msg) - playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, TRUE) + playsound(user.loc, 'sound/effects/glass/glassbr1.ogg', 100, TRUE) qdel(src) else to_chat(user, span_warning("The bottle's contents usually pop and boil constantly, but right now they're eerily still and calm. Perhaps you should try again later.")) diff --git a/code/modules/antagonists/_common/antag_team.dm b/code/modules/antagonists/_common/antag_team.dm index 29f94b040ec5f..527196c51c3ea 100644 --- a/code/modules/antagonists/_common/antag_team.dm +++ b/code/modules/antagonists/_common/antag_team.dm @@ -49,12 +49,12 @@ GLOBAL_LIST_EMPTY(antagonist_teams) /datum/team/proc/roundend_report() var/list/report = list() - report += "\The [name]:" + report += span_header("\The [name]:") report += "The [member_name]s were:" report += printplayerlist(members) if(objectives.len) - report += "Team had following objectives:" + report += span_header("Team had following objectives:") var/win = TRUE var/objective_count = 1 for(var/datum/objective/objective as anything in objectives) diff --git a/code/modules/antagonists/abductor/abductee/abductee.dm b/code/modules/antagonists/abductor/abductee/abductee.dm index fa529a6504415..9b5421c0fd720 100644 --- a/code/modules/antagonists/abductor/abductee/abductee.dm +++ b/code/modules/antagonists/abductor/abductee/abductee.dm @@ -6,7 +6,7 @@ */ /datum/antagonist/abductee name = "\improper Abductee" - stinger_sound = 'sound/ambience/antag/abductee.ogg' + stinger_sound = 'sound/music/antag/abductee.ogg' roundend_category = "abductees" antagpanel_category = ANTAG_GROUP_ABDUCTORS antag_hud_name = "abductee" diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm index cd56fcdaa5cdc..2ca46499a7db0 100644 --- a/code/modules/antagonists/abductor/abductor.dm +++ b/code/modules/antagonists/abductor/abductor.dm @@ -7,7 +7,7 @@ show_in_antagpanel = FALSE //should only show subtypes show_to_ghosts = TRUE suicide_cry = "FOR THE MOTHERSHIP!!" // They can't even talk but y'know - stinger_sound = 'sound/ambience/antag/ayylien.ogg' + stinger_sound = 'sound/music/antag/ayylien.ogg' var/datum/team/abductor_team/team var/sub_role var/outfit @@ -171,7 +171,7 @@ else result += "[name] team failed its mission." - result += "The abductors of [name] were:" + result += span_header("The abductors of [name] were:") for(var/datum/mind/abductor_mind in members) result += printplayer(abductor_mind) result += printobjectives(objectives) diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm index ab1636b4dedfd..91107529721bc 100644 --- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm +++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm @@ -226,7 +226,7 @@ return living_target.balloon_alert(living_target, "you hear a voice") - to_chat(living_target, span_hear("You hear a voice in your head saying:
[message]")) + to_chat(living_target, span_hear("You hear a voice in your head saying: [span_abductor(message)]")) to_chat(user, span_notice("You send the message to your target.")) log_directed_talk(user, living_target, message, LOG_SAY, "abductor whisper") @@ -235,7 +235,7 @@ name = "alien firing pin" icon_state = "firing_pin_ayy" desc = "This firing pin is slimy and warm; you can swear you feel it constantly trying to mentally probe you." - fail_message = "Firing error, please contact Command." + fail_message = span_abductor("Firing error, please contact Command.") /obj/item/firing_pin/abductor/pin_auth(mob/living/user) . = isabductor(user) @@ -306,7 +306,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} cooldown = 0 SECONDS stamina_damage = 0 knockdown_time = 14 SECONDS - on_stun_sound = 'sound/weapons/egloves.ogg' + on_stun_sound = 'sound/items/weapons/egloves.ogg' affect_cyborg = TRUE var/mode = BATON_STUN @@ -339,7 +339,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} affect_cyborg = is_stun_mode log_stun_attack = is_stun_mode // other modes have their own log entries. stun_animation = is_stun_or_sleep - on_stun_sound = is_stun_or_sleep ? 'sound/weapons/egloves.ogg' : null + on_stun_sound = is_stun_or_sleep ? 'sound/items/weapons/egloves.ogg' : null to_chat(usr, span_notice("You switch the baton to [txt] mode.")) update_appearance() @@ -422,7 +422,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} var/mob/living/carbon/carbon_victim = victim if(!carbon_victim.handcuffed) if(carbon_victim.canBeHandcuffed()) - playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) + playsound(src, 'sound/items/weapons/cablecuff.ogg', 30, TRUE, -2) carbon_victim.visible_message(span_danger("[user] begins restraining [carbon_victim] with [src]!"), \ span_userdanger("[user] begins shaping an energy field around your hands!")) if(do_after(user, time_to_cuff, carbon_victim) && carbon_victim.canBeHandcuffed()) @@ -522,7 +522,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} ..() user.visible_message(span_notice("[user] places down [src] and activates it."), span_notice("You place down [src] and activate it.")) user.dropItemToGround(src) - playsound(src, 'sound/machines/terminal_alert.ogg', 50) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50) addtimer(CALLBACK(src, PROC_REF(try_spawn_machine)), 3 SECONDS) /obj/item/abductor_machine_beacon/proc/try_spawn_machine() @@ -539,7 +539,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} visible_message(span_notice("[new_machine] warps on top of the beacon!")) qdel(src) else - playsound(src, 'sound/machines/buzz-two.ogg', 50) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50) /obj/item/abductor_machine_beacon/chem_dispenser name = "beacon - Reagent Synthesizer" @@ -618,7 +618,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} inhand_icon_state = "silencer" toolspeed = 0.25 tool_behaviour = null - usesound = 'sound/items/pshoom.ogg' + usesound = 'sound/items/pshoom/pshoom.ogg' ///A list of all the tools we offer. Stored as "Tool" for the key, and the icon/icon_state as the value. var/list/tool_list = list() ///Which toolset do we have active currently? diff --git a/code/modules/antagonists/abductor/equipment/glands/electric.dm b/code/modules/antagonists/abductor/equipment/glands/electric.dm index 72b2c1e14ad1c..e0b3df0f19c32 100644 --- a/code/modules/antagonists/abductor/equipment/glands/electric.dm +++ b/code/modules/antagonists/abductor/equipment/glands/electric.dm @@ -23,4 +23,4 @@ /obj/item/organ/internal/heart/gland/electric/proc/zap() tesla_zap(source = owner, zap_range = 4, power = 8e3, cutoff = 1e3, zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN) - playsound(get_turf(owner), 'sound/magic/lightningshock.ogg', 50, TRUE) + playsound(get_turf(owner), 'sound/effects/magic/lightningshock.ogg', 50, TRUE) diff --git a/code/modules/antagonists/abductor/equipment/glands/heal.dm b/code/modules/antagonists/abductor/equipment/glands/heal.dm index 7f4462377654c..83ba7a7ffbdf2 100644 --- a/code/modules/antagonists/abductor/equipment/glands/heal.dm +++ b/code/modules/antagonists/abductor/equipment/glands/heal.dm @@ -183,7 +183,7 @@ owner.visible_message(span_warning("With a loud snap, [owner]'s [parse_zone(body_zone)] rapidly grows back from [owner.p_their()] body!"), span_userdanger("With a loud snap, your [parse_zone(body_zone)] rapidly grows back from your body!"), span_warning("Your hear a loud snap.")) - playsound(owner, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(owner, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) owner.regenerate_limb(body_zone) /obj/item/organ/internal/heart/gland/heal/proc/replace_blood() @@ -212,7 +212,7 @@ /obj/item/organ/internal/heart/gland/heal/proc/replace_chest(obj/item/bodypart/chest/chest) if(!IS_ORGANIC_LIMB(chest)) owner.visible_message(span_warning("[owner]'s [chest.name] rapidly expels its mechanical components, replacing them with flesh!"), span_userdanger("Your [chest.name] rapidly expels its mechanical components, replacing them with flesh!")) - playsound(owner, 'sound/magic/clockwork/anima_fragment_attack.ogg', 50, TRUE) + playsound(owner, 'sound/effects/magic/clockwork/anima_fragment_attack.ogg', 50, TRUE) var/list/dirs = GLOB.alldirs.Copy() for(var/i in 1 to 3) var/obj/effect/decal/cleanable/robot_debris/debris = new(get_turf(owner)) diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index 27093778c3116..c4e59c505bf04 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -169,7 +169,7 @@ credits += point_reward return "Experiment successful! [point_reward] new data-points collected." else - playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src.loc, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return "Experiment failed! No replacement organ detected." else say("Brain activity nonexistent - disposing sample...") diff --git a/code/modules/antagonists/ashwalker/ashwalker.dm b/code/modules/antagonists/ashwalker/ashwalker.dm index 827d929b0fbb5..fae4dd5059b16 100644 --- a/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/code/modules/antagonists/ashwalker/ashwalker.dm @@ -65,9 +65,9 @@ objectives -= necropolis_objective //So we don't count it in the check for other objectives. report += "The [name] was tasked with defending the Necropolis:" if(necropolis_objective.check_completion()) - report += span_greentext("The nest stands! Glory to the Necropolis!
") + report += span_greentext(span_header("The nest stands! Glory to the Necropolis!
")) else - report += span_redtext("The Necropolis was destroyed, the tribe has fallen...
") + report += span_redtext(span_header("The Necropolis was destroyed, the tribe has fallen...
")) if(length(objectives)) report += span_header("The [name]'s other objectives were:") diff --git a/code/modules/antagonists/battlecruiser/battlecruiser.dm b/code/modules/antagonists/battlecruiser/battlecruiser.dm index bcc2fc963309a..194034e31bbd2 100644 --- a/code/modules/antagonists/battlecruiser/battlecruiser.dm +++ b/code/modules/antagonists/battlecruiser/battlecruiser.dm @@ -20,7 +20,7 @@ antag_hud_name = "battlecruiser_crew" antagpanel_category = ANTAG_GROUP_SYNDICATE job_rank = ROLE_BATTLECRUISER_CREW - stinger_sound = 'sound/ambience/antag/ops.ogg' + stinger_sound = 'sound/music/antag/ops.ogg' /// Team to place the crewmember on. var/datum/team/battlecruiser/battlecruiser_team diff --git a/code/modules/antagonists/blob/blob_antag.dm b/code/modules/antagonists/blob/blob_antag.dm index 9cad238bb0011..9f9d97fac8dde 100644 --- a/code/modules/antagonists/blob/blob_antag.dm +++ b/code/modules/antagonists/blob/blob_antag.dm @@ -6,7 +6,7 @@ show_in_antagpanel = FALSE job_rank = ROLE_BLOB ui_name = "AntagInfoBlob" - stinger_sound = 'sound/ambience/antag/blobalert.ogg' + stinger_sound = 'sound/music/antag/blobalert.ogg' /// Action to release a blob infection var/datum/action/innate/blobpop/pop_action /// Initial points for a human blob @@ -133,13 +133,13 @@ owner.mind.transfer_to(blob_cam) old_body.gib() blob_cam.place_blob_core(placement_override, pop_override = TRUE) - playsound(get_turf(blob_cam), 'sound/ambience/antag/blobalert.ogg', 50, FALSE) + playsound(get_turf(blob_cam), 'sound/music/antag/blobalert.ogg', 50, FALSE) blobtag.has_already_popped = TRUE notify_ghosts( "A Blob host has burst in [get_area_name(blob_cam.blob_core)]", source = blob_cam.blob_core, - ghost_sound = 'sound/ambience/antag/blobalert.ogg', + ghost_sound = 'sound/music/antag/blobalert.ogg', header = "Blob Awakening!", notify_volume = 75, ) diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 65d2acb8bb905..99a27429e61a7 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -187,7 +187,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) blobstrain.on_sporedeath(spore) /mob/camera/blob/proc/victory() - sound_to_playing_players('sound/machines/alarm.ogg') + sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) sleep(10 SECONDS) for(var/mob/living/live_guy as anything in GLOB.mob_living_list) var/turf/guy_turf = get_turf(live_guy) diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm index c7a2fc3a1107f..ce1b016dcb045 100644 --- a/code/modules/antagonists/blob/structures/_blob.dm +++ b/code/modules/antagonists/blob/structures/_blob.dm @@ -282,11 +282,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src.loc, 'sound/effects/attackblob.ogg', 50, TRUE) + playsound(src.loc, 'sound/effects/blob/attackblob.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/blob/run_atom_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) switch(damage_type) diff --git a/code/modules/antagonists/brainwashing/brainwashing.dm b/code/modules/antagonists/brainwashing/brainwashing.dm index 5d5cca3cb6de1..ebad949060a91 100644 --- a/code/modules/antagonists/brainwashing/brainwashing.dm +++ b/code/modules/antagonists/brainwashing/brainwashing.dm @@ -30,7 +30,7 @@ /datum/antagonist/brainwashed name = "\improper Brainwashed Victim" job_rank = ROLE_BRAINWASHED - stinger_sound = 'sound/ambience/antag/brainwashed.ogg' + stinger_sound = 'sound/music/antag/brainwashed.ogg' roundend_category = "brainwashed victims" show_in_antagpanel = TRUE antag_hud_name = "brainwashed" diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 4f535ece8cef0..80d14724170fe 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -9,7 +9,7 @@ suicide_cry = "FOR MY BROTHER!!" antag_moodlet = /datum/mood_event/focused hardcore_random_bonus = TRUE - stinger_sound = 'sound/ambience/antag/tatoralert.ogg' + stinger_sound = 'sound/music/antag/traitor/tatoralert.ogg' VAR_PRIVATE datum/team/brother_team/team diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 505c103f9d09c..59610861756e6 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -14,7 +14,7 @@ can_assign_self_objectives = TRUE default_custom_objective = "Consume the station's most valuable genomes." hardcore_random_bonus = TRUE - stinger_sound = 'sound/ambience/antag/ling_alert.ogg' + stinger_sound = 'sound/music/antag/ling_alert.ogg' /// Whether to give this changeling objectives or not var/give_objectives = TRUE /// Weather we assign objectives which compete with other lings @@ -59,7 +59,7 @@ /// The voice we're mimicing via the changeling voice ability. var/mimicing = "" /// Whether we can currently respec in the cellular emporium. - var/can_respec = FALSE + var/can_respec = 0 /// The currently active changeling sting. var/datum/action/changeling/sting/chosen_sting @@ -442,7 +442,7 @@ to_chat(owner.current, span_notice("We have removed our evolutions from this form, and are now ready to readapt.")) remove_changeling_powers() - can_respec = FALSE + can_respec -= 1 SSblackbox.record_feedback("tally", "changeling_power_purchase", 1, "Readapt") log_changeling_power("[key_name(owner)] readapted their changeling powers") return TRUE diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index d5ee0c2fc873a..71b1509ec816c 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -63,7 +63,7 @@ changeling.adjust_chemicals(10) if (true_absorbtion) - changeling.can_respec = TRUE + changeling.can_respec++ if(target.stat != DEAD) target.investigate_log("has died from being changeling absorbed.", INVESTIGATE_DEATHS) diff --git a/code/modules/antagonists/changeling/powers/defib_grasp.dm b/code/modules/antagonists/changeling/powers/defib_grasp.dm index 867a595e17dcd..227b11c3a387b 100644 --- a/code/modules/antagonists/changeling/powers/defib_grasp.dm +++ b/code/modules/antagonists/changeling/powers/defib_grasp.dm @@ -38,12 +38,12 @@ changeling.set_resting(FALSE) changeling.adjust_jitter(20 SECONDS) changeling.emote("scream") - playsound(changeling, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(changeling, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) // Mimics some real defib stuff (wish this was more generalized) playsound(defib, SFX_BODYFALL, 50, TRUE) - playsound(defib, 'sound/machines/defib_zap.ogg', 75, TRUE, -1) - playsound(defib, 'sound/machines/defib_success.ogg', 50, FALSE) // I guess + playsound(defib, 'sound/machines/defib/defib_zap.ogg', 75, TRUE, -1) + playsound(defib, 'sound/machines/defib/defib_success.ogg', 50, FALSE) // I guess defib.shock_pulling(30, changeling) /// Removes the arms of the defibber if they're a carbon, and stuns them for a bit. diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index 6f2781b20336c..b0149501e6679 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -108,7 +108,7 @@ if(!length(user.get_missing_limbs() - dont_regenerate)) return - playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(user, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) user.visible_message( span_warning("[user]'s missing limbs reform, making a loud, grotesque sound!"), span_userdanger("Your limbs regrow, making a loud, crunchy sound and giving you great pain!"), diff --git a/code/modules/antagonists/changeling/powers/headcrab.dm b/code/modules/antagonists/changeling/powers/headcrab.dm index 0b7668260d769..c4f2376f755a0 100644 --- a/code/modules/antagonists/changeling/powers/headcrab.dm +++ b/code/modules/antagonists/changeling/powers/headcrab.dm @@ -4,7 +4,7 @@ helptext = "We will be placed in control of a small, fragile creature. We may attack a corpse like this to plant an egg which will slowly mature into a new form for us." button_icon_state = "last_resort" chemical_cost = 20 - dna_cost = 1 + dna_cost = CHANGELING_POWER_INNATE req_human = TRUE req_stat = DEAD ignores_fakedeath = TRUE diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 01d97f448cd60..f6b42bf19f212 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -53,8 +53,8 @@ if(istype(hand_item, weapon_type)) user.temporarilyRemoveItemFromInventory(hand_item, TRUE) //DROPDEL will delete the item if(!silent) - playsound(user, 'sound/effects/blobattack.ogg', 30, TRUE) - user.visible_message(span_warning("With a sickening crunch, [user] reforms [user.p_their()] [weapon_name_simple] into an arm!"), span_notice("We assimilate the [weapon_name_simple] back into our body."), "With a sickening crunch, \ - [target] reforms [target.p_their()] [blade.name] into an arm!", - span_warning("[blade] reforms back to normal."), - "= limit)) return to_chat(owner,span_warning("You begin to carve unnatural symbols into your flesh!")) - SEND_SOUND(owner, sound('sound/weapons/slice.ogg',0,1,10)) + SEND_SOUND(owner, sound('sound/items/weapons/slice.ogg',0,1,10)) if(!channeling) channeling = TRUE else @@ -292,7 +292,7 @@ owner.visible_message(span_warning("Thin grey dust falls from [owner]'s hand!"), \ span_cult_italic("You invoke the veiling spell, hiding nearby runes.")) charges-- - SEND_SOUND(owner, sound('sound/magic/smoke.ogg',0,1,25)) + SEND_SOUND(owner, sound('sound/effects/magic/smoke.ogg',0,1,25)) owner.whisper(invocation, language = /datum/language/common) for(var/obj/effect/rune/R in range(5,owner)) R.conceal() @@ -312,7 +312,7 @@ span_cult_italic("You invoke the counterspell, revealing nearby runes.")) charges-- owner.whisper(invocation, language = /datum/language/common) - SEND_SOUND(owner, sound('sound/magic/enter_blood.ogg',0,1,25)) + SEND_SOUND(owner, sound('sound/effects/magic/enter_blood.ogg',0,1,25)) for(var/obj/effect/rune/R in range(7,owner)) //More range in case you weren't standing in exactly the same spot R.reveal() for(var/obj/structure/destructible/cult/S in range(6,owner)) @@ -461,7 +461,7 @@ target.color = COLOR_HERETIC_GREEN animate(target, color = old_color, time = 4 SECONDS, easing = EASE_IN) target.mob_light(range = 1.5, power = 2.5, color = COLOR_HERETIC_GREEN, duration = 0.5 SECONDS) - playsound(target, 'sound/magic/magic_block_mind.ogg', 150, TRUE) // insanely quiet + playsound(target, 'sound/effects/magic/magic_block_mind.ogg', 150, TRUE) // insanely quiet to_chat(user, span_warning("An eldritch force intervenes as you touch [target], absorbing most of the effects!")) to_chat(target, span_warning("As [user] touches you with vile magicks, the Mansus absorbs most of the effects!")) @@ -559,7 +559,7 @@ /obj/item/melee/blood_magic/shackles/proc/CuffAttack(mob/living/carbon/C, mob/living/user) if(!C.handcuffed) - playsound(loc, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) + playsound(loc, 'sound/items/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message(span_danger("[user] begins restraining [C] with dark magic!"), \ span_userdanger("[user] begins shaping dark magic shackles around your wrists!")) if(do_after(user, 3 SECONDS, C)) @@ -642,7 +642,7 @@ if(candidate.mmi || candidate.shell) channeling = TRUE user.visible_message(span_danger("A dark cloud emanates from [user]'s hand and swirls around [candidate]!")) - playsound(T, 'sound/machines/airlock_alien_prying.ogg', 80, TRUE) + playsound(T, 'sound/machines/airlock/airlock_alien_prying.ogg', 80, TRUE) var/prev_color = candidate.color candidate.color = "black" if(!do_after(user, 9 SECONDS, target = candidate)) @@ -673,7 +673,7 @@ if(istype(target,/obj/machinery/door/airlock)) channeling = TRUE - playsound(T, 'sound/machines/airlockforced.ogg', 50, TRUE) + playsound(T, 'sound/machines/airlock/airlockforced.ogg', 50, TRUE) do_sparks(5, TRUE, target) if(!do_after(user, 5 SECONDS, target = user) && !QDELETED(target)) channeling = FALSE @@ -790,7 +790,7 @@ construct_thing.adjust_health(-uses) construct_thing.visible_message(span_warning("[construct_thing] is partially healed by [user]'s blood magic!")) uses = 0 - playsound(get_turf(construct_thing), 'sound/magic/staff_healing.ogg', 25) + playsound(get_turf(construct_thing), 'sound/effects/magic/staff_healing.ogg', 25) user.Beam(construct_thing, icon_state="sendbeam", time = 1 SECONDS) return TRUE @@ -845,7 +845,7 @@ need_mob_update += human_bloodbag.adjustBruteLoss(damage_healed * (human_bloodbag.getBruteLoss() / overall_damage), updating_health = FALSE) if(need_mob_update) human_bloodbag.updatehealth() - playsound(get_turf(human_bloodbag), 'sound/magic/staff_healing.ogg', 25) + playsound(get_turf(human_bloodbag), 'sound/effects/magic/staff_healing.ogg', 25) new /obj/effect/temp_visual/cult/sparks(get_turf(human_bloodbag)) if (user != human_bloodbag) //Dont create beam from the user to the user user.Beam(human_bloodbag, icon_state="sendbeam", time = 15) @@ -866,7 +866,7 @@ human_bloodbag.blood_volume -= BLOOD_DRAIN_GAIN * USES_TO_BLOOD uses += BLOOD_DRAIN_GAIN user.Beam(human_bloodbag, icon_state="drainbeam", time = 1 SECONDS) - playsound(get_turf(human_bloodbag), 'sound/magic/enter_blood.ogg', 50) + playsound(get_turf(human_bloodbag), 'sound/effects/magic/enter_blood.ogg', 50) human_bloodbag.visible_message(span_danger("[user] drains some of [human_bloodbag]'s blood!")) to_chat(user,span_cult_italic("Your blood rite gains 50 charges from draining [human_bloodbag]'s blood.")) new /obj/effect/temp_visual/cult/sparks(get_turf(human_bloodbag)) @@ -900,7 +900,7 @@ return user.Beam(our_turf,icon_state="drainbeam", time = 15) new /obj/effect/temp_visual/cult/sparks(get_turf(user)) - playsound(our_turf, 'sound/magic/enter_blood.ogg', 50) + playsound(our_turf, 'sound/effects/magic/enter_blood.ogg', 50) to_chat(user, span_cult_italic("Your blood rite has gained [round(blood_to_gain)] charge\s from blood sources around you!")) uses += max(1, round(blood_to_gain)) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 45c3aee695574..7a8e2fa535fd4 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -122,7 +122,7 @@ team_member.current.update_mob_action_buttons() if(team_member.current.incapacitated) continue - SEND_SOUND(team_member.current, 'sound/hallucinations/im_here1.ogg') + SEND_SOUND(team_member.current, 'sound/effects/hallucinations/im_here1.ogg') to_chat(team_member.current, span_cult_large("Acolyte [nominee] has asserted that [nominee.p_theyre()] worthy of leading the cult. A vote will be called shortly.")) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(poll_cultists_for_leader), nominee, team), 10 SECONDS) @@ -143,7 +143,7 @@ for(var/datum/mind/team_member as anything in team.members) if(!team_member.current || team_member.current == nominee || team_member.current.incapacitated) continue - SEND_SOUND(team_member.current, 'sound/magic/exit_blood.ogg') + SEND_SOUND(team_member.current, 'sound/effects/magic/exit_blood.ogg') asked_cultists += team_member.current var/list/yes_voters = SSpolling.poll_candidates( @@ -244,7 +244,7 @@ new /obj/effect/temp_visual/dir_setting/cult/phase(mobloc, B.current.dir) playsound(mobloc, SFX_PORTAL_ENTER, 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(4) - playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, TRUE) + playsound(mobloc, 'sound/effects/magic/exit_blood.ogg', 100, TRUE) if(B.current != owner) var/turf/final = pick(destinations) if(istype(B.current.loc, /obj/item/soulstone)) @@ -268,13 +268,13 @@ owner.say("C'arta forbici!", language = /datum/language/common, forced = "cult invocation") if(2) owner.say("Pleggh e'ntrath!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 50, TRUE) + playsound(get_turf(owner),'sound/effects/magic/clockwork/narsie_attack.ogg', 50, TRUE) if(3) owner.say("Barhah hra zar'garis!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 75, TRUE) + playsound(get_turf(owner),'sound/effects/magic/clockwork/narsie_attack.ogg', 75, TRUE) if(4) owner.say("N'ath reth sh'yro eth d'rekkathnor!!!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/clockwork/narsie_attack.ogg', 100, TRUE) /datum/action/innate/cult/master/cultmark name = "Mark Target" @@ -399,7 +399,7 @@ if(QDELETED(owner) || QDELETED(src)) return - SEND_SOUND(owner, 'sound/magic/enter_blood.ogg') + SEND_SOUND(owner, 'sound/effects/magic/enter_blood.ogg') to_chat(owner, span_cult_bold("Your previous mark is gone - you are now ready to create a new blood mark.")) build_all_button_icons(UPDATE_BUTTON_NAME|UPDATE_BUTTON_ICON) @@ -452,7 +452,7 @@ var/turf/throwee_turf = get_turf(throwee) - playsound(throwee_turf, 'sound/magic/exit_blood.ogg') + playsound(throwee_turf, 'sound/effects/magic/exit_blood.ogg') new /obj/effect/temp_visual/cult/sparks(throwee_turf, caller.dir) throwee.visible_message( span_warning("A pulse of magic whisks [throwee] away!"), @@ -488,7 +488,7 @@ var/mob/living/living_clicked = clicked_on if(!IS_CULTIST(living_clicked)) return FALSE - SEND_SOUND(caller, sound('sound/weapons/thudswoosh.ogg')) + SEND_SOUND(caller, sound('sound/items/weapons/thudswoosh.ogg')) to_chat(caller, span_cult_bold("You reach through the veil with your mind's eye and seize [clicked_on]! Click anywhere nearby to teleport [clicked_on.p_them()]!")) throwee_ref = WEAKREF(clicked_on) return TRUE diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 1c715036d37b5..ccfbf389700fe 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -26,7 +26,7 @@ wound_bonus = -10 bare_wound_bonus = 20 armour_penetration = 35 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' /obj/item/melee/cultblade/dagger/Initialize(mapload) . = ..() @@ -73,8 +73,8 @@ Striking a noncultist, however, will tear their flesh."} block_chance = 50 // now it's officially a cult esword wound_bonus = -50 bare_wound_bonus = 20 - hitsound = 'sound/weapons/bladeslice.ogg' - block_sound = 'sound/weapons/parry.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' + block_sound = 'sound/items/weapons/parry.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") /// If TRUE, it can be used at will by anyone, non-cultists included @@ -285,7 +285,7 @@ Striking a noncultist, however, will tear their flesh."} item_flags = NEEDS_PERMIT | DROPDEL flags_1 = NONE block_chance = 25 //these dweebs don't get full block chance, because they're free cultists - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' /obj/item/melee/cultblade/ghost/Initialize(mapload) . = ..() @@ -301,8 +301,8 @@ Striking a noncultist, however, will tear their flesh."} desc = "Use the sword to shear open the flimsy fabric of this reality and teleport to your target." button_icon = 'icons/mob/actions/actions_cult.dmi' button_icon_state = "phaseshift" - dash_sound = 'sound/magic/enter_blood.ogg' - recharge_sound = 'sound/magic/exit_blood.ogg' + dash_sound = 'sound/effects/magic/enter_blood.ogg' + recharge_sound = 'sound/effects/magic/exit_blood.ogg' beam_effect = "sendbeam" phasein = /obj/effect/temp_visual/dir_setting/cult/phase phaseout = /obj/effect/temp_visual/dir_setting/cult/phase/out @@ -717,7 +717,7 @@ Striking a noncultist, however, will tear their flesh."} SSshuttle.block_recall(surplus) totalcurses++ to_chat(user, span_danger("You shatter the orb! A dark essence spirals into the air, then disappears.")) - playsound(user.loc, 'sound/effects/glassbr1.ogg', 50, TRUE) + playsound(user.loc, 'sound/effects/glass/glassbr1.ogg', 50, TRUE) if(!remaining_curses) remaining_curses = strings(CULT_SHUTTLE_CURSE, "curse_announce") @@ -725,7 +725,7 @@ Striking a noncultist, however, will tear their flesh."} var/curse_message = pick_n_take(remaining_curses) || "Something has gone horrendously wrong..." curse_message += " The shuttle will be delayed by three minutes." - priority_announce("[curse_message]", "System Failure", 'sound/misc/notice1.ogg') + priority_announce("[curse_message]", "System Failure", 'sound/announcer/notice/notice1.ogg') if(MAX_SHUTTLE_CURSES-totalcurses <= 0) to_chat(user, span_danger(span_big("You sense that the emergency escape shuttle can no longer be cursed. It would be unwise to create more cursed orbs."))) else if(MAX_SHUTTLE_CURSES-totalcurses == 1) @@ -735,7 +735,7 @@ Striking a noncultist, however, will tear their flesh."} if(totalcurses >= MAX_SHUTTLE_CURSES && (world.time < first_curse_time + SHUTTLE_CURSE_OMFG_TIMESPAN)) var/omfg_message = pick_list(CULT_SHUTTLE_CURSE, "omfg_announce") || "LEAVE US ALONE!" - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(priority_announce), omfg_message, "Priority Alert", 'sound/misc/announce_syndi.ogg', null, "Nanotrasen Department of Transportation: Central Command"), rand(2 SECONDS, 6 SECONDS)) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(priority_announce), omfg_message, "Priority Alert", 'sound/announcer/announcement/announce_syndi.ogg', null, "Nanotrasen Department of Transportation: Central Command"), rand(2 SECONDS, 6 SECONDS)) for(var/mob/iter_player as anything in GLOB.player_list) if(IS_CULTIST(iter_player)) iter_player.client?.give_award(/datum/award/achievement/misc/cult_shuttle_omfg, iter_player) @@ -953,8 +953,8 @@ Striking a noncultist, however, will tear their flesh."} attack_verb_continuous = list("attacks", "slices", "shreds", "sunders", "lacerates", "cleaves") attack_verb_simple = list("attack", "slice", "shred", "sunder", "lacerate", "cleave") sharpness = SHARP_EDGED - hitsound = 'sound/weapons/bladeslice.ogg' - block_sound = 'sound/weapons/parry.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' + block_sound = 'sound/items/weapons/parry.ogg' var/datum/action/innate/cult/halberd/halberd_act /obj/item/melee/cultblade/halberd/Initialize(mapload) @@ -984,7 +984,7 @@ Striking a noncultist, however, will tear their flesh."} var/mob/living/target = hit_atom if(IS_CULTIST(target) && target.put_in_active_hand(src)) - playsound(src, 'sound/weapons/throwtap.ogg', 50) + playsound(src, 'sound/items/weapons/throwtap.ogg', 50) target.visible_message(span_warning("[target] catches [src] out of the air!")) return if(target.can_block_magic() || IS_CULTIST(target)) @@ -1004,7 +1004,7 @@ Striking a noncultist, however, will tear their flesh."} T.visible_message(span_warning("[src] shatters and melts back into blood!")) new /obj/effect/temp_visual/cult/sparks(T) new /obj/effect/decal/cleanable/blood/splatter(T) - playsound(T, 'sound/effects/glassbr3.ogg', 100) + playsound(T, 'sound/effects/glass/glassbr3.ogg', 100) qdel(src) /obj/item/melee/cultblade/halberd/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) @@ -1053,7 +1053,7 @@ Striking a noncultist, however, will tear their flesh."} desc = "Blood for blood." color = "#ff0000" ammo_type = /obj/item/ammo_casing/magic/arcane_barrage/blood - fire_sound = 'sound/magic/wand_teleport.ogg' + fire_sound = 'sound/effects/magic/wand_teleport.ogg' /obj/item/ammo_casing/magic/arcane_barrage/blood projectile_type = /obj/projectile/magic/arcane_barrage/blood @@ -1142,7 +1142,7 @@ Striking a noncultist, however, will tear their flesh."} /obj/item/blood_beam/proc/charge(mob/user) var/obj/O - playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, TRUE) + playsound(src, 'sound/effects/magic/lightning_chargeup.ogg', 100, TRUE) for(var/i in 1 to 12) if(!charging) break @@ -1171,7 +1171,7 @@ Striking a noncultist, however, will tear their flesh."} second = !second //Handles beam firing in pairs if(!firing) break - playsound(src, 'sound/magic/exit_blood.ogg', 75, TRUE) + playsound(src, 'sound/effects/magic/exit_blood.ogg', 75, TRUE) new /obj/effect/temp_visual/dir_setting/cult/phase(user.loc, user.dir) var/turf/temp_target = get_turf_in_angle(set_angle, targets_from, 40) for(var/turf/T in get_line(targets_from,temp_target)) @@ -1199,7 +1199,7 @@ Striking a noncultist, however, will tear their flesh."} if(L.density) L.Paralyze(20) L.adjustBruteLoss(45) - playsound(L, 'sound/hallucinations/wail.ogg', 50, TRUE) + playsound(L, 'sound/effects/hallucinations/wail.ogg', 50, TRUE) L.emote("scream") user.Beam(temp_target, icon_state="blood_beam", time = 7, beam_type = /obj/effect/ebeam/blood) @@ -1221,9 +1221,9 @@ Striking a noncultist, however, will tear their flesh."} w_class = WEIGHT_CLASS_BULKY attack_verb_continuous = list("bumps", "prods") attack_verb_simple = list("bump", "prod") - hitsound = 'sound/weapons/smash.ogg' - block_sound = 'sound/weapons/effects/ric5.ogg' - shield_bash_sound = 'sound/effects/glassknock.ogg' + hitsound = 'sound/items/weapons/smash.ogg' + block_sound = 'sound/items/weapons/effects/ric5.ogg' + shield_bash_sound = 'sound/effects/glass/glassknock.ogg' var/illusions = 2 /obj/item/shield/mirror/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) @@ -1234,7 +1234,7 @@ Striking a noncultist, however, will tear their flesh."} var/turf/T = get_turf(owner) T.visible_message(span_warning("The sheer force from [hitby] shatters the mirror shield!")) new /obj/effect/temp_visual/cult/sparks(T) - playsound(T, 'sound/effects/glassbr3.ogg', 100) + playsound(T, 'sound/effects/glass/glassbr3.ogg', 100) owner.Paralyze(25) qdel(src) return FALSE @@ -1271,7 +1271,7 @@ Striking a noncultist, however, will tear their flesh."} illusions++ if(illusions == initial(illusions) && isliving(loc)) var/mob/living/holder = loc - to_chat(holder, "The shield's illusions are back at full strength!") + to_chat(holder, span_cult_italic("The shield's illusions are back at full strength!")) /obj/item/shield/mirror/IsReflect() if(prob(block_chance)) @@ -1286,13 +1286,13 @@ Striking a noncultist, however, will tear their flesh."} target.visible_message(span_warning("[src] bounces off of [target], as if repelled by an unseen force!")) return if(IS_CULTIST(target) && target.put_in_active_hand(src)) - playsound(src, 'sound/weapons/throwtap.ogg', 50) + playsound(src, 'sound/items/weapons/throwtap.ogg', 50) target.visible_message(span_warning("[target] catches [src] out of the air!")) return if(!..()) target.Paralyze(30) new /obj/effect/temp_visual/cult/sparks(target) - playsound(target, 'sound/effects/glassbr3.ogg', 100) + playsound(target, 'sound/effects/glass/glassbr3.ogg', 100) qdel(src) else ..() diff --git a/code/modules/antagonists/cult/cult_structure_altar.dm b/code/modules/antagonists/cult/cult_structure_altar.dm index e38591c0c0705..e3fcf645a2f0e 100644 --- a/code/modules/antagonists/cult/cult_structure_altar.dm +++ b/code/modules/antagonists/cult/cult_structure_altar.dm @@ -10,7 +10,7 @@ desc = "A bloodstained altar dedicated to Nar'Sie." cult_examine_tip = "Can be used to create eldritch whetstones, construct shells, and flasks of unholy water." icon_state = "talismanaltar" - break_message = "The altar shatters, leaving only the wailing of the damned!" + break_message = span_warning("The altar shatters, leaving only the wailing of the damned!") mansus_conversion_path = /obj/effect/heretic_rune /obj/structure/destructible/cult/item_dispenser/altar/setup_options() diff --git a/code/modules/antagonists/cult/cult_structure_archives.dm b/code/modules/antagonists/cult/cult_structure_archives.dm index 9917d9505f7be..d4867659651f8 100644 --- a/code/modules/antagonists/cult/cult_structure_archives.dm +++ b/code/modules/antagonists/cult/cult_structure_archives.dm @@ -12,7 +12,7 @@ icon_state = "tomealtar" light_range = 1.5 light_color = LIGHT_COLOR_FIRE - break_message = "The books and tomes of the archives burn into ash as the desk shatters!" + break_message = span_warning("The books and tomes of the archives burn into ash as the desk shatters!") mansus_conversion_path = /obj/item/codex_cicatrix /obj/structure/destructible/cult/item_dispenser/archives/setup_options() diff --git a/code/modules/antagonists/cult/cult_structure_forge.dm b/code/modules/antagonists/cult/cult_structure_forge.dm index 12d15b9296ef4..2ba11b2905afe 100644 --- a/code/modules/antagonists/cult/cult_structure_forge.dm +++ b/code/modules/antagonists/cult/cult_structure_forge.dm @@ -12,7 +12,7 @@ icon_state = "forge" light_range = 2 light_color = LIGHT_COLOR_LAVA - break_message = "The forge breaks apart into shards with a howling scream!" + break_message = span_warning("The forge breaks apart into shards with a howling scream!") mansus_conversion_path = /obj/structure/destructible/eldritch_crucible /obj/structure/destructible/cult/item_dispenser/forge/setup_options() diff --git a/code/modules/antagonists/cult/cult_structure_pylon.dm b/code/modules/antagonists/cult/cult_structure_pylon.dm index e436601325d25..54151f1171e12 100644 --- a/code/modules/antagonists/cult/cult_structure_pylon.dm +++ b/code/modules/antagonists/cult/cult_structure_pylon.dm @@ -5,8 +5,8 @@ icon_state = "pylon" light_range = 1.5 light_color = COLOR_SOFT_RED - break_sound = 'sound/effects/glassbr2.ogg' - break_message = "The blood-red crystal falls to the floor and shatters!" + break_sound = 'sound/effects/glass/glassbr2.ogg' + break_message = span_warning("The blood-red crystal falls to the floor and shatters!") /// Length of the cooldown in between tile corruptions. Doubled if no turfs are found. var/corruption_cooldown_duration = 5 SECONDS /// The cooldown for corruptions. diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 511988fb5bcbb..5aae2a6ccbc22 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -1,7 +1,7 @@ // Cult buildings! /obj/structure/destructible/cult icon = 'icons/obj/antags/cult/structures.dmi' - break_sound = 'sound/hallucinations/veryfar_noise.ogg' + break_sound = 'sound/effects/hallucinations/veryfar_noise.ogg' density = TRUE anchored = TRUE light_power = 2 diff --git a/code/modules/antagonists/cult/datums/cult_team.dm b/code/modules/antagonists/cult/datums/cult_team.dm index 4d77f65f588df..87ad2ab649101 100644 --- a/code/modules/antagonists/cult/datums/cult_team.dm +++ b/code/modules/antagonists/cult/datums/cult_team.dm @@ -55,7 +55,7 @@ if(ratio > CULT_RISEN && !cult_risen) for(var/datum/mind/mind as anything in members) if(mind.current) - SEND_SOUND(mind.current, 'sound/ambience/antag/bloodcult/bloodcult_eyes.ogg') + SEND_SOUND(mind.current, 'sound/music/antag/bloodcult/bloodcult_eyes.ogg') to_chat(mind.current, span_cult_large(span_warning("The veil weakens as your cult grows, your eyes begin to glow..."))) mind.current.AddElement(/datum/element/cult_eyes) cult_risen = TRUE @@ -64,7 +64,7 @@ if(ratio > CULT_ASCENDENT && !cult_ascendent) for(var/datum/mind/mind as anything in members) if(mind.current) - SEND_SOUND(mind.current, 'sound/ambience/antag/bloodcult/bloodcult_halos.ogg') + SEND_SOUND(mind.current, 'sound/music/antag/bloodcult/bloodcult_halos.ogg') to_chat(mind.current, span_cult_large(span_warning("Your cult is ascendant and the red harvest approaches - you cannot hide your true nature for much longer!!"))) mind.current.AddElement(/datum/element/cult_halo) cult_ascendent = TRUE @@ -125,7 +125,7 @@ count++ if(members.len) - parts += "The cultists were:" + parts += span_header("The cultists were:") if(length(true_cultists)) parts += printplayerlist(true_cultists) else @@ -165,7 +165,7 @@ continue to_chat(cultist.current, span_bold(span_cult_large("[marker] has marked [blood_target] in the [target_area.name] as the cult's top priority, get there immediately!"))) - SEND_SOUND(cultist.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'), 0, 1, 75)) + SEND_SOUND(cultist.current, sound(pick('sound/effects/hallucinations/over_here2.ogg','sound/effects/hallucinations/over_here3.ogg'), 0, 1, 75)) cultist.current.client.images += blood_target_image if(duration != INFINITY) diff --git a/code/modules/antagonists/cult/datums/cultist.dm b/code/modules/antagonists/cult/datums/cultist.dm index de415f59c7482..433c9ebedbef8 100644 --- a/code/modules/antagonists/cult/datums/cultist.dm +++ b/code/modules/antagonists/cult/datums/cultist.dm @@ -7,7 +7,7 @@ preview_outfit = /datum/outfit/cultist job_rank = ROLE_CULTIST antag_hud_name = "cult" - stinger_sound = 'sound/ambience/antag/bloodcult/bloodcult_gain.ogg' + stinger_sound = 'sound/music/antag/bloodcult/bloodcult_gain.ogg' ///The vote ability Cultists have to elect someone to be the leader. var/datum/action/innate/cult/mastervote/vote_ability @@ -256,7 +256,7 @@ var/area/current_area = get_area(owner.current) for(var/datum/mind/cult_mind as anything in cult_team.members) - SEND_SOUND(cult_mind, sound('sound/hallucinations/veryfar_noise.ogg')) + SEND_SOUND(cult_mind, sound('sound/effects/hallucinations/veryfar_noise.ogg')) to_chat(cult_mind, span_cult_large("The Cult's Master, [owner.current.name], has fallen in \the [current_area]!")) /datum/antagonist/cult/get_preview_icon() diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm index 3d791dbce44dc..be0e1e88ff8ed 100644 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ b/code/modules/antagonists/cult/rune_spawn_action.dm @@ -67,7 +67,7 @@ var/scribe_mod = scribe_time if(istype(T, /turf/open/floor/engine/cult)) scribe_mod *= 0.5 - playsound(T, 'sound/magic/enter_blood.ogg', 100, FALSE) + playsound(T, 'sound/effects/magic/enter_blood.ogg', 100, FALSE) if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt))) new rune_type(owner.loc, chosen_keyword) else diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 985f5da950193..e7cde6d1425c2 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -386,14 +386,14 @@ structure_check() searches for nearby cultist structures required for the invoca qdel(sacrificial) return TRUE if(sacrificial && (signal_result & DUST_SACRIFICE)) // No soulstone when dusted - playsound(sacrificial, 'sound/magic/teleport_diss.ogg', 100, TRUE) + playsound(sacrificial, 'sound/effects/magic/teleport_diss.ogg', 100, TRUE) sacrificial.investigate_log("has been sacrificially dusted by the cult.", INVESTIGATE_DEATHS) sacrificial.dust(TRUE, FALSE, TRUE) else if (sacrificial) var/obj/item/soulstone/stone = new(loc) if(sacrificial.mind && !HAS_TRAIT(sacrificial, TRAIT_SUICIDED)) stone.capture_soul(sacrificial, invokers[1], forced = TRUE) - playsound(sacrificial, 'sound/magic/disintegrate.ogg', 100, TRUE) + playsound(sacrificial, 'sound/effects/magic/disintegrate.ogg', 100, TRUE) sacrificial.investigate_log("has been sacrificially gibbed by the cult.", INVESTIGATE_DEATHS) sacrificial.gib(DROP_ALL_REMAINS) @@ -500,7 +500,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/turf/T = get_turf(src) if(is_away_level(T.z)) - to_chat(user, "You are not in the right dimension!") + to_chat(user, span_cult_italic("You are not in the right dimension!")) log_game("Teleport rune activated by [user] at [COORD(src)] failed - [user] is in away mission.") fail_invoke() return @@ -771,7 +771,7 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) else fail_invoke() return - SEND_SOUND(mob_to_revive, 'sound/ambience/antag/bloodcult/bloodcult_gain.ogg') + SEND_SOUND(mob_to_revive, 'sound/music/antag/bloodcult/bloodcult_gain.ogg') to_chat(mob_to_revive, span_cult_large("\"PASNAR SAVRAE YAM'TOTH. Arise.\"")) mob_to_revive.visible_message(span_warning("[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes."), \ span_cult_large("You awaken suddenly from the void. You're alive!")) @@ -849,37 +849,37 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated) return if(isnull(cultist_to_summon)) - to_chat(user, "You require a summoning target!") + to_chat(user, span_cult_italic("You require a summoning target!")) fail_logmsg += "no target." log_game(fail_logmsg) fail_invoke() return if(cultist_to_summon.stat == DEAD) - to_chat(user, "[cultist_to_summon] has died!") + to_chat(user, span_cult_italic("[cultist_to_summon] has died!")) fail_logmsg += "target died." log_game(fail_logmsg) fail_invoke() return if(cultist_to_summon.pulledby || cultist_to_summon.buckled) - to_chat(user, "[cultist_to_summon] is being held in place!") + to_chat(user, span_cult_italic("[cultist_to_summon] is being held in place!")) fail_logmsg += "target restrained." log_game(fail_logmsg) fail_invoke() return if(!IS_CULTIST(cultist_to_summon)) - to_chat(user, "[cultist_to_summon] is not a follower of the Geometer!") + to_chat(user, span_cult_italic("[cultist_to_summon] is not a follower of the Geometer!")) fail_logmsg += "target deconverted." log_game(fail_logmsg) fail_invoke() return if(is_away_level(cultist_to_summon.z)) - to_chat(user, "[cultist_to_summon] is not in our dimension!") + to_chat(user, span_cult_italic("[cultist_to_summon] is not in our dimension!")) fail_logmsg += "target is in away mission." log_game(fail_logmsg) fail_invoke() return cultist_to_summon.visible_message(span_warning("[cultist_to_summon] suddenly disappears in a flash of red light!"), \ - "Overwhelming vertigo consumes you as you are hurled through the air!") + span_cult_italic("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) @@ -969,12 +969,12 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) /obj/effect/rune/manifest/can_invoke(mob/living/user) if(!(user in get_turf(src))) - to_chat(user, "You must be standing on [src]!") + to_chat(user, span_cult_italic("You must be standing on [src]!")) fail_invoke() log_game("Manifest rune failed - user not standing on rune") return list() if(user.has_status_effect(/datum/status_effect/cultghost)) - to_chat(user, "Ghosts can't summon more ghosts!") + to_chat(user, span_cult_italic("Ghosts can't summon more ghosts!")) fail_invoke() log_game("Manifest rune failed - user is a ghost") return list() @@ -1021,7 +1021,7 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) new_human.set_invis_see(SEE_INVISIBLE_OBSERVER) new_human.add_traits(list(TRAIT_NOBREATH, TRAIT_PERMANENTLY_MORTAL), INNATE_TRAIT) // permanently mortal can be removed once this is a bespoke kind of mob ghosts++ - playsound(src, 'sound/magic/exit_blood.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/exit_blood.ogg', 50, TRUE) visible_message(span_warning("A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man.")) to_chat(user, span_cult_italic("Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...")) var/obj/structure/emergency_shield/cult/weak/N = new(T) @@ -1136,7 +1136,7 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) intensity = max(60, 360 - (360*(intensity/length(GLOB.player_list) + 0.3)**2)) //significantly lower intensity for "winning" cults var/duration = intensity*10 - playsound(T, 'sound/magic/enter_blood.ogg', 100, TRUE) + playsound(T, 'sound/effects/magic/enter_blood.ogg', 100, TRUE) visible_message(span_warning("A colossal shockwave of energy bursts from the rune, disintegrating it in the process!")) for(var/mob/living/target in range(src, 3)) @@ -1157,7 +1157,7 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0) add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE) addtimer(CALLBACK(M, TYPE_PROC_REF(/atom/, remove_alt_appearance),"human_apoc",TRUE), duration) images += A - SEND_SOUND(M, pick(sound('sound/ambience/antag/bloodcult/bloodcult_gain.ogg'),sound('sound/voice/ghost_whisper.ogg'),sound('sound/misc/ghosty_wind.ogg'))) + SEND_SOUND(M, pick(sound('sound/music/antag/bloodcult/bloodcult_gain.ogg'),sound('sound/music/antag/bloodcult/ghost_whisper.ogg'),sound('sound/music/antag/bloodcult/ghosty_wind.ogg'))) else var/construct = pick("wraith","artificer","juggernaut") var/image/B = image('icons/mob/nonhuman-player/cult.dmi',M,construct, ABOVE_MOB_LAYER) diff --git a/code/modules/antagonists/cult/sword_fling.dm b/code/modules/antagonists/cult/sword_fling.dm index 83238b0d8a2f4..d4c1530f06b98 100644 --- a/code/modules/antagonists/cult/sword_fling.dm +++ b/code/modules/antagonists/cult/sword_fling.dm @@ -56,7 +56,7 @@ new particle_to_spawn(get_turf(loccer)) loccer.shake_up_animation() - playsound(loccer, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loccer, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) if(prob(resist_chance)) flinged_sword.forceMove(get_turf(loccer)) diff --git a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm index 2905dff3a0f58..8e2b62c8187a4 100644 --- a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm +++ b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm @@ -157,11 +157,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE) + playsound(src, 'sound/effects/blob/attackblob.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/item/paper/crumpled/fluff/fortune_teller name = "scribbled note" diff --git a/code/modules/antagonists/heretic/heretic_antag.dm b/code/modules/antagonists/heretic/heretic_antag.dm index 82a0f8ca6228f..4c9c25945c9e8 100644 --- a/code/modules/antagonists/heretic/heretic_antag.dm +++ b/code/modules/antagonists/heretic/heretic_antag.dm @@ -26,7 +26,7 @@ can_assign_self_objectives = TRUE default_custom_objective = "Turn a department into a testament for your dark knowledge." hardcore_random_bonus = TRUE - stinger_sound = 'sound/ambience/antag/heretic/heretic_gain.ogg' + stinger_sound = 'sound/music/antag/heretic/heretic_gain.ogg' /// Whether we give this antagonist objectives on gain. var/give_objectives = TRUE /// Whether we've ascended! (Completed one of the final rituals) @@ -513,7 +513,7 @@ for(var/datum/mind/mind as anything in cult_team.members) if(mind.current) - SEND_SOUND(mind.current, 'sound/magic/clockwork/narsie_attack.ogg') + SEND_SOUND(mind.current, 'sound/effects/magic/clockwork/narsie_attack.ogg') to_chat(mind.current, span_cult_large(span_warning("Arcane and forbidden knowledge floods your forges and archives. The cult has learned how to create the ")) + span_cult_large(span_hypnophrase("[result]!"))) return SILENCE_SACRIFICE_MESSAGE|DUST_SACRIFICE diff --git a/code/modules/antagonists/heretic/heretic_monsters.dm b/code/modules/antagonists/heretic/heretic_monsters.dm index 5bc7041cd461d..2cb3dd3bfa4d0 100644 --- a/code/modules/antagonists/heretic/heretic_monsters.dm +++ b/code/modules/antagonists/heretic/heretic_monsters.dm @@ -8,7 +8,7 @@ antag_hud_name = "heretic_beast" suicide_cry = "MY MASTER SMILES UPON ME!!" show_in_antagpanel = FALSE - stinger_sound = 'sound/ambience/antag/heretic/heretic_gain.ogg' + stinger_sound = 'sound/music/antag/heretic/heretic_gain.ogg' /// Our master (a heretic)'s mind. var/datum/mind/master diff --git a/code/modules/antagonists/heretic/items/corrupted_organs.dm b/code/modules/antagonists/heretic/items/corrupted_organs.dm index 3bd3ead7f6094..335279c9553a6 100644 --- a/code/modules/antagonists/heretic/items/corrupted_organs.dm +++ b/code/modules/antagonists/heretic/items/corrupted_organs.dm @@ -2,7 +2,7 @@ /obj/item/organ/internal/eyes/corrupt name = "corrupt orbs" desc = "These eyes have seen something they shouldn't have." - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /// The override images we are applying var/list/hallucinations @@ -40,7 +40,7 @@ /obj/item/organ/internal/tongue/corrupt name = "corrupt tongue" desc = "This one tells only lies." - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /obj/item/organ/internal/tongue/corrupt/Initialize(mapload) . = ..() @@ -67,7 +67,7 @@ /obj/item/organ/internal/liver/corrupt name = "corrupt liver" desc = "After what you've seen you could really go for a drink." - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /// How much extra ingredients to add? var/amount_added = 5 /// What extra ingredients can we add? @@ -111,7 +111,7 @@ /obj/item/organ/internal/stomach/corrupt name = "corrupt stomach" desc = "This parasite demands an unwholesome diet in order to be satisfied." - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /// Do we have an unholy thirst? var/thirst_satiated = FALSE /// Timer for when we get thirsty again @@ -177,7 +177,7 @@ /obj/item/organ/internal/heart/corrupt name = "corrupt heart" desc = "What corruption is this spreading along with the blood?" - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /// How long until the next heart? COOLDOWN_DECLARE(hand_cooldown) @@ -197,7 +197,7 @@ /obj/item/organ/internal/lungs/corrupt name = "corrupt lungs" desc = "Some things SHOULD be drowned in tar." - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /// How likely are we not to cough every time we take a breath? var/cough_chance = 15 /// How much gas to emit? @@ -232,7 +232,7 @@ /obj/item/organ/internal/appendix/corrupt name = "corrupt appendix" desc = "What kind of dark, cosmic force is even going to bother to corrupt an appendix?" - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS /// How likely are we to spawn worms? var/worm_chance = 2 diff --git a/code/modules/antagonists/heretic/items/heretic_blades.dm b/code/modules/antagonists/heretic/items/heretic_blades.dm index 4d2636fa19e8c..ab98e1b9e4c7c 100644 --- a/code/modules/antagonists/heretic/items/heretic_blades.dm +++ b/code/modules/antagonists/heretic/items/heretic_blades.dm @@ -19,7 +19,7 @@ bare_wound_bonus = 15 toolspeed = 0.375 demolition_mod = 0.8 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' armour_penetration = 35 attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") diff --git a/code/modules/antagonists/heretic/items/hunter_rifle.dm b/code/modules/antagonists/heretic/items/hunter_rifle.dm index 53f1c1555861b..cb8636aed2b14 100644 --- a/code/modules/antagonists/heretic/items/hunter_rifle.dm +++ b/code/modules/antagonists/heretic/items/hunter_rifle.dm @@ -12,7 +12,7 @@ inhand_icon_state = "lionhunter" worn_icon_state = "lionhunter" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/lionhunter - fire_sound = 'sound/weapons/gun/sniper/shot.ogg' + fire_sound = 'sound/items/weapons/gun/sniper/shot.ogg' SET_BASE_PIXEL(-8, 0) @@ -64,7 +64,7 @@ return TRUE user.balloon_alert(user, "taking aim...") - user.playsound_local(get_turf(user), 'sound/weapons/gun/general/chunkyrack.ogg', 100, TRUE) + user.playsound_local(get_turf(user), 'sound/items/weapons/gun/general/chunkyrack.ogg', 100, TRUE) var/image/reticle = image( icon = 'icons/mob/actions/actions_items.dmi', diff --git a/code/modules/antagonists/heretic/items/labyrinth_handbook.dm b/code/modules/antagonists/heretic/items/labyrinth_handbook.dm index e4f333260a88f..178b8b16da5b7 100644 --- a/code/modules/antagonists/heretic/items/labyrinth_handbook.dm +++ b/code/modules/antagonists/heretic/items/labyrinth_handbook.dm @@ -62,7 +62,7 @@ return ITEM_INTERACT_BLOCKING turf_target.visible_message(span_warning("A storm of paper materializes!")) new /obj/effect/temp_visual/paper_scatter(turf_target) - playsound(turf_target, 'sound/magic/smoke.ogg', 30) + playsound(turf_target, 'sound/effects/magic/smoke.ogg', 30) new barrier_type(turf_target, user) uses-- if(uses <= 0) diff --git a/code/modules/antagonists/heretic/knowledge/ash_lore.dm b/code/modules/antagonists/heretic/knowledge/ash_lore.dm index 957a78a27269c..4f061ca2d6dda 100644 --- a/code/modules/antagonists/heretic/knowledge/ash_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/ash_lore.dm @@ -230,7 +230,7 @@ priority_announce( text = "[generate_heretic_text()] Fear the blaze, for the Ashlord, [user.real_name] has ascended! The flames shall consume all! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_ash.ogg', + sound = 'sound/music/antag/heretic/ascend_ash.ogg', color_override = "pink", ) diff --git a/code/modules/antagonists/heretic/knowledge/blade_lore.dm b/code/modules/antagonists/heretic/knowledge/blade_lore.dm index 55db187ee73ba..dc76f242c018f 100644 --- a/code/modules/antagonists/heretic/knowledge/blade_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/blade_lore.dm @@ -98,7 +98,7 @@ target.AdjustParalyzed(1.5 SECONDS) target.apply_damage(10, BRUTE, wound_bonus = CANT_WOUND) target.balloon_alert(source, "backstab!") - playsound(get_turf(target), 'sound/weapons/guillotine.ogg', 100, TRUE) + playsound(get_turf(target), 'sound/items/weapons/guillotine.ogg', 100, TRUE) /// The cooldown duration between trigers of blade dance #define BLADE_DANCE_COOLDOWN (20 SECONDS) @@ -184,7 +184,7 @@ addtimer(CALLBACK(src, PROC_REF(reset_riposte), source), BLADE_DANCE_COOLDOWN) /datum/heretic_knowledge/blade_dance/proc/counter_attack(mob/living/carbon/human/source, mob/living/target, obj/item/melee/sickly_blade/weapon, attack_text) - playsound(get_turf(source), 'sound/weapons/parry.ogg', 100, TRUE) + playsound(get_turf(source), 'sound/items/weapons/parry.ogg', 100, TRUE) source.balloon_alert(source, "riposte used") source.visible_message( span_warning("[source] leans into [attack_text] and delivers a sudden riposte back at [target]!"), @@ -423,7 +423,7 @@ priority_announce( text = "[generate_heretic_text()] Master of blades, the Torn Champion's disciple, [user.real_name] has ascended! Their steel is that which will cut reality in a maelstom of silver! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_blade.ogg', + sound = 'sound/music/antag/heretic/ascend_blade.ogg', color_override = "pink", ) ADD_TRAIT(user, TRAIT_NEVER_WOUNDED, name) diff --git a/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm b/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm index dfc8aa39bef29..f6e364766f6ef 100644 --- a/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/cosmic_lore.dm @@ -191,7 +191,7 @@ combo_counter += 1 if(second_target_resolved) new /obj/effect/temp_visual/cosmic_explosion(get_turf(second_target_resolved)) - playsound(get_turf(second_target_resolved), 'sound/magic/cosmic_energy.ogg', 25, FALSE) + playsound(get_turf(second_target_resolved), 'sound/effects/magic/cosmic_energy.ogg', 25, FALSE) need_mob_update = FALSE need_mob_update += second_target_resolved.adjustFireLoss(14, updating_health = FALSE) need_mob_update += second_target_resolved.adjustOrganLoss(pick(valid_organ_slots), 12) @@ -199,7 +199,7 @@ second_target_resolved.updatehealth() if(third_target_resolved) new /obj/effect/temp_visual/cosmic_domain(get_turf(third_target_resolved)) - playsound(get_turf(third_target_resolved), 'sound/magic/cosmic_energy.ogg', 50, FALSE) + playsound(get_turf(third_target_resolved), 'sound/effects/magic/cosmic_energy.ogg', 50, FALSE) need_mob_update = FALSE need_mob_update += third_target_resolved.adjustFireLoss(28, updating_health = FALSE) need_mob_update += third_target_resolved.adjustOrganLoss(pick(valid_organ_slots), 14) @@ -282,7 +282,7 @@ priority_announce( text = "[generate_heretic_text()] A Star Gazer has arrived into the station, [user.real_name] has ascended! This station is the domain of the Cosmos! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_cosmic.ogg', + sound = 'sound/music/antag/heretic/ascend_cosmic.ogg', color_override = "pink", ) var/mob/living/basic/heretic_summon/star_gazer/star_gazer_mob = new /mob/living/basic/heretic_summon/star_gazer(loc) diff --git a/code/modules/antagonists/heretic/knowledge/flesh_lore.dm b/code/modules/antagonists/heretic/knowledge/flesh_lore.dm index 6f5b51d4eba4e..c0fd2b7bbe381 100644 --- a/code/modules/antagonists/heretic/knowledge/flesh_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/flesh_lore.dm @@ -329,7 +329,7 @@ priority_announce( text = "[generate_heretic_text()] Ever coiling vortex. Reality unfolded. ARMS OUTREACHED, THE LORD OF THE NIGHT, [user.real_name] has ascended! Fear the ever twisting hand! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_flesh.ogg', + sound = 'sound/music/antag/heretic/ascend_flesh.ogg', color_override = "pink", ) diff --git a/code/modules/antagonists/heretic/knowledge/lock_lore.dm b/code/modules/antagonists/heretic/knowledge/lock_lore.dm index 72eacf607de55..ea0b609ef5c13 100644 --- a/code/modules/antagonists/heretic/knowledge/lock_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/lock_lore.dm @@ -90,7 +90,7 @@ var/turf/target_turf = get_turf(target) SEND_SIGNAL(target_turf, COMSIG_ATOM_MAGICALLY_UNLOCKED, src, source) - playsound(target, 'sound/magic/hereticknock.ogg', 100, TRUE, -1) + playsound(target, 'sound/effects/magic/hereticknock.ogg', 100, TRUE, -1) return COMPONENT_USE_HAND @@ -240,7 +240,7 @@ priority_announce( text = "Delta-class dimensional anomaly detec[generate_heretic_text()] Reality rended, torn. Gates open, doors open, [user.real_name] has ascended! Fear the tide! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_knock.ogg', + sound = 'sound/music/antag/heretic/ascend_knock.ogg', color_override = "pink", ) diff --git a/code/modules/antagonists/heretic/knowledge/moon_lore.dm b/code/modules/antagonists/heretic/knowledge/moon_lore.dm index 3c6b4e2109b69..99ee675c8ecab 100644 --- a/code/modules/antagonists/heretic/knowledge/moon_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/moon_lore.dm @@ -208,7 +208,7 @@ text = "[generate_heretic_text()] Laugh, for the ringleader [user.real_name] has ascended! \ The truth shall finally devour the lie! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_moon.ogg', + sound = 'sound/music/antag/heretic/ascend_moon.ogg', color_override = "pink", ) diff --git a/code/modules/antagonists/heretic/knowledge/rust_lore.dm b/code/modules/antagonists/heretic/knowledge/rust_lore.dm index 8c5a4587928dd..c1c1e2a4a04c9 100644 --- a/code/modules/antagonists/heretic/knowledge/rust_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/rust_lore.dm @@ -255,7 +255,7 @@ priority_announce( text = "[generate_heretic_text()] Fear the decay, for the Rustbringer, [user.real_name] has ascended! None shall escape the corrosion! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_rust.ogg', + sound = 'sound/music/antag/heretic/ascend_rust.ogg', color_override = "pink", ) trigger(loc) diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm index 30757e88a4b29..9c29d15ba67c6 100644 --- a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm @@ -115,7 +115,7 @@ if (isnull(spawn_turf)) return new /obj/effect/temp_visual/dir_setting/curse/grasp_portal(spawn_turf, victim.dir) - playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1) + playsound(spawn_turf, 'sound/effects/curse/curse2.ogg', 80, TRUE, -1) var/obj/projectile/curse_hand/hel/hand = new (spawn_turf) hand.preparePixelProjectile(victim, spawn_turf) if (QDELETED(hand)) // safety check if above fails - above has a stack trace if it does fail diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm index 5919f9a40d12a..65e6b6b2470e7 100644 --- a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_knowledge.dm @@ -223,7 +223,7 @@ if(prob(min(15 * rewards_given)) && (rewards_given <= 5)) for(var/datum/mind/mind as anything in cultist_datum.cult_team.members) if(mind.current) - SEND_SOUND(mind.current, 'sound/magic/clockwork/narsie_attack.ogg') + SEND_SOUND(mind.current, 'sound/effects/magic/clockwork/narsie_attack.ogg') var/message = span_narsie("A vile heretic has ") + \ span_cult_large(span_hypnophrase("sacrificed")) + \ span_narsie(" one of our own. Destroy and sacrifice the infidel before it claims more!") @@ -249,7 +249,7 @@ // Visible and audible encouragement! to_chat(user, span_big(span_hypnophrase("A servant of the Sanguine Apostate!"))) to_chat(user, span_hierophant("Your patrons are rapturous!")) - playsound(sacrifice, 'sound/magic/disintegrate.ogg', 75, TRUE) + playsound(sacrifice, 'sound/effects/magic/disintegrate.ogg', 75, TRUE) // Drop all items and splatter them around messily. var/list/dustee_items = sacrifice.unequip_everything() @@ -281,7 +281,7 @@ return // Remove the outline, we don't need it anymore. rune?.remove_filter("reward_outline") - playsound(loc, 'sound/magic/repulse.ogg', 75, TRUE) + playsound(loc, 'sound/effects/magic/repulse.ogg', 75, TRUE) var/datum/antagonist/heretic/heretic_datum = GET_HERETIC(user) ASSERT(heretic_datum) // This list will be almost identical to unlocked_heretic_items, with the same keys, the difference being the values will be 1 to 5. @@ -389,7 +389,7 @@ curse_organs(sac_target) // Send 'em to the destination. If the teleport fails, just disembowel them and stop the chain - if(!destination || !do_teleport(sac_target, destination, asoundin = 'sound/magic/repulse.ogg', asoundout = 'sound/magic/blind.ogg', no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC, forced = TRUE)) + if(!destination || !do_teleport(sac_target, destination, asoundin = 'sound/effects/magic/repulse.ogg', asoundout = 'sound/effects/magic/blind.ogg', no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC, forced = TRUE)) disembowel_target(sac_target) return @@ -403,7 +403,7 @@ to_chat(sac_target, span_big(span_hypnophrase("Unnatural forces begin to claw at your every being from beyond the veil."))) - playsound(sac_target, 'sound/ambience/antag/heretic/heretic_sacrifice.ogg', 50, FALSE) // play theme + playsound(sac_target, 'sound/music/antag/heretic/heretic_sacrifice.ogg', 50, FALSE) // play theme sac_target.apply_status_effect(/datum/status_effect/unholy_determination, SACRIFICE_REALM_DURATION) addtimer(CALLBACK(src, PROC_REF(after_target_wakes), sac_target), SACRIFICE_SLEEP_DURATION * 0.5) // Begin the minigame @@ -525,7 +525,7 @@ safe_turf = get_turf(backup_loc) stack_trace("[type] - return_target was unable to find a safe turf for [sac_target] to return to. Defaulting to observer start turf.") - if(!do_teleport(sac_target, safe_turf, asoundout = 'sound/magic/blind.ogg', no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC, forced = TRUE)) + if(!do_teleport(sac_target, safe_turf, asoundout = 'sound/effects/magic/blind.ogg', no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC, forced = TRUE)) safe_turf = get_turf(backup_loc) sac_target.forceMove(safe_turf) stack_trace("[type] - return_target was unable to teleport [sac_target] to the observer start turf. Forcemoving.") diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.dm b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.dm index 5055d2d9628ce..07b126fe74f2f 100644 --- a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.dm +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_map.dm @@ -91,7 +91,7 @@ GLOBAL_LIST_EMPTY(heretic_sacrifice_landmarks) /area/centcom/heretic_sacrifice/Initialize(mapload) if(!ambientsounds) - ambientsounds = GLOB.ambience_assoc[ambience_index] + 'sound/ambience/ambiatm1.ogg' + ambientsounds = GLOB.ambience_assoc[ambience_index] + 'sound/ambience/misc/ambiatm1.ogg' return ..() /area/centcom/heretic_sacrifice/ash //also, the default diff --git a/code/modules/antagonists/heretic/knowledge/starting_lore.dm b/code/modules/antagonists/heretic/knowledge/starting_lore.dm index ad48bb8fee331..2b5186bb55019 100644 --- a/code/modules/antagonists/heretic/knowledge/starting_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/starting_lore.dm @@ -109,27 +109,24 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) /datum/heretic_knowledge/living_heart/recipe_snowflake_check(mob/living/user, list/atoms, list/selected_atoms, turf/loc) var/datum/antagonist/heretic/our_heretic = GET_HERETIC(user) var/obj/item/organ/our_living_heart = user.get_organ_slot(our_heretic.living_heart_organ_slot) - // Obviously you need a heart in your chest to do a ritual on your... heart - if(!our_living_heart) - loc.balloon_alert(user, "ritual failed, you have no [our_heretic.living_heart_organ_slot]!") // "you have no heart!" - return FALSE - // For sanity's sake, check if they've got a heart - + // For sanity's sake, check if they've got a living heart - // even though it's not invokable if you already have one, // they may have gained one unexpectantly in between now and then - if(HAS_TRAIT(our_living_heart, TRAIT_LIVING_HEART)) - loc.balloon_alert(user, "ritual failed, already have a living heart!") - return FALSE + if(!QDELETED(our_living_heart)) + if(HAS_TRAIT(our_living_heart, TRAIT_LIVING_HEART)) + loc.balloon_alert(user, "ritual failed, already have a living heart!") + return FALSE - // By this point they are making a new heart - // If their current heart is organic / not synthetic, we can continue the ritual as normal - if(is_valid_heart(our_living_heart)) - return TRUE + // By this point they are making a new heart + // If their current heart is organic / not synthetic, we can continue the ritual as normal + if(is_valid_heart(our_living_heart)) + return TRUE - // If their current heart is not organic / is synthetic, they need an organic replacement - // ...But if our organ-to-be-replaced is unremovable, we're screwed - if(our_living_heart.organ_flags & ORGAN_UNREMOVABLE) - loc.balloon_alert(user, "ritual failed, [our_heretic.living_heart_organ_slot] unremovable!") // "heart unremovable!" - return FALSE + // If their current heart is not organic / is synthetic, they need an organic replacement + // ...But if our organ-to-be-replaced is unremovable, we're screwed + if(our_living_heart.organ_flags & ORGAN_UNREMOVABLE) + loc.balloon_alert(user, "ritual failed, [our_heretic.living_heart_organ_slot] unremovable!") // "heart unremovable!" + return FALSE // Otherwise, seek out a replacement in our atoms for(var/obj/item/organ/nearby_organ in atoms) @@ -151,17 +148,21 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) // Our heart is robotic or synthetic - we need to replace it, and we fortunately should have one by here if(!is_valid_heart(our_new_heart)) var/obj/item/organ/our_replacement_heart = locate(required_organ_type) in selected_atoms - if(our_replacement_heart) + if(!our_replacement_heart) + CRASH("[type] required a replacement organic heart in on_finished_recipe, but did not find one.") + // Repair the organic heart, if needed, to just below the high threshold + if(our_replacement_heart.damage >= our_replacement_heart.high_threshold) + our_replacement_heart.set_organ_damage(our_replacement_heart.high_threshold - 1) + // And now, put our organic heart in its place + our_replacement_heart.Insert(user, TRUE, TRUE) + if(our_new_heart) // Throw our current heart out of our chest, violently user.visible_message(span_boldwarning("[user]'s [our_new_heart.name] bursts suddenly out of [user.p_their()] chest!")) INVOKE_ASYNC(user, TYPE_PROC_REF(/mob, emote), "scream") user.apply_damage(20, BRUTE, BODY_ZONE_CHEST) - // And put our organic heart in its place - our_replacement_heart.Insert(user, TRUE, TRUE) + selected_atoms -= our_new_heart // so we don't delete our old heart while we dramatically toss is out our_new_heart.throw_at(get_edge_target_turf(user, pick(GLOB.alldirs)), 2, 2) - our_new_heart = our_replacement_heart - else - CRASH("[type] required a replacement organic heart in on_finished_recipe, but did not find one.") + our_new_heart = our_replacement_heart if(!our_new_heart) CRASH("[type] somehow made it to on_finished_recipe without a heart. What?") @@ -177,12 +178,12 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) // Make it the living heart our_new_heart.AddComponent(/datum/component/living_heart) to_chat(user, span_warning("You feel your [our_new_heart.name] begin pulse faster and faster as it awakens!")) - playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(user, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) return TRUE /// Checks if the passed heart is a valid heart to become a living heart /datum/heretic_knowledge/living_heart/proc/is_valid_heart(obj/item/organ/new_heart) - if(!new_heart) + if(QDELETED(new_heart)) return FALSE if(!new_heart.useable) return FALSE @@ -233,7 +234,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) gain_text = "The occult leaves fragments of knowledge and power anywhere and everywhere. The Codex Cicatrix is one such example. \ Within the leather-bound faces and age old pages, a path into the Mansus is revealed." required_atoms = list( - /obj/item/book = 1, + list(/obj/item/toy/eldritch_book, /obj/item/book) = 1, /obj/item/pen = 1, list(/mob/living, /obj/item/stack/sheet/leather, /obj/item/stack/sheet/animalhide) = 1, ) @@ -296,7 +297,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) var/obj/item/book/le_book = locate() in selected_atoms if(!le_book) stack_trace("Somehow, no book in codex cicatrix selected atoms! [english_list(selected_atoms)]") - playsound(body, 'sound/items/poster_ripped.ogg', 100, TRUE) + playsound(body, 'sound/items/poster/poster_ripped.ogg', 100, TRUE) body.do_jitter_animation() body.visible_message(span_danger("An awful ripping sound is heard as [ripped_thing]'s [exterior_text] is ripped straight out, wrapping around [le_book || "the book"], turning into an eldritch shade of blue!")) return ..() @@ -328,7 +329,7 @@ GLOBAL_LIST_INIT(heretic_start_knowledge, initialize_starting_knowledge()) heretic_datum.feast_of_owls = TRUE user.set_temp_blindness(reward * 1 SECONDS) user.AdjustParalyzed(reward * 1 SECONDS) - user.playsound_local(get_turf(user), 'sound/ambience/antag/heretic/heretic_gain_intense.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) + user.playsound_local(get_turf(user), 'sound/music/antag/heretic/heretic_gain_intense.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) for(var/i in 1 to reward) user.emote("scream") playsound(loc, 'sound/items/eatfood.ogg', 100, TRUE) diff --git a/code/modules/antagonists/heretic/knowledge/void_lore.dm b/code/modules/antagonists/heretic/knowledge/void_lore.dm index d2fd0efe8b570..cc7cc085364c0 100644 --- a/code/modules/antagonists/heretic/knowledge/void_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/void_lore.dm @@ -245,7 +245,7 @@ priority_announce( text = "[generate_heretic_text()] The nobleman of void [user.real_name] has arrived, stepping along the Waltz that ends worlds! [generate_heretic_text()]", title = "[generate_heretic_text()]", - sound = 'sound/ambience/antag/heretic/ascend_void.ogg', + sound = 'sound/music/antag/heretic/ascend_void.ogg', color_override = "pink", ) user.add_traits(list(TRAIT_RESISTLOWPRESSURE, TRAIT_NEGATES_GRAVITY, TRAIT_MOVE_FLYING, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAGIC_TRAIT) @@ -341,7 +341,7 @@ span_danger("The void storm surrounding [ascended_heretic] deflects [hitting_projectile]!"), span_userdanger("The void storm protects you from [hitting_projectile]!"), ) - playsound(ascended_heretic, pick('sound/magic/VoidDeflect01.ogg', 'sound/magic/VoidDeflect02.ogg', 'sound/magic/VoidDeflect03.ogg'), 75, TRUE) + playsound(ascended_heretic, pick('sound/effects/magic/VoidDeflect01.ogg', 'sound/effects/magic/VoidDeflect02.ogg', 'sound/effects/magic/VoidDeflect03.ogg'), 75, TRUE) hitting_projectile.firer = ascended_heretic if(prob(75)) hitting_projectile.set_angle(get_angle(hitting_projectile.firer, hitting_projectile.fired_from)) diff --git a/code/modules/antagonists/heretic/magic/aggressive_spread.dm b/code/modules/antagonists/heretic/magic/aggressive_spread.dm index dfb4a94847406..77c6a6227deb8 100644 --- a/code/modules/antagonists/heretic/magic/aggressive_spread.dm +++ b/code/modules/antagonists/heretic/magic/aggressive_spread.dm @@ -5,7 +5,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "corrode" - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 30 SECONDS diff --git a/code/modules/antagonists/heretic/magic/ascended_shapeshift.dm b/code/modules/antagonists/heretic/magic/ascended_shapeshift.dm index e792dc116da6f..a11c8d1d3a93a 100644 --- a/code/modules/antagonists/heretic/magic/ascended_shapeshift.dm +++ b/code/modules/antagonists/heretic/magic/ascended_shapeshift.dm @@ -20,7 +20,7 @@ if(!.) return //buff our forms so this ascension ability isnt shit - playsound(caster, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(caster, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) var/mob/living/monster = . monster.AddComponent(/datum/component/seethrough_mob) monster.maxHealth *= 1.5 diff --git a/code/modules/antagonists/heretic/magic/ash_ascension.dm b/code/modules/antagonists/heretic/magic/ash_ascension.dm index 2be30ea5b0c49..f4ed8686c1053 100644 --- a/code/modules/antagonists/heretic/magic/ash_ascension.dm +++ b/code/modules/antagonists/heretic/magic/ash_ascension.dm @@ -67,7 +67,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "fire_ring" - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 30 SECONDS diff --git a/code/modules/antagonists/heretic/magic/blood_siphon.dm b/code/modules/antagonists/heretic/magic/blood_siphon.dm index 1e3d6258826d4..1801b6d9dbc9f 100644 --- a/code/modules/antagonists/heretic/magic/blood_siphon.dm +++ b/code/modules/antagonists/heretic/magic/blood_siphon.dm @@ -25,7 +25,7 @@ /datum/action/cooldown/spell/pointed/blood_siphon/cast(mob/living/cast_on) . = ..() - playsound(owner, 'sound/magic/demon_attack1.ogg', 75, TRUE) + playsound(owner, 'sound/effects/magic/demon_attack1.ogg', 75, TRUE) if(cast_on.can_block_magic()) owner.balloon_alert(owner, "spell blocked!") cast_on.visible_message( diff --git a/code/modules/antagonists/heretic/magic/caretaker.dm b/code/modules/antagonists/heretic/magic/caretaker.dm index 86ff285001917..b882386329a89 100644 --- a/code/modules/antagonists/heretic/magic/caretaker.dm +++ b/code/modules/antagonists/heretic/magic/caretaker.dm @@ -8,7 +8,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "caretaker" - sound = 'sound/effects/curse2.ogg' + sound = 'sound/effects/curse/curse2.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 1 MINUTES diff --git a/code/modules/antagonists/heretic/magic/cosmic_expansion.dm b/code/modules/antagonists/heretic/magic/cosmic_expansion.dm index 3fb197d392cb0..9baf3366f4ba8 100644 --- a/code/modules/antagonists/heretic/magic/cosmic_expansion.dm +++ b/code/modules/antagonists/heretic/magic/cosmic_expansion.dm @@ -7,7 +7,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "cosmic_domain" - sound = 'sound/magic/cosmic_expansion.ogg' + sound = 'sound/effects/magic/cosmic_expansion.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 45 SECONDS diff --git a/code/modules/antagonists/heretic/magic/cosmic_runes.dm b/code/modules/antagonists/heretic/magic/cosmic_runes.dm index 207b60ae9393a..1003920dfa9ad 100644 --- a/code/modules/antagonists/heretic/magic/cosmic_runes.dm +++ b/code/modules/antagonists/heretic/magic/cosmic_runes.dm @@ -7,7 +7,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "cosmic_rune" - sound = 'sound/magic/forcewall.ogg' + sound = 'sound/effects/magic/forcewall.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 15 SECONDS @@ -99,8 +99,8 @@ get_turf(linked_rune_resolved), no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC, - asoundin = 'sound/magic/cosmic_energy.ogg', - asoundout = 'sound/magic/cosmic_energy.ogg', + asoundin = 'sound/effects/magic/cosmic_energy.ogg', + asoundout = 'sound/effects/magic/cosmic_energy.ogg', ) for(var/mob/living/person_on_rune in get_turf(src)) if(person_on_rune.has_status_effect(/datum/status_effect/star_mark)) diff --git a/code/modules/antagonists/heretic/magic/expand_sight.dm b/code/modules/antagonists/heretic/magic/expand_sight.dm index e9715c9a77926..126a5a180ec2f 100644 --- a/code/modules/antagonists/heretic/magic/expand_sight.dm +++ b/code/modules/antagonists/heretic/magic/expand_sight.dm @@ -17,7 +17,7 @@ /datum/action/innate/expand_sight/Activate() active = TRUE owner.client?.view_size.setTo(boost_to) - playsound(owner, pick('sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg'), 50, TRUE, ignore_walls = FALSE) + playsound(owner, pick('sound/effects/hallucinations/i_see_you1.ogg', 'sound/effects/hallucinations/i_see_you2.ogg'), 50, TRUE, ignore_walls = FALSE) COOLDOWN_START(src, last_toggle, 8 SECONDS) /datum/action/innate/expand_sight/Deactivate() diff --git a/code/modules/antagonists/heretic/magic/fire_blast.dm b/code/modules/antagonists/heretic/magic/fire_blast.dm index 4c17ca5ffc0de..104b4697cd2d0 100644 --- a/code/modules/antagonists/heretic/magic/fire_blast.dm +++ b/code/modules/antagonists/heretic/magic/fire_blast.dm @@ -7,7 +7,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "flames" - sound = 'sound/magic/fireball.ogg' + sound = 'sound/effects/magic/fireball.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 45 SECONDS diff --git a/code/modules/antagonists/heretic/magic/flesh_surgery.dm b/code/modules/antagonists/heretic/magic/flesh_surgery.dm index ff474f063198f..87d1927cc977c 100644 --- a/code/modules/antagonists/heretic/magic/flesh_surgery.dm +++ b/code/modules/antagonists/heretic/magic/flesh_surgery.dm @@ -96,7 +96,7 @@ var/organ_hp_to_heal = to_heal.maxHealth * organ_percent_healing to_heal.set_organ_damage(max(0 , to_heal.damage - organ_hp_to_heal)) to_heal.balloon_alert(caster, "organ healed") - playsound(to_heal, 'sound/magic/staff_healing.ogg', 30) + playsound(to_heal, 'sound/effects/magic/staff_healing.ogg', 30) new /obj/effect/temp_visual/cult/sparks(get_turf(to_heal)) var/condition = (to_heal.damage > 0) ? "better" : "perfect" caster.visible_message( @@ -118,7 +118,7 @@ // while for human minions(ghouls), this will heal brute and burn like normal. So be careful adjusting to bigger numbers to_heal.balloon_alert(caster, "[what_are_we] healed") to_heal.heal_overall_damage(monster_brute_healing, monster_burn_healing) - playsound(to_heal, 'sound/magic/staff_healing.ogg', 30) + playsound(to_heal, 'sound/effects/magic/staff_healing.ogg', 30) new /obj/effect/temp_visual/cult/sparks(get_turf(to_heal)) caster.visible_message( span_warning("[caster]'s hand glows a brilliant red as [caster.p_they()] restore[caster.p_s()] [to_heal] to good condition!"), @@ -181,7 +181,7 @@ ) carbon_victim.balloon_alert(caster, "extracting [chosen_organ]...") - playsound(victim, 'sound/weapons/slice.ogg', 50, TRUE) + playsound(victim, 'sound/items/weapons/slice.ogg', 50, TRUE) carbon_victim.add_atom_colour(COLOR_DARK_RED, TEMPORARY_COLOUR_PRIORITY) if(!do_after(caster, time_it_takes, carbon_victim, extra_checks = CALLBACK(src, PROC_REF(extraction_checks), picked_organ, hand, victim, caster))) carbon_victim.balloon_alert(caster, "interrupted!") diff --git a/code/modules/antagonists/heretic/magic/furious_steel.dm b/code/modules/antagonists/heretic/magic/furious_steel.dm index 0ab882a9289e1..d61ce5d1a3920 100644 --- a/code/modules/antagonists/heretic/magic/furious_steel.dm +++ b/code/modules/antagonists/heretic/magic/furious_steel.dm @@ -7,7 +7,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "furious_steel" - sound = 'sound/weapons/guillotine.ogg' + sound = 'sound/items/weapons/guillotine.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 60 SECONDS @@ -155,7 +155,7 @@ overlay_icon_state = "bg_cult_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "cursed_steel" - sound = 'sound/weapons/guillotine.ogg' + sound = 'sound/items/weapons/guillotine.ogg' cooldown_time = 40 SECONDS invocation = "IA!" diff --git a/code/modules/antagonists/heretic/magic/mansus_grasp.dm b/code/modules/antagonists/heretic/magic/mansus_grasp.dm index 43dde25374f89..67df0f2be0468 100644 --- a/code/modules/antagonists/heretic/magic/mansus_grasp.dm +++ b/code/modules/antagonists/heretic/magic/mansus_grasp.dm @@ -5,7 +5,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "mansus_grasp" - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' school = SCHOOL_EVOCATION cooldown_time = 10 SECONDS @@ -56,7 +56,7 @@ carbon_hit.color = COLOR_CULT_RED animate(carbon_hit, color = old_color, time = 4 SECONDS, easing = EASE_IN) carbon_hit.mob_light(range = 1.5, power = 2.5, color = COLOR_CULT_RED, duration = 0.5 SECONDS) - playsound(carbon_hit, 'sound/magic/curse.ogg', 50, TRUE) + playsound(carbon_hit, 'sound/effects/magic/curse.ogg', 50, TRUE) to_chat(caster, span_warning("An unholy force intervenes as you grasp [carbon_hit], absorbing most of the effects!")) to_chat(carbon_hit, span_warning("As [caster] grasps you with eldritch forces, your blood magic absorbs most of the effects!")) diff --git a/code/modules/antagonists/heretic/magic/mind_gate.dm b/code/modules/antagonists/heretic/magic/mind_gate.dm index c5a6e74452a61..7963c4d6c0266 100644 --- a/code/modules/antagonists/heretic/magic/mind_gate.dm +++ b/code/modules/antagonists/heretic/magic/mind_gate.dm @@ -7,7 +7,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "mind_gate" - sound = 'sound/magic/curse.ogg' + sound = 'sound/effects/magic/curse.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 20 SECONDS diff --git a/code/modules/antagonists/heretic/magic/mirror_walk.dm b/code/modules/antagonists/heretic/magic/mirror_walk.dm index b9029e1ab072d..93642c7f324d4 100644 --- a/code/modules/antagonists/heretic/magic/mirror_walk.dm +++ b/code/modules/antagonists/heretic/magic/mirror_walk.dm @@ -67,7 +67,7 @@ if(!do_after(jaunter, phase_out_time, nearby_reflection, IGNORE_USER_LOC_CHANGE|IGNORE_INCAPACITATED, hidden = TRUE)) return - playsound(jaunter, 'sound/magic/ethereal_enter.ogg', 50, TRUE, -1) + playsound(jaunter, 'sound/effects/magic/ethereal_enter.ogg', 50, TRUE, -1) jaunter.visible_message( span_boldwarning("[jaunter] phases out of reality, vanishing before your very eyes!"), span_notice("You jump into the reflection coming off of [nearby_reflection], entering the mirror's realm."), @@ -107,7 +107,7 @@ /datum/action/cooldown/spell/jaunt/mirror_walk/on_jaunt_exited(obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter) . = ..() UnregisterSignal(jaunt, COMSIG_MOVABLE_MOVED) - playsound(unjaunter, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(unjaunter, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) var/turf/phase_turf = get_turf(unjaunter) // Chilly! diff --git a/code/modules/antagonists/heretic/magic/moon_parade.dm b/code/modules/antagonists/heretic/magic/moon_parade.dm index 3b7f1d007cd6e..e6457a6a2b101 100644 --- a/code/modules/antagonists/heretic/magic/moon_parade.dm +++ b/code/modules/antagonists/heretic/magic/moon_parade.dm @@ -7,7 +7,7 @@ button_icon_state = "moon_parade" ranged_mousepointer = 'icons/effects/mouse_pointers/moon_target.dmi' - sound = 'sound/magic/cosmic_energy.ogg' + sound = 'sound/effects/magic/cosmic_energy.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 30 SECONDS diff --git a/code/modules/antagonists/heretic/magic/moon_smile.dm b/code/modules/antagonists/heretic/magic/moon_smile.dm index 35f2d77e3e6b6..63bcc4cc84831 100644 --- a/code/modules/antagonists/heretic/magic/moon_smile.dm +++ b/code/modules/antagonists/heretic/magic/moon_smile.dm @@ -8,7 +8,7 @@ button_icon_state = "moon_smile" ranged_mousepointer = 'icons/effects/mouse_pointers/moon_target.dmi' - sound = 'sound/magic/blind.ogg' + sound = 'sound/effects/magic/blind.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 20 SECONDS @@ -35,7 +35,7 @@ to_chat(owner, span_warning("The moon does not smile upon them.")) return FALSE - playsound(cast_on, 'sound/hallucinations/i_see_you1.ogg', 50, 1) + playsound(cast_on, 'sound/effects/hallucinations/i_see_you1.ogg', 50, 1) to_chat(cast_on, span_warning("Your eyes cry out in pain, your ears bleed and your lips seal! THE MOON SMILES UPON YOU!")) cast_on.adjust_temp_blindness(moon_smile_duration + 1 SECONDS) cast_on.set_eye_blur_if_lower(moon_smile_duration + 2 SECONDS) diff --git a/code/modules/antagonists/heretic/magic/realignment.dm b/code/modules/antagonists/heretic/magic/realignment.dm index d3ddc03fbbef3..8ad6ce7829970 100644 --- a/code/modules/antagonists/heretic/magic/realignment.dm +++ b/code/modules/antagonists/heretic/magic/realignment.dm @@ -7,7 +7,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/hud/implants.dmi' button_icon_state = "adrenal" - // sound = 'sound/magic/whistlereset.ogg' + // sound = 'sound/effects/magic/whistlereset.ogg' I have no idea why this was commented out school = SCHOOL_FORBIDDEN cooldown_time = 6 SECONDS diff --git a/code/modules/antagonists/heretic/magic/rust_wave.dm b/code/modules/antagonists/heretic/magic/rust_wave.dm index 0282a32b2b687..b109a068042b9 100644 --- a/code/modules/antagonists/heretic/magic/rust_wave.dm +++ b/code/modules/antagonists/heretic/magic/rust_wave.dm @@ -8,7 +8,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "entropic_plume" - sound = 'sound/magic/forcewall.ogg' + sound = 'sound/effects/magic/forcewall.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 30 SECONDS @@ -90,7 +90,7 @@ alpha = 180 damage = 30 damage_type = TOX - hitsound = 'sound/weapons/punch3.ogg' + hitsound = 'sound/items/weapons/punch3.ogg' trigger_range = 0 ignored_factions = list(FACTION_HERETIC) range = 15 @@ -98,7 +98,7 @@ /obj/projectile/magic/aoe/rust_wave/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) . = ..() - playsound(src, 'sound/items/welder.ogg', 75, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 75, TRUE) var/list/turflist = list() var/turf/T1 turflist += get_turf(src) diff --git a/code/modules/antagonists/heretic/magic/shadow_cloak.dm b/code/modules/antagonists/heretic/magic/shadow_cloak.dm index ad942c71a328a..ca0ca1fa15b05 100644 --- a/code/modules/antagonists/heretic/magic/shadow_cloak.dm +++ b/code/modules/antagonists/heretic/magic/shadow_cloak.dm @@ -7,7 +7,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_minor_antag.dmi' button_icon_state = "ninja_cloak" - sound = 'sound/effects/curse2.ogg' + sound = 'sound/effects/curse/curse2.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 6 SECONDS @@ -36,12 +36,12 @@ /datum/action/cooldown/spell/shadow_cloak/before_cast(mob/living/cast_on) . = ..() sound = pick( - 'sound/effects/curse1.ogg', - 'sound/effects/curse2.ogg', - 'sound/effects/curse3.ogg', - 'sound/effects/curse4.ogg', - 'sound/effects/curse5.ogg', - 'sound/effects/curse6.ogg', + 'sound/effects/curse/curse1.ogg', + 'sound/effects/curse/curse2.ogg', + 'sound/effects/curse/curse3.ogg', + 'sound/effects/curse/curse4.ogg', + 'sound/effects/curse/curse5.ogg', + 'sound/effects/curse/curse6.ogg', ) // We handle the CD on our own return . | SPELL_NO_IMMEDIATE_COOLDOWN @@ -66,7 +66,7 @@ StartCooldown(uncloak_timer / 3) /datum/action/cooldown/spell/shadow_cloak/proc/cloak_mob(mob/living/cast_on) - playsound(cast_on, 'sound/chemistry/ahaha.ogg', 50, TRUE, -1, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.5) + playsound(cast_on, 'sound/effects/chemistry/ahaha.ogg', 50, TRUE, -1, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.5) cast_on.visible_message( span_warning("[cast_on] disappears into the shadows!"), span_notice("You disappear into the shadows, becoming unidentifiable."), @@ -83,7 +83,7 @@ active_cloak = null UnregisterSignal(cast_on, SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING)) - playsound(cast_on, 'sound/effects/curseattack.ogg', 50) + playsound(cast_on, 'sound/effects/curse/curseattack.ogg', 50) if(show_message) cast_on.visible_message( span_warning("[cast_on] appears from the shadows!"), diff --git a/code/modules/antagonists/heretic/magic/space_crawl.dm b/code/modules/antagonists/heretic/magic/space_crawl.dm index 49b9ae96f3088..6a96403872f11 100644 --- a/code/modules/antagonists/heretic/magic/space_crawl.dm +++ b/code/modules/antagonists/heretic/magic/space_crawl.dm @@ -83,7 +83,7 @@ jaunter.put_in_hands(right_hand) RegisterSignal(jaunter, SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING), PROC_REF(on_focus_lost)) - playsound(our_turf, 'sound/magic/cosmic_energy.ogg', 50, TRUE, -1) + playsound(our_turf, 'sound/effects/magic/cosmic_energy.ogg', 50, TRUE, -1) our_turf.visible_message(span_warning("[jaunter] sinks into [our_turf]!")) new /obj/effect/temp_visual/space_explosion(our_turf) jaunter.extinguish_mob() @@ -107,7 +107,7 @@ /datum/action/cooldown/spell/jaunt/space_crawl/on_jaunt_exited(obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter) UnregisterSignal(jaunt, COMSIG_MOVABLE_MOVED) UnregisterSignal(unjaunter, list(SIGNAL_REMOVETRAIT(TRAIT_ALLOW_HERETIC_CASTING))) - playsound(get_turf(unjaunter), 'sound/magic/cosmic_energy.ogg', 50, TRUE, -1) + playsound(get_turf(unjaunter), 'sound/effects/magic/cosmic_energy.ogg', 50, TRUE, -1) new /obj/effect/temp_visual/space_explosion(get_turf(unjaunter)) if(iscarbon(unjaunter)) for(var/obj/item/space_crawl/space_hand in unjaunter.held_items) diff --git a/code/modules/antagonists/heretic/magic/star_blast.dm b/code/modules/antagonists/heretic/magic/star_blast.dm index 3eb62b7ada814..e6f7a96811e40 100644 --- a/code/modules/antagonists/heretic/magic/star_blast.dm +++ b/code/modules/antagonists/heretic/magic/star_blast.dm @@ -6,7 +6,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "star_blast" - sound = 'sound/magic/cosmic_energy.ogg' + sound = 'sound/effects/magic/cosmic_energy.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 20 SECONDS @@ -46,7 +46,7 @@ nearby_mob.apply_status_effect(/datum/status_effect/star_mark, cast_on) /obj/projectile/magic/star_ball/Destroy() - playsound(get_turf(src), 'sound/magic/cosmic_energy.ogg', 50, FALSE) + playsound(get_turf(src), 'sound/effects/magic/cosmic_energy.ogg', 50, FALSE) for(var/turf/cast_turf as anything in get_turfs()) new /obj/effect/forcefield/cosmic_field(cast_turf) return ..() diff --git a/code/modules/antagonists/heretic/magic/star_touch.dm b/code/modules/antagonists/heretic/magic/star_touch.dm index 89c5d02e7d498..d9cd5a05eab2b 100644 --- a/code/modules/antagonists/heretic/magic/star_touch.dm +++ b/code/modules/antagonists/heretic/magic/star_touch.dm @@ -10,7 +10,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "star_touch" - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 15 SECONDS invocation = "ST'R 'N'RG'!" @@ -107,8 +107,8 @@ get_turf(star_gazer_mob), no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC, - asoundin = 'sound/magic/cosmic_energy.ogg', - asoundout = 'sound/magic/cosmic_energy.ogg', + asoundin = 'sound/effects/magic/cosmic_energy.ogg', + asoundout = 'sound/effects/magic/cosmic_energy.ogg', ) remove_hand_with_no_refund(user) diff --git a/code/modules/antagonists/heretic/magic/void_conduit.dm b/code/modules/antagonists/heretic/magic/void_conduit.dm index 07ca0cbe2ab0f..036415269c975 100644 --- a/code/modules/antagonists/heretic/magic/void_conduit.dm +++ b/code/modules/antagonists/heretic/magic/void_conduit.dm @@ -33,7 +33,7 @@ ///List of tiles that we added an overlay to, so we can clear them when the conduit is deleted var/list/overlayed_turfs = list() ///How many tiles far our effect is - var/effect_range = 12 + var/effect_range = 8 ///id of the deletion timer var/timerid ///Audio loop for the rift being alive @@ -44,7 +44,12 @@ soundloop = new(src, start_immediately = TRUE) timerid = QDEL_IN_STOPPABLE(src, 1 MINUTES) START_PROCESSING(SSobj, src) - for(var/turf/affected_turf as anything in RANGE_TURFS(effect_range, src)) + build_view_turfs() + +/obj/structure/void_conduit/proc/build_view_turfs() + for(var/turf/affected_turf as anything in overlayed_turfs) + affected_turf.cut_overlay(void_overlay) + for(var/turf/affected_turf as anything in view(effect_range, src)) if(!isopenturf(affected_turf)) continue affected_turf.add_overlay(void_overlay) @@ -61,12 +66,13 @@ return ..() /obj/structure/void_conduit/process(seconds_per_tick) + build_view_turfs() do_conduit_pulse() ///Sends out a pulse /obj/structure/void_conduit/proc/do_conduit_pulse() var/list/turfs_to_affect = list() - for(var/turf/affected_turf as anything in RANGE_TURFS(effect_range, loc)) + for(var/turf/affected_turf as anything in view(effect_range, loc)) var/distance = get_dist(loc, affected_turf) if(!turfs_to_affect["[distance]"]) turfs_to_affect["[distance]"] = list() @@ -102,7 +108,7 @@ affected_structure.take_damage(rand(10, 20)) /datum/looping_sound/void_conduit - mid_sounds = 'sound/ambience/ambiatm1.ogg' + mid_sounds = 'sound/ambience/misc/ambiatm1.ogg' mid_length = 1 SECONDS extra_range = 10 volume = 40 diff --git a/code/modules/antagonists/heretic/magic/void_phase.dm b/code/modules/antagonists/heretic/magic/void_phase.dm index c6e367e87608c..473fa057cf54c 100644 --- a/code/modules/antagonists/heretic/magic/void_phase.dm +++ b/code/modules/antagonists/heretic/magic/void_phase.dm @@ -50,7 +50,7 @@ /// Does the AOE effect of the blinka t the passed turf /datum/action/cooldown/spell/pointed/void_phase/proc/cause_aoe(turf/target_turf, effect_type = /obj/effect/temp_visual/voidin) new effect_type(target_turf) - playsound(target_turf, 'sound/magic/voidblink.ogg', 60, FALSE) + playsound(target_turf, 'sound/effects/magic/voidblink.ogg', 60, FALSE) for(var/mob/living/living_mob in range(damage_radius, target_turf)) if(IS_HERETIC_OR_MONSTER(living_mob) || living_mob == owner) continue diff --git a/code/modules/antagonists/heretic/magic/void_prison.dm b/code/modules/antagonists/heretic/magic/void_prison.dm index 211a747c8008e..cfd85c92b6e1c 100644 --- a/code/modules/antagonists/heretic/magic/void_prison.dm +++ b/code/modules/antagonists/heretic/magic/void_prison.dm @@ -8,7 +8,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "voidball" ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' - sound = 'sound/magic/voidblink.ogg' + sound = 'sound/effects/magic/voidblink.ogg' cooldown_time = 1 MINUTES cast_range = 3 diff --git a/code/modules/antagonists/heretic/magic/void_pull.dm b/code/modules/antagonists/heretic/magic/void_pull.dm index 1db1c6601718e..4e73ff6f49bf9 100644 --- a/code/modules/antagonists/heretic/magic/void_pull.dm +++ b/code/modules/antagonists/heretic/magic/void_pull.dm @@ -6,7 +6,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "voidpull" - sound = 'sound/magic/voidblink.ogg' + sound = 'sound/effects/magic/voidblink.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 30 SECONDS diff --git a/code/modules/antagonists/heretic/magic/wave_of_desperation.dm b/code/modules/antagonists/heretic/magic/wave_of_desperation.dm index 3b78b56ddc0ba..16e3440ebbeec 100644 --- a/code/modules/antagonists/heretic/magic/wave_of_desperation.dm +++ b/code/modules/antagonists/heretic/magic/wave_of_desperation.dm @@ -6,7 +6,7 @@ overlay_icon_state = "bg_heretic_border" button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "uncuff" - sound = 'sound/magic/swap.ogg' + sound = 'sound/effects/magic/swap.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 5 MINUTES diff --git a/code/modules/antagonists/heretic/status_effects/buffs.dm b/code/modules/antagonists/heretic/status_effects/buffs.dm index e4f5990040be4..d60129ae3d930 100644 --- a/code/modules/antagonists/heretic/status_effects/buffs.dm +++ b/code/modules/antagonists/heretic/status_effects/buffs.dm @@ -190,7 +190,7 @@ var/obj/effect/floating_blade/to_remove = blades[1] - playsound(get_turf(source), 'sound/weapons/parry.ogg', 100, TRUE) + playsound(get_turf(source), 'sound/items/weapons/parry.ogg', 100, TRUE) source.visible_message( span_warning("[to_remove] orbiting [source] snaps in front of [attack_text], blocking it before vanishing!"), span_warning("[to_remove] orbiting you snaps in front of [attack_text], blocking it before vanishing!"), @@ -281,7 +281,7 @@ /datum/status_effect/caretaker_refuge/proc/nullrod_handler(datum/source, obj/item/weapon) SIGNAL_HANDLER - playsound(get_turf(owner), 'sound/effects/curse1.ogg', 80, TRUE) + playsound(get_turf(owner), 'sound/effects/curse/curse1.ogg', 80, TRUE) owner.visible_message(span_warning("[weapon] repels the haze around [owner]!")) owner.remove_status_effect(type) diff --git a/code/modules/antagonists/heretic/status_effects/mark_effects.dm b/code/modules/antagonists/heretic/status_effects/mark_effects.dm index 4cbdbdf8c1ce1..2521794907231 100644 --- a/code/modules/antagonists/heretic/status_effects/mark_effects.dm +++ b/code/modules/antagonists/heretic/status_effects/mark_effects.dm @@ -47,7 +47,7 @@ /datum/status_effect/eldritch/proc/on_effect() SHOULD_CALL_PARENT(TRUE) - playsound(owner, 'sound/magic/repulse.ogg', 75, TRUE) + playsound(owner, 'sound/effects/magic/repulse.ogg', 75, TRUE) qdel(src) //what happens when this is procced. //Each mark has different effects when it is destroyed that combine with the mansus grasp effect. diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index 70133e951af91..72b224d117dd4 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -11,7 +11,7 @@ wound_bonus = 20 force = 10 throwforce = 20 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") actions_types = list(/datum/action/item_action/rune_shatter) @@ -152,7 +152,7 @@ if(!.) return - owner.playsound_local(get_turf(owner), 'sound/magic/blind.ogg', 50, TRUE) + owner.playsound_local(get_turf(owner), 'sound/effects/magic/blind.ogg', 50, TRUE) var/obj/item/melee/rune_carver/target_sword = target QDEL_LIST(target_sword.current_runes) target_sword.SpinAnimation(5, 1) @@ -203,7 +203,7 @@ var/mob/living/real_owner = owner?.resolve() if(real_owner) to_chat(real_owner, span_userdanger("[victim.real_name] has stepped foot on the alert rune in [get_area(src)]!")) - real_owner.playsound_local(get_turf(real_owner), 'sound/magic/curse.ogg', 50, TRUE) + real_owner.playsound_local(get_turf(real_owner), 'sound/effects/magic/curse.ogg', 50, TRUE) /obj/structure/trap/eldritch/tentacle name = "grasping carving" @@ -219,7 +219,7 @@ carbon_victim.Paralyze(5 SECONDS) carbon_victim.apply_damage(20, BRUTE, BODY_ZONE_R_LEG) carbon_victim.apply_damage(20, BRUTE, BODY_ZONE_L_LEG) - playsound(src, 'sound/magic/demon_attack1.ogg', 75, TRUE) + playsound(src, 'sound/effects/magic/demon_attack1.ogg', 75, TRUE) /obj/structure/trap/eldritch/mad name = "mad carving" @@ -240,4 +240,4 @@ carbon_victim.set_dizzy_if_lower(40 SECONDS) carbon_victim.adjust_temp_blindness(4 SECONDS) carbon_victim.add_mood_event("gates_of_mansus", /datum/mood_event/gates_of_mansus) - playsound(src, 'sound/magic/blind.ogg', 75, TRUE) + playsound(src, 'sound/effects/magic/blind.ogg', 75, TRUE) diff --git a/code/modules/antagonists/heretic/structures/lock_final.dm b/code/modules/antagonists/heretic/structures/lock_final.dm index 5512d6027ee5a..295ecbb3a2b91 100644 --- a/code/modules/antagonists/heretic/structures/lock_final.dm +++ b/code/modules/antagonists/heretic/structures/lock_final.dm @@ -47,7 +47,7 @@ /obj/structure/lock_tear/proc/end_madness(datum/former_master) SIGNAL_HANDLER var/turf/our_turf = get_turf(src) - playsound(our_turf, 'sound/magic/castsummon.ogg', vol = 100, vary = TRUE) + playsound(our_turf, 'sound/effects/magic/castsummon.ogg', vol = 100, vary = TRUE) visible_message(span_boldwarning("The rip in space spasms and disappears!")) UnregisterSignal(former_master, list(COMSIG_LIVING_DEATH, COMSIG_QDELETING)) // Just in case they die THEN delete new /obj/effect/temp_visual/destabilising_tear(our_turf) diff --git a/code/modules/antagonists/heretic/structures/mawed_crucible.dm b/code/modules/antagonists/heretic/structures/mawed_crucible.dm index 2135ffa134ca5..ea962cbc5a4e1 100644 --- a/code/modules/antagonists/heretic/structures/mawed_crucible.dm +++ b/code/modules/antagonists/heretic/structures/mawed_crucible.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/antags/eldritch.dmi' icon_state = "crucible" base_icon_state = "crucible" - break_sound = 'sound/hallucinations/wail.ogg' + break_sound = 'sound/effects/hallucinations/wail.ogg' light_power = 1 anchored = TRUE density = TRUE @@ -31,7 +31,7 @@ for(var/turf/nearby_turf as anything in get_adjacent_open_turfs(our_turf)) if(prob(10 * current_mass)) new /obj/effect/decal/cleanable/greenglow(nearby_turf) - playsound(our_turf, 'sound/effects/bubbles2.ogg', 50, TRUE) + playsound(our_turf, 'sound/effects/bubbles/bubbles2.ogg', 50, TRUE) return ..() @@ -69,12 +69,6 @@ bite_the_hand(user) return TRUE - if(istype(weapon, /obj/item/codex_cicatrix) || istype(weapon, /obj/item/melee/touch_attack/mansus_fist)) - playsound(src, 'sound/items/deconstruct.ogg', 30, TRUE, ignore_walls = FALSE) - set_anchored(!anchored) - balloon_alert(user, "[anchored ? "":"un"]anchored") - return TRUE - if(isbodypart(weapon)) var/obj/item/bodypart/consumed = weapon @@ -99,6 +93,13 @@ return ..() +/obj/structure/destructible/eldritch_crucible/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/codex_cicatrix) || istype(tool, /obj/item/melee/touch_attack/mansus_fist)) + playsound(src, 'sound/items/deconstruct.ogg', 30, TRUE, ignore_walls = FALSE) + set_anchored(!anchored) + balloon_alert(user, "[anchored ? "":"un"]anchored") + return ITEM_INTERACT_SUCCESS + /obj/structure/destructible/eldritch_crucible/attack_hand(mob/user, list/modifiers) . = ..() if(.) @@ -163,7 +164,7 @@ var/obj/item/spawned_pot = new spawned_type(drop_location()) - playsound(src, 'sound/misc/desecration-02.ogg', 75, TRUE) + playsound(src, 'sound/effects/desecration/desecration-02.ogg', 75, TRUE) visible_message(span_notice("[src]'s shining liquid drains into a flask, creating a [spawned_pot.name]!")) balloon_alert(user, "potion created") @@ -237,7 +238,7 @@ if(!iscarbon(user)) return - playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) + playsound(src, 'sound/effects/bubbles/bubbles.ogg', 50, TRUE) if(!IS_HERETIC_OR_MONSTER(user)) to_chat(user, span_danger("You down some of the liquid from [src]. The taste causes you to retch, and the glass vanishes.")) diff --git a/code/modules/antagonists/heretic/transmutation_rune.dm b/code/modules/antagonists/heretic/transmutation_rune.dm index 3f7072201590f..02c27c353a90e 100644 --- a/code/modules/antagonists/heretic/transmutation_rune.dm +++ b/code/modules/antagonists/heretic/transmutation_rune.dm @@ -167,7 +167,7 @@ // This doesn't necessarily mean the ritual will succeed, but it's valid! // Do the animations and associated feedback. flick("[icon_state]_active", src) - playsound(user, 'sound/magic/castsummon.ogg', 75, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_exponent = 10) + playsound(user, 'sound/effects/magic/castsummon.ogg', 75, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_exponent = 10) // - We temporarily make all of our chosen atoms invisible, as some rituals may sleep, // and we don't want people to be able to run off with ritual items. diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index a1c31241e0b75..184ca9c4f77f4 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -43,8 +43,8 @@ . = ..() /datum/antagonist/highlander/greet() - to_chat(owner, "Your [sword.name] cries out for blood. Claim the lives of others, and your own will be restored!\n\ - Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.") + to_chat(owner, span_boldannounce("Your [sword.name] cries out for blood. Claim the lives of others, and your own will be restored!\n\ + Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.")) owner.announce_objectives() @@ -88,8 +88,8 @@ name = "\improper highlander" /datum/antagonist/highlander/robot/greet() - to_chat(owner, "Your integrated claymore cries out for blood. Claim the lives of others, and your own will be restored!\n\ - Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.") + to_chat(owner, span_boldannounce("Your integrated claymore cries out for blood. Claim the lives of others, and your own will be restored!\n\ + Activate it in your hand, and it will lead to the nearest target. Attack the nuclear authentication disk with it, and you will store it.")) /datum/antagonist/highlander/robot/give_equipment() var/mob/living/silicon/robot/robotlander = owner.current diff --git a/code/modules/antagonists/hypnotized/hypnotized.dm b/code/modules/antagonists/hypnotized/hypnotized.dm index fc1e5d7d5ad24..bde67390bf7fb 100644 --- a/code/modules/antagonists/hypnotized/hypnotized.dm +++ b/code/modules/antagonists/hypnotized/hypnotized.dm @@ -1,7 +1,7 @@ /// Antag datum associated with the hypnosis brain trauma, used for displaying objectives and antag hud /datum/antagonist/hypnotized name = "\improper Hypnotized Victim" - stinger_sound = 'sound/ambience/antag/hypnotized.ogg' + stinger_sound = 'sound/music/antag/hypnotized.ogg' job_rank = ROLE_HYPNOTIZED roundend_category = "hypnotized victims" antag_hud_name = "brainwashed" diff --git a/code/modules/antagonists/malf_ai/malf_ai.dm b/code/modules/antagonists/malf_ai/malf_ai.dm index dc92289f66bef..6220127f68794 100644 --- a/code/modules/antagonists/malf_ai/malf_ai.dm +++ b/code/modules/antagonists/malf_ai/malf_ai.dm @@ -21,7 +21,7 @@ ///since the module purchasing is built into the antag info, we need to keep track of its compact mode here var/module_picker_compactmode = FALSE ///malf on_gain sound effect. Set here so Infected AI can override - var/malf_sound = 'sound/ambience/antag/malf.ogg' + var/malf_sound = 'sound/music/antag/malf.ogg' /datum/antagonist/malf_ai/New(give_objectives = TRUE) . = ..() @@ -258,7 +258,7 @@ result += span_greentext("The [special_role_text] was successful!") else result += span_redtext("The [special_role_text] has failed!") - SEND_SOUND(owner.current, 'sound/ambience/ambifailure.ogg') + SEND_SOUND(owner.current, 'sound/ambience/misc/ambifailure.ogg') return result.Join("
") diff --git a/code/modules/antagonists/malf_ai/malf_ai_modules.dm b/code/modules/antagonists/malf_ai/malf_ai_modules.dm index a9f84c51dad1a..f91d1b90ba46b 100644 --- a/code/modules/antagonists/malf_ai/malf_ai_modules.dm +++ b/code/modules/antagonists/malf_ai/malf_ai_modules.dm @@ -201,7 +201,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE return - owner.playsound_local(owner, 'sound/misc/bloblarm.ogg', 50, 0, use_reverb = FALSE) + owner.playsound_local(owner, 'sound/announcer/alarm/bloblarm.ogg', 50, 0, use_reverb = FALSE) to_chat(owner, span_userdanger("!!! UNAUTHORIZED SELF-DESTRUCT ACCESS !!!")) to_chat(owner, span_boldannounce("This is a class-3 security violation. This incident will be reported to Central Command.")) for(var/i in 1 to 3) @@ -227,7 +227,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) active = FALSE return to_chat(owner, span_boldnotice("Arm self-destruct device? (Y/N)")) - owner.playsound_local(owner, 'sound/misc/compiler-stage1.ogg', 50, 0, use_reverb = FALSE) + owner.playsound_local(owner, 'sound/machines/compiler/compiler-stage1.ogg', 50, 0, use_reverb = FALSE) sleep(2 SECONDS) if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE @@ -238,7 +238,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) active = FALSE return to_chat(owner, span_boldnotice("Confirm arming of self-destruct device? (Y/N)")) - owner.playsound_local(owner, 'sound/misc/compiler-stage2.ogg', 50, 0, use_reverb = FALSE) + owner.playsound_local(owner, 'sound/machines/compiler/compiler-stage2.ogg', 50, 0, use_reverb = FALSE) sleep(1 SECONDS) if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE @@ -249,7 +249,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) active = FALSE return to_chat(owner, span_boldnotice("Please repeat password to confirm.")) - owner.playsound_local(owner, 'sound/misc/compiler-stage2.ogg', 50, 0, use_reverb = FALSE) + owner.playsound_local(owner, 'sound/machines/compiler/compiler-stage2.ogg', 50, 0, use_reverb = FALSE) sleep(1.4 SECONDS) if(QDELETED(owner) || !isturf(owner_AI.loc)) active = FALSE @@ -350,7 +350,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) var/sec_left = seconds_remaining() if(!sec_left) timing = FALSE - sound_to_playing_players('sound/machines/alarm.ogg') + sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(play_cinematic), /datum/cinematic/malf, world, CALLBACK(src, PROC_REF(trigger_doomsday))), 10 SECONDS) else if(world.time >= next_announce) @@ -381,7 +381,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) one_purchase = TRUE power_type = /datum/action/innate/ai/lockdown unlock_text = span_notice("You upload a sleeper trojan into the door control systems. You can send a signal to set it off at any time.") - unlock_sound = 'sound/machines/boltsdown.ogg' + unlock_sound = 'sound/machines/airlock/boltsdown.ogg' /datum/action/innate/ai/lockdown name = "Lockdown" @@ -430,7 +430,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) cost = 30 power_type = /datum/action/innate/ai/ranged/override_machine unlock_text = span_notice("You procure a virus from the Space Dark Web and distribute it to the station's machines.") - unlock_sound = 'sound/machines/airlock_alien_prying.ogg' + unlock_sound = 'sound/machines/airlock/airlock_alien_prying.ogg' /datum/action/innate/ai/ranged/override_machine name = "Override Machine" @@ -503,7 +503,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) var/obj/item/construction/rcd/RCD = I RCD.detonate_pulse() to_chat(owner, span_danger("RCD detonation pulse emitted.")) - owner.playsound_local(owner, 'sound/machines/twobeep.ogg', 50, 0) + owner.playsound_local(owner, 'sound/machines/beep/twobeep.ogg', 50, 0) /// Overload Machine: Allows the AI to overload a machine, detonating it after a delay. Two uses per purchase. /datum/ai_module/malf/destructive/overload_machine @@ -607,7 +607,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) cost = 20 power_type = /datum/action/innate/ai/honk unlock_text = span_notice("You upload a sinister sound file into every intercom...") - unlock_sound = 'sound/items/airhorn.ogg' + unlock_sound = 'sound/items/airhorn/airhorn.ogg' /datum/action/innate/ai/honk name = "Percussive Intercomm Interference" @@ -622,7 +622,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) if(!found_intercom.is_on() || !found_intercom.get_listening() || found_intercom.wires.is_cut(WIRE_RX)) //Only operating intercoms play the honk continue found_intercom.audible_message(message = "[found_intercom] crackles for a split second.", hearing_distance = 3) - playsound(found_intercom, 'sound/items/airhorn.ogg', 100, TRUE) + playsound(found_intercom, 'sound/items/airhorn/airhorn.ogg', 100, TRUE) for(var/mob/living/carbon/honk_victim in ohearers(6, found_intercom)) var/turf/victim_turf = get_turf(honk_victim) if(isspaceturf(victim_turf) && !victim_turf.Adjacent(found_intercom)) //Prevents getting honked in space @@ -730,7 +730,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) continue AA.obj_flags |= EMAGGED to_chat(owner, span_notice("All air alarm safeties on the station have been overridden. Air alarms may now use extremely dangerous environmental modes.")) - owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0) + owner.playsound_local(owner, 'sound/machines/terminal/terminal_off.ogg', 50, 0) /// Thermal Sensor Override: Unlocks the ability to disable all fire alarms from doing their job. /datum/ai_module/malf/utility/break_fire_alarms @@ -742,7 +742,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) power_type = /datum/action/innate/ai/break_fire_alarms unlock_text = span_notice("You replace the thermal sensing capabilities of all fire alarms with a manual override, \ allowing you to turn them off at will.") - unlock_sound = 'sound/machines/FireAlarm1.ogg' + unlock_sound = 'sound/machines/fire_alarm/FireAlarm1.ogg' /datum/action/innate/ai/break_fire_alarms name = "Override Thermal Sensors" @@ -761,7 +761,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) continue firelock.emag_act(owner_AI, src) to_chat(owner, span_notice("All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized.")) - owner.playsound_local(owner, 'sound/machines/terminal_off.ogg', 50, 0) + owner.playsound_local(owner, 'sound/machines/terminal/terminal_off.ogg', 50, 0) /// Disable Emergency Lights /datum/ai_module/malf/utility/emergency_lights @@ -799,7 +799,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) one_purchase = TRUE power_type = /datum/action/innate/ai/reactivate_cameras unlock_text = span_notice("You deploy nanomachines to the cameranet.") - unlock_sound = 'sound/items/wirecutter.ogg' + unlock_sound = 'sound/items/tools/wirecutter.ogg' /datum/action/innate/ai/reactivate_cameras name = "Reactivate Cameras" @@ -824,7 +824,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) fixed_cameras++ uses-- //Not adjust_uses() so it doesn't automatically delete or show a message to_chat(owner, span_notice("Diagnostic complete! Cameras reactivated: [fixed_cameras]. Reactivations remaining: [uses].")) - owner.playsound_local(owner, 'sound/items/wirecutter.ogg', 50, 0) + owner.playsound_local(owner, 'sound/items/tools/wirecutter.ogg', 50, 0) adjust_uses(0, TRUE) //Checks the uses remaining if(QDELETED(src) || !uses) //Not sure if not having src here would cause a runtime, so it's here to be safe return @@ -839,7 +839,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) cost = 35 //Decent price for omniscience! upgrade = TRUE unlock_text = span_notice("OTA firmware distribution complete! Cameras upgraded: CAMSUPGRADED. Light amplification system online.") - unlock_sound = 'sound/items/rped.ogg' + unlock_sound = 'sound/items/tools/rped.ogg' /datum/ai_module/malf/upgrade/upgrade_cameras/upgrade(mob/living/silicon/ai/AI) // Sets up nightvision @@ -876,7 +876,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) cost = 30 upgrade = TRUE unlock_text = span_notice("You establish a power diversion to your turrets, upgrading their health and damage.") - unlock_sound = 'sound/items/rped.ogg' + unlock_sound = 'sound/items/tools/rped.ogg' /datum/ai_module/malf/upgrade/upgrade_turrets/upgrade(mob/living/silicon/ai/AI) for(var/obj/machinery/porta_turret/ai/turret as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/porta_turret/ai)) @@ -884,7 +884,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) turret.max_integrity = 200 turret.repair_damage(200) turret.lethal_projectile = /obj/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. - turret.lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + turret.lethal_projectile_sound = 'sound/items/weapons/lasercannonfire.ogg' /// Enhanced Surveillance: Enables AI to hear conversations going on near its active vision. /datum/ai_module/malf/upgrade/eavesdrop @@ -894,7 +894,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) cost = 30 upgrade = TRUE unlock_text = span_notice("OTA firmware distribution complete! Cameras upgraded: Enhanced surveillance package online.") - unlock_sound = 'sound/items/rped.ogg' + unlock_sound = 'sound/items/tools/rped.ogg' /datum/ai_module/malf/upgrade/eavesdrop/upgrade(mob/living/silicon/ai/AI) if(AI.eyeobj) @@ -910,7 +910,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) upgrade = TRUE unlock_text = span_notice("Virus package compiled. Select a target mech at any time. You must remain on the station at all times. \ Loss of signal will result in total system lockout.") - unlock_sound = 'sound/mecha/nominal.ogg' + unlock_sound = 'sound/vehicles/mecha/nominal.ogg' /datum/ai_module/malf/upgrade/mecha_domination/upgrade(mob/living/silicon/ai/AI) AI.can_dominate_mechs = TRUE //Yep. This is all it does. Honk! @@ -922,7 +922,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) one_purchase = TRUE power_type = /datum/action/innate/ai/voice_changer unlock_text = span_notice("OTA firmware distribution complete! Voice changer online.") - unlock_sound = 'sound/items/rped.ogg' + unlock_sound = 'sound/items/tools/rped.ogg' /datum/action/innate/ai/voice_changer name="Voice Changer" diff --git a/code/modules/antagonists/nightmare/nightmare_equipment.dm b/code/modules/antagonists/nightmare/nightmare_equipment.dm index 6fbe6c6097bec..52a687f9ac795 100644 --- a/code/modules/antagonists/nightmare/nightmare_equipment.dm +++ b/code/modules/antagonists/nightmare/nightmare_equipment.dm @@ -15,7 +15,7 @@ w_class = WEIGHT_CLASS_HUGE sharpness = SHARP_EDGED tool_behaviour = TOOL_MINING - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' wound_bonus = -30 bare_wound_bonus = 20 ///If this is true, our next hit will be critcal, temporarily stunning our target diff --git a/code/modules/antagonists/nightmare/nightmare_organs.dm b/code/modules/antagonists/nightmare/nightmare_organs.dm index 19328f20378de..4aaacb77e5f3e 100644 --- a/code/modules/antagonists/nightmare/nightmare_organs.dm +++ b/code/modules/antagonists/nightmare/nightmare_organs.dm @@ -85,7 +85,7 @@ span_warning("[user] raises [src] to [user.p_their()] mouth and tears into it with [user.p_their()] teeth!"), span_danger("[src] feels unnaturally cold in your hands. You raise [src] to your mouth and devour it!") ) - playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(user, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) user.visible_message( span_warning("Blood erupts from [user]'s arm as it reforms into a weapon!"), @@ -131,7 +131,7 @@ to_chat(owner, span_userdanger("You feel the shadows invade your skin, leaping into the center of your chest! You're alive!")) SEND_SOUND(owner, sound('sound/effects/ghost.ogg')) owner.visible_message(span_warning("[owner] staggers to [owner.p_their()] feet!")) - playsound(owner, 'sound/hallucinations/far_noise.ogg', 50, TRUE) + playsound(owner, 'sound/effects/hallucinations/far_noise.ogg', 50, TRUE) respawn_progress = 0 /obj/item/organ/internal/heart/nightmare/get_availability(datum/species/owner_species, mob/living/owner_mob) diff --git a/code/modules/antagonists/ninja/energy_katana.dm b/code/modules/antagonists/ninja/energy_katana.dm index 61a9b81c364c1..efd993550915f 100644 --- a/code/modules/antagonists/ninja/energy_katana.dm +++ b/code/modules/antagonists/ninja/energy_katana.dm @@ -24,10 +24,10 @@ block_chance = 50 armour_penetration = 50 w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' pickup_sound = 'sound/items/unsheath.ogg' drop_sound = 'sound/items/sheath.ogg' - block_sound = 'sound/weapons/block_blade.ogg' + block_sound = 'sound/items/weapons/block_blade.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT diff --git a/code/modules/antagonists/ninja/energy_net_nets.dm b/code/modules/antagonists/ninja/energy_net_nets.dm index 111d1f2651548..5f08762b34135 100644 --- a/code/modules/antagonists/ninja/energy_net_nets.dm +++ b/code/modules/antagonists/ninja/energy_net_nets.dm @@ -30,7 +30,7 @@ /obj/structure/energy_net/play_attack_sound(damage, damage_type = BRUTE, damage_flag = 0) if(damage_type == BRUTE || damage_type == BURN) - playsound(src, 'sound/weapons/slash.ogg', 80, TRUE) + playsound(src, 'sound/items/weapons/slash.ogg', 80, TRUE) /obj/structure/energy_net/atom_destruction(damage_flag) for(var/mob/recovered_mob as anything in buckled_mobs) diff --git a/code/modules/antagonists/nukeop/datums/operative.dm b/code/modules/antagonists/nukeop/datums/operative.dm index c05295e15d32e..859cee578b265 100644 --- a/code/modules/antagonists/nukeop/datums/operative.dm +++ b/code/modules/antagonists/nukeop/datums/operative.dm @@ -8,7 +8,7 @@ show_to_ghosts = TRUE hijack_speed = 2 //If you can't take out the station, take the shuttle instead. suicide_cry = "FOR THE SYNDICATE!!" - stinger_sound = 'sound/ambience/antag/ops.ogg' + stinger_sound = 'sound/music/antag/ops.ogg' /// Which nukie team are we on? var/datum/team/nuclear/nuke_team /// If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. diff --git a/code/modules/antagonists/nukeop/datums/operative_support.dm b/code/modules/antagonists/nukeop/datums/operative_support.dm index c9ea12b63c5d2..aa0c031c070aa 100644 --- a/code/modules/antagonists/nukeop/datums/operative_support.dm +++ b/code/modules/antagonists/nukeop/datums/operative_support.dm @@ -21,7 +21,7 @@ network = OPERATIVE_CAMERA_NET, \ emp_proof = FALSE, \ ) - our_teammate.playsound_local(get_turf(owner.current), 'sound/weapons/egloves.ogg', 100, 0) + our_teammate.playsound_local(get_turf(owner.current), 'sound/items/weapons/egloves.ogg', 100, 0) to_chat(our_teammate, span_notice("A Syndicate Overwatch Intelligence Agent has been assigned to your team. Smile, you're on camera!")) RegisterSignal(nuke_team, COMSIG_NUKE_TEAM_ADDITION, PROC_REF(late_bodycam)) diff --git a/code/modules/antagonists/nukeop/datums/operative_team.dm b/code/modules/antagonists/nukeop/datums/operative_team.dm index 1e06f32594d84..b676bda303dd6 100644 --- a/code/modules/antagonists/nukeop/datums/operative_team.dm +++ b/code/modules/antagonists/nukeop/datums/operative_team.dm @@ -15,7 +15,7 @@ /datum/team/nuclear/roundend_report() var/list/parts = list() - parts += "[syndicate_name] Operatives:" + parts += span_header("[syndicate_name] Operatives:") switch(get_result()) if(NUKE_RESULT_FLUKE) @@ -55,7 +55,7 @@ parts += "Neutral Victory" parts += "Mission aborted!" - var/text = "
The syndicate operatives were:" + var/text = span_header("
The syndicate operatives were:") var/purchases = "" var/TC_uses = 0 LAZYINITLIST(GLOB.uplink_purchase_logs_by_key) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm index 7e06dd0d6e050..ebc2c6ec32639 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm @@ -102,7 +102,7 @@ /obj/item/disk/nuclear/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/machines/alarm.ogg', 50, -1, TRUE) + playsound(src, 'sound/announcer/alarm/nuke_alarm.ogg', 50, -1, TRUE) for(var/i in 1 to 100) addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? COLOR_VIBRANT_LIME : COLOR_RED, ADMIN_COLOUR_PRIORITY), i) addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 101) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm index fb23cae705fab..3214232648b2a 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm @@ -95,7 +95,7 @@ GLOBAL_VAR(station_nuke_source) return TRUE auth = weapon update_ui_mode() - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) add_fingerprint(user) return TRUE @@ -336,7 +336,7 @@ GLOBAL_VAR(station_nuke_source) switch(action) if("eject_disk") if(auth && auth.loc == src) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) playsound(src, 'sound/machines/nuke/general_beep.ogg', 50, FALSE) auth.forceMove(get_turf(src)) auth = null @@ -344,7 +344,7 @@ GLOBAL_VAR(station_nuke_source) else var/obj/item/I = usr.is_holding_item_of_type(/obj/item/disk/nuclear) if(I && disk_check(I) && usr.transferItemToLoc(I, src)) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) playsound(src, 'sound/machines/nuke/general_beep.ogg', 50, FALSE) auth = I . = TRUE @@ -519,7 +519,7 @@ GLOBAL_VAR(station_nuke_source) yes_code = FALSE safety = TRUE update_appearance() - sound_to_playing_players('sound/machines/alarm.ogg') + sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NUKE_DEVICE_DETONATING, src) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index b59d984238e61..0dba54bf2aaaf 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -80,7 +80,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) priority_announce( text = memo, title = "Declaration of War", - sound = 'sound/machines/alarm.ogg', + sound = 'sound/announcer/alarm/nuke_alarm.ogg', has_important_message = TRUE, sender_override = "Nuclear Operative Outpost", color_override = "red", @@ -192,7 +192,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) priority_announce( text = memo, title = "Declaration of War", - sound = 'sound/machines/alarm.ogg', + sound = 'sound/announcer/alarm/nuke_alarm.ogg', has_important_message = TRUE, sender_override = "Nuclear Operative Outpost", color_override = "red", diff --git a/code/modules/antagonists/nukeop/equipment/pinpointer.dm b/code/modules/antagonists/nukeop/equipment/pinpointer.dm index f842b5d6b6e33..82113fb31be2b 100644 --- a/code/modules/antagonists/nukeop/equipment/pinpointer.dm +++ b/code/modules/antagonists/nukeop/equipment/pinpointer.dm @@ -55,7 +55,7 @@ if(isliving(loc)) var/mob/living/L = loc to_chat(L, span_userdanger("Your [name] beeps as it reconfigures its tracking algorithms.")) - playsound(L, 'sound/machines/triple_beep.ogg', 50, TRUE) + playsound(L, 'sound/machines/beep/triple_beep.ogg', 50, TRUE) mode = new_mode scan_for_target() diff --git a/code/modules/antagonists/obsessed/obsessed.dm b/code/modules/antagonists/obsessed/obsessed.dm index 7f9d9614fb1d9..ff4232ab2dc00 100644 --- a/code/modules/antagonists/obsessed/obsessed.dm +++ b/code/modules/antagonists/obsessed/obsessed.dm @@ -18,7 +18,7 @@ suicide_cry = "FOR MY LOVE!!" preview_outfit = /datum/outfit/obsessed hardcore_random_bonus = TRUE - stinger_sound = 'sound/ambience/antag/creepalert.ogg' + stinger_sound = 'sound/music/antag/creepalert.ogg' /// How many objectives should be generated var/objectives_to_generate = 3 /// Brain trauma that causes the obsession @@ -147,7 +147,7 @@ O.update_explanation_text() /datum/antagonist/obsessed/roundend_report_header() - return "Someone became obsessed!
" + return span_header("Someone became obsessed!
") /datum/antagonist/obsessed/roundend_report() var/list/report = list() diff --git a/code/modules/antagonists/paradox_clone/paradox_clone.dm b/code/modules/antagonists/paradox_clone/paradox_clone.dm index bd8eb7cd7d866..960cf7f59ec2f 100644 --- a/code/modules/antagonists/paradox_clone/paradox_clone.dm +++ b/code/modules/antagonists/paradox_clone/paradox_clone.dm @@ -73,7 +73,7 @@ original_mind.quick_copy_all_memories(owner) /datum/antagonist/paradox_clone/roundend_report_header() - return "A paradox clone appeared on the station!
" + return span_header("A paradox clone appeared on the station!
") /datum/outfit/paradox_clone name = "Paradox Clone (Preview only)" diff --git a/code/modules/antagonists/pirate/pirate.dm b/code/modules/antagonists/pirate/pirate.dm index 0fa80f5524776..6bff6eb357208 100644 --- a/code/modules/antagonists/pirate/pirate.dm +++ b/code/modules/antagonists/pirate/pirate.dm @@ -104,7 +104,7 @@ /datum/team/pirate/roundend_report() var/list/parts = list() - parts += "Space Pirates were:" + parts += span_header("Space Pirates were:") var/all_dead = TRUE for(var/datum/mind/M in members) diff --git a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm index 602fcbe8b071f..feb62ec4fca66 100644 --- a/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm +++ b/code/modules/antagonists/pirate/pirate_shuttle_equipment.dm @@ -438,7 +438,7 @@ var/mob_cost = get_cost(sold_item) sold_item.process_capture(mob_cost, mob_cost * 1.2) do_sparks(8, FALSE, sold_item) - playsound(picked_turf, 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(picked_turf, 'sound/items/weapons/emitter2.ogg', 25, TRUE) sold_item.flash_act() sold_item.adjust_confusion(10 SECONDS) sold_item.adjust_dizzy(10 SECONDS) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index d490944e1e310..da7b76577275c 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -6,7 +6,7 @@ antag_moodlet = /datum/mood_event/revolution antag_hud_name = "rev" suicide_cry = "VIVA LA REVOLUTION!!" - stinger_sound = 'sound/ambience/antag/revolutionary_tide.ogg' + stinger_sound = 'sound/music/antag/revolutionary_tide.ogg' var/datum/team/revolution/rev_team /// When this antagonist is being de-antagged, this is the source. Can be a mob (for mindshield/blunt force trauma) or a #define string. @@ -584,19 +584,19 @@ if(headrevs.len) var/list/headrev_part = list() - headrev_part += "The head revolutionaries were:" + headrev_part += span_header("The head revolutionaries were:") headrev_part += printplayerlist(headrevs, !check_rev_victory()) result += headrev_part.Join("
") if(revs.len) var/list/rev_part = list() - rev_part += "The revolutionaries were:" + rev_part += span_header("The revolutionaries were:") rev_part += printplayerlist(revs, !check_rev_victory()) result += rev_part.Join("
") var/list/heads = SSjob.get_all_heads() if(heads.len) - var/head_text = "The heads of staff were:" + var/head_text = span_header("The heads of staff were:") head_text += "
    " for(var/datum/mind/head in heads) var/target = (head in targets) diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm index 828ee94587fcb..6038c5e6820b7 100644 --- a/code/modules/antagonists/space_dragon/carp_rift.dm +++ b/code/modules/antagonists/space_dragon/carp_rift.dm @@ -141,7 +141,7 @@ . += span_notice("It has [carp_stored] carp available to spawn as.") /obj/structure/carp_rift/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(src, 'sound/magic/lightningshock.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/lightningshock.ogg', 50, TRUE) /obj/structure/carp_rift/Destroy() STOP_PROCESSING(SSobj, src) diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm index cc82f491c1fcd..090c8f66dc82e 100644 --- a/code/modules/antagonists/space_dragon/space_dragon.dm +++ b/code/modules/antagonists/space_dragon/space_dragon.dm @@ -37,7 +37,7 @@ Today, we will snuff out one of those lights.") to_chat(owner, span_boldwarning("You have five minutes to find a safe location to place down the first rift. If you take longer than five minutes to place a rift, you will be returned from whence you came.")) owner.announce_objectives() - owner.current.playsound_local(get_turf(owner.current), 'sound/magic/demon_attack1.ogg', 80) + owner.current.playsound_local(get_turf(owner.current), 'sound/effects/magic/demon_attack1.ogg', 80) /datum/antagonist/space_dragon/forge_objectives() var/static/list/area/allowed_areas @@ -142,7 +142,7 @@ if(riftTimer >= maxRiftTimer) to_chat(owner.current, span_boldwarning("You've failed to summon the rift in a timely manner! You're being pulled back from whence you came!")) destroy_rifts() - SEND_SOUND(owner.current, sound('sound/magic/demon_dies.ogg')) + SEND_SOUND(owner.current, sound('sound/effects/magic/demon_dies.ogg')) owner.current.death(/* gibbed = */ TRUE) QDEL_NULL(owner.current) @@ -182,7 +182,7 @@ main_objective?.completed = TRUE priority_announce("A large amount of lifeforms have been detected approaching [station_name()] at extreme speeds. \ Remaining crew are advised to evacuate as soon as possible.", "[command_name()] Wildlife Observations", has_important_message = TRUE) - sound_to_playing_players('sound/creatures/space_dragon_roar.ogg', volume = 75) + sound_to_playing_players('sound/mobs/non-humanoids/space_dragon/space_dragon_roar.ogg', volume = 75) for(var/obj/structure/carp_rift/rift as anything in rift_list) rift.carp_stored = 999999 rift.time_charged = rift.max_charge @@ -256,7 +256,7 @@ parts += "The [name] has failed!" if(length(carp)) - parts += "
    The [name] was assisted by:" + parts += span_header("
    The [name] was assisted by:") parts += "
      " var/list/players_to_carp_taken = list() for(var/datum/mind/carpy as anything in carp) diff --git a/code/modules/antagonists/space_ninja/space_ninja.dm b/code/modules/antagonists/space_ninja/space_ninja.dm index 37bc2299928da..b54c5f2b8b3fe 100644 --- a/code/modules/antagonists/space_ninja/space_ninja.dm +++ b/code/modules/antagonists/space_ninja/space_ninja.dm @@ -101,7 +101,7 @@ /datum/antagonist/ninja/greet() . = ..() - SEND_SOUND(owner.current, sound('sound/effects/ninja_greeting.ogg')) + SEND_SOUND(owner.current, sound('sound/music/antag/ninja_greeting.ogg')) to_chat(owner.current, span_danger("I am an elite mercenary of the mighty Spider Clan!")) to_chat(owner.current, span_warning("Surprise is my weapon. Shadows are my armor. Without them, I am nothing.")) to_chat(owner.current, span_notice("The station is located to your [dir2text(get_dir(owner.current, locate(world.maxx/2, world.maxy/2, owner.current.z)))]. A thrown ninja star will be a great way to get there.")) diff --git a/code/modules/antagonists/spy/spy.dm b/code/modules/antagonists/spy/spy.dm index 2468eb27cad3f..65dba0ef2eb1e 100644 --- a/code/modules/antagonists/spy/spy.dm +++ b/code/modules/antagonists/spy/spy.dm @@ -30,7 +30,7 @@ if(spawn_with_objectives) give_random_objectives() . = ..() - SEND_SOUND(owner.current, sound('sound/ambience/antag/spy.ogg')) + SEND_SOUND(owner.current, sound('sound/music/antag/spy.ogg')) /datum/antagonist/spy/ui_static_data(mob/user) var/list/data = ..() diff --git a/code/modules/antagonists/spy/spy_uplink.dm b/code/modules/antagonists/spy/spy_uplink.dm index 920076f21b468..f5c60f706c588 100644 --- a/code/modules/antagonists/spy/spy_uplink.dm +++ b/code/modules/antagonists/spy/spy_uplink.dm @@ -100,7 +100,7 @@ return FALSE log_combat(spy, stealing, "started stealing", parent, "(spy bounty)") - playsound(stealing, 'sound/items/pshoom.ogg', 33, vary = TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.33, ignore_walls = FALSE) + playsound(stealing, 'sound/items/pshoom/pshoom.ogg', 33, vary = TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.33, ignore_walls = FALSE) var/obj/effect/scan_effect/active_scan_effect = new(stealing.loc) active_scan_effect.appearance = stealing.appearance diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 661007d3163a6..f739245314fc2 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -17,7 +17,7 @@ can_assign_self_objectives = TRUE default_custom_objective = "Perform an overcomplicated heist on valuable Nanotrasen assets." hardcore_random_bonus = TRUE - stinger_sound = 'sound/ambience/antag/tatoralert.ogg' + stinger_sound = 'sound/music/antag/traitor/tatoralert.ogg' ///The flag of uplink that this traitor is supposed to have. var/uplink_flag_given = UPLINK_TRAITORS @@ -366,7 +366,7 @@ result += span_greentext("The [special_role_text] was successful!") else result += span_redtext("The [special_role_text] has failed!") - SEND_SOUND(owner.current, 'sound/ambience/ambifailure.ogg') + SEND_SOUND(owner.current, 'sound/ambience/misc/ambifailure.ogg') return result.Join("
      ") diff --git a/code/modules/antagonists/traitor/objectives/eyesnatching.dm b/code/modules/antagonists/traitor/objectives/eyesnatching.dm index 31dec4e812a6b..7d664b20d36cb 100644 --- a/code/modules/antagonists/traitor/objectives/eyesnatching.dm +++ b/code/modules/antagonists/traitor/objectives/eyesnatching.dm @@ -204,7 +204,7 @@ target.equip_to_slot_if_possible(new_patch, ITEM_SLOT_EYES, disable_warning = TRUE) to_chat(user, span_notice("You successfully extract [target]'s eyeballs.")) - playsound(target, 'sound/surgery/retractor2.ogg', 100, TRUE) + playsound(target, 'sound/items/handling/surgery/retractor2.ogg', 100, TRUE) playsound(target, 'sound/effects/pop.ogg', 100, TRAIT_MUTE) eyeballies.Remove(target) eyeballies.forceMove(get_turf(target)) diff --git a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm index cb9f4ac73aaf8..6e722b1515eb4 100644 --- a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm +++ b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm @@ -34,7 +34,7 @@ if(objective == src) continue objective.fail_objective() - user.playsound_local(get_turf(user), 'sound/traitor/final_objective.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + user.playsound_local(get_turf(user), 'sound/music/antag/traitor/final_objective.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) handler.final_objective = name /datum/traitor_objective/ultimate/uplink_ui_data(mob/user) diff --git a/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm b/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm index 4acfe7120489a..5492f04a0f847 100644 --- a/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm +++ b/code/modules/antagonists/traitor/objectives/locate_weakpoint.dm @@ -178,22 +178,22 @@ var/area/user_area = get_area(user) if(!(user_area.type in objective.scan_areas)) balloon_alert(user, "invalid area!") - playsound(user, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return if(!objective.scan_areas[user_area.type]) balloon_alert(user, "already scanned here!") - playsound(user, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return user.visible_message(span_danger("[user] presses a few buttons on [src] and it starts ominously beeping!"), span_notice("You activate [src] and start scanning the area. Do not exit [get_area_name(user, TRUE)] until the scan finishes!")) - playsound(user, 'sound/machines/triple_beep.ogg', 30, TRUE) + playsound(user, 'sound/machines/beep/triple_beep.ogg', 30, TRUE) var/alertstr = span_userdanger("Network Alert: Station network probing attempt detected[user_area?" in [get_area_name(user, TRUE)]":". Unable to pinpoint location"].") for(var/mob/living/silicon/ai/ai_player in GLOB.player_list) to_chat(ai_player, alertstr) if(!do_after(user, 30 SECONDS, src, IGNORE_USER_LOC_CHANGE | IGNORE_TARGET_LOC_CHANGE | IGNORE_HELD_ITEM | IGNORE_INCAPACITATED | IGNORE_SLOWDOWNS, extra_checks = CALLBACK(src, PROC_REF(scan_checks), user, user_area, objective), hidden = TRUE)) - playsound(user, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return playsound(user, 'sound/machines/ding.ogg', 100, TRUE) diff --git a/code/modules/antagonists/traitor/traitor_objective.dm b/code/modules/antagonists/traitor/traitor_objective.dm index 3e13340157334..ecfebaddeadcb 100644 --- a/code/modules/antagonists/traitor/traitor_objective.dm +++ b/code/modules/antagonists/traitor/traitor_objective.dm @@ -216,10 +216,10 @@ /datum/traitor_objective/proc/finish_objective(mob/user) switch(objective_state) if(OBJECTIVE_STATE_FAILED, OBJECTIVE_STATE_INVALID) - user.playsound_local(get_turf(user), 'sound/traitor/objective_failed.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + user.playsound_local(get_turf(user), 'sound/music/antag/traitor/objective_failed.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) return TRUE if(OBJECTIVE_STATE_COMPLETED) - user.playsound_local(get_turf(user), 'sound/traitor/objective_success.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + user.playsound_local(get_turf(user), 'sound/music/antag/traitor/objective_success.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) completion_payout() return TRUE return FALSE diff --git a/code/modules/antagonists/traitor/uplink_handler.dm b/code/modules/antagonists/traitor/uplink_handler.dm index 2d27f3c4a0eff..83899300614e5 100644 --- a/code/modules/antagonists/traitor/uplink_handler.dm +++ b/code/modules/antagonists/traitor/uplink_handler.dm @@ -255,7 +255,7 @@ if(!(to_take in potential_objectives)) return - user.playsound_local(get_turf(user), 'sound/traitor/objective_taken.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + user.playsound_local(get_turf(user), 'sound/music/antag/traitor/objective_taken.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) to_take.on_objective_taken(user) to_take.objective_state = OBJECTIVE_STATE_ACTIVE potential_objectives -= to_take diff --git a/code/modules/antagonists/voidwalker/voidwalker_loot.dm b/code/modules/antagonists/voidwalker/voidwalker_loot.dm index 73ed9c7cd2207..11a51c8a5b2f1 100644 --- a/code/modules/antagonists/voidwalker/voidwalker_loot.dm +++ b/code/modules/antagonists/voidwalker/voidwalker_loot.dm @@ -35,7 +35,7 @@ starer.gain_trauma(/datum/brain_trauma/voided/stable) to_chat(user, span_purple("And a whole world opens up to you.")) - playsound(get_turf(user), 'sound/effects/curse5.ogg', 60) + playsound(get_turf(user), 'sound/effects/curse/curse5.ogg', 60) uses-- if(uses <= 0 ) diff --git a/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm b/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm index 9df3eabab3d21..9bf5b3c2664c3 100644 --- a/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm +++ b/code/modules/antagonists/voidwalker/voidwalker_void_eater.dm @@ -16,7 +16,7 @@ resistance_flags = INDESTRUCTIBLE | ACID_PROOF | FIRE_PROOF | LAVA_PROOF | UNACIDABLE w_class = WEIGHT_CLASS_HUGE tool_behaviour = TOOL_MINING - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' wound_bonus = -30 bare_wound_bonus = 20 diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index bf04c535a56a0..1036abc24955f 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -17,7 +17,7 @@ force = 15 throwforce = 10 w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' var/charges = 1 var/spawn_type = /obj/tear_in_reality var/spawn_amt = 1 @@ -171,7 +171,7 @@ throwforce = 15 damtype = BURN force = 15 - hitsound = 'sound/items/welder2.ogg' + hitsound = 'sound/items/tools/welder2.ogg' var/mob/current_owner @@ -335,7 +335,7 @@ whistler = user var/turf/current_turf = get_turf(user) var/turf/spawn_location = locate(user.x + pick(-7, 7), user.y, user.z) - playsound(current_turf,'sound/magic/warpwhistle.ogg', 200, TRUE) + playsound(current_turf,'sound/effects/magic/warpwhistle.ogg', 200, TRUE) new /obj/effect/temp_visual/teleporting_tornado(spawn_location, src) ///Teleporting tornado, spawned by warp whistle, teleports the user if they manage to pick them up. @@ -472,7 +472,7 @@ return ITEM_INTERACT_BLOCKING scepter_is_busy_summoning = FALSE if(summon_vendor_charges) - playsound(src,'sound/weapons/resonator_fire.ogg',50,TRUE) + playsound(src,'sound/items/weapons/resonator_fire.ogg',50,TRUE) user.visible_message(span_warning("[user] summons a runic vendor!")) new /obj/machinery/vending/runic_vendor(afterattack_turf) summon_vendor_charges-- diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index eb4df6b6239f2..751873c836277 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -92,7 +92,7 @@ if(IS_CULTIST(exorcist) || theme == THEME_HOLY) return balloon_alert(exorcist, "exorcising...") - playsound(src, 'sound/hallucinations/veryfar_noise.ogg', 40, TRUE) + playsound(src, 'sound/effects/hallucinations/veryfar_noise.ogg', 40, TRUE) if(!do_after(exorcist, 4 SECONDS, target = src)) return playsound(src, 'sound/effects/pray_chaplain.ogg', 60, TRUE) @@ -238,7 +238,7 @@ to_chat(user, span_userdanger("Your body is wracked with debilitating pain!")) return ITEM_INTERACT_BLOCKING - user.visible_message("[user] holds [src] above [user.p_their()] head and forces it into [target_toolbox] with a flash of light!", \ + user.visible_message(span_notice("[user] holds [src] above [user.p_their()] head and forces it into [target_toolbox] with a flash of light!"), \ span_notice("You hold [src] above your head briefly, then force it into [target_toolbox], transferring the [occupant]'s soul!"), ignored_mobs = occupant) to_chat(occupant, span_userdanger("[user] holds you up briefly, then forces you into [target_toolbox]!")) to_chat(occupant, span_deadsay("Your eternal soul has been sacrificed to restore the soul of a toolbox. Them's the breaks!")) @@ -261,11 +261,11 @@ icon = 'icons/mob/shells.dmi' icon_state = "construct_cult" desc = "A wicked machine used by those skilled in magical arts. It is inactive." - var/extra_desc = {"A construct shell, used to house bound souls from a soulstone.\n - Placing a soulstone with a soul into this shell allows you to produce your choice of the following:\n - An Artificer, which can produce more shells and soulstones, as well as fortifications.\n - A Wraith, which does high damage and can jaunt through walls, though it is quite fragile.\n - A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow."} + var/extra_desc = span_cult("A construct shell, used to house bound souls from a soulstone.\n\ + Placing a soulstone with a soul into this shell allows you to produce your choice of the following:\n\ + An Artificer, which can produce more shells and soulstones, as well as fortifications.\n\ + A Wraith, which does high damage and can jaunt through walls, though it is quite fragile.\n\ + A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow.") /obj/structure/constructshell/examine(mob/user) . = ..() diff --git a/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm b/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm index b8bf9a8e3cf25..737a3d73403d1 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook_entries/summons.dm @@ -28,7 +28,7 @@ /datum/spellbook_entry/summon/guns/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy = TRUE) summon_guns(user, 10) - playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, TRUE) + playsound(get_turf(user), 'sound/effects/magic/castsummon.ogg', 50, TRUE) return ..() /datum/spellbook_entry/summon/magic @@ -45,7 +45,7 @@ /datum/spellbook_entry/summon/magic/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy = TRUE) summon_magic(user, 10) - playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, TRUE) + playsound(get_turf(user), 'sound/effects/magic/castsummon.ogg', 50, TRUE) return ..() /datum/spellbook_entry/summon/events @@ -65,7 +65,7 @@ /datum/spellbook_entry/summon/events/buy_spell(mob/living/carbon/human/user, obj/item/spellbook/book, log_buy = TRUE) summon_events(user) - playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, TRUE) + playsound(get_turf(user), 'sound/effects/magic/castsummon.ogg', 50, TRUE) return ..() /datum/spellbook_entry/summon/curse_of_madness @@ -78,7 +78,7 @@ if(!message || QDELETED(user) || QDELETED(book) || !can_buy(user, book)) return FALSE curse_of_madness(user, message) - playsound(user, 'sound/magic/mandswap.ogg', 50, TRUE) + playsound(user, 'sound/effects/magic/mandswap.ogg', 50, TRUE) return ..() /// A wizard ritual that allows the wizard to teach a specific spellbook enty to everyone on the station. diff --git a/code/modules/antagonists/wizard/equipment/teleport_rod.dm b/code/modules/antagonists/wizard/equipment/teleport_rod.dm index c15b66da6ff61..e0a5ce31145c6 100644 --- a/code/modules/antagonists/wizard/equipment/teleport_rod.dm +++ b/code/modules/antagonists/wizard/equipment/teleport_rod.dm @@ -85,7 +85,7 @@ . = ITEM_INTERACT_SUCCESS - var/sound/teleport_sound = sound('sound/magic/summonitems_generic.ogg') + var/sound/teleport_sound = sound('sound/effects/magic/summonitems_generic.ogg') teleport_sound.pitch = 0.5 // Handle our own pizzaz rather than doing it in do_teleport new /obj/effect/temp_visual/teleport_flux(start_turf, user.dir) diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/all_access.dm b/code/modules/antagonists/wizard/grand_ritual/finales/all_access.dm index ab699e74064de..1ff93db81938b 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/all_access.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/all_access.dm @@ -14,4 +14,4 @@ target_door.req_one_access = list() INVOKE_ASYNC(target_door, TYPE_PROC_REF(/obj/machinery/door/airlock, open)) CHECK_TICK - priority_announce("AULIE OXIN FIERA!!", null, 'sound/magic/knock.ogg', sender_override = "[invoker.real_name]", color_override = "purple") + priority_announce("AULIE OXIN FIERA!!", null, 'sound/effects/magic/knock.ogg', sender_override = "[invoker.real_name]", color_override = "purple") diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.dm b/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.dm index a951a5daf4223..9b67aa24a5380 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/armageddon.dm @@ -31,7 +31,7 @@ ) /datum/grand_finale/armageddon/trigger(mob/living/carbon/human/invoker) - priority_announce(pick(possible_last_words), null, 'sound/magic/voidblink.ogg', sender_override = "[invoker.real_name]", color_override = "purple") + priority_announce(pick(possible_last_words), null, 'sound/effects/magic/voidblink.ogg', sender_override = "[invoker.real_name]", color_override = "purple") var/turf/current_location = get_turf(invoker) invoker.gib(DROP_ALL_REMAINS) diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.dm b/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.dm index d1a3c1afaf758..237fdfe63e738 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/captaincy.dm @@ -9,7 +9,7 @@ message_admins("[key_name(invoker)] has replaced the Captain") var/list/former_captains = list() var/list/other_crew = list() - SEND_SOUND(world, sound('sound/magic/timeparadox2.ogg')) + SEND_SOUND(world, sound('sound/effects/magic/timeparadox2.ogg')) for (var/mob/living/carbon/human/crewmate as anything in GLOB.human_list) if (!crewmate.mind) diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/cheese.dm b/code/modules/antagonists/wizard/grand_ritual/finales/cheese.dm index 5cdd770486cd5..f0b8ef709aee8 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/cheese.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/cheese.dm @@ -10,7 +10,7 @@ /datum/grand_finale/cheese/trigger(mob/living/invoker) message_admins("[key_name(invoker)] has summoned forth The Wabbajack and cursed the crew with madness!") - priority_announce("Danger: Extremely potent reality altering object has been summoned on station. Immediate evacuation advised. Brace for impact.", "[command_name()] Higher Dimensional Affairs", 'sound/effects/glassbr1.ogg') + priority_announce("Danger: Extremely potent reality altering object has been summoned on station. Immediate evacuation advised. Brace for impact.", "[command_name()] Higher Dimensional Affairs", 'sound/effects/glass/glassbr1.ogg') for (var/mob/living/carbon/human/crewmate as anything in GLOB.human_list) if (isnull(crewmate.mind)) diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/immortality.dm b/code/modules/antagonists/wizard/grand_ritual/finales/immortality.dm index e0d4f3376f80a..436383975d131 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/immortality.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/immortality.dm @@ -19,7 +19,7 @@ /datum/grand_finale/immortality/trigger(mob/living/carbon/human/invoker) new /obj/effect/temp_visual/immortality_blast(get_turf(invoker)) - SEND_SOUND(world, sound('sound/magic/teleport_diss.ogg')) + SEND_SOUND(world, sound('sound/effects/magic/teleport_diss.ogg')) for (var/mob/living/alive_guy as anything in GLOB.mob_living_list) new /obj/effect/temp_visual/immortality_pulse(get_turf(alive_guy)) if (!alive_guy.mind) diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm index a2f25863a4baf..2134e2862a461 100644 --- a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm +++ b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm @@ -191,7 +191,7 @@ possible_obstacle.atom_destruction("magic") if (evaporated_obstacles) - playsound(target_turf, 'sound/magic/blind.ogg', 100, TRUE) + playsound(target_turf, 'sound/effects/magic/blind.ogg', 100, TRUE) target_turf.balloon_alert(owner, "rune created") var/obj/effect/grand_rune/new_rune = new next_rune_typepath(target_turf, times_completed) diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm b/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm index 25883370c0d1b..009853bed22d1 100644 --- a/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm +++ b/code/modules/antagonists/wizard/grand_ritual/grand_rune.dm @@ -162,7 +162,7 @@ on_invocation_complete(user) return flick("[icon_state]_flash", src) - playsound(src,'sound/magic/staff_animation.ogg', 75, TRUE) + playsound(src,'sound/effects/magic/staff_animation.ogg', 75, TRUE) INVOKE_ASYNC(src, PROC_REF(invoke_rune), user) /// Add special effects for casting a spell, basically you glow and hover in the air. @@ -181,7 +181,7 @@ /// Called when you actually finish the damn thing /obj/effect/grand_rune/proc/on_invocation_complete(mob/living/user) is_in_use = FALSE - playsound(src,'sound/magic/staff_change.ogg', 75, TRUE) + playsound(src,'sound/effects/magic/staff_change.ogg', 75, TRUE) INVOKE_ASYNC(src, PROC_REF(summon_round_event), user) // Running the event sleeps trigger_side_effects() tear_reality() diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.dm b/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.dm index a760115a61b9e..52c4056ee01fa 100644 --- a/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.dm +++ b/code/modules/antagonists/wizard/grand_ritual/grand_side_effect.dm @@ -38,7 +38,7 @@ abstract = FALSE /datum/grand_side_effect/scramble_turfs/trigger(potency, turf/ritual_location, mob/invoker) - playsound(ritual_location, 'sound/magic/timeparadox2.ogg', 60, TRUE) + playsound(ritual_location, 'sound/effects/magic/timeparadox2.ogg', 60, TRUE) var/datum/action/cooldown/spell/spell = new /datum/action/cooldown/spell/spacetime_dist() spell.cast(ritual_location) @@ -200,7 +200,7 @@ #define CREWMATE_SUMMON_TELEPORT_DELAY 9 SECONDS /datum/grand_side_effect/summon_crewmate/trigger(potency, turf/ritual_location, mob/invoker) - playsound(ritual_location, 'sound/magic/lightning_chargeup.ogg', 65, TRUE) + playsound(ritual_location, 'sound/effects/magic/lightning_chargeup.ogg', 65, TRUE) var/list/potential_victims = list() var/area/our_area = get_area(ritual_location) for (var/mob/living/carbon/human/crewmate as anything in GLOB.human_list) @@ -218,7 +218,7 @@ new /obj/effect/temp_visual/teleport_abductor(landing_pos) var/mob/living/carbon/human/victim = pick(potential_victims) - playsound(get_turf(victim),'sound/magic/repulse.ogg', 60, TRUE) + playsound(get_turf(victim),'sound/effects/magic/repulse.ogg', 60, TRUE) victim.Immobilize(CREWMATE_SUMMON_TELEPORT_DELAY) victim.AddElement(/datum/element/forced_gravity, 0) victim.add_filter("teleport_glow", 2, list("type" = "outline", "color" = "#de3aff48", "size" = 2)) @@ -244,7 +244,7 @@ abstract = FALSE /datum/grand_side_effect/smoke/trigger(potency, turf/ritual_location, mob/invoker) - playsound(src, 'sound/magic/smoke.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/smoke.ogg', 50, TRUE) var/range = LERP(2, 4, potency/GRAND_RITUAL_FINALE_COUNT) var/datum/effect_system/fluid_spread/smoke/colourful/smoke = new smoke.set_up(range, holder = ritual_location, location = ritual_location) @@ -383,7 +383,7 @@ return if (!mob_path) return - playsound(get_turf(src),'sound/magic/teleport_app.ogg', 60, TRUE) + playsound(get_turf(src),'sound/effects/magic/teleport_app.ogg', 60, TRUE) do_sparks(5, FALSE, loc) new mob_path(loc) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index fa6d9a515b680..67b9a971bad5b 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -443,10 +443,10 @@ GLOBAL_LIST_EMPTY(wizard_spellbook_purchases_by_key) /datum/team/wizard/roundend_report() var/list/parts = list() - parts += "Wizards/witches of [master_wizard.owner.name] team were:" + parts += span_header("Wizards/witches of [master_wizard.owner.name] team were:") parts += master_wizard.roundend_report() parts += " " - parts += "[master_wizard.owner.name] apprentices and minions were:" + parts += span_header("[master_wizard.owner.name] apprentices and minions were:") parts += printplayerlist(members - master_wizard.owner) return "
      [parts.Join("
      ")]
      " diff --git a/code/modules/antagonists/xeno/xeno.dm b/code/modules/antagonists/xeno/xeno.dm index 5ef26665bf238..b60b649857877 100644 --- a/code/modules/antagonists/xeno/xeno.dm +++ b/code/modules/antagonists/xeno/xeno.dm @@ -11,7 +11,7 @@ //Simply lists them. /datum/team/xeno/roundend_report() var/list/parts = list() - parts += "The [name] were:" + parts += span_header("The [name] were:") parts += printplayerlist(members) return "
      [parts.Join("
      ")]
      " @@ -109,7 +109,7 @@ var/escape_count = 0 //counts the number of xenomorphs that were born in captivity who ended the round outside of it var/captive_count = 0 //counts the number of xenomorphs born in captivity who remained there until the end of the round (losers) - parts += "The [name] were:
      " + parts += span_header("The [name] were:
      ") if(check_captivity(progenitor.current) == CAPTIVE_XENO_PASS) parts += span_greentext("The progenitor of this hive was [progenitor.key], as [progenitor], who successfully escaped captivity!") + "
      " diff --git a/code/modules/art/statues.dm b/code/modules/art/statues.dm index da4a47dd843d8..ff5cbc38f850d 100644 --- a/code/modules/art/statues.dm +++ b/code/modules/art/statues.dm @@ -277,10 +277,10 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*0.75) attack_verb_continuous = list("stabs") attack_verb_simple = list("stab") - hitsound = 'sound/weapons/bladeslice.ogg' - usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg') - drop_sound = 'sound/items/handling/screwdriver_drop.ogg' - pickup_sound = 'sound/items/handling/screwdriver_pickup.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' + usesound = list('sound/effects/pickaxe/picaxe1.ogg', 'sound/effects/pickaxe/picaxe2.ogg', 'sound/effects/pickaxe/picaxe3.ogg') + drop_sound = 'sound/items/handling/tools/screwdriver_drop.ogg' + pickup_sound = 'sound/items/handling/tools/screwdriver_pickup.ogg' sharpness = SHARP_POINTY tool_behaviour = TOOL_RUSTSCRAPER toolspeed = 3 // You're gonna have a bad time diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index f20d364759927..6e448637dbaa4 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -109,7 +109,7 @@ if(burnt_out || (world.time < last_trigger + cooldown)) return FALSE last_trigger = world.time - playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 100, TRUE) set_light_on(TRUE) addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) times_used++ @@ -328,7 +328,7 @@ return FALSE overheat = TRUE addtimer(CALLBACK(src, PROC_REF(cooldown)), flashcd) - playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 100, TRUE) update_icon(ALL, TRUE) return TRUE diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index 1f918888610da..ad2c6ac17641d 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -58,8 +58,8 @@ //do the pulse & the scan pulse() - audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*") - playsound(src, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) + audible_message(span_infoplain("[icon2html(src, hearers(src))] *beep* *beep* *beep*")) + playsound(src, 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) toggle_scan() /obj/item/assembly/health/proc/toggle_scan() diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index addbad2704e1b..16a33b2a9a344 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -164,7 +164,7 @@ message = span_infoplain("[icon2html(src, hearers(holder || src))] *beep* *beep* *beep*"), hearing_distance = hearing_range, ) - playsound(src, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE, extrarange = hearing_range - SOUND_RANGE + 1, falloff_distance = hearing_range) + playsound(src, 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE, extrarange = hearing_range - SOUND_RANGE + 1, falloff_distance = hearing_range) COOLDOWN_START(src, next_activate, 3 SECONDS) /obj/item/assembly/infra/activate() diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 5c7f5208254f0..69436f7985dbf 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -89,7 +89,7 @@ to_chat(user, span_warning("Your hand slips, setting off the trigger!")) pulse() update_appearance() - playsound(loc, 'sound/weapons/handcuffs.ogg', 30, TRUE, -3) + playsound(loc, 'sound/items/weapons/handcuffs.ogg', 30, TRUE, -3) /obj/item/assembly/mousetrap/update_icon_state() icon_state = "mousetrap[armed ? "armed" : ""]" @@ -174,7 +174,7 @@ to_chat(user, span_notice("You disarm [src].")) armed = !armed update_appearance() - playsound(src, 'sound/weapons/handcuffs.ogg', 30, TRUE, -3) + playsound(src, 'sound/items/weapons/handcuffs.ogg', 30, TRUE, -3) // Clumsy check only diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index 61153738ee714..6ba2a7a63421e 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -92,9 +92,9 @@ return FALSE next_activate = world.time + (3 SECONDS) // this must happen before anything else pulse() - audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*", null, hearing_range) + audible_message(span_infoplain("[icon2html(src, hearers(src))] *beep* *beep* *beep*"), null, hearing_range) for(var/mob/hearing_mob in get_hearers_in_view(hearing_range, src)) - hearing_mob.playsound_local(get_turf(src), 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) + hearing_mob.playsound_local(get_turf(src), 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) return TRUE diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 5af89f10ec1b4..4e265384ace24 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -46,7 +46,7 @@ user.set_suicide(TRUE) user.adjustOxyLoss(200)//it sends an electrical pulse to their heart, killing them. or something. user.death(FALSE) - playsound(user, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) + playsound(user, 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) qdel(src) /obj/item/assembly/signaler/Initialize(mapload) @@ -169,9 +169,9 @@ last_receive_signal_log = istype(holder, /obj/item/transfer_valve) ? signal.logging_data : null pulse() - audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*", null, hearing_range) + audible_message(span_infoplain("[icon2html(src, hearers(src))] *beep* *beep* *beep*"), null, hearing_range) for(var/mob/hearing_mob in get_hearers_in_view(hearing_range, src)) - hearing_mob.playsound_local(get_turf(src), 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) + hearing_mob.playsound_local(get_turf(src), 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) return TRUE /obj/item/assembly/signaler/proc/set_frequency(new_frequency) diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index fad912d42229a..09cbfd9b0dc59 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -58,7 +58,7 @@ pulse() audible_message(span_infoplain("[icon2html(src, hearers(src))] *beep* *beep* *beep*"), null, hearing_range) for(var/mob/hearing_mob in get_hearers_in_view(hearing_range, src)) - hearing_mob.playsound_local(get_turf(src), 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) + hearing_mob.playsound_local(get_turf(src), 'sound/machines/beep/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE) if(loop) timing = TRUE update_appearance() diff --git a/code/modules/asset_cache/transports/asset_transport.dm b/code/modules/asset_cache/transports/asset_transport.dm index 3dbcc301843cc..62ca18fe82a19 100644 --- a/code/modules/asset_cache/transports/asset_transport.dm +++ b/code/modules/asset_cache/transports/asset_transport.dm @@ -125,7 +125,7 @@ if (unreceived.len) if (unreceived.len >= ASSET_CACHE_TELL_CLIENT_AMOUNT) - to_chat(client, "Sending Resources...") + to_chat(client, span_infoplain("Sending Resources...")) for (var/asset_name in unreceived) var/new_asset_name = asset_name diff --git a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm index 737018b24ad7d..5f073d17fc1e2 100644 --- a/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm +++ b/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm @@ -123,9 +123,9 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm) )) GLOB.air_alarms += src - update_appearance() find_and_hang_on_wall() register_context() + check_enviroment() /obj/machinery/airalarm/process() if(!COOLDOWN_FINISHED(src, warning_cooldown)) @@ -568,34 +568,34 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm) danger_level = max(danger_level, tlv_collection["pressure"].check_value(pressure)) danger_level = max(danger_level, tlv_collection["temperature"].check_value(temp)) if(total_moles) - for(var/gas_path in environment.gases) - var/moles = environment.gases[gas_path][MOLES] + for(var/gas_path in GLOB.meta_gas_info) + var/moles = environment.gases[gas_path] ? environment.gases[gas_path][MOLES] : 0 danger_level = max(danger_level, tlv_collection[gas_path].check_value(pressure * moles / total_moles)) if(danger_level) alarm_manager.send_alarm(ALARM_ATMOS) - if(pressure <= WARNING_LOW_PRESSURE && temp <= BODYTEMP_COLD_WARNING_1+10) + if(pressure <= tlv_collection["pressure"].hazard_min && temp <= tlv_collection["temperature"].hazard_min) warning_message = "Danger! Low pressure and temperature detected." return - if(pressure <= WARNING_LOW_PRESSURE && temp >= BODYTEMP_HEAT_WARNING_1-27) + if(pressure <= tlv_collection["pressure"].hazard_min && temp >= tlv_collection["temperature"].hazard_max) warning_message = "Danger! Low pressure and high temperature detected." return - if(pressure >= WARNING_HIGH_PRESSURE && temp >= BODYTEMP_HEAT_WARNING_1-27) + if(pressure >= tlv_collection["pressure"].hazard_max && temp >= tlv_collection["temperature"].hazard_max) warning_message = "Danger! High pressure and temperature detected." return - if(pressure >= WARNING_HIGH_PRESSURE && temp <= BODYTEMP_COLD_WARNING_1+10) + if(pressure >= tlv_collection["pressure"].hazard_max && temp <= tlv_collection["temperature"].hazard_min) warning_message = "Danger! High pressure and low temperature detected." return - if(pressure <= WARNING_LOW_PRESSURE) + if(pressure <= tlv_collection["pressure"].hazard_min) warning_message = "Danger! Low pressure detected." return - if(pressure >= WARNING_HIGH_PRESSURE) + if(pressure >= tlv_collection["pressure"].hazard_max) warning_message = "Danger! High pressure detected." return - if(temp <= BODYTEMP_COLD_WARNING_1+10) + if(temp <= tlv_collection["temperature"].hazard_min) warning_message = "Danger! Low temperature detected." return - if(temp >= BODYTEMP_HEAT_WARNING_1-27) + if(temp >= tlv_collection["temperature"].hazard_max) warning_message = "Danger! High temperature detected." return else @@ -677,6 +677,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) tlv_collection["temperature"] = new /datum/tlv/no_checks tlv_collection["pressure"] = new /datum/tlv/no_checks + for(var/gas_path in GLOB.meta_gas_info) + tlv_collection[gas_path] = new /datum/tlv/no_checks + ///Used for air alarm link helper, which connects air alarm to a sensor with corresponding chamber_id /obj/machinery/airalarm/proc/setup_chamber_link() var/obj/machinery/air_sensor/sensor = GLOB.objects_by_id_tag[GLOB.map_loaded_sensors[air_sensor_chamber_id]] diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm index c6e1d6183ef79..27cb78bb26ce7 100644 --- a/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm @@ -493,7 +493,7 @@ zaps_aspect = OVER_9000_ZAP_ICON_STATE flags |= (ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE) - playsound(loc, 'sound/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) + playsound(loc, 'sound/items/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) for(var/i in 1 to zap_number) supermatter_zap(src, 5, power_level * 2.4e5, flags, zap_cutoff = cutoff, power_level = src.power_level * 1000, zap_icon = zaps_aspect) diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm index e3ef70489ac85..bc27ab0a42e36 100644 --- a/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_procs.dm @@ -301,13 +301,13 @@ /obj/machinery/atmospherics/components/unary/hypertorus/core/proc/alarm() switch(get_status()) if(HYPERTORUS_MELTING) - playsound(src, 'sound/misc/bloblarm.ogg', 100, FALSE, 40, 30, falloff_distance = 10) + playsound(src, 'sound/announcer/alarm/bloblarm.ogg', 100, FALSE, 40, 30, falloff_distance = 10) if(HYPERTORUS_EMERGENCY) - playsound(src, 'sound/machines/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) + playsound(src, 'sound/machines/engine_alert/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) if(HYPERTORUS_DANGER) - playsound(src, 'sound/machines/engine_alert2.ogg', 100, FALSE, 30, 30, falloff_distance = 10) + playsound(src, 'sound/machines/engine_alert/engine_alert2.ogg', 100, FALSE, 30, 30, falloff_distance = 10) if(HYPERTORUS_WARNING) - playsound(src, 'sound/machines/terminal_alert.ogg', 75) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 75) /** * Getter for the machine integrity @@ -413,7 +413,7 @@ var/critical = selected_fuel.meltdown_flags & HYPERTORUS_FLAG_CRITICAL_MELTDOWN if(critical) priority_announce("WARNING - The explosion will likely cover a big part of the station and the coming EMP will wipe out most of the electronics. \ - Get as far away as possible from the reactor or find a way to shut it down.", "Alert", 'sound/misc/notice3.ogg') + Get as far away as possible from the reactor or find a way to shut it down.", "Alert", 'sound/announcer/notice/notice3.ogg') var/speaking = "[emergency_alert] The Hypertorus fusion reactor has reached critical integrity failure. Emergency magnetic dampeners online." radio.talk_into(src, speaking, common_channel, language = get_selected_language()) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 8a165830cec07..5ce16365a5fda 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -230,7 +230,7 @@ fan_overclocked = !fan_overclocked if(from_break) - playsound(src, 'sound/machines/fan_break.ogg', 100) + playsound(src, 'sound/machines/fan/fan_break.ogg', 100) fan_overclocked = FALSE if(fan_overclocked) @@ -360,7 +360,7 @@ update_appearance() pipe_vision_img = image(src, loc, dir = dir) SET_PLANE_EXPLICIT(pipe_vision_img, ABOVE_HUD_PLANE, src) - playsound(loc, 'sound/weapons/bladeslice.ogg', 100, TRUE) + playsound(loc, 'sound/items/weapons/bladeslice.ogg', 100, TRUE) /obj/machinery/atmospherics/components/unary/vent_pump/high_volume name = "large air vent" diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index 22ee2f6b414a7..cc94f04623b71 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -322,7 +322,7 @@ update_appearance() pipe_vision_img = image(src, loc, dir = dir) SET_PLANE_EXPLICIT(pipe_vision_img, ABOVE_HUD_PLANE, src) - playsound(loc, 'sound/weapons/bladeslice.ogg', 100, TRUE) + playsound(loc, 'sound/items/weapons/bladeslice.ogg', 100, TRUE) /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2 diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index e6c60140f3a70..467ad0e381d1e 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -76,7 +76,7 @@ . = ..() if(!allowed(user)) to_chat(user, span_alert("Error - Unauthorized User.")) - playsound(src, 'sound/misc/compiler-failure.ogg', 50, TRUE) + playsound(src, 'sound/machines/compiler/compiler-failure.ogg', 50, TRUE) return /obj/machinery/portable_atmospherics/canister/add_context(atom/source, list/context, obj/item/held_item, mob/user) diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index edd8e30eaf8ce..cb1a23f82f15a 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -32,8 +32,8 @@ var/suppress_reactions = FALSE /// Is there a hypernoblium crystal inserted into this var/nob_crystal_inserted = FALSE - var/insert_sound = 'sound/effects/tank_insert_clunky.ogg' - var/remove_sound = 'sound/effects/tank_remove_thunk.ogg' + var/insert_sound = 'sound/effects/compressed_air/tank_insert_clunky.ogg' + var/remove_sound = 'sound/effects/compressed_air/tank_remove_thunk.ogg' var/sound_vol = 50 /datum/armor/machinery_portable_atmospherics diff --git a/code/modules/autowiki/pages/fishing.dm b/code/modules/autowiki/pages/fishing.dm index b71b8dab33026..eab26bd6c6c03 100644 --- a/code/modules/autowiki/pages/fishing.dm +++ b/code/modules/autowiki/pages/fishing.dm @@ -46,19 +46,25 @@ if(length(extra_info)) description += "
      [extra_info.Join(extra_info,"
      ")]" - output += "\n\n" + include_template("Autowiki/FishEntry", list( + var/list/output_list = list( "name" = full_capitalize(escape_value(fish::name)), "icon" = filename, "description" = description, "size_weight" = "[fish::average_size]cm / [fish::average_weight]g", "fluid" = escape_value(fish::required_fluid_type), - "temperature" = "[fish::required_temperature_min] - [fish::required_temperature_max] K", + "temperature" = "Doesn't matter", "stable_population" = fish::stable_population, "traits" = generate_traits(properties[FISH_PROPERTIES_TRAITS]), "favorite_baits" = generate_baits(properties[FISH_PROPERTIES_FAV_BAIT]), "disliked_baits" = generate_baits(properties[FISH_PROPERTIES_BAD_BAIT], TRUE), "beauty_score" = properties[FISH_PROPERTIES_BEAUTY_SCORE], - )) + ) + var/not_infinity = fish::required_temperature_max < INFINITY + if(fish::required_temperature_min > 0 || not_infinity) + var/max_temp = not_infinity ? fish::required_temperature_max : "∞" + output_list["temperature"] = "[fish::required_temperature_min] - [max_temp] K" + + output += "\n\n" + include_template("Autowiki/FishEntry", output_list) return output diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 5e3cf1bb21eac..00d23b592c00e 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -22,7 +22,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /datum/gateway_destination/proc/get_available_reason() . = "Unreachable" if(world.time - SSticker.round_start_time < wait) - playsound(src, 'sound/effects/gateway_calibrating.ogg', 80, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/gateway/gateway_calibrating.ogg', 80, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) . = "Connection desynchronized. Recalibration in progress." /* Check if the movable is allowed to arrive at this destination (exile implants mostly) */ @@ -135,7 +135,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /obj/effect/gateway_portal_bumper/Bumped(atom/movable/AM) if(get_dir(src,AM) == gateway?.dir) - playsound(src, 'sound/effects/gateway_travel.ogg', 70, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/gateway/gateway_travel.ogg', 70, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) gateway.Transfer(AM) /obj/effect/gateway_portal_bumper/Destroy(force) @@ -200,7 +200,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /obj/machinery/gateway/proc/deactivate() var/datum/gateway_destination/dest = target target = null - playsound(src, 'sound/effects/gateway_close.ogg', 140, TRUE, TRUE, SOUND_RANGE) + playsound(src, 'sound/machines/gateway/gateway_close.ogg', 140, TRUE, TRUE, SOUND_RANGE) dest.deactivate(src) QDEL_NULL(portal) update_use_power(IDLE_POWER_USE) @@ -263,7 +263,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) target.activate(destination) portal_visuals.setup_visuals(target) transport_active = TRUE - playsound(src, 'sound/effects/gateway_open.ogg', 140, TRUE, TRUE, SOUND_RANGE) + playsound(src, 'sound/machines/gateway/gateway_open.ogg', 140, TRUE, TRUE, SOUND_RANGE) generate_bumper() update_use_power(ACTIVE_POWER_USE) update_appearance() @@ -306,7 +306,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) if(calibrated) to_chat(user, span_alert("The gate is already calibrated, there is no work for you to do here.")) else - playsound(src, 'sound/effects/gateway_calibrated.ogg', 80, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/gateway/gateway_calibrated.ogg', 80, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) to_chat(user, "[span_boldnotice("Recalibration successful!")]: \black This gate's systems have been fine tuned. Travel to this gate will now be on target.") calibrated = TRUE return TRUE diff --git a/code/modules/awaymissions/mission_code/Beach.dm b/code/modules/awaymissions/mission_code/Beach.dm index 8e05cfe4a5eb1..7f0e27c090ae2 100644 --- a/code/modules/awaymissions/mission_code/Beach.dm +++ b/code/modules/awaymissions/mission_code/Beach.dm @@ -6,7 +6,7 @@ base_lighting_color = "#FFFFCC" requires_power = FALSE has_gravity = STANDARD_GRAVITY - ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg','sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg') + ambientsounds = list('sound/ambience/beach/shore.ogg', 'sound/ambience/beach/seag1.ogg','sound/ambience/beach/seag2.ogg','sound/ambience/beach/seag3.ogg','sound/ambience/misc/ambiodd.ogg','sound/ambience/medical/ambinice.ogg') /obj/item/paper/fluff/old_pirate_note name = "rum-stained letter" diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm index cf6a6a3c9c7a4..2525e679cad64 100644 --- a/code/modules/awaymissions/mission_code/Cabin.dm +++ b/code/modules/awaymissions/mission_code/Cabin.dm @@ -90,7 +90,7 @@ name = "lumbermill saw" desc = "Faster then the cartoons!" obj_flags = CAN_BE_HIT | EMAGGED - item_recycle_sound = 'sound/weapons/chainsawhit.ogg' + item_recycle_sound = 'sound/items/weapons/chainsawhit.ogg' /obj/machinery/recycler/lumbermill/recycle_item(obj/item/grown/log/L) if(!istype(L)) diff --git a/code/modules/awaymissions/mission_code/centcomAway.dm b/code/modules/awaymissions/mission_code/centcomAway.dm index 3b0d3e8a810cb..1fc54d7ef9679 100644 --- a/code/modules/awaymissions/mission_code/centcomAway.dm +++ b/code/modules/awaymissions/mission_code/centcomAway.dm @@ -7,32 +7,32 @@ /area/awaymission/centcom_away/general name = "XCC-P5831" - ambientsounds = list('sound/ambience/ambigen2.ogg') + ambientsounds = list('sound/ambience/general/ambigen2.ogg') /area/awaymission/centcom_away/maint name = "XCC-P5831 Maintenance" icon_state = "away1" - ambientsounds = list('sound/ambience/ambisin1.ogg') + ambientsounds = list('sound/ambience/engineering/ambisin1.ogg') /area/awaymission/centcom_away/thunderdome name = "XCC-P5831 Thunderdome" icon_state = "away2" - ambientsounds = list('sound/ambience/ambisin2.ogg') + ambientsounds = list('sound/ambience/engineering/ambisin2.ogg') /area/awaymission/centcom_away/cafe name = "XCC-P5831 Kitchen Arena" icon_state = "away3" - ambientsounds = list('sound/ambience/ambisin3.ogg') + ambientsounds = list('sound/ambience/engineering/ambisin3.ogg') /area/awaymission/centcom_away/courtroom name = "XCC-P5831 Courtroom" icon_state = "away4" - ambientsounds = list('sound/ambience/ambisin4.ogg') + ambientsounds = list('sound/ambience/engineering/ambisin4.ogg') /area/awaymission/centcom_away/hangar name = "XCC-P5831 Hangars" icon_state = "away4" - ambientsounds = list('sound/ambience/ambigen4.ogg') + ambientsounds = list('sound/ambience/general/ambigen4.ogg') //centcomAway items diff --git a/code/modules/awaymissions/mission_code/moonoutpost19.dm b/code/modules/awaymissions/mission_code/moonoutpost19.dm index 17385bc70bc40..446b9916a4577 100644 --- a/code/modules/awaymissions/mission_code/moonoutpost19.dm +++ b/code/modules/awaymissions/mission_code/moonoutpost19.dm @@ -34,7 +34,7 @@ power_environ = FALSE power_equip = FALSE power_light = FALSE - ambientsounds = list('sound/ambience/ambimine.ogg') + ambientsounds = list('sound/ambience/ruin/ambimine.ogg') icon_state = "awaycontent5" outdoors = TRUE @@ -56,7 +56,7 @@ power_environ = FALSE power_equip = FALSE power_light = FALSE - ambientsounds = list('sound/ambience/ambimine.ogg') + ambientsounds = list('sound/ambience/ruin/ambimine.ogg') icon_state = "awaycontent8" //Fluff objects/structures. diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index cc35b4a79efca..db48b1b31d1fb 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -306,13 +306,13 @@ PRESET /datum/preset_holoimage/nanotrasenprivatesecurity NAME James Reed DELAY 10 - SOUND sound/weapons/laser.ogg + SOUND sound/items/weapons/laser.ogg DELAY 10 - SOUND sound/weapons/laser.ogg + SOUND sound/items/weapons/laser.ogg DELAY 10 - SOUND sound/weapons/laser.ogg + SOUND sound/items/weapons/laser.ogg DELAY 10 - SOUND sound/weapons/laser.ogg + SOUND sound/items/weapons/laser.ogg DELAY 15 SAY Just go! I'll keep it busy, there's an outpost south of here with an elevator to the surface. NAME Jacob Ullman @@ -333,9 +333,9 @@ DELAY 10 SAY You don't need to tell me twice, I just need to swipe access and then.. DELAY 15 - SOUND sound/effects/glassbr1.ogg + SOUND sound/effects/glass/glassbr1.ogg DELAY 10 - SOUND sound/effects/glassbr2.ogg + SOUND sound/effects/glass/glassbr2.ogg DELAY 15 NAME Jacob Ullman DELAY 10 @@ -347,13 +347,13 @@ DELAY 10 SAY DON'T FUCKING RUSH ME ALRIGHT IT'S BEING CALLED. DELAY 15 - SOUND sound/effects/huuu.ogg + SOUND sound/mobs/non-humanoids/frog/huuu.ogg DELAY 5 - SOUND sound/effects/huuu.ogg + SOUND sound/mobs/non-humanoids/frog/huuu.ogg DELAY 15 SOUND sound/effects/woodhit.ogg DELAY 2 - SOUND sound/effects/bodyfall3.ogg + SOUND sound/effects/bodyfall/bodyfall3.ogg DELAY 5 SOUND sound/effects/meow1.ogg DELAY 15 diff --git a/code/modules/basketball/controller.dm b/code/modules/basketball/controller.dm index 53e89d182a3e7..4373c8d784a8d 100644 --- a/code/modules/basketball/controller.dm +++ b/code/modules/basketball/controller.dm @@ -194,7 +194,7 @@ GLOBAL_VAR(basketball_game) player_client.prefs.safe_transfer_prefs_to(baller, is_antag = TRUE) baller.key = player_key - SEND_SOUND(baller, sound('sound/misc/whistle.ogg', volume=30)) + SEND_SOUND(baller, sound('sound/items/whistle/whistle.ogg', volume=30)) if(is_player_referee) to_chat(baller, span_notice("You are a referee. Make sure the teams play fair and use your whistle to call fouls appropriately.")) else diff --git a/code/modules/basketball/hoop.dm b/code/modules/basketball/hoop.dm index 72669df017d90..edc106c155e63 100644 --- a/code/modules/basketball/hoop.dm +++ b/code/modules/basketball/hoop.dm @@ -38,7 +38,7 @@ /obj/structure/hoop/proc/score(obj/item/toy/basketball/ball, mob/living/baller, points) // we still play buzzer sound regardless of the object - playsound(src, 'sound/machines/scanbuzz.ogg', 100, FALSE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 100, FALSE) if(!istype(ball)) return @@ -130,7 +130,7 @@ loser.forceMove(loc) loser.Paralyze(100) visible_message(span_danger("[baller] dunks [loser] into \the [src]!")) - playsound(src, 'sound/machines/scanbuzz.ogg', 100, FALSE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 100, FALSE) baller.adjustStaminaLoss(STAMINA_COST_DUNKING_MOB) baller.stop_pulling() diff --git a/code/modules/basketball/referee.dm b/code/modules/basketball/referee.dm index 666ff628682b8..2c0a28d7331e1 100644 --- a/code/modules/basketball/referee.dm +++ b/code/modules/basketball/referee.dm @@ -34,7 +34,7 @@ /datum/action/innate/timeout/do_ability(mob/living/caller, mob/living/carbon/human/target) caller.say("FOUL BY [target]!", forced = "whistle") - playsound(caller, 'sound/misc/whistle.ogg', 30, FALSE, 4) + playsound(caller, 'sound/items/whistle/whistle.ogg', 30, FALSE, 4) new /obj/effect/timestop(get_turf(target), 0, 5 SECONDS, list(caller), TRUE, TRUE) diff --git a/code/modules/bitrunning/antagonists/netguardian.dm b/code/modules/bitrunning/antagonists/netguardian.dm index f0ea7822985f4..0f546f87b1dc9 100644 --- a/code/modules/bitrunning/antagonists/netguardian.dm +++ b/code/modules/bitrunning/antagonists/netguardian.dm @@ -22,7 +22,7 @@ attack_verb_continuous = "drills" attack_verb_simple = "drills" - attack_sound = 'sound/weapons/drill.ogg' + attack_sound = 'sound/items/weapons/drill.ogg' attack_vis_effect = ATTACK_EFFECT_MECHFIRE verb_say = "states" verb_ask = "queries" @@ -58,7 +58,7 @@ ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, INNATE_TRAIT) AddComponent(/datum/component/ranged_attacks, \ casing_type = /obj/item/ammo_casing/c46x30mm, \ - projectile_sound = 'sound/weapons/gun/smg/shot.ogg', \ + projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg', \ burst_shots = 6 \ ) @@ -71,7 +71,7 @@ /mob/living/basic/netguardian/death(gibbed) do_sparks(number = 3, cardinal_only = TRUE, source = src) - playsound(src, 'sound/mecha/weapdestr.ogg', 100) + playsound(src, 'sound/vehicles/mecha/weapdestr.ogg', 100) return ..() /mob/living/basic/netguardian/update_overlays() @@ -91,7 +91,7 @@ /datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/netguardian/Activate(atom/target_atom) var/mob/living/player = owner - playsound(player, 'sound/mecha/skyfall_power_up.ogg', 120) + playsound(player, 'sound/vehicles/mecha/skyfall_power_up.ogg', 120) player.say("target acquired.", "machine") var/overlay_icon = 'icons/mob/nonhuman-player/netguardian.dmi' diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm index abf3a7809fcda..15c267cf0c8dd 100644 --- a/code/modules/bitrunning/components/avatar_connection.dm +++ b/code/modules/bitrunning/components/avatar_connection.dm @@ -69,7 +69,7 @@ for(var/skill_type in old_mind.known_skills) avatar.mind.set_experience(skill_type, old_mind.get_skill_exp(skill_type), silent = TRUE) - avatar.playsound_local(avatar, 'sound/magic/blink.ogg', 25, TRUE) + avatar.playsound_local(avatar, 'sound/effects/magic/blink.ogg', 25, TRUE) avatar.set_static_vision(2 SECONDS) avatar.set_temp_blindness(1 SECONDS) // I'm in @@ -134,7 +134,7 @@ SIGNAL_HANDLER var/mob/living/avatar = parent - avatar.playsound_local(avatar, 'sound/machines/terminal_success.ogg', 50, vary = TRUE) + avatar.playsound_local(avatar, 'sound/machines/terminal/terminal_success.ogg', 50, vary = TRUE) avatar.throw_alert( ALERT_BITRUNNER_COMPLETED, /atom/movable/screen/alert/bitrunning/qserver_domain_complete, @@ -179,7 +179,7 @@ SIGNAL_HANDLER var/mob/living/avatar = parent - avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, vary = TRUE) + avatar.playsound_local(avatar, 'sound/machines/terminal/terminal_alert.ogg', 50, vary = TRUE) var/atom/movable/screen/alert/bitrunning/alert = avatar.throw_alert( ALERT_BITRUNNER_CROWBAR, /atom/movable/screen/alert/bitrunning, @@ -229,7 +229,7 @@ SIGNAL_HANDLER var/mob/living/avatar = parent - avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, vary = TRUE) + avatar.playsound_local(avatar, 'sound/machines/terminal/terminal_alert.ogg', 50, vary = TRUE) var/atom/movable/screen/alert/bitrunning/alert = avatar.throw_alert( ALERT_BITRUNNER_SHUTDOWN, /atom/movable/screen/alert/bitrunning, @@ -244,7 +244,7 @@ SIGNAL_HANDLER var/mob/living/avatar = parent - avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, vary = TRUE) + avatar.playsound_local(avatar, 'sound/machines/terminal/terminal_alert.ogg', 50, vary = TRUE) var/atom/movable/screen/alert/bitrunning/alert = avatar.throw_alert( ALERT_BITRUNNER_BREACH, /atom/movable/screen/alert/bitrunning, diff --git a/code/modules/bitrunning/components/bitrunning_points.dm b/code/modules/bitrunning/components/bitrunning_points.dm index ea8f63f76d8df..ae20ec41fb4a3 100644 --- a/code/modules/bitrunning/components/bitrunning_points.dm +++ b/code/modules/bitrunning/components/bitrunning_points.dm @@ -28,7 +28,7 @@ /// Spawns the crate with some effects /datum/component/bitrunning_points/proc/reveal() - playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/blink.ogg', 50, TRUE) var/turf/tile = parent var/obj/structure/closet/crate/secure/bitrunning/encrypted/crate = new() diff --git a/code/modules/bitrunning/netpod/container.dm b/code/modules/bitrunning/netpod/container.dm index 6165544544511..b9c262a9fb190 100644 --- a/code/modules/bitrunning/netpod/container.dm +++ b/code/modules/bitrunning/netpod/container.dm @@ -17,7 +17,7 @@ /obj/machinery/netpod/open_machine(drop = TRUE, density_to_set = FALSE) - playsound(src, 'sound/machines/tramopen.ogg', 60, TRUE, frequency = 65000) + playsound(src, 'sound/machines/tram/tramopen.ogg', 60, TRUE, frequency = 65000) flick("[base_icon_state]_opening", src) SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_OPENED) update_use_power(IDLE_POWER_USE) @@ -29,7 +29,7 @@ if(!state_open || panel_open || !is_operational || !iscarbon(user)) return - playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) + playsound(src, 'sound/machines/tram/tramclose.ogg', 60, TRUE, frequency = 65000) flick("[base_icon_state]_closing", src) ..() @@ -52,7 +52,7 @@ span_notice("You start to pry open [src]."), span_notice("You hear loud prying on metal.") ) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) SEND_SIGNAL(src, COMSIG_BITRUNNER_CROWBAR_ALERT, pryer) @@ -67,7 +67,7 @@ /// Closes the machine without shoving in an occupant /obj/machinery/netpod/proc/shut_pod() state_open = FALSE - playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) + playsound(src, 'sound/machines/tram/tramclose.ogg', 60, TRUE, frequency = 65000) flick("[base_icon_state]_closing", src) set_density(TRUE) diff --git a/code/modules/bitrunning/netpod/utils.dm b/code/modules/bitrunning/netpod/utils.dm index c593b457e9cc1..fa271748e78ad 100644 --- a/code/modules/bitrunning/netpod/utils.dm +++ b/code/modules/bitrunning/netpod/utils.dm @@ -29,7 +29,7 @@ open_machine() return - mob_occupant.playsound_local(src, 'sound/magic/blink.ogg', 25, TRUE) + mob_occupant.playsound_local(src, 'sound/effects/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/bitrunning/objects/byteforge.dm b/code/modules/bitrunning/objects/byteforge.dm index b971cdae75ddc..cc18d2011a294 100644 --- a/code/modules/bitrunning/objects/byteforge.dm +++ b/code/modules/bitrunning/objects/byteforge.dm @@ -26,7 +26,7 @@ /// Does some sparks after it's done /obj/machinery/byteforge/proc/flash(atom/movable/thing) - playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/blink.ogg', 50, TRUE) var/datum/effect_system/spark_spread/quantum/sparks = new() sparks.set_up(5, 1, loc) diff --git a/code/modules/bitrunning/objects/loot_box.dm b/code/modules/bitrunning/objects/loot_box.dm index 200e0b259fbda..e142a3e93a43c 100644 --- a/code/modules/bitrunning/objects/loot_box.dm +++ b/code/modules/bitrunning/objects/loot_box.dm @@ -47,7 +47,7 @@ atom_storage.max_total_storage = 3 atom_storage.locked = STORAGE_NOT_LOCKED icon_state = icon_closed - playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/blink.ogg', 50, TRUE) /obj/item/storage/lockbox/bitrunning/decrypted/PopulateContents() var/choice = SSbitrunning.pick_secondary_loot(source_domain) diff --git a/code/modules/bitrunning/objects/loot_crate.dm b/code/modules/bitrunning/objects/loot_crate.dm index db3f927e02153..158da4e29f0ff 100644 --- a/code/modules/bitrunning/objects/loot_crate.dm +++ b/code/modules/bitrunning/objects/loot_crate.dm @@ -37,7 +37,7 @@ rewards_multiplier = 1, ) . = ..() - playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/blink.ogg', 50, TRUE) if(isnull(completed_domain)) return diff --git a/code/modules/bitrunning/server/_parent.dm b/code/modules/bitrunning/server/_parent.dm index 541d36ad5d72c..672a79ba72cef 100644 --- a/code/modules/bitrunning/server/_parent.dm +++ b/code/modules/bitrunning/server/_parent.dm @@ -108,7 +108,7 @@ add_overlay(mutable_appearance('icons/obj/machines/bitrunning.dmi', "emag_overlay")) balloon_alert(user, "system jailbroken...") - playsound(src, 'sound/effects/sparks1.ogg', 35, vary = TRUE) + playsound(src, 'sound/effects/sparks/sparks1.ogg', 35, vary = TRUE) /obj/machinery/quantum_server/update_appearance(updates) if(isnull(generated_domain) || !is_operational) diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm index 0e6ff30cd246a..e4c523099ea54 100644 --- a/code/modules/bitrunning/server/loot.dm +++ b/code/modules/bitrunning/server/loot.dm @@ -33,7 +33,7 @@ SEND_SIGNAL(src, COMSIG_BITRUNNER_DOMAIN_COMPLETE, cache, generated_domain.reward_points) points += generated_domain.reward_points - playsound(src, 'sound/machines/terminal_success.ogg', 30, vary = TRUE) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 30, vary = TRUE) var/bonus = calculate_rewards() diff --git a/code/modules/bitrunning/server/map_handling.dm b/code/modules/bitrunning/server/map_handling.dm index f98332f7e8d8f..ba2162ef4f52e 100644 --- a/code/modules/bitrunning/server/map_handling.dm +++ b/code/modules/bitrunning/server/map_handling.dm @@ -5,12 +5,12 @@ if(!length(avatar_connection_refs)) balloon_alert_to_viewers("powering down domain...") - playsound(src, 'sound/machines/terminal_off.ogg', 40, vary = TRUE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 40, vary = TRUE) reset() return balloon_alert_to_viewers("notifying clients...") - playsound(src, 'sound/machines/terminal_alert.ogg', 100, vary = TRUE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 100, vary = TRUE) user.visible_message( span_danger("[user] begins depowering the server!"), span_notice("You start disconnecting clients..."), @@ -43,7 +43,7 @@ return FALSE is_ready = FALSE - playsound(src, 'sound/machines/terminal_processing.ogg', 30, 2) + playsound(src, 'sound/machines/terminal/terminal_processing.ogg', 30, 2) /// If any one of these fail, it reverts the entire process if(!load_domain(map_key) || !load_map_items() || !load_mob_segments()) @@ -60,7 +60,7 @@ if(prob(spawn_chance)) setup_glitch() - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 30, vary = TRUE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 30, vary = TRUE) balloon_alert_to_viewers("domain loaded.") generated_domain.start_time = world.time points -= generated_domain.cost diff --git a/code/modules/bitrunning/server/threats.dm b/code/modules/bitrunning/server/threats.dm index ea612a43efaea..145cdc9ee2bbf 100644 --- a/code/modules/bitrunning/server/threats.dm +++ b/code/modules/bitrunning/server/threats.dm @@ -121,7 +121,7 @@ antag_mind.special_role = ROLE_GLITCH antag_mind.set_assigned_role(SSjob.get_job_type(/datum/job/bitrunning_glitch)) - playsound(new_mob, 'sound/magic/ethereal_exit.ogg', 50, vary = TRUE) + playsound(new_mob, 'sound/effects/magic/ethereal_exit.ogg', 50, vary = TRUE) message_admins("[ADMIN_LOOKUPFLW(new_mob)] has been made into virtual antagonist by an event.") new_mob.log_message("was spawned as a virtual antagonist by an event.", LOG_GAME) @@ -170,7 +170,7 @@ if(temp_body) qdel(temp_body) - do_teleport(antag, get_turf(chosen_forge), forced = TRUE, asoundin = 'sound/magic/ethereal_enter.ogg', asoundout = 'sound/magic/ethereal_exit.ogg', channel = TELEPORT_CHANNEL_QUANTUM) + do_teleport(antag, get_turf(chosen_forge), forced = TRUE, asoundin = 'sound/effects/magic/ethereal_enter.ogg', asoundout = 'sound/effects/magic/ethereal_exit.ogg', channel = TELEPORT_CHANNEL_QUANTUM) /// Removes any invalid candidates from the list diff --git a/code/modules/bitrunning/server/util.dm b/code/modules/bitrunning/server/util.dm index ab267a34cd330..912f0c1f874fe 100644 --- a/code/modules/bitrunning/server/util.dm +++ b/code/modules/bitrunning/server/util.dm @@ -134,7 +134,7 @@ /// Do some magic teleport sparks /obj/machinery/quantum_server/proc/spark_at_location(obj/cache) - playsound(cache, 'sound/magic/blink.ogg', 50, vary = TRUE) + playsound(cache, 'sound/effects/magic/blink.ogg', 50, vary = TRUE) var/datum/effect_system/spark_spread/quantum/sparks = new() sparks.set_up(5, location = get_turf(cache)) sparks.start() diff --git a/code/modules/buildmode/submodes/map_export.dm b/code/modules/buildmode/submodes/map_export.dm index e0cb6629e1902..19c0d57b57f73 100644 --- a/code/modules/buildmode/submodes/map_export.dm +++ b/code/modules/buildmode/submodes/map_export.dm @@ -19,7 +19,7 @@ if (!what_to_change) return save_flag ^= options[what_to_change] - to_chat(builder, "[what_to_change] is now [save_flag & options[what_to_change] ? "ENABLED" : "DISABLED"].") + to_chat(builder, span_notice("[what_to_change] is now [save_flag & options[what_to_change] ? "ENABLED" : "DISABLED"].")) /datum/buildmode_mode/map_export/show_help(client/builder) to_chat(builder, span_purple(examine_block( diff --git a/code/modules/capture_the_flag/ctf_equipment.dm b/code/modules/capture_the_flag/ctf_equipment.dm index 0211a066555d1..3261b1d82660d 100644 --- a/code/modules/capture_the_flag/ctf_equipment.dm +++ b/code/modules/capture_the_flag/ctf_equipment.dm @@ -67,7 +67,7 @@ slot_flags = null accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun empty_indicator = TRUE - fire_sound = 'sound/weapons/gun/shotgun/shot_alt.ogg' + fire_sound = 'sound/items/weapons/gun/shotgun/shot_alt.ogg' semi_auto = TRUE internal_magazine = FALSE tac_reloads = TRUE diff --git a/code/modules/capture_the_flag/ctf_game.dm b/code/modules/capture_the_flag/ctf_game.dm index 38a7318b5548e..2f292218e79f6 100644 --- a/code/modules/capture_the_flag/ctf_game.dm +++ b/code/modules/capture_the_flag/ctf_game.dm @@ -275,7 +275,7 @@ var/obj/item/ctf_flag/flag = item if(flag.team != team) to_chat(user, span_userdanger("Take \the [initial(flag.name)] to your team's controller!")) - user.playsound_local(get_turf(user), 'sound/machines/buzz-sigh.ogg', 100, vary = FALSE, use_reverb = FALSE) + user.playsound_local(get_turf(user), 'sound/machines/buzz/buzz-sigh.ogg', 100, vary = FALSE, use_reverb = FALSE) /obj/item/ctf_flag/dropped(mob/user) ..() diff --git a/code/modules/cards/cardhand.dm b/code/modules/cards/cardhand.dm index 8fc9b4d0dc70a..2c72a552767e7 100644 --- a/code/modules/cards/cardhand.dm +++ b/code/modules/cards/cardhand.dm @@ -14,7 +14,7 @@ /obj/item/toy/cards/cardhand/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] is slitting [user.p_their()] wrists with \the [src]! It looks like [user.p_they()] [user.p_have()] a crummy hand!")) - playsound(src, 'sound/items/cardshuffle.ogg', 50, TRUE) + playsound(src, 'sound/items/cards/cardshuffle.ogg', 50, TRUE) return BRUTELOSS /obj/item/toy/cards/cardhand/examine(mob/user) diff --git a/code/modules/cards/cards.dm b/code/modules/cards/cards.dm index 5cd17a53515cc..e151af0226426 100644 --- a/code/modules/cards/cards.dm +++ b/code/modules/cards/cards.dm @@ -50,7 +50,7 @@ card.transform = Matrix card.update_appearance() - playsound(src, 'sound/items/cardshuffle.ogg', 50, TRUE) + playsound(src, 'sound/items/cards/cardshuffle.ogg', 50, TRUE) if(istype(src, /obj/item/toy/cards/cardhand)) qdel(src) @@ -125,7 +125,7 @@ cards -= card update_appearance() - playsound(src, 'sound/items/cardflip.ogg', 50, TRUE) + playsound(src, 'sound/items/cards/cardflip.ogg', 50, TRUE) return card /// Returns the cards in this deck. diff --git a/code/modules/cards/deck/deck.dm b/code/modules/cards/deck/deck.dm index ccce356024956..69aa85ed8f2fe 100644 --- a/code/modules/cards/deck/deck.dm +++ b/code/modules/cards/deck/deck.dm @@ -32,7 +32,7 @@ /obj/item/toy/cards/deck/Initialize(mapload) . = ..() AddElement(/datum/element/drag_pickup) - AddComponent(/datum/component/two_handed, attacksound='sound/items/cardflip.ogg') + AddComponent(/datum/component/two_handed, attacksound='sound/items/cards/cardflip.ogg') register_context() if(!is_standard_deck) @@ -50,7 +50,7 @@ /obj/item/toy/cards/deck/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] is slitting [user.p_their()] wrists with \the [src]! It looks like their luck ran out!")) - playsound(src, 'sound/items/cardshuffle.ogg', 50, TRUE) + playsound(src, 'sound/items/cards/cardshuffle.ogg', 50, TRUE) return BRUTELOSS /obj/item/toy/cards/deck/examine(mob/user) @@ -103,7 +103,7 @@ return COOLDOWN_START(src, shuffle_cooldown, shuffle_time) shuffle_inplace(fetch_card_atoms()) - playsound(src, 'sound/items/cardshuffle.ogg', 50, TRUE) + playsound(src, 'sound/items/cards/cardshuffle.ogg', 50, TRUE) user.balloon_alert_to_viewers("shuffles the deck") addtimer(CALLBACK(src, PROC_REF(CardgameEvent), user), 60 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE) @@ -209,7 +209,7 @@ cardgame_desc = "suspicious card game" icon_state = "deck_syndicate_full" deckstyle = "syndicate" - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' force = 5 throwforce = 10 attack_verb_continuous = list("attacks", "slices", "dices", "slashes", "cuts") diff --git a/code/modules/cards/deck/tarot.dm b/code/modules/cards/deck/tarot.dm index cf21fe789352e..a276716844b0a 100644 --- a/code/modules/cards/deck/tarot.dm +++ b/code/modules/cards/deck/tarot.dm @@ -40,7 +40,7 @@ . = ..() AddComponent( \ /datum/component/two_handed, \ - attacksound = 'sound/items/cardflip.ogg', \ + attacksound = 'sound/items/cards/cardflip.ogg', \ wield_callback = CALLBACK(src, PROC_REF(on_wield)), \ unwield_callback = CALLBACK(src, PROC_REF(on_unwield)), \ ) diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index 5f2c6e37f387a..1999c19d7ff88 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -103,7 +103,7 @@ /obj/item/toy/singlecard/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] is slitting [user.p_their()] wrists with \the [src]! It looks like [user.p_they()] [user.p_have()] an unlucky card!")) - playsound(src, 'sound/weapons/bladeslice.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/bladeslice.ogg', 50, TRUE) return BRUTELOSS /** diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 0a2dcfec4b0f0..4070301bfbe39 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -1,3 +1,6 @@ +#define EXPRESS_EMAG_DISCOUNT 0.72 +#define BEACON_PRINT_COOLDOWN 10 SECONDS + /obj/machinery/computer/cargo/express name = "express supply console" desc = "This console allows the user to purchase a package \ @@ -11,18 +14,28 @@ interface_type = "CargoExpress" var/message - var/printed_beacons = 0 //number of beacons printed. Used to determine beacon names. var/list/meme_pack_data - var/obj/item/supplypod_beacon/beacon //the linked supplypod beacon - var/area/landingzone = /area/station/cargo/storage //where we droppin boys - var/podType = /obj/structure/closet/supplypod - var/cooldown = 0 //cooldown to prevent printing supplypod beacon spam - var/locked = TRUE //is the console locked? unlock with ID - var/usingBeacon = FALSE //is the console in beacon mode? exists to let beacon know when a pod may come in + /// The linked supplypod beacon + var/obj/item/supplypod_beacon/beacon + /// Where we droppin boys + var/area/landingzone = /area/station/cargo/storage + var/pod_type = /obj/structure/closet/supplypod + /// If this console is locked and needs to be unlocked with an ID + var/locked = TRUE + /// Is the console in beacon mode? Exists to let beacon know when a pod may come in + var/using_beacon = FALSE + /// Number of beacons printed. Used to determine beacon names. + var/static/printed_beacons = 0 + /// Cooldown to prevent beacon spam + COOLDOWN_DECLARE(beacon_print_cooldown) /obj/machinery/computer/cargo/express/Initialize(mapload) . = ..() packin_up() + landingzone = GLOB.areas_by_type[landingzone] + if (isnull(landingzone)) + WARNING("[src] couldnt find a Quartermaster/Storage (aka cargobay) area on the station, and as such it has set the supplypod landingzone to the area it resides in.") + landingzone = get_area(src) /obj/machinery/computer/cargo/express/on_construction(mob/user) . = ..() @@ -33,24 +46,33 @@ beacon.unlink_console() return ..() -/obj/machinery/computer/cargo/express/attackby(obj/item/W, mob/living/user, params) - if(W.GetID() && allowed(user)) +/obj/machinery/computer/cargo/express/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if (tool.GetID() && allowed(user)) locked = !locked to_chat(user, span_notice("You [locked ? "lock" : "unlock"] the interface.")) - return - else if(istype(W, /obj/item/disk/cargo/bluespace_pod)) - podType = /obj/structure/closet/supplypod/bluespacepod//doesnt effect circuit board, making reversal possible + return ITEM_INTERACT_SUCCESS + + if (istype(tool, /obj/item/disk/cargo/bluespace_pod)) + if (pod_type == /obj/structure/closet/supplypod/bluespacepod) + balloon_alert(user, "already upgraded!") + return ITEM_INTERACT_FAILURE + if(!user.temporarilyRemoveItemFromInventory(tool)) + return ITEM_INTERACT_FAILURE + pod_type = /obj/structure/closet/supplypod/bluespacepod // doesnt affect our circuit board, making reversal possible to_chat(user, span_notice("You insert the disk into [src], allowing for advanced supply delivery vehicles.")) - qdel(W) - return TRUE - else if(istype(W, /obj/item/supplypod_beacon)) - var/obj/item/supplypod_beacon/sb = W - if (sb.express_console != src) - sb.link_console(src, user) - return TRUE - else - to_chat(user, span_alert("[src] is already linked to [sb].")) - ..() + tool.forceMove(src) + return ITEM_INTERACT_SUCCESS + + if(istype(tool, /obj/item/supplypod_beacon)) + var/obj/item/supplypod_beacon/beacon = tool + if (beacon.express_console != src) + beacon.link_console(src, user) + return ITEM_INTERACT_SUCCESS + + to_chat(user, span_alert("[src] is already linked to [beacon].")) + return ITEM_INTERACT_FAILURE + + return NONE /obj/machinery/computer/cargo/express/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) @@ -68,8 +90,11 @@ packin_up() return TRUE -/obj/machinery/computer/cargo/express/proc/packin_up() // oh shit, I'm sorry +/obj/machinery/computer/cargo/express/proc/packin_up(forced = FALSE) // oh shit, I'm sorry meme_pack_data = list() // sorry for what? + if (!forced && !SSshuttle.initialized) // Subsystem is still sleeping, add ourselves to its buffer and abort + SSshuttle.express_consoles += src + return for(var/pack in SSshuttle.supply_packs) // our quartermaster taught us not to be ashamed of our supply packs var/datum/supply_pack/P = SSshuttle.supply_packs[pack] // specially since they're such a good price and all if(!meme_pack_data[P.group]) // yeah, I see that, your quartermaster gave you good advice @@ -83,7 +108,7 @@ continue // i'd be right happy to meme_pack_data[P.group]["packs"] += list(list( "name" = P.name, - "cost" = P.get_cost(), + "cost" = P.get_cost() * get_discount(), "id" = pack, "desc" = P.desc || P.name // If there is a description, use it. Otherwise use the pack's name. )) @@ -91,26 +116,26 @@ /obj/machinery/computer/cargo/express/ui_data(mob/user) var/canBeacon = beacon && (isturf(beacon.loc) || ismob(beacon.loc))//is the beacon in a valid location? var/list/data = list() - var/datum/bank_account/D = SSeconomy.get_dep_account(cargo_account) - if(D) - data["points"] = D.account_balance + var/datum/bank_account/account = SSeconomy.get_dep_account(cargo_account) + if(account) + data["points"] = account.account_balance data["locked"] = locked//swipe an ID to unlock data["siliconUser"] = HAS_SILICON_ACCESS(user) data["beaconzone"] = beacon ? get_area(beacon) : ""//where is the beacon located? outputs in the tgui - data["usingBeacon"] = usingBeacon //is the mode set to deliver to the beacon or the cargobay? - data["canBeacon"] = !usingBeacon || canBeacon //is the mode set to beacon delivery, and is the beacon in a valid location? - data["canBuyBeacon"] = cooldown <= 0 && D.account_balance >= BEACON_COST - data["beaconError"] = usingBeacon && !canBeacon ? "(BEACON ERROR)" : ""//changes button text to include an error alert if necessary + data["using_beacon"] = using_beacon //is the mode set to deliver to the beacon or the cargobay? + data["canBeacon"] = !using_beacon || canBeacon //is the mode set to beacon delivery, and is the beacon in a valid location? + data["canBuyBeacon"] = COOLDOWN_FINISHED(src, beacon_print_cooldown) && account.account_balance >= BEACON_COST + data["beaconError"] = using_beacon && !canBeacon ? "(BEACON ERROR)" : ""//changes button text to include an error alert if necessary data["hasBeacon"] = beacon != null//is there a linked beacon? data["beaconName"] = beacon ? beacon.name : "No Beacon Found" - data["printMsg"] = cooldown > 0 ? "Print Beacon for [BEACON_COST] credits ([cooldown])" : "Print Beacon for [BEACON_COST] credits"//buttontext for printing beacons + data["printMsg"] = COOLDOWN_FINISHED(src, beacon_print_cooldown) ? "Print Beacon for [BEACON_COST] credits" : "Print Beacon for [BEACON_COST] credits ([COOLDOWN_TIMELEFT(src, beacon_print_cooldown)])" //buttontext for printing beacons data["supplies"] = list() message = "Sales are near-instantaneous - please choose carefully." if(SSshuttle.supply_blocked) message = blockade_warning - if(usingBeacon && !beacon) + if(using_beacon && !beacon) message = "BEACON ERROR: BEACON MISSING"//beacon was destroyed - else if (usingBeacon && !canBeacon) + else if (using_beacon && !canBeacon) message = "BEACON ERROR: MUST BE EXPOSED"//beacon's loc/user's loc must be a turf if(obj_flags & EMAGGED) message = "(&!#@ERROR: R0UTING_#PRO7O&OL MALF(*CT#ON. $UG%ESTE@ ACT#0N: !^/PULS3-%E)ET CIR*)ITB%ARD." @@ -119,10 +144,11 @@ packin_up() stack_trace("There was no pack data for [src]") data["supplies"] = meme_pack_data - if (cooldown > 0)//cooldown used for printing beacons - cooldown-- return data +/obj/machinery/computer/cargo/express/proc/get_discount() + return (obj_flags & EMAGGED) ? EXPRESS_EMAG_DISCOUNT : 1 + /obj/machinery/computer/cargo/express/ui_act(action, params, datum/tgui/ui) . = ..() if(.) @@ -131,23 +157,24 @@ var/mob/user = ui.user switch(action) if("LZCargo") - usingBeacon = FALSE + using_beacon = FALSE if (beacon) beacon.update_status(SP_UNREADY) //ready light on beacon will turn off if("LZBeacon") - usingBeacon = TRUE + using_beacon = TRUE if (beacon) beacon.update_status(SP_READY) //turns on the beacon's ready light if("printBeacon") - var/datum/bank_account/D = SSeconomy.get_dep_account(cargo_account) - if(D) - if(D.adjust_money(-BEACON_COST)) - cooldown = 10//a ~ten second cooldown for printing beacons to prevent spam - var/obj/item/supplypod_beacon/C = new /obj/item/supplypod_beacon(drop_location()) - C.link_console(src, user)//rather than in beacon's Initialize(), we can assign the computer to the beacon by reusing this proc) - printed_beacons++//printed_beacons starts at 0, so the first one out will be called beacon # 1 - beacon.name = "Supply Pod Beacon #[printed_beacons]" + var/datum/bank_account/account = SSeconomy.get_dep_account(cargo_account) + if(isnull(account) || !account.adjust_money(-BEACON_COST)) + return + // a ~ten second cooldown for printing beacons to prevent spam + COOLDOWN_START(src, beacon_print_cooldown, BEACON_PRINT_COOLDOWN) + var/obj/item/supplypod_beacon/new_beacon = new /obj/item/supplypod_beacon(drop_location()) + new_beacon.link_console(src, user) //rather than in beacon's Initialize(), we can assign the computer to the beacon by reusing this proc) + printed_beacons++ //printed_beacons starts at 0, so the first one out will be called beacon # 1 + beacon.name = "Supply Pod Beacon #[printed_beacons]" if("add")//Generate Supply Order first if(TIMER_COOLDOWN_RUNNING(src, COOLDOWN_EXPRESSPOD_CONSOLE)) @@ -169,60 +196,62 @@ name = user.real_name rank = "Silicon" var/reason = "" + var/datum/supply_order/order = new(pack, name, rank, ckey, reason) + var/datum/bank_account/account = SSeconomy.get_dep_account(cargo_account) + if (isnull(account) && order.pack.get_cost() > 0) + return + + if (obj_flags & EMAGGED) + landingzone = GLOB.areas_by_type[pick(GLOB.the_station_areas)] + var/list/empty_turfs - var/datum/supply_order/SO = new(pack, name, rank, ckey, reason) - var/points_to_check - var/datum/bank_account/D = SSeconomy.get_dep_account(cargo_account) - if(D) - points_to_check = D.account_balance - if(!(obj_flags & EMAGGED)) - if(SO.pack.get_cost() <= points_to_check) - var/LZ - if (istype(beacon) && usingBeacon)//prioritize beacons over landing in cargobay - LZ = get_turf(beacon) - beacon.update_status(SP_LAUNCH) - else if (!usingBeacon)//find a suitable supplypod landing zone in cargobay - landingzone = GLOB.areas_by_type[/area/station/cargo/storage] - if (!landingzone) - WARNING("[src] couldnt find a Quartermaster/Storage (aka cargobay) area on the station, and as such it has set the supplypod landingzone to the area it resides in.") - landingzone = get_area(src) - for(var/turf/open/floor/T in landingzone.get_turfs_from_all_zlevels())//uses default landing zone - if(T.is_blocked_turf()) - continue - LAZYADD(empty_turfs, T) - CHECK_TICK - if(empty_turfs?.len) - LZ = pick(empty_turfs) - if (SO.pack.get_cost() <= points_to_check && LZ)//we need to call the cost check again because of the CHECK_TICK call - TIMER_COOLDOWN_START(src, COOLDOWN_EXPRESSPOD_CONSOLE, 5 SECONDS) - D.adjust_money(-SO.pack.get_cost()) - if(pack.special_pod) - new /obj/effect/pod_landingzone(LZ, pack.special_pod, SO) - else - new /obj/effect/pod_landingzone(LZ, podType, SO) - . = TRUE - update_appearance() + if (!istype(beacon) || !using_beacon || (obj_flags & EMAGGED)) + empty_turfs = list() + for(var/turf/open/floor/open_turf in landingzone.get_turfs_from_all_zlevels()) + if(!open_turf.is_blocked_turf()) + empty_turfs += open_turf + + if (!length(empty_turfs)) + return + + if (obj_flags & EMAGGED) + if (account.account_balance < order.pack.get_cost() * -get_discount()) + return + + TIMER_COOLDOWN_START(src, COOLDOWN_EXPRESSPOD_CONSOLE, 10 SECONDS) + order.generateRequisition(get_turf(src)) + for(var/i in 1 to MAX_EMAG_ROCKETS) + if (!account.adjust_money(order.pack.get_cost() * -get_discount())) + break + + var/turf/landing_turf = pick(empty_turfs) + empty_turfs -= landing_turf + if(pack.special_pod) + new /obj/effect/pod_landingzone(landing_turf, pack.special_pod, order) + else + new /obj/effect/pod_landingzone(landing_turf, pod_type, order) + + update_appearance() + return TRUE + + var/turf/landing_turf + if (istype(beacon) && using_beacon) + landing_turf = get_turf(beacon) + beacon.update_status(SP_LAUNCH) else - if(SO.pack.get_cost() * (0.72*MAX_EMAG_ROCKETS) <= points_to_check) // bulk discount :^) - landingzone = GLOB.areas_by_type[pick(GLOB.the_station_areas)] //override default landing zone - for(var/turf/open/floor/T in landingzone.get_turfs_from_all_zlevels()) - if(T.is_blocked_turf()) - continue - LAZYADD(empty_turfs, T) - CHECK_TICK - if(empty_turfs?.len) - TIMER_COOLDOWN_START(src, COOLDOWN_EXPRESSPOD_CONSOLE, 10 SECONDS) - D.adjust_money(-(SO.pack.get_cost() * (0.72*MAX_EMAG_ROCKETS))) - - SO.generateRequisition(get_turf(src)) - for(var/i in 1 to MAX_EMAG_ROCKETS) - var/LZ = pick(empty_turfs) - LAZYREMOVE(empty_turfs, LZ) - if(pack.special_pod) - new /obj/effect/pod_landingzone(LZ, pack.special_pod, SO) - else - new /obj/effect/pod_landingzone(LZ, podType, SO) - . = TRUE - update_appearance() - CHECK_TICK + landing_turf = pick(empty_turfs) + + if (!account.adjust_money(-order.pack.get_cost() * get_discount())) + return + + TIMER_COOLDOWN_START(src, COOLDOWN_EXPRESSPOD_CONSOLE, 5 SECONDS) + if(pack.special_pod) + new /obj/effect/pod_landingzone(landing_turf, pack.special_pod, order) + else + new /obj/effect/pod_landingzone(landing_turf, pod_type, order) + + update_appearance() + return TRUE +#undef EXPRESS_EMAG_DISCOUNT +#undef BEACON_PRINT_COOLDOWN diff --git a/code/modules/cargo/markets/_market.dm b/code/modules/cargo/markets/_market.dm index 4696d3007a7ae..e2a21eb12ebad 100644 --- a/code/modules/cargo/markets/_market.dm +++ b/code/modules/cargo/markets/_market.dm @@ -68,7 +68,7 @@ uplink.current_user.adjust_money(-price, "Other: Third Party Transaction") if(ismob(user)) var/mob/m_user = user - m_user.playsound_local(get_turf(m_user), 'sound/machines/twobeep_high.ogg', 50, TRUE) + m_user.playsound_local(get_turf(m_user), 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) return TRUE return FALSE diff --git a/code/modules/cargo/markets/market_telepad.dm b/code/modules/cargo/markets/market_telepad.dm index 53a3d73ee486a..f0c8e058fc0fb 100644 --- a/code/modules/cargo/markets/market_telepad.dm +++ b/code/modules/cargo/markets/market_telepad.dm @@ -176,7 +176,7 @@ if(state_open) if(locate(/mob/living) in tool.get_all_contents()) say("Living being detected, cannot sell!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) return ITEM_INTERACT_BLOCKING if(!user.transferItemToLoc(tool, src)) balloon_alert(user, "stuck to your hands!") @@ -193,7 +193,7 @@ if(creds_value < restock_cost) say("Insufficient credits!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) return ITEM_INTERACT_BLOCKING if(istype(tool, /obj/item/holochip)) @@ -271,7 +271,7 @@ return if(locate(/mob/living) in occupant.get_all_contents()) say("Living being detected, cannot sell!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) return var/datum/bank_account/account var/datum/market/our_market = SSmarket.markets[/datum/market/blackmarket] @@ -280,17 +280,17 @@ return if(length(our_market.available_items[/datum/market_item/local_good::category]) >= LTSRBT_MAX_MARKET_ITEMS) say("Local market saturated, buy some goods first!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) return var/mob/living/living_user = user var/obj/item/card/id/card = living_user.get_idcard(TRUE) if(!(card?.registered_account)) say("No bank account to charge market fees detected!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) return if(!card.registered_account.adjust_money(-PLACE_ON_MARKET_COST, "Market: Placement Fee")) say("Insufficient credits!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) return account = card.registered_account diff --git a/code/modules/cargo/materials_market.dm b/code/modules/cargo/materials_market.dm index 797ebf5411d6f..4037a51c6916b 100644 --- a/code/modules/cargo/materials_market.dm +++ b/code/modules/cargo/materials_market.dm @@ -68,7 +68,7 @@ if(!amount) say("Not enough material. Aborting.") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, FALSE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, FALSE) return TRUE qdel(exportable) @@ -77,7 +77,7 @@ new_block.export_mat = material_to_export new_block.quantity = amount to_chat(user, span_notice("You have created a stock block worth [new_block.export_value] cr! Sell it before it becomes liquid!")) - playsound(src, 'sound/machines/synth_yes.ogg', 50, FALSE) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50, FALSE) return TRUE return ..() @@ -274,14 +274,14 @@ var/prior_sheets = current_order.pack.contains[sheet_to_buy] if(prior_sheets + quantity > SSstock_market.materials_quantity[material_bought] ) say("There aren't enough sheets on the market! Please wait for more sheets to be traded before adding more.") - playsound(usr, 'sound/machines/synth_no.ogg', 35, FALSE) + playsound(usr, 'sound/machines/synth/synth_no.ogg', 35, FALSE) return // Check if the order exceeded the purchase limit var/prior_stacks = ROUND_UP(prior_sheets / MAX_STACK_SIZE) if(prior_stacks >= MAX_STACK_LIMIT) say("There are already 10 stacks of sheets on order! Please wait for them to arrive before ordering more.") - playsound(usr, 'sound/machines/synth_no.ogg', 35, FALSE) + playsound(usr, 'sound/machines/synth/synth_no.ogg', 35, FALSE) return // Prevents you from ordering more than the available budget diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index ac37511f789a4..87a085707c0c3 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -240,13 +240,13 @@ return if(pack.goody && !self_paid) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) say("ERROR: Small crates may only be purchased by private accounts.") return var/similar_count = SSshuttle.supply.get_order_count(pack) if(similar_count == OVER_ORDER_LIMIT) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) say("ERROR: No more then [CARGO_MAX_ORDER] of any pack may be ordered at once") return diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index f1d13fc92c224..a8678fbdcef13 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -40,7 +40,7 @@ var/reversing = FALSE //If true, the pod will not send any items. Instead, after opening, it will close again (picking up items/mobs) and fly back to centcom var/list/reverse_dropoff_coords //Turf that the reverse pod will drop off its newly-acquired cargo to var/fallingSoundLength = 11 - var/fallingSound = 'sound/weapons/mortar_long_whistle.ogg'//Admin sound to play before the pod lands + var/fallingSound = 'sound/items/weapons/mortar_long_whistle.ogg'//Admin sound to play before the pod lands var/landingSound //Admin sound to play when the pod lands var/openingSound //Admin sound to play when the pod opens var/leavingSound //Admin sound to play when the pod leaves @@ -695,7 +695,7 @@ target_living.Stun(pod.delays[POD_TRANSIT]+10, ignore_canstun = TRUE)//you ain't goin nowhere, kid. if (pod.delays[POD_TRANSIT] + pod.delays[POD_FALLING] < pod.fallingSoundLength) pod.fallingSoundLength = 3 //The default falling sound is a little long, so if the landing time is shorter than the default falling sound, use a special, shorter default falling sound - pod.fallingSound = 'sound/weapons/mortar_whistle.ogg' + pod.fallingSound = 'sound/items/weapons/mortar_whistle.ogg' var/soundStartTime = pod.delays[POD_TRANSIT] - pod.fallingSoundLength + pod.delays[POD_FALLING] if (soundStartTime < 0) soundStartTime = 1 diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index 2d9a618bb414e..976298bbc0b15 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -27,17 +27,17 @@ switch(consoleStatus) if (SP_LINKED) linked = TRUE - playsound(src,'sound/machines/twobeep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/twobeep.ogg',50,FALSE) if (SP_READY) ready = TRUE if (SP_LAUNCH) launched = TRUE - playsound(src,'sound/machines/triple_beep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/triple_beep.ogg',50,FALSE) playsound(src,'sound/machines/warning-buzzer.ogg',50,FALSE) addtimer(CALLBACK(src, PROC_REF(endLaunch)), 33)//wait 3.3 seconds (time it takes for supplypod to land), then update icon if (SP_UNLINK) linked = FALSE - playsound(src,'sound/machines/synth_no.ogg',50,FALSE) + playsound(src,'sound/machines/synth/synth_no.ogg',50,FALSE) if (SP_UNREADY) ready = FALSE update_appearance() @@ -73,7 +73,9 @@ /obj/item/supplypod_beacon/wrench_act(mob/living/user, obj/item/tool) . = ..() - default_unfasten_wrench(user, tool) + if (default_unfasten_wrench(user, tool) == SUCCESSFUL_UNFASTEN) + pixel_x = 0 + pixel_y = 0 return ITEM_INTERACT_SUCCESS /obj/item/supplypod_beacon/proc/unlink_console() @@ -91,7 +93,7 @@ express_console = C//set the linked console var to the console express_console.beacon = src//out with the old in with the news update_status(SP_LINKED) - if (express_console.usingBeacon) + if (express_console.using_beacon) update_status(SP_READY) to_chat(user, span_notice("[src] linked to [C].")) diff --git a/code/modules/cargo/universal_scanner.dm b/code/modules/cargo/universal_scanner.dm index 9ce1771421e61..d86a758ef89d3 100644 --- a/code/modules/cargo/universal_scanner.dm +++ b/code/modules/cargo/universal_scanner.dm @@ -200,7 +200,7 @@ to_chat(user, span_notice(message)) if(price) - playsound(src, 'sound/machines/terminal_select.ogg', 50, vary = TRUE) + playsound(src, 'sound/machines/terminal/terminal_select.ogg', 50, vary = TRUE) if(istype(target, /obj/item/delivery)) var/obj/item/delivery/parcel = target diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 954724ed520ff..bd915cdf37a14 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -254,7 +254,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC // Check if the list is empty if(!length(players)) // Express that there are no players we can ignore in chat - to_chat(src, "There are no other players you can ignore!") + to_chat(src, span_infoplain("There are no other players you can ignore!")) // Stop running return @@ -275,7 +275,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC // Check if the selected player is on our ignore list if(selection in prefs.ignoring) // Express that the selected player is already on our ignore list in chat - to_chat(src, "You are already ignoring [selection]!") + to_chat(src, span_infoplain("You are already ignoring [selection]!")) // Stop running return @@ -287,7 +287,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC prefs.save_preferences() // Express that we've ignored the selected player in chat - to_chat(src, "You are now ignoring [selection] on the OOC channel.") + to_chat(src, span_infoplain("You are now ignoring [selection] on the OOC channel.")) // Unignore verb /client/verb/select_unignore() @@ -298,7 +298,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC // Check if we've ignored any players if(!length(prefs.ignoring)) // Express that we haven't ignored any players in chat - to_chat(src, "You haven't ignored any players!") + to_chat(src, span_infoplain("You haven't ignored any players!")) // Stop running return @@ -313,7 +313,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC // Check if the selected player is not on our ignore list if(!(selection in prefs.ignoring)) // Express that the selected player is not on our ignore list in chat - to_chat(src, "You are not ignoring [selection]!") + to_chat(src, span_infoplain("You are not ignoring [selection]!")) // Stop running return @@ -325,7 +325,7 @@ ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC prefs.save_preferences() // Express that we've unignored the selected player in chat - to_chat(src, "You are no longer ignoring [selection] on the OOC channel.") + to_chat(src, span_infoplain("You are no longer ignoring [selection] on the OOC channel.")) /client/proc/show_previous_roundend_report() set name = "Your Last Round" diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm index 5b31ae49849ce..bd023ede6308e 100644 --- a/code/modules/client/verbs/who.dm +++ b/code/modules/client/verbs/who.dm @@ -67,7 +67,7 @@ msg += "" msg += "Total Players: [length(Lines)]" - to_chat(src, "[msg]") + to_chat(src, span_infoplain("[msg]")) /client/verb/adminwho() set category = "Admin" diff --git a/code/modules/clothing/belts/polymorph_belt.dm b/code/modules/clothing/belts/polymorph_belt.dm index 9f28c33e01964..8e1bfb0aed7bd 100644 --- a/code/modules/clothing/belts/polymorph_belt.dm +++ b/code/modules/clothing/belts/polymorph_belt.dm @@ -49,7 +49,7 @@ active = TRUE update_appearance(UPDATE_ICON_STATE) update_transform_action() - playsound(src, 'sound/machines/crate_open.ogg', 50, FALSE) + playsound(src, 'sound/machines/crate/crate_open.ogg', 50, FALSE) /obj/item/polymorph_belt/attack(mob/living/target_mob, mob/living/user, params) . = ..() @@ -145,7 +145,7 @@ cast_on.transform = old_transform return . | SPELL_CANCEL_CAST cast_on.visible_message(span_warning("[cast_on]'s body rearranges itself with a horrible crunching sound!")) - playsound(cast_on, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(cast_on, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) /datum/action/cooldown/spell/shapeshift/polymorph_belt/after_cast(atom/cast_on) . = ..() diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 3bb50a5e6b176..0178ae09c5322 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -112,7 +112,7 @@ throw_speed = 4 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED /obj/item/clothing/glasses/science @@ -251,7 +251,7 @@ throw_speed = 4 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED glass_colour_type = /datum/client_colour/glass_colour/lightgreen @@ -385,7 +385,7 @@ throw_speed = 4 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED /obj/item/clothing/glasses/sunglasses/gar/orange diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index dc35ab1dbf4c0..332aba8a71990 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -204,7 +204,7 @@ throw_speed = 4 attack_verb_continuous = list("slices") attack_verb_simple = list("slice") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED /obj/item/clothing/glasses/hud/security/sunglasses/gars/giga diff --git a/code/modules/clothing/gloves/insulated.dm b/code/modules/clothing/gloves/insulated.dm index b04637d4c527b..d20ae78c6c4cc 100644 --- a/code/modules/clothing/gloves/insulated.dm +++ b/code/modules/clothing/gloves/insulated.dm @@ -13,7 +13,6 @@ custom_price = PAYCHECK_CREW * 10 custom_premium_price = PAYCHECK_COMMAND * 6 cut_type = /obj/item/clothing/gloves/cut - clothing_traits = list(TRAIT_CHUNKYFINGERS) /obj/item/clothing/gloves/color/yellow/Initialize(mapload) . = ..() @@ -22,11 +21,9 @@ /obj/item/clothing/gloves/color/yellow/apply_fantasy_bonuses(bonus) . = ..() if(bonus >= 10) - detach_clothing_traits(TRAIT_CHUNKYFINGERS) qdel(GetComponent(/datum/component/adjust_fishing_difficulty)) /obj/item/clothing/gloves/color/yellow/remove_fantasy_bonuses(bonus) - attach_clothing_traits(TRAIT_CHUNKYFINGERS) AddComponent(/datum/component/adjust_fishing_difficulty, 10) return ..() diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm index 3e18a4ed2adc0..98de3145ddc78 100644 --- a/code/modules/clothing/gloves/special.dm +++ b/code/modules/clothing/gloves/special.dm @@ -271,4 +271,4 @@ if(damage) var/body_zone = pick(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM) user.apply_damage(damage, BRUTE, body_zone, user.run_armor_check(body_zone, MELEE)) - playsound(src,'sound/weapons/bite.ogg', damage * 2, TRUE) + playsound(src,'sound/items/weapons/bite.ogg', damage * 2, TRUE) diff --git a/code/modules/clothing/head/cakehat.dm b/code/modules/clothing/head/cakehat.dm index 1fc0fa0b05b50..8a389cbf812ff 100644 --- a/code/modules/clothing/head/cakehat.dm +++ b/code/modules/clothing/head/cakehat.dm @@ -18,9 +18,9 @@ wound_bonus = 10 bare_wound_bonus = 5 dog_fashion = /datum/dog_fashion/head - hitsound = 'sound/weapons/tap.ogg' - var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat - var/hitsound_off = 'sound/weapons/tap.ogg' + hitsound = 'sound/items/weapons/tap.ogg' + var/hitsound_on = 'sound/items/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat + var/hitsound_off = 'sound/items/weapons/tap.ogg' var/force_on = 15 var/throwforce_on = 15 var/damtype_on = BURN @@ -57,23 +57,30 @@ /obj/item/clothing/head/utility/hardhat/cakehat/energycake name = "energy cake" desc = "You put the energy sword on your cake. Brilliant." - icon_state = "hardhat0_energycake" + icon_state = "hardhat1_energycake" inhand_icon_state = "hardhat0_energycake" hat_type = "energycake" - hitsound = 'sound/weapons/tap.ogg' - hitsound_on = 'sound/weapons/blade1.ogg' - hitsound_off = 'sound/weapons/tap.ogg' + hitsound = 'sound/items/weapons/tap.ogg' + hitsound_on = 'sound/items/weapons/blade1.ogg' + hitsound_off = 'sound/items/weapons/tap.ogg' damtype_on = BRUTE force_on = 18 //same as epen (but much more obvious) light_range = 3 //ditto heat = 0 +/obj/item/clothing/head/utility/hardhat/cakehat/energycake/Initialize(mapload) + . = ..() + //the compiled icon state is how it appears when it's on. + //That's how we want it to show on orbies (little virtual PDA pets). + //However we should reset their appearance on runtime. + update_appearance(UPDATE_ICON_STATE) + /obj/item/clothing/head/utility/hardhat/cakehat/energycake/turn_on(mob/living/user) - playsound(src, 'sound/weapons/saberon.ogg', 5, TRUE) + playsound(src, 'sound/items/weapons/saberon.ogg', 5, TRUE) to_chat(user, span_warning("You turn on \the [src].")) return ..() /obj/item/clothing/head/utility/hardhat/cakehat/energycake/turn_off(mob/living/user) - playsound(src, 'sound/weapons/saberoff.ogg', 5, TRUE) + playsound(src, 'sound/items/weapons/saberoff.ogg', 5, TRUE) to_chat(user, span_warning("You turn off \the [src].")) return ..() diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 1b86a8ea36ce0..6cd88c1746c7f 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -142,7 +142,7 @@ /obj/item/clothing/head/utility/hardhat/welding/adjust_visor(mob/living/user) . = ..() if(.) - playsound(src, 'sound/mecha/mechmove03.ogg', 50, TRUE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 50, TRUE) /obj/item/clothing/head/utility/hardhat/welding/worn_overlays(mutable_appearance/standing, isinhands) . = ..() diff --git a/code/modules/clothing/head/mind_monkey_helmet.dm b/code/modules/clothing/head/mind_monkey_helmet.dm index 9dcaa5c365f27..e9ff99782395f 100644 --- a/code/modules/clothing/head/mind_monkey_helmet.dm +++ b/code/modules/clothing/head/mind_monkey_helmet.dm @@ -42,7 +42,7 @@ var/mob/living/something = user to_chat(something, span_boldnotice("You feel a stabbing pain in the back of your head for a moment.")) something.apply_damage(5,BRUTE,BODY_ZONE_HEAD,FALSE,FALSE,FALSE) //notably: no damage resist (it's in your helmet), no damage spread (it's in your helmet) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return if(!(GLOB.ghost_role_flags & GHOSTROLE_STATION_SENTIENCE)) say("ERROR: Central Command has temporarily outlawed monkey sentience helmets in this sector. NEAREST LAWFUL SECTOR: 2.537 million light years away.") @@ -64,7 +64,7 @@ switch(rage_chance) if(-7 to 0) user.visible_message(span_notice("[src] falls silent and drops on the floor. Try again later?")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) particle_path = null if(7 to 13) user.visible_message(span_notice("[src] sparkles momentarily, then falls silent and drops on the floor. Maybe you should try again later?")) @@ -80,7 +80,7 @@ if(21 to INFINITY) user.visible_message(span_notice("[src] buzzes and smokes heavily, then falls silent and drops on the floor. This is clearly a bad idea.")) do_sparks(6, FALSE, src) - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) particle_path = /particles/smoke/steam rage_chance += 7 @@ -117,7 +117,7 @@ malfunction(magnification) //either used up correctly or taken off before polling finished (punish this by destroying the helmet) UnregisterSignal(magnification, COMSIG_SPECIES_LOSS) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) playsound(src, SFX_SPARKS, 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) visible_message(span_warning("[src] fizzles and breaks apart!")) magnification = null diff --git a/code/modules/clothing/head/tophat.dm b/code/modules/clothing/head/tophat.dm index 612f02ce692e9..e204673743e58 100644 --- a/code/modules/clothing/head/tophat.dm +++ b/code/modules/clothing/head/tophat.dm @@ -21,7 +21,7 @@ return COOLDOWN_START(src, rabbit_cooldown, RABBIT_CD_TIME) - playsound(get_turf(src), 'sound/weapons/emitter.ogg', 70) + playsound(get_turf(src), 'sound/items/weapons/emitter.ogg', 70) do_smoke(amount = DIAMOND_AREA(1), holder = src, location = src, smoke_type=/obj/effect/particle_effect/fluid/smoke/quick) if(prob(10)) diff --git a/code/modules/clothing/masks/animal_masks.dm b/code/modules/clothing/masks/animal_masks.dm index 7b29519e12ba5..5a92c8faf071c 100644 --- a/code/modules/clothing/masks/animal_masks.dm +++ b/code/modules/clothing/masks/animal_masks.dm @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( icon_state = "pig" inhand_icon_state = null animal_sounds = list("Oink!","Squeeeeeeee!","Oink Oink!") - curse_spawn_sound = 'sound/magic/pighead_curse.ogg' + curse_spawn_sound = 'sound/effects/magic/pighead_curse.ogg' flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/mask/animal/pig/cursed @@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( icon_state = "cowmask" inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT - curse_spawn_sound = 'sound/magic/cowhead_curse.ogg' + curse_spawn_sound = 'sound/effects/magic/cowhead_curse.ogg' animal_sounds = list("Moooooooo!","Moo!","Moooo!") /obj/item/clothing/mask/animal/cowmask/cursed @@ -184,7 +184,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( inhand_icon_state = null animal_sounds = list("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS|HIDESNOUT - curse_spawn_sound = 'sound/magic/horsehead_curse.ogg' + curse_spawn_sound = 'sound/effects/magic/horsehead_curse.ogg' /obj/item/clothing/mask/animal/horsehead/cursed cursed = TRUE diff --git a/code/modules/clothing/masks/gas_filter.dm b/code/modules/clothing/masks/gas_filter.dm index 08ae650c24726..e29f80a5ea089 100644 --- a/code/modules/clothing/masks/gas_filter.dm +++ b/code/modules/clothing/masks/gas_filter.dm @@ -53,7 +53,7 @@ /obj/item/gas_filter/examine(mob/user) . = ..() - . += "[src] is at [filter_status]% durability." + . += span_notice("[src] is at [filter_status]% durability.") /** * called by the gas mask where the filter is installed, lower the filter_status depending on the breath gas composition and by the strength of the filter diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 47ecf9a11f5a8..6d92b80ebfd47 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -242,7 +242,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( /obj/item/clothing/mask/gas/welding/adjust_visor(mob/living/user) . = ..() if(.) - playsound(src, 'sound/mecha/mechmove03.ogg', 50, TRUE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 50, TRUE) if(!fishing_modifier) return if(up) diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index c5e538d44468e..aee1ac17b1b3e 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -58,7 +58,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( tint = 0 has_fov = FALSE fishing_modifier = 0 - unique_death = 'sound/voice/sec_death.ogg' + unique_death = 'sound/items/sec_hailer/sec_death.ogg' COOLDOWN_DECLARE(hailer_cooldown) ///Decides the phrases available for use; defines used are the last index of a category of available phrases var/aggressiveness = AGGR_BAD_COP @@ -210,7 +210,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( return COOLDOWN_START(src, whistle_cooldown, 10 SECONDS) user.audible_message("HALT!") - playsound(src, 'sound/misc/whistle.ogg', 50, FALSE, 4) + playsound(src, 'sound/items/whistle/whistle.ogg', 50, FALSE, 4) /datum/action/item_action/halt name = "HALT!" diff --git a/code/modules/clothing/masks/muzzle.dm b/code/modules/clothing/masks/muzzle.dm index 6154e7762cb52..05bdd086efe86 100644 --- a/code/modules/clothing/masks/muzzle.dm +++ b/code/modules/clothing/masks/muzzle.dm @@ -62,7 +62,7 @@ . = ..() if(user.get_item_by_slot(ITEM_SLOT_MASK) != src) return - playsound(user, 'sound/items/duct_tape_rip.ogg', 50, TRUE) + playsound(user, 'sound/items/duct_tape/duct_tape_rip.ogg', 50, TRUE) if(harmful_strip) user.apply_damage(stripping_damage, BRUTE, BODY_ZONE_HEAD) INVOKE_ASYNC(user, TYPE_PROC_REF(/mob, emote), "scream") diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 61298e970cbf9..88b388b47264d 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -44,7 +44,7 @@ user.visible_message(span_suicide("[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?")) for(var/i in 1 to 3) sleep(0.3 SECONDS) - playsound(user, 'sound/weapons/genhit2.ogg', 50, TRUE) + playsound(user, 'sound/items/weapons/genhit2.ogg', 50, TRUE) return BRUTELOSS /obj/item/clothing/shoes/worn_overlays(mutable_appearance/standing, isinhands = FALSE) diff --git a/code/modules/clothing/shoes/costume.dm b/code/modules/clothing/shoes/costume.dm index 4f2287f40d278..3c66c0ac0c6b5 100644 --- a/code/modules/clothing/shoes/costume.dm +++ b/code/modules/clothing/shoes/costume.dm @@ -44,7 +44,7 @@ /obj/item/clothing/shoes/bronze/Initialize(mapload) . = ..() - AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/effects/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) AddComponent(/datum/component/adjust_fishing_difficulty, 4) /obj/item/clothing/shoes/cookflops diff --git a/code/modules/clothing/shoes/wheelys.dm b/code/modules/clothing/shoes/wheelys.dm index 9b67f14d14415..9f5bd1631f9c1 100644 --- a/code/modules/clothing/shoes/wheelys.dm +++ b/code/modules/clothing/shoes/wheelys.dm @@ -51,7 +51,7 @@ worn_icon_state = "[initial(worn_icon_state)]-on" else worn_icon_state = "[initial(worn_icon_state)]" - playsound(src, 'sound/weapons/tap.ogg', 10, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 10, TRUE) update_appearance() /obj/item/clothing/shoes/wheelys/Destroy() diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 8faaf58b53ed4..88767b84b66d5 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -108,7 +108,7 @@ to_chat(user, span_notice("Your helmet's torch can't pass through your welding visor!")) set_light_on(FALSE) helmet_on = FALSE - playsound(src, 'sound/mecha/mechmove03.ogg', 50, TRUE) //Visors don't just come from nothing + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 50, TRUE) //Visors don't just come from nothing update_appearance() /obj/item/clothing/head/helmet/space/plasmaman/update_icon_state() diff --git a/code/modules/clothing/spacesuits/softsuit.dm b/code/modules/clothing/spacesuits/softsuit.dm index 0b644286063ec..3bbb6d0bd0f90 100644 --- a/code/modules/clothing/spacesuits/softsuit.dm +++ b/code/modules/clothing/spacesuits/softsuit.dm @@ -95,5 +95,5 @@ name = "torn [src]." desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit." torn = TRUE - playsound(loc, 'sound/weapons/slashmiss.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/slashmiss.ogg', 50, TRUE) playsound(loc, 'sound/effects/refill.ogg', 50, TRUE) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index efa23e1a06862..23e4d89ff2dbb 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -337,7 +337,7 @@ return ..() /obj/item/clothing/suit/armor/balloon_vest/proc/pop() - playsound(src, 'sound/effects/cartoon_pop.ogg', 50, vary = TRUE) + playsound(src, 'sound/effects/cartoon_sfx/cartoon_pop.ogg', 50, vary = TRUE) qdel(src) diff --git a/code/modules/clothing/suits/jacket.dm b/code/modules/clothing/suits/jacket.dm index 9004f773e35ba..176661dbb57e1 100644 --- a/code/modules/clothing/suits/jacket.dm +++ b/code/modules/clothing/suits/jacket.dm @@ -62,6 +62,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/rifle/boltaction/pipegun, + /obj/item/gun/energy/laser/musket, /obj/item/radio, ) @@ -83,6 +84,7 @@ /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/c38/detective, /obj/item/gun/ballistic/rifle/boltaction/pipegun, + /obj/item/gun/energy/laser/musket, /obj/item/radio, ) @@ -129,6 +131,7 @@ /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/c38/detective, /obj/item/gun/ballistic/rifle/boltaction/pipegun, + /obj/item/gun/energy/laser/musket, /obj/item/radio, ) @@ -163,6 +166,7 @@ /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/c38/detective, /obj/item/gun/ballistic/rifle/boltaction/pipegun, + /obj/item/gun/energy/laser/musket, /obj/item/radio, ) diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index c1889cc77383d..eaa997607f09e 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -126,7 +126,7 @@ /obj/item/clothing/suit/armor/reactive/teleport/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) owner.visible_message(span_danger("The reactive teleport system flings [owner] clear of [attack_text]!")) - playsound(get_turf(owner),'sound/magic/blink.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/blink.ogg', 100, TRUE) do_teleport(owner, get_turf(owner), tele_range, no_effects = TRUE, channel = TELEPORT_CHANNEL_BLUESPACE) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return TRUE @@ -134,8 +134,8 @@ /obj/item/clothing/suit/armor/reactive/teleport/emp_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) owner.visible_message(span_danger("The reactive teleport system flings itself clear of [attack_text], leaving someone behind in the process!")) owner.dropItemToGround(src, TRUE, TRUE) - playsound(get_turf(owner),'sound/machines/buzz-sigh.ogg', 50, TRUE) - playsound(get_turf(owner),'sound/magic/blink.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) + playsound(get_turf(owner),'sound/effects/magic/blink.ogg', 100, TRUE) do_teleport(src, get_turf(owner), tele_range, no_effects = TRUE, channel = TELEPORT_CHANNEL_BLUESPACE) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration return FALSE //you didn't actually evade the attack now did you @@ -150,7 +150,7 @@ /obj/item/clothing/suit/armor/reactive/fire/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) owner.visible_message(span_danger("[src] blocks [attack_text], sending out jets of flame!")) - playsound(get_turf(owner),'sound/magic/fireball.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/fireball.ogg', 100, TRUE) for(var/mob/living/carbon/carbon_victim in range(6, get_turf(src))) if(carbon_victim != owner) carbon_victim.adjust_fire_stacks(8) @@ -161,7 +161,7 @@ /obj/item/clothing/suit/armor/reactive/fire/emp_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) owner.visible_message(span_danger("[src] just makes [attack_text] worse by spewing molten death on [owner]!")) - playsound(get_turf(owner),'sound/magic/fireball.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/fireball.ogg', 100, TRUE) owner.adjust_fire_stacks(12) owner.ignite_mob() reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration @@ -263,7 +263,7 @@ var/repulse_force = MOVE_FORCE_EXTREMELY_STRONG /obj/item/clothing/suit/armor/reactive/repulse/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - playsound(get_turf(owner),'sound/magic/repulse.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/repulse.ogg', 100, TRUE) owner.visible_message(span_danger("[src] blocks [attack_text], converting the attack into a wave of force!")) var/turf/owner_turf = get_turf(owner) var/list/thrown_items = list() @@ -278,7 +278,7 @@ return TRUE /obj/item/clothing/suit/armor/reactive/repulse/emp_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - playsound(get_turf(owner),'sound/magic/repulse.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/repulse.ogg', 100, TRUE) owner.visible_message(span_danger("[src] does not block [attack_text], and instead generates an attracting force!")) var/turf/owner_turf = get_turf(owner) var/list/thrown_items = list() @@ -418,7 +418,7 @@ reactivearmor_cooldown_duration = 10 SECONDS /obj/item/clothing/suit/armor/reactive/barricade/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - playsound(get_turf(owner),'sound/magic/repulse.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/magic/repulse.ogg', 100, TRUE) owner.visible_message(span_danger("The reactive armor interposes matter from another world between [src] and [attack_text]!")) for (var/atom/movable/target in repulse_targets(owner)) repulse(target, owner) @@ -480,7 +480,7 @@ reactivearmor_cooldown_duration = 40 SECONDS /obj/item/clothing/suit/armor/reactive/ectoplasm/reactive_activation(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - playsound(get_turf(owner),'sound/hallucinations/veryfar_noise.ogg', 100, TRUE) + playsound(get_turf(owner),'sound/effects/hallucinations/veryfar_noise.ogg', 100, TRUE) owner.visible_message(span_danger("The [src] lets loose a burst of otherworldly energy!")) haunt_outburst(epicenter = get_turf(owner), range = 5, haunt_chance = 85, duration = 30 SECONDS) diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index 4636054ee3e6b..f09b6ac2f8585 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -49,7 +49,7 @@ /obj/item/clothing/suit/hooded/wintercoat/click_alt(mob/user) zipped = !zipped - playsound(src, 'sound/items/zip_up.ogg', 30, TRUE, -3) + playsound(src, 'sound/items/zip/zip_up.ogg', 30, TRUE, -3) worn_icon_state = "[initial(icon_state)][zipped ? "_t" : ""]" balloon_alert(user, "[zipped ? "" : "un"]zipped") diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index b590984cbc7cb..704182f3642d2 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -292,7 +292,7 @@ return usr.say("Rise, my creation! Off your page into this realm!", forced = "stickman summoning") - playsound(loc, 'sound/magic/summon_magic.ogg', 50, TRUE, TRUE) + playsound(loc, 'sound/effects/magic/summon_magic.ogg', 50, TRUE, TRUE) var/mob/living/M = new /mob/living/basic/stickman/lesser(get_turf(usr)) M.faction += list("[REF(usr)]") robe_charge = FALSE diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 9212f5e431ff6..25e02975d093b 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -186,7 +186,7 @@ return cabling.visible_message(span_notice("[user] repairs the suit sensors on [src] with [cabling].")) - playsound(source = src, soundin = 'sound/effects/sparks4.ogg', vol = 100, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) + playsound(source = src, soundin = 'sound/effects/sparks/sparks4.ogg', vol = 100, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) has_sensor = HAS_SENSORS update_wearer_status() @@ -234,7 +234,7 @@ else sensor_mode = pick(SENSOR_OFF, SENSOR_OFF, SENSOR_OFF, SENSOR_LIVING, SENSOR_LIVING, SENSOR_VITALS, SENSOR_VITALS, SENSOR_COORDS) - playsound(source = src, soundin = 'sound/effects/sparks3.ogg', vol = 75, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) + playsound(source = src, soundin = 'sound/effects/sparks/sparks3.ogg', vol = 75, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) visible_message(span_warning("The [src]'s medical sensors flash and change rapidly!"), blind_message = span_warning("The [src] makes an electronic sizzling sound!"), vision_distance = COMBAT_MESSAGE_RANGE) update_wearer_status() diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm index b43196c1628e2..335eded4d4c82 100644 --- a/code/modules/clothing/under/accessories/badges.dm +++ b/code/modules/clothing/under/accessories/badges.dm @@ -275,12 +275,12 @@ var/mob/living/interacting_living = interacting_with if(user.combat_mode) - playsound(interacting_living, 'sound/weapons/throw.ogg', 30) + playsound(interacting_living, 'sound/items/weapons/throw.ogg', 30) examine(interacting_living) to_chat(interacting_living, span_userdanger("[user] shoves the [src] up your face!")) user.visible_message(span_warning("[user] have shoved a [src] into [interacting_living] face.")) else - playsound(interacting_living, 'sound/weapons/throwsoft.ogg', 20) + playsound(interacting_living, 'sound/items/weapons/throwsoft.ogg', 20) examine(interacting_living) to_chat(interacting_living, span_boldwarning("[user] shows the [src] to you.")) user.visible_message(span_notice("[user] shows a [src] to [interacting_living].")) diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm index d89fdd383c80f..1e3d792f67b53 100644 --- a/code/modules/deathmatch/deathmatch_loadouts.dm +++ b/code/modules/deathmatch/deathmatch_loadouts.dm @@ -440,7 +440,7 @@ head = /obj/item/clothing/head/wizard/black spells_to_add = list( /datum/action/cooldown/spell/touch/scream_for_me, - /datum/action/cooldown/spell/teleport/radius_turf/blink, + /datum/action/cooldown/spell/conjure/link_worlds, ) /datum/outfit/deathmatch_loadout/wizard/larp diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm index 4c76534175a60..8ec8e5b2d8a56 100644 --- a/code/modules/economy/account.dm +++ b/code/modules/economy/account.dm @@ -83,7 +83,8 @@ if(old_job) SSeconomy.bank_accounts_by_job[old_job.type] -= src - LAZYADD(SSeconomy.bank_accounts_by_job[new_job.type], src) + if(new_job) + LAZYADD(SSeconomy.bank_accounts_by_job[new_job.type], src) /datum/bank_account/vv_edit_var(var_name, var_value) // just so you don't have to do it manually var/old_id = account_id @@ -233,7 +234,7 @@ return if(card_holder.can_hear()) - card_holder.playsound_local(get_turf(card_holder), 'sound/machines/twobeep_high.ogg', 50, TRUE) + card_holder.playsound_local(get_turf(card_holder), 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) to_chat(card_holder, "[icon2html(icon_source, card_holder)] [span_notice("[message]")]") else if(isturf(card.loc)) //If on the ground var/turf/card_location = card.loc @@ -241,7 +242,7 @@ if(!potential_hearer.client || (!(get_chat_toggles(potential_hearer.client) & CHAT_BANKCARD) && !force)) continue if(potential_hearer.can_hear()) - potential_hearer.playsound_local(card_location, 'sound/machines/twobeep_high.ogg', 50, TRUE) + potential_hearer.playsound_local(card_location, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) to_chat(potential_hearer, "[icon2html(icon_source, potential_hearer)] [span_notice("[message]")]") else var/atom/sound_atom @@ -251,7 +252,7 @@ if(!sound_atom) sound_atom = card.drop_location() //in case we're inside a bodybag in a crate or something. doing this here to only process it if there's a valid mob who can hear the sound. if(potential_hearer.can_hear()) - potential_hearer.playsound_local(get_turf(sound_atom), 'sound/machines/twobeep_high.ogg', 50, TRUE) + potential_hearer.playsound_local(get_turf(sound_atom), 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) to_chat(potential_hearer, "[icon2html(icon_source, potential_hearer)] [span_notice("[message]")]") /** diff --git a/code/modules/economy/holopay.dm b/code/modules/economy/holopay.dm index 54f6be3666a22..301a4a5d6f8cd 100644 --- a/code/modules/economy/holopay.dm +++ b/code/modules/economy/holopay.dm @@ -61,9 +61,9 @@ /obj/structure/holopay/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', 80, TRUE) if(BURN) - playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', 80, TRUE) /obj/structure/holopay/atom_deconstruct(dissambled = TRUE) dissipate() diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm index 875b8c0dcf23a..2fdd161514903 100644 --- a/code/modules/events/aurora_caelus.dm +++ b/code/modules/events/aurora_caelus.dm @@ -19,14 +19,14 @@ /datum/round_event/aurora_caelus/announce(fake) priority_announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. Nanotrasen has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. We hope you enjoy the lights.", - sound = 'sound/misc/notice2.ogg', + sound = 'sound/announcer/notice/notice2.ogg', sender_override = "Nanotrasen Meteorology Division") if (fake) return for(var/V in GLOB.player_list) var/mob/M = V if((M.client.prefs.read_preference(/datum/preference/toggle/sound_midi)) && is_station_level(M.z)) - M.playsound_local(M, 'sound/ambience/aurora_caelus.ogg', 20, FALSE, pressure_affected = FALSE) + M.playsound_local(M, 'sound/ambience/aurora_caelus/aurora_caelus.ogg', 20, FALSE, pressure_affected = FALSE) fade_space(fade_in = TRUE) fade_kitchen(fade_in = TRUE) @@ -66,7 +66,7 @@ fade_space() fade_kitchen() priority_announce("The aurora caelus event is now ending. Starlight conditions will slowly return to normal. When this has concluded, please return to your workplace and continue work as normal. Have a pleasant shift, [station_name()], and thank you for watching with us.", - sound = 'sound/misc/notice2.ogg', + sound = 'sound/announcer/notice/notice2.ogg', sender_override = "Nanotrasen Meteorology Division") /datum/round_event/aurora_caelus/proc/fade_space(fade_in = FALSE) diff --git a/code/modules/events/earthquake.dm b/code/modules/events/earthquake.dm index 84945dc99f09d..58b0a7e40821a 100644 --- a/code/modules/events/earthquake.dm +++ b/code/modules/events/earthquake.dm @@ -112,10 +112,10 @@ earthquake_witness.playsound_local( earthquake_witness, pick( - 'sound/misc/earth_rumble_distant1.ogg', - 'sound/misc/earth_rumble_distant2.ogg', - 'sound/misc/earth_rumble_distant3.ogg', - 'sound/misc/earth_rumble_distant4.ogg', + 'sound/ambience/earth_rumble/earth_rumble_distant1.ogg', + 'sound/ambience/earth_rumble/earth_rumble_distant2.ogg', + 'sound/ambience/earth_rumble/earth_rumble_distant3.ogg', + 'sound/ambience/earth_rumble/earth_rumble_distant4.ogg', ), 75, ) @@ -150,12 +150,12 @@ playsound(epicenter, 'sound/misc/metal_creak.ogg', 125, TRUE) /datum/round_event/earthquake/end() - playsound(epicenter, 'sound/misc/earth_rumble.ogg', 125) + playsound(epicenter, 'sound/ambience/earth_rumble/earth_rumble.ogg', 125) for(var/mob/earthquake_witness as anything in GLOB.player_list) if(!is_station_level(earthquake_witness.z) || !is_mining_level(earthquake_witness.z)) continue shake_camera(earthquake_witness, 2 SECONDS, 4) - earthquake_witness.playsound_local(earthquake_witness, 'sound/effects/explosionfar.ogg', 75) + earthquake_witness.playsound_local(earthquake_witness, 'sound/effects/explosion/explosionfar.ogg', 75) // Step two of the destruction, which detonates the turfs in the earthquake zone. There is no actual explosion, meaning stuff around the earthquake zone is perfectly safe. // All turfs, and everything else that IS in the earthquake zone, however, will behave as if it were bombed. diff --git a/code/modules/events/ghost_role/fugitive_event.dm b/code/modules/events/ghost_role/fugitive_event.dm index f0e1a7c893a3e..e08304b9925e3 100644 --- a/code/modules/events/ghost_role/fugitive_event.dm +++ b/code/modules/events/ghost_role/fugitive_event.dm @@ -54,7 +54,7 @@ gear_fugitive_leader(leader, landing_turf, backstory) //after spawning - playsound(src, 'sound/weapons/emitter.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/emitter.ogg', 50, TRUE) new /obj/item/storage/toolbox/mechanical(landing_turf) //so they can actually escape maint var/hunter_backstory = pick( HUNTER_PACK_COPS, diff --git a/code/modules/events/ghost_role/morph_event.dm b/code/modules/events/ghost_role/morph_event.dm index 1b7af6361fdbb..b9841283ceed7 100644 --- a/code/modules/events/ghost_role/morph_event.dm +++ b/code/modules/events/ghost_role/morph_event.dm @@ -28,7 +28,7 @@ player_mind.set_assigned_role(SSjob.get_job_type(/datum/job/morph)) player_mind.special_role = ROLE_MORPH player_mind.add_antag_datum(/datum/antagonist/morph) - SEND_SOUND(corpus_accipientis, sound('sound/magic/mutate.ogg')) + SEND_SOUND(corpus_accipientis, sound('sound/effects/magic/mutate.ogg')) message_admins("[ADMIN_LOOKUPFLW(corpus_accipientis)] has been made into a morph by an event.") corpus_accipientis.log_message("was spawned as a morph by an event.", LOG_GAME) spawned_mobs += corpus_accipientis diff --git a/code/modules/events/ghost_role/nightmare.dm b/code/modules/events/ghost_role/nightmare.dm index 1fdebff0cd864..9f894c237d41c 100644 --- a/code/modules/events/ghost_role/nightmare.dm +++ b/code/modules/events/ghost_role/nightmare.dm @@ -31,7 +31,7 @@ player_mind.special_role = ROLE_NIGHTMARE player_mind.add_antag_datum(/datum/antagonist/nightmare) S.set_species(/datum/species/shadow/nightmare) - playsound(S, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(S, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Nightmare by an event.") S.log_message("was spawned as a Nightmare by an event.", LOG_GAME) spawned_mobs += S diff --git a/code/modules/events/ghost_role/sentience.dm b/code/modules/events/ghost_role/sentience.dm index 092813008458a..b12dd5c517423 100644 --- a/code/modules/events/ghost_role/sentience.dm +++ b/code/modules/events/ghost_role/sentience.dm @@ -104,9 +104,9 @@ GLOBAL_LIST_INIT(high_priority_sentience, typecacheof(list( spawned_mobs += selected to_chat(selected, span_userdanger("Hello world!")) - to_chat(selected, "Due to freak radiation and/or chemicals \ + to_chat(selected, span_warning("Due to freak radiation and/or chemicals \ and/or lucky chance, you have gained human level intelligence \ - and the ability to speak and understand human language!") + and the ability to speak and understand human language!")) return SUCCESSFUL_SPAWN diff --git a/code/modules/events/ghost_role/space_dragon.dm b/code/modules/events/ghost_role/space_dragon.dm index 8a39d4a5daea5..56d82ff33c7cf 100644 --- a/code/modules/events/ghost_role/space_dragon.dm +++ b/code/modules/events/ghost_role/space_dragon.dm @@ -28,7 +28,7 @@ var/mob/living/basic/space_dragon/dragon = new(spawn_location) dragon.key = chosen_one.key dragon.mind.add_antag_datum(/datum/antagonist/space_dragon) - playsound(dragon, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(dragon, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(dragon)] has been made into a Space Dragon by an event.") dragon.log_message("was spawned as a Space Dragon by an event.", LOG_GAME) spawned_mobs += dragon diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index 1a1fa3ac67c0c..a0bc06718c08d 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -67,7 +67,7 @@ if(winner.has_status_effect(/datum/status_effect/exercised)) //Stuff that should "block" a heart attack rather than just deny eligibility for one goes here. winner.visible_message(span_warning("[winner] grunts and clutches their chest for a moment, catching [winner.p_their()] breath."), span_medal("Your chest lurches in pain for a brief moment, which quickly fades. \ You feel like you've just avoided a serious health disaster."), span_hear("You hear someone's breathing sharpen for a moment, followed by a sigh of relief."), 4) - winner.playsound_local(get_turf(winner), 'sound/health/slowbeat.ogg', 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) + winner.playsound_local(get_turf(winner), 'sound/effects/health/slowbeat.ogg', 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) winner.Stun(3 SECONDS) if(winner.client) winner.client.give_award(/datum/award/achievement/misc/healthy, winner) diff --git a/code/modules/events/meteors/dark_matteor_event.dm b/code/modules/events/meteors/dark_matteor_event.dm index 86d38f93e6cca..412354b16f13d 100644 --- a/code/modules/events/meteors/dark_matteor_event.dm +++ b/code/modules/events/meteors/dark_matteor_event.dm @@ -25,7 +25,7 @@ spawn_meteor(list(/obj/effect/meteor/dark_matteor = 1), null, target) /datum/round_event/dark_matteor/announce(fake) - priority_announce("Warning. Excessive tampering of meteor satellites has attracted a dark matt-eor. Signature approaching [GLOB.station_name]. Please brace for impact.", "Meteor Alert", 'sound/misc/airraid.ogg') + priority_announce("Warning. Excessive tampering of meteor satellites has attracted a dark matt-eor. Signature approaching [GLOB.station_name]. Please brace for impact.", "Meteor Alert", 'sound/announcer/alarm/airraid.ogg') /datum/event_admin_setup/warn_admin/dark_matteor warning_text = "Dark Matt-eors spawn singularities. The round is ending once a dark matt-eor hits the station. Proceed anyways?" diff --git a/code/modules/events/mice_migration.dm b/code/modules/events/mice_migration.dm index 450f910080018..cf0071c2e5cd4 100644 --- a/code/modules/events/mice_migration.dm +++ b/code/modules/events/mice_migration.dm @@ -23,7 +23,7 @@ priority_announce("Due to [cause], [plural] [name] have [movement] \ into the [location].", "Migration Alert", - 'sound/creatures/mousesqueek.ogg') + 'sound/mobs/non-humanoids/mouse/mousesqueek.ogg') /datum/round_event/mice_migration/start() SSminor_mapping.trigger_migration(rand(minimum_mice, maximum_mice)) diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 0ca7800ee22d1..f96b73e66a295 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -72,11 +72,11 @@ /datum/round_event/portal_storm/announce(fake) set waitfor = 0 - sound_to_playing_players('sound/magic/lightning_chargeup.ogg') + sound_to_playing_players('sound/effects/magic/lightning_chargeup.ogg') sleep(8 SECONDS) priority_announce("Massive bluespace anomaly detected en route to [station_name()]. Brace for impact.") sleep(2 SECONDS) - sound_to_playing_players('sound/magic/lightningbolt.ogg') + sound_to_playing_players('sound/effects/magic/lightningbolt.ogg') /datum/round_event/portal_storm/tick() spawn_effects(get_random_station_turf()) @@ -112,7 +112,7 @@ return T = get_step(T, SOUTHWEST) //align center of image with turf T.flick_overlay_static(storm_appearances[GET_TURF_PLANE_OFFSET(T) + 1], 15) - playsound(T, 'sound/magic/lightningbolt.ogg', rand(80, 100), TRUE) + playsound(T, 'sound/effects/magic/lightningbolt.ogg', rand(80, 100), TRUE) /datum/round_event/portal_storm/proc/spawn_hostile() if(!hostile_types || !hostile_types.len) diff --git a/code/modules/events/space_vines/vine_mutations.dm b/code/modules/events/space_vines/vine_mutations.dm index c2f8e2d41393c..57c5c003fd749 100644 --- a/code/modules/events/space_vines/vine_mutations.dm +++ b/code/modules/events/space_vines/vine_mutations.dm @@ -180,7 +180,7 @@ if(thorn && prob(40) && !HAS_TRAIT(victim, TRAIT_PIERCEIMMUNE)) //If we found the thorns mutation there is now a chance to get stung instead of lashed or smashed. victim.apply_damage(50, BRUTE, def_zone = limb, wound_bonus = rand(-20,10), sharpness = SHARP_POINTY) //This one gets a bit lower damage because it ignores armor. victim.Stun(1 SECONDS) //Stopped in place for a moment. - playsound(living_mob, 'sound/weapons/pierce.ogg', 50, TRUE, -1) + playsound(living_mob, 'sound/items/weapons/pierce.ogg', 50, TRUE, -1) living_mob.visible_message(span_danger("[living_mob] is nailed by a sharp thorn!"), \ span_userdanger("You are nailed by a sharp thorn!")) log_combat(vine, living_mob, "aggressively pierced") //"Aggressively" for easy ctrl+F'ing in the attack logs. @@ -188,7 +188,7 @@ if(prob(80) && !HAS_TRAIT(victim, TRAIT_PIERCEIMMUNE)) victim.apply_damage(60, BRUTE, def_zone = limb, blocked = armor, wound_bonus = rand(-20,10), sharpness = SHARP_EDGED) victim.Knockdown(2 SECONDS) - playsound(victim, 'sound/weapons/whip.ogg', 50, TRUE, -1) + playsound(victim, 'sound/items/weapons/whip.ogg', 50, TRUE, -1) living_mob.visible_message(span_danger("[living_mob] is lacerated by an outburst of vines!"), \ span_userdanger("You are lacerated by an outburst of vines!")) log_combat(vine, living_mob, "aggressively lacerated") @@ -203,7 +203,7 @@ log_combat(vine, living_mob, "aggressively smashed") else //Living but not a carbon? Maybe a silicon? Can't be wounded so have a big chunk of simple bruteloss with no special effects. They can be entangled. living_mob.adjustBruteLoss(75) - playsound(living_mob, 'sound/weapons/whip.ogg', 50, TRUE, -1) + playsound(living_mob, 'sound/items/weapons/whip.ogg', 50, TRUE, -1) living_mob.visible_message(span_danger("[living_mob] is brutally threshed by [vine]!"), \ span_userdanger("You are brutally threshed by [vine]!")) log_combat(vine, living_mob, "aggressively spread into") //You aren't being attacked by the vines. You just happen to stand in their way. diff --git a/code/modules/events/space_vines/vine_structure.dm b/code/modules/events/space_vines/vine_structure.dm index a7b9aa2fce516..ceb5cca415a89 100644 --- a/code/modules/events/space_vines/vine_structure.dm +++ b/code/modules/events/space_vines/vine_structure.dm @@ -91,11 +91,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src, 'sound/weapons/slash.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/slash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/spacevine/proc/on_entered(datum/source, atom/movable/movable) SIGNAL_HANDLER diff --git a/code/modules/events/supermatter_surge.dm b/code/modules/events/supermatter_surge.dm index c7fb6f969d82b..8d8c50a69f92e 100644 --- a/code/modules/events/supermatter_surge.dm +++ b/code/modules/events/supermatter_surge.dm @@ -92,7 +92,7 @@ /datum/round_event/supermatter_surge/announce(fake) var/class_to_announce = fake ? pick(1, 2, 3, 4) : surge_class - priority_announce("The Crystal Integrity Monitoring System has detected unusual atmospheric properties in the supermatter chamber, energy output from the supermatter crystal has increased significantly. Engineering intervention is required to stabilize the engine.", "Class [class_to_announce] Supermatter Surge Alert", 'sound/machines/engine_alert3.ogg') + priority_announce("The Crystal Integrity Monitoring System has detected unusual atmospheric properties in the supermatter chamber, energy output from the supermatter crystal has increased significantly. Engineering intervention is required to stabilize the engine.", "Class [class_to_announce] Supermatter Surge Alert", 'sound/machines/engine_alert/engine_alert3.ogg') /datum/round_event/supermatter_surge/start() engine.bullet_energy = surge_class + SURGE_BULLET_ENERGY_ADDITION @@ -126,7 +126,7 @@ fakeable = FALSE /datum/round_event/supermatter_surge/poly/announce(fake) - priority_announce("The Crystal Integrity Monitoring System has detected unusual parrot type resonance in the supermatter chamber, energy output from the supermatter crystal has increased significantly. Engineering intervention is required to stabilize the engine.", "Class P Supermatter Surge Alert", 'sound/machines/engine_alert3.ogg') + priority_announce("The Crystal Integrity Monitoring System has detected unusual parrot type resonance in the supermatter chamber, energy output from the supermatter crystal has increased significantly. Engineering intervention is required to stabilize the engine.", "Class P Supermatter Surge Alert", 'sound/machines/engine_alert/engine_alert3.ogg') #undef SURGE_DURATION_MIN #undef SURGE_DURATION_MAX diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm index 78612ecf863b0..cb7c61823a162 100644 --- a/code/modules/events/wizard/fakeexplosion.dm +++ b/code/modules/events/wizard/fakeexplosion.dm @@ -7,5 +7,5 @@ description = "The nuclear explosion cutscene begins to play to scare the crew." /datum/round_event/wizard/fake_explosion/start() - sound_to_playing_players('sound/machines/alarm.ogg') + sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(play_cinematic), /datum/cinematic/nuke/fake, world), 10 SECONDS) diff --git a/code/modules/experisci/destructive_scanner.dm b/code/modules/experisci/destructive_scanner.dm index d5d87eb631163..c742aaa68c028 100644 --- a/code/modules/experisci/destructive_scanner.dm +++ b/code/modules/experisci/destructive_scanner.dm @@ -33,7 +33,7 @@ var/aggressive = FALSE for(var/mob/living/living_mob in pickup_zone) if(!(obj_flags & EMAGGED) && ishuman(living_mob)) //Can only kill humans when emagged. - playsound(src, 'sound/machines/buzz-sigh.ogg', 25) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 25) say("Cannot scan with humans inside.") return aggressive = TRUE diff --git a/code/modules/experisci/experiment/handlers/experiment_handler.dm b/code/modules/experisci/experiment/handlers/experiment_handler.dm index bb0cc2fb0a5e3..0eaea94ff5807 100644 --- a/code/modules/experisci/experiment/handlers/experiment_handler.dm +++ b/code/modules/experisci/experiment/handlers/experiment_handler.dm @@ -93,7 +93,7 @@ SIGNAL_HANDLER if ((isnull(selected_experiment) && !(config_flags & EXPERIMENT_CONFIG_ALWAYS_ACTIVE)) || (config_flags & EXPERIMENT_CONFIG_SILENT_FAIL)) return - playsound(user, 'sound/machines/buzz-sigh.ogg', 25) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 25) to_chat(user, span_notice("[target] is not related to your currently selected experiment.")) /** @@ -130,7 +130,7 @@ playsound(user, 'sound/machines/ping.ogg', 25) to_chat(user, span_notice("You scan [target].")) else if(!(config_flags & EXPERIMENT_CONFIG_SILENT_FAIL)) - playsound(user, 'sound/machines/buzz-sigh.ogg', 25) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 25) to_chat(user, span_notice("[target] is not related to your currently selected experiment.")) /** @@ -141,7 +141,7 @@ var/atom/movable/our_scanner = parent if (selected_experiment == null) if(!(config_flags & EXPERIMENT_CONFIG_SILENT_FAIL)) - playsound(our_scanner, 'sound/machines/buzz-sigh.ogg', 25) + playsound(our_scanner, 'sound/machines/buzz/buzz-sigh.ogg', 25) to_chat(our_scanner, span_notice("No experiment selected!")) return var/successful_scan @@ -153,7 +153,7 @@ playsound(our_scanner, 'sound/machines/ping.ogg', 25) to_chat(our_scanner, span_notice("The scan succeeds.")) else if(!(config_flags & EXPERIMENT_CONFIG_SILENT_FAIL)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 25) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 25) our_scanner.say("The scan did not result in anything.") /// Hooks on a successful autopsy experiment diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index a3becfe671860..56de1a9b10f6a 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -35,7 +35,7 @@ var/last_feeding /// Can fish reproduce in this quarium. - var/allow_breeding = TRUE + var/reproduction_and_growth = TRUE //This is the area where fish can swim var/aquarium_zone_min_px = 2 @@ -309,7 +309,7 @@ . = ..() .["fluidType"] = fluid_type .["temperature"] = fluid_temp - .["allowBreeding"] = allow_breeding + .["allowBreeding"] = reproduction_and_growth .["fishData"] = list() .["feedingInterval"] = feeding_interval / (1 MINUTES) .["propData"] = list() @@ -356,8 +356,8 @@ fluid_type = params["fluid"] SEND_SIGNAL(src, COMSIG_AQUARIUM_FLUID_CHANGED, fluid_type) . = TRUE - if("allow_breeding") - allow_breeding = !allow_breeding + if("reproduction_and_growth") + reproduction_and_growth = !reproduction_and_growth . = TRUE if("feeding_interval") feeding_interval = params["feeding_interval"] MINUTES @@ -396,7 +396,7 @@ possible_destinations_for_fish = get_adjacent_open_turfs(droploc) else possible_destinations_for_fish = list(droploc) - playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(src, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) for(var/atom/movable/fish in contents) fish.forceMove(pick(possible_destinations_for_fish)) if(fluid_type != AQUARIUM_FLUID_AIR) diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm index c899c0c3abc55..905d3549128d5 100644 --- a/code/modules/fishing/aquarium/fish_analyzer.dm +++ b/code/modules/fishing/aquarium/fish_analyzer.dm @@ -128,7 +128,7 @@ "fish_food_color" = fishie.food::color, "fish_min_temp" = fishie.required_temperature_min, "fish_max_temp" = fishie.required_temperature_max, - "fish_hunger" = HAS_TRAIT(fishie, TRAIT_FISH_NO_HUNGER) ? 0 : PERCENT(min((world.time - fishie.last_feeding) / fishie.feeding_frequency, 1)), + "fish_hunger" = HAS_TRAIT(fishie, TRAIT_FISH_NO_HUNGER) ? 0 : 1 - fishie.get_hunger(), "fish_fluid_compatible" = aquarium ? compatible_fluid_type(fishie.required_fluid_type, aquarium.fluid_type) : null, "fish_fluid_type" = fishie.required_fluid_type, "fish_breed_timer" = round(max(fishie.breeding_wait - world.time, 0) / 10), diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 494d74c5ef772..c97669c41155f 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -16,7 +16,7 @@ attack_verb_continuous = list("slaps", "whacks") attack_verb_simple = list("slap", "whack") hitsound = SFX_DEFAULT_FISH_SLAP - drop_sound = 'sound/creatures/fish/fish_drop1.ogg' + drop_sound = 'sound/mobs/non-humanoids/fish/fish_drop1.ogg' pickup_sound = SFX_FISH_PICKUP sound_vary = TRUE obj_flags = UNIQUE_RENAME @@ -52,7 +52,7 @@ var/datum/reagent/food = /datum/reagent/consumable/nutriment /// How often the fish needs to be fed var/feeding_frequency = 5 MINUTES - /// Time of last feedeing + /// Time of last the fish was fed var/last_feeding /// Fish status @@ -81,6 +81,8 @@ var/breeding_timeout = 2 MINUTES /// If set, the fish can also breed with these fishes types var/list/compatible_types + /// If set, when procreating these are the types of fish that will be generate instead of 'type' + var/list/spawn_types /// A list of possible evolutions. If set, offsprings may be of a different, new fish type if conditions are met. var/list/evolution_types @@ -114,11 +116,15 @@ var/size /// Average size for this fish type in centimeters. Will be used as gaussian distribution with 20% deviation for fishing, bought fish are always standard size var/average_size = 50 + /// The maximum size this fish can reach, calculated the first time update_size_and_weight() is called. + var/maximum_size /// Weight in grams. Null until update_size_and_weight is called. Grind results scale with it. Don't think too hard how a trout could fit in a blender. var/weight /// Average weight for this fish type in grams var/average_weight = 1000 + /// The maximum weight this fish can reach, calculated the first time update_size_and_weight() is called. + var/maximum_weight ///The general deviation from the average weight and size this fish has in the wild var/weight_size_deviation = 0.2 @@ -152,6 +158,7 @@ /obj/item/fish/Initialize(mapload, apply_qualities = TRUE) . = ..() + base_icon_state = icon_state //It's important that we register the signals before the component is attached. RegisterSignal(src, COMSIG_AQUARIUM_CONTENT_DO_ANIMATION, PROC_REF(update_aquarium_animation)) RegisterSignal(src, AQUARIUM_CONTENT_RANDOMIZE_POSITION, PROC_REF(randomize_aquarium_position)) @@ -253,20 +260,21 @@ //Remove the blood from the reagents holder and reward the player with some extra nutriment added to the fish. var/datum/reagent/consumable/nutriment/protein/protein = reagents.has_reagent(/datum/reagent/consumable/nutriment/protein, check_subtypes = TRUE) var/datum/reagent/blood/blood = reagents.has_reagent(/datum/reagent/blood) - var/old_blood_volume = blood?.volume + var/old_blood_volume = blood ? blood.volume : 0 //we can't use the ?. operator since the above proc doesn't return null but 0 reagents.del_reagent(/datum/reagent/blood) ///Make space for the additional nutriment - var/volume_mult = 1 - if(bites_amount) - var/initial_bites_left = weight / FISH_WEIGHT_BITE_DIVISOR - var/bites_left = initial_bites_left - bites_amount - volume_mult = initial_bites_left / bites_left - adjust_reagents_capacity((protein?.volume - old_blood_volume) * volume_mult) - - ///Add the extra nutriment - if(protein) - reagents.multiply_single_reagent(/datum/reagent/consumable/nutriment/protein, 2) + if(blood || protein) + var/volume_mult = 1 + var/protein_volume = protein ? protein.volume : 0 + if(bites_amount) + var/initial_bites_left = weight / FISH_WEIGHT_BITE_DIVISOR + var/bites_left = initial_bites_left - bites_amount + volume_mult = initial_bites_left / bites_left + adjust_reagents_capacity((protein_volume - old_blood_volume) * volume_mult) + ///Add the extra nutriment + if(protein) + reagents.multiply_single_reagent(/datum/reagent/consumable/nutriment/protein, 2) var/datum/component/edible/edible = GetComponent(/datum/component/edible) edible.foodtypes &= ~(RAW|GORE) @@ -279,7 +287,8 @@ ///Just kill the fish, again, and perhaps remove the infective comp. /obj/item/fish/proc/on_fish_cooked_again(datum/source, cooking_time) SIGNAL_HANDLER - adjust_health(0) + if(!HAS_TRAIT(src, TRAIT_FISH_SURVIVE_COOKING)) + adjust_health(0) if(cooking_time >= FISH_SAFE_COOKING_DURATION) well_cooked() @@ -389,7 +398,7 @@ if(status == FISH_DEAD && icon_state_dead) icon_state = icon_state_dead else - icon_state = initial(icon_state) + icon_state = base_icon_state return ..() /obj/item/fish/attackby(obj/item/item, mob/living/user, params) @@ -412,7 +421,7 @@ . += span_deadsay("It's [HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "taking the big snooze" : "dead"].") else var/list/warnings = list() - if(is_hungry()) + if(is_starving()) warnings += "starving" if(!HAS_TRAIT(src, TRAIT_FISH_STASIS) && !proper_environment()) warnings += "drowning" @@ -445,7 +454,8 @@ remove_fillet_type() if(size > FISH_SIZE_TWO_HANDS_REQUIRED) qdel(GetComponent(/datum/component/two_handed)) - + else + maximum_size = min(new_size * 2, average_size * MAX_FISH_DEVIATION_COEFF) size = new_size var/init_icon_state = initial(inhand_icon_state) @@ -481,7 +491,7 @@ add_fillet_type() - var/make_edible = TRUE + var/make_edible = !weight if(weight) for(var/reagent_type in grind_results) grind_results[reagent_type] /= max(FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1), 0.1) @@ -500,7 +510,8 @@ else reagents.multiply_reagents(new_weight_ratio) adjust_reagents_capacity(volume_diff) - make_edible = FALSE + else + maximum_weight = min(new_weight * 2, new_weight * MAX_FISH_DEVIATION_COEFF) weight = new_weight @@ -537,6 +548,14 @@ AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, amount, time, screentip_verb = "Cut") return amount //checked by a unit test +/** + * Weight, unlike size, is a bit more exponential, but the world isn't perfect, so isn't my code. + * Anyway, this returns a gross estimate of the "rank" of "category" for our fish weight, based on how + * weight generaly scales up (250, 500, 1000, 2000, 4000 etc...) + */ +/obj/item/fish/proc/get_weight_rank() + return max(round(1 + log(2, weight/FISH_WEIGHT_FORCE_DIVISOR), 1), 1) + ///Reset weapon-related variables of this items and recalculates those values based on the fish weight and size. /obj/item/fish/proc/update_fish_force() if(force >= 15 && hitsound == SFX_ALT_FISH_SLAP) @@ -556,7 +575,7 @@ bare_wound_bonus = initial(bare_wound_bonus) toolspeed = initial(toolspeed) - var/weight_rank = max(round(1 + log(2, weight/FISH_WEIGHT_FORCE_DIVISOR), 1), 1) + var/weight_rank = get_weight_rank() throw_range -= weight_rank get_force_rank() @@ -569,7 +588,6 @@ SEND_SIGNAL(src, COMSIG_FISH_FORCE_UPDATED, weight_rank, bonus_malus) - if(material_flags & MATERIAL_EFFECTS) //struck by metal gen or something. for(var/current_material in custom_materials) var/datum/material/material = GET_MATERIAL_REF(current_material) @@ -620,7 +638,7 @@ fish_traits = fixed_traits?.Copy() || list() var/list/same_traits = x_traits & y_traits - var/list/all_traits = (x_traits|y_traits)-removed_traits + var/list/all_traits = (y_traits ? (x_traits|y_traits) : x_traits) - removed_traits /// a list of incompatible traits that'll be filled as it goes on. Don't let any such trait pass onto the fish. var/list/incompatible_traits = list() @@ -649,6 +667,9 @@ if(trait_type in incompatible_traits) continue var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + if(isnull(trait)) + stack_trace("Couldn't find trait [trait_type || "null"] in the global fish traits list") + continue if(!isnull(trait.fish_whitelist) && !(type in trait.fish_whitelist)) continue if(length(fish_traits & trait.incompatible_traits)) @@ -684,6 +705,15 @@ if(status != FISH_DEAD) START_PROCESSING(SSobj, src) +///Returns the 0-1 value for hunger +/obj/item/fish/proc/get_hunger() + . = CLAMP01((world.time - last_feeding) / feeding_frequency) + if(HAS_TRAIT(src, TRAIT_FISH_NO_HUNGER)) + return min(., 0.2) + +/obj/item/fish/proc/is_starving() + return get_hunger() >= 1 + ///Feed the fishes with the contents of the fish feed /obj/item/fish/proc/feed(datum/reagents/fed_reagents) if(status != FISH_ALIVE) @@ -691,7 +721,7 @@ var/fed_reagent_type if(fed_reagents.remove_reagent(food, 0.1)) fed_reagent_type = food - last_feeding = world.time + sate_hunger() else var/datum/reagent/wrong_reagent = pick(fed_reagents.reagent_list) if(!wrong_reagent) @@ -700,6 +730,48 @@ fed_reagents.remove_reagent(fed_reagent_type, 0.1) SEND_SIGNAL(src, COMSIG_FISH_FED, fed_reagents, fed_reagent_type) +/** + * Base multiplier of the difference between current size and weight and their maximum value + * Used to calculate how much fish grow each time they're fed, alongside with the current hunger, + * and the current size and weight, meaning bigger fish naturally tend to grow way more slowly + * Growth peaks at 45% hunger but very rapidly wanes past that. + */ +#define FISH_GROWTH_MULT 0.38 +#define FISH_GROWTH_PEAK 0.45 +#define FISH_SIZE_WEIGHT_GROWTH_MALUS 0.5 + +///Proc that should be called when the fish is fed. By default, it grows the fish depending on various variables. +/obj/item/fish/proc/sate_hunger() + if(isaquarium(loc)) + var/obj/structure/aquarium/aquarium = loc + if(!aquarium.reproduction_and_growth) + return + var/hunger = get_hunger() + if(hunger < 0.05) //don't bother growing for very small amounts. + return + last_feeding = world.time + var/new_size = size + var/new_weight = weight + var/hunger_mult + if(hunger < FISH_GROWTH_PEAK) + hunger_mult = hunger * (1/FISH_GROWTH_PEAK) + else + hunger_mult = 1 - (hunger - FISH_GROWTH_PEAK) * 4 + if(hunger_mult <= 0) + return + if(size < maximum_size) + new_size += CEILING((maximum_size - size) * FISH_GROWTH_MULT / (w_class * FISH_SIZE_WEIGHT_GROWTH_MALUS) * hunger_mult, 1) + new_size = min(new_size, maximum_size) + if(weight < maximum_weight) + new_weight += CEILING((maximum_weight - weight) * FISH_GROWTH_MULT / (get_weight_rank() * FISH_SIZE_WEIGHT_GROWTH_MALUS) * hunger_mult, 1) + new_weight = min(new_weight, maximum_weight) + if(new_size != size || new_weight != weight) + update_size_and_weight(new_size, new_weight) + +#undef FISH_SIZE_WEIGHT_GROWTH_MALUS +#undef FISH_GROWTH_MULT +#undef FISH_GROWTH_PEAK + /obj/item/fish/proc/check_flopping() if(QDELETED(src)) //we don't care anymore return @@ -908,7 +980,7 @@ animate(visual, pixel_y = py_min, time = 1) //flop to bottom and end current animation. /// Checks if our current environment lets us live. -/obj/item/fish/proc/proper_environment() +/obj/item/fish/proc/proper_environment(temp_range_min = required_temperature_min, temp_range_max = required_temperature_max) var/obj/structure/aquarium/aquarium = loc if(istype(aquarium)) if(!compatible_fluid_type(required_fluid_type, aquarium.fluid_type)) @@ -932,14 +1004,11 @@ return FALSE return TRUE -/obj/item/fish/proc/is_hungry() - return !HAS_TRAIT(src, TRAIT_FISH_NO_HUNGER) && world.time - last_feeding >= feeding_frequency - /obj/item/fish/proc/process_health(seconds_per_tick) var/health_change_per_second = 0 if(!proper_environment()) health_change_per_second -= 3 //Dying here - if(is_hungry()) + if(is_starving()) health_change_per_second -= 0.5 //Starving else health_change_per_second += 0.5 //Slowly healing @@ -976,7 +1045,7 @@ return FALSE if(!being_targeted && length(aquarium.get_fishes()) >= AQUARIUM_MAX_BREEDING_POPULATION) return FALSE - return aquarium.allow_breeding && health >= initial(health) * 0.8 && stable_population >= 1 && world.time >= breeding_wait + return aquarium.reproduction_and_growth && health >= initial(health) * 0.8 && stable_population >= 1 && world.time >= breeding_wait /obj/item/fish/proc/try_to_reproduce() var/obj/structure/aquarium/aquarium = loc @@ -1034,25 +1103,28 @@ if(evolution.check_conditions(second_fish, src, aquarium)) possible_evolutions += evolution + var/list/types = spawn_types || list(type) if(length(possible_evolutions)) chosen_evolution = pick(possible_evolutions) chosen_type = chosen_evolution.new_fish_type else if(second_fish) + var/list/second_fish_types = second_fish.spawn_types || list(second_fish.type) var/recessive = HAS_TRAIT(src, TRAIT_FISH_RECESSIVE) var/recessive_partner = HAS_TRAIT(second_fish, TRAIT_FISH_RECESSIVE) if(length(aquarium.tracked_fish_by_type[type]) >= stable_population) if(recessive_partner && !recessive) return FALSE - chosen_type = second_fish.type + chosen_type = pick(second_fish_types) else if(recessive && !recessive_partner) - chosen_type = second_fish.type + chosen_type = pick(second_fish_types) else if(recessive_partner && !recessive) - chosen_type = type + chosen_type = pick(types) else - chosen_type = pick(second_fish.type, type) + var/list/picks = second_fish_types + types + chosen_type = pick(picks) else - chosen_type = type + chosen_type = pick(types) return create_offspring(chosen_type, second_fish, chosen_evolution) @@ -1061,13 +1133,16 @@ //Try to pass down compatible traits based on inheritability new_fish.inherit_traits(fish_traits, partner?.fish_traits, evolution?.new_traits, evolution?.removed_traits) + //We combine two methods for determining the size and weight of the offspring for less extreme results. if(partner) + var/ratio_size = new_fish.average_size * (((size / average_size) + (partner.size / partner.average_size)) / 2) var/mean_size = (size + partner.size)/2 + var/ratio_weight = new_fish.average_size * (((weight / average_weight) + (partner.weight / partner.average_weight)) / 2) var/mean_weight = (weight + partner.weight)/2 - new_fish.randomize_size_and_weight(mean_size, mean_weight, 0.3, TRUE) + new_fish.randomize_size_and_weight((mean_size + ratio_size) * 0.5, (mean_weight + ratio_weight) * 0.5, 0.3) partner.breeding_wait = world.time + breeding_timeout else //Make a close of this fish. - new_fish.update_size_and_weight(size, weight, TRUE) + new_fish.update_size_and_weight(size, weight) breeding_wait = world.time + breeding_timeout @@ -1137,7 +1212,7 @@ flop_animation() /obj/item/fish/proc/try_electrogenesis() - if(status == FISH_DEAD || is_hungry()) + if(status == FISH_DEAD || is_starving()) return COOLDOWN_START(src, electrogenesis_cooldown, ELECTROGENESIS_DURATION + ELECTROGENESIS_VARIANCE) var/fish_zap_range = 1 @@ -1161,7 +1236,7 @@ var/happiness_value = 0 if(fish_flags & FISH_FLAG_PETTED) happiness_value++ - if(HAS_TRAIT(src, TRAIT_FISH_NO_HUNGER) || min((world.time - last_feeding) / feeding_frequency, 1) < 0.5) + if(get_hunger() < 0.5) happiness_value++ var/obj/structure/aquarium/aquarium = loc if(!istype(aquarium)) @@ -1213,14 +1288,14 @@ ) var/body_zone = pick(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM) user.apply_damage((force * 0.2) + w_class * 2, BRUTE, body_zone, user.run_armor_check(body_zone, MELEE)) - playsound(src,'sound/weapons/bite.ogg', 45, TRUE, -1) + playsound(src,'sound/items/weapons/bite.ogg', 45, TRUE, -1) else if(in_aquarium) to_chat(user, span_notice("[src] dances around!")) else to_chat(user, span_notice("You pet [src] as you hold it.")) user.add_mood_event("petted_fish", /datum/mood_event/fish_petting, src, HAS_MIND_TRAIT(user, TRAIT_MORBID)) - playsound(src, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + playsound(src, 'sound/items/weapons/thudswoosh.ogg', 30, TRUE, -1) addtimer(CALLBACK(src, PROC_REF(undo_petted)), 30 SECONDS) return TRUE diff --git a/code/modules/fishing/fish/fish_evolution.dm b/code/modules/fishing/fish/fish_evolution.dm index d7b8f744f0a67..49eb3f46374bd 100644 --- a/code/modules/fishing/fish/fish_evolution.dm +++ b/code/modules/fishing/fish/fish_evolution.dm @@ -17,9 +17,9 @@ GLOBAL_LIST_EMPTY(fishes_by_fish_evolution) ///The obj/item/fish path of the new fish var/obj/item/fish/new_fish_type = /obj/item/fish ///The minimum required temperature for the evolved fish to spawn - var/required_temperature_min = MIN_AQUARIUM_TEMP + var/required_temperature_min = 0 ///The maximum required temperature for the evolved fish to spawn - var/required_temperature_max = MAX_AQUARIUM_TEMP + var/required_temperature_max = INFINITY ///A list of traits added to the new fish. These take priority over the parents' traits. var/list/new_traits ///If set, these traits will be removed from the new fish. @@ -40,24 +40,44 @@ GLOBAL_LIST_EMPTY(fishes_by_fish_evolution) name = full_capitalize(initial(new_fish_type.name)) /** * The main proc that checks whether this can happen or not. - * Please do keep in mind a mate may not be present for fish with the - * self-reproductive trait. + * Keep in mind the mate and aquarium arguments may be null if + * the fish is self-reproducing or this evolution is a result of a fish_growth component */ /datum/fish_evolution/proc/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) SHOULD_CALL_PARENT(TRUE) - //chances are halved if only one parent has this evolution. - var/real_probability = (mate && (type in mate.evolution_types)) ? probability : probability/2 - if(!prob(real_probability)) - return FALSE - if(!ISINRANGE(aquarium.fluid_temp, required_temperature_min, required_temperature_max)) + if(aquarium) + //chances are halved if only one parent has this evolution. + var/real_probability = (mate && (type in mate.evolution_types)) ? probability : probability/2 + if(!prob(real_probability)) + return FALSE + if(!ISINRANGE(aquarium.fluid_temp, required_temperature_min, required_temperature_max)) + return FALSE + else if(!source.proper_environment(required_temperature_min, required_temperature_max)) return FALSE return TRUE +///This is called when the evolution is set as the result type of a fish_growth component +/datum/fish_evolution/proc/growth_checks(obj/item/fish/source, seconds_per_tick, growth) + SIGNAL_HANDLER + SHOULD_CALL_PARENT(TRUE) + if(source.health < initial(source.health) * 0.5) + return COMPONENT_DONT_GROW + if(source.get_hunger() >= 0.5) //too hungry to grow + return COMPONENT_DONT_GROW + var/obj/structure/aquarium/aquarium = source.loc + if(istype(aquarium) && !aquarium.reproduction_and_growth) //the aquarium has breeding disabled + return COMPONENT_DONT_GROW + else + aquarium = null + if(!check_conditions(source, aquarium = aquarium)) + return COMPONENT_DONT_GROW + ///Called by the fish analyzer right click function. Returns a text string used as tooltip. /datum/fish_evolution/proc/get_evolution_tooltip() . = "" - if(required_temperature_min != MIN_AQUARIUM_TEMP || required_temperature_max != MAX_AQUARIUM_TEMP) - . = "An aquarium temperature between [required_temperature_min] and [required_temperature_max] is required." + if(required_temperature_min > 0 || required_temperature_max < INFINITY) + var/max_temp = required_temperature_max < INFINITY ? " and [required_temperature_max]" : "" + . = "An aquarium temperature between [required_temperature_min][max_temp] is required." if(conditions_note) . += " [conditions_note]" return . @@ -134,3 +154,28 @@ GLOBAL_LIST_EMPTY(fishes_by_fish_evolution) if(source.size >= double_avg_size && source.weight >= double_avg_weight && (/datum/fish_trait/aggressive in source.fish_traits)) return ..() return FALSE + +/datum/fish_evolution/armored_pike + probability = 75 + new_fish_type = /obj/item/fish/pike/armored + conditions_note = "The fish needs to have the stinger trait" + +/datum/fish_evolution/armored_pike/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) + if(HAS_TRAIT(source, TRAIT_FISH_STINGER)) + return ..() + return FALSE + +/datum/fish_evolution/fritterish + new_fish_type = /obj/item/fish/fryish/fritterish + conditions_note = "Fryish will grow into it over time." + +/datum/fish_evolution/nessie + name = "???" + new_fish_type = /obj/item/fish/fryish/nessie + conditions_note = "The final stage of fritterfish growth. It gotta be big!" + show_result_on_wiki = FALSE + +/datum/fish_evolution/nessiefish/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) + if(source.size >= (/obj/item/fish/fryish/fritterish::average_size * 1.5) && source.size >= (/obj/item/fish/fryish/fritterish::average_weight * 1.5)) + return ..() + return FALSE diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm index 8c96df6e4ac5f..22c7492fb8eaf 100644 --- a/code/modules/fishing/fish/fish_traits.dm +++ b/code/modules/fishing/fish/fish_traits.dm @@ -71,11 +71,11 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /// Proc used by both the predator and necrophage traits. /datum/fish_trait/proc/eat_fish(obj/item/fish/predator, obj/item/fish/prey) - predator.last_feeding = world.time var/message = prey.status == FISH_DEAD ? "[src] eats [prey]'s carcass." : "[src] hunts down and eats [prey]." predator.loc.visible_message(span_warning(message)) SEND_SIGNAL(prey, COMSIG_FISH_EATEN_BY_OTHER_FISH, predator) qdel(prey) + predator.sate_hunger() /** @@ -141,8 +141,18 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) return if(HAS_TRAIT(rod.bait, TRAIT_OMNI_BAIT)) return - if(is_matching_bait(rod.bait, SSfishing.fish_properties[fish_type][FISH_PROPERTIES_FAV_BAIT])) //we like this bait anyway - return + + var/list/fav_baits = SSfishing.fish_properties[fish_type][FISH_PROPERTIES_FAV_BAIT] + for(var/identifier in fav_baits) + if(is_matching_bait(rod.bait, identifier)) //we like this bait anyway + return + + var/list/bad_baits = SSfishing.fish_properties[fish_type][FISH_PROPERTIES_BAD_BAIT] + for(var/identifier in bad_baits) + if(is_matching_bait(rod.bait, identifier)) //we hate this bait. + .[MULTIPLICATIVE_FISHING_MOD] = 0 + return + if(!HAS_TRAIT(rod.bait, TRAIT_GOOD_QUALITY_BAIT) && !HAS_TRAIT(rod.bait, TRAIT_GREAT_QUALITY_BAIT)) .[MULTIPLICATIVE_FISHING_MOD] = 0 @@ -270,7 +280,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) emulsified = TRUE if(emulsified) source.adjust_health(source.health + 3 * seconds_per_tick) - source.last_feeding = world.time //it feeds on the emulsion! + source.sate_hunger() /datum/fish_trait/emulsijack/apply_to_mob(mob/living/basic/mob) . = ..() @@ -299,7 +309,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /datum/fish_trait/necrophage/proc/eat_dead_fishes(obj/item/fish/source, seconds_per_tick) SIGNAL_HANDLER - if(!source.is_hungry() || !isaquarium(source.loc)) + if(source.get_hunger() > 0.75 || !isaquarium(source.loc)) return for(var/obj/item/fish/victim in source.loc) if(victim.status != FISH_DEAD || victim == source || HAS_TRAIT(victim, TRAIT_YUCKY_FISH)) @@ -326,6 +336,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) name = "Mateless" catalog_description = "This fish cannot reproduce with other fishes." incompatible_traits = list(/datum/fish_trait/crossbreeder) + spontaneous_manifest_types = list(/obj/item/fish/fryish = 100) /datum/fish_trait/no_mating/apply_to_fish(obj/item/fish/fish) . = ..() @@ -387,7 +398,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /datum/fish_trait/predator/proc/eat_fishes(obj/item/fish/source, seconds_per_tick) SIGNAL_HANDLER - if(!source.is_hungry() || !isaquarium(source.loc)) + if(source.get_hunger() > 0.75 || !isaquarium(source.loc)) return var/obj/structure/aquarium/aquarium = source.loc for(var/obj/item/fish/victim in aquarium.get_fishes(TRUE, source)) @@ -618,7 +629,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) fish.damtype = BURN fish.attack_verb_continuous = list("shocks", "zaps") fish.attack_verb_simple = list("shock", "zap") - fish.hitsound = 'sound/effects/sparks4.ogg' + fish.hitsound = 'sound/effects/sparks/sparks4.ogg' /datum/fish_trait/electrogenesis/apply_to_mob(mob/living/basic/mob) . = ..() @@ -642,7 +653,12 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) inheritability = 80 diff_traits_inheritability = 35 catalog_description = "This fish is equipped with a sharp stringer or bill capable of delivering damage and toxins." - spontaneous_manifest_types = list(/obj/item/fish/stingray = 100, /obj/item/fish/swordfish = 100, /obj/item/fish/chainsawfish = 100) + spontaneous_manifest_types = list( + /obj/item/fish/stingray = 100, + /obj/item/fish/swordfish = 100, + /obj/item/fish/chainsawfish = 100, + /obj/item/fish/pike/armored = 100, + ) /datum/fish_trait/stinger/apply_to_fish(obj/item/fish/fish) . = ..() @@ -723,6 +739,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) name = "Camouflage" catalog_description = "This fish possess the ability to blend with its surroundings." spontaneous_manifest_types = list(/obj/item/fish/squid = 35) + added_difficulty = 5 /datum/fish_trait/camouflage/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame) minigame.special_effects |= FISHING_MINIGAME_RULE_CAMO diff --git a/code/modules/fishing/fish/types/anadromous.dm b/code/modules/fishing/fish/types/anadromous.dm index 4edbce5d0c348..5afb2cb48ce5a 100644 --- a/code/modules/fishing/fish/types/anadromous.dm +++ b/code/modules/fishing/fish/types/anadromous.dm @@ -53,6 +53,7 @@ required_temperature_min = MIN_AQUARIUM_TEMP+12 required_temperature_max = MIN_AQUARIUM_TEMP+27 fish_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive) + evolution_types = list(/datum/fish_evolution/armored_pike) compatible_types = list(/obj/item/fish/pike/armored) favorite_bait = list( list( diff --git a/code/modules/fishing/fish/types/freshwater.dm b/code/modules/fishing/fish/types/freshwater.dm index 68254f661371d..fe0ff437c7d8c 100644 --- a/code/modules/fishing/fish/types/freshwater.dm +++ b/code/modules/fishing/fish/types/freshwater.dm @@ -175,7 +175,7 @@ /obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE) . = ..() - AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, 100 / rand(2.5, 3 MINUTES) * 10) + AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, rand(2.5, 3 MINUTES)) RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks)) RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth)) @@ -189,13 +189,13 @@ else deltimer(del_timerid) -/obj/item/fish/tadpole/proc/growth_checks(datum/source, seconds_per_tick) +/obj/item/fish/tadpole/proc/growth_checks(datum/source, seconds_per_tick, growth) SIGNAL_HANDLER - var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency) + var/hunger = get_hunger() if(hunger >= 0.7) //too hungry to grow return COMPONENT_DONT_GROW var/obj/structure/aquarium/aquarium = loc - if(!aquarium.allow_breeding) //the aquarium has breeding disabled + if(istype(aquarium) && !aquarium.reproduction_and_growth) //the aquarium has breeding disabled return COMPONENT_DONT_GROW /obj/item/fish/tadpole/proc/on_growth(datum/source, mob/living/basic/frog/result) diff --git a/code/modules/fishing/fish/types/mining.dm b/code/modules/fishing/fish/types/mining.dm index 0b29143dd5b8e..9e44e08ae316c 100644 --- a/code/modules/fishing/fish/types/mining.dm +++ b/code/modules/fishing/fish/types/mining.dm @@ -29,8 +29,6 @@ var/anger = 0 ///The lobstrosity type this matures into var/lob_type = /mob/living/basic/mining/lobstrosity/juvenile/lava - ///at which rate the crab gains maturation - var/growth_rate = 100 / (10 MINUTES) * 10 /obj/item/fish/chasm_crab/Initialize(mapload, apply_qualities = TRUE) . = ..() @@ -57,39 +55,39 @@ if(FISH_SIZE_BULKY_MAX to INFINITY) multiplier += 0.8 - if(weight <= 800) - multiplier -= 0.1 * round((1000 - weight) / 200) - else if(weight >= 1500) - multiplier += min(0.1 * round((weight - 1000) / 500), 2) - AddComponent(/datum/component/fish_growth, lob_type, initial(growth_rate) * multiplier) + if(weight <= (average_weight - 200)) + multiplier -= 0.1 * round((average_weight - weight) / 200) + else if(weight >= (average_weight + 500)) + multiplier += min(0.1 * round((weight - average_weight) / 500), 2) + AddComponent(/datum/component/fish_growth, lob_type, 10 MINUTES * multiplier) /obj/item/fish/chasm_crab/pet_fish(mob/living/user) . = ..() if(.) anger -= min(anger, 6.5) -/obj/item/fish/chasm_crab/proc/growth_checks(datum/source, seconds_per_tick) +/obj/item/fish/chasm_crab/proc/growth_checks(datum/source, seconds_per_tick, growth) SIGNAL_HANDLER - var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency) + var/hunger = get_hunger() if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow. - anger += growth_rate * 2 * seconds_per_tick + anger += growth * 2 return COMPONENT_DONT_GROW if(hunger >= 0.4) //I'm hungry and angry - anger += growth_rate * 0.6 * seconds_per_tick + anger += growth * 0.6 if(!isaquarium(loc)) return var/obj/structure/aquarium/aquarium = loc - if(!aquarium.allow_breeding) //the aquarium has breeding disabled + if(!aquarium.reproduction_and_growth) //the aquarium has breeding disabled return COMPONENT_DONT_GROW if(!locate(/obj/item/aquarium_prop) in aquarium) //the aquarium deco is quite barren - anger += growth_rate * 0.25 * seconds_per_tick + anger += growth * 0.25 var/fish_count = length(aquarium.get_fishes()) if(!ISINRANGE(fish_count, 3, AQUARIUM_MAX_BREEDING_POPULATION * 0.5)) //too lonely or overcrowded - anger += growth_rate * 0.3 * seconds_per_tick + anger += growth * 0.3 if(fish_count > AQUARIUM_MAX_BREEDING_POPULATION * 0.5) //check if there's enough room to maturate. return COMPONENT_DONT_GROW @@ -174,7 +172,7 @@ throw_text = "starts cooking in your hands, it may explode soon!",\ pass_maximum_callback = CALLBACK(src, PROC_REF(explode_on_user)),\ apply_bonus_callback = CALLBACK(src, PROC_REF(on_fish_land)),\ - sound_on_success = 'sound/weapons/parry.ogg',\ + sound_on_success = 'sound/items/weapons/parry.ogg',\ effect_on_success = /obj/effect/temp_visual/guardian/phase,\ ) @@ -188,7 +186,7 @@ var/obj/item/bodypart/arm/active_arm = user.get_active_hand() active_arm?.dismember() to_chat(user, span_warning("[src] explodes!")) - playsound(src, 'sound/effects/explosion1.ogg', 40, TRUE) + playsound(src, 'sound/effects/explosion/explosion1.ogg', 40, TRUE) user.flash_act(1, 1) qdel(src) @@ -201,7 +199,7 @@ maximum_bonus = 30 /obj/item/fish/lavaloop/plasma_river/explode_on_user(mob/living/user) - playsound(src, 'sound/effects/explosion1.ogg', 40, TRUE) + playsound(src, 'sound/effects/explosion/explosion1.ogg', 40, TRUE) user.flash_act(1, 1) user.apply_status_effect(/datum/status_effect/ice_block_talisman, 5 SECONDS) qdel(src) diff --git a/code/modules/fishing/fish/types/saltwater.dm b/code/modules/fishing/fish/types/saltwater.dm index afb14436fadfc..74f1d1d32b9e0 100644 --- a/code/modules/fishing/fish/types/saltwater.dm +++ b/code/modules/fishing/fish/types/saltwater.dm @@ -129,8 +129,8 @@ sharpness = SHARP_EDGED attack_verb_continuous = list("slashes", "cuts", "pierces") attack_verb_simple = list("slash", "cut", "pierce") - block_sound = 'sound/weapons/parry.ogg' - hitsound = 'sound/weapons/rapierhit.ogg' + block_sound = 'sound/items/weapons/parry.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' demolition_mod = 0.75 attack_speed = 1 SECONDS block_chance = 50 diff --git a/code/modules/fishing/fish/types/station.dm b/code/modules/fishing/fish/types/station.dm index baf104ae14f2f..70e641fa3e900 100644 --- a/code/modules/fishing/fish/types/station.dm +++ b/code/modules/fishing/fish/types/station.dm @@ -6,7 +6,7 @@ sprite_height = 5 random_case_rarity = FISH_RARITY_RARE required_fluid_type = AQUARIUM_FLUID_FRESHWATER - stable_population = 10 //set by New, but this is the default config value + stable_population = /datum/config_entry/number/mice_roundstart::default //set by New, but this is the default config value fillet_type = /obj/item/food/meat/slab/human/mutant/zombie //eww... fish_traits = list(/datum/fish_trait/necrophage) required_temperature_min = MIN_AQUARIUM_TEMP+15 @@ -100,3 +100,129 @@ /obj/item/fish/slimefish/get_base_edible_reagents_to_add() return list(/datum/reagent/toxin/slimejelly = 5) + +/obj/item/fish/fryish + name = "fryish" + desc = "A youngling of the Fritterish family of delicious extremophile, piscine lifeforms. Just don't tell 'Mankind for Ethical Animal Treatment' you ate it." + icon_state = "fryish" + sprite_width = 3 + sprite_height = 3 + average_size = 20 + average_weight = 400 + random_case_rarity = FISH_RARITY_VERY_RARE + required_fluid_type = AQUARIUM_FLUID_ANY_WATER + stable_population = 8 + fillet_type = /obj/item/food/nugget/fish + fish_traits = list(/datum/fish_trait/picky_eater, /datum/fish_trait/no_mating) + compatible_types = list(/obj/item/fish/fryish/fritterish, /obj/item/fish/fryish/nessie) + spawn_types = list(/obj/item/fish/fryish) + required_temperature_min = MIN_AQUARIUM_TEMP+50 + required_temperature_max = MIN_AQUARIUM_TEMP+220 + fish_movement_type = /datum/fish_movement/zippy + favorite_bait = list( + list( + FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE, + FISH_BAIT_VALUE = FRIED, + ) + ) + disliked_bait = list( + list( + FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE, + FISH_BAIT_VALUE = GROSS|RAW, + ) + ) + beauty = FISH_BEAUTY_GOOD + fishing_difficulty_modifier = -5 + ///Is this a baitfish? + var/is_bait = TRUE + ///The evolution datum of the next thing we grow into, given time (and food) + var/next_type = /datum/fish_evolution/fritterish + ///How long does it take for us to grow up? + var/growth_time = 5 MINUTES + +/obj/item/fish/fryish/Initialize(mapload) + . = ..() + if(is_bait) + add_traits(list(TRAIT_FISHING_BAIT, TRAIT_GREAT_QUALITY_BAIT), INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_FISH_SURVIVE_COOKING, INNATE_TRAIT) + +/obj/item/fish/fryish/update_size_and_weight(new_size = average_size, new_weight = average_weight) + . = ..() + if(!next_type) + return + var/multiplier = (size / average_size) * (weight / average_weight) + + AddComponent(/datum/component/fish_growth, next_type, growth_time * multiplier, use_drop_loc = FALSE) + +/obj/item/fish/fryish/get_fish_taste() + return list("fried fish" = 1) + +/obj/item/fish/fryish/get_fish_taste_cooked() + return list("extra-fried fish" = 1) + +/obj/item/fish/fryish/get_food_types() + return FRIED|MEAT|SEAFOOD + +/obj/item/fish/fryish/get_base_edible_reagents_to_add() + var/list/return_list = list( + /datum/reagent/consumable/nutriment/protein = 2, + /datum/reagent/consumable/nutriment/fat = 1.5, + ) + return return_list + +/obj/item/fish/fryish/fritterish + name = "fritterish" + desc = "A deliciously extremophile alien fish. This one looks like a taiyaki." + icon_state = "fritterish" + average_size = 50 + average_weight = 1000 + sprite_width = 5 + sprite_height = 3 + stable_population = 5 + fish_traits = list(/datum/fish_trait/picky_eater) + compatible_types = list(/obj/item/fish/fryish, /obj/item/fish/fryish/nessie) + fish_movement_type = /datum/fish_movement + is_bait = FALSE + next_type = /datum/fish_evolution/nessie + growth_time = 10 MINUTES + +/obj/item/fish/fryish/fritterish/Initialize(mapload, apply_qualities = TRUE) + . = ..() + base_icon_state = icon_state = pick("fritterish", "bernardfish", "matthewfish") + switch(icon_state) + if("bernardfish") + name = "bernard-fish" + desc = "A deliciously extremophile alien fish shaped like a dinosaur. Children love it." + sprite_width = 4 + sprite_height = 6 + if("matthewfish") + desc = "A deliciously extremophile alien fish shaped like a pterodactyl. Children love it." + name = "matthew-fish" + sprite_width = 6 + +/obj/item/fish/fryish/nessie + name = "nessie-fish" + desc = "A deliciously extremophile alien fish. This one is so big, you could write legends about it." + icon = 'icons/obj/aquarium/wide.dmi' + icon_state = "nessiefish" + base_pixel_x = -16 + pixel_x = -16 + sprite_width = 12 + sprite_height = 4 + average_size = 150 + average_weight = 6000 + health = 125 + feeding_frequency = 5 MINUTES + breeding_timeout = 5 MINUTES + random_case_rarity = FISH_RARITY_NOPE + stable_population = 3 + num_fillets = 2 + fish_traits = list(/datum/fish_trait/picky_eater, /datum/fish_trait/predator) + compatible_types = list(/obj/item/fish/fryish, /obj/item/fish/fryish/fritterish) + spawn_types = list(/obj/item/fish/fryish/fritterish) + fish_movement_type = /datum/fish_movement + beauty = FISH_BEAUTY_EXCELLENT + fishing_difficulty_modifier = 45 + fish_flags = parent_type::fish_flags & ~FISH_FLAG_SHOW_IN_CATALOG + is_bait = FALSE + next_type = null diff --git a/code/modules/fishing/fish/types/syndicate.dm b/code/modules/fishing/fish/types/syndicate.dm index bf99f4302818e..8732bb8f0bd3b 100644 --- a/code/modules/fishing/fish/types/syndicate.dm +++ b/code/modules/fishing/fish/types/syndicate.dm @@ -64,7 +64,7 @@ block_chance = 15 attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") - hitsound = 'sound/weapons/chainsawhit.ogg' + hitsound = 'sound/items/weapons/chainsawhit.ogg' sharpness = SHARP_EDGED tool_behaviour = TOOL_SAW toolspeed = 0.5 @@ -180,8 +180,8 @@ inhand_icon_state = "armored_pike" attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore") - hitsound = 'sound/weapons/bladeslice.ogg' - block_sound = 'sound/weapons/parry.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' + block_sound = 'sound/items/weapons/parry.ogg' force = 20 sharpness = SHARP_EDGED wound_bonus = -15 @@ -199,6 +199,7 @@ beauty = FISH_BEAUTY_GREAT fishing_difficulty_modifier = 20 fish_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive, /datum/fish_trait/picky_eater, /datum/fish_trait/stinger) + evolution_types = null compatible_types = list(/obj/item/fish/pike) favorite_bait = list( list( diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm index 7fb33da74ffad..7e46618accf72 100644 --- a/code/modules/fishing/fishing_equipment.dm +++ b/code/modules/fishing/fishing_equipment.dm @@ -99,7 +99,7 @@ if(!movable_target.safe_throw_at(destination, source.cast_range, 2, callback = throw_callback, gentle = please_be_gentle)) UnregisterSignal(movable_target, COMSIG_ATOM_PREHITBY) else - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) /obj/item/fishing_line/auto_reel/proc/catch_it_chucklenut(obj/item/source, atom/hit_atom, datum/thrownthing/throwingdatum) SIGNAL_HANDLER diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 073158b8fdc0f..bf4cd463ef1ab 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -304,6 +304,9 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) send_alert("stopped fishing") complete(FALSE) +///The multiplier of the fishing experience malus if the user's level is substantially above the difficulty. +#define EXPERIENCE_MALUS_MULT 0.08 + /datum/fishing_challenge/proc/complete(win = FALSE) if(completed) return @@ -311,13 +314,14 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) completed = TRUE if(phase == MINIGAME_PHASE) remove_minigame_hud() - if(!QDELETED(user)) - if(start_time) - var/seconds_spent = (world.time - start_time) * 0.1 - if(!(special_effects & FISHING_MINIGAME_RULE_NO_EXP)) - user.mind?.adjust_experience(/datum/skill/fishing, round(seconds_spent * FISHING_SKILL_EXP_PER_SECOND * experience_multiplier)) - if(user.mind?.get_skill_level(/datum/skill/fishing) >= SKILL_LEVEL_LEGENDARY) - user.client?.give_award(/datum/award/achievement/skill/legendary_fisher, user) + if(!QDELETED(user) && user.mind && start_time && !(special_effects & FISHING_MINIGAME_RULE_NO_EXP)) + var/seconds_spent = (world.time - start_time) * 0.1 + var/extra_exp_malus = user.mind.get_skill_level(/datum/skill/fishing) - difficulty * 0.1 + if(extra_exp_malus > 0) + experience_multiplier /= (1 + extra_exp_malus * EXPERIENCE_MALUS_MULT) + user.mind.adjust_experience(/datum/skill/fishing, round(seconds_spent * FISHING_SKILL_EXP_PER_SECOND * experience_multiplier)) + if(user.mind.get_skill_level(/datum/skill/fishing) >= SKILL_LEVEL_LEGENDARY) + user.client?.give_award(/datum/award/achievement/skill/legendary_fisher, user) if(win) if(reward_path != FISHING_DUD) playsound(location, 'sound/effects/bigsplash.ogg', 100) @@ -325,6 +329,8 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) if(!QDELETED(src)) qdel(src) +#undef EXPERIENCE_MALUS_MULT + /datum/fishing_challenge/proc/start_baiting_phase(penalty = FALSE) reward_path = null //In case we missed the biting phase, set the path back to null var/wait_time diff --git a/code/modules/fishing/fishing_portal_machine.dm b/code/modules/fishing/fishing_portal_machine.dm index f322bf92c78e3..e1be9dc909ba9 100644 --- a/code/modules/fishing/fishing_portal_machine.dm +++ b/code/modules/fishing/fishing_portal_machine.dm @@ -125,11 +125,11 @@ var/datum/fish_source/stored = linked_fishing_spots[other_spot] if(stored == source) spot.balloon_alert(user, "already linked!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 15, FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 15, FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING if(HAS_TRAIT(spot, TRAIT_UNLINKABLE_FISHING_SPOT)) spot.balloon_alert(user, "unlinkable fishing spot!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 15, FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 15, FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING LAZYSET(linked_fishing_spots, spot, source) RegisterSignal(spot, SIGNAL_REMOVETRAIT(TRAIT_FISHING_SPOT), PROC_REF(unlink_fishing_spot)) @@ -284,7 +284,11 @@ var/list/choices = list() for(var/radial_name in available_fish_sources) var/datum/fish_source/source = available_fish_sources[radial_name] - choices[radial_name] = image(icon = 'icons/hud/radial_fishing.dmi', icon_state = source.radial_state) + var/mutable_appearance/radial_icon = mutable_appearance('icons/hud/radial_fishing.dmi', source.radial_state) + if(!istype(source, /datum/fish_source/portal)) + //a little star on the top-left to distinguishs them from standard portals. + radial_icon.add_overlay('icons/hud/radial_fishing.dmi', "linked_source") + choices[radial_name] = radial_icon var/choice = show_radial_menu(user, src, choices, radius = 38, custom_check = CALLBACK(src, TYPE_PROC_REF(/atom, can_interact), user), tooltips = TRUE) if(!choice || !can_interact(user)) diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index f18637e3b35ca..23aabcc3ece7c 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -142,12 +142,19 @@ /obj/item/fishing_rod/proc/reel(mob/user) if(DOING_INTERACTION_WITH_TARGET(user, currently_hooked)) return + playsound(src, SFX_REEL, 50, vary = FALSE) - if(!do_after(user, 0.8 SECONDS, currently_hooked, timed_action_flags = IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE, extra_checks = CALLBACK(src, PROC_REF(fishing_line_check)))) + var/time = (0.8 - round(user.mind?.get_skill_level(/datum/skill/fishing) * 0.04, 0.1)) SECONDS + if(!do_after(user, time, currently_hooked, timed_action_flags = IGNORE_USER_LOC_CHANGE|IGNORE_TARGET_LOC_CHANGE, extra_checks = CALLBACK(src, PROC_REF(fishing_line_check)))) return + if(currently_hooked.anchored || currently_hooked.move_resist >= MOVE_FORCE_STRONG) balloon_alert(user, "[currently_hooked.p_they()] won't budge!") return + + //About thirty minutes of non-stop reeling to get from zero to master... not worth it but hey, you do what you do. + user.mind?.adjust_experience(/datum/skill/fishing, time * 0.13) + //Try to move it 'till it's under the user's feet, then try to pick it up if(isitem(currently_hooked)) var/obj/item/item = currently_hooked @@ -195,6 +202,15 @@ fishing_line = null currently_hooked = null +/obj/item/fishing_rod/proc/get_cast_range(mob/living/user) + . = cast_range + if(!user && !isliving(loc)) + return + user = loc + if(!user.is_holding(src) || !user.mind) + return + . += round(user.mind.get_skill_level(/datum/skill/fishing) * 0.3) + /obj/item/fishing_rod/dropped(mob/user, silent) . = ..() QDEL_NULL(fishing_line) @@ -215,7 +231,7 @@ SIGNAL_HANDLER . = NONE - if(!CheckToolReach(src, source.target, cast_range)) + if(!CheckToolReach(src, source.target, get_cast_range())) qdel(source) return BEAM_CANCEL_DRAW @@ -260,7 +276,7 @@ return casting = TRUE var/obj/projectile/fishing_cast/cast_projectile = new(get_turf(src)) - cast_projectile.range = cast_range + cast_projectile.range = get_cast_range(user) cast_projectile.owner = src cast_projectile.original = target cast_projectile.fired_from = src @@ -555,7 +571,7 @@ inhand_icon_state = active ? "rod" : null // When inactive, there is no inhand icon_state. if(user) balloon_alert(user, active ? "extended" : "collapsed") - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) update_appearance() QDEL_NULL(fishing_line) return COMPONENT_NO_DEFAULT_MESSAGE diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm index ef2cdf87989a1..2f56ffaad3cd1 100644 --- a/code/modules/fishing/sources/source_types.dm +++ b/code/modules/fishing/sources/source_types.dm @@ -1,4 +1,6 @@ /datum/fish_source/ocean + radial_state = "seaboat" + overlay_state = "portal_ocean" fish_table = list( FISHING_DUD = 10, /obj/effect/spawner/message_in_a_bottle = 4, @@ -33,9 +35,13 @@ /datum/fish_source/ocean/beach catalog_description = "Beach shore water" + radial_state = "palm_beach" + overlay_state = "portal_beach" /datum/fish_source/ice_fishing catalog_description = "Ice-covered water" + radial_state = "ice" + overlay_state = "portal_ocean" fish_table = list( FISHING_DUD = 4, /obj/item/fish/arctic_char = 5, @@ -47,6 +53,8 @@ /datum/fish_source/river catalog_description = "River water" + radial_state = "river" + overlay_state = "portal_river" fish_table = list( FISHING_DUD = 4, /obj/item/fish/goldfish = 5, @@ -72,6 +80,7 @@ /datum/fish_source/sand catalog_description = "Sand" + radial_state = "palm_beach" fish_table = list( FISHING_DUD = 8, /obj/item/fish/sand_crab = 10, @@ -84,6 +93,7 @@ /datum/fish_source/cursed_spring catalog_description = null //it's a secret (sorta, I know you're reading this) + radial_state = "cursed" fish_table = list( FISHING_DUD = 2, /obj/item/fish/soul = 3, @@ -295,12 +305,13 @@ /datum/fish_source/chasm catalog_description = "Chasm depths" background = "background_lavaland" + radial_state = "ground_hole" + overlay_state = "portal_chasm" fish_table = list( FISHING_DUD = 5, /obj/item/fish/chasm_crab = 15, /datum/chasm_detritus = 30, ) - fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5 /datum/fish_source/chasm/on_start_fishing(obj/item/fishing_rod/rod, mob/fisherman, atom/parent) @@ -324,6 +335,8 @@ /datum/fish_source/lavaland catalog_description = "Lava vents" background = "background_lavaland" + radial_state = "lava" + overlay_state = "portal_lava" fish_table = list( FISHING_DUD = 5, /obj/item/stack/ore/slag = 20, @@ -367,6 +380,7 @@ /datum/fish_source/moisture_trap catalog_description = "Moisture trap basins" + radial_state = "garbage" fish_table = list( FISHING_DUD = 20, /obj/item/fish/ratfish = 10, @@ -376,6 +390,7 @@ /datum/fish_source/toilet catalog_description = "Station toilets" + radial_state = "toilet" duds = list("ewww... nothing", "it was nothing", "it was toilet paper", "it was flushed away", "the hook is empty", "where's the damn money?!") fish_table = list( FISHING_DUD = 18, @@ -435,6 +450,8 @@ /datum/fish_source/oil_well catalog_description = "Oil wells" + radial_state = "oil" + overlay_state = "portal_chasm" //close enough to pitch black fish_table = list( FISHING_DUD = 5, /obj/item/fish/boned = 10, @@ -457,6 +474,7 @@ /datum/fish_source/hydro_tray catalog_description = "Hydroponics trays" + radial_state = "hydro" fish_table = list( FISHING_DUD = 25, /obj/item/food/grown/grass = 25, @@ -561,3 +579,24 @@ var/picked_path = pick(seeds_to_draw_from) return new picked_path(get_turf(fishing_spot)) + +/datum/fish_source/deepfryer + catalog_description = "Deep Fryers" + radial_state = "fryer" + fish_table = list( + /obj/item/food/badrecipe = 15, + /obj/item/food/nugget = 5, + /obj/item/fish/fryish = 40, + /obj/item/fish/fryish/fritterish = 4, + /obj/item/fish/fryish/nessie = 1, + ) + fish_counts = list( + /obj/item/fish/fryish = 10, + /obj/item/fish/fryish/fritterish = 4, + /obj/item/fish/fryish/nessie = 1, + ) + fish_count_regen = list( + /obj/item/fish/fryish = 2 MINUTES, + /obj/item/fish/fryish/fritterish = 6 MINUTES, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 13 diff --git a/code/modules/food_and_drinks/machinery/deep_fryer.dm b/code/modules/food_and_drinks/machinery/deep_fryer.dm index 92270d92fd0e2..313bc29d199dc 100644 --- a/code/modules/food_and_drinks/machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/machinery/deep_fryer.dm @@ -63,6 +63,8 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( reagents.add_reagent(/datum/reagent/consumable/nutriment/fat/oil, 25) fry_loop = new(src, FALSE) RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_cleaned)) + AddElement(/datum/element/lazy_fishing_spot, /datum/fish_source/deepfryer) + AddElement(/datum/element/fish_safe_storage) //Prevents fryish and fritterish from dying inside the deepfryer. /obj/machinery/deepfryer/Destroy() QDEL_NULL(fry_loop) diff --git a/code/modules/food_and_drinks/machinery/food_cart.dm b/code/modules/food_and_drinks/machinery/food_cart.dm index a14ea3593c51a..9549bcc7ae1d3 100644 --- a/code/modules/food_and_drinks/machinery/food_cart.dm +++ b/code/modules/food_and_drinks/machinery/food_cart.dm @@ -86,7 +86,7 @@ return var/obj/item/card/id/id_card = user.get_idcard(hand_first = TRUE) if(!check_access(id_card)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return to_chat(user, span_notice("You attempt to [unpacked ? "pack up" :"unpack"] [src]...")) if(!do_after(user, 5 SECONDS, src)) diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm index 92687aee8d088..ae6e3945c94b4 100644 --- a/code/modules/food_and_drinks/machinery/microwave.dm +++ b/code/modules/food_and_drinks/machinery/microwave.dm @@ -489,7 +489,7 @@ vampire_charging_enabled = !vampire_charging_enabled balloon_alert(user, "set to [vampire_charging_enabled ? "charge" : "cook"]") - playsound(src, 'sound/machines/twobeep_high.ogg', 50, FALSE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, FALSE) if(HAS_SILICON_ACCESS(user)) visible_message(span_notice("[user] sets \the [src] to [vampire_charging_enabled ? "charge" : "cook"]."), blind_message = span_notice("You hear \the [src] make an informative beep!")) return CLICK_ACTION_SUCCESS @@ -588,11 +588,11 @@ if(wire_disabled) audible_message("[src] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return if(cell_powered && cell?.charge < TIER_1_CELL_CHARGE_RATE * efficiency) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) balloon_alert(cooker, "no power draw!") return @@ -628,7 +628,7 @@ /obj/machinery/microwave/proc/wzhzhzh() if(cell_powered && !isnull(cell)) if(!cell.use(TIER_1_CELL_CHARGE_RATE * efficiency)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return visible_message(span_notice("\The [src] turns on."), null, span_hear("You hear a microwave humming.")) @@ -808,13 +808,13 @@ /obj/machinery/microwave/proc/vampire(mob/cooker) var/obj/item/modular_computer/vampire_pda = LAZYACCESS(ingredients, 1) if(isnull(vampire_pda)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) after_finish_loop() return vampire_cell = vampire_pda.internal_cell if(isnull(vampire_cell)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) after_finish_loop() return @@ -825,7 +825,7 @@ /obj/machinery/microwave/proc/charge(mob/cooker) if(!vampire_charging_capable) balloon_alert(cooker, "needs upgrade!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return if(operating || broken > 0 || panel_open || dirty >= MAX_MICROWAVE_DIRTINESS) @@ -833,14 +833,14 @@ if(wire_disabled) audible_message("[src] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return // We should only be charging PDAs for(var/atom/movable/potential_item as anything in ingredients) if(!istype(potential_item, /obj/item/modular_computer)) balloon_alert(cooker, "pda only!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) eject() return diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm index ed0e5d448cd25..0481d1c491092 100644 --- a/code/modules/food_and_drinks/machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/machinery/smartfridge.dm @@ -253,9 +253,9 @@ /obj/machinery/smartfridge/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src.loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/smartfridge/atom_break(damage_flag) playsound(src, SFX_SHATTER, 50, TRUE) diff --git a/code/modules/food_and_drinks/machinery/stove_component.dm b/code/modules/food_and_drinks/machinery/stove_component.dm index fcbabafc2d12c..c5e32b541995e 100644 --- a/code/modules/food_and_drinks/machinery/stove_component.dm +++ b/code/modules/food_and_drinks/machinery/stove_component.dm @@ -132,7 +132,7 @@ real_parent.balloon_alert_to_viewers("burners [on ? "on" : "off"]") playsound(real_parent, 'sound/machines/click.ogg', 30, TRUE) - playsound(real_parent, on ? 'sound/items/welderactivate.ogg' : 'sound/items/welderdeactivate.ogg', 15, TRUE) + playsound(real_parent, on ? 'sound/items/tools/welderactivate.ogg' : 'sound/items/tools/welderdeactivate.ogg', 15, TRUE) /datum/component/stove/proc/on_attackby(obj/machinery/source, obj/item/attacking_item, mob/user, params) SIGNAL_HANDLER diff --git a/code/modules/food_and_drinks/plate.dm b/code/modules/food_and_drinks/plate.dm index add7eecaf92e0..ef88a4758115b 100644 --- a/code/modules/food_and_drinks/plate.dm +++ b/code/modules/food_and_drinks/plate.dm @@ -121,7 +121,7 @@ icon = 'icons/obj/service/kitchen.dmi' icon_state = "plate_shard1" base_icon_state = "plate_shard" - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' w_class = WEIGHT_CLASS_TINY force = 5 throwforce = 5 diff --git a/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm b/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm index 77606f5e37210..78b9623c3a016 100644 --- a/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm +++ b/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm @@ -224,7 +224,7 @@ /datum/chemical_reaction/drink/moscow_mule results = list(/datum/reagent/consumable/ethanol/moscow_mule = 10) required_reagents = list(/datum/reagent/consumable/sol_dry = 5, /datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/ice = 1) - mix_sound = 'sound/effects/bubbles2.ogg' + mix_sound = 'sound/effects/bubbles/bubbles2.ogg' /datum/chemical_reaction/drink/painkiller results = list(/datum/reagent/consumable/ethanol/painkiller = 10) @@ -361,7 +361,7 @@ /datum/chemical_reaction/drink/bacchus_blessing results = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 4) required_reagents = list(/datum/reagent/consumable/ethanol/hooch = 1, /datum/reagent/consumable/ethanol/absinthe = 1, /datum/reagent/consumable/ethanol/manly_dorf = 1, /datum/reagent/consumable/ethanol/syndicatebomb = 1) - mix_message = "The mixture turns to a sickening froth." + mix_message = span_warning("The mixture turns to a sickening froth.") /datum/chemical_reaction/drink/eggnog results = list(/datum/reagent/consumable/ethanol/eggnog = 15) @@ -378,7 +378,7 @@ results = list(/datum/reagent/consumable/ethanol/quadruple_sec = 15) required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 5, /datum/reagent/consumable/triple_citrus = 5, /datum/reagent/consumable/grenadine = 5) mix_message = "The snap of a taser emanates clearly from the mixture as it settles." - mix_sound = 'sound/weapons/taser.ogg' + mix_sound = 'sound/items/weapons/taser.ogg' reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER /datum/chemical_reaction/drink/grasshopper @@ -394,7 +394,7 @@ results = list(/datum/reagent/consumable/ethanol/quintuple_sec = 15) required_reagents = list(/datum/reagent/consumable/ethanol/quadruple_sec = 5, /datum/reagent/consumable/nutriment/soup/clown_tears = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5) mix_message = "Judgement is upon you." - mix_sound = 'sound/items/airhorn2.ogg' + mix_sound = 'sound/items/airhorn/airhorn2.ogg' reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER /datum/chemical_reaction/drink/bastion_bourbon @@ -481,14 +481,14 @@ results = list(/datum/reagent/consumable/ethanol/wizz_fizz = 3) required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/ethanol/champagne = 1) mix_message = "The beverage starts to froth with an almost mystical zeal!" - mix_sound = 'sound/effects/bubbles2.ogg' + mix_sound = 'sound/effects/bubbles/bubbles2.ogg' reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER /datum/chemical_reaction/drink/bug_spray results = list(/datum/reagent/consumable/ethanol/bug_spray = 5) required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 2, /datum/reagent/consumable/lemon_lime = 1, /datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vodka = 1) mix_message = "The faint aroma of summer camping trips wafts through the air; but what's that buzzing noise?" - mix_sound = 'sound/creatures/bee.ogg' + mix_sound = 'sound/mobs/non-humanoids/bee/bee.ogg' reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER /datum/chemical_reaction/drink/jack_rose @@ -579,7 +579,7 @@ results = list(/datum/reagent/consumable/ethanol/pod_tesla = 15) required_reagents = list(/datum/reagent/consumable/ethanol/telepole = 5, /datum/reagent/consumable/ethanol/brave_bull = 3, /datum/reagent/consumable/ethanol/admiralty = 5) mix_message = "Arcs of lightning fly from the mixture." - mix_sound = 'sound/weapons/zapbang.ogg' + mix_sound = 'sound/items/weapons/zapbang.ogg' /datum/chemical_reaction/drink/yuyakita results = list(/datum/reagent/consumable/ethanol/yuyakita = 4) diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index 282910007dd81..e4ef45bda7fde 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -274,7 +274,7 @@ results = list(/datum/reagent/consumable/salt = 2) required_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 2, /datum/reagent/consumable/grounding_solution = 1) mix_message = "The mixture lets off a sharp snap as the electricity discharges." - mix_sound = 'sound/weapons/taser.ogg' + mix_sound = 'sound/items/weapons/taser.ogg' reaction_flags = REACTION_INSTANT /datum/chemical_reaction/food/martian_batter diff --git a/code/modules/food_and_drinks/restaurant/customers/_customer.dm b/code/modules/food_and_drinks/restaurant/customers/_customer.dm index 646f31f80c67b..653ce81b7d461 100644 --- a/code/modules/food_and_drinks/restaurant/customers/_customer.dm +++ b/code/modules/food_and_drinks/restaurant/customers/_customer.dm @@ -39,7 +39,7 @@ ///Base icon state for the customer var/base_icon_state = "amerifat" ///Sound to use when this robot type speaks - var/speech_sound = 'sound/creatures/tourist/tourist_talk.ogg' + var/speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk.ogg' /// Is this unique once per venue? var/is_unique = FALSE @@ -159,7 +159,7 @@ first_warning_line = "Get your hands off of me!" second_warning_line = "Do not touch me you filthy animal, last warning!" self_defense_line = "I will break you like a baguette!" - speech_sound = 'sound/creatures/tourist/tourist_talk_french.ogg' + speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk_french.ogg' orderable_objects = list( VENUE_RESTAURANT = list( /obj/item/food/baguette = 20, @@ -203,7 +203,7 @@ first_warning_line = "Don't touch me you pervert!" second_warning_line = "I'm going to go super saiyan if you touch me again! Last warning!" self_defense_line = "OMAE WA MO, SHINDEROU!" - speech_sound = 'sound/creatures/tourist/tourist_talk_japanese1.ogg' + speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk_japanese1.ogg' orderable_objects = list( VENUE_RESTAURANT = list( /datum/custom_order/icecream = 4, @@ -247,7 +247,7 @@ first_warning_line = "Hey, only my employer gets to mess with me like that." second_warning_line = "Leave me be, I'm trying to focus. Last warning!" self_defense_line = "I didn't want it to end up like this." - speech_sound = 'sound/creatures/tourist/tourist_talk_japanese2.ogg' + speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk_japanese2.ogg' orderable_objects = list( VENUE_RESTAURANT = list( /datum/reagent/consumable/nutriment/soup/miso = 6, @@ -282,7 +282,7 @@ second_warning_line = "Last warning! I'll destroy you!" self_defense_line = "Flap attack!" - speech_sound = 'sound/creatures/tourist/tourist_talk_moth.ogg' + speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk_moth.ogg' orderable_objects = list( VENUE_RESTAURANT = list( @@ -342,7 +342,7 @@ /datum/customer_data/mexican base_icon_state = "mexican" prefix_file = "strings/names/mexican_prefix.txt" - speech_sound = 'sound/creatures/tourist/tourist_talk_mexican.ogg' + speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk_mexican.ogg' clothing_sets = list("mexican_poncho") orderable_objects = list( VENUE_RESTAURANT = list( @@ -382,7 +382,7 @@ /datum/customer_data/british base_icon_state = "british" prefix_file = "strings/names/british_prefix.txt" - speech_sound = 'sound/creatures/tourist/tourist_talk_british.ogg' + speech_sound = 'sound/mobs/non-humanoids/tourist/tourist_talk_british.ogg' friendly_pull_line = "I don't enjoy being pulled around like this." first_warning_line = "Our sovereign lord the Queen chargeth and commandeth all persons, being assembled, immediately to disperse themselves." diff --git a/code/modules/hallucination/battle.dm b/code/modules/hallucination/battle.dm index 4bbf9729cdeb6..2a50093e3a015 100644 --- a/code/modules/hallucination/battle.dm +++ b/code/modules/hallucination/battle.dm @@ -11,9 +11,9 @@ /// The upper end to how many shots we'll fire. var/shots_to_fire_upper_range = 6 /// The sound effect we play when we "fire" a shot. - var/fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' + var/fire_sound = 'sound/items/weapons/gun/shotgun/shot.ogg' /// The sound we make when our shot actually "hits" "someone". - var/hit_person_sound = 'sound/weapons/pierce.ogg' + var/hit_person_sound = 'sound/items/weapons/pierce.ogg' /// The sound we make when our shot misses someone and "hits" a "wall". var/hit_wall_sound = SFX_RICOCHET /// The number of successful hits required to "down" the "someone" we're firing at. @@ -60,9 +60,9 @@ /datum/hallucination/battle/gun/disabler shots_to_fire_lower_range = 5 shots_to_fire_upper_range = 10 - fire_sound = 'sound/weapons/taser2.ogg' - hit_person_sound = 'sound/weapons/tap.ogg' - hit_wall_sound = 'sound/weapons/effects/searwall.ogg' + fire_sound = 'sound/items/weapons/taser2.ogg' + hit_person_sound = 'sound/items/weapons/tap.ogg' + hit_wall_sound = 'sound/items/weapons/effects/searwall.ogg' number_of_hits_to_end = 3 chance_to_fall = 70 @@ -70,9 +70,9 @@ /datum/hallucination/battle/gun/laser shots_to_fire_lower_range = 5 shots_to_fire_upper_range = 10 - fire_sound = 'sound/weapons/laser.ogg' - hit_person_sound = 'sound/weapons/sear.ogg' - hit_wall_sound = 'sound/weapons/effects/searwall.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' + hit_person_sound = 'sound/items/weapons/sear.ogg' + hit_wall_sound = 'sound/items/weapons/effects/searwall.ogg' number_of_hits_to_end = 4 chance_to_fall = 70 @@ -82,7 +82,7 @@ /datum/hallucination/battle/stun_prod/start() var/turf/source = random_far_turf() - hallucinator.playsound_local(source, 'sound/weapons/egloves.ogg', 40, TRUE) + hallucinator.playsound_local(source, 'sound/items/weapons/egloves.ogg', 40, TRUE) hallucinator.playsound_local(source, SFX_BODYFALL, 25, TRUE) addtimer(CALLBACK(src, PROC_REF(fake_cuff), source), 2 SECONDS) return TRUE @@ -92,7 +92,7 @@ if(QDELETED(src) || QDELETED(hallucinator) || !source) return - hallucinator.playsound_local(source, 'sound/weapons/cablecuff.ogg', 15, TRUE) + hallucinator.playsound_local(source, 'sound/items/weapons/cablecuff.ogg', 15, TRUE) qdel(src) /// A hallucination of someone being stun batonned, and subsequently harmbatonned. @@ -101,7 +101,7 @@ /datum/hallucination/battle/harm_baton/start() var/turf/source = random_far_turf() - hallucinator.playsound_local(source, 'sound/weapons/egloves.ogg', 40, TRUE) + hallucinator.playsound_local(source, 'sound/items/weapons/egloves.ogg', 40, TRUE) hallucinator.playsound_local(source, SFX_BODYFALL, 25, TRUE) addtimer(CALLBACK(src, PROC_REF(harmbaton_loop), source, rand(5, 12)), 2 SECONDS) @@ -126,7 +126,7 @@ /datum/hallucination/battle/e_sword/start() var/turf/source = random_far_turf() - hallucinator.playsound_local(source, 'sound/weapons/saberon.ogg', 15, 1) + hallucinator.playsound_local(source, 'sound/items/weapons/saberon.ogg', 15, 1) addtimer(CALLBACK(src, PROC_REF(stab_loop), source, rand(4, 8)), CLICK_CD_MELEE) return TRUE @@ -136,10 +136,10 @@ return if(stabs_remaining >= 1) - hallucinator.playsound_local(source, 'sound/weapons/blade1.ogg', 50, TRUE) + hallucinator.playsound_local(source, 'sound/items/weapons/blade1.ogg', 50, TRUE) else - hallucinator.playsound_local(source, 'sound/weapons/saberoff.ogg', 15, TRUE) + hallucinator.playsound_local(source, 'sound/items/weapons/saberoff.ogg', 15, TRUE) qdel(src) return diff --git a/code/modules/hallucination/bolted_airlocks.dm b/code/modules/hallucination/bolted_airlocks.dm index 9fb180dfcae11..a275c775d66ec 100644 --- a/code/modules/hallucination/bolted_airlocks.dm +++ b/code/modules/hallucination/bolted_airlocks.dm @@ -102,11 +102,11 @@ /obj/effect/client_image_holder/hallucination/fake_door_lock/show_image_to(mob/show_to) . = ..() - show_to.playsound_local(get_turf(src), 'sound/machines/boltsdown.ogg', 30, FALSE, 3) + show_to.playsound_local(get_turf(src), 'sound/machines/airlock/boltsdown.ogg', 30, FALSE, 3) /obj/effect/client_image_holder/hallucination/fake_door_lock/hide_image_from(mob/show_to) . = ..() - show_to.playsound_local(get_turf(src), 'sound/machines/boltsup.ogg', 30, FALSE, 3) + show_to.playsound_local(get_turf(src), 'sound/machines/airlock/boltsup.ogg', 30, FALSE, 3) /obj/effect/client_image_holder/hallucination/fake_door_lock/proc/on_airlock_deleted(datum/source) SIGNAL_HANDLER diff --git a/code/modules/hallucination/delusions.dm b/code/modules/hallucination/delusions.dm index 106988f73277b..0760d05ff46c6 100644 --- a/code/modules/hallucination/delusions.dm +++ b/code/modules/hallucination/delusions.dm @@ -94,7 +94,7 @@ if(play_wabbajack) to_chat(hallucinator, span_hear("...wabbajack...wabbajack...")) - hallucinator.playsound_local(get_turf(hallucinator), 'sound/magic/staff_change.ogg', 50, TRUE) + hallucinator.playsound_local(get_turf(hallucinator), 'sound/effects/magic/staff_change.ogg', 50, TRUE) if(duration > 0) QDEL_IN(src, duration) @@ -191,7 +191,7 @@ /datum/hallucination/delusion/preset/cyborg/make_delusion_image(mob/over_who) . = ..() - hallucinator.playsound_local(get_turf(over_who), 'sound/voice/liveagain.ogg', 75, TRUE) + hallucinator.playsound_local(get_turf(over_who), 'sound/mobs/non-humanoids/cyborg/liveagain.ogg', 75, TRUE) /datum/hallucination/delusion/preset/ghost delusion_icon_file = 'icons/mob/simple/mob.dmi' diff --git a/code/modules/hallucination/fake_sound.dm b/code/modules/hallucination/fake_sound.dm index f5d750a114427..1d93be83f947c 100644 --- a/code/modules/hallucination/fake_sound.dm +++ b/code/modules/hallucination/fake_sound.dm @@ -34,40 +34,40 @@ /datum/hallucination/fake_sound/normal/airlock volume = 30 - sound_type = 'sound/machines/airlock.ogg' + sound_type = 'sound/machines/airlock/airlock.ogg' /datum/hallucination/fake_sound/normal/airlock_pry volume = 100 - sound_type = 'sound/machines/airlock_alien_prying.ogg' + sound_type = 'sound/machines/airlock/airlock_alien_prying.ogg' /datum/hallucination/fake_sound/normal/airlock_pry/play_fake_sound(turf/source, sound_to_play) . = ..() - queue_fake_sound(source, 'sound/machines/airlockforced.ogg', 50, TRUE, delay = 5 SECONDS) + queue_fake_sound(source, 'sound/machines/airlock/airlockforced.ogg', 50, TRUE, delay = 5 SECONDS) /datum/hallucination/fake_sound/normal/console volume = 25 - sound_type = 'sound/machines/terminal_prompt.ogg' + sound_type = 'sound/machines/terminal/terminal_prompt.ogg' /datum/hallucination/fake_sound/normal/boom - sound_type = list('sound/effects/explosion1.ogg', 'sound/effects/explosion2.ogg') + sound_type = list('sound/effects/explosion/explosion1.ogg', 'sound/effects/explosion/explosion2.ogg') /datum/hallucination/fake_sound/normal/distant_boom - sound_type = 'sound/effects/explosionfar.ogg' + sound_type = 'sound/effects/explosion/explosionfar.ogg' /datum/hallucination/fake_sound/normal/glass - sound_type = list('sound/effects/glassbr1.ogg', 'sound/effects/glassbr2.ogg', 'sound/effects/glassbr3.ogg') + sound_type = list('sound/effects/glass/glassbr1.ogg', 'sound/effects/glass/glassbr2.ogg', 'sound/effects/glass/glassbr3.ogg') /datum/hallucination/fake_sound/normal/alarm - volume = 100 - sound_type = 'sound/machines/alarm.ogg' + volume = 70 + sound_type = 'sound/announcer/alarm/nuke_alarm.ogg' /datum/hallucination/fake_sound/normal/beepsky volume = 35 - sound_type = 'sound/voice/beepsky/freeze.ogg' + sound_type = 'sound/mobs/non-humanoids/beepsky/freeze.ogg' /datum/hallucination/fake_sound/normal/mech volume = 40 - sound_type = 'sound/mecha/mechstep.ogg' + sound_type = 'sound/vehicles/mecha/mechstep.ogg' /// The turf the mech started walking from. var/turf/mech_source /// What dir is the mech walking? @@ -106,15 +106,15 @@ addtimer(CALLBACK(src, PROC_REF(mech_walk)), 1 SECONDS) /datum/hallucination/fake_sound/normal/wall_deconstruction - sound_type = 'sound/items/welder.ogg' + sound_type = 'sound/items/tools/welder.ogg' /datum/hallucination/fake_sound/normal/wall_deconstruction/play_fake_sound(turf/source, sound_to_play) . = ..() - queue_fake_sound(source, 'sound/items/welder2.ogg', delay = 10.5 SECONDS) - queue_fake_sound(source, 'sound/items/ratchet.ogg', delay = 12 SECONDS) + queue_fake_sound(source, 'sound/items/tools/welder2.ogg', delay = 10.5 SECONDS) + queue_fake_sound(source, 'sound/items/tools/ratchet.ogg', delay = 12 SECONDS) /datum/hallucination/fake_sound/normal/door_hacking - sound_type = 'sound/items/screwdriver.ogg' + sound_type = 'sound/items/tools/screwdriver.ogg' volume = 30 /datum/hallucination/fake_sound/normal/door_hacking/play_fake_sound(turf/source, sound_to_play) @@ -124,20 +124,20 @@ var/hacking_time = rand(4 SECONDS, 8 SECONDS) // Multitool sound. - queue_fake_sound(source, 'sound/weapons/empty.ogg', delay = 0.8 SECONDS) + queue_fake_sound(source, 'sound/items/weapons/empty.ogg', delay = 0.8 SECONDS) if(hacking_time > 4.5 SECONDS) // Another multitool sound if the hacking time is long. - queue_fake_sound(source, 'sound/weapons/empty.ogg', delay = 3 SECONDS) + queue_fake_sound(source, 'sound/items/weapons/empty.ogg', delay = 3 SECONDS) if(prob(50)) // Bonus multitool sound, rapidly after the last. - queue_fake_sound(source, 'sound/weapons/empty.ogg', delay = 3.5 SECONDS) + queue_fake_sound(source, 'sound/items/weapons/empty.ogg', delay = 3.5 SECONDS) if(hacking_time > 5.5 SECONDS) // A final multitool sound if the hacking time is very long. - queue_fake_sound(source, 'sound/weapons/empty.ogg', delay = 5 SECONDS) + queue_fake_sound(source, 'sound/items/weapons/empty.ogg', delay = 5 SECONDS) // Crowbarring it open. - queue_fake_sound(source, 'sound/machines/airlockforced.ogg', delay = hacking_time) + queue_fake_sound(source, 'sound/machines/airlock/airlockforced.ogg', delay = hacking_time) /datum/hallucination/fake_sound/normal/steam volume = 75 @@ -146,7 +146,7 @@ /datum/hallucination/fake_sound/normal/flash random_hallucination_weight = 2 // "it's revs" volume = 90 - sound_type = 'sound/weapons/flash.ogg' + sound_type = 'sound/items/weapons/flash.ogg' /datum/hallucination/fake_sound/weird abstract_hallucination_parent = /datum/hallucination/fake_sound/weird @@ -167,24 +167,24 @@ sound_vary = FALSE no_source = TRUE sound_type = list( - 'sound/ambience/antag/bloodcult/bloodcult_gain.ogg', - 'sound/ambience/antag/clockcultalr.ogg', - 'sound/ambience/antag/heretic/heretic_gain.ogg', - 'sound/ambience/antag/ling_alert.ogg', - 'sound/ambience/antag/malf.ogg', - 'sound/ambience/antag/ops.ogg', - 'sound/ambience/antag/spy.ogg', - 'sound/ambience/antag/tatoralert.ogg', + 'sound/music/antag/bloodcult/bloodcult_gain.ogg', + 'sound/music/antag/clockcultalr.ogg', + 'sound/music/antag/heretic/heretic_gain.ogg', + 'sound/music/antag/ling_alert.ogg', + 'sound/music/antag/malf.ogg', + 'sound/music/antag/ops.ogg', + 'sound/music/antag/spy.ogg', + 'sound/music/antag/traitor/tatoralert.ogg', ) /datum/hallucination/fake_sound/weird/chimp_event volume = 90 sound_vary = FALSE no_source = TRUE - sound_type = 'sound/ambience/antag/monkey.ogg' + sound_type = 'sound/music/antag/monkey.ogg' /datum/hallucination/fake_sound/weird/colossus - sound_type = 'sound/magic/clockwork/invoke_general.ogg' + sound_type = 'sound/effects/magic/clockwork/invoke_general.ogg' /datum/hallucination/fake_sound/weird/creepy @@ -197,11 +197,11 @@ volume = 40 sound_vary = FALSE no_source = TRUE - sound_type = 'sound/magic/curse.ogg' + sound_type = 'sound/effects/magic/curse.ogg' /datum/hallucination/fake_sound/weird/game_over sound_vary = FALSE - sound_type = 'sound/misc/compiler-failure.ogg' + sound_type = 'sound/machines/compiler/compiler-failure.ogg' /datum/hallucination/fake_sound/weird/hallelujah sound_vary = FALSE @@ -219,15 +219,15 @@ /datum/hallucination/fake_sound/weird/laugher sound_type = list( - 'sound/voice/human/womanlaugh.ogg', - 'sound/voice/human/manlaugh1.ogg', - 'sound/voice/human/manlaugh2.ogg', + 'sound/mobs/humanoids/human/laugh/womanlaugh.ogg', + 'sound/mobs/humanoids/human/laugh/manlaugh1.ogg', + 'sound/mobs/humanoids/human/laugh/manlaugh2.ogg', ) /datum/hallucination/fake_sound/weird/phone volume = 15 sound_vary = FALSE - sound_type = 'sound/weapons/ring.ogg' + sound_type = 'sound/items/weapons/ring.ogg' /datum/hallucination/fake_sound/weird/phone/play_fake_sound(turf/source, sound_to_play) for(var/next_ring in 1 to 3) @@ -237,25 +237,25 @@ /datum/hallucination/fake_sound/weird/spell sound_type = list( - 'sound/magic/disintegrate.ogg', - 'sound/magic/ethereal_enter.ogg', - 'sound/magic/ethereal_exit.ogg', - 'sound/magic/fireball.ogg', - 'sound/magic/forcewall.ogg', - 'sound/magic/teleport_app.ogg', - 'sound/magic/teleport_diss.ogg', + 'sound/effects/magic/disintegrate.ogg', + 'sound/effects/magic/ethereal_enter.ogg', + 'sound/effects/magic/ethereal_exit.ogg', + 'sound/effects/magic/fireball.ogg', + 'sound/effects/magic/forcewall.ogg', + 'sound/effects/magic/teleport_app.ogg', + 'sound/effects/magic/teleport_diss.ogg', ) /datum/hallucination/fake_sound/weird/spell/just_jaunt // A few antags use jaunts, so this sound specifically is fun to isolate - sound_type = 'sound/magic/ethereal_enter.ogg' + sound_type = 'sound/effects/magic/ethereal_enter.ogg' /datum/hallucination/fake_sound/weird/summon_sound // Heretic circle sound, notably volume = 75 - sound_type = 'sound/magic/castsummon.ogg' + sound_type = 'sound/effects/magic/castsummon.ogg' /datum/hallucination/fake_sound/weird/tesloose volume = 35 - sound_type = 'sound/magic/lightningbolt.ogg' + sound_type = 'sound/effects/magic/lightningbolt.ogg' /datum/hallucination/fake_sound/weird/tesloose/play_fake_sound(turf/source, sound_to_play) . = ..() @@ -266,21 +266,21 @@ random_hallucination_weight = 2 // Some of these are ambience sounds too volume = 25 sound_type = list( - 'sound/voice/lowHiss1.ogg', - 'sound/voice/lowHiss2.ogg', - 'sound/voice/lowHiss3.ogg', - 'sound/voice/lowHiss4.ogg', - 'sound/voice/hiss1.ogg', - 'sound/voice/hiss2.ogg', - 'sound/voice/hiss3.ogg', - 'sound/voice/hiss4.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss1.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss2.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss3.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss4.ogg', + 'sound/mobs/non-humanoids/hiss/hiss1.ogg', + 'sound/mobs/non-humanoids/hiss/hiss2.ogg', + 'sound/mobs/non-humanoids/hiss/hiss3.ogg', + 'sound/mobs/non-humanoids/hiss/hiss4.ogg', ) /datum/hallucination/fake_sound/weird/radio_static volume = 75 no_source = TRUE sound_vary = FALSE - sound_type = 'sound/hallucinations/radio_static.ogg' + sound_type = 'sound/effects/hallucinations/radio_static.ogg' /datum/hallucination/fake_sound/weird/ice_crack random_hallucination_weight = 2 diff --git a/code/modules/hallucination/inhand_fake_item.dm b/code/modules/hallucination/inhand_fake_item.dm index ba791f3a56c7c..de3b6b99411e9 100644 --- a/code/modules/hallucination/inhand_fake_item.dm +++ b/code/modules/hallucination/inhand_fake_item.dm @@ -72,7 +72,7 @@ var/obj/item/melee/energy/sword/saber/sabre_color = pick(subtypesof(/obj/item/melee/energy/sword/saber)) // Yes this can break if someone changes esword icon stuff hallucinated_item.icon_state = "[hallucinated_item.icon_state]_on_[initial(sabre_color.sword_color_icon)]" - hallucinator.playsound_local(get_turf(hallucinator), 'sound/weapons/saberon.ogg', 35, TRUE) + hallucinator.playsound_local(get_turf(hallucinator), 'sound/items/weapons/saberon.ogg', 35, TRUE) return hallucinated_item @@ -109,7 +109,7 @@ if(prob(15)) // Yes this can break if someone changse grenade icon stuff hallucinated_item.icon_state = "[hallucinated_item.icon_state]_active" - hallucinator.playsound_local(get_turf(hallucinator), 'sound/weapons/armbomb.ogg', 60, TRUE) + hallucinator.playsound_local(get_turf(hallucinator), 'sound/items/weapons/armbomb.ogg', 60, TRUE) to_chat(hallucinator, span_warning("You prime [hallucinated_item]! 5 seconds!")) return hallucinated_item diff --git a/code/modules/hallucination/nearby_fake_item.dm b/code/modules/hallucination/nearby_fake_item.dm index 4864594c9a50b..10d08ee47c96f 100644 --- a/code/modules/hallucination/nearby_fake_item.dm +++ b/code/modules/hallucination/nearby_fake_item.dm @@ -67,12 +67,12 @@ image_icon_state = "e_sword_on_red" /datum/hallucination/nearby_fake_item/e_sword/generate_fake_image(mob/living/carbon/human/holder, file) - hallucinator.playsound_local(get_turf(holder), 'sound/weapons/saberon.ogg', 35, TRUE) + hallucinator.playsound_local(get_turf(holder), 'sound/items/weapons/saberon.ogg', 35, TRUE) return ..() /datum/hallucination/nearby_fake_item/e_sword/remove_image(mob/living/carbon/human/holder) if(!QDELETED(holder)) - hallucinator.playsound_local(get_turf(holder), 'sound/weapons/saberoff.ogg', 35, TRUE) + hallucinator.playsound_local(get_turf(holder), 'sound/items/weapons/saberoff.ogg', 35, TRUE) return ..() /datum/hallucination/nearby_fake_item/e_sword/double_bladed @@ -115,12 +115,12 @@ image_icon_state = "arm_blade" /datum/hallucination/nearby_fake_item/armblade/generate_fake_image(mob/living/carbon/human/holder, file) - hallucinator.playsound_local(get_turf(holder), 'sound/effects/blobattack.ogg', 35, TRUE) + hallucinator.playsound_local(get_turf(holder), 'sound/effects/blob/blobattack.ogg', 35, TRUE) return ..() /datum/hallucination/nearby_fake_item/armblade/remove_image(mob/living/carbon/human/holder) if(!QDELETED(holder)) - hallucinator.playsound_local(get_turf(holder), 'sound/effects/blobattack.ogg', 35, TRUE) + hallucinator.playsound_local(get_turf(holder), 'sound/effects/blob/blobattack.ogg', 35, TRUE) return ..() /datum/hallucination/nearby_fake_item/ttv diff --git a/code/modules/hallucination/station_message.dm b/code/modules/hallucination/station_message.dm index 976b88f662097..9441cdeb42a5a 100644 --- a/code/modules/hallucination/station_message.dm +++ b/code/modules/hallucination/station_message.dm @@ -42,23 +42,23 @@ var/static/list/ascension_bodies = list( list( "text" = "Fear the blaze, for the Ashlord, %FAKENAME% has ascended! The flames shall consume all!", - "sound" = 'sound/ambience/antag/heretic/ascend_blade.ogg', + "sound" = 'sound/music/antag/heretic/ascend_blade.ogg', ), list( "text" = "Master of blades, the Torn Champion's disciple, %FAKENAME% has ascended! Their steel is that which will cut reality in a maelstom of silver!", - "sound" = 'sound/ambience/antag/heretic/ascend_blade.ogg', + "sound" = 'sound/music/antag/heretic/ascend_blade.ogg', ), list( "text" = "Ever coiling vortex. Reality unfolded. ARMS OUTREACHED, THE LORD OF THE NIGHT, %FAKENAME% has ascended! Fear the ever twisting hand!", - "sound" = 'sound/ambience/antag/heretic/ascend_flesh.ogg', + "sound" = 'sound/music/antag/heretic/ascend_flesh.ogg', ), list( "text" = "Fear the decay, for the Rustbringer, %FAKENAME% has ascended! None shall escape the corrosion!", - "sound" = 'sound/ambience/antag/heretic/ascend_rust.ogg', + "sound" = 'sound/music/antag/heretic/ascend_rust.ogg', ), list( "text" = "The nobleman of void %FAKENAME% has arrived, stepping along the Waltz that ends worlds!", - "sound" = 'sound/ambience/antag/heretic/ascend_void.ogg', + "sound" = 'sound/music/antag/heretic/ascend_void.ogg', ) ) @@ -95,7 +95,7 @@ priority_announce( text = "Figments from an eldritch god are being summoned by [totally_real_cult_leader.real_name] into [fake_summon_area] from an unknown dimension. Disrupt the ritual at all costs!", title = "[command_name()] Higher Dimensional Affairs", - sound = 'sound/ambience/antag/bloodcult/bloodcult_scribe.ogg', + sound = 'sound/music/antag/bloodcult/bloodcult_scribe.ogg', has_important_message = TRUE, players = list(hallucinator), ) @@ -111,7 +111,7 @@ /datum/hallucination/station_message/supermatter_delam /datum/hallucination/station_message/supermatter_delam/start() - SEND_SOUND(hallucinator, 'sound/magic/charge.ogg') + SEND_SOUND(hallucinator, 'sound/effects/magic/charge.ogg') to_chat(hallucinator, span_boldannounce("You feel reality distort for a moment...")) return ..() @@ -129,5 +129,5 @@ if(QDELETED(src)) return - hallucinator.playsound_local(get_turf(hallucinator), 'sound/effects/explosion_distant.ogg', 50, FALSE, pressure_affected = FALSE) + hallucinator.playsound_local(get_turf(hallucinator), 'sound/effects/explosion/explosion_distant.ogg', 50, FALSE, pressure_affected = FALSE) qdel(src) diff --git a/code/modules/hallucination/stray_bullet.dm b/code/modules/hallucination/stray_bullet.dm index 63e19c1bb89f2..13ace2933350a 100644 --- a/code/modules/hallucination/stray_bullet.dm +++ b/code/modules/hallucination/stray_bullet.dm @@ -189,7 +189,7 @@ name = "bullet" hal_icon_state = "bullet" hal_fire_sound = "gunshot" - hal_hitsound = 'sound/weapons/pierce.ogg' + hal_hitsound = 'sound/items/weapons/pierce.ogg' hal_hitsound_wall = SFX_RICOCHET hal_impact_effect = "impact_bullet" hal_impact_effect_wall = "impact_bullet" @@ -203,9 +203,9 @@ name = "laser" damage_type = BURN hal_icon_state = "laser" - hal_fire_sound = 'sound/weapons/laser.ogg' - hal_hitsound = 'sound/weapons/sear.ogg' - hal_hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hal_fire_sound = 'sound/items/weapons/laser.ogg' + hal_hitsound = 'sound/items/weapons/sear.ogg' + hal_hitsound_wall = 'sound/items/weapons/effects/searwall.ogg' hal_impact_effect = "impact_laser" hal_impact_effect_wall = "impact_laser_wall" hit_duration = 4 @@ -225,8 +225,8 @@ damage_type = BURN hal_icon_state = "spark" color = COLOR_YELLOW - hal_fire_sound = 'sound/weapons/taser.ogg' - hal_hitsound = 'sound/weapons/taserhit.ogg' + hal_fire_sound = 'sound/items/weapons/taser.ogg' + hal_hitsound = 'sound/items/weapons/taserhit.ogg' hal_hitsound_wall = null hal_impact_effect = null hal_impact_effect_wall = null @@ -250,9 +250,9 @@ name = "disabler beam" damage_type = STAMINA hal_icon_state = "omnilaser" - hal_fire_sound = 'sound/weapons/taser2.ogg' - hal_hitsound = 'sound/weapons/tap.ogg' - hal_hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hal_fire_sound = 'sound/items/weapons/taser2.ogg' + hal_hitsound = 'sound/items/weapons/tap.ogg' + hal_hitsound_wall = 'sound/items/weapons/effects/searwall.ogg' hal_impact_effect = "impact_laser_blue" hal_impact_effect_wall = null hit_duration = 4 @@ -269,7 +269,7 @@ name = "bolt" damage_type = TOX hal_icon_state = "cbbolt" - hal_fire_sound = 'sound/weapons/genhit.ogg' + hal_fire_sound = 'sound/items/weapons/genhit.ogg' hal_hitsound = null hal_hitsound_wall = null hal_impact_effect = null @@ -285,7 +285,7 @@ name = "bolt of change" damage_type = BURN hal_icon_state = "ice_1" - hal_fire_sound = 'sound/magic/staff_change.ogg' + hal_fire_sound = 'sound/effects/magic/staff_change.ogg' hal_hitsound = null hal_hitsound_wall = null hal_impact_effect = null @@ -307,7 +307,7 @@ name = "bolt of death" damage_type = BURN hal_icon_state = "pulse1_bl" - hal_fire_sound = 'sound/magic/wandodeath.ogg' + hal_fire_sound = 'sound/effects/magic/wandodeath.ogg' hal_hitsound = null hal_hitsound_wall = null hal_impact_effect = null diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 39b5615c385d7..d5a9457141294 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -257,7 +257,7 @@ /datum/holiday/april_fools/celebrate() . = ..() SSjob.set_overflow_role(/datum/job/clown) - SSticker.login_music = 'sound/ambience/clown.ogg' + SSticker.login_music = 'sound/music/lobby_music/clown.ogg' for(var/i in GLOB.new_player_list) var/mob/dead/new_player/P = i if(P.client) diff --git a/code/modules/hydroponics/beekeeping/bee_smoker.dm b/code/modules/hydroponics/beekeeping/bee_smoker.dm index f3eae4dc41c79..3daa75f89e63a 100644 --- a/code/modules/hydroponics/beekeeping/bee_smoker.dm +++ b/code/modules/hydroponics/beekeeping/bee_smoker.dm @@ -96,7 +96,7 @@ /obj/item/bee_smoker/proc/alter_state() activated = !activated - playsound(src, 'sound/items/welderdeactivate.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welderdeactivate.ogg', 50, TRUE) if(!activated) beesmoke_loop.stop() diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index 49b7056c9e7e8..993173b7efc52 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -23,7 +23,7 @@ /// The sound of fermentation var/datum/looping_sound/boiling/soundloop /// Sound played when the lid is opened. - var/lid_open_sound = 'sound/items/handling/cardboardbox_pickup.ogg' + var/lid_open_sound = 'sound/items/handling/cardboard_box/cardboardbox_pickup.ogg' /// Sound played when the lid is closed. var/lid_close_sound = 'sound/effects/footstep/woodclaw2.ogg' diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index 885eb77c0c695..62b18c8eea703 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -53,7 +53,7 @@ //Now squeezable for imitation carpmeat /obj/item/food/grown/koibeans/attack_self(mob/living/user) user.visible_message(span_notice("[user] crushes [src] into a slab of carplike meat."), span_notice("You crush [src] into something that resembles a slab of carplike meat.")) - playsound(user, 'sound/effects/blobattack.ogg', 50, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 50, TRUE) var/obj/item/food/fishmeat/carp/imitation/fishie = new(null) fishie.reagents.set_all_reagents_purity(seed.get_reagent_purity()) qdel(src) @@ -85,7 +85,7 @@ /obj/item/food/grown/butterbeans/attack_self(mob/living/user) user.visible_message(span_notice("[user] crushes [src] into a pat of butter."), span_notice("You crush [src] into something that resembles butter.")) - playsound(user, 'sound/effects/blobattack.ogg', 50, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 50, TRUE) var/obj/item/food/butterslice/butties = new(null) butties.reagents.set_all_reagents_purity(seed.get_reagent_purity()) qdel(src) diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index b304382d2dc47..f1fdfe807ef1d 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -100,7 +100,7 @@ /obj/item/food/grown/meatwheat/attack_self(mob/living/user) user.visible_message(span_notice("[user] crushes [src] into meat."), span_notice("You crush [src] into something that resembles meat.")) - playsound(user, 'sound/effects/blobattack.ogg', 50, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 50, TRUE) var/obj/item/food/meat/slab/meatwheat/meaties = new(null) meaties.reagents.set_all_reagents_purity(seed.get_reagent_purity()) qdel(src) diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm index 5de85e9168f1f..577befaadfaa8 100644 --- a/code/modules/hydroponics/grown/pineapple.dm +++ b/code/modules/hydroponics/grown/pineapple.dm @@ -23,7 +23,7 @@ bite_consumption_mod = 2 force = 4 throwforce = 8 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("stings", "pines") attack_verb_simple = list("sting", "pine") throw_speed = 1 diff --git a/code/modules/hydroponics/grown/weeds/nettle.dm b/code/modules/hydroponics/grown/weeds/nettle.dm index 33a0f6288912d..dec1e8b119e2b 100644 --- a/code/modules/hydroponics/grown/weeds/nettle.dm +++ b/code/modules/hydroponics/grown/weeds/nettle.dm @@ -43,7 +43,7 @@ righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi' damtype = BURN force = 15 - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' throwforce = 5 w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index cf1875c8efed5..1251cb54d32b9 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -428,7 +428,7 @@ custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.5) attack_verb_continuous = list("slashes", "slices", "cuts", "claws") attack_verb_simple = list("slash", "slice", "cut", "claw") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' /obj/item/cultivator/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is scratching [user.p_their()] back as hard as [user.p_they()] can with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) @@ -460,7 +460,7 @@ if(has_gravity(loc) && HAS_TRAIT(H, TRAIT_CLUMSY) && !H.resting) H.set_confusion_if_lower(10 SECONDS) H.Stun(20) - playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/punch4.ogg', 50, TRUE) H.visible_message(span_warning("[H] steps on [src] causing the handle to hit [H.p_them()] right in the face!"), \ span_userdanger("You step on [src] causing the handle to hit you right in the face!")) @@ -482,7 +482,7 @@ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*7.5) attack_verb_continuous = list("chops", "tears", "lacerates", "cuts") attack_verb_simple = list("chop", "tear", "lacerate", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED /datum/embed_data/hatchet @@ -499,7 +499,7 @@ /obj/item/hatchet/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/weapons/bladeslice.ogg', 50, TRUE, -1) + playsound(src, 'sound/items/weapons/bladeslice.ogg', 50, TRUE, -1) return BRUTELOSS /obj/item/hatchet/wooden @@ -528,7 +528,7 @@ slot_flags = ITEM_SLOT_BACK attack_verb_continuous = list("chops", "slices", "cuts", "reaps") attack_verb_simple = list("chop", "slice", "cut", "reap") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED item_flags = CRUEL_IMPLEMENT //maybe they want to use it in surgery var/swiping = FALSE @@ -589,7 +589,7 @@ custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT*2) attack_verb_continuous = list("slashes", "slices", "cuts", "claws") attack_verb_simple = list("slash", "slice", "cut", "claw") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' ///Catch right clicks so we can stylize! /obj/item/secateurs/pre_attack_secondary(atom/target, mob/living/user, params) @@ -619,7 +619,7 @@ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2, /datum/material/uranium=HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/gold=SMALL_MATERIAL_AMOUNT*5) attack_verb_continuous = list("slashes", "slices", "cuts") attack_verb_simple = list("slash", "slice", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' // ************************************* // Nutrient defines for hydroponics diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 8981b90d1cab0..3a1a6d83e7dbf 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -532,6 +532,7 @@ if(myseed && myseed.loc != src) myseed.forceMove(src) SEND_SIGNAL(src, COMSIG_HYDROTRAY_SET_SEED, new_seed) + age = 0 update_appearance() if(isnull(myseed)) particles = null @@ -700,7 +701,6 @@ else new_seed = new /obj/item/seeds/starthistle(src) set_seed(new_seed) - age = 0 lastcycle = world.time set_plant_health(myseed.endurance, update_icon = FALSE) set_weedlevel(0, update_icon = FALSE) // Reset @@ -724,7 +724,6 @@ set_seed(new mutantseed(src)) hardmutate() - age = 0 set_plant_health(myseed.endurance, update_icon = FALSE) lastcycle = world.time set_weedlevel(0, update_icon = FALSE) @@ -741,7 +740,6 @@ set_seed(new polymorph_seed(src)) hardmutate() - age = 0 set_plant_health(myseed.endurance, update_icon = FALSE) lastcycle = world.time set_weedlevel(0, update_icon = FALSE) @@ -755,7 +753,6 @@ var/newWeed = pick(/obj/item/seeds/liberty, /obj/item/seeds/angel, /obj/item/seeds/nettle/death, /obj/item/seeds/kudzu) set_seed(new newWeed(src)) hardmutate() - age = 0 set_plant_health(myseed.endurance, update_icon = FALSE) lastcycle = world.time set_weedlevel(0, update_icon = FALSE) // Reset @@ -910,7 +907,6 @@ SEND_SIGNAL(O, COMSIG_SEED_ON_PLANTED, src) to_chat(user, span_notice("You plant [O].")) set_seed(O) - age = 1 set_plant_health(myseed.endurance) lastcycle = world.time return @@ -1015,7 +1011,6 @@ if(O.use_tool(src, user, 50, volume=50) || (!myseed && !weedlevel)) user.visible_message(span_notice("[user] digs out the plants in [src]!"), span_notice("You dig out all of [src]'s plants!")) if(myseed) //Could be that they're just using it as a de-weeder - age = 0 set_plant_health(0, update_icon = FALSE, forced = TRUE) lastproduce = 0 set_seed(null) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index aa63f5d41f13b..79dd725b6e354 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -802,7 +802,7 @@ icon = "face-laugh-squint" mutability_flags = PLANT_GENE_REMOVABLE | PLANT_GENE_MUTATABLE | PLANT_GENE_GRAFTABLE /// Sounds that play when this trait triggers - var/list/sounds = list('sound/items/SitcomLaugh1.ogg', 'sound/items/SitcomLaugh2.ogg', 'sound/items/SitcomLaugh3.ogg') + var/list/sounds = list('sound/items/sitcom_laugh/sitcomLaugh1.ogg', 'sound/items/sitcom_laugh/sitcomLaugh2.ogg', 'sound/items/sitcom_laugh/sitcomLaugh3.ogg') /datum/plant_gene/trait/plant_laughter/on_new_plant(obj/item/our_plant, newloc) . = ..() diff --git a/code/modules/hydroponics/unique_plant_genes.dm b/code/modules/hydroponics/unique_plant_genes.dm index c3855ff6939e8..eef79ded735c5 100644 --- a/code/modules/hydroponics/unique_plant_genes.dm +++ b/code/modules/hydroponics/unique_plant_genes.dm @@ -593,7 +593,7 @@ else our_plant.color = COLOR_RED - playsound(our_plant.drop_location(), 'sound/weapons/armbomb.ogg', 75, TRUE, -3) + playsound(our_plant.drop_location(), 'sound/items/weapons/armbomb.ogg', 75, TRUE, -3) addtimer(CALLBACK(src, PROC_REF(detonate), our_plant), rand(1 SECONDS, 6 SECONDS)) /datum/plant_gene/trait/bomb_plant/potency_based/detonate(obj/item/our_plant) diff --git a/code/modules/instruments/instrument_data/fun.dm b/code/modules/instruments/instrument_data/fun.dm index 68a88683fccd3..52b88295ea861 100644 --- a/code/modules/instruments/instrument_data/fun.dm +++ b/code/modules/instruments/instrument_data/fun.dm @@ -38,11 +38,11 @@ /datum/instrument/fun/mothscream name = "Moth Scream" id = "mothscream" - real_samples = list("60"='sound/voice/moth/scream_moth.ogg') + real_samples = list("60"='sound/mobs/humanoids/moth/scream_moth.ogg') admin_only = TRUE /datum/instrument/fun/bilehorn name = "Bilehorn" id = "bilehorn" - real_samples = list("60"='sound/creatures/bileworm/bileworm_spit.ogg') + real_samples = list("60"='sound/mobs/non-humanoids/bileworm/bileworm_spit.ogg') admin_only = TRUE diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index f0176e6453092..4cf7df5a671ce 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -59,7 +59,7 @@ inhand_icon_state = "banjo" attack_verb_continuous = list("scruggs-styles", "hum-diggitys", "shin-digs", "clawhammers") attack_verb_simple = list("scruggs-style", "hum-diggity", "shin-dig", "clawhammer") - hitsound = 'sound/weapons/banjoslap.ogg' + hitsound = 'sound/items/weapons/banjoslap.ogg' allowed_instrument_ids = "banjo" /obj/item/instrument/guitar @@ -69,7 +69,7 @@ inhand_icon_state = "guitar" attack_verb_continuous = list("plays metal on", "serenades", "crashes", "smashes") attack_verb_simple = list("play metal on", "serenade", "crash", "smash") - hitsound = 'sound/weapons/stringsmash.ogg' + hitsound = 'sound/items/weapons/stringsmash.ogg' allowed_instrument_ids = list("guitar","csteelgt","cnylongt", "ccleangt", "cmutedgt") /obj/item/instrument/eguitar @@ -80,7 +80,7 @@ force = 12 attack_verb_continuous = list("plays metal on", "shreds", "crashes", "smashes") attack_verb_simple = list("play metal on", "shred", "crash", "smash") - hitsound = 'sound/weapons/stringsmash.ogg' + hitsound = 'sound/items/weapons/stringsmash.ogg' allowed_instrument_ids = "eguitar" /obj/item/instrument/glockenspiel @@ -243,6 +243,6 @@ attack_verb_simple = list("flutter", "flap") w_class = WEIGHT_CLASS_TINY force = 0 - hitsound = 'sound/voice/moth/scream_moth.ogg' + hitsound = 'sound/mobs/humanoids/moth/scream_moth.ogg' custom_price = PAYCHECK_COMMAND * 2.37 custom_premium_price = PAYCHECK_COMMAND * 2.37 diff --git a/code/modules/instruments/stationary.dm b/code/modules/instruments/stationary.dm index ca0e7e2d9e770..c9b8263924023 100644 --- a/code/modules/instruments/stationary.dm +++ b/code/modules/instruments/stationary.dm @@ -52,7 +52,7 @@ if(BRUTE) playsound(src, 'sound/effects/piano_hit.ogg', 100, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/musician/piano/atom_break(damage_flag) . = ..() diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm index dd7208d170618..7d41ba36cdc3b 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm @@ -105,9 +105,9 @@ w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT block_chance = 30 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") menu_description = "A sharp claymore which provides a low chance of blocking incoming melee attacks. Can be worn on the back or belt." @@ -128,7 +128,7 @@ righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' inhand_x_dimension = 64 inhand_y_dimension = 64 - hitsound = 'sound/hallucinations/growl1.ogg' + hitsound = 'sound/effects/hallucinations/growl1.ogg' menu_description = "A sharp blade which provides a low chance of blocking incoming melee attacks. Can be worn on the back or belt." /obj/item/nullrod/claymore/chainsaw_sword @@ -140,7 +140,7 @@ slot_flags = ITEM_SLOT_BELT attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") - hitsound = 'sound/weapons/chainsawhit.ogg' + hitsound = 'sound/items/weapons/chainsawhit.ogg' tool_behaviour = TOOL_SAW toolspeed = 1.5 //slower than a real saw menu_description = "A sharp chainsaw sword which provides a low chance of blocking incoming melee attacks. Can be used as a slower saw tool. Can be worn on the belt." @@ -185,8 +185,8 @@ inhand_icon_state = "e_sword_on_blue" worn_icon_state = "swordblue" slot_flags = ITEM_SLOT_BELT - hitsound = 'sound/weapons/blade1.ogg' - block_sound = 'sound/weapons/block_blade.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' + block_sound = 'sound/items/weapons/block_blade.ogg' menu_description = "A sharp energy sword which provides a low chance of blocking incoming melee attacks. Can be worn on the belt." /obj/item/nullrod/claymore/saber/red @@ -221,7 +221,7 @@ sharpness = SHARP_EDGED attack_verb_continuous = list("chops", "slices", "cuts", "zandatsu's") attack_verb_simple = list("chop", "slice", "cut", "zandatsu") - hitsound = 'sound/weapons/rapierhit.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' menu_description = "A sharp blade which partially penetrates armor. Very effective at butchering bodies. Can be worn on the back." /obj/item/nullrod/vibro/Initialize(mapload) @@ -241,7 +241,7 @@ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' worn_icon_state = "spellblade" - hitsound = 'sound/weapons/rapierhit.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' menu_description = "A sharp blade which partially penetrates armor. Very effective at butchering bodies. Can be worn on the back." /obj/item/nullrod/vibro/talking @@ -255,7 +255,7 @@ worn_icon_state = "talking_sword" attack_verb_continuous = list("chops", "slices", "cuts") attack_verb_simple= list("chop", "slice", "cut") - hitsound = 'sound/weapons/rapierhit.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' menu_description = "A sharp blade which partially penetrates armor. Able to awaken a friendly spirit to provide guidance. Very effective at butchering bodies. Can be worn on the back." /obj/item/nullrod/vibro/talking/Initialize(mapload) @@ -272,7 +272,7 @@ slot_flags = ITEM_SLOT_BELT attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") - hitsound = 'sound/weapons/chainsawhit.ogg' + hitsound = 'sound/items/weapons/chainsawhit.ogg' tool_behaviour = TOOL_SAW toolspeed = 0.5 //same speed as an active chainsaw chaplain_spawnable = FALSE //prevents being pickable as a chaplain weapon (it has 30 force) @@ -293,7 +293,7 @@ slot_flags = null item_flags = ABSTRACT | DROPDEL w_class = WEIGHT_CLASS_HUGE - hitsound = 'sound/weapons/sear.ogg' + hitsound = 'sound/items/weapons/sear.ogg' damtype = BURN attack_verb_continuous = list("punches", "cross counters", "pummels") attack_verb_simple = list(SFX_PUNCH, "cross counter", "pummel") @@ -317,7 +317,7 @@ force = 5 slot_flags = ITEM_SLOT_BACK block_chance = 50 - block_sound = 'sound/weapons/genhit.ogg' + block_sound = 'sound/items/weapons/genhit.ogg' menu_description = "A red staff which provides a medium chance of blocking incoming attacks via a protective red aura around its user, but deals very low amount of damage. Can be worn only on the back." /// The icon which appears over the mob holding the item var/shield_icon = "shield-red" @@ -348,7 +348,7 @@ force = 4.13 throwforce = 1 slot_flags = ITEM_SLOT_BELT - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") menu_description = "An odd s(w)ord dealing a laughable amount of damage. Fits in pockets. Can be worn on the belt." @@ -394,7 +394,7 @@ sharpness = SHARP_EDGED attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") - hitsound = 'sound/weapons/chainsawhit.ogg' + hitsound = 'sound/items/weapons/chainsawhit.ogg' tool_behaviour = TOOL_SAW toolspeed = 2 //slower than a real saw menu_description = "An undroppable sharp chainsaw hand. Can be used as a very slow saw tool. Capable of slowly butchering bodies. Disappears if the arm holding it is cut off." @@ -445,7 +445,7 @@ slot_flags = ITEM_SLOT_BACK attack_verb_continuous = list("attacks", "smashes", "crushes", "splatters", "cracks") attack_verb_simple = list("attack", "smash", "crush", "splatter", "crack") - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' menu_description = "A hammer dealing a little less damage due to its user's pride. Has a low chance of transferring some of the user's reagents to the target. Capable of tapping knees to measure brain health. Can be worn on the back." /obj/item/nullrod/pride_hammer/Initialize(mapload) @@ -474,7 +474,7 @@ slot_flags = ITEM_SLOT_BELT attack_verb_continuous = list("whips", "lashes") attack_verb_simple = list("whip", "lash") - hitsound = 'sound/weapons/chainhit.ogg' + hitsound = 'sound/items/weapons/chainhit.ogg' menu_description = "A whip. Deals extra damage to vampires. Fits in pockets. Can be worn on the belt." // Atheist's Fedora - Wear it on your head. No melee damage, massive throw force. @@ -552,7 +552,7 @@ force = 15 attack_verb_continuous = list("bites", "eats", "fin slaps") attack_verb_simple = list("bite", "eat", "fin slap") - hitsound = 'sound/weapons/bite.ogg' + hitsound = 'sound/items/weapons/bite.ogg' menu_description = "A plushie dealing a little less damage due to its cute form. Capable of blessing one person with the Carp-Sie favor, which grants friendship of all wild space carps. Fits in pockets. Can be worn on the belt." /obj/item/nullrod/carp/Initialize(mapload) @@ -566,7 +566,7 @@ desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, it is now used to harass the clown." force = 14 block_chance = 40 - block_sound = 'sound/weapons/genhit.ogg' + block_sound = 'sound/items/weapons/genhit.ogg' slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY hitsound = SFX_SWING_HIT @@ -606,7 +606,7 @@ w_class = WEIGHT_CLASS_HUGE sharpness = SHARP_EDGED slot_flags = null - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") item_flags = SLOWS_WHILE_IN_HAND @@ -646,7 +646,7 @@ slot_flags = ITEM_SLOT_BACK attack_verb_continuous = list("pokes", "impales", "pierces", "jabs") attack_verb_simple = list("poke", "impale", "pierce", "jab") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED menu_description = "A sharp pitchfork. Can be worn on the back." @@ -683,7 +683,7 @@ armour_penetration = 35 attack_verb_continuous = list("pulses", "mends", "cuts") attack_verb_simple = list("pulse", "mend", "cut") - hitsound = 'sound/effects/sparks4.ogg' + hitsound = 'sound/effects/sparks/sparks4.ogg' menu_description = "A tool dealing brain damage which partially penetrates armor. Fits in pockets. Can be worn on the belt." // Ancient Spear - Slight armor penetration, based on the Brass Spear from the Clockcult game mode. @@ -702,7 +702,7 @@ w_class = WEIGHT_CLASS_HUGE attack_verb_continuous = list("stabs", "pokes", "slashes", "clocks") attack_verb_simple = list("stab", "poke", "slash", "clock") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' menu_description = "A pointy spear which penetrates armor a little. Can be worn only on the belt." // Unholy version of above, since the gamemode is dead in the water @@ -725,7 +725,7 @@ w_class = WEIGHT_CLASS_HUGE attack_verb_continuous = list("stabs", "pokes", "slashes", "clocks") attack_verb_simple = list("stab", "poke", "slash", "clock") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' // Nullblade - For when you really want to feel like rolling dice during combat @@ -743,9 +743,9 @@ wound_bonus = 10 bare_wound_bonus = 30 slot_flags = ITEM_SLOT_BELT - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_POINTY - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "punctures", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "puncture", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") menu_description = "A blade that deals variable, low amounts of damage, but does easily inflict wounds. \ @@ -896,4 +896,4 @@ // We got a sneak attack! living_target.apply_damage(round(sneak_attack_dice, DAMAGE_PRECISION), BRUTE, def_zone = affecting, blocked = armor_block, wound_bonus = bare_wound_bonus, sharpness = SHARP_EDGED) living_target.balloon_alert(user, "sneak attack!") - playsound(living_target, 'sound/weapons/guillotine.ogg', 50, TRUE) + playsound(living_target, 'sound/items/weapons/guillotine.ogg', 50, TRUE) diff --git a/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm b/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm index 4b07baaa05890..e6f34b894b3de 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm @@ -25,7 +25,7 @@ If the scythe isn't empowered when you sheath it, you take a heap of damage and return ..() to_chat(owner, span_userdanger("[scythe] tears into you for your unworthy display of arrogance!")) - playsound(owner, 'sound/magic/demon_attack1.ogg', 50, TRUE) + playsound(owner, 'sound/effects/magic/demon_attack1.ogg', 50, TRUE) part.receive_damage(brute = 25, wound_bonus = 10, sharpness = SHARP_EDGED) return ..() @@ -152,7 +152,7 @@ If the scythe isn't empowered when you sheath it, you take a heap of damage and log_combat(user, potential_reaping, "prepared to use [src] to decapitate") if(do_after(user, 15 SECONDS * death_knell_speed_mod, target = potential_reaping)) - playsound(get_turf(potential_reaping), 'sound/weapons/bladeslice.ogg', 250, TRUE) + playsound(get_turf(potential_reaping), 'sound/items/weapons/bladeslice.ogg', 250, TRUE) reaped_head.dismember() user.visible_message(span_danger("[user] swings [src] down, slicing [potential_reaping]'s [head_name] clean off! You think [src] may have grown stronger!"), span_notice("As you perform the death knell on [potential_reaping], [src] gains power! For a time...")) if(potential_empowerment == SCYTHE_SATED) //We don't want actual player heads to go wandering off, but it'll be funny if a bunch of monkeyhuman heads started floating around diff --git a/code/modules/jobs/job_types/station_trait/human_ai.dm b/code/modules/jobs/job_types/station_trait/human_ai.dm index 032ad08af5a60..a6e77d77a510c 100644 --- a/code/modules/jobs/job_types/station_trait/human_ai.dm +++ b/code/modules/jobs/job_types/station_trait/human_ai.dm @@ -161,6 +161,6 @@ user.balloon_alert(user, "unpacking...") if(!do_after(user, 5 SECONDS, src)) return - playsound(src, 'sound/items/drill_use.ogg', 40, TRUE) + playsound(src, 'sound/items/tools/drill_use.ogg', 40, TRUE) new /obj/machinery/computer/camera_advanced/human_ai(get_turf(src)) qdel(src) diff --git a/code/modules/language/_language_holder.dm b/code/modules/language/_language_holder.dm index a368186a5137b..b48a1ab1530ab 100644 --- a/code/modules/language/_language_holder.dm +++ b/code/modules/language/_language_holder.dm @@ -510,13 +510,9 @@ GLOBAL_LIST_INIT(prototype_language_holders, init_language_holder_prototypes()) // Explicitly empty one for readability /datum/language_holder/empty - understood_languages = null - spoken_languages = null // Has all the languages known (via "mind") /datum/language_holder/universal - understood_languages = null - spoken_languages = null /datum/language_holder/universal/New() . = ..() diff --git a/code/modules/library/bibles.dm b/code/modules/library/bibles.dm index 42194d932e865..eda1f18f8e7eb 100644 --- a/code/modules/library/bibles.dm +++ b/code/modules/library/bibles.dm @@ -91,7 +91,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( /// Destroy the bible when it's shot by a bullet /obj/item/book/bible/proc/on_intercepted_bullet(mob/living/victim, obj/projectile/bullet) victim.add_mood_event("blessing", /datum/mood_event/blessing) - playsound(victim, 'sound/magic/magic_block_holy.ogg', 50, TRUE) + playsound(victim, 'sound/effects/magic/magic_block_holy.ogg', 50, TRUE) victim.visible_message(span_warning("[src] takes [bullet] in [victim]'s place!")) var/obj/structure/fluff/paper/stack/pages = new(get_turf(src)) pages.setDir(pick(GLOB.alldirs)) @@ -310,7 +310,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( if(istype(bible_smacked, /obj/item/melee/cultblade/haunted) && !IS_CULTIST(user)) var/obj/item/melee/cultblade/haunted/sword = bible_smacked sword.balloon_alert(user, "exorcising...") - playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,TRUE) + playsound(src,'sound/effects/hallucinations/veryfar_noise.ogg',40,TRUE) if(do_after(user, 4 SECONDS, target = sword)) playsound(src,'sound/effects/pray_chaplain.ogg',60,TRUE) new /obj/item/nullrod/nullblade(get_turf(sword)) @@ -337,7 +337,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( throw_range = 7 throwforce = 18 force = 18 - hitsound = 'sound/weapons/sear.ogg' + hitsound = 'sound/items/weapons/sear.ogg' damtype = BURN attack_verb_continuous = list("attacks", "burns", "blesses", "damns", "scorches", "curses", "smites") attack_verb_simple = list("attack", "burn", "bless", "damn", "scorch", "curses", "smites") diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 35def980eb922..d7102fe96005a 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -753,7 +753,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0) return cache = held_book.book_data.return_copy() flick("bigscanner1", src) - playsound(src, 'sound/machines/scanner.ogg', vol = 50, vary = TRUE) + playsound(src, 'sound/machines/scanner/scanner.ogg', vol = 50, vary = TRUE) return TRUE if("clear") cache = null diff --git a/code/modules/library/skill_learning/generic_skillchips/rod_suplex.dm b/code/modules/library/skill_learning/generic_skillchips/rod_suplex.dm index bff83423be73e..07bc945e1d180 100644 --- a/code/modules/library/skill_learning/generic_skillchips/rod_suplex.dm +++ b/code/modules/library/skill_learning/generic_skillchips/rod_suplex.dm @@ -5,8 +5,8 @@ skill_name = "True Strength" skill_description = "The knowledge and strength to resolve the most ancient conumdrum; what happens when an unstoppable force meets an immovable object." skill_icon = "dumbbell" - activate_message = "You realise if you apply the correct force, at the correct angle, it is possible to make the immovable permanently movable. And... damn, you look huge." - deactivate_message = "You forget how to permanently anchor a paradoxical object. Also, you should really hit the gym..." + activate_message = span_notice("You realise if you apply the correct force, at the correct angle, it is possible to make the immovable permanently movable. And... damn, you look huge.") + deactivate_message = span_notice("You forget how to permanently anchor a paradoxical object. Also, you should really hit the gym...") chip_category = SKILLCHIP_CATEGORY_GENERAL skillchip_flags = NONE slot_use = 1 diff --git a/code/modules/library/skill_learning/job_skillchips/chef.dm b/code/modules/library/skill_learning/job_skillchips/chef.dm index 75bc494543c36..e457d8773a09f 100644 --- a/code/modules/library/skill_learning/job_skillchips/chef.dm +++ b/code/modules/library/skill_learning/job_skillchips/chef.dm @@ -4,8 +4,8 @@ skill_name = "Close Quarters Cooking" skill_description = "A specialised form of self defence, developed by skilled sous-chef de cuisines. No man fights harder than a chef to defend his kitchen." skill_icon = "utensils" - activate_message = "You can visualize how to defend your kitchen with martial arts." - deactivate_message = "You forget how to control your muscles to execute kicks, slams and restraints while in a kitchen environment." + activate_message = span_notice("You can visualize how to defend your kitchen with martial arts.") + deactivate_message = span_notice("You forget how to control your muscles to execute kicks, slams and restraints while in a kitchen environment.") /// The Chef CQC given by the skillchip. var/datum/martial_art/cqc/under_siege/style diff --git a/code/modules/library/skill_learning/job_skillchips/psychologist.dm b/code/modules/library/skill_learning/job_skillchips/psychologist.dm index 6450d13b89a37..be0fe7502f63d 100644 --- a/code/modules/library/skill_learning/job_skillchips/psychologist.dm +++ b/code/modules/library/skill_learning/job_skillchips/psychologist.dm @@ -5,5 +5,5 @@ skill_name = "Supermatter Cognition Theory" skill_description = "Understand the correct mental patterns to keep in mind around matter in a hyperfractal state, causing immunity to visions and making the matter in question \"calmer\"." skill_icon = "spa" - activate_message = "You start thinking in patterns that will render you immune to visions from, and act as a calming influence for, matter in a hyperfractal state." - deactivate_message = "Your thoughts become more disordered and jumbled. You are no longer immune to the abyss." + activate_message = span_notice("You start thinking in patterns that will render you immune to visions from, and act as a calming influence for, matter in a hyperfractal state.") + deactivate_message = span_notice("Your thoughts become more disordered and jumbled. You are no longer immune to the abyss.") diff --git a/code/modules/library/skill_learning/job_skillchips/roboticist.dm b/code/modules/library/skill_learning/job_skillchips/roboticist.dm index 401315e265abc..aa43bafbe8b52 100644 --- a/code/modules/library/skill_learning/job_skillchips/roboticist.dm +++ b/code/modules/library/skill_learning/job_skillchips/roboticist.dm @@ -5,5 +5,5 @@ skill_name = "Cyborg Circuitry" skill_description = "Recognise cyborg wire layouts and understand their functionality at a glance." skill_icon = "sitemap" - activate_message = "You suddenly comprehend the secrets behind cyborg circuitry." - deactivate_message = "Cyborg circuitry stops making sense as images of coloured wires fade from your mind." + activate_message = span_notice("You suddenly comprehend the secrets behind cyborg circuitry.") + deactivate_message = span_notice("Cyborg circuitry stops making sense as images of coloured wires fade from your mind.") diff --git a/code/modules/library/skill_learning/job_skillchips/station_engineer.dm b/code/modules/library/skill_learning/job_skillchips/station_engineer.dm index 0ed2edb5ccda9..08ab6ee61e3f1 100644 --- a/code/modules/library/skill_learning/job_skillchips/station_engineer.dm +++ b/code/modules/library/skill_learning/job_skillchips/station_engineer.dm @@ -5,5 +5,5 @@ skill_name = "Engineering Circuitry" skill_description = "Recognise airlock and APC wire layouts and understand their functionality at a glance." skill_icon = "sitemap" - activate_message = "You suddenly comprehend the secrets behind airlock and APC circuitry." - deactivate_message = "Airlock and APC circuitry stops making sense as images of coloured wires fade from your mind." + activate_message = span_notice("You suddenly comprehend the secrets behind airlock and APC circuitry.") + deactivate_message = span_notice("Airlock and APC circuitry stops making sense as images of coloured wires fade from your mind.") diff --git a/code/modules/library/skill_learning/skillchip.dm b/code/modules/library/skill_learning/skillchip.dm index b8903e5bde09a..10139585dd9a7 100644 --- a/code/modules/library/skill_learning/skillchip.dm +++ b/code/modules/library/skill_learning/skillchip.dm @@ -377,8 +377,8 @@ skill_name = "Underwater Basketweaving" skill_description = "Master intricate art of using twine to create perfect baskets while submerged." skill_icon = "shopping-basket" - activate_message = "You're one with the twine and the sea." - deactivate_message = "Higher mysteries of underwater basketweaving leave your mind." + activate_message = span_notice("You're one with the twine and the sea.") + deactivate_message = span_notice("Higher mysteries of underwater basketweaving leave your mind.") /obj/item/skillchip/wine_taster name = "WINE skillchip" @@ -387,8 +387,8 @@ skill_name = "Wine Tasting" skill_description = "Recognize wine vintage from taste alone. Never again lack an opinion when presented with an unknown drink." skill_icon = "wine-bottle" - activate_message = "You recall wine taste." - deactivate_message = "Your memories of wine evaporate." + activate_message = span_notice("You recall wine taste.") + deactivate_message = span_notice("Your memories of wine evaporate.") /obj/item/skillchip/bonsai name = "Hedge 3 skillchip" @@ -396,16 +396,16 @@ skill_name = "Hedgetrimming" skill_description = "Trim hedges and potted plants into marvelous new shapes with any old knife. Not applicable to plastic plants." skill_icon = "spa" - activate_message = "Your mind is filled with plant arrangments." - deactivate_message = "You can't remember what a hedge looks like anymore." + activate_message = span_notice("Your mind is filled with plant arrangments.") + deactivate_message = span_notice("You can't remember what a hedge looks like anymore.") /obj/item/skillchip/useless_adapter name = "Skillchip adapter" skill_name = "Useless adapter" skill_description = "Allows you to insert another skillchip into this adapter after it has been inserted into your brain..." skill_icon = "plug" - activate_message = "You can now activate another chip through this adapter, but you're not sure why you did this..." - deactivate_message = "You no longer have the useless skillchip adapter." + activate_message = span_notice("You can now activate another chip through this adapter, but you're not sure why you did this...") + deactivate_message = span_notice("You no longer have the useless skillchip adapter.") skillchip_flags = SKILLCHIP_ALLOWS_MULTIPLE // Literally does nothing. complexity = 0 @@ -417,8 +417,8 @@ skill_name = "Lightbulb Removing" skill_description = "Stop failing taking out lightbulbs today, no gloves needed!" skill_icon = "lightbulb" - activate_message = "Your feel like your pain receptors are less sensitive to hot objects." - deactivate_message = "You feel like hot objects could stop you again..." + activate_message = span_notice("Your feel like your pain receptors are less sensitive to hot objects.") + deactivate_message = span_notice("You feel like hot objects could stop you again...") /obj/item/skillchip/disk_verifier name = "K33P-TH4T-D15K skillchip" @@ -426,8 +426,8 @@ skill_name = "Nuclear Disk Verification" skill_description = "Nuclear authentication disks have an extremely long serial number for verification. This skillchip stores that number, which allows the user to automatically spot forgeries." skill_icon = "save" - activate_message = "You feel your mind automatically verifying long serial numbers on disk shaped objects." - deactivate_message = "The innate recognition of absurdly long disk-related serial numbers fades from your mind." + activate_message = span_notice("You feel your mind automatically verifying long serial numbers on disk shaped objects.") + deactivate_message = span_notice("The innate recognition of absurdly long disk-related serial numbers fades from your mind.") /obj/item/skillchip/entrails_reader name = "3NTR41LS skillchip" @@ -435,8 +435,8 @@ skill_name = "Entrails Reader" skill_description = "Be able to learn about a person's life, by looking at their internal organs. Not to be confused with looking into the future." skill_icon = "lungs" - activate_message = "You feel that you know a lot about interpreting organs." - deactivate_message = "Knowledge of liver damage, heart strain and lung scars fades from your mind." + activate_message = span_notice("You feel that you know a lot about interpreting organs.") + deactivate_message = span_notice("Knowledge of liver damage, heart strain and lung scars fades from your mind.") /obj/item/skillchip/appraiser name = "GENUINE ID Appraisal Now! skillchip" diff --git a/code/modules/mafia/roles/roles.dm b/code/modules/mafia/roles/roles.dm index 4cfd7662d843e..b035b618ec4e7 100644 --- a/code/modules/mafia/roles/roles.dm +++ b/code/modules/mafia/roles/roles.dm @@ -145,7 +145,7 @@ /datum/mafia_role/proc/greet() mafia_alert = new(body, src) - SEND_SOUND(body, 'sound/ambience/ambifailure.ogg') + SEND_SOUND(body, 'sound/ambience/misc/ambifailure.ogg') to_chat(body, span_danger("You are the [name].")) to_chat(body, span_danger("[desc]")) switch(team) diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm b/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm index 7f1c8d781f4f8..a5b1492a1520b 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm @@ -35,7 +35,7 @@ addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, throw_range+2, throw_speed, null, TRUE), 0.1 SECONDS) /obj/item/freeze_cube/proc/freeze_hit_atom(atom/movable/hit_atom) - playsound(src, 'sound/effects/glassbr3.ogg', 50, TRUE) + playsound(src, 'sound/effects/glass/glassbr3.ogg', 50, TRUE) COOLDOWN_START(src, freeze_cooldown, cooldown_time) if(isobj(hit_atom)) var/obj/hit_object = hit_atom diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm b/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm index f3b321b88b223..6d3ef03c3f028 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm @@ -153,7 +153,7 @@ /// Type of projectile we fire var/projectile_type = /obj/projectile/baby_watcher_blast /// Sound to make when we shoot - var/projectile_sound = 'sound/weapons/pierce.ogg' + var/projectile_sound = 'sound/items/weapons/pierce.ogg' /// Time between taking potshots at goliaths var/fire_delay = 5 SECONDS /// How much faster do we shoot when avenging our parent? diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/ash_walker_den.dm b/code/modules/mapfluff/ruins/objects_and_mobs/ash_walker_den.dm index 21c96f0aeaa10..7ef451ddc303a 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/ash_walker_den.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/ash_walker_den.dm @@ -65,7 +65,7 @@ else deadmind = offeredmob.get_ghost(FALSE, TRUE) to_chat(deadmind, "Your body has been returned to the nest. You are being remade anew, and will awaken shortly.
      Your memories will remain intact in your new body, as your soul is being salvaged") - SEND_SOUND(deadmind, sound('sound/magic/enter_blood.ogg',volume=100)) + SEND_SOUND(deadmind, sound('sound/effects/magic/enter_blood.ogg',volume=100)) addtimer(CALLBACK(src, PROC_REF(remake_walker), offeredmob), 20 SECONDS) offeredmob.forceMove(src) return @@ -75,7 +75,7 @@ else meat_counter++ visible_message(span_warning("Serrated tendrils eagerly pull [offeredmob] to [src], tearing the body apart as its blood seeps over the eggs.")) - playsound(get_turf(src),'sound/magic/demon_consume.ogg', 100, TRUE) + playsound(get_turf(src),'sound/effects/magic/demon_consume.ogg', 100, TRUE) var/deliverykey = offeredmob.fingerprintslast //ckey of whoever brought the body var/mob/living/deliverymob = get_mob_by_key(deliverykey) //mob of said ckey //there is a 40% chance that the Lava Lizard unlocks their respawn with each sacrifice @@ -103,7 +103,7 @@ oldmob.mind.transfer_to(newwalker) newwalker.mind.grab_ghost() to_chat(newwalker, "You have been pulled back from beyond the grave, with a new body and renewed purpose. Glory to the Necropolis!") - playsound(get_turf(newwalker),'sound/magic/exit_blood.ogg', 100, TRUE) + playsound(get_turf(newwalker),'sound/effects/magic/exit_blood.ogg', 100, TRUE) qdel(oldmob) /obj/structure/lavaland/ash_walker/proc/spawn_mob() diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.dm b/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.dm index ab6b2bb1825c9..16b63f37b2a37 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/cursed_slot_machine.dm @@ -44,7 +44,7 @@ icon_screen = "slots_screen_working" update_appearance() - playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50, FALSE) + playsound(src, 'sound/machines/lavaland/cursed_slot_machine.ogg', 50, FALSE) addtimer(CALLBACK(src, PROC_REF(determine_victor), user), 5 SECONDS) /obj/structure/cursed_slot_machine/update_overlays() @@ -84,11 +84,11 @@ user.apply_status_effect(/datum/status_effect/grouped/cursed) SEND_SIGNAL(user, COMSIG_CURSED_SLOT_MACHINE_LOST) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) balloon_alert_to_viewers("you lost!") return - playsound(src, 'sound/lavaland/cursed_slot_machine_jackpot.ogg', 50, FALSE) + playsound(src, 'sound/machines/lavaland/cursed_slot_machine_jackpot.ogg', 50, FALSE) new prize(get_turf(src)) if(user) to_chat(user, span_boldwarning("You've hit the jackpot!!! Laughter echoes around you as your reward appears in the machine's place.")) diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm index aac22db015b20..c8b504b72e572 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/museum.dm @@ -64,7 +64,7 @@ max_integrity = 5 //one tap /obj/structure/fluff/balloon_nuke/atom_destruction() - playsound(loc, 'sound/effects/cartoon_pop.ogg', 75, vary = TRUE) + playsound(loc, 'sound/effects/cartoon_sfx/cartoon_pop.ogg', 75, vary = TRUE) ..() /obj/structure/fluff/fake_camera diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm index 646de6a2186ef..7fda1df5951f0 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm @@ -122,7 +122,7 @@ sight_blocker.pixel_y = initial(sight_blocker.pixel_y) - (32 * sight_blocker_distance) sight_blocker.forceMove(sight_blocker_turf) sleep(0.25 SECONDS) - playsound(T, 'sound/magic/clockwork/invoke_general.ogg', 30, TRUE, frequency = 15000) + playsound(T, 'sound/effects/magic/clockwork/invoke_general.ogg', 30, TRUE, frequency = 15000) add_overlay(door_overlay) open = FALSE else @@ -183,7 +183,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate) message_admins("[user ? ADMIN_LOOKUPFLW(user):"Unknown"] has released Legion!") user.log_message("released Legion.", LOG_GAME) - var/sound/legion_sound = sound('sound/creatures/legion_spawn.ogg') + var/sound/legion_sound = sound('sound/mobs/non-humanoids/legion/legion_spawn.ogg') for(var/mob/M in GLOB.player_list) if(is_valid_z_level(get_turf(M), T)) to_chat(M, span_userdanger("Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has been released.")) diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/mapfluff/ruins/objects_and_mobs/sin_ruins.dm index 15566603a9322..6e67c0831d398 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/sin_ruins.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/sin_ruins.dm @@ -34,7 +34,7 @@ force = 18 throwforce = 10 w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' /obj/item/knife/envy/afterattack(atom/target, mob/living/carbon/human/user, click_parameters) if(!istype(user) || !ishuman(target)) diff --git a/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm b/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm index fa39b7063ae12..21bf3da443180 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm @@ -117,15 +117,15 @@ GLOBAL_VAR_INIT(fscpassword, generate_password()) /area/ruin/space/has_grav/syndicate_forgotten_ship name = "Syndicate Forgotten Ship" icon_state = "syndie-ship" - ambientsounds = list('sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', 'sound/ambience/ambigen8.ogg', 'sound/ambience/ambigen9.ogg') + ambientsounds = list('sound/ambience/misc/ambidanger.ogg', 'sound/ambience/misc/ambidanger2.ogg', 'sound/ambience/general/ambigen8.ogg', 'sound/ambience/general/ambigen9.ogg') /area/ruin/space/has_grav/syndicate_forgotten_cargopod name = "Syndicate Forgotten Cargo pod" icon_state = "syndie-ship" - ambientsounds = list('sound/ambience/ambigen3.ogg', 'sound/ambience/signal.ogg') + ambientsounds = list('sound/ambience/general/ambigen3.ogg', 'sound/ambience/misc/signal.ogg') /area/ruin/space/has_grav/powered/syndicate_forgotten_vault name = "Syndicate Forgotten Vault" icon_state = "syndie-ship" - ambientsounds = list('sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg') + ambientsounds = list('sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambitech3.ogg') area_flags = NOTELEPORT | UNIQUE_AREA diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hauntedtradingpost.dm b/code/modules/mapfluff/ruins/spaceruin_code/hauntedtradingpost.dm index 958fa51fcc109..04404dc630872 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/hauntedtradingpost.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/hauntedtradingpost.dm @@ -327,8 +327,8 @@ base_icon_state = "donk" stun_projectile = /obj/projectile/bullet/foam_dart/riot lethal_projectile = /obj/projectile/bullet/c9mm/blunttip - lethal_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' - stun_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg' desc = "A ballistic machine gun auto-turret with Donk Co. branding. It uses 9mm rounds." armor_type = /datum/armor/donk_turret scan_range = 6 @@ -353,9 +353,9 @@ icon_state = "red_lethal" base_icon_state = "red" stun_projectile = /obj/projectile/energy/electrode - stun_projectile_sound = 'sound/weapons/taser.ogg' + stun_projectile_sound = 'sound/items/weapons/taser.ogg' lethal_projectile = /obj/projectile/beam/laser/cybersun - lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + lethal_projectile_sound = 'sound/items/weapons/lasercannonfire.ogg' desc = "An energy gun auto-turret with Cybersun branding. It fires high-energy plasma beams that do a lot of damage, but it can be fairly slow." armor_type = /datum/armor/syndicate_shuttle scan_range = 6 diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm index b42618f94ee21..0e77140422525 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm @@ -395,7 +395,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) has_gravity = TRUE area_flags = NOTELEPORT | HIDDEN_AREA static_lighting = TRUE - ambientsounds = list('sound/ambience/servicebell.ogg') + ambientsounds = list('sound/ambience/ruin/servicebell.ogg') var/roomnumber = 0 var/obj/item/hilbertshotel/parentSphere var/datum/turf_reservation/reservation diff --git a/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm index 0db718e399bf6..2b2216641488d 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/meatderelict.dm @@ -131,7 +131,7 @@ /obj/lightning_thrower/process(seconds_per_tick) var/list/dirs = throw_diagonals ? GLOB.diagonals : GLOB.cardinals throw_diagonals = !throw_diagonals - playsound(src, 'sound/magic/lightningbolt.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) + playsound(src, 'sound/effects/magic/lightningbolt.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) for(var/direction in dirs) var/victim_turf = get_step(src, direction) if(isclosedturf(victim_turf)) diff --git a/code/modules/mapfluff/ruins/spaceruin_code/meateor.dm b/code/modules/mapfluff/ruins/spaceruin_code/meateor.dm index 59998bb53c8f2..a91d033f1ee7b 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/meateor.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/meateor.dm @@ -56,7 +56,7 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(loc, 'sound/effects/attackblob.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) + playsound(loc, 'sound/effects/blob/attackblob.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) else playsound(loc, 'sound/effects/meatslap.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) if(BURN) diff --git a/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_mod.dm b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_mod.dm index 77b8aa0bbce28..994162345dae2 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_mod.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/oldstation/oldstation_mod.dm @@ -35,7 +35,7 @@ update_appearance() /obj/machinery/mod_installer/proc/play_install_sound() - playsound(src, 'sound/items/rped.ogg', 30, FALSE) + playsound(src, 'sound/items/tools/rped.ogg', 30, FALSE) /obj/machinery/mod_installer/update_icon_state() icon_state = busy ? busy_icon_state : "[base_icon_state][state_open ? "_open" : null]" diff --git a/code/modules/meteors/meteor_dark_matteor.dm b/code/modules/meteors/meteor_dark_matteor.dm index 18dbaf007024f..acf21a3c434b8 100644 --- a/code/modules/meteors/meteor_dark_matteor.dm +++ b/code/modules/meteors/meteor_dark_matteor.dm @@ -6,7 +6,7 @@ hits = 15 hitpwr = EXPLODE_DEVASTATE heavy = TRUE - meteorsound = 'sound/effects/curse1.ogg' + meteorsound = 'sound/effects/curse/curse1.ogg' meteordrop = list(/obj/singularity/dark_matter) //what the FUCK dropamt = 1 threat = 100 diff --git a/code/modules/meteors/meteor_spawning.dm b/code/modules/meteors/meteor_spawning.dm index d19d3aff0a5a6..83b1c9533c577 100644 --- a/code/modules/meteors/meteor_spawning.dm +++ b/code/modules/meteors/meteor_spawning.dm @@ -104,7 +104,7 @@ player_mind.transfer_to(new_changeling) player_mind.special_role = ROLE_CHANGELING_MIDROUND player_mind.add_antag_datum(/datum/antagonist/changeling/space) - SEND_SOUND(new_changeling, 'sound/magic/mutate.ogg') + SEND_SOUND(new_changeling, 'sound/effects/magic/mutate.ogg') message_admins("[ADMIN_LOOKUPFLW(new_changeling)] has been made into a space changeling by an event.") new_changeling.log_message("was spawned as a midround space changeling by an event.", LOG_GAME) diff --git a/code/modules/meteors/meteor_types.dm b/code/modules/meteors/meteor_types.dm index 199f6517abb1e..74e5ecb78c106 100644 --- a/code/modules/meteors/meteor_types.dm +++ b/code/modules/meteors/meteor_types.dm @@ -203,7 +203,7 @@ pass_flags = PASSTABLE | PASSGRILLE hits = 1 hitpwr = EXPLODE_LIGHT - meteorsound = 'sound/weapons/gun/smg/shot.ogg' + meteorsound = 'sound/items/weapons/gun/smg/shot.ogg' meteordrop = list(/obj/item/stack/ore/glass) threat = 1 @@ -301,7 +301,7 @@ icon_state = "carp" desc = "Am I glad he's frozen in there, and that we're out here." hits = 4 - meteorsound = 'sound/effects/ethereal_revive_fail.ogg' + meteorsound = 'sound/mobs/humanoids/ethereal/ethereal_revive_fail.ogg' meteordrop = list(/mob/living/basic/carp) dropamt = 1 threat = 5 @@ -342,7 +342,7 @@ /obj/effect/meteor/banana/meteor_effect() ..() - playsound(src, 'sound/items/AirHorn.ogg', 100, TRUE, -1) + playsound(src, 'sound/items/airhorn/AirHorn.ogg', 100, TRUE, -1) for(var/atom/movable/object in view(4, get_turf(src))) var/turf/throwtarget = get_edge_target_turf(get_turf(src), get_dir(get_turf(src), get_step_away(object, get_turf(src)))) object.safe_throw_at(throwtarget, 5, 1, force = MOVE_FORCE_STRONG) @@ -368,7 +368,7 @@ /obj/effect/meteor/emp/meteor_effect() ..() - playsound(src, 'sound/weapons/zapbang.ogg', 100, TRUE, -1) + playsound(src, 'sound/items/weapons/zapbang.ogg', 100, TRUE, -1) empulse(src, 3, 8) //Meaty Ore @@ -378,7 +378,7 @@ desc = "Just... don't think too hard about where this thing came from." hits = 2 heavy = TRUE - meteorsound = 'sound/effects/blobattack.ogg' + meteorsound = 'sound/effects/blob/blobattack.ogg' meteordrop = list(/obj/item/food/meat/slab/human, /obj/item/food/meat/slab/human/mutant, /obj/item/organ/internal/heart, /obj/item/organ/internal/lungs, /obj/item/organ/internal/tongue, /obj/item/organ/internal/appendix/) var/meteorgibs = /obj/effect/gibspawner/generic threat = 2 @@ -464,6 +464,6 @@ /obj/effect/meteor/pumpkin/Initialize(mapload) . = ..() - meteorsound = pick('sound/hallucinations/im_here1.ogg','sound/hallucinations/im_here2.ogg') + meteorsound = pick('sound/effects/hallucinations/im_here1.ogg','sound/effects/hallucinations/im_here2.ogg') #undef DEFAULT_METEOR_LIFETIME diff --git a/code/modules/mining/boulder_processing/_boulder_processing.dm b/code/modules/mining/boulder_processing/_boulder_processing.dm index 834d8d08f807e..28d8f9b6ea462 100644 --- a/code/modules/mining/boulder_processing/_boulder_processing.dm +++ b/code/modules/mining/boulder_processing/_boulder_processing.dm @@ -127,7 +127,7 @@ if(!istype(new_boulder) || QDELETED(new_boulder)) return FALSE - //someone just processed this + //someone is still processing this if(new_boulder.processed_by) return FALSE @@ -149,7 +149,6 @@ */ /obj/machinery/bouldertech/proc/accept_boulder(obj/item/boulder/new_boulder) PRIVATE_PROC(TRUE) - if(!can_process_boulder(new_boulder)) return FALSE @@ -262,7 +261,7 @@ if(!COOLDOWN_FINISHED(src, sound_cooldown)) return ITEM_INTERACT_BLOCKING COOLDOWN_START(src, sound_cooldown, 1.5 SECONDS) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, FALSE) return ITEM_INTERACT_BLOCKING var/obj/item/card/id/id_card = tool @@ -408,6 +407,9 @@ return TRUE if(locate(/obj/item/boulder) in loc) //There is an boulder in our loc. it has be removed so we don't clog up our loc with even more boulders return FALSE + if(!length(specific_boulder.custom_materials)) + specific_boulder.break_apart() + return TRUE //Reset durability to little random lower value cause we have crushed it so many times var/size = specific_boulder.boulder_size diff --git a/code/modules/mining/boulder_processing/boulder.dm b/code/modules/mining/boulder_processing/boulder.dm index 555ea50dff3bf..57a143a0d33a5 100644 --- a/code/modules/mining/boulder_processing/boulder.dm +++ b/code/modules/mining/boulder_processing/boulder.dm @@ -62,9 +62,9 @@ icon_state = "[boulder_string]_small" /obj/item/boulder/CanAllowThrough(atom/movable/mover, border_dir) - . = ..() if(istype(mover, /obj/item/boulder)) //This way, boulders can only go one at a time on conveyor belts, but everyone else can go through. return FALSE + return ..() /obj/item/boulder/attack_self(mob/user, list/modifiers) . = ..() @@ -127,7 +127,7 @@ process_speed = override_speed_multiplier else process_speed = INATE_BOULDER_SPEED_MULTIPLIER - playsound(src, 'sound/effects/rocktap1.ogg', 50) + playsound(src, 'sound/effects/rock/rocktap1.ogg', 50) if(!continued) to_chat(user, span_notice("You scrape away at \the [src]...")) else @@ -142,7 +142,7 @@ if(durability <= 0) convert_to_ore() to_chat(user, span_notice("You finish working on \the [src], and it crumbles into ore.")) - playsound(src, 'sound/effects/rock_break.ogg', 50) + playsound(src, 'sound/effects/rock/rock_break.ogg', 50) user.mind?.adjust_experience(/datum/skill/mining, MINING_SKILL_BOULDER_SIZE_XP * 0.2) qdel(src) return @@ -171,7 +171,7 @@ if(length(contents)) var/list/quips = list("Clang!", "Crack!", "Bang!", "Clunk!", "Clank!") visible_message(span_notice("[pick(quips)] Something falls out of \the [src]!")) - playsound(loc, 'sound/effects/picaxe1.ogg', 60, FALSE) + playsound(loc, 'sound/effects/pickaxe/picaxe1.ogg', 60, FALSE) for(var/obj/item/content as anything in contents) content.forceMove(get_turf(src)) qdel(src) diff --git a/code/modules/mining/boulder_processing/boulder_types.dm b/code/modules/mining/boulder_processing/boulder_types.dm index 8f6889b7c8470..366c5b21c4259 100644 --- a/code/modules/mining/boulder_processing/boulder_types.dm +++ b/code/modules/mining/boulder_processing/boulder_types.dm @@ -25,6 +25,10 @@ artifact_inside = null return ..() +/obj/item/boulder/artifact/update_icon_state() + . = ..() + icon_state = "boulder_artifact" // Hardset to artifact sprites for consistency + ///Boulders usually spawned in lavaland labour camp area /obj/item/boulder/gulag name = "low-quality boulder" diff --git a/code/modules/mining/boulder_processing/brm.dm b/code/modules/mining/boulder_processing/brm.dm index 658eb97d5632f..bb7b7f650338a 100644 --- a/code/modules/mining/boulder_processing/brm.dm +++ b/code/modules/mining/boulder_processing/brm.dm @@ -284,7 +284,7 @@ //no more boulders if(!SSore_generation.available_boulders.len) if(feedback) - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) balloon_alert_to_viewers("no boulders to collect!") batch_processing = FALSE return FALSE diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index ecaa17321c486..af31d32719f14 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -332,7 +332,7 @@ COOLDOWN_START(src, effect_cooldown, effect_cooldown_time) //This needs to happen first, otherwise there's an infinite loop user.heal_ordered_damage(heal_amount, damage_heal_order) user.visible_message(span_notice("[user] suddenly revives, as their armor swirls with demonic energy!"), span_notice("You suddenly feel invigorated!")) - playsound(user.loc, 'sound/magic/clockwork/ratvar_attack.ogg', 50) + playsound(user.loc, 'sound/effects/magic/clockwork/ratvar_attack.ogg', 50) /obj/item/clothing/suit/hooded/explorer/syndicate name = "syndicate explorer suit" diff --git a/code/modules/mining/equipment/grapple_gun.dm b/code/modules/mining/equipment/grapple_gun.dm index 76da071ec6e2d..0247d0164b025 100644 --- a/code/modules/mining/equipment/grapple_gun.dm +++ b/code/modules/mining/equipment/grapple_gun.dm @@ -64,7 +64,7 @@ if(user.CanReach(attacked_atom)) return ITEM_INTERACT_BLOCKING - var/atom/bullet = fire_projectile(/obj/projectile/grapple_hook, attacked_atom, 'sound/weapons/zipline_fire.ogg') + var/atom/bullet = fire_projectile(/obj/projectile/grapple_hook, attacked_atom, 'sound/items/weapons/zipline_fire.ogg') zipline = user.Beam(bullet, icon_state = "zipline_hook", maxdistance = 9, layer = BELOW_MOB_LAYER) hooked = FALSE RegisterSignal(bullet, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_grapple_hit)) @@ -181,6 +181,6 @@ range = 9 speed = 0.1 can_hit_turfs = TRUE - hitsound = 'sound/weapons/zipline_hit.ogg' + hitsound = 'sound/items/weapons/zipline_hit.ogg' #undef DAMAGE_ON_IMPACT diff --git a/code/modules/mining/equipment/kheiral_cuffs.dm b/code/modules/mining/equipment/kheiral_cuffs.dm index eaaf11616cc71..27b3a1c42a70d 100644 --- a/code/modules/mining/equipment/kheiral_cuffs.dm +++ b/code/modules/mining/equipment/kheiral_cuffs.dm @@ -42,13 +42,13 @@ if(!(slot & ITEM_SLOT_GLOVES)) return on_wrist = TRUE - playsound(loc, 'sound/weapons/handcuffs.ogg', 30, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(loc, 'sound/items/weapons/handcuffs.ogg', 30, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) connect_kheiral_network(user) /obj/item/kheiral_cuffs/dropped(mob/user, silent) . = ..() if(on_wrist) - playsound(loc, 'sound/weapons/handcuffs.ogg', 30, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(loc, 'sound/items/weapons/handcuffs.ogg', 30, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) on_wrist = FALSE remove_kheiral_network(user) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 1da0a7db6a394..d35ef3c2a9499 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -23,7 +23,7 @@ throw_speed = 4 armour_penetration = 10 custom_materials = list(/datum/material/iron=HALF_SHEET_MATERIAL_AMOUNT*1.15, /datum/material/glass=HALF_SHEET_MATERIAL_AMOUNT*2.075) - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("smashes", "crushes", "cleaves", "chops", "pulps") attack_verb_simple = list("smash", "crush", "cleave", "chop", "pulp") sharpness = SHARP_EDGED @@ -126,7 +126,7 @@ if((user.dir & backstab_dir) && (target.dir & backstab_dir) || boosted_mark) backstabbed = TRUE combined_damage += backstab_bonus - playsound(user, 'sound/weapons/kinetic_accel.ogg', 100, TRUE) //Seriously who spelled it wrong + playsound(user, 'sound/items/weapons/kinetic_accel.ogg', 100, TRUE) //Seriously who spelled it wrong if(!QDELETED(crusher_damage_effect)) crusher_damage_effect.total_damage += combined_damage SEND_SIGNAL(user, COMSIG_LIVING_CRUSHER_DETONATE, target, src, backstabbed) @@ -157,7 +157,7 @@ attached_trophy.on_projectile_fire(destabilizer, user) destabilizer.preparePixelProjectile(target, user, modifiers) destabilizer.firer = user - playsound(user, 'sound/weapons/plasma_cutter.ogg', 100, TRUE) + playsound(user, 'sound/items/weapons/plasma_cutter.ogg', 100, TRUE) destabilizer.fire() charged = FALSE update_appearance() @@ -167,17 +167,17 @@ if(!charged) charged = TRUE update_appearance() - playsound(src.loc, 'sound/weapons/kinetic_reload.ogg', 60, TRUE) + playsound(src.loc, 'sound/items/weapons/kinetic_reload.ogg', 60, TRUE) /obj/item/kinetic_crusher/ui_action_click(mob/user, actiontype) set_light_on(!light_on) - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, 'sound/items/weapons/empty.ogg', 100, TRUE) update_appearance() /obj/item/kinetic_crusher/on_saboteur(datum/source, disrupt_duration) . = ..() set_light_on(FALSE) - playsound(src, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/empty.ogg', 100, TRUE) return TRUE /obj/item/kinetic_crusher/update_icon_state() @@ -362,7 +362,7 @@ for(var/mob/living/living_target in oview(2, user)) if(user.faction_check_atom(living_target) || living_target.stat == DEAD) continue - playsound(living_target, 'sound/magic/fireball.ogg', 20, TRUE) + playsound(living_target, 'sound/effects/magic/fireball.ogg', 20, TRUE) new /obj/effect/temp_visual/fire(living_target.loc) addtimer(CALLBACK(src, PROC_REF(pushback), living_target, user), 1) //no free backstabs, we push AFTER module stuff is done living_target.adjustFireLoss(bonus_value, forced = TRUE) diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm index c33181dd8068d..5433c85977b41 100644 --- a/code/modules/mining/equipment/marker_beacons.dm +++ b/code/modules/mining/equipment/marker_beacons.dm @@ -39,8 +39,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list( /obj/item/stack/marker_beacon/examine(mob/user) . = ..() - . += "Use in-hand to place a [singular_name].\n"+\ - "Alt-click to select a color. Current color is [picked_color]." + . += span_notice("Use in-hand to place a [singular_name].\nAlt-click to select a color. Current color is [picked_color].") /obj/item/stack/marker_beacon/update_icon_state() icon_state = "[initial(icon_state)][LOWER_TEXT(picked_color)]" @@ -148,7 +147,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list( var/obj/effect/decal/cleanable/ash/A = new /obj/effect/decal/cleanable/ash(drop_location()) A.desc += "\nLooks like this used to be \a [src] some time ago." visible_message(span_danger("[src] is disintegrated by [I]!")) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 50, TRUE) qdel(src) return return ..() diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index 0685dda148dee..85cb66ae8676c 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -15,7 +15,7 @@ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT) tool_behaviour = TOOL_MINING toolspeed = 1 - usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg') + usesound = list('sound/effects/pickaxe/picaxe1.ogg', 'sound/effects/pickaxe/picaxe2.ogg', 'sound/effects/pickaxe/picaxe3.ogg') attack_verb_continuous = list("hits", "pierces", "slices", "attacks") attack_verb_simple = list("hit", "pierce", "slice", "attack") @@ -67,8 +67,8 @@ inhand_icon_state = "handdrill" slot_flags = ITEM_SLOT_BELT toolspeed = 0.6 //available from roundstart, faster than a pickaxe. - usesound = 'sound/weapons/drill.ogg' - hitsound = 'sound/weapons/drill.ogg' + usesound = 'sound/items/weapons/drill.ogg' + hitsound = 'sound/items/weapons/drill.ogg' desc = "An electric mining drill for the especially scrawny." /obj/item/pickaxe/drill/cyborg @@ -98,8 +98,8 @@ icon_state = "jackhammer" inhand_icon_state = "jackhammer" toolspeed = 0.1 //the epitome of powertools. extremely fast mining - usesound = 'sound/weapons/sonic_jackhammer.ogg' - hitsound = 'sound/weapons/sonic_jackhammer.ogg' + usesound = 'sound/items/weapons/sonic_jackhammer.ogg' + hitsound = 'sound/items/weapons/sonic_jackhammer.ogg' desc = "Cracks rocks with sonic blasts." /obj/item/pickaxe/improvised @@ -213,7 +213,7 @@ w_class = WEIGHT_CLASS_SMALL tool_behaviour = TOOL_WRENCH toolspeed = 0.75 - usesound = 'sound/items/ratchet.ogg' + usesound = 'sound/items/tools/ratchet.ogg' attack_verb_continuous = list("bashes", "bludgeons", "thrashes", "whacks") attack_verb_simple = list("bash", "bludgeon", "thrash", "whack") wound_bonus = 10 @@ -260,7 +260,7 @@ sharpness = NONE toolspeed = 0.75 update_weight_class(WEIGHT_CLASS_SMALL) - usesound = 'sound/items/ratchet.ogg' + usesound = 'sound/items/tools/ratchet.ogg' attack_verb_continuous = list("bashes", "bludgeons", "thrashes", "whacks") attack_verb_simple = list("bash", "bludgeon", "thrash", "whack") if("Shovel") @@ -276,10 +276,10 @@ sharpness = SHARP_POINTY toolspeed = 0.5 update_weight_class(WEIGHT_CLASS_NORMAL) - usesound = 'sound/effects/picaxe1.ogg' + usesound = 'sound/effects/pickaxe/picaxe1.ogg' attack_verb_continuous = list("hits", "pierces", "slices", "attacks") attack_verb_simple = list("hit", "pierce", "slice", "attack") - playsound(src, 'sound/items/ratchet.ogg', 50, vary = TRUE) + playsound(src, 'sound/items/tools/ratchet.ogg', 50, vary = TRUE) update_appearance(UPDATE_ICON) /obj/item/trench_tool/proc/check_menu(mob/user) @@ -312,10 +312,10 @@ wound_bonus = -10 attack_verb_continuous = list("bonks", "bludgeons", "pounds") attack_verb_simple = list("bonk", "bludgeon", "pound") - drop_sound = 'sound/weapons/sonic_jackhammer.ogg' - pickup_sound = 'sound/items/handling/crowbar_pickup.ogg' - hitsound = 'sound/weapons/sonic_jackhammer.ogg' - block_sound = 'sound/weapons/sonic_jackhammer.ogg' + drop_sound = 'sound/items/weapons/sonic_jackhammer.ogg' + pickup_sound = 'sound/items/handling/tools/crowbar_pickup.ogg' + hitsound = 'sound/items/weapons/sonic_jackhammer.ogg' + block_sound = 'sound/items/weapons/sonic_jackhammer.ogg' item_flags = SLOWS_WHILE_IN_HAND | IMMUTABLE_SLOW slowdown = 3 attack_speed = 1.2 SECONDS @@ -355,7 +355,7 @@ /obj/item/shovel/giant_wrench/proc/on_transform(obj/item/source, mob/user, active) SIGNAL_HANDLER - usesound = (active ? 'sound/items/ratchet.ogg' : initial(usesound)) + usesound = (active ? 'sound/items/tools/ratchet.ogg' : initial(usesound)) block_chance = (active ? 0 : initial(block_chance)) recoil_factor = (active ? 2 : initial(recoil_factor)) do_launch = (active ? FALSE : initial(do_launch)) @@ -363,7 +363,7 @@ armour_penetration = (active ? 30 : initial(armour_penetration)) if(user) balloon_alert(user, "folded Big Slappy [active ? "open" : "closed"]") - playsound(src, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/ratchet.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/shovel/giant_wrench/attack(mob/living/target_mob, mob/living/user) diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm index 99b27e15ca8ab..5019e023d3184 100644 --- a/code/modules/mining/equipment/resonator.dm +++ b/code/modules/mining/equipment/resonator.dm @@ -87,7 +87,7 @@ if(parent_resonator) parent_resonator.fields += src adding_failure = set_failure - playsound(src,'sound/weapons/resonator_fire.ogg',50,TRUE) + playsound(src,'sound/items/weapons/resonator_fire.ogg',50,TRUE) if(mode == RESONATOR_MODE_AUTO) transform = matrix()*0.75 animate(src, transform = matrix()*1.5, time = duration) @@ -123,7 +123,7 @@ var/turf/closed/mineral/mineral_turf = src_turf mineral_turf.gets_drilled(creator) check_pressure(src_turf) - playsound(src_turf, 'sound/weapons/resonator_blast.ogg', 50, TRUE) + playsound(src_turf, 'sound/items/weapons/resonator_blast.ogg', 50, TRUE) for(var/mob/living/attacked_living in src_turf) if(creator) log_combat(creator, attacked_living, "used a resonator field on", "resonator") diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index eb94f68a1f9a7..6ffcfa7bc6752 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -107,7 +107,7 @@ . = ..() if(.) // KERPLUNK - playsound(M,'sound/weapons/resonator_blast.ogg',50,TRUE) + playsound(M,'sound/items/weapons/resonator_blast.ogg',50,TRUE) if(iscarbon(M)) var/mob/living/carbon/L = M L.Paralyze(60) diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index 3783b5f592cd1..1ef2f778bc54b 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -80,7 +80,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) balloon_alert(user, "too heavy!") return . balloon_alert_to_viewers("attaching...") - playsound(thing, 'sound/items/zip.ogg', vol = 50, vary = TRUE) + playsound(thing, 'sound/items/zip/zip.ogg', vol = 50, vary = TRUE) if(isliving(thing)) var/mob/living/creature = thing if(creature.mind) @@ -124,7 +124,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) balloon.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM holder_obj.cut_overlay(balloon2) holder_obj.add_overlay(balloon) - playsound(holder_obj.loc, 'sound/items/fultext_deploy.ogg', vol = 50, vary = TRUE, extrarange = -3) + playsound(holder_obj.loc, 'sound/items/fulton/fultext_deploy.ogg', vol = 50, vary = TRUE, extrarange = -3) animate(holder_obj, pixel_z = 10, time = 2 SECONDS, flags = ANIMATION_RELATIVE) animate(pixel_z = 5, time = 1 SECONDS, flags = ANIMATION_RELATIVE) @@ -134,7 +134,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons) sleep(6 SECONDS) - playsound(holder_obj.loc, 'sound/items/fultext_launch.ogg', vol = 50, vary = TRUE, extrarange = -3) + playsound(holder_obj.loc, 'sound/items/fulton/fultext_launch.ogg', vol = 50, vary = TRUE, extrarange = -3) animate(holder_obj, pixel_z = 1000, time = 3 SECONDS, flags = ANIMATION_RELATIVE) if(ishuman(thing)) diff --git a/code/modules/mining/lavaland/megafauna_loot.dm b/code/modules/mining/lavaland/megafauna_loot.dm index 94837a4ae4887..d355014c6ad70 100644 --- a/code/modules/mining/lavaland/megafauna_loot.dm +++ b/code/modules/mining/lavaland/megafauna_loot.dm @@ -56,7 +56,7 @@ force = 15 attack_verb_continuous = list("clubs", "beats", "pummels") attack_verb_simple = list("club", "beat", "pummel") - hitsound = 'sound/weapons/sonic_jackhammer.ogg' + hitsound = 'sound/items/weapons/sonic_jackhammer.ogg' resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF actions_types = list(/datum/action/item_action/vortex_recall) /// Linked teleport beacon for the group teleport functionality. @@ -85,7 +85,7 @@ say("Xverwpsgexmrk...", forced = "hierophant club suicide") user.visible_message(span_suicide("[user] holds [src] into the air! It looks like [user.p_theyre()] trying to commit suicide!")) new/obj/effect/temp_visual/hierophant/telegraph(get_turf(user)) - playsound(user,'sound/machines/airlockopen.ogg', 75, TRUE) + playsound(user,'sound/machines/airlock/airlockopen.ogg', 75, TRUE) user.visible_message(span_hierophant_warning("[user] fades out, leaving [user.p_their()] belongings behind!")) for(var/obj/item/user_item in user) if(user_item != src) @@ -128,7 +128,7 @@ span_notice("You start detaching the hierophant beacon...")) if(do_after(user, 5 SECONDS, target = user) && !beacon) var/turf/user_turf = get_turf(user) - playsound(user_turf,'sound/magic/blind.ogg', 200, TRUE, -4) + playsound(user_turf,'sound/effects/magic/blind.ogg', 200, TRUE, -4) new /obj/effect/temp_visual/hierophant/telegraph/teleport(user_turf, user) beacon = new/obj/effect/hierophant(user_turf) user.update_mob_action_buttons() @@ -166,8 +166,8 @@ return new /obj/effect/temp_visual/hierophant/telegraph(destination, user) new /obj/effect/temp_visual/hierophant/telegraph(source, user) - playsound(destination,'sound/magic/wand_teleport.ogg', 200, TRUE) - playsound(source,'sound/machines/airlockopen.ogg', 200, TRUE) + playsound(destination,'sound/effects/magic/wand_teleport.ogg', 200, TRUE) + playsound(source,'sound/machines/airlock/airlockopen.ogg', 200, TRUE) if(!do_after(user, 0.3 SECONDS, target = user) || !user || !beacon || QDELETED(beacon)) //no walking away shitlord teleporting = FALSE if(user) @@ -251,7 +251,7 @@ for(var/mob/living/carbon/human/target in range(7,user)) target.apply_status_effect(/datum/status_effect/mayhem) to_chat(user, span_notice("You shatter the bottle!")) - playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, TRUE) + playsound(user.loc, 'sound/effects/glass/glassbr1.ogg', 100, TRUE) message_admins(span_adminnotice("[ADMIN_LOOKUPFLW(user)] has activated a bottle of mayhem!")) user.log_message("activated a bottle of mayhem", LOG_ATTACK) qdel(src) @@ -368,7 +368,7 @@ righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' attack_verb_continuous = list("chops", "slices", "cuts", "reaps") attack_verb_simple = list("chop", "slice", "cut", "reap") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' inhand_x_dimension = 64 inhand_y_dimension = 64 force = 20 @@ -557,7 +557,7 @@ projectile.firer = src projectile.fire(null, attacked_atom) visible_message(span_danger("[src] fires at [attacked_atom]!"), span_notice("You fire at [attacked_atom]!")) - playsound(src, 'sound/magic/fireball.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/fireball.ogg', 50, TRUE) /obj/item/soulscythe/proc/slash_target(atom/attacked_atom) if(isliving(attacked_atom) && use_blood(10)) @@ -576,7 +576,7 @@ SpinAnimation(5) addtimer(CALLBACK(src, PROC_REF(reset_spin)), 1 SECONDS) visible_message(span_danger("[src] slashes [attacked_atom]!"), span_notice("You slash [attacked_atom]!")) - playsound(src, 'sound/weapons/bladeslice.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/bladeslice.ogg', 50, TRUE) do_attack_animation(attacked_atom, ATTACK_EFFECT_SLASH) /obj/item/soulscythe/proc/charge_target(atom/attacked_atom) @@ -592,7 +592,7 @@ return visible_message(span_danger("[src] charges at [attacked_atom]!"), span_notice("You charge at [attacked_atom]!")) new /obj/effect/temp_visual/mook_dust(get_turf(src)) - playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE) SpinAnimation(1) throwforce *= 2 throw_at(attacked_atom, 10, 3, soul, FALSE) @@ -657,7 +657,7 @@ force = 1 throwforce = 1 hitsound = 'sound/effects/ghost2.ogg' - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "rends") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF @@ -794,7 +794,7 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF attack_verb_continuous = list("sears", "clubs", "burn") attack_verb_simple = list("sear", "club", "burn") - hitsound = 'sound/weapons/sear.ogg' + hitsound = 'sound/items/weapons/sear.ogg' var/turf_type = /turf/open/lava/smooth/weak var/transform_string = "lava" var/reset_turf_type = /turf/open/misc/asteroid/basalt @@ -833,7 +833,7 @@ message_admins("[ADMIN_LOOKUPFLW(user)] fired the lava staff at [ADMIN_VERBOSEJMP(T)]") user.log_message("fired the lava staff at [AREACOORD(T)].", LOG_ATTACK) timer = world.time + create_cooldown - playsound(T,'sound/magic/fireball.ogg', 200, TRUE) + playsound(T,'sound/effects/magic/fireball.ogg', 200, TRUE) else timer = world.time qdel(L) @@ -842,7 +842,7 @@ if(T.TerraformTurf(reset_turf_type, flags = CHANGETURF_INHERIT_AIR)) user.visible_message(span_danger("[user] turns \the [old_name] into [reset_string]!")) timer = world.time + reset_cooldown - playsound(T,'sound/magic/fireball.ogg', 200, TRUE) + playsound(T,'sound/effects/magic/fireball.ogg', 200, TRUE) return ITEM_INTERACT_SUCCESS /obj/effect/temp_visual/lavastaff @@ -873,7 +873,7 @@ inhand_x_dimension = 64 inhand_y_dimension = 64 slot_flags = ITEM_SLOT_BELT - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' w_class = WEIGHT_CLASS_BULKY sharpness = SHARP_EDGED /// List of factions we deal bonus damage to @@ -975,7 +975,7 @@ user.changeNext_move(CLICK_CD_MELEE * 0.25) if(user) balloon_alert(user, "[active ? "opened" : "closed"] [src]") - playsound(src, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000)) + playsound(src, 'sound/effects/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000)) return COMPONENT_NO_DEFAULT_MESSAGE //Legion: Staff of Storms @@ -992,7 +992,7 @@ w_class = WEIGHT_CLASS_BULKY force = 20 damtype = BURN - hitsound = 'sound/weapons/taserhit.ogg' + hitsound = 'sound/items/weapons/taserhit.ogg' wound_bonus = -30 bare_wound_bonus = 20 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF @@ -1034,7 +1034,7 @@ return user.visible_message(span_warning("[user] holds [src] skywards as an orange beam travels into the sky!"), \ span_notice("You hold [src] skyward, dispelling the storm!")) - playsound(user, 'sound/magic/staff_change.ogg', 200, FALSE) + playsound(user, 'sound/effects/magic/staff_change.ogg', 200, FALSE) var/old_color = user.color user.color = list(340/255, 240/255, 0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) var/old_transform = user.transform @@ -1071,7 +1071,7 @@ if((target_turf.z in weather.impacted_z_levels) && ispath(target_area.type, weather.area_type)) power_boosted = TRUE break - playsound(src, 'sound/magic/lightningshock.ogg', 10, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) + playsound(src, 'sound/effects/magic/lightningshock.ogg', 10, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) targeted_turfs += target_turf balloon_alert(user, "you aim at [target_turf]...") new /obj/effect/temp_visual/telegraphing/thunderbolt(target_turf) @@ -1083,7 +1083,7 @@ /obj/item/storm_staff/proc/recharge(mob/user) thunder_charges = min(thunder_charges + 1, max_thunder_charges) - playsound(src, 'sound/magic/charge.ogg', 10, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) + playsound(src, 'sound/effects/magic/charge.ogg', 10, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) /obj/item/storm_staff/proc/throw_thunderbolt(turf/target, boosted) targeted_turfs -= target @@ -1103,6 +1103,6 @@ for(var/obj/hit_thing in turf) hit_thing.take_damage(20, BURN, ENERGY, FALSE) - playsound(target, 'sound/magic/lightningbolt.ogg', 100, TRUE) + playsound(target, 'sound/effects/magic/lightningbolt.ogg', 100, TRUE) target.visible_message(span_danger("A thunderbolt strikes [target]!")) explosion(target, light_impact_range = (boosted ? 1 : 0), flame_range = (boosted ? 2 : 1), silent = TRUE) diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm index 2ded64c17aaea..af1b990a6fb6a 100644 --- a/code/modules/mining/lavaland/tendril_loot.dm +++ b/code/modules/mining/lavaland/tendril_loot.dm @@ -202,13 +202,13 @@ guardian.locked = TRUE guardian.forceMove(src) to_chat(guardian, span_userdanger("You have been locked away in your summoner's pendant!")) - guardian.playsound_local(get_turf(guardian), 'sound/magic/summonitems_generic.ogg', 50, TRUE) + guardian.playsound_local(get_turf(guardian), 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE) /obj/item/clothing/neck/necklace/memento_mori/proc/regurgitate_guardian(mob/living/basic/guardian/guardian) guardian.locked = FALSE guardian.recall(forced = TRUE) to_chat(guardian, span_notice("You have been returned back from your summoner's pendant!")) - guardian.playsound_local(get_turf(guardian), 'sound/magic/repulse.ogg', 50, TRUE) + guardian.playsound_local(get_turf(guardian), 'sound/effects/magic/repulse.ogg', 50, TRUE) /datum/action/item_action/hands_free/memento_mori check_flags = NONE @@ -555,7 +555,7 @@ var/obj/item/organ/external/wings/functional/wings = get_wing_choice(exposed_human, chest) wings = new wings() wings.Insert(exposed_human) - playsound(exposed_human.loc, 'sound/items/poster_ripped.ogg', 50, TRUE, -1) + playsound(exposed_human.loc, 'sound/items/poster/poster_ripped.ogg', 50, TRUE, -1) exposed_human.apply_damage(20, def_zone = BODY_ZONE_CHEST, forced = TRUE, wound_bonus = CANT_WOUND) exposed_human.emote("scream") @@ -769,7 +769,7 @@ /// Starts berserk, reducing incoming brute by 50%, doubled attacking speed, NOGUNS trait, adding a color and giving them the berserk movespeed modifier /obj/item/clothing/head/hooded/berserker/proc/berserk_mode(mob/living/carbon/human/user) to_chat(user, span_warning("You enter berserk mode.")) - playsound(user, 'sound/magic/staff_healing.ogg', 50) + playsound(user, 'sound/effects/magic/staff_healing.ogg', 50) user.add_movespeed_modifier(/datum/movespeed_modifier/berserk) user.physiology.brute_mod *= 0.5 user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER @@ -787,7 +787,7 @@ if(QDELETED(user)) return to_chat(user, span_warning("You exit berserk mode.")) - playsound(user, 'sound/magic/summonitems_generic.ogg', 50) + playsound(user, 'sound/effects/magic/summonitems_generic.ogg', 50) user.remove_movespeed_modifier(/datum/movespeed_modifier/berserk) user.physiology.brute_mod *= 2 user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER @@ -903,7 +903,7 @@ healthscan(living_owner, living_scanned, 1, TRUE) - owner.playsound_local(get_turf(owner), 'sound/magic/smoke.ogg', 50, TRUE) + owner.playsound_local(get_turf(owner), 'sound/effects/magic/smoke.ogg', 50, TRUE) owner.balloon_alert(owner, "[living_scanned] scanned") addtimer(CALLBACK(src, PROC_REF(send_cooldown_end_message), cooldown_time)) @@ -939,7 +939,7 @@ /obj/item/organ/internal/cyberimp/arm/shard/attack_self(mob/user, modifiers) . = ..() to_chat(user, span_userdanger("The mass goes up your arm and goes inside it!")) - playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(user, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) var/index = user.get_held_index_of_item(src) zone = (index == LEFT_HANDS ? BODY_ZONE_L_ARM : BODY_ZONE_R_ARM) SetSlotFromZone() @@ -960,7 +960,7 @@ return FALSE if(!katana.drew_blood) to_chat(owner, span_userdanger("[katana] lashes out at you in hunger!")) - playsound(owner, 'sound/magic/demon_attack1.ogg', 50, TRUE) + playsound(owner, 'sound/effects/magic/demon_attack1.ogg', 50, TRUE) var/obj/item/bodypart/part = owner.get_holding_bodypart_of_item(katana) if(part) part.receive_damage(brute = 25, wound_bonus = 10, sharpness = SHARP_EDGED) @@ -986,12 +986,12 @@ force = 15 armour_penetration = 30 block_chance = 30 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED w_class = WEIGHT_CLASS_HUGE attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | FREEZE_PROOF var/shattered = FALSE var/drew_blood = FALSE @@ -1043,7 +1043,7 @@ user.visible_message(span_warning("[user] strikes [target] with [src]'s hilt!"), span_notice("You hilt strike [target]!")) to_chat(target, span_userdanger("You've been struck by [user]!")) - playsound(src, 'sound/weapons/genhit3.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit3.ogg', 50, TRUE) RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(strike_throw_impact)) var/atom/throw_target = get_edge_target_turf(target, user.dir) target.throw_at(throw_target, 5, 3, user, FALSE, gentle = TRUE) @@ -1068,7 +1068,7 @@ /obj/item/cursed_katana/proc/slice(mob/living/target, mob/user) user.visible_message(span_warning("[user] does a wide slice!"), span_notice("You do a wide slice!")) - playsound(src, 'sound/weapons/bladeslice.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/bladeslice.ogg', 50, TRUE) var/turf/user_turf = get_turf(user) var/dir_to_target = get_dir(user_turf, get_turf(target)) var/static/list/cursed_katana_slice_angles = list(0, -45, 45, -90, 90) //so that the animation animates towards the target clicked and not towards a side target @@ -1088,7 +1088,7 @@ user.visible_message(span_warning("[user] vanishes into thin air!"), span_notice("You enter the dark cloak.")) new /obj/effect/temp_visual/mook_dust(get_turf(src)) - playsound(src, 'sound/magic/smoke.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/smoke.ogg', 50, TRUE) if(ishostile(target)) var/mob/living/simple_animal/hostile/hostile_target = target if(hostile_target.target == user) @@ -1101,7 +1101,7 @@ user.clear_sight(SEE_SELF) user.visible_message(span_warning("[user] appears from thin air!"), span_notice("You exit the dark cloak.")) - playsound(src, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE) new /obj/effect/temp_visual/mook_dust(get_turf(src)) /obj/item/cursed_katana/proc/cut(mob/living/target, mob/user) @@ -1110,7 +1110,7 @@ to_chat(target, span_userdanger("Your tendons have been cut by [user]!")) target.apply_damage(damage = 15, sharpness = SHARP_EDGED, wound_bonus = 15) user.do_attack_animation(target, ATTACK_EFFECT_DISARM) - playsound(src, 'sound/weapons/rapierhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/rapierhit.ogg', 50, TRUE) var/datum/status_effect/stacking/saw_bleed/bloodletting/status = target.has_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting) if(!status) target.apply_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting, 6) @@ -1121,7 +1121,7 @@ user.visible_message(span_warning("[user] dashes through [target]!"), span_notice("You dash through [target]!")) to_chat(target, span_userdanger("[user] dashes through you!")) - playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/blink.ogg', 50, TRUE) target.apply_damage(damage = 17, sharpness = SHARP_POINTY, bare_wound_bonus = 10) var/turf/dash_target = get_turf(target) for(var/distance in 0 to 8) @@ -1141,7 +1141,7 @@ to_chat(target, span_userdanger("[user] shatters [src] over you!")) target.apply_damage(damage = ishostile(target) ? 75 : 35, wound_bonus = 20) user.do_attack_animation(target, ATTACK_EFFECT_SMASH) - playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(src, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) shattered = TRUE moveToNullspace() balloon_alert(user, "katana shattered") @@ -1150,7 +1150,7 @@ /obj/item/cursed_katana/proc/coagulate(mob/user) balloon_alert(user, "katana coagulated") shattered = FALSE - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) #undef ATTACK_STRIKE #undef ATTACK_SLICE diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 5d96aace182a8..aaf127bf8b594 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -321,7 +321,7 @@ return update_rail_state(FALSE) Move(new_destination) - var/sound/thud_sound = sound('sound/weapons/thudswoosh.ogg') + var/sound/thud_sound = sound('sound/items/weapons/thudswoosh.ogg') thud_sound.pitch = 0.5 playsound(src, thud_sound, 50, TRUE) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 0f9ebc317ce5e..16d4f6345ccc8 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -194,11 +194,11 @@ #define IS_ACTING_CAPTAIN 1 #define IS_FULL_CAPTAIN 2 var/is_captain = IS_NOT_CAPTAIN - var/captain_sound = 'sound/misc/notice2.ogg' + var/captain_sound = 'sound/announcer/notice/notice2.ogg' // If we already have a captain, are they a "Captain" rank and are we allowing multiple of them to be assigned? if(is_captain_job(job)) is_captain = IS_FULL_CAPTAIN - captain_sound = 'sound/misc/announce.ogg' + captain_sound = 'sound/announcer/announcement/announce.ogg' // If we don't have an assigned cap yet, check if this person qualifies for some from of captaincy. else if(!SSjob.assigned_captain && ishuman(character) && SSjob.chain_of_command[rank] && !is_banned_from(character.ckey, list(JOB_CAPTAIN))) is_captain = IS_ACTING_CAPTAIN diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 0fae07a4442dd..c812905d58fec 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -159,7 +159,7 @@ animate(transform = original_transform, time = 0.1 SECONDS) /datum/emote/jump/get_sound(mob/user) - return 'sound/weapons/thudswoosh.ogg' + return 'sound/items/weapons/thudswoosh.ogg' // Avoids playing sounds if we're a ghost /datum/emote/jump/should_play_sound(mob/user, intentional) diff --git a/code/modules/mob/living/basic/alien/_alien.dm b/code/modules/mob/living/basic/alien/_alien.dm index 907d28aaa4187..99b615fbf6089 100644 --- a/code/modules/mob/living/basic/alien/_alien.dm +++ b/code/modules/mob/living/basic/alien/_alien.dm @@ -35,10 +35,10 @@ attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW gold_core_spawnable = NO_SPAWN - death_sound = 'sound/voice/hiss6.ogg' + death_sound = 'sound/mobs/non-humanoids/hiss/hiss6.ogg' death_message = "lets out a waning guttural screech, green blood bubbling from its maw..." habitable_atmos = null diff --git a/code/modules/mob/living/basic/alien/queen.dm b/code/modules/mob/living/basic/alien/queen.dm index f2d787743a258..8957d05d89b10 100644 --- a/code/modules/mob/living/basic/alien/queen.dm +++ b/code/modules/mob/living/basic/alien/queen.dm @@ -15,7 +15,7 @@ ///The type of projectile that fires from attacks. var/projectiletype = /obj/projectile/neurotoxin/damaging ///The sound that plays when the projectile is fired. - var/projectilesound = 'sound/weapons/pierce.ogg' + var/projectilesound = 'sound/items/weapons/pierce.ogg' /mob/living/basic/alien/queen/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/alien/sentinel.dm b/code/modules/mob/living/basic/alien/sentinel.dm index 8f5ae815c5ffd..7f39e1b12aab5 100644 --- a/code/modules/mob/living/basic/alien/sentinel.dm +++ b/code/modules/mob/living/basic/alien/sentinel.dm @@ -13,7 +13,7 @@ ///The type of projectile that fires from attacks. var/projectiletype = /obj/projectile/neurotoxin/damaging ///The sound that plays when the projectile is fired. - var/projectilesound = 'sound/weapons/pierce.ogg' + var/projectilesound = 'sound/items/weapons/pierce.ogg' /mob/living/basic/alien/sentinel/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/basic_defense.dm b/code/modules/mob/living/basic/basic_defense.dm index 9a7ddef3ce0f2..b4100a73cc160 100644 --- a/code/modules/mob/living/basic/basic_defense.dm +++ b/code/modules/mob/living/basic/basic_defense.dm @@ -15,7 +15,7 @@ ignored_mobs = user, ) to_chat(user, span_notice("You [response_help_simple] [src].")) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) return TRUE if(HAS_TRAIT(user, TRAIT_PACIFISM)) @@ -72,7 +72,7 @@ visible_message(span_notice("[user.name] [response_help_continuous] [src]."), \ span_notice("[user.name] [response_help_continuous] you."), null, COMBAT_MESSAGE_RANGE, user) to_chat(user, span_notice("You [response_help_simple] [src].")) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) /mob/living/basic/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) @@ -80,7 +80,7 @@ if(!.) return if(LAZYACCESS(modifiers, RIGHT_CLICK)) - playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/pierce.ogg', 25, TRUE, -1) visible_message(span_danger("[user] [response_disarm_continuous] [name]!"), \ span_userdanger("[user] [response_disarm_continuous] you!"), null, COMBAT_MESSAGE_RANGE, user) to_chat(user, span_danger("You [response_disarm_simple] [name]!")) @@ -90,7 +90,7 @@ visible_message(span_danger("[user] slashes at [src]!"), \ span_userdanger("You're slashed at by [user]!"), null, COMBAT_MESSAGE_RANGE, user) to_chat(user, span_danger("You slash at [src]!")) - playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) apply_damage(damage) log_combat(user, src, "attacked") diff --git a/code/modules/mob/living/basic/blob_minions/blob_spore.dm b/code/modules/mob/living/basic/blob_minions/blob_spore.dm index e8c3acc8b97f0..6946d30a631ec 100644 --- a/code/modules/mob/living/basic/blob_minions/blob_spore.dm +++ b/code/modules/mob/living/basic/blob_minions/blob_spore.dm @@ -19,7 +19,7 @@ obj_damage = 0 attack_verb_continuous = "batters" attack_verb_simple = "batter" - attack_sound = 'sound/weapons/genhit1.ogg' + attack_sound = 'sound/items/weapons/genhit1.ogg' death_message = "explodes into a cloud of gas!" gold_core_spawnable = HOSTILE_SPAWN basic_mob_flags = DEL_ON_DEATH diff --git a/code/modules/mob/living/basic/blob_minions/blob_zombie.dm b/code/modules/mob/living/basic/blob_minions/blob_zombie.dm index 50299a38b3fee..b3ce7ea38cbc4 100644 --- a/code/modules/mob/living/basic/blob_minions/blob_zombie.dm +++ b/code/modules/mob/living/basic/blob_minions/blob_zombie.dm @@ -18,7 +18,7 @@ obj_damage = 20 attack_verb_continuous = "punches" attack_verb_simple = "punch" - attack_sound = 'sound/weapons/genhit1.ogg' + attack_sound = 'sound/items/weapons/genhit1.ogg' death_message = "collapses to the ground!" gold_core_spawnable = NO_SPAWN basic_mob_flags = DEL_ON_DEATH diff --git a/code/modules/mob/living/basic/blob_minions/blobbernaut.dm b/code/modules/mob/living/basic/blob_minions/blobbernaut.dm index 8b94063ba7764..13146c3b5c51c 100644 --- a/code/modules/mob/living/basic/blob_minions/blobbernaut.dm +++ b/code/modules/mob/living/basic/blob_minions/blobbernaut.dm @@ -17,7 +17,7 @@ obj_damage = BLOBMOB_BLOBBERNAUT_DMG_OBJ attack_verb_continuous = "slams" attack_verb_simple = "slam" - attack_sound = 'sound/effects/blobattack.ogg' + attack_sound = 'sound/effects/blob/blobattack.ogg' verb_say = "gurgles" verb_ask = "demands" verb_exclaim = "roars" @@ -84,8 +84,8 @@ key = ckey flick("blobbernaut_produce", src) health = maxHealth / 2 // Start out injured to encourage not beelining away from the blob - SEND_SOUND(src, sound('sound/effects/blobattack.ogg')) - SEND_SOUND(src, sound('sound/effects/attackblob.ogg')) + SEND_SOUND(src, sound('sound/effects/blob/blobattack.ogg')) + SEND_SOUND(src, sound('sound/effects/blob/attackblob.ogg')) to_chat(src, span_infoplain("You are powerful, hard to kill, and slowly regenerate near nodes and cores, [span_cult_large("but will slowly die if not near the blob")] or if the factory that made you is killed.")) to_chat(src, span_infoplain("You can communicate with other blobbernauts and overminds telepathically by attempting to speak normally")) to_chat(src, span_infoplain("Your overmind's blob reagent is: [blobstrain.name]!")) diff --git a/code/modules/mob/living/basic/bots/dedbot.dm b/code/modules/mob/living/basic/bots/dedbot.dm index bf48ac93c3b57..0dd5bff9a7c66 100644 --- a/code/modules/mob/living/basic/bots/dedbot.dm +++ b/code/modules/mob/living/basic/bots/dedbot.dm @@ -21,7 +21,7 @@ sharpness = SHARP_EDGED attack_verb_continuous = "eviscerates" attack_verb_simple = "eviscerate" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH gold_core_spawnable = HOSTILE_SPAWN limb_destroyer = TRUE @@ -103,7 +103,7 @@ return FALSE caster.Shake(1.4, 0.8, 0.3 SECONDS) caster.visible_message(span_danger("[caster] shakes violently!")) - playsound(caster, 'sound/weapons/drill.ogg', 120 , TRUE) + playsound(caster, 'sound/items/weapons/drill.ogg', 120 , TRUE) slash_em(caster) StartCooldown(cooldown_time) diff --git a/code/modules/mob/living/basic/bots/firebot/firebot.dm b/code/modules/mob/living/basic/bots/firebot/firebot.dm index 921909aa8a531..1db37c6340bff 100644 --- a/code/modules/mob/living/basic/bots/firebot/firebot.dm +++ b/code/modules/mob/living/basic/bots/firebot/firebot.dm @@ -29,20 +29,20 @@ /mob/living/basic/bot/firebot/generate_speak_list() var/static/list/idle_lines = list( - FIREBOT_VOICED_NO_FIRES = 'sound/voice/firebot/nofires.ogg', - FIREBOT_VOICED_ONLY_YOU = 'sound/voice/firebot/onlyyou.ogg', - FIREBOT_VOICED_TEMPERATURE_NOMINAL = 'sound/voice/firebot/tempnominal.ogg', - FIREBOT_VOICED_KEEP_COOL = 'sound/voice/firebot/keepitcool.ogg', + FIREBOT_VOICED_NO_FIRES = 'sound/mobs/non-humanoids/firebot/nofires.ogg', + FIREBOT_VOICED_ONLY_YOU = 'sound/mobs/non-humanoids/firebot/onlyyou.ogg', + FIREBOT_VOICED_TEMPERATURE_NOMINAL = 'sound/mobs/non-humanoids/firebot/tempnominal.ogg', + FIREBOT_VOICED_KEEP_COOL = 'sound/mobs/non-humanoids/firebot/keepitcool.ogg', ) var/static/list/fire_detected_lines = list( - FIREBOT_VOICED_FIRE_DETECTED = 'sound/voice/firebot/detected.ogg', - FIREBOT_VOICED_STOP_DROP = 'sound/voice/firebot/stopdropnroll.ogg', - FIREBOT_VOICED_EXTINGUISHING = 'sound/voice/firebot/extinguishing.ogg', + FIREBOT_VOICED_FIRE_DETECTED = 'sound/mobs/non-humanoids/firebot/detected.ogg', + FIREBOT_VOICED_STOP_DROP = 'sound/mobs/non-humanoids/firebot/stopdropnroll.ogg', + FIREBOT_VOICED_EXTINGUISHING = 'sound/mobs/non-humanoids/firebot/extinguishing.ogg', ) var/static/list/emagged_lines = list( - FIREBOT_VOICED_CANDLE_TIP = 'sound/voice/firebot/candle_tip.ogg', - FIREBOT_VOICED_ELECTRIC_FIRE = 'sound/voice/firebot/electric_fire_tip.ogg', - FIREBOT_VOICED_FUEL_TIP = 'sound/voice/firebot/gasoline_tip.ogg' + FIREBOT_VOICED_CANDLE_TIP = 'sound/mobs/non-humanoids/firebot/candle_tip.ogg', + FIREBOT_VOICED_ELECTRIC_FIRE = 'sound/mobs/non-humanoids/firebot/electric_fire_tip.ogg', + FIREBOT_VOICED_FUEL_TIP = 'sound/mobs/non-humanoids/firebot/gasoline_tip.ogg' ) ai_controller.set_blackboard_key(BB_FIREBOT_EMAGGED_LINES, emagged_lines) ai_controller.set_blackboard_key(BB_FIREBOT_IDLE_LINES, idle_lines) diff --git a/code/modules/mob/living/basic/bots/honkbots/honkbot.dm b/code/modules/mob/living/basic/bots/honkbots/honkbot.dm index 38884bec503da..1fa30063dd581 100644 --- a/code/modules/mob/living/basic/bots/honkbots/honkbot.dm +++ b/code/modules/mob/living/basic/bots/honkbots/honkbot.dm @@ -48,7 +48,7 @@ can_slip_callback = CALLBACK(src, PROC_REF(pre_slip)),\ ) AddComponent(/datum/component/stun_n_cuff,\ - stun_sound = 'sound/items/AirHorn.ogg',\ + stun_sound = 'sound/items/airhorn/AirHorn.ogg',\ post_stun_callback = CALLBACK(src, PROC_REF(post_stun)),\ post_arrest_callback = CALLBACK(src, PROC_REF(post_arrest)),\ handcuff_type = /obj/item/restraints/handcuffs/cable/zipties/fake,\ diff --git a/code/modules/mob/living/basic/bots/hygienebot/hygienebot.dm b/code/modules/mob/living/basic/bots/hygienebot/hygienebot.dm index 4dbd78dcac14a..6100a81279747 100644 --- a/code/modules/mob/living/basic/bots/hygienebot/hygienebot.dm +++ b/code/modules/mob/living/basic/bots/hygienebot/hygienebot.dm @@ -29,23 +29,23 @@ var/static/mutable_appearance/fire_overlay = mutable_appearance('icons/mob/silicon/aibots.dmi', "hygienebot-fire") ///announcements we say when we find a target var/static/list/found_announcements = list( - HYGIENEBOT_VOICED_UNHYGIENIC = 'sound/voice/hygienebot/unhygienicclient.ogg', + HYGIENEBOT_VOICED_UNHYGIENIC = 'sound/mobs/non-humanoids/hygienebot/unhygienicclient.ogg', ) ///announcements we say when the target keeps moving away var/static/list/threat_announcements = list( - HYGIENEBOT_VOICED_THREAT_AIRLOCK = 'sound/voice/hygienebot/dragyouout.ogg', - HYGIENEBOT_VOICED_FOUL_SMELL = 'sound/voice/hygienebot/foulsmelling.ogg', - HYGIENEBOT_VOICED_TROGLODYTE = 'sound/voice/hygienebot/troglodyte.ogg', - HYGIENEBOT_VOICED_GREEN_CLOUD = 'sound/voice/hygienebot/greencloud.ogg', - HYGIENEBOT_VOICED_ARSEHOLE = 'sound/voice/hygienebot/letmeclean.ogg', - HYGIENEBOT_VOICED_THREAT_ARTERIES = 'sound/voice/hygienebot/cutarteries.ogg', - HYGIENEBOT_VOICED_STOP_RUNNING = 'sound/voice/hygienebot/stoprunning.ogg', + HYGIENEBOT_VOICED_THREAT_AIRLOCK = 'sound/mobs/non-humanoids/hygienebot/dragyouout.ogg', + HYGIENEBOT_VOICED_FOUL_SMELL = 'sound/mobs/non-humanoids/hygienebot/foulsmelling.ogg', + HYGIENEBOT_VOICED_TROGLODYTE = 'sound/mobs/non-humanoids/hygienebot/troglodyte.ogg', + HYGIENEBOT_VOICED_GREEN_CLOUD = 'sound/mobs/non-humanoids/hygienebot/greencloud.ogg', + HYGIENEBOT_VOICED_ARSEHOLE = 'sound/mobs/non-humanoids/hygienebot/letmeclean.ogg', + HYGIENEBOT_VOICED_THREAT_ARTERIES = 'sound/mobs/non-humanoids/hygienebot/cutarteries.ogg', + HYGIENEBOT_VOICED_STOP_RUNNING = 'sound/mobs/non-humanoids/hygienebot/stoprunning.ogg', ) ///announcements we say after we have cleaned our target var/static/list/cleaned_announcements = list( - HYGIENEBOT_VOICED_FUCKING_FINALLY = 'sound/voice/hygienebot/finally.ogg', - HYGIENEBOT_VOICED_THANK_GOD = 'sound/voice/hygienebot/thankgod.ogg', - HYGIENEBOT_VOICED_DEGENERATE = 'sound/voice/hygienebot/degenerate.ogg', + HYGIENEBOT_VOICED_FUCKING_FINALLY = 'sound/mobs/non-humanoids/hygienebot/finally.ogg', + HYGIENEBOT_VOICED_THANK_GOD = 'sound/mobs/non-humanoids/hygienebot/thankgod.ogg', + HYGIENEBOT_VOICED_DEGENERATE = 'sound/mobs/non-humanoids/hygienebot/degenerate.ogg', ) /mob/living/basic/bot/hygienebot/Initialize(mapload) diff --git a/code/modules/mob/living/basic/bots/medbot/medbot.dm b/code/modules/mob/living/basic/bots/medbot/medbot.dm index 7b100aa554582..2466ab931cd19 100644 --- a/code/modules/mob/living/basic/bots/medbot/medbot.dm +++ b/code/modules/mob/living/basic/bots/medbot/medbot.dm @@ -29,66 +29,66 @@ ///anouncements when we find a target to heal var/static/list/wait_announcements = list( - MEDIBOT_VOICED_HOLD_ON = 'sound/voice/medbot/coming.ogg', - MEDIBOT_VOICED_WANT_TO_HELP = 'sound/voice/medbot/help.ogg', - MEDIBOT_VOICED_YOU_ARE_INJURED = 'sound/voice/medbot/injured.ogg', + MEDIBOT_VOICED_HOLD_ON = 'sound/mobs/non-humanoids/medbot/coming.ogg', + MEDIBOT_VOICED_WANT_TO_HELP = 'sound/mobs/non-humanoids/medbot/help.ogg', + MEDIBOT_VOICED_YOU_ARE_INJURED = 'sound/mobs/non-humanoids/medbot/injured.ogg', ) ///announcements after we heal someone var/static/list/afterheal_announcements = list( - MEDIBOT_VOICED_ALL_PATCHED_UP = 'sound/voice/medbot/patchedup.ogg', - MEDIBOT_VOICED_APPLE_A_DAY = 'sound/voice/medbot/apple.ogg', - MEDIBOT_VOICED_FEEL_BETTER = 'sound/voice/medbot/feelbetter.ogg', + MEDIBOT_VOICED_ALL_PATCHED_UP = 'sound/mobs/non-humanoids/medbot/patchedup.ogg', + MEDIBOT_VOICED_APPLE_A_DAY = 'sound/mobs/non-humanoids/medbot/apple.ogg', + MEDIBOT_VOICED_FEEL_BETTER = 'sound/mobs/non-humanoids/medbot/feelbetter.ogg', ) ///announcements when we are healing someone near death var/static/list/near_death_announcements = list( - MEDIBOT_VOICED_STAY_WITH_ME = 'sound/voice/medbot/no.ogg', - MEDIBOT_VOICED_LIVE = 'sound/voice/medbot/live.ogg', - MEDIBOT_VOICED_NEVER_LOST = 'sound/voice/medbot/lost.ogg', + MEDIBOT_VOICED_STAY_WITH_ME = 'sound/mobs/non-humanoids/medbot/no.ogg', + MEDIBOT_VOICED_LIVE = 'sound/mobs/non-humanoids/medbot/live.ogg', + MEDIBOT_VOICED_NEVER_LOST = 'sound/mobs/non-humanoids/medbot/lost.ogg', ) ///announcements when we are idle var/static/list/idle_lines = list( - MEDIBOT_VOICED_DELICIOUS = 'sound/voice/medbot/delicious.ogg', - MEDIBOT_VOICED_PLASTIC_SURGEON = 'sound/voice/medbot/surgeon.ogg', - MEDIBOT_VOICED_MASK_ON = 'sound/voice/medbot/radar.ogg', - MEDIBOT_VOICED_ALWAYS_A_CATCH = 'sound/voice/medbot/catch.ogg', - MEDIBOT_VOICED_LIKE_FLIES = 'sound/voice/medbot/flies.ogg', - MEDIBOT_VOICED_SUFFER = 'sound/voice/medbot/why.ogg', + MEDIBOT_VOICED_DELICIOUS = 'sound/mobs/non-humanoids/medbot/delicious.ogg', + MEDIBOT_VOICED_PLASTIC_SURGEON = 'sound/mobs/non-humanoids/medbot/surgeon.ogg', + MEDIBOT_VOICED_MASK_ON = 'sound/mobs/non-humanoids/medbot/radar.ogg', + MEDIBOT_VOICED_ALWAYS_A_CATCH = 'sound/mobs/non-humanoids/medbot/catch.ogg', + MEDIBOT_VOICED_LIKE_FLIES = 'sound/mobs/non-humanoids/medbot/flies.ogg', + MEDIBOT_VOICED_SUFFER = 'sound/mobs/non-humanoids/medbot/why.ogg', ) ///announcements when we are emagged var/static/list/emagged_announcements = list( - MEDIBOT_VOICED_FUCK_YOU = 'sound/voice/medbot/fuck_you.ogg', - MEDIBOT_VOICED_NOT_A_GAME = 'sound/voice/medbot/turn_off.ogg', - MEDIBOT_VOICED_IM_DIFFERENT = 'sound/voice/medbot/im_different.ogg', - MEDIBOT_VOICED_FOURTH_WALL = 'sound/voice/medbot/close.ogg', - MEDIBOT_VOICED_SHINDEMASHOU = 'sound/voice/medbot/shindemashou.ogg', + MEDIBOT_VOICED_FUCK_YOU = 'sound/mobs/non-humanoids/medbot/fuck_you.ogg', + MEDIBOT_VOICED_NOT_A_GAME = 'sound/mobs/non-humanoids/medbot/turn_off.ogg', + MEDIBOT_VOICED_IM_DIFFERENT = 'sound/mobs/non-humanoids/medbot/im_different.ogg', + MEDIBOT_VOICED_FOURTH_WALL = 'sound/mobs/non-humanoids/medbot/close.ogg', + MEDIBOT_VOICED_SHINDEMASHOU = 'sound/mobs/non-humanoids/medbot/shindemashou.ogg', ) ///announcements when we are being tipped var/static/list/tipped_announcements = list( - MEDIBOT_VOICED_WAIT = 'sound/voice/medbot/hey_wait.ogg', - MEDIBOT_VOICED_DONT = 'sound/voice/medbot/please_dont.ogg', - MEDIBOT_VOICED_TRUSTED_YOU = 'sound/voice/medbot/i_trusted_you.ogg', - MEDIBOT_VOICED_NO_SAD = 'sound/voice/medbot/nooo.ogg', - MEDIBOT_VOICED_OH_FUCK = 'sound/voice/medbot/oh_fuck.ogg', + MEDIBOT_VOICED_WAIT = 'sound/mobs/non-humanoids/medbot/hey_wait.ogg', + MEDIBOT_VOICED_DONT = 'sound/mobs/non-humanoids/medbot/please_dont.ogg', + MEDIBOT_VOICED_TRUSTED_YOU = 'sound/mobs/non-humanoids/medbot/i_trusted_you.ogg', + MEDIBOT_VOICED_NO_SAD = 'sound/mobs/non-humanoids/medbot/nooo.ogg', + MEDIBOT_VOICED_OH_FUCK = 'sound/mobs/non-humanoids/medbot/oh_fuck.ogg', ) ///announcements when we are being untipped var/static/list/untipped_announcements = list( - MEDIBOT_VOICED_FORGIVE = 'sound/voice/medbot/forgive.ogg', - MEDIBOT_VOICED_THANKS = 'sound/voice/medbot/thank_you.ogg', - MEDIBOT_VOICED_GOOD_PERSON = 'sound/voice/medbot/youre_good.ogg', + MEDIBOT_VOICED_FORGIVE = 'sound/mobs/non-humanoids/medbot/forgive.ogg', + MEDIBOT_VOICED_THANKS = 'sound/mobs/non-humanoids/medbot/thank_you.ogg', + MEDIBOT_VOICED_GOOD_PERSON = 'sound/mobs/non-humanoids/medbot/youre_good.ogg', ) ///announcements when we are worried var/static/list/worried_announcements = list( - MEDIBOT_VOICED_PUT_BACK = 'sound/voice/medbot/please_put_me_back.ogg', - MEDIBOT_VOICED_IM_SCARED = 'sound/voice/medbot/please_im_scared.ogg', - MEDIBOT_VOICED_NEED_HELP = 'sound/voice/medbot/dont_like.ogg', - MEDIBOT_VOICED_THIS_HURTS = 'sound/voice/medbot/pain_is_real.ogg', - MEDIBOT_VOICED_THE_END = 'sound/voice/medbot/is_this_the_end.ogg', - MEDIBOT_VOICED_NOOO = 'sound/voice/medbot/nooo.ogg', + MEDIBOT_VOICED_PUT_BACK = 'sound/mobs/non-humanoids/medbot/please_put_me_back.ogg', + MEDIBOT_VOICED_IM_SCARED = 'sound/mobs/non-humanoids/medbot/please_im_scared.ogg', + MEDIBOT_VOICED_NEED_HELP = 'sound/mobs/non-humanoids/medbot/dont_like.ogg', + MEDIBOT_VOICED_THIS_HURTS = 'sound/mobs/non-humanoids/medbot/pain_is_real.ogg', + MEDIBOT_VOICED_THE_END = 'sound/mobs/non-humanoids/medbot/is_this_the_end.ogg', + MEDIBOT_VOICED_NOOO = 'sound/mobs/non-humanoids/medbot/nooo.ogg', ) var/static/list/misc_announcements= list( - MEDIBOT_VOICED_CHICKEN = 'sound/voice/medbot/i_am_chicken.ogg', + MEDIBOT_VOICED_CHICKEN = 'sound/mobs/non-humanoids/medbot/i_am_chicken.ogg', ) /// drop determining variable var/health_analyzer = /obj/item/healthanalyzer diff --git a/code/modules/mob/living/basic/clown/clown.dm b/code/modules/mob/living/basic/clown/clown.dm index 9e8f6950525a7..3fd2328458293 100644 --- a/code/modules/mob/living/basic/clown/clown.dm +++ b/code/modules/mob/living/basic/clown/clown.dm @@ -247,7 +247,7 @@ armour_penetration = 20 attack_verb_continuous = "steals the girlfriend of" attack_verb_simple = "steal the girlfriend of" - attack_sound = 'sound/items/airhorn2.ogg' + attack_sound = 'sound/items/airhorn/airhorn2.ogg' loot = list( /obj/effect/gibspawner/human, /obj/effect/spawner/foam_starter/small, @@ -584,7 +584,7 @@ var/peels_to_spawn = min(peel_amount, reachable_turfs.len) for(var/i in 1 to peels_to_spawn) new banana_type(pick_n_take(reachable_turfs)) - playsound(owner, 'sound/creatures/clown/clownana_rustle.ogg', 60) + playsound(owner, 'sound/mobs/non-humanoids/clown/clownana_rustle.ogg', 60) animate(owner, time = 1, pixel_x = 6, easing = CUBIC_EASING | EASE_OUT) animate(time = 2, pixel_x = -8, easing = CUBIC_EASING) animate(time = 1, pixel_x = 0, easing = CUBIC_EASING | EASE_IN) @@ -615,7 +615,7 @@ if(!do_after(owner, 1 SECONDS)) activating = FALSE return - playsound(owner, 'sound/creatures/clown/hehe.ogg', 100) + playsound(owner, 'sound/mobs/non-humanoids/clown/hehe.ogg', 100) if(!do_after(owner, 1 SECONDS)) activating = FALSE return @@ -626,5 +626,5 @@ . = ..() new /obj/item/food/grown/banana/bunch(get_step(owner.loc, owner.dir)) playsound(owner, 'sound/items/bikehorn.ogg', 60) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), owner, 'sound/creatures/clown/hohoho.ogg', 100, 1), 1 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), owner, 'sound/mobs/non-humanoids/clown/hohoho.ogg', 100, 1), 1 SECONDS) StartCooldown() diff --git a/code/modules/mob/living/basic/cult/constructs/artificer.dm b/code/modules/mob/living/basic/cult/constructs/artificer.dm index 8856c0e66a2ad..1d66f193ebc29 100644 --- a/code/modules/mob/living/basic/cult/constructs/artificer.dm +++ b/code/modules/mob/living/basic/cult/constructs/artificer.dm @@ -13,7 +13,7 @@ melee_damage_upper = 5 attack_verb_continuous = "rams" attack_verb_simple = "ram" - attack_sound = 'sound/weapons/punch2.ogg' + attack_sound = 'sound/items/weapons/punch2.ogg' construct_spells = list( /datum/action/cooldown/spell/aoe/magic_missile/lesser, /datum/action/cooldown/spell/conjure/construct/lesser, diff --git a/code/modules/mob/living/basic/cult/constructs/harvester.dm b/code/modules/mob/living/basic/cult/constructs/harvester.dm index b48a26b681937..95a5956825421 100644 --- a/code/modules/mob/living/basic/cult/constructs/harvester.dm +++ b/code/modules/mob/living/basic/cult/constructs/harvester.dm @@ -11,7 +11,7 @@ melee_damage_upper = 20 attack_verb_continuous = "butchers" attack_verb_simple = "butcher" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH construct_spells = list( /datum/action/cooldown/spell/aoe/area_conversion, diff --git a/code/modules/mob/living/basic/cult/constructs/juggernaut.dm b/code/modules/mob/living/basic/cult/constructs/juggernaut.dm index ef972d2b91693..5d5ae8c645499 100644 --- a/code/modules/mob/living/basic/cult/constructs/juggernaut.dm +++ b/code/modules/mob/living/basic/cult/constructs/juggernaut.dm @@ -14,7 +14,7 @@ attack_verb_continuous = "smashes their armored gauntlet into" attack_verb_simple = "smash your armored gauntlet into" speed = 2.5 - attack_sound = 'sound/weapons/punch3.ogg' + attack_sound = 'sound/items/weapons/punch3.ogg' status_flags = NONE mob_size = MOB_SIZE_LARGE construct_spells = list( diff --git a/code/modules/mob/living/basic/cult/constructs/proteon.dm b/code/modules/mob/living/basic/cult/constructs/proteon.dm index 2ff58d2463c0b..c39af7831fe8b 100644 --- a/code/modules/mob/living/basic/cult/constructs/proteon.dm +++ b/code/modules/mob/living/basic/cult/constructs/proteon.dm @@ -12,7 +12,7 @@ attack_verb_continuous = "pinches" attack_verb_simple = "pinch" smashes_walls = TRUE - attack_sound = 'sound/weapons/punch2.ogg' + attack_sound = 'sound/items/weapons/punch2.ogg' playstyle_string = span_bold("You are a Proteon. Your abilities in combat are outmatched by most combat constructs, but you are still fast and nimble. Run metal and supplies, and cooperate with your fellow cultists.") /// Hostile NPC version diff --git a/code/modules/mob/living/basic/cult/constructs/wraith.dm b/code/modules/mob/living/basic/cult/constructs/wraith.dm index 06a09b6446ed3..4a41bc1cc2aa7 100644 --- a/code/modules/mob/living/basic/cult/constructs/wraith.dm +++ b/code/modules/mob/living/basic/cult/constructs/wraith.dm @@ -10,7 +10,7 @@ melee_damage_upper = 20 attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH construct_spells = list( /datum/action/cooldown/spell/jaunt/ethereal_jaunt/shift, diff --git a/code/modules/mob/living/basic/drone/extra_drone_types.dm b/code/modules/mob/living/basic/drone/extra_drone_types.dm index 08c9278b75331..402aca848de8c 100644 --- a/code/modules/mob/living/basic/drone/extra_drone_types.dm +++ b/code/modules/mob/living/basic/drone/extra_drone_types.dm @@ -126,7 +126,7 @@ " - Going to the main station in search of materials.\n"+\ " - Interacting with non-drone players outside KS13, dead or alive.\n"+\ "These rules are at admin discretion and will be heavily enforced.\n"+\ - "If you do not have the regular drone laws, follow your laws to the best of your ability." + span_warning("If you do not have the regular drone laws, follow your laws to the best of your ability.") shy = FALSE /mob/living/basic/drone/derelict/Initialize(mapload) diff --git a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm index 66191c92516f2..fadac576ea599 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm @@ -20,7 +20,7 @@ response_harm_simple = "kick" attack_verb_continuous = "kicks" attack_verb_simple = "kick" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_KICK health = 50 maxHealth = 50 diff --git a/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm b/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm index dc3e09e38f211..47f11a02839e4 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/cow_moonicorn.dm @@ -15,7 +15,7 @@ attack_verb_continuous = "telekinetically rams its moonihorn into" attack_verb_simple = "telekinetically ram your moonihorn into" gold_core_spawnable = NO_SPAWN - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH ai_controller = /datum/ai_controller/basic_controller/cow/moonicorn food_types = list(/obj/item/food/grown/galaxythistle) diff --git a/code/modules/mob/living/basic/farm_animals/deer/deer.dm b/code/modules/mob/living/basic/farm_animals/deer/deer.dm index eb443def65996..dc27c82dd82f5 100644 --- a/code/modules/mob/living/basic/farm_animals/deer/deer.dm +++ b/code/modules/mob/living/basic/farm_animals/deer/deer.dm @@ -16,7 +16,7 @@ response_harm_simple = "kick" attack_verb_continuous = "bucks" attack_verb_simple = "buck" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' health = 75 maxHealth = 75 blood_volume = BLOOD_VOLUME_NORMAL diff --git a/code/modules/mob/living/basic/farm_animals/goat/_goat.dm b/code/modules/mob/living/basic/farm_animals/goat/_goat.dm index f2354cc5f149a..7b177c5c17d24 100644 --- a/code/modules/mob/living/basic/farm_animals/goat/_goat.dm +++ b/code/modules/mob/living/basic/farm_animals/goat/_goat.dm @@ -15,7 +15,7 @@ response_harm_simple = "kick" attack_verb_continuous = "kicks" attack_verb_simple = "kick" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_KICK butcher_results = list(/obj/item/food/meat/slab/grassfed = 4) diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm index fcb61892e5714..b536cb3aebfe6 100644 --- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm @@ -31,7 +31,7 @@ obj_damage = 40 attack_verb_continuous = "pummels" attack_verb_simple = "pummel" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' unique_name = TRUE ai_controller = /datum/ai_controller/basic_controller/gorilla faction = list(FACTION_MONKEY, FACTION_JUNGLE) diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_emotes.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_emotes.dm index 94133336c4d49..063e6bfb6599a 100644 --- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_emotes.dm +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla_emotes.dm @@ -8,4 +8,4 @@ message = "oogas." message_param = "oogas at %t." emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE - sound = 'sound/creatures/gorilla.ogg' + sound = 'sound/mobs/non-humanoids/gorilla/gorilla.ogg' diff --git a/code/modules/mob/living/basic/farm_animals/pig.dm b/code/modules/mob/living/basic/farm_animals/pig.dm index 6f732f1684479..d0fbb5a82473a 100644 --- a/code/modules/mob/living/basic/farm_animals/pig.dm +++ b/code/modules/mob/living/basic/farm_animals/pig.dm @@ -18,7 +18,7 @@ response_harm_simple = "kick" attack_verb_continuous = "kicks" attack_verb_simple = "kick" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_KICK melee_damage_lower = 1 melee_damage_upper = 2 diff --git a/code/modules/mob/living/basic/farm_animals/pony.dm b/code/modules/mob/living/basic/farm_animals/pony.dm index 9f008d85fcc7a..29672e032c84b 100644 --- a/code/modules/mob/living/basic/farm_animals/pony.dm +++ b/code/modules/mob/living/basic/farm_animals/pony.dm @@ -15,7 +15,7 @@ response_harm_simple = "kick" attack_verb_continuous = "kicks" attack_verb_simple = "kick" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_KICK melee_damage_lower = 5 melee_damage_upper = 10 @@ -46,7 +46,7 @@ /mob/living/basic/pony/tamed(mob/living/tamer, atom/food) can_buckle = TRUE buckle_lying = 0 - playsound(src, 'sound/creatures/pony/snort.ogg', 50) + playsound(src, 'sound/mobs/non-humanoids/pony/snort.ogg', 50) AddElement(/datum/element/ridable, /datum/component/riding/creature/pony) visible_message(span_notice("[src] snorts happily.")) new /obj/effect/temp_visual/heart(loc) @@ -85,9 +85,9 @@ manual_emote("whinnies ANGRILY!") playsound(src, pick(list( - 'sound/creatures/pony/whinny01.ogg', - 'sound/creatures/pony/whinny02.ogg', - 'sound/creatures/pony/whinny03.ogg' + 'sound/mobs/non-humanoids/pony/whinny01.ogg', + 'sound/mobs/non-humanoids/pony/whinny02.ogg', + 'sound/mobs/non-humanoids/pony/whinny03.ogg' )), 50) /mob/living/basic/pony/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir, armour_penetration) diff --git a/code/modules/mob/living/basic/farm_animals/rabbit.dm b/code/modules/mob/living/basic/farm_animals/rabbit.dm index f77772ab17c7b..dec48ea8be4af 100644 --- a/code/modules/mob/living/basic/farm_animals/rabbit.dm +++ b/code/modules/mob/living/basic/farm_animals/rabbit.dm @@ -26,7 +26,7 @@ response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" response_disarm_simple = "gently push aside" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_KICK response_harm_continuous = "kicks" response_harm_simple = "kick" diff --git a/code/modules/mob/living/basic/farm_animals/sheep.dm b/code/modules/mob/living/basic/farm_animals/sheep.dm index 5617da83a53a5..6fd4c485db79e 100644 --- a/code/modules/mob/living/basic/farm_animals/sheep.dm +++ b/code/modules/mob/living/basic/farm_animals/sheep.dm @@ -18,7 +18,7 @@ response_harm_simple = "kick" attack_verb_continuous = "kicks" attack_verb_simple = "kick" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_KICK health = 50 maxHealth = 50 @@ -40,7 +40,7 @@ item_generation_wait = 3 MINUTES, \ item_reduction_time = 30 SECONDS, \ item_harvest_time = 5 SECONDS, \ - item_harvest_sound = 'sound/surgery/scalpel1.ogg', \ + item_harvest_sound = 'sound/items/handling/surgery/scalpel1.ogg', \ ) AddElement(/datum/element/ai_retaliate) RegisterSignal(src, COMSIG_LIVING_CULT_SACRIFICED, PROC_REF(on_sacrificed)) diff --git a/code/modules/mob/living/basic/festivus_pole.dm b/code/modules/mob/living/basic/festivus_pole.dm index 1c1a88dd31fe5..7ff4ab6c53262 100644 --- a/code/modules/mob/living/basic/festivus_pole.dm +++ b/code/modules/mob/living/basic/festivus_pole.dm @@ -30,7 +30,7 @@ melee_damage_upper = 12 attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE faction = list(FACTION_HOSTILE) diff --git a/code/modules/mob/living/basic/guardian/guardian.dm b/code/modules/mob/living/basic/guardian/guardian.dm index b338a5a4435c3..9ddf2c1fc319f 100644 --- a/code/modules/mob/living/basic/guardian/guardian.dm +++ b/code/modules/mob/living/basic/guardian/guardian.dm @@ -31,7 +31,7 @@ response_disarm_simple = "flail at" response_harm_continuous = "punches" response_harm_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_verb_continuous = "punches" attack_verb_simple = "punch" combat_mode = TRUE diff --git a/code/modules/mob/living/basic/guardian/guardian_fluff.dm b/code/modules/mob/living/basic/guardian/guardian_fluff.dm index 4ede238921ed3..2b8a8ff8cec31 100644 --- a/code/modules/mob/living/basic/guardian/guardian_fluff.dm +++ b/code/modules/mob/living/basic/guardian/guardian_fluff.dm @@ -22,7 +22,7 @@ /// Verb shown to attacker when attacking var/attack_verb_simple = "punch" /// Sound played when we attack - var/attack_sound = 'sound/weapons/punch1.ogg' + var/attack_sound = 'sound/items/weapons/punch1.ogg' /// Visible effect when we attack var/attack_vis_effect = ATTACK_EFFECT_PUNCH /// An associative list of type of guardian to some kind of descriptive text to show on appearance. diff --git a/code/modules/mob/living/basic/guardian/guardian_types/assassin.dm b/code/modules/mob/living/basic/guardian/guardian_types/assassin.dm index 2e94aaf039498..19f98a70f409b 100644 --- a/code/modules/mob/living/basic/guardian/guardian_types/assassin.dm +++ b/code/modules/mob/living/basic/guardian/guardian_types/assassin.dm @@ -9,7 +9,7 @@ melee_damage_upper = 15 attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH sharpness = SHARP_POINTY damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, STAMINA = 0, OXY = 1) diff --git a/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm b/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm index b2ac9d66e8c23..3f8f492f1d0f0 100644 --- a/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm +++ b/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm @@ -6,7 +6,7 @@ attack_verb_continuous = "shocks" attack_verb_simple = "shock" melee_damage_type = BURN - attack_sound = 'sound/machines/defib_zap.ogg' + attack_sound = 'sound/machines/defib/defib_zap.ogg' damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, STAMINA = 0, OXY = 0.7) range = 7 playstyle_string = span_holoparasite("As a lightning type, you will apply lightning chains to targets on attack and have a lightning chain to your summoner. Lightning chains will shock anyone near them.") diff --git a/code/modules/mob/living/basic/guardian/guardian_types/support.dm b/code/modules/mob/living/basic/guardian/guardian_types/support.dm index 8ab24b7e9b7d1..46b69652cf5d9 100644 --- a/code/modules/mob/living/basic/guardian/guardian_types/support.dm +++ b/code/modules/mob/living/basic/guardian/guardian_types/support.dm @@ -134,7 +134,7 @@ /// Start teleporting /datum/action/cooldown/mob_cooldown/guardian_bluespace_beacon/proc/perform_teleport(mob/living/source, atom/target) source.do_attack_animation(target) - playsound(target, 'sound/weapons/punch1.ogg', 50, TRUE, TRUE, frequency = -1) + playsound(target, 'sound/items/weapons/punch1.ogg', 50, TRUE, TRUE, frequency = -1) source.balloon_alert(source, "teleporting...") target.visible_message( span_danger("[target] starts to glow faintly!"), \ diff --git a/code/modules/mob/living/basic/heretic/_heretic_summon.dm b/code/modules/mob/living/basic/heretic/_heretic_summon.dm index b6336182a2224..b482ee2d211a2 100644 --- a/code/modules/mob/living/basic/heretic/_heretic_summon.dm +++ b/code/modules/mob/living/basic/heretic/_heretic_summon.dm @@ -13,7 +13,7 @@ speed = 0 melee_attack_cooldown = CLICK_CD_MELEE - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' response_help_continuous = "thinks better of touching" response_help_simple = "think better of touching" response_disarm_continuous = "flails at" diff --git a/code/modules/mob/living/basic/heretic/fire_shark.dm b/code/modules/mob/living/basic/heretic/fire_shark.dm index c4106050bc26e..e65fefc235e59 100644 --- a/code/modules/mob/living/basic/heretic/fire_shark.dm +++ b/code/modules/mob/living/basic/heretic/fire_shark.dm @@ -11,7 +11,7 @@ maxHealth = 16 melee_damage_lower = 8 melee_damage_upper = 8 - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE obj_damage = 0 attack_verb_continuous = "bites" diff --git a/code/modules/mob/living/basic/heretic/flesh_worm.dm b/code/modules/mob/living/basic/heretic/flesh_worm.dm index 92b910c717fae..cddd34ba44184 100644 --- a/code/modules/mob/living/basic/heretic/flesh_worm.dm +++ b/code/modules/mob/living/basic/heretic/flesh_worm.dm @@ -98,7 +98,7 @@ if(!istype(target, /obj/item/bodypart/arm)) return ..() visible_message(span_warning("[src] devours [target]!")) - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) qdel(target) on_arm_eaten() diff --git a/code/modules/mob/living/basic/heretic/star_gazer.dm b/code/modules/mob/living/basic/heretic/star_gazer.dm index e503cd65aea16..57a0ddfe322d8 100644 --- a/code/modules/mob/living/basic/heretic/star_gazer.dm +++ b/code/modules/mob/living/basic/heretic/star_gazer.dm @@ -21,11 +21,11 @@ attack_verb_continuous = "ravages" attack_verb_simple = "ravage" attack_vis_effect = ATTACK_EFFECT_SLASH - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' melee_attack_cooldown = 0.6 SECONDS speak_emote = list("growls") damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 0, STAMINA = 0, OXY = 0) - death_sound = 'sound/magic/cosmic_expansion.ogg' + death_sound = 'sound/effects/magic/cosmic_expansion.ogg' slowed_by_drag = FALSE move_force = MOVE_FORCE_OVERPOWERING diff --git a/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.dm b/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.dm index a83953ae1c94d..0b27ac6958e0e 100644 --- a/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.dm +++ b/code/modules/mob/living/basic/icemoon/ice_demon/ice_demon.dm @@ -16,7 +16,7 @@ melee_damage_upper = 15 attack_verb_continuous = "slices" attack_verb_simple = "slice" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH move_force = MOVE_FORCE_VERY_STRONG move_resist = MOVE_FORCE_VERY_STRONG @@ -24,7 +24,7 @@ crusher_loot = /obj/item/crusher_trophy/ice_demon_cube ai_controller = /datum/ai_controller/basic_controller/ice_demon death_message = "fades as the energies that tied it to this world dissipate." - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' /mob/living/basic/mining/ice_demon/Initialize(mapload) . = ..() @@ -38,7 +38,7 @@ AddComponent(\ /datum/component/ranged_attacks,\ projectile_type = /obj/projectile/temp/ice_demon,\ - projectile_sound = 'sound/weapons/pierce.ogg',\ + projectile_sound = 'sound/items/weapons/pierce.ogg',\ ) var/static/list/death_loot = list(/obj/item/stack/ore/bluespace_crystal = 3) AddElement(/datum/element/death_drops, death_loot) @@ -66,7 +66,7 @@ melee_damage_upper = 5 attack_verb_continuous = "slices" attack_verb_simple = "slice" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' alpha = 80 ai_controller = /datum/ai_controller/basic_controller/ice_demon/afterimage ///how long do we exist for diff --git a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm index 768375cfce8a6..43f8c61d0c880 100644 --- a/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm +++ b/code/modules/mob/living/basic/icemoon/ice_whelp/ice_whelp.dm @@ -26,9 +26,9 @@ attack_verb_continuous = "chomps" attack_verb_simple = "chomp" death_message = "collapses on its side." - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' move_force = MOVE_FORCE_VERY_STRONG move_resist = MOVE_FORCE_VERY_STRONG pull_force = MOVE_FORCE_VERY_STRONG diff --git a/code/modules/mob/living/basic/icemoon/wolf/wolf.dm b/code/modules/mob/living/basic/icemoon/wolf/wolf.dm index b7a947f00e309..3708d754ab4b0 100644 --- a/code/modules/mob/living/basic/icemoon/wolf/wolf.dm +++ b/code/modules/mob/living/basic/icemoon/wolf/wolf.dm @@ -30,7 +30,7 @@ attack_verb_simple = "bite" death_message = "snarls its last and perishes." - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' move_force = MOVE_FORCE_WEAK move_resist = MOVE_FORCE_WEAK pull_force = MOVE_FORCE_WEAK diff --git a/code/modules/mob/living/basic/jungle/leaper/leaper.dm b/code/modules/mob/living/basic/jungle/leaper/leaper.dm index f3213897f9bdb..94babd0218e5b 100644 --- a/code/modules/mob/living/basic/jungle/leaper/leaper.dm +++ b/code/modules/mob/living/basic/jungle/leaper/leaper.dm @@ -23,7 +23,7 @@ minimum_survivable_temperature = 0 maximum_survivable_temperature = INFINITY - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH status_flags = NONE lighting_cutoff_red = 5 diff --git a/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm b/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm index efc09410db488..d753c42c51ec8 100644 --- a/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm +++ b/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm @@ -137,7 +137,7 @@ if(!length(possible_turfs)) return FALSE - playsound(owner, 'sound/magic/fireball.ogg', 70, TRUE) + playsound(owner, 'sound/effects/magic/fireball.ogg', 70, TRUE) new /obj/effect/temp_visual/blood_drop_rising(get_turf(owner)) addtimer(CALLBACK(src, PROC_REF(fire_droplets), possible_turfs), 1.5 SECONDS) StartCooldown() diff --git a/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid.dm b/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid.dm index 62b36a1bbaf94..059375a7ed6a6 100644 --- a/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid.dm +++ b/code/modules/mob/living/basic/jungle/mega_arachnid/mega_arachnid.dm @@ -29,7 +29,7 @@ mob_size = MOB_SIZE_LARGE speak_emote = list("chitters") - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH ai_controller = /datum/ai_controller/basic_controller/mega_arachnid alpha = 40 diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling.dm b/code/modules/mob/living/basic/jungle/seedling/seedling.dm index 7a853b8a9d086..00db708bc3299 100644 --- a/code/modules/mob/living/basic/jungle/seedling/seedling.dm +++ b/code/modules/mob/living/basic/jungle/seedling/seedling.dm @@ -31,7 +31,7 @@ lighting_cutoff_blue = 25 mob_size = MOB_SIZE_LARGE faction = list(FACTION_PLANTS) - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH ai_controller = /datum/ai_controller/basic_controller/seedling ///the state of combat we are in @@ -338,7 +338,7 @@ living_target.ignite_mob() living_target.adjustFireLoss(30) - playsound(target_turf, 'sound/magic/lightningbolt.ogg', 50, TRUE) + playsound(target_turf, 'sound/effects/magic/lightningbolt.ogg', 50, TRUE) if(!is_seedling) return var/mob/living/basic/seedling/seed_firer = firer diff --git a/code/modules/mob/living/basic/jungle/seedling/seedling_projectiles.dm b/code/modules/mob/living/basic/jungle/seedling/seedling_projectiles.dm index 37a3ec1c0aca9..303776384d1f6 100644 --- a/code/modules/mob/living/basic/jungle/seedling/seedling_projectiles.dm +++ b/code/modules/mob/living/basic/jungle/seedling/seedling_projectiles.dm @@ -7,8 +7,8 @@ armor_flag = ENERGY light_color = LIGHT_COLOR_DIM_YELLOW speed = 1.6 - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hitsound = 'sound/items/weapons/sear.ogg' + hitsound_wall = 'sound/items/weapons/effects/searwall.ogg' nondirectional_sprite = TRUE /obj/projectile/seedling/on_hit(atom/target, blocked = 0, pierce_hit) diff --git a/code/modules/mob/living/basic/jungle/venus_human_trap.dm b/code/modules/mob/living/basic/jungle/venus_human_trap.dm index ec375283fcea0..0a4a557eef15b 100644 --- a/code/modules/mob/living/basic/jungle/venus_human_trap.dm +++ b/code/modules/mob/living/basic/jungle/venus_human_trap.dm @@ -143,9 +143,9 @@ combat_mode = TRUE basic_mob_flags = DEL_ON_DEATH death_message = "collapses into bits of plant matter." - attacked_sound = 'sound/creatures/venus_trap_hurt.ogg' - death_sound = 'sound/creatures/venus_trap_death.ogg' - attack_sound = 'sound/creatures/venus_trap_hit.ogg' + attacked_sound = 'sound/mobs/non-humanoids/venus_trap/venus_trap_hurt.ogg' + death_sound = 'sound/mobs/non-humanoids/venus_trap/venus_trap_death.ogg' + attack_sound = 'sound/mobs/non-humanoids/venus_trap/venus_trap_hit.ogg' unsuitable_heat_damage = 5 // heat damage is different from cold damage since coldmos is significantly more common than plasmafires unsuitable_cold_damage = 2 // they now do take cold damage, but this should be sufficiently small that it does not cause major issues habitable_atmos = null diff --git a/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm b/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm index 6c1f5ba0846cd..5f13d53160a83 100644 --- a/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm +++ b/code/modules/mob/living/basic/lavaland/basilisk/basilisk.dm @@ -16,7 +16,7 @@ attack_verb_continuous = "bites into" attack_verb_simple = "bite into" throw_blocked_message = "bounces off the shell of" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_BITE ai_controller = /datum/ai_controller/basic_controller/basilisk butcher_results = list( @@ -30,7 +30,7 @@ /mob/living/basic/mining/basilisk/Initialize(mapload) . = ..() AddComponent(/datum/component/basic_mob_attack_telegraph) - ranged_attacks = AddComponent(/datum/component/ranged_attacks, projectile_type = /obj/projectile/temp/watcher, projectile_sound = 'sound/weapons/pierce.ogg') + ranged_attacks = AddComponent(/datum/component/ranged_attacks, projectile_type = /obj/projectile/temp/watcher, projectile_sound = 'sound/items/weapons/pierce.ogg') RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(check_lava)) /mob/living/basic/mining/basilisk/Destroy() diff --git a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_actions.dm b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_actions.dm index ca07c1a043ed5..8e43e43e72c31 100644 --- a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_actions.dm +++ b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_actions.dm @@ -53,7 +53,7 @@ name = "Spew Bile" desc = "Spews bile everywhere. Must resurface after use to refresh." projectile_type = /obj/projectile/bileworm_acid - projectile_sound = 'sound/creatures/bileworm/bileworm_spit.ogg' + projectile_sound = 'sound/mobs/non-humanoids/bileworm/bileworm_spit.ogg' shared_cooldown = MOB_SHARED_COOLDOWN_1 | MOB_SHARED_COOLDOWN_2 /datum/action/cooldown/mob_cooldown/projectile_attack/dir_shots/bileworm/Activate(atom/target_atom) @@ -70,7 +70,7 @@ /obj/projectile/bileworm_acid name = "acidic bile" icon_state = "neurotoxin" - hitsound = 'sound/weapons/sear.ogg' + hitsound = 'sound/items/weapons/sear.ogg' damage = 20 speed = 2 range = 20 diff --git a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm index 7c04ed65a61c7..a5740a51ebd9a 100644 --- a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm +++ b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm @@ -51,7 +51,7 @@ owner_has_control = FALSE cooldown_time = 10 SECONDS projectile_type = /obj/projectile/bileworm_acid - projectile_sound = 'sound/creatures/bileworm/bileworm_spit.ogg' + projectile_sound = 'sound/mobs/non-humanoids/bileworm/bileworm_spit.ogg' /datum/action/cooldown/mob_cooldown/projectile_attack/dir_shots/spewlet/New(Target) firing_directions = GLOB.cardinals.Copy() diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm index 61f31f7044dbc..5900289cae569 100644 --- a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm @@ -52,7 +52,7 @@ /// Create a laser in the direction we are facing /datum/action/cooldown/mob_cooldown/brimbeam/proc/fire_laser() owner.visible_message(span_danger("[owner] fires a brimbeam!")) - playsound(owner, 'sound/creatures/brimdemon.ogg', 150, FALSE, 0, 3) + playsound(owner, 'sound/mobs/non-humanoids/brimdemon/brimdemon.ogg', 150, FALSE, 0, 3) var/turf/target_turf = get_ranged_target_turf(owner, owner.dir, beam_range) var/turf/origin_turf = get_turf(owner) var/list/affected_turfs = get_line(origin_turf, target_turf) - origin_turf diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm index 9a88c636cf511..81dc34002eedb 100644 --- a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm @@ -14,13 +14,13 @@ speak_emote = list("cackles") melee_damage_lower = 7.5 melee_damage_upper = 7.5 - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' melee_attack_cooldown = 0.6 SECONDS attack_vis_effect = ATTACK_EFFECT_BITE attack_verb_continuous = "bites" attack_verb_simple = "bite" death_message = "wails as infernal energy escapes from its wounds, leaving it an empty husk." - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' light_color = LIGHT_COLOR_BLOOD_MAGIC light_power = 5 light_range = 1.4 diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm index 0556affe76184..78960b5340d30 100644 --- a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm @@ -12,7 +12,7 @@ /obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user) target.balloon_alert_to_viewers("[pick(comic_phrases)]!") - playsound(target, 'sound/lavaland/brimdemon_crush.ogg', 100) + playsound(target, 'sound/mobs/non-humanoids/brimdemon/brimdemon_crush.ogg', 100) /// Reagent pool left by dying brimdemon /obj/effect/decal/cleanable/brimdust diff --git a/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm b/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm index 59f7ffb249d07..26c0d79540a73 100644 --- a/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm +++ b/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm @@ -19,7 +19,7 @@ melee_damage_upper = 0 attack_verb_continuous = "barrels into" attack_verb_simple = "barrel into" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' combat_mode = FALSE speak_emote = list("screeches") death_message = "stops moving as green liquid oozes from the carcass!" diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath.dm b/code/modules/mob/living/basic/lavaland/goliath/goliath.dm index 4a28fba66309e..7d6b1dc6e404a 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/goliath.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath.dm @@ -19,7 +19,7 @@ obj_damage = 100 melee_damage_lower = 25 melee_damage_upper = 25 - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_verb_continuous = "pulverizes" attack_verb_simple = "pulverize" throw_blocked_message = "does nothing to the tough hide of" @@ -136,7 +136,7 @@ if (!COOLDOWN_FINISHED(src, ability_animation_cooldown)) return COOLDOWN_START(src, ability_animation_cooldown, 2 SECONDS) - playsound(src, 'sound/magic/demon_attack1.ogg', vol = 50, vary = TRUE) + playsound(src, 'sound/effects/magic/demon_attack1.ogg', vol = 50, vary = TRUE) Shake(1, 0, 1.5 SECONDS) /// Called slightly before tentacles ability comes off cooldown, as a warning diff --git a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm index f0de6c3272e55..931b568e5ee3f 100644 --- a/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm +++ b/code/modules/mob/living/basic/lavaland/hivelord/hivelord.dm @@ -17,7 +17,7 @@ attack_verb_continuous = "weakly tackles" attack_verb_simple = "weakly tackles" speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/pierce.ogg' + attack_sound = 'sound/items/weapons/pierce.ogg' throw_blocked_message = "passes between the bodies of the" obj_damage = 0 pass_flags = PASSTABLE @@ -94,7 +94,7 @@ attack_verb_continuous = "bites" attack_verb_simple = "bite" speak_emote = list("telepathically cries") - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE obj_damage = 0 density = FALSE diff --git a/code/modules/mob/living/basic/lavaland/legion/legion.dm b/code/modules/mob/living/basic/lavaland/legion/legion.dm index 12bf6555d97d4..76d3f51947e63 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion.dm @@ -21,7 +21,7 @@ attack_verb_continuous = "lashes out at" attack_verb_simple = "lash out at" speak_emote = list("gurgles") - attack_sound = 'sound/weapons/pierce.ogg' + attack_sound = 'sound/items/weapons/pierce.ogg' throw_blocked_message = "bounces harmlessly off of" crusher_loot = /obj/item/crusher_trophy/legion_skull death_message = "wails in chorus and dissolves into quivering flesh." diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm index e578067a44576..df493825ec4e9 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm @@ -26,7 +26,7 @@ attack_verb_simple = "bite" attack_vis_effect = ATTACK_EFFECT_BITE speak_emote = list("echoes") // who the fuck speaking as this mob it dies 10 seconds after it spawns - attack_sound = 'sound/weapons/pierce.ogg' + attack_sound = 'sound/items/weapons/pierce.ogg' density = FALSE ai_controller = /datum/ai_controller/basic_controller/legion_brood /// Reference to a guy who made us diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm b/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm index 5345adc88da3c..9526dcaef52c6 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm @@ -12,7 +12,7 @@ attack_verb_continuous = "mauls" attack_verb_simple = "maul" attack_vis_effect = ATTACK_EFFECT_BITE - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' speak_emote = list("chimpers") corpse_type = /obj/effect/mob_spawn/corpse/human/monkey ai_controller = /datum/ai_controller/basic_controller/legion_monkey diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm index 3f678da6910bc..d4503230e482f 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm @@ -7,7 +7,7 @@ icon_state = "legion_remains" zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_PARASITE_EGG - organ_flags = ORGAN_ORGANIC | ORGAN_EDIBLE | ORGAN_VIRGIN | ORGAN_PROMINENT + organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS decay_factor = STANDARD_ORGAN_DECAY * 3 // About 5 minutes outside of a host /// What stage of growth the corruption has reached. var/stage = 0 @@ -21,10 +21,10 @@ var/spawn_type = /mob/living/basic/mining/legion /// Spooky sounds to play as you start to turn var/static/list/spooky_sounds = list( - 'sound/voice/lowHiss1.ogg', - 'sound/voice/lowHiss2.ogg', - 'sound/voice/lowHiss3.ogg', - 'sound/voice/lowHiss4.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss1.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss2.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss3.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss4.ogg', ) /obj/item/organ/internal/legion_tumour/Initialize(mapload) @@ -117,7 +117,7 @@ to_chat(owner, span_danger("Something flexes under your skin.")) if(SPT_PROB(2, seconds_per_tick)) if (prob(40)) - SEND_SOUND(owner, sound('sound/voice/ghost_whisper.ogg')) + SEND_SOUND(owner, sound('sound/music/antag/bloodcult/ghost_whisper.ogg')) else SEND_SOUND(owner, sound(pick(spooky_sounds))) if(SPT_PROB(3, seconds_per_tick)) diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm index 8c879d3ab48c8..b4de3d2321fe6 100644 --- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm @@ -16,7 +16,7 @@ melee_damage_upper = 19 attack_verb_continuous = "snips" attack_verb_simple = "snip" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE // Closer than a scratch to a crustacean pinching effect melee_attack_cooldown = 1 SECONDS butcher_results = list( diff --git a/code/modules/mob/living/basic/lavaland/mook/mook.dm b/code/modules/mob/living/basic/lavaland/mook/mook.dm index 6ecf54bc26482..888023897397e 100644 --- a/code/modules/mob/living/basic/lavaland/mook/mook.dm +++ b/code/modules/mob/living/basic/lavaland/mook/mook.dm @@ -15,9 +15,9 @@ move_resist = MOVE_FORCE_VERY_STRONG melee_damage_lower = 8 melee_damage_upper = 8 - attack_sound = 'sound/weapons/rapierhit.ogg' + attack_sound = 'sound/items/weapons/rapierhit.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH - death_sound = 'sound/voice/mook_death.ogg' + death_sound = 'sound/mobs/non-humanoids/mook/mook_death.ogg' ai_controller = /datum/ai_controller/basic_controller/mook/support speed = 5 pixel_x = -16 @@ -243,8 +243,8 @@ melee_damage_lower = 10 melee_damage_upper = 10 gender = MALE - attack_sound = 'sound/weapons/stringsmash.ogg' - death_sound = 'sound/voice/mook_death.ogg' + attack_sound = 'sound/items/weapons/stringsmash.ogg' + death_sound = 'sound/mobs/non-humanoids/mook/mook_death.ogg' ai_controller = /datum/ai_controller/basic_controller/mook/bard ///our guitar var/obj/item/instrument/guitar/held_guitar diff --git a/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm b/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm index f80f1f3dae29e..90d7cb0d5b42d 100644 --- a/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm +++ b/code/modules/mob/living/basic/lavaland/mook/mook_abilities.dm @@ -53,8 +53,8 @@ /datum/action/cooldown/mob_cooldown/mook_ability/mook_leap/proc/launch_towards_target(atom/target) new /obj/effect/temp_visual/mook_dust(get_turf(owner)) - playsound(get_turf(owner), 'sound/weapons/thudswoosh.ogg', 25, TRUE) - playsound(owner, 'sound/voice/mook_leap_yell.ogg', 100, TRUE) + playsound(get_turf(owner), 'sound/items/weapons/thudswoosh.ogg', 25, TRUE) + playsound(owner, 'sound/mobs/non-humanoids/mook/mook_leap_yell.ogg', 100, TRUE) var/turf/target_turf = get_turf(target) if(!target_turf.is_blocked_turf()) @@ -117,7 +117,7 @@ var/mob/living/basic/mining/mook/mook_owner = owner mook_owner.change_combatant_state(state = MOOK_ATTACK_ACTIVE) new /obj/effect/temp_visual/mook_dust(get_turf(owner)) - playsound(get_turf(owner), 'sound/weapons/thudswoosh.ogg', 50, TRUE) + playsound(get_turf(owner), 'sound/items/weapons/thudswoosh.ogg', 50, TRUE) animate(owner, pixel_y = owner.base_pixel_y + 146, time = 0.5 SECONDS) addtimer(CALLBACK(src, PROC_REF(land_on_turf), target), 0.5 SECONDS) diff --git a/code/modules/mob/living/basic/lavaland/node_drone/node_drone.dm b/code/modules/mob/living/basic/lavaland/node_drone/node_drone.dm index 87687c5699963..00ca34757c8d6 100644 --- a/code/modules/mob/living/basic/lavaland/node_drone/node_drone.dm +++ b/code/modules/mob/living/basic/lavaland/node_drone/node_drone.dm @@ -126,7 +126,7 @@ animate(src, pixel_z = 400, time = 2 SECONDS, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) sleep(2 SECONDS) if(funny_ending) - playsound(src, 'sound/effects/explosion3.ogg', 50, FALSE) //node drone died on the way back to his home planet. + playsound(src, 'sound/effects/explosion/explosion3.ogg', 50, FALSE) //node drone died on the way back to his home planet. visible_message(span_notice("...or maybe not.")) qdel(src) diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index b4531d6c113a2..17e3cdc370753 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -36,7 +36,7 @@ GLOBAL_LIST_EMPTY(raptor_population) maximum_survivable_temperature = INFINITY attack_verb_continuous = "pecks" attack_verb_simple = "chomps" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' faction = list(FACTION_RAPTOR, FACTION_NEUTRAL) speak_emote = list("screeches") ai_controller = /datum/ai_controller/basic_controller/raptor @@ -85,11 +85,11 @@ GLOBAL_LIST_EMPTY(raptor_population) BB_EMOTE_SAY = list("Chirp chirp chirp!", "Kweh!", "Bwark!"), BB_EMOTE_SEE = list("shakes its feathers!", "stretches!", "flaps its wings!", "pecks at the ground!"), BB_EMOTE_SOUND = list( - 'sound/creatures/raptor_1.ogg', - 'sound/creatures/raptor_2.ogg', - 'sound/creatures/raptor_3.ogg', - 'sound/creatures/raptor_4.ogg', - 'sound/creatures/raptor_5.ogg', + 'sound/mobs/non-humanoids/raptor/raptor_1.ogg', + 'sound/mobs/non-humanoids/raptor/raptor_2.ogg', + 'sound/mobs/non-humanoids/raptor/raptor_3.ogg', + 'sound/mobs/non-humanoids/raptor/raptor_4.ogg', + 'sound/mobs/non-humanoids/raptor/raptor_5.ogg', ), BB_SPEAK_CHANCE = 2, ) diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm index a23bcf7801b2e..8178df7b78c24 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm @@ -8,8 +8,8 @@ "wags their tail against", "playfully leans against" ), - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/raptor, - BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/raptor, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_BABIES_PARTNER_TYPES = list(/mob/living/basic/raptor), BB_BABIES_CHILD_TYPES = list(/mob/living/basic/raptor/baby_raptor), BB_MAX_CHILDREN = 5, @@ -23,7 +23,7 @@ /datum/ai_planning_subtree/find_and_hunt_target/heal_raptors, /datum/ai_planning_subtree/random_speech/blackboard, /datum/ai_planning_subtree/pet_planning, - /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/target_retaliate/check_faction, /datum/ai_planning_subtree/simple_find_target, /datum/ai_planning_subtree/basic_melee_attack_subtree, /datum/ai_planning_subtree/find_and_hunt_target/raptor_trough, @@ -41,19 +41,13 @@ RegisterSignal(new_pawn, COMSIG_MOB_ATE, PROC_REF(post_eat)) /datum/ai_controller/basic_controller/raptor/proc/post_eat() + SIGNAL_HANDLER clear_blackboard_key(BB_RAPTOR_TROUGH_TARGET) set_blackboard_key(BB_RAPTOR_EAT_COOLDOWN, world.time + NEXT_EAT_COOLDOWN) -/datum/targeting_strategy/basic/raptor - -//dont attack anyone that shares our factions. -/datum/targeting_strategy/basic/raptor/faction_check(datum/ai_controller/controller, mob/living/living_mob, mob/living/the_target) - . = ..() - return . - /datum/ai_controller/basic_controller/baby_raptor blackboard = list( - BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/raptor, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, BB_FIND_MOM_TYPES = list(/mob/living/basic/raptor), BB_IGNORE_MOM_TYPES = list(/mob/living/basic/raptor/baby_raptor), ) diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm index ef7e6fa3167c6..f6e555adfe31b 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm @@ -56,7 +56,7 @@ return NONE raptor = WEAKREF(attacked_atom) - playsound(src, 'sound/items/orbie_send_out.ogg', 20) + playsound(src, 'sound/mobs/non-humanoids/orbie/orbie_send_out.ogg', 20) balloon_alert(user, "scanned") ui_interact(user) return ITEM_INTERACT_SUCCESS diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher.dm b/code/modules/mob/living/basic/lavaland/watcher/watcher.dm index c3c30526dff74..c7648aa38b259 100644 --- a/code/modules/mob/living/basic/lavaland/watcher/watcher.dm +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher.dm @@ -29,7 +29,7 @@ /// Icon state for our eye overlay var/eye_glow = "ice_glow" /// Sound to play when we shoot - var/shoot_sound = 'sound/weapons/pierce.ogg' + var/shoot_sound = 'sound/items/weapons/pierce.ogg' /// Typepath of our gaze ability var/gaze_attack = /datum/action/cooldown/mob_cooldown/watcher_gaze // We attract and eat these things for some reason diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.dm b/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.dm index a61ea0743f9a4..f88624ce125be 100644 --- a/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.dm +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher_overwatch.dm @@ -17,7 +17,7 @@ /// Type of projectile to fire var/projectile_type = /obj/projectile/temp/watcher /// Sound the projectile we fire makes - var/projectile_sound = 'sound/weapons/pierce.ogg' + var/projectile_sound = 'sound/items/weapons/pierce.ogg' /// Time to watch for var/overwatch_duration = 3 SECONDS diff --git a/code/modules/mob/living/basic/minebots/minebot.dm b/code/modules/mob/living/basic/minebots/minebot.dm index 54fe9a07367cf..bcf8071d7c289 100644 --- a/code/modules/mob/living/basic/minebots/minebot.dm +++ b/code/modules/mob/living/basic/minebots/minebot.dm @@ -18,7 +18,7 @@ obj_damage = 10 attack_verb_continuous = "drills" attack_verb_simple = "drill" - attack_sound = 'sound/weapons/circsawhit.ogg' + attack_sound = 'sound/items/weapons/circsawhit.ogg' sentience_type = SENTIENCE_MINEBOT speak_emote = list("states") mob_biotypes = MOB_ROBOTIC diff --git a/code/modules/mob/living/basic/minebots/minebot_abilities.dm b/code/modules/mob/living/basic/minebots/minebot_abilities.dm index 8d1a93bd42916..a421c5d81f48c 100644 --- a/code/modules/mob/living/basic/minebots/minebot_abilities.dm +++ b/code/modules/mob/living/basic/minebots/minebot_abilities.dm @@ -119,7 +119,7 @@ return FALSE var/obj/effect/mine/minebot/my_mine = new(my_turf) my_mine.ignore_list = owner.faction.Copy() - playsound(my_turf, 'sound/weapons/armbomb.ogg', 20) + playsound(my_turf, 'sound/items/weapons/armbomb.ogg', 20) StartCooldown() return TRUE @@ -132,7 +132,7 @@ /obj/effect/temp_visual/rising_rocket/Initialize(mapload) . = ..() - playsound(src, 'sound/weapons/minebot_rocket.ogg', 100, FALSE) + playsound(src, 'sound/items/weapons/minebot_rocket.ogg', 100, FALSE) animate(src, pixel_y = base_pixel_y + 500, time = duration, easing = EASE_IN) /obj/effect/temp_visual/falling_rocket @@ -154,7 +154,7 @@ animate(src, pixel_y = 0, time = duration) /obj/effect/temp_visual/falling_rocket/proc/create_explosion() - playsound(src, 'sound/weapons/minebot_rocket.ogg', 100, FALSE) + playsound(src, 'sound/items/weapons/minebot_rocket.ogg', 100, FALSE) var/datum/effect_system/fluid_spread/smoke/smoke = new smoke.set_up(1, holder = src) smoke.start() @@ -176,7 +176,7 @@ var/datum/effect_system/fluid_spread/smoke/smoke = new smoke.set_up(0, holder = src) smoke.start() - playsound(src, 'sound/effects/explosion3.ogg', 100) + playsound(src, 'sound/effects/explosion/explosion3.ogg', 100) victim.apply_damage(damage_to_apply) /obj/effect/mine/minebot/can_trigger(atom/movable/on_who) diff --git a/code/modules/mob/living/basic/minebots/minebot_remote_control.dm b/code/modules/mob/living/basic/minebots/minebot_remote_control.dm index adb6d79e541ae..742785769e90d 100644 --- a/code/modules/mob/living/basic/minebots/minebot_remote_control.dm +++ b/code/modules/mob/living/basic/minebots/minebot_remote_control.dm @@ -56,7 +56,7 @@ if(isnull(target_turf) || isclosedturf(target_turf) || isgroundlessturf(target_turf)) user.balloon_alert(user, "invalid target!") return ITEM_INTERACT_BLOCKING - playsound(src, 'sound/machines/beep.ogg', 30) + playsound(src, 'sound/machines/beep/beep.ogg', 30) clear_priming() new /obj/effect/temp_visual/minebot_target(target_turf) COOLDOWN_START(src, bomb_timer, BOMB_COOLDOWN) diff --git a/code/modules/mob/living/basic/pets/cat/cat.dm b/code/modules/mob/living/basic/pets/cat/cat.dm index 2bcd715d7f5c8..596308fdee169 100644 --- a/code/modules/mob/living/basic/pets/cat/cat.dm +++ b/code/modules/mob/living/basic/pets/cat/cat.dm @@ -29,7 +29,7 @@ held_state = "cat2" attack_verb_continuous = "claws" attack_verb_simple = "claw" - attack_sound = 'sound/weapons/slash.ogg' + attack_sound = 'sound/items/weapons/slash.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW ///icon of the collar we can wear var/collar_icon_state = "cat" diff --git a/code/modules/mob/living/basic/pets/dog/_dog.dm b/code/modules/mob/living/basic/pets/dog/_dog.dm index b1c2c5e486fc1..1ff991941d327 100644 --- a/code/modules/mob/living/basic/pets/dog/_dog.dm +++ b/code/modules/mob/living/basic/pets/dog/_dog.dm @@ -31,7 +31,7 @@ // The dog attack pet command can raise melee attack above 0 attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE melee_attack_cooldown = 0.8 SECONDS /// Instructions you can give to dogs diff --git a/code/modules/mob/living/basic/pets/dog/corgi.dm b/code/modules/mob/living/basic/pets/dog/corgi.dm index e1f05b33d81fb..ac213fbf30960 100644 --- a/code/modules/mob/living/basic/pets/dog/corgi.dm +++ b/code/modules/mob/living/basic/pets/dog/corgi.dm @@ -116,7 +116,7 @@ user.visible_message(span_notice("[user] starts to shave [src] using \the [attacking_item]."), span_notice("You start to shave [src] using \the [attacking_item]...")) if(do_after(user, 5 SECONDS, target = src)) user.visible_message(span_notice("[user] shaves [src]'s hair using \the [attacking_item].")) - playsound(get_turf(src), 'sound/items/welder2.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/items/tools/welder2.ogg', 20, TRUE) shaved = TRUE icon_living = "[icon_living]_shaved" icon_dead = "[icon_living]_shaved_dead" @@ -399,7 +399,7 @@ place_on_head(new /obj/item/clothing/glasses/eyepatch/medical) /mob/living/basic/pet/dog/corgi/ian/narsie_act() - playsound(src, 'sound/magic/demon_dies.ogg', 75, TRUE) + playsound(src, 'sound/effects/magic/demon_dies.ogg', 75, TRUE) var/mob/living/basic/pet/dog/corgi/narsie/narsIan = new(loc) narsIan.setDir(dir) investigate_log("has been gibbed and replaced with Nars-Ian by Nar'Sie.", INVESTIGATE_DEATHS) @@ -486,7 +486,7 @@ return visible_message(span_warning("Dark magic resonating from [src] devours [prey]!"), \ "DELICIOUS SOULS") - playsound(src, 'sound/magic/demon_attack1.ogg', 75, TRUE) + playsound(src, 'sound/effects/magic/demon_attack1.ogg', 75, TRUE) new /obj/effect/temp_visual/cult/sac(get_turf(prey)) narsie_act() prey.investigate_log("has been sacrificed by [src].", INVESTIGATE_DEATHS) diff --git a/code/modules/mob/living/basic/pets/fox.dm b/code/modules/mob/living/basic/pets/fox.dm index e4e978568a0e6..45ea29024ad66 100644 --- a/code/modules/mob/living/basic/pets/fox.dm +++ b/code/modules/mob/living/basic/pets/fox.dm @@ -25,7 +25,7 @@ melee_damage_upper = 5 attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE ai_controller = /datum/ai_controller/basic_controller/fox diff --git a/code/modules/mob/living/basic/pets/orbie/orbie.dm b/code/modules/mob/living/basic/pets/orbie/orbie.dm index c0c6dd7b023fc..a0fbba899e354 100644 --- a/code/modules/mob/living/basic/pets/orbie/orbie.dm +++ b/code/modules/mob/living/basic/pets/orbie/orbie.dm @@ -51,6 +51,7 @@ AddComponent(/datum/component/obeys_commands, pet_commands) AddElement(/datum/element/basic_eating, food_types = food_types) ADD_TRAIT(src, TRAIT_SILICON_EMOTES_ALLOWED, INNATE_TRAIT) + RegisterSignal(src, COMSIG_ATOM_CAN_BE_PULLED, PROC_REF(on_pulled)) RegisterSignal(src, COMSIG_VIRTUAL_PET_LEVEL_UP, PROC_REF(on_level_up)) RegisterSignal(src, COMSIG_MOB_CLICKON, PROC_REF(on_click)) diff --git a/code/modules/mob/living/basic/pets/parrot/_parrot.dm b/code/modules/mob/living/basic/pets/parrot/_parrot.dm index c23481d85a7ec..e61b052217909 100644 --- a/code/modules/mob/living/basic/pets/parrot/_parrot.dm +++ b/code/modules/mob/living/basic/pets/parrot/_parrot.dm @@ -152,11 +152,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( . = ..() . += "Held Item: [held_item]" -/mob/living/basic/parrot/Process_Spacemove(movement_dir = 0, continuous_move = FALSE) - if(stat != DEAD) // parrots have evolved to let them fly in space because fucking uhhhhhhhhhh - return TRUE - return ..() - /mob/living/basic/parrot/radio(message, list/message_mods = list(), list/spans, language) //literally copied from human/radio(), but there's no other way to do this. at least it's better than it used to be. . = ..() if(. != NONE) diff --git a/code/modules/mob/living/basic/pets/pet_cult/pet_cult_abilities.dm b/code/modules/mob/living/basic/pets/pet_cult/pet_cult_abilities.dm index 83d70336f2c0c..79631c96dca4f 100644 --- a/code/modules/mob/living/basic/pets/pet_cult/pet_cult_abilities.dm +++ b/code/modules/mob/living/basic/pets/pet_cult/pet_cult_abilities.dm @@ -11,4 +11,4 @@ ) summon_radius = 0 create_summon_timer = 5 SECONDS - sound = 'sound/magic/exit_blood.ogg' + sound = 'sound/effects/magic/exit_blood.ogg' diff --git a/code/modules/mob/living/basic/pets/sloth.dm b/code/modules/mob/living/basic/pets/sloth.dm index 125a3a7b97d6a..9cd7711aa0672 100644 --- a/code/modules/mob/living/basic/pets/sloth.dm +++ b/code/modules/mob/living/basic/pets/sloth.dm @@ -22,7 +22,7 @@ GLOBAL_DATUM(cargo_sloth, /mob/living/basic/sloth) attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE mob_biotypes = MOB_ORGANIC|MOB_BEAST diff --git a/code/modules/mob/living/basic/revolutionary.dm b/code/modules/mob/living/basic/revolutionary.dm index 407f2c0997504..8aa41b3c7230d 100644 --- a/code/modules/mob/living/basic/revolutionary.dm +++ b/code/modules/mob/living/basic/revolutionary.dm @@ -13,7 +13,7 @@ melee_damage_lower = 15 melee_damage_upper = 20 obj_damage = 20 - attack_sound = 'sound/weapons/smash.ogg' + attack_sound = 'sound/items/weapons/smash.ogg' ai_controller = /datum/ai_controller/basic_controller/revolutionary /// list of weapons we can have var/static/list/possible_weapons = list( @@ -49,26 +49,26 @@ ) /// Monkey screeches var/static/list/monkey_screeches = list( - '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/mobs/non-humanoids/monkey/monkey_screech_1.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_2.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_3.ogg', + 'sound/mobs/non-humanoids/monkey/monkey_screech_4.ogg', ) /// Male screams var/static/list/male_screams = list( - 'sound/voice/human/malescream_1.ogg', - 'sound/voice/human/malescream_2.ogg', - 'sound/voice/human/malescream_3.ogg', - 'sound/voice/human/malescream_4.ogg', - 'sound/voice/human/malescream_5.ogg', + 'sound/mobs/humanoids/human/scream/malescream_1.ogg', + 'sound/mobs/humanoids/human/scream/malescream_2.ogg', + 'sound/mobs/humanoids/human/scream/malescream_3.ogg', + 'sound/mobs/humanoids/human/scream/malescream_4.ogg', + 'sound/mobs/humanoids/human/scream/malescream_5.ogg', ) /// Female screams var/static/list/female_screams = list( - 'sound/voice/human/femalescream_1.ogg', - 'sound/voice/human/femalescream_2.ogg', - 'sound/voice/human/femalescream_3.ogg', - 'sound/voice/human/femalescream_4.ogg', - 'sound/voice/human/femalescream_5.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_1.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_2.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_3.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_4.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_5.ogg', ) diff --git a/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.dm b/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.dm index 7b27da8d9778e..6287c1f25e19e 100644 --- a/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.dm +++ b/code/modules/mob/living/basic/ruin_defender/cybersun_aicore.dm @@ -77,7 +77,7 @@ ///dramatic death animations var/turf/my_turf = get_turf(src) new /obj/effect/gibspawner/robot(my_turf) - playsound(loc, 'sound/effects/explosion2.ogg', vol = 75, vary = TRUE, pressure_affected = FALSE) + playsound(loc, 'sound/effects/explosion/explosion2.ogg', vol = 75, vary = TRUE, pressure_affected = FALSE) for (var/mob/witness in range(10, src)) if (!witness.client || !isliving(witness)) continue @@ -119,7 +119,7 @@ . = ..() //this is where the spell will hit. it will not move even if the target does, allowing the spell to be dodged. new/obj/effect/temp_visual/lightning_strike(get_turf(target)) - playsound(owner, 'sound/effects/sparks1.ogg', vol = 120, vary = TRUE) + playsound(owner, 'sound/effects/sparks/sparks1.ogg', vol = 120, vary = TRUE) /obj/effect/temp_visual/lightning_strike name = "lightning strike" @@ -142,7 +142,7 @@ /obj/effect/temp_visual/lightning_strike/proc/zap() new/obj/effect/temp_visual/lightning_strike_zap(loc) - playsound(src, 'sound/magic/lightningbolt.ogg', vol = 70, vary = TRUE) + playsound(src, 'sound/effects/magic/lightningbolt.ogg', vol = 70, vary = TRUE) if (!isturf(loc)) return for(var/mob/living/victim in loc) @@ -188,7 +188,7 @@ if(lockon_zone == my_turf) return my_turf.Beam(lockon_zone, icon_state = "1-full", beam_color = COLOR_MEDIUM_DARK_RED, time = barrage_delay) - playsound(lockon_zone, 'sound/machines/terminal_prompt_deny.ogg', vol = 60, vary = TRUE) + playsound(lockon_zone, 'sound/machines/terminal/terminal_prompt_deny.ogg', vol = 60, vary = TRUE) StartCooldown(cooldown_time) return ..() diff --git a/code/modules/mob/living/basic/ruin_defender/flesh.dm b/code/modules/mob/living/basic/ruin_defender/flesh.dm index f95a949faa27f..c5ff2fb90e740 100644 --- a/code/modules/mob/living/basic/ruin_defender/flesh.dm +++ b/code/modules/mob/living/basic/ruin_defender/flesh.dm @@ -25,7 +25,7 @@ melee_damage_upper = 10 health = 20 maxHealth = 20 - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE attack_verb_continuous = "tries desperately to attach to" attack_verb_simple = "try to attach to" diff --git a/code/modules/mob/living/basic/ruin_defender/living_floor.dm b/code/modules/mob/living/basic/ruin_defender/living_floor.dm index ce4fbc53f51fa..7a9b6ae59f18a 100644 --- a/code/modules/mob/living/basic/ruin_defender/living_floor.dm +++ b/code/modules/mob/living/basic/ruin_defender/living_floor.dm @@ -40,7 +40,7 @@ faction = list(FACTION_HOSTILE) melee_damage_lower = 20 melee_damage_upper = 40 //pranked..... - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE attack_verb_continuous = "bites" attack_verb_simple = "bite" @@ -84,7 +84,7 @@ if(weapon.tool_behaviour != TOOL_CROWBAR) return ..() balloon_alert(user, "prying...") - playsound(src, 'sound/items/crowbar.ogg', 45, TRUE) + playsound(src, 'sound/items/tools/crowbar.ogg', 45, TRUE) if(!do_after(user, 5 SECONDS, src)) return new /obj/effect/gibspawner/generic(loc) diff --git a/code/modules/mob/living/basic/ruin_defender/skeleton.dm b/code/modules/mob/living/basic/ruin_defender/skeleton.dm index fbe3b74c43f27..e6754a80a22da 100644 --- a/code/modules/mob/living/basic/ruin_defender/skeleton.dm +++ b/code/modules/mob/living/basic/ruin_defender/skeleton.dm @@ -15,7 +15,7 @@ unsuitable_heat_damage = 0 attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/slash.ogg' + attack_sound = 'sound/items/weapons/slash.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW faction = list(FACTION_SKELETON) // Going for a sort of pale bluegreen here, shooting for boneish @@ -63,7 +63,7 @@ melee_damage_upper = 20 attack_verb_continuous = "jabs" attack_verb_simple = "jab" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH death_message = "collapses into a pile of bones, its gear falling to the floor!" loot = list( @@ -92,7 +92,7 @@ melee_damage_upper = 30 attack_verb_continuous = "slices" attack_verb_simple = "slice" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH death_message = "collapses into a pile of bones, its gear clanging as it hits the ground!" loot = list( @@ -146,7 +146,7 @@ melee_damage_upper = 25 attack_verb_continuous = "blasts" attack_verb_simple = "blast" - attack_sound = 'sound/weapons/sonic_jackhammer.ogg' + attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg' attack_vis_effect = null loot = list(/obj/effect/decal/remains/plasma, /obj/item/pickaxe/drill/jackhammer) held_item = /obj/item/pickaxe/drill/jackhammer diff --git a/code/modules/mob/living/basic/ruin_defender/stickman.dm b/code/modules/mob/living/basic/ruin_defender/stickman.dm index 588a75c634643..3435f873ea35f 100644 --- a/code/modules/mob/living/basic/ruin_defender/stickman.dm +++ b/code/modules/mob/living/basic/ruin_defender/stickman.dm @@ -14,7 +14,7 @@ melee_damage_lower = 10 melee_damage_upper = 10 melee_attack_cooldown = 1.5 SECONDS - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' combat_mode = TRUE faction = list(FACTION_STICKMAN) unsuitable_atmos_damage = 7.5 @@ -54,7 +54,7 @@ attack_vis_effect = ATTACK_EFFECT_BITE sharpness = SHARP_POINTY mob_biotypes = MOB_BEAST - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' /mob/living/basic/stickman/ranged name = "Angry Stick Gunman" @@ -65,7 +65,7 @@ attack_verb_simple = "whack" melee_damage_lower = 5 melee_damage_upper = 5 - attack_sound = 'sound/weapons/genhit1.ogg' + attack_sound = 'sound/items/weapons/genhit1.ogg' ai_controller = /datum/ai_controller/basic_controller/stickman/ranged diff --git a/code/modules/mob/living/basic/ruin_defender/wizard/wizard.dm b/code/modules/mob/living/basic/ruin_defender/wizard/wizard.dm index 7c35184af3717..48dca2eea60f0 100644 --- a/code/modules/mob/living/basic/ruin_defender/wizard/wizard.dm +++ b/code/modules/mob/living/basic/ruin_defender/wizard/wizard.dm @@ -14,7 +14,7 @@ melee_damage_upper = 5 attack_verb_continuous = "punches" attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' combat_mode = TRUE habitable_atmos = list("min_oxy" = 5, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 7.5 diff --git a/code/modules/mob/living/basic/slime/defense.dm b/code/modules/mob/living/basic/slime/defense.dm index a3242525170c7..19507b4cd029d 100644 --- a/code/modules/mob/living/basic/slime/defense.dm +++ b/code/modules/mob/living/basic/slime/defense.dm @@ -15,11 +15,11 @@ if(buckled == attacker ? prob(60) : prob(30)) //its easier to remove the slime from yourself attacker.visible_message(span_warning("[attacker] attempts to wrestle \the [defender_slime.name] off [buckled == attacker ? "" : buckled] !"), \ span_danger("[buckled == attacker ? "You attempt" : "[attacker] attempts" ] to wrestle \the [defender_slime.name] off [buckled == attacker ? "" : buckled]!")) - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) return attacker.visible_message(span_warning("[attacker] manages to wrestle \the [defender_slime.name] off!"), span_notice("You manage to wrestle \the [defender_slime.name] off!")) - playsound(loc, 'sound/weapons/shove.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/shove.ogg', 50, TRUE, -1) defender_slime.discipline_slime() @@ -87,7 +87,7 @@ has_found = TRUE if(applied_crossbreed_amount >= SLIME_EXTRACT_CROSSING_REQUIRED) to_chat(user, span_notice("You feed the slime as many of the extracts from the bag as you can, and it mutates!")) - playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE) + playsound(src, 'sound/effects/blob/attackblob.ogg', 50, TRUE) spawn_corecross() has_output = TRUE break @@ -99,7 +99,7 @@ to_chat(user, span_warning("There are no extracts in the bag that this slime will accept!")) else to_chat(user, span_notice("You feed the slime some extracts from the bag.")) - playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE) + playsound(src, 'sound/effects/blob/attackblob.ogg', 50, TRUE) ///Handles the adverse effects of water on slimes /mob/living/basic/slime/proc/apply_water() diff --git a/code/modules/mob/living/basic/slime/slime.dm b/code/modules/mob/living/basic/slime/slime.dm index 6adf4e35f3582..010913f44258b 100644 --- a/code/modules/mob/living/basic/slime/slime.dm +++ b/code/modules/mob/living/basic/slime/slime.dm @@ -14,7 +14,7 @@ icon_living = "grey-baby" icon_dead = "grey-baby-dead" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' //Base physiology @@ -353,7 +353,7 @@ /mob/living/basic/slime/proc/spawn_corecross() var/static/list/crossbreeds = subtypesof(/obj/item/slimecross) visible_message(span_danger("[src] shudders, its mutated core consuming the rest of its body!")) - playsound(src, 'sound/magic/smoke.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/smoke.ogg', 50, TRUE) var/selected_crossbreed_path for(var/crossbreed_path in crossbreeds) var/obj/item/slimecross/cross_item = crossbreed_path diff --git a/code/modules/mob/living/basic/space_fauna/ant.dm b/code/modules/mob/living/basic/space_fauna/ant.dm index 26a904340b7c5..7fbbe03e631cd 100644 --- a/code/modules/mob/living/basic/space_fauna/ant.dm +++ b/code/modules/mob/living/basic/space_fauna/ant.dm @@ -15,7 +15,7 @@ melee_damage_upper = 10 attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE butcher_results = list(/obj/effect/decal/cleanable/ants = 3) //It's just a bunch of ants glued together into a larger ant response_help_continuous = "pets" diff --git a/code/modules/mob/living/basic/space_fauna/bear/_bear.dm b/code/modules/mob/living/basic/space_fauna/bear/_bear.dm index d13df29806409..9b60f7f815998 100644 --- a/code/modules/mob/living/basic/space_fauna/bear/_bear.dm +++ b/code/modules/mob/living/basic/space_fauna/bear/_bear.dm @@ -26,7 +26,7 @@ sharpness = SHARP_EDGED attack_verb_continuous = "claws" attack_verb_simple = "claw" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW friendly_verb_continuous = "bear hugs" friendly_verb_simple = "bear hug" @@ -135,7 +135,7 @@ attacked_sound = 'sound/items/eatfood.ogg' death_message = "loses its false life and collapses!" butcher_results = list(/obj/item/food/butter = 6, /obj/item/food/meat/slab = 3, /obj/item/organ/internal/brain = 1, /obj/item/organ/internal/heart = 1) - attack_sound = 'sound/weapons/slap.ogg' + attack_sound = 'sound/items/weapons/slap.ogg' attack_vis_effect = ATTACK_EFFECT_DISARM attack_verb_simple = "slap" attack_verb_continuous = "slaps" diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp.dm b/code/modules/mob/living/basic/space_fauna/carp/carp.dm index 1d32b7809a89e..3461f5b104e98 100644 --- a/code/modules/mob/living/basic/space_fauna/carp/carp.dm +++ b/code/modules/mob/living/basic/space_fauna/carp/carp.dm @@ -27,7 +27,7 @@ obj_damage = 50 melee_damage_lower = 20 melee_damage_upper = 20 - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE attack_verb_continuous = "bites" attack_verb_simple = "bite" diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm index 322d4db193c21..24c5fb4ece2ec 100644 --- a/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm +++ b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm @@ -9,7 +9,7 @@ button_icon = 'icons/obj/weapons/guns/projectiles.dmi' button_icon_state = "arcane_barrage" cooldown_time = 5 SECONDS - projectile_sound = 'sound/weapons/emitter.ogg' + projectile_sound = 'sound/items/weapons/emitter.ogg' melee_cooldown_time = 0 SECONDS // Without this they become extremely hesitant to bite anyone ever shared_cooldown = MOB_SHARED_COOLDOWN_2 @@ -140,8 +140,8 @@ var/turf/destination = pick(exit_locs) do_teleport(entered_atom, destination, channel = TELEPORT_CHANNEL_MAGIC) - playsound(src, 'sound/magic/wand_teleport.ogg', 50) - playsound(destination, 'sound/magic/wand_teleport.ogg', 50) + playsound(src, 'sound/effects/magic/wand_teleport.ogg', 50) + playsound(destination, 'sound/effects/magic/wand_teleport.ogg', 50) /// Doesn't actually do anything, just a visual marker /obj/effect/temp_visual/lesser_carp_rift/exit diff --git a/code/modules/mob/living/basic/space_fauna/cat_surgeon.dm b/code/modules/mob/living/basic/space_fauna/cat_surgeon.dm index 02faf7c2cc9f2..246b025d559dc 100644 --- a/code/modules/mob/living/basic/space_fauna/cat_surgeon.dm +++ b/code/modules/mob/living/basic/space_fauna/cat_surgeon.dm @@ -19,7 +19,7 @@ melee_damage_upper = 15 attack_verb_continuous = "slashes at" attack_verb_simple = "slash at" - attack_sound = 'sound/weapons/circsawhit.ogg' + attack_sound = 'sound/items/weapons/circsawhit.ogg' combat_mode = TRUE mob_biotypes = MOB_ORGANIC|MOB_HUMANOID sentience_type = SENTIENCE_HUMANOID diff --git a/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.dm b/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.dm index 80e1768c90eba..844535c01e9ba 100644 --- a/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.dm +++ b/code/modules/mob/living/basic/space_fauna/changeling/flesh_spider.dm @@ -28,7 +28,7 @@ melee_attack_cooldown = CLICK_CD_MELEE attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE unsuitable_cold_damage = 4 unsuitable_heat_damage = 4 diff --git a/code/modules/mob/living/basic/space_fauna/changeling/headslug.dm b/code/modules/mob/living/basic/space_fauna/changeling/headslug.dm index 27a9f7d07ae1e..d7aa8903398a6 100644 --- a/code/modules/mob/living/basic/space_fauna/changeling/headslug.dm +++ b/code/modules/mob/living/basic/space_fauna/changeling/headslug.dm @@ -16,7 +16,7 @@ melee_damage_upper = 5 attack_verb_continuous = "chomps" attack_verb_simple = "chomp" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE mob_biotypes = MOB_ORGANIC|MOB_SPECIAL faction = list(FACTION_CREATURE) diff --git a/code/modules/mob/living/basic/space_fauna/demon/demon.dm b/code/modules/mob/living/basic/space_fauna/demon/demon.dm index eb424cdce49d4..f61591a10c7e7 100644 --- a/code/modules/mob/living/basic/space_fauna/demon/demon.dm +++ b/code/modules/mob/living/basic/space_fauna/demon/demon.dm @@ -23,7 +23,7 @@ status_flags = CANPUSH combat_mode = TRUE - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW faction = list(FACTION_HELL) @@ -34,7 +34,7 @@ melee_damage_upper = 15 melee_attack_cooldown = CLICK_CD_MELEE death_message = "screams in agony as it sublimates into a sulfurous smoke." - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' habitable_atmos = null minimum_survivable_temperature = T0C - 25 //Weak to cold @@ -70,5 +70,5 @@ mind.special_role = ROLE_SLAUGHTER_DEMON mind.add_antag_datum(antag_type) - SEND_SOUND(src, 'sound/magic/demon_dies.ogg') + SEND_SOUND(src, 'sound/effects/magic/demon_dies.ogg') to_chat(src, span_bold("You are currently not currently in the same plane of existence as the station. Use your Blood Crawl ability near a pool of blood to manifest and wreak havoc.")) diff --git a/code/modules/mob/living/basic/space_fauna/demon/demon_items.dm b/code/modules/mob/living/basic/space_fauna/demon/demon_items.dm index 1cc7549f0ea3b..811186d43ad9a 100644 --- a/code/modules/mob/living/basic/space_fauna/demon/demon_items.dm +++ b/code/modules/mob/living/basic/space_fauna/demon/demon_items.dm @@ -18,7 +18,7 @@ span_warning("[user] raises [src] to [user.p_their()] mouth and tears into it with [user.p_their()] teeth!"), span_danger("An unnatural hunger consumes you. You raise [src] your mouth and devour it!"), ) - playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(user, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) if(locate(/datum/action/cooldown/spell/jaunt/bloodcrawl) in user.actions) to_chat(user, span_warning("...and you don't feel any different.")) diff --git a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm index 6ad7ff77f1dd4..c036fe461690e 100644 --- a/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm +++ b/code/modules/mob/living/basic/space_fauna/eyeball/_eyeball.dm @@ -24,7 +24,7 @@ attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE faction = list(FACTION_SPOOKY) diff --git a/code/modules/mob/living/basic/space_fauna/faithless.dm b/code/modules/mob/living/basic/space_fauna/faithless.dm index 39f5652d1a0a4..1cf8218a0fced 100644 --- a/code/modules/mob/living/basic/space_fauna/faithless.dm +++ b/code/modules/mob/living/basic/space_fauna/faithless.dm @@ -17,7 +17,7 @@ melee_damage_upper = 15 attack_verb_continuous = "grips" attack_verb_simple = "grip" - attack_sound = 'sound/hallucinations/growl1.ogg' + attack_sound = 'sound/effects/hallucinations/growl1.ogg' melee_attack_cooldown = 1 SECONDS speak_emote = list("growls") diff --git a/code/modules/mob/living/basic/space_fauna/garden_gnome.dm b/code/modules/mob/living/basic/space_fauna/garden_gnome.dm index 6608867f2a391..08e4cc7d2c0ff 100644 --- a/code/modules/mob/living/basic/space_fauna/garden_gnome.dm +++ b/code/modules/mob/living/basic/space_fauna/garden_gnome.dm @@ -16,7 +16,7 @@ melee_damage_upper = 10 attack_verb_continuous = "punches" attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' melee_attack_cooldown = 1.2 SECONDS damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, STAMINA = 0, OXY = 1) speak_emote = list("announces") diff --git a/code/modules/mob/living/basic/space_fauna/ghost.dm b/code/modules/mob/living/basic/space_fauna/ghost.dm index 728c5ead9f4a8..00bcc45445e29 100644 --- a/code/modules/mob/living/basic/space_fauna/ghost.dm +++ b/code/modules/mob/living/basic/space_fauna/ghost.dm @@ -19,7 +19,7 @@ unsuitable_atmos_damage = 0 unsuitable_cold_damage = 0 unsuitable_heat_damage = 0 - attack_sound = 'sound/hallucinations/growl1.ogg' + attack_sound = 'sound/effects/hallucinations/growl1.ogg' death_message = "wails, disintegrating into a pile of ectoplasm!" gold_core_spawnable = NO_SPAWN //too spooky for science light_system = OVERLAY_LIGHT diff --git a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm index c9e155d2bdaed..6b72f1f09757e 100644 --- a/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm +++ b/code/modules/mob/living/basic/space_fauna/hivebot/_hivebot.dm @@ -16,7 +16,7 @@ attack_verb_continuous = "claws" attack_verb_simple = "claw" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW verb_say = "states" verb_ask = "queries" diff --git a/code/modules/mob/living/basic/space_fauna/killer_tomato.dm b/code/modules/mob/living/basic/space_fauna/killer_tomato.dm index c859289b56d7d..a784f57763247 100644 --- a/code/modules/mob/living/basic/space_fauna/killer_tomato.dm +++ b/code/modules/mob/living/basic/space_fauna/killer_tomato.dm @@ -26,7 +26,7 @@ melee_damage_upper = 12 attack_verb_continuous = "slams" attack_verb_simple = "slam" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' faction = list(FACTION_PLANTS) habitable_atmos = list("min_oxy" = 5, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.dm b/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.dm index a0f9d2fb51be7..b50b089b0ffa4 100644 --- a/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.dm +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/chasing_spikes.dm @@ -12,7 +12,7 @@ /datum/action/cooldown/mob_cooldown/chasing_spikes/Activate(atom/target) . = ..() - playsound(owner, 'sound/magic/demon_attack1.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE) + playsound(owner, 'sound/effects/magic/demon_attack1.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE) var/obj/effect/temp_visual/effect_trail/spike_chaser/chaser = new(get_turf(owner), target) LAZYADD(active_chasers, WEAKREF(chaser)) RegisterSignal(chaser, COMSIG_QDELETING, PROC_REF(on_chaser_destroyed)) @@ -75,6 +75,6 @@ var/target_zone = victim.resting ? BODY_ZONE_CHEST : pick_weight(standing_damage_zones) victim.apply_damage(impale_damage, damagetype = BRUTE, def_zone = target_zone, sharpness = SHARP_POINTY) if (hit_someone) - playsound(src, 'sound/weapons/slice.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) + playsound(src, 'sound/items/weapons/slice.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) else playsound(src, 'sound/misc/splort.ogg', vol = 25, vary = TRUE, pressure_affected = FALSE) diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.dm b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.dm index 7a46e84435555..ae66369dd9328 100644 --- a/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.dm +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/meteor_heart.dm @@ -102,7 +102,7 @@ /obj/effect/temp_visual/meteor_heart_death/Initialize(mapload) . = ..() - playsound(src, 'sound/magic/demon_dies.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE) + playsound(src, 'sound/effects/magic/demon_dies.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE) Shake(2, 0, 3 SECONDS) addtimer(CALLBACK(src, PROC_REF(gib)), duration - 1, TIMER_DELETE_ME) soundloop = new(src, start_immediately = FALSE) @@ -116,7 +116,7 @@ /// Make this place a mess /obj/effect/temp_visual/meteor_heart_death/proc/gib() - playsound(loc, 'sound/effects/attackblob.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE) + playsound(loc, 'sound/effects/blob/attackblob.ogg', vol = 100, vary = TRUE, pressure_affected = FALSE) var/turf/my_turf = get_turf(src) new /obj/effect/gibspawner/human(my_turf) for (var/obj/structure/eyeball as anything in GLOB.meteor_eyeballs) diff --git a/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.dm b/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.dm index 8ddcc1ed9e401..e41fa80a15b1c 100644 --- a/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.dm +++ b/code/modules/mob/living/basic/space_fauna/meteor_heart/spine_traps.dm @@ -17,7 +17,7 @@ /datum/action/cooldown/mob_cooldown/spine_traps/Activate(atom/target) . = ..() - playsound(owner, 'sound/magic/demon_consume.ogg', vol = 100, falloff_exponent = 2, vary = TRUE, pressure_affected = FALSE) + playsound(owner, 'sound/effects/magic/demon_consume.ogg', vol = 100, falloff_exponent = 2, vary = TRUE, pressure_affected = FALSE) var/list/valid_turfs = list() var/turf/our_turf = get_turf(owner) for (var/turf/zone_turf in orange(range, our_turf)) @@ -92,7 +92,7 @@ return COOLDOWN_START(src, thrust_delay, 0.7 SECONDS) - playsound(src, 'sound/weapons/pierce.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) + playsound(src, 'sound/items/weapons/pierce.ogg', vol = 50, vary = TRUE, pressure_affected = FALSE) var/mob/living/victim = arrived flick("spikes_stabbing", src) var/target_zone = victim.resting ? BODY_ZONE_CHEST : pick_weight(standing_damage_zones) diff --git a/code/modules/mob/living/basic/space_fauna/morph.dm b/code/modules/mob/living/basic/space_fauna/morph.dm index 8b4fe3802d73e..f1f568a261b01 100644 --- a/code/modules/mob/living/basic/space_fauna/morph.dm +++ b/code/modules/mob/living/basic/space_fauna/morph.dm @@ -30,7 +30,7 @@ attack_verb_continuous = "glomps" attack_verb_simple = "glomp" - attack_sound = 'sound/effects/blobattack.ogg' + attack_sound = 'sound/effects/blob/blobattack.ogg' attack_vis_effect = ATTACK_EFFECT_BITE //nom nom nom butcher_results = list(/obj/item/food/meat/slab = 2) diff --git a/code/modules/mob/living/basic/space_fauna/mushroom.dm b/code/modules/mob/living/basic/space_fauna/mushroom.dm index b45c2714d4ab4..ae26754259455 100644 --- a/code/modules/mob/living/basic/space_fauna/mushroom.dm +++ b/code/modules/mob/living/basic/space_fauna/mushroom.dm @@ -19,7 +19,7 @@ maxHealth = 60 attack_verb_continuous = "chomps" attack_verb_simple = "chomp" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE faction = list(FACTION_MUSHROOM) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm b/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm index d49932fb70465..474c2cf77d0e5 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/blankbody.dm @@ -12,7 +12,7 @@ speed = 1 attack_verb_continuous = "punches" attack_verb_simple = "punch" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH melee_attack_cooldown = 1 SECONDS faction = list(FACTION_NETHER) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm index 15dfcdc29c045..0fe732554b286 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm @@ -13,7 +13,7 @@ attack_verb_continuous = "slashes" attack_verb_simple = "slash" gold_core_spawnable = HOSTILE_SPAWN - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE melee_attack_cooldown = 1 SECONDS faction = list(FACTION_NETHER) diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm index 11e00be288b74..3f7adc2272252 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm @@ -14,12 +14,12 @@ attack_verb_simple = "lacerate" melee_attack_cooldown = 1 SECONDS gold_core_spawnable = HOSTILE_SPAWN - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH faction = list(FACTION_NETHER) speak_emote = list("screams", "clicks", "chitters", "barks", "moans", "growls", "meows", "reverberates", "roars", "squeaks", "rattles", "exclaims", "yells", "remarks", "mumbles", "jabbers", "stutters", "seethes") death_message = "wails as its form turns into a pulpy mush." - death_sound = 'sound/voice/hiss6.ogg' + death_sound = 'sound/mobs/non-humanoids/hiss/hiss6.ogg' unsuitable_atmos_damage = 0 unsuitable_cold_damage = 0 unsuitable_heat_damage = 0 @@ -35,7 +35,7 @@ /mob/living/basic/migo/Initialize(mapload) . = ..() - migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/voice/beepsky/creep.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/medbot/patchedup.ogg', 'sound/voice/medbot/feelbetter.ogg', 'sound/voice/human/manlaugh1.ogg', 'sound/voice/human/womanlaugh.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/clockcultalr.ogg', 'sound/ambience/antag/ling_alert.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/ambience/antag/monkey.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/footstep/clownstep2.ogg', 'sound/effects/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion_distant.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/runtime/hyperspace/hyperspace_begin.ogg', 'sound/runtime/hyperspace/hyperspace_end.ogg', 'sound/effects/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desecration-01.ogg', 'sound/misc/desecration-02.ogg', 'sound/misc/desecration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/misc/airraid.ogg', 'sound/misc/bang.ogg','sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/beam_sniper.ogg', 'sound/weapons/chainsawhit.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gun/pistol/shot_suppressed.ogg', 'sound/weapons/gun/pistol/shot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kinetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlockclose.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlockopen.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/triple_beep.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/default/outbreak5.ogg', 'sound/ai/default/outbreak7.ogg', 'sound/ai/default/poweroff.ogg', 'sound/ai/default/radiation.ogg', 'sound/ai/default/shuttlecalled.ogg', 'sound/ai/default/shuttledock.ogg', 'sound/ai/default/shuttlerecalled.ogg', 'sound/ai/default/aimalf.ogg') //hahahaha fuck you code divers + migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/tools/change_jaws.ogg', 'sound/items/tools/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/tools/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/tools/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/tools/wirecutter.ogg', 'sound/items/tools/welder.ogg', 'sound/items/zip/zip.ogg', 'sound/items/tools/rped.ogg', 'sound/items/tools/ratchet.ogg', 'sound/items/polaroid/polaroid1.ogg', 'sound/items/pshoom/pshoom.ogg', 'sound/items/airhorn/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/mobs/non-humanoids/beepsky/creep.ogg', 'sound/mobs/non-humanoids/beepsky/iamthelaw.ogg', 'sound/mobs/non-humanoids/ed209/ed209_20sec.ogg', 'sound/mobs/non-humanoids/hiss/hiss3.ogg', 'sound/mobs/non-humanoids/hiss/hiss6.ogg', 'sound/mobs/non-humanoids/medbot/patchedup.ogg', 'sound/mobs/non-humanoids/medbot/feelbetter.ogg', 'sound/mobs/humanoids/human/laugh/manlaugh1.ogg', 'sound/mobs/humanoids/human/laugh/womanlaugh.ogg', 'sound/items/weapons/sear.ogg', 'sound/music/antag/clockcultalr.ogg', 'sound/music/antag/ling_alert.ogg', 'sound/music/antag/traitor/tatoralert.ogg', 'sound/music/antag/monkey.ogg', 'sound/vehicles/mecha/nominal.ogg', 'sound/vehicles/mecha/weapdestr.ogg', 'sound/vehicles/mecha/critdestr.ogg', 'sound/vehicles/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/blob/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blob/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles/bubbles.ogg', 'sound/effects/bubbles/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/footstep/clownstep2.ogg', 'sound/effects/curse/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion/explosion_distant.ogg', 'sound/effects/explosion/explosionfar.ogg', 'sound/effects/explosion/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/runtime/hyperspace/hyperspace_begin.ogg', 'sound/runtime/hyperspace/hyperspace_end.ogg', 'sound/effects/his_grace/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/pickaxe/picaxe1.ogg', 'sound/effects/sparks/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/effects/desecration/desecration-01.ogg', 'sound/effects/desecration/desecration-02.ogg', 'sound/effects/desecration/desecration-03.ogg', 'sound/announcer/alarm/bloblarm.ogg', 'sound/announcer/alarm/airraid.ogg', 'sound/misc/bang.ogg','sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/announcer/notice/notice1.ogg', 'sound/announcer/notice/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/items/weapons/armbomb.ogg', 'sound/items/weapons/beam_sniper.ogg', 'sound/items/weapons/chainsawhit.ogg', 'sound/items/weapons/emitter.ogg', 'sound/items/weapons/emitter2.ogg', 'sound/items/weapons/blade1.ogg', 'sound/items/weapons/bladeslice.ogg', 'sound/items/weapons/blastcannon.ogg', 'sound/items/weapons/blaster.ogg', 'sound/items/weapons/bulletflyby3.ogg', 'sound/items/weapons/circsawhit.ogg', 'sound/items/weapons/cqchit2.ogg', 'sound/items/weapons/drill.ogg', 'sound/items/weapons/genhit1.ogg', 'sound/items/weapons/gun/pistol/shot_suppressed.ogg', 'sound/items/weapons/gun/pistol/shot.ogg', 'sound/items/weapons/handcuffs.ogg', 'sound/items/weapons/homerun.ogg', 'sound/items/weapons/kinetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock/airlock.ogg', 'sound/machines/airlock/airlock_alien_prying.ogg', 'sound/machines/airlock/airlockclose.ogg', 'sound/machines/airlock/airlockforced.ogg', 'sound/machines/airlock/airlockopen.ogg', 'sound/announcer/alarm/nuke_alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/airlock/boltsdown.ogg', 'sound/machines/airlock/boltsup.ogg', 'sound/machines/buzz/buzz-sigh.ogg', 'sound/machines/buzz/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib/defib_charge.ogg', 'sound/machines/defib/defib_failed.ogg', 'sound/machines/defib/defib_ready.ogg', 'sound/machines/defib/defib_zap.ogg', 'sound/machines/beep/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door/door_close.ogg', 'sound/machines/door/door_open.ogg', 'sound/machines/engine_alert/engine_alert1.ogg', 'sound/machines/engine_alert/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/mobs/non-humanoids/honkbot/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/misc/signal.ogg', 'sound/machines/synth/synth_no.ogg', 'sound/machines/synth/synth_yes.ogg', 'sound/machines/terminal/terminal_alert.ogg', 'sound/machines/beep/triple_beep.ogg', 'sound/machines/beep/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/announcer/default/outbreak5.ogg', 'sound/announcer/default/outbreak7.ogg', 'sound/announcer/default/poweroff.ogg', 'sound/announcer/default/radiation.ogg', 'sound/announcer/default/shuttlecalled.ogg', 'sound/announcer/default/shuttledock.ogg', 'sound/announcer/default/shuttlerecalled.ogg', 'sound/announcer/default/aimalf.ogg') //hahahaha fuck you code divers if(!istype(src, /mob/living/basic/migo/hatsune) && prob(0.1)) // chance on-load mi-gos will spawn with a miku wig on (shiny variant) new /mob/living/basic/migo/hatsune(get_turf(loc), mapload) @@ -90,7 +90,7 @@ faction = list(FACTION_NEUTRAL) /mob/living/basic/migo/hatsune/make_migo_sound() - playsound(src, 'sound/creatures/tourist/tourist_talk_japanese1.ogg', 50, TRUE) + playsound(src, 'sound/mobs/non-humanoids/tourist/tourist_talk_japanese1.ogg', 50, TRUE) /mob/living/basic/migo/hatsune/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm index 720e0c031c0a3..cf76f347be3f3 100644 --- a/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm +++ b/code/modules/mob/living/basic/space_fauna/paper_wizard/paper_wizard.dm @@ -18,7 +18,7 @@ melee_damage_lower = 10 melee_damage_upper = 20 obj_damage = 50 - attack_sound = 'sound/hallucinations/growl1.ogg' + attack_sound = 'sound/effects/hallucinations/growl1.ogg' ai_controller = /datum/ai_controller/basic_controller/paper_wizard ///spell to summon minions var/datum/action/cooldown/spell/conjure/wizard_summon_minions/summon @@ -161,8 +161,8 @@ /obj/effect/temp_visual/paperwiz_dying/Initialize(mapload) . = ..() visible_message(span_boldannounce("The wizard cries out in pain as a gate appears behind him, sucking him in!")) - playsound(get_turf(src), 'sound/magic/mandswap.ogg', 50, vary = TRUE, pressure_affected = TRUE) - playsound(get_turf(src), 'sound/hallucinations/wail.ogg', 50, vary = TRUE, pressure_affected = TRUE) + playsound(get_turf(src), 'sound/effects/magic/mandswap.ogg', 50, vary = TRUE, pressure_affected = TRUE) + playsound(get_turf(src), 'sound/effects/hallucinations/wail.ogg', 50, vary = TRUE, pressure_affected = TRUE) RegisterSignal(src, COMSIG_PREQDELETED, PROC_REF(on_delete)) /obj/effect/temp_visual/paperwiz_dying/proc/on_delete() @@ -171,7 +171,7 @@ for(var/mob/nearby in range(7, src)) shake_camera(nearby, duration = 7 SECONDS, strength = 1) var/turf/current_turf = get_turf(src) - playsound(current_turf,'sound/magic/summon_magic.ogg', 50, vary = TRUE, vary = TRUE) + playsound(current_turf,'sound/effects/magic/summon_magic.ogg', 50, vary = TRUE, vary = TRUE) new /obj/effect/temp_visual/paper_scatter(current_turf) new /obj/item/clothing/suit/wizrobe/paper(current_turf) new /obj/item/clothing/head/collectable/paper(current_turf) diff --git a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm index c0fb9b67e7f73..9f9598b11ae20 100644 --- a/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm +++ b/code/modules/mob/living/basic/space_fauna/regal_rat/regal_rat.dm @@ -27,7 +27,7 @@ melee_attack_cooldown = CLICK_CD_MELEE attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' // Slightly brown red, for the eyes lighting_cutoff_red = 22 diff --git a/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm b/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm index 9f565dab11253..fa21d157e9061 100644 --- a/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm +++ b/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm @@ -135,7 +135,7 @@ human_mob.electrocute_act(shock_damage, to_shock, flags = SHOCK_NOGLOVES) do_sparks(4, FALSE, human_mob) - playsound(human_mob, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(human_mob, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) //Defile: Corrupts nearby stuff, unblesses floor tiles. /datum/action/cooldown/spell/aoe/revenant/defile diff --git a/code/modules/mob/living/basic/space_fauna/snake/snake.dm b/code/modules/mob/living/basic/space_fauna/snake/snake.dm index d526189c5626b..78f7d86e0db3f 100644 --- a/code/modules/mob/living/basic/space_fauna/snake/snake.dm +++ b/code/modules/mob/living/basic/space_fauna/snake/snake.dm @@ -18,7 +18,7 @@ attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE response_help_continuous = "pets" diff --git a/code/modules/mob/living/basic/space_fauna/snake/snake_ai.dm b/code/modules/mob/living/basic/space_fauna/snake/snake_ai.dm index 3eb404761c522..189a7fb2eb097 100644 --- a/code/modules/mob/living/basic/space_fauna/snake/snake_ai.dm +++ b/code/modules/mob/living/basic/space_fauna/snake/snake_ai.dm @@ -1,6 +1,6 @@ /datum/ai_planning_subtree/random_speech/snake speech_chance = 5 speak = list("hsssss","sssSSsssss...","hiisssss") - sound = list('sound/creatures/snake_hissing1.ogg', 'sound/creatures/snake_hissing2.ogg') + sound = list('sound/mobs/non-humanoids/snake/snake_hissing1.ogg', 'sound/mobs/non-humanoids/snake/snake_hissing2.ogg') emote_hear = list("hisses.") emote_see = list("slithers around.", "glances.", "stares.") diff --git a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm index 1776e69358139..f672e60ee2940 100644 --- a/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm +++ b/code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm @@ -30,7 +30,7 @@ speed = 0 attack_verb_continuous = "chomps" attack_verb_simple = "chomp" - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' attack_vis_effect = ATTACK_EFFECT_BITE obj_damage = 50 melee_damage_upper = 35 @@ -43,7 +43,7 @@ maptext_height = 64 maptext_width = 64 mouse_opacity = MOUSE_OPACITY_ICON - death_sound = 'sound/creatures/space_dragon_roar.ogg' + death_sound = 'sound/mobs/non-humanoids/space_dragon/space_dragon_roar.ogg' death_message = "screeches in agony as it collapses to the floor, its life extinguished." butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) can_buckle_to = FALSE @@ -176,7 +176,7 @@ adjust_health(-food.maxHealth * 0.25) if (QDELETED(food) || food.loc == src) return FALSE - playsound(src, 'sound/magic/demon_attack1.ogg', 60, TRUE) + playsound(src, 'sound/effects/magic/demon_attack1.ogg', 60, TRUE) visible_message(span_boldwarning("[src] swallows [food] whole!")) food.extinguish_mob() // It's wet in there, and our food is likely to be on fire. Let's be decent and not husk them. food.forceMove(src) diff --git a/code/modules/mob/living/basic/space_fauna/spaceman.dm b/code/modules/mob/living/basic/space_fauna/spaceman.dm index 8a9ba36287ae3..42f28a74960bf 100644 --- a/code/modules/mob/living/basic/space_fauna/spaceman.dm +++ b/code/modules/mob/living/basic/space_fauna/spaceman.dm @@ -21,7 +21,7 @@ melee_damage_upper = 10 attack_verb_continuous = "hits" attack_verb_simple = "hit" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE ai_controller = /datum/ai_controller/basic_controller/spaceman diff --git a/code/modules/mob/living/basic/space_fauna/spider/spider.dm b/code/modules/mob/living/basic/space_fauna/spider/spider.dm index b9938631ec5d5..118487f038392 100644 --- a/code/modules/mob/living/basic/space_fauna/spider/spider.dm +++ b/code/modules/mob/living/basic/space_fauna/spider/spider.dm @@ -24,7 +24,7 @@ pass_flags = PASSTABLE attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE unique_name = TRUE lighting_cutoff_red = 22 diff --git a/code/modules/mob/living/basic/space_fauna/statue/statue.dm b/code/modules/mob/living/basic/space_fauna/statue/statue.dm index 3ddbc2364e81c..3bd308f34a609 100644 --- a/code/modules/mob/living/basic/space_fauna/statue/statue.dm +++ b/code/modules/mob/living/basic/space_fauna/statue/statue.dm @@ -25,7 +25,7 @@ melee_damage_upper = 83 attack_verb_continuous = "claws" attack_verb_simple = "claw" - attack_sound = 'sound/hallucinations/growl1.ogg' + attack_sound = 'sound/effects/hallucinations/growl1.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW melee_attack_cooldown = 1 SECONDS diff --git a/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.dm b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.dm index 675b32c84b55d..a3670c6e5ac56 100644 --- a/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.dm +++ b/code/modules/mob/living/basic/space_fauna/wumborian_fugu/wumborian_fugu.dm @@ -27,7 +27,7 @@ obj_damage = 0 melee_damage_lower = 0 melee_damage_upper = 0 - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' attack_vis_effect = ATTACK_EFFECT_BITE melee_attack_cooldown = 2.5 SECONDS attack_verb_continuous = "chomps" diff --git a/code/modules/mob/living/basic/trader/trader.dm b/code/modules/mob/living/basic/trader/trader.dm index 29a2bda419930..9b01261fa51a4 100644 --- a/code/modules/mob/living/basic/trader/trader.dm +++ b/code/modules/mob/living/basic/trader/trader.dm @@ -9,7 +9,7 @@ melee_damage_upper = 10 attack_verb_continuous = "punches" attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' basic_mob_flags = DEL_ON_DEATH unsuitable_atmos_damage = 2.5 combat_mode = FALSE @@ -33,7 +33,7 @@ ///Casing used to shoot during retaliation var/ranged_attack_casing = /obj/item/ammo_casing/shotgun/buckshot ///Sound to make while doing a retalitory attack - var/ranged_attack_sound = 'sound/weapons/gun/pistol/shot.ogg' + var/ranged_attack_sound = 'sound/items/weapons/gun/pistol/shot.ogg' ///Weapon path, for visuals var/held_weapon_visual = /obj/item/gun/ballistic/shotgun @@ -69,7 +69,7 @@ ai_controller = /datum/ai_controller/basic_controller/trader/jumpscare - sell_sound = 'sound/voice/hiss2.ogg' + sell_sound = 'sound/mobs/non-humanoids/hiss/hiss2.ogg' species_path = /datum/species/skeleton spawner_path = /obj/effect/mob_spawn/corpse/human/skeleton/mrbones loot = list(/obj/effect/decal/remains/human) diff --git a/code/modules/mob/living/basic/trader/trader_data.dm b/code/modules/mob/living/basic/trader/trader_data.dm index 9762dc02be500..c47e200154f28 100644 --- a/code/modules/mob/living/basic/trader/trader_data.dm +++ b/code/modules/mob/living/basic/trader/trader_data.dm @@ -85,7 +85,7 @@ /datum/trader_data/mr_bones shop_spot_type = /obj/structure/chair/wood/wings sign_type = /obj/structure/trader_sign/mrbones - sell_sound = 'sound/voice/hiss2.ogg' + sell_sound = 'sound/mobs/non-humanoids/hiss/hiss2.ogg' initial_products = list( /obj/item/clothing/head/helmet/skull = list(PAYCHECK_CREW * 3, INFINITY), diff --git a/code/modules/mob/living/basic/tree.dm b/code/modules/mob/living/basic/tree.dm index 3f3894f190b5e..b6f7e5ca4eb41 100644 --- a/code/modules/mob/living/basic/tree.dm +++ b/code/modules/mob/living/basic/tree.dm @@ -28,7 +28,7 @@ melee_damage_upper = 12 attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE faction = list(FACTION_HOSTILE) diff --git a/code/modules/mob/living/basic/trooper/abductor.dm b/code/modules/mob/living/basic/trooper/abductor.dm index fdb8b41cc5ec5..8163fb72c5af6 100644 --- a/code/modules/mob/living/basic/trooper/abductor.dm +++ b/code/modules/mob/living/basic/trooper/abductor.dm @@ -12,7 +12,7 @@ loot = list(/obj/effect/gibspawner/human) attack_verb_continuous = "beats" attack_verb_simple = "beat" - attack_sound = 'sound/weapons/egloves.ogg' + attack_sound = 'sound/items/weapons/egloves.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH r_hand = /obj/item/melee/baton/abductor var/projectile_deflect_chance = 0 @@ -24,7 +24,7 @@ /// Type of bullet we use var/casingtype = /obj/item/ammo_casing/energy/lasergun /// Sound to play when firing weapon - var/projectilesound = 'sound/weapons/laser2.ogg' + var/projectilesound = 'sound/items/weapons/laser2.ogg' /// number of burst shots var/burst_shots = 1 /// Time between taking shots diff --git a/code/modules/mob/living/basic/trooper/nanotrasen.dm b/code/modules/mob/living/basic/trooper/nanotrasen.dm index af32edde7e3f7..6d285b871d83e 100644 --- a/code/modules/mob/living/basic/trooper/nanotrasen.dm +++ b/code/modules/mob/living/basic/trooper/nanotrasen.dm @@ -21,7 +21,7 @@ /// Type of bullet we use var/casingtype = /obj/item/ammo_casing/c45 /// Sound to play when firing weapon - var/projectilesound = 'sound/weapons/gun/pistol/shot_alt.ogg' + var/projectilesound = 'sound/items/weapons/gun/pistol/shot_alt.ogg' /// number of burst shots var/burst_shots /// Time between taking shots @@ -42,7 +42,7 @@ /mob/living/basic/trooper/nanotrasen/ranged/smg ai_controller = /datum/ai_controller/basic_controller/trooper/ranged/burst casingtype = /obj/item/ammo_casing/c46x30mm - projectilesound = 'sound/weapons/gun/smg/shot.ogg' + projectilesound = 'sound/items/weapons/gun/smg/shot.ogg' r_hand = /obj/item/gun/ballistic/automatic/wt550 burst_shots = 3 ranged_cooldown = 3 SECONDS @@ -54,7 +54,7 @@ casingtype = /obj/item/ammo_casing/a223/weak burst_shots = 4 ranged_cooldown = 3 SECONDS - projectilesound = 'sound/weapons/gun/smg/shot.ogg' + projectilesound = 'sound/items/weapons/gun/smg/shot.ogg' r_hand = /obj/item/gun/ballistic/automatic/ar loot = list(/obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier) mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier @@ -68,7 +68,7 @@ unsuitable_cold_damage = 0 casingtype = /obj/item/ammo_casing/energy/laser burst_shots = 3 - projectilesound = 'sound/weapons/laser.ogg' + projectilesound = 'sound/items/weapons/laser.ogg' ranged_cooldown = 5 SECONDS faction = list(ROLE_DEATHSQUAD) loot = list(/obj/effect/gibspawner/human) diff --git a/code/modules/mob/living/basic/trooper/pirate.dm b/code/modules/mob/living/basic/trooper/pirate.dm index 6a51b901ebc4d..0af2f2aa6973a 100644 --- a/code/modules/mob/living/basic/trooper/pirate.dm +++ b/code/modules/mob/living/basic/trooper/pirate.dm @@ -23,7 +23,7 @@ armour_penetration = 35 attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/blade1.ogg' + attack_sound = 'sound/items/weapons/blade1.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH loot = list(/obj/effect/mob_spawn/corpse/human/pirate/melee) light_range = 2 @@ -57,7 +57,7 @@ /// Type of bullet we use var/projectiletype = /obj/projectile/beam/laser /// Sound to play when firing weapon - var/projectilesound = 'sound/weapons/laser.ogg' + var/projectilesound = 'sound/items/weapons/laser.ogg' /// number of burst shots var/burst_shots = 2 /// Time between taking shots diff --git a/code/modules/mob/living/basic/trooper/russian.dm b/code/modules/mob/living/basic/trooper/russian.dm index 6c8ff52c019a9..e3334ddddbd39 100644 --- a/code/modules/mob/living/basic/trooper/russian.dm +++ b/code/modules/mob/living/basic/trooper/russian.dm @@ -10,7 +10,7 @@ faction = list(FACTION_RUSSIAN) attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH mob_spawner = /obj/effect/mob_spawn/corpse/human/russian @@ -29,7 +29,7 @@ /obj/item/gun/ballistic/revolver/nagant, ) var/casingtype = /obj/item/ammo_casing/n762 - var/projectilesound = 'sound/weapons/gun/revolver/shot.ogg' + var/projectilesound = 'sound/items/weapons/gun/revolver/shot.ogg' /mob/living/basic/trooper/russian/ranged/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/trooper/syndicate.dm b/code/modules/mob/living/basic/trooper/syndicate.dm index 8f8d564693b66..6d4766db8cd07 100644 --- a/code/modules/mob/living/basic/trooper/syndicate.dm +++ b/code/modules/mob/living/basic/trooper/syndicate.dm @@ -32,7 +32,7 @@ loot = list(/obj/effect/gibspawner/human) attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH r_hand = /obj/item/knife/combat/survival var/projectile_deflect_chance = 0 @@ -67,7 +67,7 @@ melee_damage_upper = 30 attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/blade1.ogg' + attack_sound = 'sound/items/weapons/blade1.ogg' armour_penetration = 35 projectile_deflect_chance = 50 light_range = 2 @@ -105,7 +105,7 @@ /// Type of bullet we use var/casingtype = /obj/item/ammo_casing/c9mm /// Sound to play when firing weapon - var/projectilesound = 'sound/weapons/gun/pistol/shot.ogg' + var/projectilesound = 'sound/items/weapons/gun/pistol/shot.ogg' /// number of burst shots var/burst_shots /// Time between taking shots @@ -124,7 +124,7 @@ AddComponent(/datum/component/ranged_mob_full_auto) /mob/living/basic/trooper/syndicate/ranged/infiltrator //shuttle loan event - projectilesound = 'sound/weapons/gun/smg/shot_suppressed.ogg' + projectilesound = 'sound/items/weapons/gun/smg/shot_suppressed.ogg' loot = list(/obj/effect/mob_spawn/corpse/human/syndicatesoldier) /mob/living/basic/trooper/syndicate/ranged/space @@ -148,7 +148,7 @@ /mob/living/basic/trooper/syndicate/ranged/smg casingtype = /obj/item/ammo_casing/c45 - projectilesound = 'sound/weapons/gun/smg/shot.ogg' + projectilesound = 'sound/items/weapons/gun/smg/shot.ogg' ai_controller = /datum/ai_controller/basic_controller/trooper/ranged/burst burst_shots = 3 ranged_cooldown = 3 SECONDS @@ -236,7 +236,7 @@ obj_damage = 0 attack_verb_continuous = "cuts" attack_verb_simple = "cut" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH faction = list(ROLE_SYNDICATE) mob_size = MOB_SIZE_TINY diff --git a/code/modules/mob/living/basic/trooper/trooper.dm b/code/modules/mob/living/basic/trooper/trooper.dm index 1886c8fc2ff5e..7c9fd698d0895 100644 --- a/code/modules/mob/living/basic/trooper/trooper.dm +++ b/code/modules/mob/living/basic/trooper/trooper.dm @@ -10,7 +10,7 @@ melee_damage_upper = 10 attack_verb_continuous = "punches" attack_verb_simple = "punch" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' melee_attack_cooldown = 1.2 SECONDS combat_mode = TRUE unsuitable_atmos_damage = 7.5 diff --git a/code/modules/mob/living/basic/vermin/cockroach.dm b/code/modules/mob/living/basic/vermin/cockroach.dm index 0680de631cbae..c6eead9a16661 100644 --- a/code/modules/mob/living/basic/vermin/cockroach.dm +++ b/code/modules/mob/living/basic/vermin/cockroach.dm @@ -145,7 +145,7 @@ obj_damage = 10 melee_attack_cooldown = 1 SECONDS gold_core_spawnable = HOSTILE_SPAWN - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH faction = list(FACTION_HOSTILE, FACTION_MAINT_CREATURES) sharpness = SHARP_POINTY diff --git a/code/modules/mob/living/basic/vermin/crab.dm b/code/modules/mob/living/basic/vermin/crab.dm index 3c1c9146a064d..26eca65b97209 100644 --- a/code/modules/mob/living/basic/vermin/crab.dm +++ b/code/modules/mob/living/basic/vermin/crab.dm @@ -23,7 +23,7 @@ ///In the case 'melee_damage_upper' is somehow raised above 0 attack_verb_continuous = "snips" attack_verb_simple = "snip" - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE ai_controller = /datum/ai_controller/basic_controller/crab diff --git a/code/modules/mob/living/basic/vermin/frog.dm b/code/modules/mob/living/basic/vermin/frog.dm index 3a288918dbdc1..d2a634b7e9edd 100644 --- a/code/modules/mob/living/basic/vermin/frog.dm +++ b/code/modules/mob/living/basic/vermin/frog.dm @@ -26,7 +26,7 @@ response_harm_simple = "splat" density = FALSE faction = list(FACTION_HOSTILE, FACTION_MAINT_CREATURES) - attack_sound = 'sound/effects/reee.ogg' + attack_sound = 'sound/mobs/non-humanoids/frog/reee.ogg' butcher_results = list(/obj/item/food/nugget = 1) pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -40,7 +40,7 @@ ai_controller = /datum/ai_controller/basic_controller/frog - var/stepped_sound = 'sound/effects/huuu.ogg' + var/stepped_sound = 'sound/mobs/non-humanoids/frog/huuu.ogg' ///How much of a reagent the mob injects on attack var/poison_per_bite = 3 ///What reagent the mob injects targets with diff --git a/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm b/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm index a0079065de437..9659408b8b1aa 100644 --- a/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm +++ b/code/modules/mob/living/basic/vermin/mothroach/mothroach.dm @@ -59,14 +59,14 @@ if(src.stat == DEAD) return else - playsound(loc, 'sound/voice/moth/scream_moth.ogg', 50, TRUE) + playsound(loc, 'sound/mobs/humanoids/moth/scream_moth.ogg', 50, TRUE) /mob/living/basic/mothroach/attackby(obj/item/attacking_item, mob/living/user, params) . = ..() if(src.stat == DEAD) return else - playsound(loc, 'sound/voice/moth/scream_moth.ogg', 50, TRUE) + playsound(loc, 'sound/mobs/humanoids/moth/scream_moth.ogg', 50, TRUE) /mob/living/basic/mothroach/bar name = "mothroach bartender" diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index 5b8aad138fe10..cb62ad956f95c 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -51,7 +51,7 @@ held_state = "mouse_[body_color]" // not handled by variety element AddElement(/datum/element/animal_variety, "mouse", body_color, FALSE) AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOUSE, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 10) - AddComponent(/datum/component/squeak, list('sound/creatures/mousesqueek.ogg' = 1), 100, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) //as quiet as a mouse or whatever + AddComponent(/datum/component/squeak, list('sound/mobs/non-humanoids/mouse/mousesqueek.ogg' = 1), 100, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) //as quiet as a mouse or whatever var/static/list/loc_connections = list( COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) @@ -232,7 +232,7 @@ span_notice("You chew through \the [cable]."), ) - playsound(cable, 'sound/effects/sparks2.ogg', 100, TRUE) + playsound(cable, 'sound/effects/sparks/sparks2.ogg', 100, TRUE) cable.deconstruct() /mob/living/basic/mouse/white diff --git a/code/modules/mob/living/basic/vermin/space_bat.dm b/code/modules/mob/living/basic/vermin/space_bat.dm index 53f367f448727..07bce71f2f587 100644 --- a/code/modules/mob/living/basic/vermin/space_bat.dm +++ b/code/modules/mob/living/basic/vermin/space_bat.dm @@ -24,7 +24,7 @@ butcher_results = list(/obj/item/food/meat/slab = 1) pass_flags = PASSTABLE - attack_sound = 'sound/weapons/bite.ogg' + attack_sound = 'sound/items/weapons/bite.ogg' attack_vis_effect = ATTACK_EFFECT_BITE environment_smash = ENVIRONMENT_SMASH_NONE mob_size = MOB_SIZE_TINY diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 1963e13dbf552..7ae89e8d0ae1d 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -88,10 +88,10 @@ brainmob.set_stat(CONSCIOUS) //we manually revive the brain mob else if(!fubar_brain && newbrain.organ_flags & ORGAN_FAILING) // the brain is damaged, but not from a suicider to_chat(user, span_warning("[src]'s indicator light turns yellow and its brain integrity alarm beeps softly. Perhaps you should check [newbrain] for damage.")) - playsound(src, 'sound/machines/synth_no.ogg', 5, TRUE) + playsound(src, 'sound/machines/synth/synth_no.ogg', 5, TRUE) else to_chat(user, span_warning("[src]'s indicator light turns red and its brainwave activity alarm beeps softly. Perhaps you should check [newbrain] again.")) - playsound(src, 'sound/machines/triple_beep.ogg', 5, TRUE) + playsound(src, 'sound/machines/beep/triple_beep.ogg', 5, TRUE) brainmob.reset_perspective() brain = newbrain diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 46419d70e6dee..ced02095e410b 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -8,7 +8,7 @@ layer = ABOVE_MOB_LAYER zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_BRAIN - organ_flags = ORGAN_ORGANIC | ORGAN_VITAL + organ_flags = ORGAN_ORGANIC | ORGAN_VITAL | ORGAN_PROMINENT attack_verb_continuous = list("attacks", "slaps", "whacks") attack_verb_simple = list("attack", "slap", "whack") @@ -258,6 +258,26 @@ else return span_info("This one is completely devoid of life.") +/obj/item/organ/internal/brain/get_status_appendix(advanced, add_tooltips) + var/list/trauma_text + for(var/datum/brain_trauma/trauma as anything in traumas) + var/trauma_desc = "" + switch(trauma.resilience) + if(TRAUMA_RESILIENCE_BASIC) + trauma_desc = conditional_tooltip("Mild ", "Repair via brain surgery or medication such as [/datum/reagent/medicine/neurine::name].", add_tooltips) + if(TRAUMA_RESILIENCE_SURGERY) + trauma_desc = conditional_tooltip("Severe ", "Repair via brain surgery.", add_tooltips) + if(TRAUMA_RESILIENCE_LOBOTOMY) + trauma_desc = conditional_tooltip("Deep-rooted ", "Repair via Lobotomy.", add_tooltips) + if(TRAUMA_RESILIENCE_WOUND) + trauma_desc = conditional_tooltip("Fracture-derived ", "Repair via treatment of wounds afflicting the head.", add_tooltips) + if(TRAUMA_RESILIENCE_MAGIC, TRAUMA_RESILIENCE_ABSOLUTE) + trauma_desc = conditional_tooltip("Permanent ", "Irreparable under normal circumstances.", add_tooltips) + trauma_desc += capitalize(trauma.scan_desc) + LAZYADD(trauma_text, trauma_desc) + if(LAZYLEN(trauma_text)) + return "Mental trauma: [english_list(trauma_text, and_text = ", and ")]." + /obj/item/organ/internal/brain/attack(mob/living/carbon/C, mob/user) if(!istype(C)) return ..() diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index d883cbc635950..6557d0d1da889 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -11,17 +11,17 @@ GLOBAL_VAR(posibrain_notify_cooldown) braintype = "Android" ///Message sent to the user when polling ghosts - var/begin_activation_message = "You carefully locate the manual activation switch and start the positronic brain's boot process." + var/begin_activation_message = span_notice("You carefully locate the manual activation switch and start the positronic brain's boot process.") ///Message sent as a visible message on success - var/success_message = "The positronic brain pings, and its lights start flashing. Success!" + var/success_message = span_notice("The positronic brain pings, and its lights start flashing. Success!") ///Message sent as a visible message on failure - var/fail_message = "The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?" + var/fail_message = span_notice("The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?") ///Visible message sent when a player possesses the brain - var/new_mob_message = "The positronic brain chimes quietly." + var/new_mob_message = span_notice("The positronic brain chimes quietly.") ///Examine message when the posibrain has no mob - var/dead_message = "It appears to be completely inactive. The reset light is blinking." + var/dead_message = span_deadsay("It appears to be completely inactive. The reset light is blinking.") ///Examine message when the posibrain cannot poll ghosts due to cooldown - var/recharge_message = "The positronic brain isn't ready to activate again yet! Give it some time to recharge." + var/recharge_message = span_warning("The positronic brain isn't ready to activate again yet! Give it some time to recharge.") ///Can be set to tell ghosts what the brain will be used for var/ask_role = "" diff --git a/code/modules/mob/living/carbon/alien/adult/adult.dm b/code/modules/mob/living/carbon/alien/adult/adult.dm index 663419ce22cff..ce95c0e6ce5a7 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult.dm @@ -14,7 +14,7 @@ var/leap_on_click = 0 var/pounce_cooldown = 0 var/pounce_cooldown_time = 30 - death_sound = 'sound/voice/hiss6.ogg' + death_sound = 'sound/mobs/non-humanoids/hiss/hiss6.ogg' bodyparts = list( /obj/item/bodypart/chest/alien, /obj/item/bodypart/head/alien, @@ -41,7 +41,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( return ..() /mob/living/carbon/alien/adult/cuff_resist(obj/item/I) - playsound(src, 'sound/voice/hiss5.ogg', 40, TRUE, TRUE) //Alien roars when starting to break free + playsound(src, 'sound/mobs/non-humanoids/hiss/hiss5.ogg', 40, TRUE, TRUE) //Alien roars when starting to break free ..(I, cuff_break = INSTANT_CUFFBREAK) /mob/living/carbon/alien/adult/resist_grab(moving_resist) @@ -67,7 +67,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( /mob/living/carbon/alien/adult/check_breath(datum/gas_mixture/breath) if(breath?.total_moles() > 0 && !HAS_TRAIT(src, TRAIT_SNEAK)) - playsound(get_turf(src), pick('sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg'), 50, FALSE, -5) + playsound(get_turf(src), pick('sound/mobs/non-humanoids/hiss/lowHiss2.ogg', 'sound/mobs/non-humanoids/hiss/lowHiss3.ogg', 'sound/mobs/non-humanoids/hiss/lowHiss4.ogg'), 50, FALSE, -5) return ..() /mob/living/carbon/alien/adult/setGrabState(newstate) @@ -121,7 +121,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list( lucky_winner.visible_message(span_danger("[src] is attempting to devour [lucky_winner]!"), \ span_userdanger("[src] is attempting to devour you!")) - playsound(lucky_winner, 'sound/creatures/alien_eat.ogg', 100) + playsound(lucky_winner, 'sound/mobs/non-humanoids/alien/alien_eat.ogg', 100) if(!do_after(src, devour_time, lucky_winner, extra_checks = CALLBACK(src, PROC_REF(can_consume), lucky_winner))) return TRUE if(!can_consume(lucky_winner)) diff --git a/code/modules/mob/living/carbon/alien/adult/adult_defense.dm b/code/modules/mob/living/carbon/alien/adult/adult_defense.dm index d89f6de30d6e7..3b65549d6d9c0 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult_defense.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult_defense.dm @@ -33,7 +33,7 @@ apply_damage(damage, BRUTE, affecting) log_combat(user, src, "attacked") else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) visible_message(span_danger("[user]'s punch misses [src]!"), \ span_danger("You avoid [user]'s punch!"), span_hear("You hear a swoosh!"), COMBAT_MESSAGE_RANGE, user) to_chat(user, span_warning("Your punch misses [src]!")) diff --git a/code/modules/mob/living/carbon/alien/adult/alien_powers.dm b/code/modules/mob/living/carbon/alien/adult/alien_powers.dm index 21a09d82a6965..0b760c0f2e7b9 100644 --- a/code/modules/mob/living/carbon/alien/adult/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/adult/alien_powers.dm @@ -299,7 +299,7 @@ Doesn't work on other aliens/AI.*/ neurotoxin.preparePixelProjectile(target, caller, modifiers) neurotoxin.firer = caller neurotoxin.fire() - caller.newtonian_move(get_dir(target, caller)) + caller.newtonian_move(get_angle(target, caller)) return TRUE // Has to return TRUE, otherwise is skipped. @@ -379,7 +379,7 @@ Doesn't work on other aliens/AI.*/ owner.visible_message(span_danger("[owner] hurls out the contents of their stomach!")) var/dir_angle = dir2angle(owner.dir) - playsound(owner, 'sound/creatures/alien_york.ogg', 100) + playsound(owner, 'sound/mobs/non-humanoids/alien/alien_york.ogg', 100) melting_pot.eject_stomach(slice_off_turfs(owner, border_diamond_range_turfs(owner, 9), dir_angle - angle_delta, dir_angle + angle_delta), 4, mob_speed, spit_speed) /// Gets the plasma level of this carbon's plasma vessel, or -1 if they don't have one diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index 630171ba2c15d..0217a99fa04be 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -27,7 +27,7 @@ In all, this is a lot like the monkey code. /N visible_message(span_notice("[user.name] nuzzles [src] trying to wake [p_them()] up!")) else if(health > 0) user.do_attack_animation(src, ATTACK_EFFECT_BITE) - playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/bite.ogg', 50, TRUE, -1) visible_message(span_danger("[user.name] bites [src]!"), \ span_userdanger("[user.name] bites you!"), span_hear("You hear a chomp!"), COMBAT_MESSAGE_RANGE, user) to_chat(user, span_danger("You bite [src]!")) diff --git a/code/modules/mob/living/carbon/alien/emote.dm b/code/modules/mob/living/carbon/alien/emote.dm index 10d7550bb78fc..717e18c9b3166 100644 --- a/code/modules/mob/living/carbon/alien/emote.dm +++ b/code/modules/mob/living/carbon/alien/emote.dm @@ -27,4 +27,4 @@ /datum/emote/living/alien/roar/get_sound(mob/living/user) if(isalienadult(user)) - return 'sound/voice/hiss5.ogg' + return 'sound/mobs/non-humanoids/hiss/hiss5.ogg' diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm index 62dd4f88b2177..8f2446d000fde 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm @@ -17,7 +17,7 @@ var/obj/item/bodypart/affecting = get_bodypart(get_random_valid_zone(user.zone_selected)) apply_damage(damage, BRUTE, affecting) else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) visible_message(span_danger("[user]'s kick misses [src]!"), \ span_danger("You avoid [user]'s kick!"), span_hear("You hear a swoosh!"), COMBAT_MESSAGE_RANGE, user) to_chat(user, span_warning("Your kick misses [src]!")) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 3c063aec7e752..ac9fd81cf976b 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -290,7 +290,7 @@ // At 100% damage, the stomach burts // Otherwise, we give them a -50% -> 50% chance scaling with damage dealt if(!prob((damage_ratio * 100) - 50) && damage_ratio != 1) - playsound(play_from, 'sound/creatures/alien_organ_cut.ogg', 100, 1) + playsound(play_from, 'sound/mobs/non-humanoids/alien/alien_organ_cut.ogg', 100, 1) // We try and line up the "jump" here with the sound of the hit var/oldx = play_from.pixel_x var/oldy = play_from.pixel_y @@ -318,7 +318,7 @@ play_from.visible_message(span_danger("[user] blows a hole in [stomach_text] and escapes!"), \ span_userdanger("[user] escapes from your [stomach_text]. Hell, that hurts.")) - playsound(get_turf(play_from), 'sound/creatures/alien_explode.ogg', 100, extrarange = 4) + playsound(get_turf(play_from), 'sound/mobs/non-humanoids/alien/alien_explode.ogg', 100, extrarange = 4) eject_stomach(border_diamond_range_turfs(play_from, 6), 5, 1.5, 1, 8) shake_camera(user, 1 SECONDS, 3) if(owner) diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 6d1ad16c8b1c8..f4b0fffb7a085 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -120,7 +120,7 @@ var/atom/xeno_loc = get_turf(owner) var/mob/living/carbon/alien/larva/new_xeno = new(xeno_loc) new_xeno.key = ghost.key - SEND_SOUND(new_xeno, sound('sound/voice/hiss5.ogg',0,0,0,100)) //To get the player's attention + SEND_SOUND(new_xeno, sound('sound/mobs/non-humanoids/hiss/hiss5.ogg',0,0,0,100)) //To get the player's attention new_xeno.add_traits(list(TRAIT_HANDS_BLOCKED, TRAIT_IMMOBILIZED, TRAIT_NO_TRANSFORM), type) //so we don't move during the bursting animation new_xeno.SetInvisibility(INVISIBILITY_MAXIMUM, id=type) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0edeeb7fb70f3..47ceecd8a009d 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -99,7 +99,7 @@ log_combat(src, victim, "crashed into") if(oof_noise) - playsound(src,'sound/weapons/punch1.ogg',50,TRUE) + playsound(src,'sound/items/weapons/punch1.ogg',50,TRUE) //Throwing stuff /mob/living/carbon/proc/toggle_throw_mode() @@ -182,13 +182,13 @@ if(thrown_item.throw_verb) verb_text = thrown_item.throw_verb do_attack_animation(target, no_effect = 1) - var/sound/throwsound = 'sound/weapons/throw.ogg' + var/sound/throwsound = 'sound/items/weapons/throw.ogg' var/power_throw_text = "." if(power_throw > 0) //If we have anything that boosts our throw power like hulk, we use the rougher heavier variant. - throwsound = 'sound/weapons/throwhard.ogg' + throwsound = 'sound/items/weapons/throwhard.ogg' power_throw_text = " really hard!" if(power_throw < 0) //if we have anything that weakens our throw power like dward, we use a slower variant. - throwsound = 'sound/weapons/throwsoft.ogg' + throwsound = 'sound/items/weapons/throwsoft.ogg' power_throw_text = " flimsily." frequency_number = frequency_number + (rand(-5,5)/100); //Adds a bit of randomness in the frequency to not sound exactly the same. //The volume of the sound takes the minimum between the distance thrown or the max range an item, but no more than 50. Short throws are quieter. A fast throwing speed also makes the noise sharper. @@ -202,7 +202,12 @@ if(istype(potential_spine)) extra_throw_range += potential_spine.added_throw_range - newtonian_move(get_dir(target, src)) + var/drift_force = max(0.5 NEWTONS, 1 NEWTONS + power_throw) + if (isitem(thrown_thing)) + var/obj/item/thrown_item = thrown_thing + drift_force *= WEIGHT_TO_NEWTONS(thrown_item.w_class) + + newtonian_move(get_angle(target, src), drift_force = drift_force) thrown_thing.safe_throw_at(target, thrown_thing.throw_range + extra_throw_range, max(1,thrown_thing.throw_speed + power_throw), src, null, null, null, move_force) /mob/living/carbon/proc/canBeHandcuffed() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index dd1d59ebc1043..d9274ee83df33 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -398,7 +398,7 @@ if(body_position != STANDING_UP && !resting && !buckled && !HAS_TRAIT(src, TRAIT_FLOORED)) get_up(TRUE) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) // Shake animation if (incapacitated) @@ -505,7 +505,7 @@ ears.set_organ_damage(ears.maxHealth) else if(ears.damage >= 5) to_chat(src, span_warning("Your ears start to ring!")) - SEND_SOUND(src, sound('sound/weapons/flash_ring.ogg',0,1,0,250)) + SEND_SOUND(src, sound('sound/items/weapons/flash_ring.ogg',0,1,0,250)) return effect_amount //how soundbanged we are @@ -651,7 +651,7 @@ var/bleed_rate = grasped_part.get_modified_bleed_rate() var/bleeding_text = (bleed_rate ? ", trying to stop the bleeding" : "") user.visible_message(span_danger("[user] grasps at [user.p_their()] [grasped_part.name][bleeding_text]."), span_notice("You grab hold of your [grasped_part.name] tightly."), vision_distance=COMBAT_MESSAGE_RANGE) - playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(get_turf(src), 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) return TRUE /// Randomise a body part and organ of this mob diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 6995defb6dafe..74a5091565c74 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -29,17 +29,17 @@ if(!user.get_bodypart(BODY_ZONE_L_ARM) || !user.get_bodypart(BODY_ZONE_R_ARM)) return return pick( - 'sound/misc/clap1.ogg', - 'sound/misc/clap2.ogg', - 'sound/misc/clap3.ogg', - 'sound/misc/clap4.ogg', + 'sound/mobs/humanoids/human/clap/clap1.ogg', + 'sound/mobs/humanoids/human/clap/clap2.ogg', + 'sound/mobs/humanoids/human/clap/clap3.ogg', + 'sound/mobs/humanoids/human/clap/clap4.ogg', ) /datum/emote/living/carbon/crack key = "crack" key_third_person = "cracks" message = "cracks their knuckles." - sound = 'sound/misc/knuckles.ogg' + sound = 'sound/mobs/humanoids/human/knuckle_crack/knuckles.ogg' hands_use_check = TRUE cooldown = 6 SECONDS @@ -180,7 +180,7 @@ /datum/emote/living/carbon/snap/get_sound(mob/living/user) if(ishuman(user)) - return pick('sound/misc/fingersnap1.ogg', 'sound/misc/fingersnap2.ogg') + return pick('sound/mobs/humanoids/human/snap/fingersnap1.ogg', 'sound/mobs/humanoids/human/snap/fingersnap2.ogg') return null /datum/emote/living/carbon/shoesteal diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 501f3c782f29b..325abea10d66d 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -63,7 +63,7 @@ message = "screams!" message_mime = "acts out a scream!" emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE - only_forced_audio = TRUE + audio_cooldown = 5 SECONDS vary = TRUE /datum/emote/living/carbon/human/scream/can_run_emote(mob/user, status_check = TRUE , intentional, params) @@ -105,7 +105,7 @@ message = "salutes." message_param = "salutes to %t." hands_use_check = TRUE - sound = 'sound/misc/salute.ogg' + sound = 'sound/mobs/humanoids/human/salute/salute.ogg' /datum/emote/living/carbon/human/shrug key = "shrug" diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index bea66f71112d3..c26b22b0711da 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -163,12 +163,12 @@ if(LAZYACCESS(modifiers, RIGHT_CLICK)) //Always drop item in hand, if no item, get stunned instead. var/obj/item/I = get_active_held_item() if(I && !(I.item_flags & ABSTRACT) && dropItemToGround(I)) - playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slash.ogg', 25, TRUE, -1) visible_message(span_danger("[user] disarmed [src]!"), \ span_userdanger("[user] disarmed you!"), span_hear("You hear aggressive shuffling!"), null, user) to_chat(user, span_danger("You disarm [src]!")) else if(!user.client || prob(5)) // only natural monkeys get to stun reliably, (they only do it occasionaly) - playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/pierce.ogg', 25, TRUE, -1) if (src.IsKnockdown() && !src.IsParalyzed()) Paralyze(40) log_combat(user, src, "pinned") @@ -209,25 +209,25 @@ if(LAZYACCESS(modifiers, RIGHT_CLICK)) //Always drop item in hand if there is one. If there's no item, shove the target. If the target is incapacitated, slam them into the ground to stun them. var/obj/item/I = get_active_held_item() if(I && dropItemToGround(I)) - playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slash.ogg', 25, TRUE, -1) visible_message(span_danger("[user] disarms [src]!"), \ span_userdanger("[user] disarms you!"), span_hear("You hear aggressive shuffling!"), null, user) to_chat(user, span_danger("You disarm [src]!")) else if(!HAS_TRAIT(src, TRAIT_INCAPACITATED)) - playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/pierce.ogg', 25, TRUE, -1) var/shovetarget = get_edge_target_turf(user, get_dir(user, get_step_away(src, user))) adjustStaminaLoss(35) throw_at(shovetarget, 4, 2, user, force = MOVE_FORCE_OVERPOWERING) log_combat(user, src, "shoved") - visible_message("[user] tackles [src] down!", \ - "[user] shoves you with great force!", "You hear aggressive shuffling followed by a loud thud!", null, user) - to_chat(user, "You shove [src] with great force!") + visible_message(span_danger("[user] tackles [src] down!"), \ + span_userdanger("[user] shoves you with great force!"), span_hear("You hear aggressive shuffling followed by a loud thud!"), null, user) + to_chat(user, span_danger("You shove [src] with great force!")) else Paralyze(5 SECONDS) - playsound(loc, 'sound/weapons/punch3.ogg', 25, TRUE, -1) - visible_message("[user] slams [src] into the floor!", \ - "[user] slams you into the ground!", "You hear something slam loudly onto the floor!", null, user) - to_chat(user, "You slam [src] into the floor beneath you!") + playsound(loc, 'sound/items/weapons/punch3.ogg', 25, TRUE, -1) + visible_message(span_danger("[user] slams [src] into the floor!"), \ + span_userdanger("[user] slams you into the ground!"), span_hear("You hear something slam loudly onto the floor!"), null, user) + to_chat(user, span_danger("You slam [src] into the floor beneath you!")) log_combat(user, src, "slammed into the ground") return TRUE @@ -236,7 +236,7 @@ w_uniform.add_fingerprint(user) var/damage = prob(90) ? rand(user.melee_damage_lower, user.melee_damage_upper) : 0 if(!damage) - playsound(loc, 'sound/weapons/slashmiss.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/slashmiss.ogg', 50, TRUE, -1) visible_message(span_danger("[user] lunges at [src]!"), \ span_userdanger("[user] lunges at you!"), span_hear("You hear a swoosh!"), null, user) to_chat(user, span_danger("You lunge at [src]!")) @@ -244,7 +244,7 @@ var/obj/item/bodypart/affecting = get_bodypart(get_random_valid_zone(user.zone_selected)) var/armor_block = run_armor_check(affecting, MELEE,"","",10) - playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) visible_message(span_danger("[user] slashes at [src]!"), \ span_userdanger("[user] slashes at you!"), span_hear("You hear a sickening sound of a slice!"), null, user) to_chat(user, span_danger("You slash at [src]!")) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index fda6d7a9142ea..52e59e098c1b7 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -30,7 +30,3 @@ if((. && !moving_diagonally) || (!. && moving_diagonally == SECOND_DIAG_STEP)) SEND_SIGNAL(shoes, COMSIG_SHOES_STEP_ACTION) -/mob/living/carbon/human/Process_Spacemove(movement_dir = 0, continuous_move = FALSE) - if(movement_type & FLYING || HAS_TRAIT(src, TRAIT_FREE_FLOAT_MOVEMENT)) - return TRUE - return ..() diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 0f27f0e47e69b..a7e88cf7b526c 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -176,9 +176,9 @@ /datum/species/ethereal/get_scream_sound(mob/living/carbon/human/ethereal) return pick( - 'sound/voice/ethereal/ethereal_scream_1.ogg', - 'sound/voice/ethereal/ethereal_scream_2.ogg', - 'sound/voice/ethereal/ethereal_scream_3.ogg', + 'sound/mobs/humanoids/ethereal/ethereal_scream_1.ogg', + 'sound/mobs/humanoids/ethereal/ethereal_scream_2.ogg', + 'sound/mobs/humanoids/ethereal/ethereal_scream_3.ogg', ) /datum/species/ethereal/get_physical_attributes() @@ -267,9 +267,9 @@ /datum/species/ethereal/lustrous/get_scream_sound(mob/living/carbon/human/ethereal) return pick( - 'sound/voice/ethereal/lustrous_scream_1.ogg', - 'sound/voice/ethereal/lustrous_scream_2.ogg', - 'sound/voice/ethereal/lustrous_scream_3.ogg', + 'sound/mobs/humanoids/ethereal/lustrous_scream_1.ogg', + 'sound/mobs/humanoids/ethereal/lustrous_scream_2.ogg', + 'sound/mobs/humanoids/ethereal/lustrous_scream_3.ogg', ) /datum/species/ethereal/lustrous/on_species_gain(mob/living/carbon/new_lustrous, datum/species/old_species, pref_load) diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index 8a040425a9747..4c89f9d4b66c1 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -53,60 +53,60 @@ /datum/species/human/felinid/get_laugh_sound(mob/living/carbon/human/felinid) if(felinid.physique == FEMALE) - return 'sound/voice/human/womanlaugh.ogg' + return 'sound/mobs/humanoids/human/laugh/womanlaugh.ogg' return pick( - 'sound/voice/human/manlaugh1.ogg', - 'sound/voice/human/manlaugh2.ogg', + 'sound/mobs/humanoids/human/laugh/manlaugh1.ogg', + 'sound/mobs/humanoids/human/laugh/manlaugh2.ogg', ) /datum/species/human/felinid/get_cough_sound(mob/living/carbon/human/felinid) if(felinid.physique == FEMALE) return pick( - 'sound/voice/human/female_cough1.ogg', - 'sound/voice/human/female_cough2.ogg', - 'sound/voice/human/female_cough3.ogg', - 'sound/voice/human/female_cough4.ogg', - 'sound/voice/human/female_cough5.ogg', - 'sound/voice/human/female_cough6.ogg', + 'sound/mobs/humanoids/human/cough/female_cough1.ogg', + 'sound/mobs/humanoids/human/cough/female_cough2.ogg', + 'sound/mobs/humanoids/human/cough/female_cough3.ogg', + 'sound/mobs/humanoids/human/cough/female_cough4.ogg', + 'sound/mobs/humanoids/human/cough/female_cough5.ogg', + 'sound/mobs/humanoids/human/cough/female_cough6.ogg', ) return pick( - 'sound/voice/human/male_cough1.ogg', - 'sound/voice/human/male_cough2.ogg', - 'sound/voice/human/male_cough3.ogg', - 'sound/voice/human/male_cough4.ogg', - 'sound/voice/human/male_cough5.ogg', - 'sound/voice/human/male_cough6.ogg', + 'sound/mobs/humanoids/human/cough/male_cough1.ogg', + 'sound/mobs/humanoids/human/cough/male_cough2.ogg', + 'sound/mobs/humanoids/human/cough/male_cough3.ogg', + 'sound/mobs/humanoids/human/cough/male_cough4.ogg', + 'sound/mobs/humanoids/human/cough/male_cough5.ogg', + 'sound/mobs/humanoids/human/cough/male_cough6.ogg', ) /datum/species/human/felinid/get_cry_sound(mob/living/carbon/human/felinid) if(felinid.physique == FEMALE) return pick( - 'sound/voice/human/female_cry1.ogg', - 'sound/voice/human/female_cry2.ogg', + 'sound/mobs/humanoids/human/cry/female_cry1.ogg', + 'sound/mobs/humanoids/human/cry/female_cry2.ogg', ) return pick( - 'sound/voice/human/male_cry1.ogg', - 'sound/voice/human/male_cry2.ogg', - 'sound/voice/human/male_cry3.ogg', + 'sound/mobs/humanoids/human/cry/male_cry1.ogg', + 'sound/mobs/humanoids/human/cry/male_cry2.ogg', + 'sound/mobs/humanoids/human/cry/male_cry3.ogg', ) /datum/species/human/felinid/get_sneeze_sound(mob/living/carbon/human/felinid) if(felinid.physique == FEMALE) - return 'sound/voice/human/female_sneeze1.ogg' - return 'sound/voice/human/male_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg' /datum/species/human/felinid/get_sigh_sound(mob/living/carbon/human/felinid) if(felinid.physique == FEMALE) - return 'sound/voice/human/female_sigh.ogg' - return 'sound/voice/human/male_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/female_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/male_sigh.ogg' /datum/species/human/felinid/get_sniff_sound(mob/living/carbon/human/felinid) if(felinid.physique == FEMALE) - return 'sound/voice/human/female_sniff.ogg' - return 'sound/voice/human/male_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/female_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/male_sniff.ogg' diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index be6357f6b4f21..cbb16fea3dccc 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -15,78 +15,78 @@ /datum/species/human/get_scream_sound(mob/living/carbon/human/human) if(human.physique == MALE) if(prob(1)) - return 'sound/voice/human/wilhelm_scream.ogg' + return 'sound/mobs/humanoids/human/scream/wilhelm_scream.ogg' return pick( - 'sound/voice/human/malescream_1.ogg', - 'sound/voice/human/malescream_2.ogg', - 'sound/voice/human/malescream_3.ogg', - 'sound/voice/human/malescream_4.ogg', - 'sound/voice/human/malescream_5.ogg', - 'sound/voice/human/malescream_6.ogg', + 'sound/mobs/humanoids/human/scream/malescream_1.ogg', + 'sound/mobs/humanoids/human/scream/malescream_2.ogg', + 'sound/mobs/humanoids/human/scream/malescream_3.ogg', + 'sound/mobs/humanoids/human/scream/malescream_4.ogg', + 'sound/mobs/humanoids/human/scream/malescream_5.ogg', + 'sound/mobs/humanoids/human/scream/malescream_6.ogg', ) return pick( - 'sound/voice/human/femalescream_1.ogg', - 'sound/voice/human/femalescream_2.ogg', - 'sound/voice/human/femalescream_3.ogg', - 'sound/voice/human/femalescream_4.ogg', - 'sound/voice/human/femalescream_5.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_1.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_2.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_3.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_4.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_5.ogg', ) /datum/species/human/get_cough_sound(mob/living/carbon/human/human) if(human.physique == FEMALE) return pick( - 'sound/voice/human/female_cough1.ogg', - 'sound/voice/human/female_cough2.ogg', - 'sound/voice/human/female_cough3.ogg', - 'sound/voice/human/female_cough4.ogg', - 'sound/voice/human/female_cough5.ogg', - 'sound/voice/human/female_cough6.ogg', + 'sound/mobs/humanoids/human/cough/female_cough1.ogg', + 'sound/mobs/humanoids/human/cough/female_cough2.ogg', + 'sound/mobs/humanoids/human/cough/female_cough3.ogg', + 'sound/mobs/humanoids/human/cough/female_cough4.ogg', + 'sound/mobs/humanoids/human/cough/female_cough5.ogg', + 'sound/mobs/humanoids/human/cough/female_cough6.ogg', ) return pick( - 'sound/voice/human/male_cough1.ogg', - 'sound/voice/human/male_cough2.ogg', - 'sound/voice/human/male_cough3.ogg', - 'sound/voice/human/male_cough4.ogg', - 'sound/voice/human/male_cough5.ogg', - 'sound/voice/human/male_cough6.ogg', + 'sound/mobs/humanoids/human/cough/male_cough1.ogg', + 'sound/mobs/humanoids/human/cough/male_cough2.ogg', + 'sound/mobs/humanoids/human/cough/male_cough3.ogg', + 'sound/mobs/humanoids/human/cough/male_cough4.ogg', + 'sound/mobs/humanoids/human/cough/male_cough5.ogg', + 'sound/mobs/humanoids/human/cough/male_cough6.ogg', ) /datum/species/human/get_cry_sound(mob/living/carbon/human/human) if(human.physique == FEMALE) return pick( - 'sound/voice/human/female_cry1.ogg', - 'sound/voice/human/female_cry2.ogg', + 'sound/mobs/humanoids/human/cry/female_cry1.ogg', + 'sound/mobs/humanoids/human/cry/female_cry2.ogg', ) return pick( - 'sound/voice/human/male_cry1.ogg', - 'sound/voice/human/male_cry2.ogg', - 'sound/voice/human/male_cry3.ogg', + 'sound/mobs/humanoids/human/cry/male_cry1.ogg', + 'sound/mobs/humanoids/human/cry/male_cry2.ogg', + 'sound/mobs/humanoids/human/cry/male_cry3.ogg', ) /datum/species/human/get_sneeze_sound(mob/living/carbon/human/human) if(human.physique == FEMALE) - return 'sound/voice/human/female_sneeze1.ogg' - return 'sound/voice/human/male_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg' /datum/species/human/get_laugh_sound(mob/living/carbon/human/human) if(human.physique == FEMALE) - return 'sound/voice/human/womanlaugh.ogg' + return 'sound/mobs/humanoids/human/laugh/womanlaugh.ogg' return pick( - 'sound/voice/human/manlaugh1.ogg', - 'sound/voice/human/manlaugh2.ogg', + 'sound/mobs/humanoids/human/laugh/manlaugh1.ogg', + 'sound/mobs/humanoids/human/laugh/manlaugh2.ogg', ) /datum/species/human/get_sigh_sound(mob/living/carbon/human/human) if(human.physique == FEMALE) - return 'sound/voice/human/female_sigh.ogg' - return 'sound/voice/human/male_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/female_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/male_sigh.ogg' /datum/species/human/get_sniff_sound(mob/living/carbon/human/human) if(human.physique == FEMALE) - return 'sound/voice/human/female_sniff.ogg' - return 'sound/voice/human/male_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/female_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/male_sniff.ogg' /datum/species/human/get_species_description() return "Humans are the dominant species in the known galaxy. \ diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index bcf0e1c0de2de..b7c97b6451bd1 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -462,16 +462,13 @@ if(!can_swap(dupe)) //sanity check return if(M.current.stat == CONSCIOUS) - M.current.visible_message("[M.current] \ - stops moving and starts staring vacantly into space.", + M.current.visible_message(span_notice("[M.current] stops moving and starts staring vacantly into space."), span_notice("You stop moving this body...")) else to_chat(M.current, span_notice("You abandon this body...")) M.current.transfer_quirk_datums(dupe) M.transfer_to(dupe) - dupe.visible_message("[dupe] blinks and looks \ - around.", - span_notice("...and move this one instead.")) + dupe.visible_message(span_notice("[dupe] blinks and looks around."), span_notice("...and move this one instead.")) ///////////////////////////////////LUMINESCENTS////////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 65945467f5eb1..45faab6713931 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -25,7 +25,7 @@ skinned_type = /obj/item/stack/sheet/animalhide/lizard exotic_bloodtype = "L" inert_mutation = /datum/mutation/human/firebreath - death_sound = 'sound/voice/lizard/deathsound.ogg' + death_sound = 'sound/mobs/humanoids/lizard/deathsound.ogg' species_language_holder = /datum/language_holder/lizard digitigrade_customization = DIGITIGRADE_OPTIONAL @@ -53,61 +53,61 @@ /datum/species/lizard/get_scream_sound(mob/living/carbon/human/lizard) return pick( - 'sound/voice/lizard/lizard_scream_1.ogg', - 'sound/voice/lizard/lizard_scream_2.ogg', - 'sound/voice/lizard/lizard_scream_3.ogg', + 'sound/mobs/humanoids/lizard/lizard_scream_1.ogg', + 'sound/mobs/humanoids/lizard/lizard_scream_2.ogg', + 'sound/mobs/humanoids/lizard/lizard_scream_3.ogg', ) /datum/species/lizard/get_cough_sound(mob/living/carbon/human/lizard) if(lizard.physique == FEMALE) return pick( - 'sound/voice/human/female_cough1.ogg', - 'sound/voice/human/female_cough2.ogg', - 'sound/voice/human/female_cough3.ogg', - 'sound/voice/human/female_cough4.ogg', - 'sound/voice/human/female_cough5.ogg', - 'sound/voice/human/female_cough6.ogg', + 'sound/mobs/humanoids/human/cough/female_cough1.ogg', + 'sound/mobs/humanoids/human/cough/female_cough2.ogg', + 'sound/mobs/humanoids/human/cough/female_cough3.ogg', + 'sound/mobs/humanoids/human/cough/female_cough4.ogg', + 'sound/mobs/humanoids/human/cough/female_cough5.ogg', + 'sound/mobs/humanoids/human/cough/female_cough6.ogg', ) return pick( - 'sound/voice/human/male_cough1.ogg', - 'sound/voice/human/male_cough2.ogg', - 'sound/voice/human/male_cough3.ogg', - 'sound/voice/human/male_cough4.ogg', - 'sound/voice/human/male_cough5.ogg', - 'sound/voice/human/male_cough6.ogg', + 'sound/mobs/humanoids/human/cough/male_cough1.ogg', + 'sound/mobs/humanoids/human/cough/male_cough2.ogg', + 'sound/mobs/humanoids/human/cough/male_cough3.ogg', + 'sound/mobs/humanoids/human/cough/male_cough4.ogg', + 'sound/mobs/humanoids/human/cough/male_cough5.ogg', + 'sound/mobs/humanoids/human/cough/male_cough6.ogg', ) /datum/species/lizard/get_cry_sound(mob/living/carbon/human/lizard) if(lizard.physique == FEMALE) return pick( - 'sound/voice/human/female_cry1.ogg', - 'sound/voice/human/female_cry2.ogg', + 'sound/mobs/humanoids/human/cry/female_cry1.ogg', + 'sound/mobs/humanoids/human/cry/female_cry2.ogg', ) return pick( - 'sound/voice/human/male_cry1.ogg', - 'sound/voice/human/male_cry2.ogg', - 'sound/voice/human/male_cry3.ogg', + 'sound/mobs/humanoids/human/cry/male_cry1.ogg', + 'sound/mobs/humanoids/human/cry/male_cry2.ogg', + 'sound/mobs/humanoids/human/cry/male_cry3.ogg', ) /datum/species/lizard/get_sneeze_sound(mob/living/carbon/human/lizard) if(lizard.physique == FEMALE) - return 'sound/voice/human/female_sneeze1.ogg' - return 'sound/voice/human/male_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg' /datum/species/lizard/get_laugh_sound(mob/living/carbon/human/lizard) - return 'sound/voice/lizard/lizard_laugh1.ogg' + return 'sound/mobs/humanoids/lizard/lizard_laugh1.ogg' /datum/species/lizard/get_sigh_sound(mob/living/carbon/human/lizard) if(lizard.physique == FEMALE) - return 'sound/voice/human/female_sigh.ogg' - return 'sound/voice/human/male_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/female_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/male_sigh.ogg' /datum/species/lizard/get_sniff_sound(mob/living/carbon/human/lizard) if(lizard.physique == FEMALE) - return 'sound/voice/human/female_sniff.ogg' - return 'sound/voice/human/male_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/female_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/male_sniff.ogg' /datum/species/lizard/get_physical_attributes() return "Lizardpeople can withstand slightly higher temperatures than most species, but they are very vulnerable to the cold \ diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index f9a17b310fae9..1ae9c959c3c6e 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -11,7 +11,7 @@ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT species_cookie = /obj/item/food/muffin/moffin species_language_holder = /datum/language_holder/moth - death_sound = 'sound/voice/moth/moth_death.ogg' + death_sound = 'sound/mobs/humanoids/moth/moth_death.ogg' payday_modifier = 1.0 family_heirlooms = list(/obj/item/flashlight/lantern/heirloom_moth) @@ -44,59 +44,59 @@ return features /datum/species/moth/get_scream_sound(mob/living/carbon/human/moth) - return 'sound/voice/moth/scream_moth.ogg' + return 'sound/mobs/humanoids/moth/scream_moth.ogg' /datum/species/moth/get_cough_sound(mob/living/carbon/human/moth) if(moth.physique == FEMALE) return pick( - 'sound/voice/human/female_cough1.ogg', - 'sound/voice/human/female_cough2.ogg', - 'sound/voice/human/female_cough3.ogg', - 'sound/voice/human/female_cough4.ogg', - 'sound/voice/human/female_cough5.ogg', - 'sound/voice/human/female_cough6.ogg', + 'sound/mobs/humanoids/human/cough/female_cough1.ogg', + 'sound/mobs/humanoids/human/cough/female_cough2.ogg', + 'sound/mobs/humanoids/human/cough/female_cough3.ogg', + 'sound/mobs/humanoids/human/cough/female_cough4.ogg', + 'sound/mobs/humanoids/human/cough/female_cough5.ogg', + 'sound/mobs/humanoids/human/cough/female_cough6.ogg', ) return pick( - 'sound/voice/human/male_cough1.ogg', - 'sound/voice/human/male_cough2.ogg', - 'sound/voice/human/male_cough3.ogg', - 'sound/voice/human/male_cough4.ogg', - 'sound/voice/human/male_cough5.ogg', - 'sound/voice/human/male_cough6.ogg', + 'sound/mobs/humanoids/human/cough/male_cough1.ogg', + 'sound/mobs/humanoids/human/cough/male_cough2.ogg', + 'sound/mobs/humanoids/human/cough/male_cough3.ogg', + 'sound/mobs/humanoids/human/cough/male_cough4.ogg', + 'sound/mobs/humanoids/human/cough/male_cough5.ogg', + 'sound/mobs/humanoids/human/cough/male_cough6.ogg', ) /datum/species/moth/get_cry_sound(mob/living/carbon/human/moth) if(moth.physique == FEMALE) return pick( - 'sound/voice/human/female_cry1.ogg', - 'sound/voice/human/female_cry2.ogg', + 'sound/mobs/humanoids/human/cry/female_cry1.ogg', + 'sound/mobs/humanoids/human/cry/female_cry2.ogg', ) return pick( - 'sound/voice/human/male_cry1.ogg', - 'sound/voice/human/male_cry2.ogg', - 'sound/voice/human/male_cry3.ogg', + 'sound/mobs/humanoids/human/cry/male_cry1.ogg', + 'sound/mobs/humanoids/human/cry/male_cry2.ogg', + 'sound/mobs/humanoids/human/cry/male_cry3.ogg', ) /datum/species/moth/get_sneeze_sound(mob/living/carbon/human/moth) if(moth.physique == FEMALE) - return 'sound/voice/human/female_sneeze1.ogg' - return 'sound/voice/human/male_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg' /datum/species/moth/get_laugh_sound(mob/living/carbon/human/moth) - return 'sound/voice/moth/moth_laugh1.ogg' + return 'sound/mobs/humanoids/moth/moth_laugh1.ogg' /datum/species/moth/get_sigh_sound(mob/living/carbon/human/moth) if(moth.physique == FEMALE) - return 'sound/voice/human/female_sigh.ogg' - return 'sound/voice/human/male_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/female_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/male_sigh.ogg' /datum/species/moth/get_sniff_sound(mob/living/carbon/human/moth) if(moth.physique == FEMALE) - return 'sound/voice/human/female_sniff.ogg' - return 'sound/voice/human/male_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/female_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/male_sniff.ogg' /datum/species/moth/get_physical_attributes() return "Moths have large and fluffy wings, which help them navigate the station if gravity is offline by pushing the air around them. \ diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 8b347a22cca96..bcbdf0276df6f 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -132,9 +132,9 @@ /datum/species/plasmaman/get_scream_sound(mob/living/carbon/human) return pick( - 'sound/voice/plasmaman/plasmeme_scream_1.ogg', - 'sound/voice/plasmaman/plasmeme_scream_2.ogg', - 'sound/voice/plasmaman/plasmeme_scream_3.ogg', + 'sound/mobs/humanoids/plasmaman/plasmeme_scream_1.ogg', + 'sound/mobs/humanoids/plasmaman/plasmeme_scream_2.ogg', + 'sound/mobs/humanoids/plasmaman/plasmeme_scream_3.ogg', ) /datum/species/plasmaman/get_physical_attributes() diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index c763127a4be7b..da7cf8f6be336 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -48,11 +48,11 @@ /// Spooky growls we sometimes play while alive var/static/list/spooks = list( - 'sound/hallucinations/growl1.ogg', - 'sound/hallucinations/growl2.ogg', - 'sound/hallucinations/growl3.ogg', - 'sound/hallucinations/veryfar_noise.ogg', - 'sound/hallucinations/wail.ogg', + 'sound/effects/hallucinations/growl1.ogg', + 'sound/effects/hallucinations/growl2.ogg', + 'sound/effects/hallucinations/growl3.ogg', + 'sound/effects/hallucinations/veryfar_noise.ogg', + 'sound/effects/hallucinations/wail.ogg', ) /// Zombies do not stabilize body temperature they are the walking dead and are cold blooded diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index a626cb47cc6d8..c71359c58f12b 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -193,8 +193,8 @@ var/mob/living/carbon/human/human_user = user if(human_user.physique == FEMALE) - return pick('sound/voice/human/gasp_female1.ogg', 'sound/voice/human/gasp_female2.ogg', 'sound/voice/human/gasp_female3.ogg') - return pick('sound/voice/human/gasp_male1.ogg', 'sound/voice/human/gasp_male2.ogg') + return pick('sound/mobs/humanoids/human/gasp/gasp_female1.ogg', 'sound/mobs/humanoids/human/gasp/gasp_female2.ogg', 'sound/mobs/humanoids/human/gasp/gasp_female3.ogg') + return pick('sound/mobs/humanoids/human/gasp/gasp_male1.ogg', 'sound/mobs/humanoids/human/gasp/gasp_male2.ogg') /datum/emote/living/gasp/shock key = "gaspshock" @@ -743,4 +743,4 @@ emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE /datum/emote/living/carbon/whistle/get_sound(mob/living/user) - return 'sound/voice/human/whistle1.ogg' + return 'sound/mobs/humanoids/human/whistle/whistle1.ogg' diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index fc494befd9053..e3f6b7d1ae981 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -406,7 +406,7 @@ SEND_SIGNAL(src, COMSIG_LIVING_START_PULL, AM, state, force) if(!supress_message) - var/sound_to_play = 'sound/weapons/thudswoosh.ogg' + var/sound_to_play = 'sound/items/weapons/thudswoosh.ogg' if(ishuman(src)) var/mob/living/carbon/human/H = src if(H.dna.species.grab_sound) @@ -525,7 +525,7 @@ if(!..()) return FALSE log_message("points at [pointing_at]", LOG_EMOTE) - visible_message("[span_name("[src]")] points at [pointing_at].", span_notice("You point at [pointing_at].")) + visible_message(span_infoplain("[span_name("[src]")] points at [pointing_at]."), span_notice("You point at [pointing_at].")) /mob/living/verb/succumb(whispered as num|null) set hidden = TRUE @@ -1789,13 +1789,13 @@ GLOBAL_LIST_EMPTY(fire_appearances) // used by secbot and monkeys Crossed /mob/living/proc/knockOver(mob/living/carbon/C) if(C.key) //save us from monkey hordes - C.visible_message("[pick( \ + C.visible_message(span_warning(pick( \ "[C] dives out of [src]'s way!", \ "[C] stumbles over [src]!", \ "[C] jumps out of [src]'s path!", \ "[C] trips over [src] and falls!", \ "[C] topples over [src]!", \ - "[C] leaps out of [src]'s way!")]") + "[C] leaps out of [src]'s way!"))) C.Paralyze(40) /mob/living/can_be_pulled() @@ -2830,7 +2830,7 @@ GLOBAL_LIST_EMPTY(fire_appearances) ADD_TRAIT(src, TRAIT_BLOCKING_PROJECTILES, BLOCKING_TRAIT) var/icon/selected_overlay = pick(blocking_overlay) add_overlay(selected_overlay) - playsound(src, 'sound/weapons/fwoosh.ogg', 90, FALSE, frequency = 0.7) + playsound(src, 'sound/items/weapons/fwoosh.ogg', 90, FALSE, frequency = 0.7) update_transform(1.25) addtimer(CALLBACK(src, PROC_REF(end_block_effects), selected_overlay), 0.6 SECONDS) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 6f2fe9afd8970..1caa124fc67de 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -167,7 +167,7 @@ skipcatch = TRUE blocked = TRUE else - playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1) //Item sounds are handled in the item itself + playsound(loc, 'sound/items/weapons/genhit.ogg', 50, TRUE, -1) //Item sounds are handled in the item itself if(!isvendor(AM) && !iscarbon(AM)) //Vendors have special interactions, while carbon mobs already generate visible messages! visible_message(span_danger("[src] is hit by [AM]!"), \ span_userdanger("You're hit by [AM]!")) @@ -276,7 +276,7 @@ if(user.grab_state >= user.max_grab) return user.changeNext_move(CLICK_CD_GRABBING) - var/sound_to_play = 'sound/weapons/thudswoosh.ogg' + var/sound_to_play = 'sound/items/weapons/thudswoosh.ogg' if(ishuman(user)) var/mob/living/carbon/human/H = user if(H.dna.species.grab_sound) @@ -423,7 +423,7 @@ user.do_attack_animation(src, ATTACK_EFFECT_BITE) if (HAS_TRAIT(user, TRAIT_PERFECT_ATTACKER) || prob(75)) log_combat(user, src, "attacked") - playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/bite.ogg', 50, TRUE, -1) visible_message(span_danger("[user.name] bites [src]!"), \ span_userdanger("[user.name] bites you!"), span_hear("You hear a chomp!"), COMBAT_MESSAGE_RANGE, user) to_chat(user, span_danger("You bite [src]!")) @@ -450,7 +450,7 @@ visible_message(span_danger("[L.name] bites [src]!"), \ span_userdanger("[L.name] bites you!"), span_hear("You hear a chomp!"), COMBAT_MESSAGE_RANGE, L) to_chat(L, span_danger("You bite [src]!")) - playsound(loc, 'sound/weapons/bite.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/bite.ogg', 50, TRUE, -1) return TRUE else visible_message(span_danger("[L.name]'s bite misses [src]!"), \ @@ -547,7 +547,7 @@ GLOB.cult_narsie.souls += 1 if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE)) GLOB.cult_narsie.resolved = TRUE - sound_to_playing_players('sound/machines/alarm.ogg') + sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), CULT_VICTORY_MASS_CONVERSION), 12 SECONDS) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 27 SECONDS) if(client) @@ -658,10 +658,10 @@ var/shove_flags = target.get_shove_flags(src, weapon) if(weapon) do_attack_animation(target, used_item = weapon) - playsound(target, 'sound/effects/glassbash.ogg', 50, TRUE, -1) + playsound(target, 'sound/effects/glass/glassbash.ogg', 50, TRUE, -1) else do_attack_animation(target, ATTACK_EFFECT_DISARM) - playsound(target, 'sound/weapons/shove.ogg', 50, TRUE, -1) + playsound(target, 'sound/items/weapons/shove.ogg', 50, TRUE, -1) if (ishuman(target) && isnull(weapon)) var/mob/living/carbon/human/human_target = target human_target.w_uniform?.add_fingerprint(src) diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index 6116f0f702e5d..22a4c7e2eb2eb 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -288,21 +288,43 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( if(raw_message != untranslated_raw_message) understood = FALSE + var/speaker_is_signing = HAS_TRAIT(speaker, TRAIT_SIGN_LANG) + + // if someone is whispering we make an extra type of message that is obfuscated for people out of range // Less than or equal to 0 means normal hearing. More than 0 and less than or equal to EAVESDROP_EXTRA_RANGE means // partial hearing. More than EAVESDROP_EXTRA_RANGE means no hearing. Exception for GOOD_HEARING trait var/dist = get_dist(speaker, src) - message_range if(dist > 0 && dist <= EAVESDROP_EXTRA_RANGE && !HAS_TRAIT(src, TRAIT_GOOD_HEARING) && !isobserver(src)) // ghosts can hear all messages clearly raw_message = stars(raw_message) - if (message_range != INFINITY && dist > EAVESDROP_EXTRA_RANGE && !HAS_TRAIT(src, TRAIT_GOOD_HEARING) && !isobserver(src)) - return FALSE // Too far away and don't have good hearing, you can't hear anything + if(message_range != INFINITY && dist > EAVESDROP_EXTRA_RANGE && !HAS_TRAIT(src, TRAIT_GOOD_HEARING) && !isobserver(src)) + // Too far away and don't have good hearing, you can't hear anything + if(is_blind() || HAS_TRAIT(speaker, TRAIT_INVISIBLE_MAN)) // Can't see them speak either + return FALSE + if(!isturf(speaker.loc)) // If they're inside of something, probably can't see them speak + return FALSE + + // But we can still see them speak + if(speaker_is_signing) + deaf_message = "[span_name("[speaker]")] [speaker.get_default_say_verb()] something, but the motions are too subtle to make out from afar." + else if(can_hear()) // If we can't hear we want to continue to the default deaf message + var/mob/living/living_speaker = speaker + if(istype(living_speaker) && living_speaker.is_mouth_covered()) // Can't see them speak if their mouth is covered + return FALSE + deaf_message = "[span_name("[speaker]")] [speaker.verb_whisper] something, but you are too far away to hear [speaker.p_them()]." + + if(deaf_message) + deaf_type = MSG_VISUAL + message = deaf_message + return show_message(message, MSG_VISUAL, deaf_message, deaf_type, avoid_highlight) + // we need to send this signal before compose_message() is used since other signals need to modify // the raw_message first. After the raw_message is passed through the various signals, it's ready to be formatted // by compose_message() to be displayed in chat boxes for to_chat or runechat SEND_SIGNAL(src, COMSIG_MOVABLE_HEAR, args) - if(HAS_TRAIT(speaker, TRAIT_SIGN_LANG)) //Checks if speaker is using sign language + if(speaker_is_signing) //Checks if speaker is using sign language deaf_message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mods, TRUE) if(speaker != src) @@ -362,6 +384,9 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( if(!(listening_movable in in_view) && !HAS_TRAIT(listening_movable, TRAIT_XRAY_HEARING)) listening.Remove(listening_movable) + if(imaginary_group) + listening |= imaginary_group + if(client) //client is so that ghosts don't have to listen to mice for(var/mob/player_mob as anything in GLOB.player_list) if(QDELETED(player_mob)) //Some times nulls and deleteds stay in this list. This is a workaround to prevent ic chat breaking for everyone when they do. diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index fc488471861d3..3550b16829cdb 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1030,11 +1030,11 @@ if(!istype(apc) || QDELETED(apc) || apc.machine_stat & BROKEN) to_chat(src, span_danger("Hack aborted. The designated APC no longer exists on the power network.")) - playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, TRUE, ignore_walls = FALSE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-two.ogg', 50, TRUE, ignore_walls = FALSE) return if(apc.aidisabled) to_chat(src, span_danger("Hack aborted. [apc] is no longer responding to our systems.")) - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, TRUE, ignore_walls = FALSE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE, ignore_walls = FALSE) return malf_picker.processing_time += 10 diff --git a/code/modules/mob/living/silicon/ai/vox_sounds.dm b/code/modules/mob/living/silicon/ai/vox_sounds.dm index d69bb2e1cc3b8..79c0d31029022 100644 --- a/code/modules/mob/living/silicon/ai/vox_sounds.dm +++ b/code/modules/mob/living/silicon/ai/vox_sounds.dm @@ -8,1296 +8,1296 @@ // For vim // :%s/\(\(.*\)\.ogg\)/"\2" = 'sound\/vox_fem\/\1',/g GLOBAL_LIST_INIT(vox_sounds, list( - "," = 'sound/vox_fem/,.ogg', - "." = 'sound/vox_fem/..ogg', - "a" = 'sound/vox_fem/a.ogg', - "abduction" = 'sound/vox_fem/abduction.ogg', - "abortions" = 'sound/vox_fem/abortions.ogg', - "above" = 'sound/vox_fem/above.ogg', - "absorb" = 'sound/vox_fem/absorb.ogg', - "absorbed" = 'sound/vox_fem/absorbed.ogg', - "absorbing" = 'sound/vox_fem/absorbing.ogg', - "abstain" = 'sound/vox_fem/abstain.ogg', - "accelerating" = 'sound/vox_fem/accelerating.ogg', - "accelerator" = 'sound/vox_fem/accelerator.ogg', - "accepted" = 'sound/vox_fem/accepted.ogg', - "access" = 'sound/vox_fem/access.ogg', - "acknowledge" = 'sound/vox_fem/acknowledge.ogg', - "acknowledged" = 'sound/vox_fem/acknowledged.ogg', - "acquired" = 'sound/vox_fem/acquired.ogg', - "acquisition" = 'sound/vox_fem/acquisition.ogg', - "across" = 'sound/vox_fem/across.ogg', - "activate" = 'sound/vox_fem/activate.ogg', - "activated" = 'sound/vox_fem/activated.ogg', - "activating" = 'sound/vox_fem/activating.ogg', - "activation" = 'sound/vox_fem/activation.ogg', - "active" = 'sound/vox_fem/active.ogg', - "activity" = 'sound/vox_fem/activity.ogg', - "adios" = 'sound/vox_fem/adios.ogg', - "administration" = 'sound/vox_fem/administration.ogg', - "advanced" = 'sound/vox_fem/advanced.ogg', - "advised" = 'sound/vox_fem/advised.ogg', - "affect" = 'sound/vox_fem/affect.ogg', - "affected" = 'sound/vox_fem/affected.ogg', - "affecting" = 'sound/vox_fem/affecting.ogg', - "aft" = 'sound/vox_fem/aft.ogg', - "after" = 'sound/vox_fem/after.ogg', - "agent" = 'sound/vox_fem/agent.ogg', - "ai" = 'sound/vox_fem/ai.ogg', - "air" = 'sound/vox_fem/air.ogg', - "airlock" = 'sound/vox_fem/airlock.ogg', - "alarm" = 'sound/vox_fem/alarm.ogg', - "alarmed" = 'sound/vox_fem/alarmed.ogg', - "alarming" = 'sound/vox_fem/alarming.ogg', - "alcohol" = 'sound/vox_fem/alcohol.ogg', - "alert" = 'sound/vox_fem/alert.ogg', - "alerted" = 'sound/vox_fem/alerted.ogg', - "alerting" = 'sound/vox_fem/alerting.ogg', - "alien" = 'sound/vox_fem/alien.ogg', - "align" = 'sound/vox_fem/align.ogg', - "aligned" = 'sound/vox_fem/aligned.ogg', - "all" = 'sound/vox_fem/all.ogg', - "allow" = 'sound/vox_fem/allow.ogg', - "alongside" = 'sound/vox_fem/alongside.ogg', - "alpha" = 'sound/vox_fem/alpha.ogg', - "also" = 'sound/vox_fem/also.ogg', - "am" = 'sound/vox_fem/am.ogg', - "amigo" = 'sound/vox_fem/amigo.ogg', - "ammunition" = 'sound/vox_fem/ammunition.ogg', - "amount" = 'sound/vox_fem/amount.ogg', - "an" = 'sound/vox_fem/an.ogg', - "and" = 'sound/vox_fem/and.ogg', - "animal" = 'sound/vox_fem/animal.ogg', - "annihilate" = 'sound/vox_fem/annihilate.ogg', - "annihilated" = 'sound/vox_fem/annihilated.ogg', - "annihilating" = 'sound/vox_fem/annihilating.ogg', - "annihilation" = 'sound/vox_fem/annihilation.ogg', - "announcement" = 'sound/vox_fem/announcement.ogg', - "anomalous" = 'sound/vox_fem/anomalous.ogg', - "answer" = 'sound/vox_fem/answer.ogg', - "antenna" = 'sound/vox_fem/antenna.ogg', - "anti-noblium" = 'sound/vox_fem/anti-noblium.ogg', - "any" = 'sound/vox_fem/any.ogg', - "apc" = 'sound/vox_fem/apc.ogg', - "apprehend" = 'sound/vox_fem/apprehend.ogg', - "approach" = 'sound/vox_fem/approach.ogg', - "arc" = 'sound/vox_fem/arc.ogg', - "arcs" = 'sound/vox_fem/arcs.ogg', - "are" = 'sound/vox_fem/are.ogg', - "area" = 'sound/vox_fem/area.ogg', - "arm" = 'sound/vox_fem/arm.ogg', - "armed" = 'sound/vox_fem/armed.ogg', - "armor" = 'sound/vox_fem/armor.ogg', - "armory" = 'sound/vox_fem/armory.ogg', - "around" = 'sound/vox_fem/around.ogg', - "array" = 'sound/vox_fem/array.ogg', - "arrest" = 'sound/vox_fem/arrest.ogg', - "artillery" = 'sound/vox_fem/artillery.ogg', - "asimov" = 'sound/vox_fem/asimov.ogg', - "ask" = 'sound/vox_fem/ask.ogg', - "ass" = 'sound/vox_fem/ass.ogg', - "asshole" = 'sound/vox_fem/asshole.ogg', - "assholes" = 'sound/vox_fem/assholes.ogg', - "assistance" = 'sound/vox_fem/assistance.ogg', - "assistant" = 'sound/vox_fem/assistant.ogg', - "at" = 'sound/vox_fem/at.ogg', - "ate" = 'sound/vox_fem/ate.ogg', - "atmosphere" = 'sound/vox_fem/atmosphere.ogg', - "atmospheric" = 'sound/vox_fem/atmospheric.ogg', - "atmospherics" = 'sound/vox_fem/atmospherics.ogg', - "atomic" = 'sound/vox_fem/atomic.ogg', - "attention" = 'sound/vox_fem/attention.ogg', - "authentication" = 'sound/vox_fem/authentication.ogg', - "authorize" = 'sound/vox_fem/authorize.ogg', - "authorized" = 'sound/vox_fem/authorized.ogg', - "automatic" = 'sound/vox_fem/automatic.ogg', - "away" = 'sound/vox_fem/away.ogg', - "awful" = 'sound/vox_fem/awful.ogg', - "b" = 'sound/vox_fem/b.ogg', - "back" = 'sound/vox_fem/back.ogg', - "backman" = 'sound/vox_fem/backman.ogg', - "bad" = 'sound/vox_fem/bad.ogg', - "bag" = 'sound/vox_fem/bag.ogg', - "bailey" = 'sound/vox_fem/bailey.ogg', - "bar" = 'sound/vox_fem/bar.ogg', - "barracks" = 'sound/vox_fem/barracks.ogg', - "bartender" = 'sound/vox_fem/bartender.ogg', - "base" = 'sound/vox_fem/base.ogg', - "bay" = 'sound/vox_fem/bay.ogg', - "be" = 'sound/vox_fem/be.ogg', - "beaker" = 'sound/vox_fem/beaker.ogg', - "beam" = 'sound/vox_fem/beam.ogg', - "been" = 'sound/vox_fem/been.ogg', - "beep" = 'sound/vox_fem/beep.ogg', - "before" = 'sound/vox_fem/before.ogg', - "began" = 'sound/vox_fem/began.ogg', - "begin" = 'sound/vox_fem/begin.ogg', - "begins" = 'sound/vox_fem/begins.ogg', - "below" = 'sound/vox_fem/below.ogg', - "beside" = 'sound/vox_fem/beside.ogg', - "beware" = 'sound/vox_fem/beware.ogg', - "beyond" = 'sound/vox_fem/beyond.ogg', - "big" = 'sound/vox_fem/big.ogg', - "billion" = 'sound/vox_fem/billion.ogg', - "biohazard" = 'sound/vox_fem/biohazard.ogg', - "biological" = 'sound/vox_fem/biological.ogg', - "birdwell" = 'sound/vox_fem/birdwell.ogg', - "bitch" = 'sound/vox_fem/bitch.ogg', - "bitches" = 'sound/vox_fem/bitches.ogg', - "bitcoin" = 'sound/vox_fem/bitcoin.ogg', - "bitrun" = 'sound/vox_fem/bitrun.ogg', - "bitrunner" = 'sound/vox_fem/bitrunner.ogg', - "bitrunning" = 'sound/vox_fem/bitrunning.ogg', - "black" = 'sound/vox_fem/black.ogg', - "blast" = 'sound/vox_fem/blast.ogg', - "bleed" = 'sound/vox_fem/bleed.ogg', - "blob" = 'sound/vox_fem/blob.ogg', - "blocked" = 'sound/vox_fem/blocked.ogg', - "blood" = 'sound/vox_fem/blood.ogg', - "bloop" = 'sound/vox_fem/bloop.ogg', - "blue" = 'sound/vox_fem/blue.ogg', - "bluespace" = 'sound/vox_fem/bluespace.ogg', - "bomb" = 'sound/vox_fem/bomb.ogg', - "bone" = 'sound/vox_fem/bone.ogg', - "botanist" = 'sound/vox_fem/botanist.ogg', - "botany" = 'sound/vox_fem/botany.ogg', - "bottle" = 'sound/vox_fem/bottle.ogg', - "bottom" = 'sound/vox_fem/bottom.ogg', - "bravo" = 'sound/vox_fem/bravo.ogg', - "breach" = 'sound/vox_fem/breach.ogg', - "breached" = 'sound/vox_fem/breached.ogg', - "break" = 'sound/vox_fem/break.ogg', - "bridge" = 'sound/vox_fem/bridge.ogg', - "brig" = 'sound/vox_fem/brig.ogg', - "broke" = 'sound/vox_fem/broke.ogg', - "broken" = 'sound/vox_fem/broken.ogg', - "bump" = 'sound/vox_fem/bump.ogg', - "bumped" = 'sound/vox_fem/bumped.ogg', - "bumps" = 'sound/vox_fem/bumps.ogg', - "bust" = 'sound/vox_fem/bust.ogg', - "but" = 'sound/vox_fem/but.ogg', - "button" = 'sound/vox_fem/button.ogg', - "bypass" = 'sound/vox_fem/bypass.ogg', - "c" = 'sound/vox_fem/c.ogg', - "cable" = 'sound/vox_fem/cable.ogg', - "call" = 'sound/vox_fem/call.ogg', - "called" = 'sound/vox_fem/called.ogg', - "can" = 'sound/vox_fem/can.ogg', - "canal" = 'sound/vox_fem/canal.ogg', - "canister" = 'sound/vox_fem/canister.ogg', - "cap" = 'sound/vox_fem/cap.ogg', - "captain" = 'sound/vox_fem/captain.ogg', - "capture" = 'sound/vox_fem/capture.ogg', - "carbon" = 'sound/vox_fem/carbon.ogg', - "cargo" = 'sound/vox_fem/cargo.ogg', - "cascade" = 'sound/vox_fem/cascade.ogg', - "cat" = 'sound/vox_fem/cat.ogg', - "cause" = 'sound/vox_fem/cause.ogg', - "caused" = 'sound/vox_fem/caused.ogg', - "causes" = 'sound/vox_fem/causes.ogg', - "causing" = 'sound/vox_fem/causing.ogg', - "ce" = 'sound/vox_fem/ce.ogg', - "cease" = 'sound/vox_fem/cease.ogg', - "ceiling" = 'sound/vox_fem/ceiling.ogg', - "celsius" = 'sound/vox_fem/celsius.ogg', - "centcom" = 'sound/vox_fem/centcom.ogg', - "center" = 'sound/vox_fem/center.ogg', - "centi" = 'sound/vox_fem/centi.ogg', - "central" = 'sound/vox_fem/central.ogg', - "challenge" = 'sound/vox_fem/challenge.ogg', - "chamber" = 'sound/vox_fem/chamber.ogg', - "change" = 'sound/vox_fem/change.ogg', - "changed" = 'sound/vox_fem/changed.ogg', - "changeling" = 'sound/vox_fem/changeling.ogg', - "chapel" = 'sound/vox_fem/chapel.ogg', - "chaplain" = 'sound/vox_fem/chaplain.ogg', - "charge" = 'sound/vox_fem/charge.ogg', - "charlie" = 'sound/vox_fem/charlie.ogg', - "check" = 'sound/vox_fem/check.ogg', - "checkpoint" = 'sound/vox_fem/checkpoint.ogg', - "chemical" = 'sound/vox_fem/chemical.ogg', - "chemist" = 'sound/vox_fem/chemist.ogg', - "chief" = 'sound/vox_fem/chief.ogg', - "christ" = 'sound/vox_fem/christ.ogg', - "christmas" = 'sound/vox_fem/christmas.ogg', - "chuckle" = 'sound/vox_fem/chuckle.ogg', - "circuit" = 'sound/vox_fem/circuit.ogg', - "cleanup" = 'sound/vox_fem/cleanup.ogg', - "clear" = 'sound/vox_fem/clear.ogg', - "clearance" = 'sound/vox_fem/clearance.ogg', - "clockwork" = 'sound/vox_fem/clockwork.ogg', - "clog" = 'sound/vox_fem/clog.ogg', - "close" = 'sound/vox_fem/close.ogg', - "closed" = 'sound/vox_fem/closed.ogg', - "closing" = 'sound/vox_fem/closing.ogg', - "clothing" = 'sound/vox_fem/clothing.ogg', - "clown" = 'sound/vox_fem/clown.ogg', - "clowning" = 'sound/vox_fem/clowning.ogg', - "cmo" = 'sound/vox_fem/cmo.ogg', - "code" = 'sound/vox_fem/code.ogg', - "coded" = 'sound/vox_fem/coded.ogg', - "coil" = 'sound/vox_fem/coil.ogg', - "coils" = 'sound/vox_fem/coils.ogg', - "cold" = 'sound/vox_fem/cold.ogg', - "collider" = 'sound/vox_fem/collider.ogg', - "combat" = 'sound/vox_fem/combat.ogg', - "combatant" = 'sound/vox_fem/combatant.ogg', - "come" = 'sound/vox_fem/come.ogg', - "command" = 'sound/vox_fem/command.ogg', - "communication" = 'sound/vox_fem/communication.ogg', - "complete" = 'sound/vox_fem/complete.ogg', - "completed" = 'sound/vox_fem/completed.ogg', - "completion" = 'sound/vox_fem/completion.ogg', - "complex" = 'sound/vox_fem/complex.ogg', - "comply" = 'sound/vox_fem/comply.ogg', - "computer" = 'sound/vox_fem/computer.ogg', - "condition" = 'sound/vox_fem/condition.ogg', - "conditions" = 'sound/vox_fem/conditions.ogg', - "condom" = 'sound/vox_fem/condom.ogg', - "configure" = 'sound/vox_fem/configure.ogg', - "configured" = 'sound/vox_fem/configured.ogg', - "configuring" = 'sound/vox_fem/configuring.ogg', - "confirmed" = 'sound/vox_fem/confirmed.ogg', - "connor" = 'sound/vox_fem/connor.ogg', - "console" = 'sound/vox_fem/console.ogg', - "console2" = 'sound/vox_fem/console2.ogg', - "construct" = 'sound/vox_fem/construct.ogg', - "container" = 'sound/vox_fem/container.ogg', - "containment" = 'sound/vox_fem/containment.ogg', - "contamination" = 'sound/vox_fem/contamination.ogg', - "contraband" = 'sound/vox_fem/contraband.ogg', - "control" = 'sound/vox_fem/control.ogg', - "cook" = 'sound/vox_fem/cook.ogg', - "cool" = 'sound/vox_fem/cool.ogg', - "coolant" = 'sound/vox_fem/coolant.ogg', - "cooling" = 'sound/vox_fem/cooling.ogg', - "coomer" = 'sound/vox_fem/coomer.ogg', - "core" = 'sound/vox_fem/core.ogg', - "corgi" = 'sound/vox_fem/corgi.ogg', - "corporation" = 'sound/vox_fem/corporation.ogg', - "correct" = 'sound/vox_fem/correct.ogg', - "corridor" = 'sound/vox_fem/corridor.ogg', - "corridors" = 'sound/vox_fem/corridors.ogg', - "could" = 'sound/vox_fem/could.ogg', - "couldnt" = 'sound/vox_fem/couldnt.ogg', - "countdown" = 'sound/vox_fem/countdown.ogg', - "coward" = 'sound/vox_fem/coward.ogg', - "cowards" = 'sound/vox_fem/cowards.ogg', - "crate" = 'sound/vox_fem/crate.ogg', - "create" = 'sound/vox_fem/create.ogg', - "created" = 'sound/vox_fem/created.ogg', - "creating" = 'sound/vox_fem/creating.ogg', - "creature" = 'sound/vox_fem/creature.ogg', - "crew" = 'sound/vox_fem/crew.ogg', - "critical" = 'sound/vox_fem/critical.ogg', - "cross" = 'sound/vox_fem/cross.ogg', - "cryogenic" = 'sound/vox_fem/cryogenic.ogg', - "crystal" = 'sound/vox_fem/crystal.ogg', - "cult" = 'sound/vox_fem/cult.ogg', - "cultist" = 'sound/vox_fem/cultist.ogg', - "cunt" = 'sound/vox_fem/cunt.ogg', - "curator" = 'sound/vox_fem/curator.ogg', - "cyborg" = 'sound/vox_fem/cyborg.ogg', - "cyborgs" = 'sound/vox_fem/cyborgs.ogg', - "d" = 'sound/vox_fem/d.ogg', - "damage" = 'sound/vox_fem/damage.ogg', - "damaged" = 'sound/vox_fem/damaged.ogg', - "danger" = 'sound/vox_fem/danger.ogg', - "dangerous" = 'sound/vox_fem/dangerous.ogg', - "day" = 'sound/vox_fem/day.ogg', - "deactivated" = 'sound/vox_fem/deactivated.ogg', - "dead" = 'sound/vox_fem/dead.ogg', - "death" = 'sound/vox_fem/death.ogg', - "decompression" = 'sound/vox_fem/decompression.ogg', - "decontamination" = 'sound/vox_fem/decontamination.ogg', - "deeoo" = 'sound/vox_fem/deeoo.ogg', - "defense" = 'sound/vox_fem/defense.ogg', - "degrees" = 'sound/vox_fem/degrees.ogg', - "delaminating" = 'sound/vox_fem/delaminating.ogg', - "delamination" = 'sound/vox_fem/delamination.ogg', - "delta" = 'sound/vox_fem/delta.ogg', - "demon" = 'sound/vox_fem/demon.ogg', - "denied" = 'sound/vox_fem/denied.ogg', - "deny" = 'sound/vox_fem/deny.ogg', - "departures" = 'sound/vox_fem/departures.ogg', - "deploy" = 'sound/vox_fem/deploy.ogg', - "deployed" = 'sound/vox_fem/deployed.ogg', - "desire" = 'sound/vox_fem/desire.ogg', - "desist" = 'sound/vox_fem/desist.ogg', - "destroy" = 'sound/vox_fem/destroy.ogg', - "destroyed" = 'sound/vox_fem/destroyed.ogg', - "destruction" = 'sound/vox_fem/destruction.ogg', - "detain" = 'sound/vox_fem/detain.ogg', - "detect" = 'sound/vox_fem/detect.ogg', - "detected" = 'sound/vox_fem/detected.ogg', - "detecting" = 'sound/vox_fem/detecting.ogg', - "detective" = 'sound/vox_fem/detective.ogg', - "detonation" = 'sound/vox_fem/detonation.ogg', - "device" = 'sound/vox_fem/device.ogg', - "devil" = 'sound/vox_fem/devil.ogg', - "did" = 'sound/vox_fem/did.ogg', - "die" = 'sound/vox_fem/die.ogg', - "died" = 'sound/vox_fem/died.ogg', - "different" = 'sound/vox_fem/different.ogg', - "dimensional" = 'sound/vox_fem/dimensional.ogg', - "dioxide" = 'sound/vox_fem/dioxide.ogg', - "direct" = 'sound/vox_fem/direct.ogg', - "director" = 'sound/vox_fem/director.ogg', - "dirt" = 'sound/vox_fem/dirt.ogg', - "disabled" = 'sound/vox_fem/disabled.ogg', - "disease" = 'sound/vox_fem/disease.ogg', - "disengaged" = 'sound/vox_fem/disengaged.ogg', - "dish" = 'sound/vox_fem/dish.ogg', - "disk" = 'sound/vox_fem/disk.ogg', - "disposal" = 'sound/vox_fem/disposal.ogg', - "distance" = 'sound/vox_fem/distance.ogg', - "distortion" = 'sound/vox_fem/distortion.ogg', - "do" = 'sound/vox_fem/do.ogg', - "doctor" = 'sound/vox_fem/doctor.ogg', - "dog" = 'sound/vox_fem/dog.ogg', - "dont" = 'sound/vox_fem/dont.ogg', - "doomsday" = 'sound/vox_fem/doomsday.ogg', - "doop" = 'sound/vox_fem/doop.ogg', - "door" = 'sound/vox_fem/door.ogg', - "dormitory" = 'sound/vox_fem/dormitory.ogg', - "dot" = 'sound/vox_fem/dot.ogg', - "double" = 'sound/vox_fem/double.ogg', - "down" = 'sound/vox_fem/down.ogg', - "dress" = 'sound/vox_fem/dress.ogg', - "dressed" = 'sound/vox_fem/dressed.ogg', - "dressing" = 'sound/vox_fem/dressing.ogg', - "drone" = 'sound/vox_fem/drone.ogg', - "dual" = 'sound/vox_fem/dual.ogg', - "duct" = 'sound/vox_fem/duct.ogg', - "e" = 'sound/vox_fem/e.ogg', - "easily" = 'sound/vox_fem/easily.ogg', - "east" = 'sound/vox_fem/east.ogg', - "eat" = 'sound/vox_fem/eat.ogg', - "eaten" = 'sound/vox_fem/eaten.ogg', - "echo" = 'sound/vox_fem/echo.ogg', - "ed" = 'sound/vox_fem/ed.ogg', - "education" = 'sound/vox_fem/education.ogg', - "effect" = 'sound/vox_fem/effect.ogg', - "effects" = 'sound/vox_fem/effects.ogg', - "egress" = 'sound/vox_fem/egress.ogg', - "eight" = 'sound/vox_fem/eight.ogg', - "eighteen" = 'sound/vox_fem/eighteen.ogg', - "eighty" = 'sound/vox_fem/eighty.ogg', - "electric" = 'sound/vox_fem/electric.ogg', - "electrical" = 'sound/vox_fem/electrical.ogg', - "electromagnetic" = 'sound/vox_fem/electromagnetic.ogg', - "elevator" = 'sound/vox_fem/elevator.ogg', - "eleven" = 'sound/vox_fem/eleven.ogg', - "eliminate" = 'sound/vox_fem/eliminate.ogg', - "emergency" = 'sound/vox_fem/emergency.ogg', - "emitted" = 'sound/vox_fem/emitted.ogg', - "emitter" = 'sound/vox_fem/emitter.ogg', - "emitting" = 'sound/vox_fem/emitting.ogg', - "enabled" = 'sound/vox_fem/enabled.ogg', - "end" = 'sound/vox_fem/end.ogg', - "ends" = 'sound/vox_fem/ends.ogg', - "energy" = 'sound/vox_fem/energy.ogg', - "engage" = 'sound/vox_fem/engage.ogg', - "engaged" = 'sound/vox_fem/engaged.ogg', - "engine" = 'sound/vox_fem/engine.ogg', - "engineer" = 'sound/vox_fem/engineer.ogg', - "engineering" = 'sound/vox_fem/engineering.ogg', - "enormous" = 'sound/vox_fem/enormous.ogg', - "enough" = 'sound/vox_fem/enough.ogg', - "enter" = 'sound/vox_fem/enter.ogg', - "entity" = 'sound/vox_fem/entity.ogg', - "entry" = 'sound/vox_fem/entry.ogg', - "environment" = 'sound/vox_fem/environment.ogg', - "epic" = 'sound/vox_fem/epic.ogg', - "equipment" = 'sound/vox_fem/equipment.ogg', - "error" = 'sound/vox_fem/error.ogg', - "escape" = 'sound/vox_fem/escape.ogg', - "ethereal" = 'sound/vox_fem/ethereal.ogg', - "eva" = 'sound/vox_fem/eva.ogg', - "evacuate" = 'sound/vox_fem/evacuate.ogg', - "even" = 'sound/vox_fem/even.ogg', - "ever" = 'sound/vox_fem/ever.ogg', - "every" = 'sound/vox_fem/every.ogg', - "everybody" = 'sound/vox_fem/everybody.ogg', - "everyone" = 'sound/vox_fem/everyone.ogg', - "exchange" = 'sound/vox_fem/exchange.ogg', - "execute" = 'sound/vox_fem/execute.ogg', - "exit" = 'sound/vox_fem/exit.ogg', - "expect" = 'sound/vox_fem/expect.ogg', - "experiment" = 'sound/vox_fem/experiment.ogg', - "experimental" = 'sound/vox_fem/experimental.ogg', - "explode" = 'sound/vox_fem/explode.ogg', - "exploded" = 'sound/vox_fem/exploded.ogg', - "exploding" = 'sound/vox_fem/exploding.ogg', - "explosion" = 'sound/vox_fem/explosion.ogg', - "explosive" = 'sound/vox_fem/explosive.ogg', - "exposure" = 'sound/vox_fem/exposure.ogg', - "exterminate" = 'sound/vox_fem/exterminate.ogg', - "external" = 'sound/vox_fem/external.ogg', - "extinguish" = 'sound/vox_fem/extinguish.ogg', - "extinguisher" = 'sound/vox_fem/extinguisher.ogg', - "extra" = 'sound/vox_fem/extra.ogg', - "extreme" = 'sound/vox_fem/extreme.ogg', - "f" = 'sound/vox_fem/f.ogg', - "facility" = 'sound/vox_fem/facility.ogg', - "factory" = 'sound/vox_fem/factory.ogg', - "fahrenheit" = 'sound/vox_fem/fahrenheit.ogg', - "failed" = 'sound/vox_fem/failed.ogg', - "failure" = 'sound/vox_fem/failure.ogg', - "false" = 'sound/vox_fem/false.ogg', - "farthest" = 'sound/vox_fem/farthest.ogg', - "fast" = 'sound/vox_fem/fast.ogg', - "fauna" = 'sound/vox_fem/fauna.ogg', - "feature" = 'sound/vox_fem/feature.ogg', - "featured" = 'sound/vox_fem/featured.ogg', - "features" = 'sound/vox_fem/features.ogg', - "featuring" = 'sound/vox_fem/featuring.ogg', - "feet" = 'sound/vox_fem/feet.ogg', - "felinid" = 'sound/vox_fem/felinid.ogg', - "few" = 'sound/vox_fem/few.ogg', - "field" = 'sound/vox_fem/field.ogg', - "fifteen" = 'sound/vox_fem/fifteen.ogg', - "fifth" = 'sound/vox_fem/fifth.ogg', - "fifty" = 'sound/vox_fem/fifty.ogg', - "filter" = 'sound/vox_fem/filter.ogg', - "filters" = 'sound/vox_fem/filters.ogg', - "final" = 'sound/vox_fem/final.ogg', - "fine" = 'sound/vox_fem/fine.ogg', - "fire" = 'sound/vox_fem/fire.ogg', - "first" = 'sound/vox_fem/first.ogg', - "five" = 'sound/vox_fem/five.ogg', - "fix" = 'sound/vox_fem/fix.ogg', - "flooding" = 'sound/vox_fem/flooding.ogg', - "floor" = 'sound/vox_fem/floor.ogg', - "flyman" = 'sound/vox_fem/flyman.ogg', - "fool" = 'sound/vox_fem/fool.ogg', - "foolish" = 'sound/vox_fem/foolish.ogg', - "for" = 'sound/vox_fem/for.ogg', - "forbidden" = 'sound/vox_fem/forbidden.ogg', - "force" = 'sound/vox_fem/force.ogg', - "fore" = 'sound/vox_fem/fore.ogg', - "form" = 'sound/vox_fem/form.ogg', - "formed" = 'sound/vox_fem/formed.ogg', - "forms" = 'sound/vox_fem/forms.ogg', - "forty" = 'sound/vox_fem/forty.ogg', - "found" = 'sound/vox_fem/found.ogg', - "four" = 'sound/vox_fem/four.ogg', - "fourteen" = 'sound/vox_fem/fourteen.ogg', - "fourth" = 'sound/vox_fem/fourth.ogg', - "fourty" = 'sound/vox_fem/fourty.ogg', - "foxtrot" = 'sound/vox_fem/foxtrot.ogg', - "free" = 'sound/vox_fem/free.ogg', - "freeman" = 'sound/vox_fem/freeman.ogg', - "freeze" = 'sound/vox_fem/freeze.ogg', - "freezer" = 'sound/vox_fem/freezer.ogg', - "freezing" = 'sound/vox_fem/freezing.ogg', - "freon" = 'sound/vox_fem/freon.ogg', - "from" = 'sound/vox_fem/from.ogg', - "front" = 'sound/vox_fem/front.ogg', - "froze" = 'sound/vox_fem/froze.ogg', - "frozen" = 'sound/vox_fem/frozen.ogg', - "fuck" = 'sound/vox_fem/fuck.ogg', - "fucking" = 'sound/vox_fem/fucking.ogg', - "fucks" = 'sound/vox_fem/fucks.ogg', - "fuel" = 'sound/vox_fem/fuel.ogg', - "g" = 'sound/vox_fem/g.ogg', - "gas" = 'sound/vox_fem/gas.ogg', - "gases" = 'sound/vox_fem/gases.ogg', - "gave" = 'sound/vox_fem/gave.ogg', - "gear" = 'sound/vox_fem/gear.ogg', - "geared" = 'sound/vox_fem/geared.ogg', - "gearing" = 'sound/vox_fem/gearing.ogg', - "generate" = 'sound/vox_fem/generate.ogg', - "generated" = 'sound/vox_fem/generated.ogg', - "generating" = 'sound/vox_fem/generating.ogg', - "generator" = 'sound/vox_fem/generator.ogg', - "geneticist" = 'sound/vox_fem/geneticist.ogg', - "get" = 'sound/vox_fem/get.ogg', - "give" = 'sound/vox_fem/give.ogg', - "given" = 'sound/vox_fem/given.ogg', - "glory" = 'sound/vox_fem/glory.ogg', - "go" = 'sound/vox_fem/go.ogg', - "god" = 'sound/vox_fem/god.ogg', - "going" = 'sound/vox_fem/going.ogg', - "golem" = 'sound/vox_fem/golem.ogg', - "good" = 'sound/vox_fem/good.ogg', - "goodbye" = 'sound/vox_fem/goodbye.ogg', - "gordon" = 'sound/vox_fem/gordon.ogg', - "got" = 'sound/vox_fem/got.ogg', - "government" = 'sound/vox_fem/government.ogg', - "granted" = 'sound/vox_fem/granted.ogg', - "gravity" = 'sound/vox_fem/gravity.ogg', - "gray" = 'sound/vox_fem/gray.ogg', - "great" = 'sound/vox_fem/great.ogg', - "green" = 'sound/vox_fem/green.ogg', - "grenade" = 'sound/vox_fem/grenade.ogg', - "guard" = 'sound/vox_fem/guard.ogg', - "gulf" = 'sound/vox_fem/gulf.ogg', - "gun" = 'sound/vox_fem/gun.ogg', - "guthrie" = 'sound/vox_fem/guthrie.ogg', - "h" = 'sound/vox_fem/h.ogg', - "hacker" = 'sound/vox_fem/hacker.ogg', - "hackers" = 'sound/vox_fem/hackers.ogg', - "had" = 'sound/vox_fem/had.ogg', - "hall" = 'sound/vox_fem/hall.ogg', - "hallway" = 'sound/vox_fem/hallway.ogg', - "halon" = 'sound/vox_fem/halon.ogg', - "handling" = 'sound/vox_fem/handling.ogg', - "hangar" = 'sound/vox_fem/hangar.ogg', - "hard" = 'sound/vox_fem/hard.ogg', - "hardly" = 'sound/vox_fem/hardly.ogg', - "harm" = 'sound/vox_fem/harm.ogg', - "harmful" = 'sound/vox_fem/harmful.ogg', - "harness" = 'sound/vox_fem/harness.ogg', - "harnessed" = 'sound/vox_fem/harnessed.ogg', - "harnessing" = 'sound/vox_fem/harnessing.ogg', - "has" = 'sound/vox_fem/has.ogg', - "have" = 'sound/vox_fem/have.ogg', - "hazard" = 'sound/vox_fem/hazard.ogg', - "he" = 'sound/vox_fem/he.ogg', - "head" = 'sound/vox_fem/head.ogg', - "heal" = 'sound/vox_fem/heal.ogg', - "healed" = 'sound/vox_fem/healed.ogg', - "healing" = 'sound/vox_fem/healing.ogg', - "healium" = 'sound/vox_fem/healium.ogg', - "health" = 'sound/vox_fem/health.ogg', - "heat" = 'sound/vox_fem/heat.ogg', - "heated" = 'sound/vox_fem/heated.ogg', - "heating" = 'sound/vox_fem/heating.ogg', - "helicopter" = 'sound/vox_fem/helicopter.ogg', - "helium" = 'sound/vox_fem/helium.ogg', - "hello" = 'sound/vox_fem/hello.ogg', - "help" = 'sound/vox_fem/help.ogg', - "her" = 'sound/vox_fem/her.ogg', - "here" = 'sound/vox_fem/here.ogg', - "heretic" = 'sound/vox_fem/heretic.ogg', - "hide" = 'sound/vox_fem/hide.ogg', - "high" = 'sound/vox_fem/high.ogg', - "highest" = 'sound/vox_fem/highest.ogg', - "him" = 'sound/vox_fem/him.ogg', - "hit" = 'sound/vox_fem/hit.ogg', - "hole" = 'sound/vox_fem/hole.ogg', - "honk" = 'sound/vox_fem/honk.ogg', - "hop" = 'sound/vox_fem/hop.ogg', - "hos" = 'sound/vox_fem/hos.ogg', - "hostile" = 'sound/vox_fem/hostile.ogg', - "hot" = 'sound/vox_fem/hot.ogg', - "hotel" = 'sound/vox_fem/hotel.ogg', - "hour" = 'sound/vox_fem/hour.ogg', - "hours" = 'sound/vox_fem/hours.ogg', - "how" = 'sound/vox_fem/how.ogg', - "human" = 'sound/vox_fem/human.ogg', - "humanoid" = 'sound/vox_fem/humanoid.ogg', - "humans" = 'sound/vox_fem/humans.ogg', - "hundred" = 'sound/vox_fem/hundred.ogg', - "hunger" = 'sound/vox_fem/hunger.ogg', - "hurt" = 'sound/vox_fem/hurt.ogg', - "hydro" = 'sound/vox_fem/hydro.ogg', - "hydrogen" = 'sound/vox_fem/hydrogen.ogg', - "hydroponics" = 'sound/vox_fem/hydroponics.ogg', - "hyper-noblium" = 'sound/vox_fem/hyper-noblium.ogg', - "i" = 'sound/vox_fem/i.ogg', - "ian" = 'sound/vox_fem/ian.ogg', - "idiot" = 'sound/vox_fem/idiot.ogg', - "if" = 'sound/vox_fem/if.ogg', - "if2" = 'sound/vox_fem/if2.ogg', - "illegal" = 'sound/vox_fem/illegal.ogg', - "immediate" = 'sound/vox_fem/immediate.ogg', - "immediately" = 'sound/vox_fem/immediately.ogg', - "immortal" = 'sound/vox_fem/immortal.ogg', - "impossible" = 'sound/vox_fem/impossible.ogg', - "in" = 'sound/vox_fem/in.ogg', - "inches" = 'sound/vox_fem/inches.ogg', - "india" = 'sound/vox_fem/india.ogg', - "inert" = 'sound/vox_fem/inert.ogg', - "ing" = 'sound/vox_fem/ing.ogg', - "inoperative" = 'sound/vox_fem/inoperative.ogg', - "inside" = 'sound/vox_fem/inside.ogg', - "inspection" = 'sound/vox_fem/inspection.ogg', - "inspector" = 'sound/vox_fem/inspector.ogg', - "interchange" = 'sound/vox_fem/interchange.ogg', - "internal" = 'sound/vox_fem/internal.ogg', - "internals" = 'sound/vox_fem/internals.ogg', - "intruder" = 'sound/vox_fem/intruder.ogg', - "invalid" = 'sound/vox_fem/invalid.ogg', - "invalidate" = 'sound/vox_fem/invalidate.ogg', - "invasion" = 'sound/vox_fem/invasion.ogg', - "irradiate" = 'sound/vox_fem/irradiate.ogg', - "is" = 'sound/vox_fem/is.ogg', - "it" = 'sound/vox_fem/it.ogg', - "its" = 'sound/vox_fem/its.ogg', - "j" = 'sound/vox_fem/j.ogg', - "janitor" = 'sound/vox_fem/janitor.ogg', - "jesus" = 'sound/vox_fem/jesus.ogg', - "job" = 'sound/vox_fem/job.ogg', - "jobs" = 'sound/vox_fem/jobs.ogg', - "johnson" = 'sound/vox_fem/johnson.ogg', - "jolly" = 'sound/vox_fem/jolly.ogg', - "juliet" = 'sound/vox_fem/juliet.ogg', - "k" = 'sound/vox_fem/k.ogg', - "kelvin" = 'sound/vox_fem/kelvin.ogg', - "key" = 'sound/vox_fem/key.ogg', - "kidnapped" = 'sound/vox_fem/kidnapped.ogg', - "kidnapping" = 'sound/vox_fem/kidnapping.ogg', - "kill" = 'sound/vox_fem/kill.ogg', - "killed" = 'sound/vox_fem/killed.ogg', - "killer" = 'sound/vox_fem/killer.ogg', - "kilo" = 'sound/vox_fem/kilo.ogg', - "kit" = 'sound/vox_fem/kit.ogg', - "kitchen" = 'sound/vox_fem/kitchen.ogg', - "l" = 'sound/vox_fem/l.ogg', - "lab" = 'sound/vox_fem/lab.ogg', - "lambda" = 'sound/vox_fem/lambda.ogg', - "large" = 'sound/vox_fem/large.ogg', - "laser" = 'sound/vox_fem/laser.ogg', - "last" = 'sound/vox_fem/last.ogg', - "launch" = 'sound/vox_fem/launch.ogg', - "lavaland" = 'sound/vox_fem/lavaland.ogg', - "law" = 'sound/vox_fem/law.ogg', - "laws" = 'sound/vox_fem/laws.ogg', - "lawyer" = 'sound/vox_fem/lawyer.ogg', - "leak" = 'sound/vox_fem/leak.ogg', - "leave" = 'sound/vox_fem/leave.ogg', - "left" = 'sound/vox_fem/left.ogg', - "legal" = 'sound/vox_fem/legal.ogg', - "level" = 'sound/vox_fem/level.ogg', - "lever" = 'sound/vox_fem/lever.ogg', - "library" = 'sound/vox_fem/library.ogg', - "lie" = 'sound/vox_fem/lie.ogg', - "lieutenant" = 'sound/vox_fem/lieutenant.ogg', - "life" = 'sound/vox_fem/life.ogg', - "lifeform" = 'sound/vox_fem/lifeform.ogg', - "light" = 'sound/vox_fem/light.ogg', - "lightbulb" = 'sound/vox_fem/lightbulb.ogg', - "lima" = 'sound/vox_fem/lima.ogg', - "limit" = 'sound/vox_fem/limit.ogg', - "limited" = 'sound/vox_fem/limited.ogg', - "liquid" = 'sound/vox_fem/liquid.ogg', - "list" = 'sound/vox_fem/list.ogg', - "live" = 'sound/vox_fem/live.ogg', - "live2" = 'sound/vox_fem/live2.ogg', - "lizard" = 'sound/vox_fem/lizard.ogg', - "lizardperson" = 'sound/vox_fem/lizardperson.ogg', - "loading" = 'sound/vox_fem/loading.ogg', - "locate" = 'sound/vox_fem/locate.ogg', - "located" = 'sound/vox_fem/located.ogg', - "location" = 'sound/vox_fem/location.ogg', - "lock" = 'sound/vox_fem/lock.ogg', - "locked" = 'sound/vox_fem/locked.ogg', - "locker" = 'sound/vox_fem/locker.ogg', - "lockout" = 'sound/vox_fem/lockout.ogg', - "long" = 'sound/vox_fem/long.ogg', - "look" = 'sound/vox_fem/look.ogg', - "loop" = 'sound/vox_fem/loop.ogg', - "loose" = 'sound/vox_fem/loose.ogg', - "lot" = 'sound/vox_fem/lot.ogg', - "lower" = 'sound/vox_fem/lower.ogg', - "lowest" = 'sound/vox_fem/lowest.ogg', - "lusty" = 'sound/vox_fem/lusty.ogg', - "m" = 'sound/vox_fem/m.ogg', - "machine" = 'sound/vox_fem/machine.ogg', - "made" = 'sound/vox_fem/made.ogg', - "magic" = 'sound/vox_fem/magic.ogg', - "magnetic" = 'sound/vox_fem/magnetic.ogg', - "main" = 'sound/vox_fem/main.ogg', - "maintainer" = 'sound/vox_fem/maintainer.ogg', - "maintenance" = 'sound/vox_fem/maintenance.ogg', - "major" = 'sound/vox_fem/major.ogg', - "making" = 'sound/vox_fem/making.ogg', - "malfunction" = 'sound/vox_fem/malfunction.ogg', - "man" = 'sound/vox_fem/man.ogg', - "many" = 'sound/vox_fem/many.ogg', - "mass" = 'sound/vox_fem/mass.ogg', - "materials" = 'sound/vox_fem/materials.ogg', - "maximum" = 'sound/vox_fem/maximum.ogg', - "may" = 'sound/vox_fem/may.ogg', - "me" = 'sound/vox_fem/me.ogg', - "mean" = 'sound/vox_fem/mean.ogg', - "means" = 'sound/vox_fem/means.ogg', - "meat" = 'sound/vox_fem/meat.ogg', - "medbay" = 'sound/vox_fem/medbay.ogg', - "medical" = 'sound/vox_fem/medical.ogg', - "medium" = 'sound/vox_fem/medium.ogg', - "megafauna" = 'sound/vox_fem/megafauna.ogg', - "men" = 'sound/vox_fem/men.ogg', - "mercy" = 'sound/vox_fem/mercy.ogg', - "mesa" = 'sound/vox_fem/mesa.ogg', - "meson" = 'sound/vox_fem/meson.ogg', - "message" = 'sound/vox_fem/message.ogg', - "meter" = 'sound/vox_fem/meter.ogg', - "method" = 'sound/vox_fem/method.ogg', - "miasma" = 'sound/vox_fem/miasma.ogg', - "micro" = 'sound/vox_fem/micro.ogg', - "middle" = 'sound/vox_fem/middle.ogg', - "mike" = 'sound/vox_fem/mike.ogg', - "miles" = 'sound/vox_fem/miles.ogg', - "military" = 'sound/vox_fem/military.ogg', - "milli" = 'sound/vox_fem/milli.ogg', - "million" = 'sound/vox_fem/million.ogg', - "mime" = 'sound/vox_fem/mime.ogg', - "minefield" = 'sound/vox_fem/minefield.ogg', - "miner" = 'sound/vox_fem/miner.ogg', - "minimum" = 'sound/vox_fem/minimum.ogg', - "minor" = 'sound/vox_fem/minor.ogg', - "minute" = 'sound/vox_fem/minute.ogg', - "minutes" = 'sound/vox_fem/minutes.ogg', - "mister" = 'sound/vox_fem/mister.ogg', - "mixture" = 'sound/vox_fem/mixture.ogg', - "mode" = 'sound/vox_fem/mode.ogg', - "modification" = 'sound/vox_fem/modification.ogg', - "money" = 'sound/vox_fem/money.ogg', - "monkey" = 'sound/vox_fem/monkey.ogg', - "most" = 'sound/vox_fem/most.ogg', - "moth" = 'sound/vox_fem/moth.ogg', - "mothperson" = 'sound/vox_fem/mothperson.ogg', - "motor" = 'sound/vox_fem/motor.ogg', - "motorpool" = 'sound/vox_fem/motorpool.ogg', - "move" = 'sound/vox_fem/move.ogg', - "moved" = 'sound/vox_fem/moved.ogg', - "moving" = 'sound/vox_fem/moving.ogg', - "multitude" = 'sound/vox_fem/multitude.ogg', - "murder" = 'sound/vox_fem/murder.ogg', - "murderer" = 'sound/vox_fem/murderer.ogg', - "must" = 'sound/vox_fem/must.ogg', - "my" = 'sound/vox_fem/my.ogg', - "mythic" = 'sound/vox_fem/mythic.ogg', - "n" = 'sound/vox_fem/n.ogg', - "nanotrasen" = 'sound/vox_fem/nanotrasen.ogg', - "near" = 'sound/vox_fem/near.ogg', - "nearest" = 'sound/vox_fem/nearest.ogg', - "nearly" = 'sound/vox_fem/nearly.ogg', - "need" = 'sound/vox_fem/need.ogg', - "never" = 'sound/vox_fem/never.ogg', - "nice" = 'sound/vox_fem/nice.ogg', - "night" = 'sound/vox_fem/night.ogg', - "nine" = 'sound/vox_fem/nine.ogg', - "nineteen" = 'sound/vox_fem/nineteen.ogg', - "ninety" = 'sound/vox_fem/ninety.ogg', - "nitrogen" = 'sound/vox_fem/nitrogen.ogg', - "no" = 'sound/vox_fem/no.ogg', - "nominal" = 'sound/vox_fem/nominal.ogg', - "none" = 'sound/vox_fem/none.ogg', - "normal" = 'sound/vox_fem/normal.ogg', - "normally" = 'sound/vox_fem/normally.ogg', - "north" = 'sound/vox_fem/north.ogg', - "northeast" = 'sound/vox_fem/northeast.ogg', - "northwest" = 'sound/vox_fem/northwest.ogg', - "not" = 'sound/vox_fem/not.ogg', - "notably" = 'sound/vox_fem/notably.ogg', - "november" = 'sound/vox_fem/november.ogg', - "now" = 'sound/vox_fem/now.ogg', - "nuclear" = 'sound/vox_fem/nuclear.ogg', - "nuke" = 'sound/vox_fem/nuke.ogg', - "number" = 'sound/vox_fem/number.ogg', - "o" = 'sound/vox_fem/o.ogg', - "object" = 'sound/vox_fem/object.ogg', - "objective" = 'sound/vox_fem/objective.ogg', - "obliterate" = 'sound/vox_fem/obliterate.ogg', - "obliterated" = 'sound/vox_fem/obliterated.ogg', - "obliterating" = 'sound/vox_fem/obliterating.ogg', - "observation" = 'sound/vox_fem/observation.ogg', - "obtain" = 'sound/vox_fem/obtain.ogg', - "of" = 'sound/vox_fem/of.ogg', - "off" = 'sound/vox_fem/off.ogg', - "office" = 'sound/vox_fem/office.ogg', - "officer" = 'sound/vox_fem/officer.ogg', - "oh" = 'sound/vox_fem/oh.ogg', - "ok" = 'sound/vox_fem/ok.ogg', - "okay" = 'sound/vox_fem/okay.ogg', - "on" = 'sound/vox_fem/on.ogg', - "once" = 'sound/vox_fem/once.ogg', - "one" = 'sound/vox_fem/one.ogg', - "oof" = 'sound/vox_fem/oof.ogg', - "open" = 'sound/vox_fem/open.ogg', - "opened" = 'sound/vox_fem/opened.ogg', - "opening" = 'sound/vox_fem/opening.ogg', - "operating" = 'sound/vox_fem/operating.ogg', - "operations" = 'sound/vox_fem/operations.ogg', - "operative" = 'sound/vox_fem/operative.ogg', - "option" = 'sound/vox_fem/option.ogg', - "or" = 'sound/vox_fem/or.ogg', - "order" = 'sound/vox_fem/order.ogg', - "ordered" = 'sound/vox_fem/ordered.ogg', - "ordering" = 'sound/vox_fem/ordering.ogg', - "organic" = 'sound/vox_fem/organic.ogg', - "oscar" = 'sound/vox_fem/oscar.ogg', - "out" = 'sound/vox_fem/out.ogg', - "output" = 'sound/vox_fem/output.ogg', - "outside" = 'sound/vox_fem/outside.ogg', - "over" = 'sound/vox_fem/over.ogg', - "overload" = 'sound/vox_fem/overload.ogg', - "override" = 'sound/vox_fem/override.ogg', - "own" = 'sound/vox_fem/own.ogg', - "oxygen" = 'sound/vox_fem/oxygen.ogg', - "p" = 'sound/vox_fem/p.ogg', - "pacification" = 'sound/vox_fem/pacification.ogg', - "pacify" = 'sound/vox_fem/pacify.ogg', - "pain" = 'sound/vox_fem/pain.ogg', - "pal" = 'sound/vox_fem/pal.ogg', - "panel" = 'sound/vox_fem/panel.ogg', - "panting" = 'sound/vox_fem/panting.ogg', - "pathetic" = 'sound/vox_fem/pathetic.ogg', - "pda" = 'sound/vox_fem/pda.ogg', - "percent" = 'sound/vox_fem/percent.ogg', - "perfect" = 'sound/vox_fem/perfect.ogg', - "perhaps" = 'sound/vox_fem/perhaps.ogg', - "perimeter" = 'sound/vox_fem/perimeter.ogg', - "permitted" = 'sound/vox_fem/permitted.ogg', - "personal" = 'sound/vox_fem/personal.ogg', - "personnel" = 'sound/vox_fem/personnel.ogg', - "pipe" = 'sound/vox_fem/pipe.ogg', - "piping" = 'sound/vox_fem/piping.ogg', - "piss" = 'sound/vox_fem/piss.ogg', - "plant" = 'sound/vox_fem/plant.ogg', - "plasma" = 'sound/vox_fem/plasma.ogg', - "plasmaman" = 'sound/vox_fem/plasmaman.ogg', - "platform" = 'sound/vox_fem/platform.ogg', - "plating" = 'sound/vox_fem/plating.ogg', - "plausible" = 'sound/vox_fem/plausible.ogg', - "please" = 'sound/vox_fem/please.ogg', - "pluoxium" = 'sound/vox_fem/pluoxium.ogg', - "point" = 'sound/vox_fem/point.ogg', - "port" = 'sound/vox_fem/port.ogg', - "portal" = 'sound/vox_fem/portal.ogg', - "portion" = 'sound/vox_fem/portion.ogg', - "possible" = 'sound/vox_fem/possible.ogg', - "power" = 'sound/vox_fem/power.ogg', - "powered" = 'sound/vox_fem/powered.ogg', - "powering" = 'sound/vox_fem/powering.ogg', - "premature" = 'sound/vox_fem/premature.ogg', - "prematurely" = 'sound/vox_fem/prematurely.ogg', - "presence" = 'sound/vox_fem/presence.ogg', - "present" = 'sound/vox_fem/present.ogg', - "presents" = 'sound/vox_fem/presents.ogg', - "press" = 'sound/vox_fem/press.ogg', - "pressure" = 'sound/vox_fem/pressure.ogg', - "primary" = 'sound/vox_fem/primary.ogg', - "priority" = 'sound/vox_fem/priority.ogg', - "prison" = 'sound/vox_fem/prison.ogg', - "prisoner" = 'sound/vox_fem/prisoner.ogg', - "proceed" = 'sound/vox_fem/proceed.ogg', - "processing" = 'sound/vox_fem/processing.ogg', - "progress" = 'sound/vox_fem/progress.ogg', - "projectile" = 'sound/vox_fem/projectile.ogg', - "proper" = 'sound/vox_fem/proper.ogg', - "propulsion" = 'sound/vox_fem/propulsion.ogg', - "prosecute" = 'sound/vox_fem/prosecute.ogg', - "protect" = 'sound/vox_fem/protect.ogg', - "protected" = 'sound/vox_fem/protected.ogg', - "protection" = 'sound/vox_fem/protection.ogg', - "protective" = 'sound/vox_fem/protective.ogg', - "proto-nitrate" = 'sound/vox_fem/proto-nitrate.ogg', - "pull" = 'sound/vox_fem/pull.ogg', - "pulled" = 'sound/vox_fem/pulled.ogg', - "pulling" = 'sound/vox_fem/pulling.ogg', - "pump" = 'sound/vox_fem/pump.ogg', - "pumps" = 'sound/vox_fem/pumps.ogg', - "push" = 'sound/vox_fem/push.ogg', - "put" = 'sound/vox_fem/put.ogg', - "q" = 'sound/vox_fem/q.ogg', - "quantum" = 'sound/vox_fem/quantum.ogg', - "quarantine" = 'sound/vox_fem/quarantine.ogg', - "quartermaster" = 'sound/vox_fem/quartermaster.ogg', - "quebec" = 'sound/vox_fem/quebec.ogg', - "queen" = 'sound/vox_fem/queen.ogg', - "question" = 'sound/vox_fem/question.ogg', - "questionable" = 'sound/vox_fem/questionable.ogg', - "questioning" = 'sound/vox_fem/questioning.ogg', - "quick" = 'sound/vox_fem/quick.ogg', - "quit" = 'sound/vox_fem/quit.ogg', - "r" = 'sound/vox_fem/r.ogg', - "radiation" = 'sound/vox_fem/radiation.ogg', - "radioactive" = 'sound/vox_fem/radioactive.ogg', - "rads" = 'sound/vox_fem/rads.ogg', - "raider" = 'sound/vox_fem/raider.ogg', - "raiders" = 'sound/vox_fem/raiders.ogg', - "rapid" = 'sound/vox_fem/rapid.ogg', - "reach" = 'sound/vox_fem/reach.ogg', - "reached" = 'sound/vox_fem/reached.ogg', - "reactor" = 'sound/vox_fem/reactor.ogg', - "red" = 'sound/vox_fem/red.ogg', - "relay" = 'sound/vox_fem/relay.ogg', - "release" = 'sound/vox_fem/release.ogg', - "released" = 'sound/vox_fem/released.ogg', - "releasing" = 'sound/vox_fem/releasing.ogg', - "remaining" = 'sound/vox_fem/remaining.ogg', - "removal" = 'sound/vox_fem/removal.ogg', - "remove" = 'sound/vox_fem/remove.ogg', - "removed" = 'sound/vox_fem/removed.ogg', - "removing" = 'sound/vox_fem/removing.ogg', - "renegade" = 'sound/vox_fem/renegade.ogg', - "repair" = 'sound/vox_fem/repair.ogg', - "report" = 'sound/vox_fem/report.ogg', - "reports" = 'sound/vox_fem/reports.ogg', - "request" = 'sound/vox_fem/request.ogg', - "requested" = 'sound/vox_fem/requested.ogg', - "requesting" = 'sound/vox_fem/requesting.ogg', - "require" = 'sound/vox_fem/require.ogg', - "required" = 'sound/vox_fem/required.ogg', - "research" = 'sound/vox_fem/research.ogg', - "resevoir" = 'sound/vox_fem/resevoir.ogg', - "resistance" = 'sound/vox_fem/resistance.ogg', - "resistant" = 'sound/vox_fem/resistant.ogg', - "resisting" = 'sound/vox_fem/resisting.ogg', - "resonance" = 'sound/vox_fem/resonance.ogg', - "rest" = 'sound/vox_fem/rest.ogg', - "restoration" = 'sound/vox_fem/restoration.ogg', - "revolution" = 'sound/vox_fem/revolution.ogg', - "revolutionary" = 'sound/vox_fem/revolutionary.ogg', - "right" = 'sound/vox_fem/right.ogg', - "riot" = 'sound/vox_fem/riot.ogg', - "roboticist" = 'sound/vox_fem/roboticist.ogg', - "rocket" = 'sound/vox_fem/rocket.ogg', - "roger" = 'sound/vox_fem/roger.ogg', - "rogue" = 'sound/vox_fem/rogue.ogg', - "romeo" = 'sound/vox_fem/romeo.ogg', - "room" = 'sound/vox_fem/room.ogg', - "round" = 'sound/vox_fem/round.ogg', - "run" = 'sound/vox_fem/run.ogg', - "rune" = 'sound/vox_fem/rune.ogg', - "runtime" = 'sound/vox_fem/runtime.ogg', - "s" = 'sound/vox_fem/s.ogg', - "sabotage" = 'sound/vox_fem/sabotage.ogg', - "sabotaged" = 'sound/vox_fem/sabotaged.ogg', - "sabotaging" = 'sound/vox_fem/sabotaging.ogg', - "safe" = 'sound/vox_fem/safe.ogg', - "safety" = 'sound/vox_fem/safety.ogg', - "sairhorn" = 'sound/vox_fem/sairhorn.ogg', - "same" = 'sound/vox_fem/same.ogg', - "sarah" = 'sound/vox_fem/sarah.ogg', - "sargeant" = 'sound/vox_fem/sargeant.ogg', - "satellite" = 'sound/vox_fem/satellite.ogg', - "save" = 'sound/vox_fem/save.ogg', - "saw" = 'sound/vox_fem/saw.ogg', - "scan" = 'sound/vox_fem/scan.ogg', - "scanned" = 'sound/vox_fem/scanned.ogg', - "scanner" = 'sound/vox_fem/scanner.ogg', - "scanners" = 'sound/vox_fem/scanners.ogg', - "scanning" = 'sound/vox_fem/scanning.ogg', - "scensor" = 'sound/vox_fem/scensor.ogg', - "science" = 'sound/vox_fem/science.ogg', - "scientist" = 'sound/vox_fem/scientist.ogg', - "scream" = 'sound/vox_fem/scream.ogg', - "screen" = 'sound/vox_fem/screen.ogg', - "screw" = 'sound/vox_fem/screw.ogg', - "search" = 'sound/vox_fem/search.ogg', - "second" = 'sound/vox_fem/second.ogg', - "secondary" = 'sound/vox_fem/secondary.ogg', - "seconds" = 'sound/vox_fem/seconds.ogg', - "section" = 'sound/vox_fem/section.ogg', - "sector" = 'sound/vox_fem/sector.ogg', - "secure" = 'sound/vox_fem/secure.ogg', - "secured" = 'sound/vox_fem/secured.ogg', - "security" = 'sound/vox_fem/security.ogg', - "seen" = 'sound/vox_fem/seen.ogg', - "select" = 'sound/vox_fem/select.ogg', - "selected" = 'sound/vox_fem/selected.ogg', - "self" = 'sound/vox_fem/self.ogg', - "sensors" = 'sound/vox_fem/sensors.ogg', - "server" = 'sound/vox_fem/server.ogg', - "service" = 'sound/vox_fem/service.ogg', - "set" = 'sound/vox_fem/set.ogg', - "seven" = 'sound/vox_fem/seven.ogg', - "seventeen" = 'sound/vox_fem/seventeen.ogg', - "seventy" = 'sound/vox_fem/seventy.ogg', - "sever" = 'sound/vox_fem/sever.ogg', - "severe" = 'sound/vox_fem/severe.ogg', - "severed" = 'sound/vox_fem/severed.ogg', - "severing" = 'sound/vox_fem/severing.ogg', - "sewage" = 'sound/vox_fem/sewage.ogg', - "sewer" = 'sound/vox_fem/sewer.ogg', - "shaft" = 'sound/vox_fem/shaft.ogg', - "shame" = 'sound/vox_fem/shame.ogg', - "shameful" = 'sound/vox_fem/shameful.ogg', - "shameless" = 'sound/vox_fem/shameless.ogg', - "shard" = 'sound/vox_fem/shard.ogg', - "she" = 'sound/vox_fem/she.ogg', - "shield" = 'sound/vox_fem/shield.ogg', - "shift" = 'sound/vox_fem/shift.ogg', - "shifts" = 'sound/vox_fem/shifts.ogg', - "shipment" = 'sound/vox_fem/shipment.ogg', - "shirt" = 'sound/vox_fem/shirt.ogg', - "shit" = 'sound/vox_fem/shit.ogg', - "shitlord" = 'sound/vox_fem/shitlord.ogg', - "shits" = 'sound/vox_fem/shits.ogg', - "shitting" = 'sound/vox_fem/shitting.ogg', - "shock" = 'sound/vox_fem/shock.ogg', - "shonk" = 'sound/vox_fem/shonk.ogg', - "shoot" = 'sound/vox_fem/shoot.ogg', - "shower" = 'sound/vox_fem/shower.ogg', - "shut" = 'sound/vox_fem/shut.ogg', - "shuttle" = 'sound/vox_fem/shuttle.ogg', - "sick" = 'sound/vox_fem/sick.ogg', - "side" = 'sound/vox_fem/side.ogg', - "sides" = 'sound/vox_fem/sides.ogg', - "sierra" = 'sound/vox_fem/sierra.ogg', - "sight" = 'sound/vox_fem/sight.ogg', - "silicon" = 'sound/vox_fem/silicon.ogg', - "silo" = 'sound/vox_fem/silo.ogg', - "single" = 'sound/vox_fem/single.ogg', - "singularity" = 'sound/vox_fem/singularity.ogg', - "siphon" = 'sound/vox_fem/siphon.ogg', - "siphoning" = 'sound/vox_fem/siphoning.ogg', - "six" = 'sound/vox_fem/six.ogg', - "sixteen" = 'sound/vox_fem/sixteen.ogg', - "sixty" = 'sound/vox_fem/sixty.ogg', - "skeleton" = 'sound/vox_fem/skeleton.ogg', - "slaughter" = 'sound/vox_fem/slaughter.ogg', - "slime" = 'sound/vox_fem/slime.ogg', - "slip" = 'sound/vox_fem/slip.ogg', - "slippery" = 'sound/vox_fem/slippery.ogg', - "slow" = 'sound/vox_fem/slow.ogg', - "sm" = 'sound/vox_fem/sm.ogg', - "small" = 'sound/vox_fem/small.ogg', - "sockmuncher" = 'sound/vox_fem/sockmuncher.ogg', - "soft" = 'sound/vox_fem/soft.ogg', - "solar" = 'sound/vox_fem/solar.ogg', - "solars" = 'sound/vox_fem/solars.ogg', - "soldier" = 'sound/vox_fem/soldier.ogg', - "some" = 'sound/vox_fem/some.ogg', - "someone" = 'sound/vox_fem/someone.ogg', - "something" = 'sound/vox_fem/something.ogg', - "son" = 'sound/vox_fem/son.ogg', - "sorry" = 'sound/vox_fem/sorry.ogg', - "source" = 'sound/vox_fem/source.ogg', - "south" = 'sound/vox_fem/south.ogg', - "southeast" = 'sound/vox_fem/southeast.ogg', - "southwest" = 'sound/vox_fem/southwest.ogg', - "space" = 'sound/vox_fem/space.ogg', - "special" = 'sound/vox_fem/special.ogg', - "spew" = 'sound/vox_fem/spew.ogg', - "squad" = 'sound/vox_fem/squad.ogg', - "square" = 'sound/vox_fem/square.ogg', - "ss13" = 'sound/vox_fem/ss13.ogg', - "stairway" = 'sound/vox_fem/stairway.ogg', - "starboard" = 'sound/vox_fem/starboard.ogg', - "start" = 'sound/vox_fem/start.ogg', - "starts" = 'sound/vox_fem/starts.ogg', - "station" = 'sound/vox_fem/station.ogg', - "stations" = 'sound/vox_fem/stations.ogg', - "stationwide" = 'sound/vox_fem/stationwide.ogg', - "status" = 'sound/vox_fem/status.ogg', - "stay" = 'sound/vox_fem/stay.ogg', - "sterile" = 'sound/vox_fem/sterile.ogg', - "sterilization" = 'sound/vox_fem/sterilization.ogg', - "stop" = 'sound/vox_fem/stop.ogg', - "storage" = 'sound/vox_fem/storage.ogg', - "strong" = 'sound/vox_fem/strong.ogg', - "stuck" = 'sound/vox_fem/stuck.ogg', - "sub" = 'sound/vox_fem/sub.ogg', - "subsurface" = 'sound/vox_fem/subsurface.ogg', - "such" = 'sound/vox_fem/such.ogg', - "sudden" = 'sound/vox_fem/sudden.ogg', - "suffer" = 'sound/vox_fem/suffer.ogg', - "suit" = 'sound/vox_fem/suit.ogg', - "suited" = 'sound/vox_fem/suited.ogg', - "super" = 'sound/vox_fem/super.ogg', - "superconducting" = 'sound/vox_fem/superconducting.ogg', - "supercooled" = 'sound/vox_fem/supercooled.ogg', - "supermatter" = 'sound/vox_fem/supermatter.ogg', - "supply" = 'sound/vox_fem/supply.ogg', - "surface" = 'sound/vox_fem/surface.ogg', - "surrender" = 'sound/vox_fem/surrender.ogg', - "surround" = 'sound/vox_fem/surround.ogg', - "surrounded" = 'sound/vox_fem/surrounded.ogg', - "sweating" = 'sound/vox_fem/sweating.ogg', - "swhitenoise" = 'sound/vox_fem/swhitenoise.ogg', - "switch" = 'sound/vox_fem/switch.ogg', - "syndicate" = 'sound/vox_fem/syndicate.ogg', - "system" = 'sound/vox_fem/system.ogg', - "systems" = 'sound/vox_fem/systems.ogg', - "t" = 'sound/vox_fem/t.ogg', - "table" = 'sound/vox_fem/table.ogg', - "tactical" = 'sound/vox_fem/tactical.ogg', - "taildragger" = 'sound/vox_fem/taildragger.ogg', - "take" = 'sound/vox_fem/take.ogg', - "talk" = 'sound/vox_fem/talk.ogg', - "tampered" = 'sound/vox_fem/tampered.ogg', - "tango" = 'sound/vox_fem/tango.ogg', - "tank" = 'sound/vox_fem/tank.ogg', - "target" = 'sound/vox_fem/target.ogg', - "team" = 'sound/vox_fem/team.ogg', - "tech" = 'sound/vox_fem/tech.ogg', - "technician" = 'sound/vox_fem/technician.ogg', - "technology" = 'sound/vox_fem/technology.ogg', - "teleporter" = 'sound/vox_fem/teleporter.ogg', - "temperature" = 'sound/vox_fem/temperature.ogg', - "temporal" = 'sound/vox_fem/temporal.ogg', - "ten" = 'sound/vox_fem/ten.ogg', - "terminal" = 'sound/vox_fem/terminal.ogg', - "terminate" = 'sound/vox_fem/terminate.ogg', - "terminated" = 'sound/vox_fem/terminated.ogg', - "termination" = 'sound/vox_fem/termination.ogg', - "tesla" = 'sound/vox_fem/tesla.ogg', - "test" = 'sound/vox_fem/test.ogg', - "text" = 'sound/vox_fem/text.ogg', - "thank" = 'sound/vox_fem/thank.ogg', - "thanks" = 'sound/vox_fem/thanks.ogg', - "that" = 'sound/vox_fem/that.ogg', - "the" = 'sound/vox_fem/the.ogg', - "theater" = 'sound/vox_fem/theater.ogg', - "them" = 'sound/vox_fem/them.ogg', - "then" = 'sound/vox_fem/then.ogg', - "there" = 'sound/vox_fem/there.ogg', - "they" = 'sound/vox_fem/they.ogg', - "third" = 'sound/vox_fem/third.ogg', - "thirteen" = 'sound/vox_fem/thirteen.ogg', - "thirty" = 'sound/vox_fem/thirty.ogg', - "this" = 'sound/vox_fem/this.ogg', - "those" = 'sound/vox_fem/those.ogg', - "thousand" = 'sound/vox_fem/thousand.ogg', - "threat" = 'sound/vox_fem/threat.ogg', - "three" = 'sound/vox_fem/three.ogg', - "through" = 'sound/vox_fem/through.ogg', - "tick" = 'sound/vox_fem/tick.ogg', - "tide" = 'sound/vox_fem/tide.ogg', - "tile" = 'sound/vox_fem/tile.ogg', - "time" = 'sound/vox_fem/time.ogg', - "tiny" = 'sound/vox_fem/tiny.ogg', - "to" = 'sound/vox_fem/to.ogg', - "top" = 'sound/vox_fem/top.ogg', - "topside" = 'sound/vox_fem/topside.ogg', - "touch" = 'sound/vox_fem/touch.ogg', - "touched" = 'sound/vox_fem/touched.ogg', - "touching" = 'sound/vox_fem/touching.ogg', - "towards" = 'sound/vox_fem/towards.ogg', - "toxins" = 'sound/vox_fem/toxins.ogg', - "track" = 'sound/vox_fem/track.ogg', - "train" = 'sound/vox_fem/train.ogg', - "traitor" = 'sound/vox_fem/traitor.ogg', - "transportation" = 'sound/vox_fem/transportation.ogg', - "trigger" = 'sound/vox_fem/trigger.ogg', - "triggered" = 'sound/vox_fem/triggered.ogg', - "triggering" = 'sound/vox_fem/triggering.ogg', - "triple" = 'sound/vox_fem/triple.ogg', - "tritium" = 'sound/vox_fem/tritium.ogg', - "truck" = 'sound/vox_fem/truck.ogg', - "true" = 'sound/vox_fem/true.ogg', - "tunnel" = 'sound/vox_fem/tunnel.ogg', - "turn" = 'sound/vox_fem/turn.ogg', - "turned" = 'sound/vox_fem/turned.ogg', - "turret" = 'sound/vox_fem/turret.ogg', - "twelve" = 'sound/vox_fem/twelve.ogg', - "twenty" = 'sound/vox_fem/twenty.ogg', - "two" = 'sound/vox_fem/two.ogg', - "u" = 'sound/vox_fem/u.ogg', - "ugh" = 'sound/vox_fem/ugh.ogg', - "ughh" = 'sound/vox_fem/ughh.ogg', - "unable" = 'sound/vox_fem/unable.ogg', - "unauthorized" = 'sound/vox_fem/unauthorized.ogg', - "under" = 'sound/vox_fem/under.ogg', - "uniform" = 'sound/vox_fem/uniform.ogg', - "unique" = 'sound/vox_fem/unique.ogg', - "unknown" = 'sound/vox_fem/unknown.ogg', - "unlocked" = 'sound/vox_fem/unlocked.ogg', - "unsafe" = 'sound/vox_fem/unsafe.ogg', - "until" = 'sound/vox_fem/until.ogg', - "unwrench" = 'sound/vox_fem/unwrench.ogg', - "unwrenching" = 'sound/vox_fem/unwrenching.ogg', - "up" = 'sound/vox_fem/up.ogg', - "update" = 'sound/vox_fem/update.ogg', - "updated" = 'sound/vox_fem/updated.ogg', - "updating" = 'sound/vox_fem/updating.ogg', - "upload" = 'sound/vox_fem/upload.ogg', - "upper" = 'sound/vox_fem/upper.ogg', - "uranium" = 'sound/vox_fem/uranium.ogg', - "us" = 'sound/vox_fem/us.ogg', - "usa" = 'sound/vox_fem/usa.ogg', - "use" = 'sound/vox_fem/use.ogg', - "used" = 'sound/vox_fem/used.ogg', - "useful" = 'sound/vox_fem/useful.ogg', - "useless" = 'sound/vox_fem/useless.ogg', - "user" = 'sound/vox_fem/user.ogg', - "v" = 'sound/vox_fem/v.ogg', - "vacate" = 'sound/vox_fem/vacate.ogg', - "vacuum" = 'sound/vox_fem/vacuum.ogg', - "valid" = 'sound/vox_fem/valid.ogg', - "validate" = 'sound/vox_fem/validate.ogg', - "vapor" = 'sound/vox_fem/vapor.ogg', - "vendor" = 'sound/vox_fem/vendor.ogg', - "vent" = 'sound/vox_fem/vent.ogg', - "ventilation" = 'sound/vox_fem/ventilation.ogg', - "very" = 'sound/vox_fem/very.ogg', - "victor" = 'sound/vox_fem/victor.ogg', - "violated" = 'sound/vox_fem/violated.ogg', - "violation" = 'sound/vox_fem/violation.ogg', - "virologist" = 'sound/vox_fem/virologist.ogg', - "virology" = 'sound/vox_fem/virology.ogg', - "virus" = 'sound/vox_fem/virus.ogg', - "vitals" = 'sound/vox_fem/vitals.ogg', - "voltage" = 'sound/vox_fem/voltage.ogg', - "vox" = 'sound/vox_fem/vox.ogg', - "voxtest" = 'sound/vox_fem/voxtest.ogg', - "vox_login" = 'sound/vox_fem/vox_login.ogg', - "w" = 'sound/vox_fem/w.ogg', - "walk" = 'sound/vox_fem/walk.ogg', - "wall" = 'sound/vox_fem/wall.ogg', - "wanker" = 'sound/vox_fem/wanker.ogg', - "want" = 'sound/vox_fem/want.ogg', - "wanted" = 'sound/vox_fem/wanted.ogg', - "warden" = 'sound/vox_fem/warden.ogg', - "warm" = 'sound/vox_fem/warm.ogg', - "warn" = 'sound/vox_fem/warn.ogg', - "warning" = 'sound/vox_fem/warning.ogg', - "was" = 'sound/vox_fem/was.ogg', - "waste" = 'sound/vox_fem/waste.ogg', - "water" = 'sound/vox_fem/water.ogg', - "way" = 'sound/vox_fem/way.ogg', - "ways" = 'sound/vox_fem/ways.ogg', - "we" = 'sound/vox_fem/we.ogg', - "weak" = 'sound/vox_fem/weak.ogg', - "weapon" = 'sound/vox_fem/weapon.ogg', - "welcome" = 'sound/vox_fem/welcome.ogg', - "weld" = 'sound/vox_fem/weld.ogg', - "west" = 'sound/vox_fem/west.ogg', - "wew" = 'sound/vox_fem/wew.ogg', - "what" = 'sound/vox_fem/what.ogg', - "when" = 'sound/vox_fem/when.ogg', - "where" = 'sound/vox_fem/where.ogg', - "which" = 'sound/vox_fem/which.ogg', - "while" = 'sound/vox_fem/while.ogg', - "whiskey" = 'sound/vox_fem/whiskey.ogg', - "white" = 'sound/vox_fem/white.ogg', - "why" = 'sound/vox_fem/why.ogg', - "wilco" = 'sound/vox_fem/wilco.ogg', - "will" = 'sound/vox_fem/will.ogg', - "wing" = 'sound/vox_fem/wing.ogg', - "wire" = 'sound/vox_fem/wire.ogg', - "with" = 'sound/vox_fem/with.ogg', - "without" = 'sound/vox_fem/without.ogg', - "wizard" = 'sound/vox_fem/wizard.ogg', - "wood" = 'sound/vox_fem/wood.ogg', - "woody" = 'sound/vox_fem/woody.ogg', - "woop" = 'sound/vox_fem/woop.ogg', - "work" = 'sound/vox_fem/work.ogg', - "worked" = 'sound/vox_fem/worked.ogg', - "working" = 'sound/vox_fem/working.ogg', - "works" = 'sound/vox_fem/works.ogg', - "would" = 'sound/vox_fem/would.ogg', - "wouldnt" = 'sound/vox_fem/wouldnt.ogg', - "wow" = 'sound/vox_fem/wow.ogg', - "wrench" = 'sound/vox_fem/wrench.ogg', - "wrenching" = 'sound/vox_fem/wrenching.ogg', - "x" = 'sound/vox_fem/x.ogg', - "xeno" = 'sound/vox_fem/xeno.ogg', - "xenobiology" = 'sound/vox_fem/xenobiology.ogg', - "xenomorph" = 'sound/vox_fem/xenomorph.ogg', - "xenomorphs" = 'sound/vox_fem/xenomorphs.ogg', - "y" = 'sound/vox_fem/y.ogg', - "yankee" = 'sound/vox_fem/yankee.ogg', - "yards" = 'sound/vox_fem/yards.ogg', - "year" = 'sound/vox_fem/year.ogg', - "yellow" = 'sound/vox_fem/yellow.ogg', - "yes" = 'sound/vox_fem/yes.ogg', - "you" = 'sound/vox_fem/you.ogg', - "your" = 'sound/vox_fem/your.ogg', - "yourself" = 'sound/vox_fem/yourself.ogg', - "z" = 'sound/vox_fem/z.ogg', - "zap" = 'sound/vox_fem/zap.ogg', - "zauker" = 'sound/vox_fem/zauker.ogg', - "zero" = 'sound/vox_fem/zero.ogg', - "zombie" = 'sound/vox_fem/zombie.ogg', - "zone" = 'sound/vox_fem/zone.ogg', - "zulu" = 'sound/vox_fem/zulu.ogg', + "," = 'sound/announcer/vox_fem/,.ogg', + "." = 'sound/announcer/vox_fem/..ogg', + "a" = 'sound/announcer/vox_fem/a.ogg', + "abduction" = 'sound/announcer/vox_fem/abduction.ogg', + "abortions" = 'sound/announcer/vox_fem/abortions.ogg', + "above" = 'sound/announcer/vox_fem/above.ogg', + "absorb" = 'sound/announcer/vox_fem/absorb.ogg', + "absorbed" = 'sound/announcer/vox_fem/absorbed.ogg', + "absorbing" = 'sound/announcer/vox_fem/absorbing.ogg', + "abstain" = 'sound/announcer/vox_fem/abstain.ogg', + "accelerating" = 'sound/announcer/vox_fem/accelerating.ogg', + "accelerator" = 'sound/announcer/vox_fem/accelerator.ogg', + "accepted" = 'sound/announcer/vox_fem/accepted.ogg', + "access" = 'sound/announcer/vox_fem/access.ogg', + "acknowledge" = 'sound/announcer/vox_fem/acknowledge.ogg', + "acknowledged" = 'sound/announcer/vox_fem/acknowledged.ogg', + "acquired" = 'sound/announcer/vox_fem/acquired.ogg', + "acquisition" = 'sound/announcer/vox_fem/acquisition.ogg', + "across" = 'sound/announcer/vox_fem/across.ogg', + "activate" = 'sound/announcer/vox_fem/activate.ogg', + "activated" = 'sound/announcer/vox_fem/activated.ogg', + "activating" = 'sound/announcer/vox_fem/activating.ogg', + "activation" = 'sound/announcer/vox_fem/activation.ogg', + "active" = 'sound/announcer/vox_fem/active.ogg', + "activity" = 'sound/announcer/vox_fem/activity.ogg', + "adios" = 'sound/announcer/vox_fem/adios.ogg', + "administration" = 'sound/announcer/vox_fem/administration.ogg', + "advanced" = 'sound/announcer/vox_fem/advanced.ogg', + "advised" = 'sound/announcer/vox_fem/advised.ogg', + "affect" = 'sound/announcer/vox_fem/affect.ogg', + "affected" = 'sound/announcer/vox_fem/affected.ogg', + "affecting" = 'sound/announcer/vox_fem/affecting.ogg', + "aft" = 'sound/announcer/vox_fem/aft.ogg', + "after" = 'sound/announcer/vox_fem/after.ogg', + "agent" = 'sound/announcer/vox_fem/agent.ogg', + "ai" = 'sound/announcer/vox_fem/ai.ogg', + "air" = 'sound/announcer/vox_fem/air.ogg', + "airlock" = 'sound/announcer/vox_fem/airlock.ogg', + "alarm" = 'sound/announcer/vox_fem/alarm.ogg', + "alarmed" = 'sound/announcer/vox_fem/alarmed.ogg', + "alarming" = 'sound/announcer/vox_fem/alarming.ogg', + "alcohol" = 'sound/announcer/vox_fem/alcohol.ogg', + "alert" = 'sound/announcer/vox_fem/alert.ogg', + "alerted" = 'sound/announcer/vox_fem/alerted.ogg', + "alerting" = 'sound/announcer/vox_fem/alerting.ogg', + "alien" = 'sound/announcer/vox_fem/alien.ogg', + "align" = 'sound/announcer/vox_fem/align.ogg', + "aligned" = 'sound/announcer/vox_fem/aligned.ogg', + "all" = 'sound/announcer/vox_fem/all.ogg', + "allow" = 'sound/announcer/vox_fem/allow.ogg', + "alongside" = 'sound/announcer/vox_fem/alongside.ogg', + "alpha" = 'sound/announcer/vox_fem/alpha.ogg', + "also" = 'sound/announcer/vox_fem/also.ogg', + "am" = 'sound/announcer/vox_fem/am.ogg', + "amigo" = 'sound/announcer/vox_fem/amigo.ogg', + "ammunition" = 'sound/announcer/vox_fem/ammunition.ogg', + "amount" = 'sound/announcer/vox_fem/amount.ogg', + "an" = 'sound/announcer/vox_fem/an.ogg', + "and" = 'sound/announcer/vox_fem/and.ogg', + "animal" = 'sound/announcer/vox_fem/animal.ogg', + "annihilate" = 'sound/announcer/vox_fem/annihilate.ogg', + "annihilated" = 'sound/announcer/vox_fem/annihilated.ogg', + "annihilating" = 'sound/announcer/vox_fem/annihilating.ogg', + "annihilation" = 'sound/announcer/vox_fem/annihilation.ogg', + "announcement" = 'sound/announcer/vox_fem/announcement.ogg', + "anomalous" = 'sound/announcer/vox_fem/anomalous.ogg', + "answer" = 'sound/announcer/vox_fem/answer.ogg', + "antenna" = 'sound/announcer/vox_fem/antenna.ogg', + "anti-noblium" = 'sound/announcer/vox_fem/anti-noblium.ogg', + "any" = 'sound/announcer/vox_fem/any.ogg', + "apc" = 'sound/announcer/vox_fem/apc.ogg', + "apprehend" = 'sound/announcer/vox_fem/apprehend.ogg', + "approach" = 'sound/announcer/vox_fem/approach.ogg', + "arc" = 'sound/announcer/vox_fem/arc.ogg', + "arcs" = 'sound/announcer/vox_fem/arcs.ogg', + "are" = 'sound/announcer/vox_fem/are.ogg', + "area" = 'sound/announcer/vox_fem/area.ogg', + "arm" = 'sound/announcer/vox_fem/arm.ogg', + "armed" = 'sound/announcer/vox_fem/armed.ogg', + "armor" = 'sound/announcer/vox_fem/armor.ogg', + "armory" = 'sound/announcer/vox_fem/armory.ogg', + "around" = 'sound/announcer/vox_fem/around.ogg', + "array" = 'sound/announcer/vox_fem/array.ogg', + "arrest" = 'sound/announcer/vox_fem/arrest.ogg', + "artillery" = 'sound/announcer/vox_fem/artillery.ogg', + "asimov" = 'sound/announcer/vox_fem/asimov.ogg', + "ask" = 'sound/announcer/vox_fem/ask.ogg', + "ass" = 'sound/announcer/vox_fem/ass.ogg', + "asshole" = 'sound/announcer/vox_fem/asshole.ogg', + "assholes" = 'sound/announcer/vox_fem/assholes.ogg', + "assistance" = 'sound/announcer/vox_fem/assistance.ogg', + "assistant" = 'sound/announcer/vox_fem/assistant.ogg', + "at" = 'sound/announcer/vox_fem/at.ogg', + "ate" = 'sound/announcer/vox_fem/ate.ogg', + "atmosphere" = 'sound/announcer/vox_fem/atmosphere.ogg', + "atmospheric" = 'sound/announcer/vox_fem/atmospheric.ogg', + "atmospherics" = 'sound/announcer/vox_fem/atmospherics.ogg', + "atomic" = 'sound/announcer/vox_fem/atomic.ogg', + "attention" = 'sound/announcer/vox_fem/attention.ogg', + "authentication" = 'sound/announcer/vox_fem/authentication.ogg', + "authorize" = 'sound/announcer/vox_fem/authorize.ogg', + "authorized" = 'sound/announcer/vox_fem/authorized.ogg', + "automatic" = 'sound/announcer/vox_fem/automatic.ogg', + "away" = 'sound/announcer/vox_fem/away.ogg', + "awful" = 'sound/announcer/vox_fem/awful.ogg', + "b" = 'sound/announcer/vox_fem/b.ogg', + "back" = 'sound/announcer/vox_fem/back.ogg', + "backman" = 'sound/announcer/vox_fem/backman.ogg', + "bad" = 'sound/announcer/vox_fem/bad.ogg', + "bag" = 'sound/announcer/vox_fem/bag.ogg', + "bailey" = 'sound/announcer/vox_fem/bailey.ogg', + "bar" = 'sound/announcer/vox_fem/bar.ogg', + "barracks" = 'sound/announcer/vox_fem/barracks.ogg', + "bartender" = 'sound/announcer/vox_fem/bartender.ogg', + "base" = 'sound/announcer/vox_fem/base.ogg', + "bay" = 'sound/announcer/vox_fem/bay.ogg', + "be" = 'sound/announcer/vox_fem/be.ogg', + "beaker" = 'sound/announcer/vox_fem/beaker.ogg', + "beam" = 'sound/announcer/vox_fem/beam.ogg', + "been" = 'sound/announcer/vox_fem/been.ogg', + "beep" = 'sound/announcer/vox_fem/beep.ogg', + "before" = 'sound/announcer/vox_fem/before.ogg', + "began" = 'sound/announcer/vox_fem/began.ogg', + "begin" = 'sound/announcer/vox_fem/begin.ogg', + "begins" = 'sound/announcer/vox_fem/begins.ogg', + "below" = 'sound/announcer/vox_fem/below.ogg', + "beside" = 'sound/announcer/vox_fem/beside.ogg', + "beware" = 'sound/announcer/vox_fem/beware.ogg', + "beyond" = 'sound/announcer/vox_fem/beyond.ogg', + "big" = 'sound/announcer/vox_fem/big.ogg', + "billion" = 'sound/announcer/vox_fem/billion.ogg', + "biohazard" = 'sound/announcer/vox_fem/biohazard.ogg', + "biological" = 'sound/announcer/vox_fem/biological.ogg', + "birdwell" = 'sound/announcer/vox_fem/birdwell.ogg', + "bitch" = 'sound/announcer/vox_fem/bitch.ogg', + "bitches" = 'sound/announcer/vox_fem/bitches.ogg', + "bitcoin" = 'sound/announcer/vox_fem/bitcoin.ogg', + "bitrun" = 'sound/announcer/vox_fem/bitrun.ogg', + "bitrunner" = 'sound/announcer/vox_fem/bitrunner.ogg', + "bitrunning" = 'sound/announcer/vox_fem/bitrunning.ogg', + "black" = 'sound/announcer/vox_fem/black.ogg', + "blast" = 'sound/announcer/vox_fem/blast.ogg', + "bleed" = 'sound/announcer/vox_fem/bleed.ogg', + "blob" = 'sound/announcer/vox_fem/blob.ogg', + "blocked" = 'sound/announcer/vox_fem/blocked.ogg', + "blood" = 'sound/announcer/vox_fem/blood.ogg', + "bloop" = 'sound/announcer/vox_fem/bloop.ogg', + "blue" = 'sound/announcer/vox_fem/blue.ogg', + "bluespace" = 'sound/announcer/vox_fem/bluespace.ogg', + "bomb" = 'sound/announcer/vox_fem/bomb.ogg', + "bone" = 'sound/announcer/vox_fem/bone.ogg', + "botanist" = 'sound/announcer/vox_fem/botanist.ogg', + "botany" = 'sound/announcer/vox_fem/botany.ogg', + "bottle" = 'sound/announcer/vox_fem/bottle.ogg', + "bottom" = 'sound/announcer/vox_fem/bottom.ogg', + "bravo" = 'sound/announcer/vox_fem/bravo.ogg', + "breach" = 'sound/announcer/vox_fem/breach.ogg', + "breached" = 'sound/announcer/vox_fem/breached.ogg', + "break" = 'sound/announcer/vox_fem/break.ogg', + "bridge" = 'sound/announcer/vox_fem/bridge.ogg', + "brig" = 'sound/announcer/vox_fem/brig.ogg', + "broke" = 'sound/announcer/vox_fem/broke.ogg', + "broken" = 'sound/announcer/vox_fem/broken.ogg', + "bump" = 'sound/announcer/vox_fem/bump.ogg', + "bumped" = 'sound/announcer/vox_fem/bumped.ogg', + "bumps" = 'sound/announcer/vox_fem/bumps.ogg', + "bust" = 'sound/announcer/vox_fem/bust.ogg', + "but" = 'sound/announcer/vox_fem/but.ogg', + "button" = 'sound/announcer/vox_fem/button.ogg', + "bypass" = 'sound/announcer/vox_fem/bypass.ogg', + "c" = 'sound/announcer/vox_fem/c.ogg', + "cable" = 'sound/announcer/vox_fem/cable.ogg', + "call" = 'sound/announcer/vox_fem/call.ogg', + "called" = 'sound/announcer/vox_fem/called.ogg', + "can" = 'sound/announcer/vox_fem/can.ogg', + "canal" = 'sound/announcer/vox_fem/canal.ogg', + "canister" = 'sound/announcer/vox_fem/canister.ogg', + "cap" = 'sound/announcer/vox_fem/cap.ogg', + "captain" = 'sound/announcer/vox_fem/captain.ogg', + "capture" = 'sound/announcer/vox_fem/capture.ogg', + "carbon" = 'sound/announcer/vox_fem/carbon.ogg', + "cargo" = 'sound/announcer/vox_fem/cargo.ogg', + "cascade" = 'sound/announcer/vox_fem/cascade.ogg', + "cat" = 'sound/announcer/vox_fem/cat.ogg', + "cause" = 'sound/announcer/vox_fem/cause.ogg', + "caused" = 'sound/announcer/vox_fem/caused.ogg', + "causes" = 'sound/announcer/vox_fem/causes.ogg', + "causing" = 'sound/announcer/vox_fem/causing.ogg', + "ce" = 'sound/announcer/vox_fem/ce.ogg', + "cease" = 'sound/announcer/vox_fem/cease.ogg', + "ceiling" = 'sound/announcer/vox_fem/ceiling.ogg', + "celsius" = 'sound/announcer/vox_fem/celsius.ogg', + "centcom" = 'sound/announcer/vox_fem/centcom.ogg', + "center" = 'sound/announcer/vox_fem/center.ogg', + "centi" = 'sound/announcer/vox_fem/centi.ogg', + "central" = 'sound/announcer/vox_fem/central.ogg', + "challenge" = 'sound/announcer/vox_fem/challenge.ogg', + "chamber" = 'sound/announcer/vox_fem/chamber.ogg', + "change" = 'sound/announcer/vox_fem/change.ogg', + "changed" = 'sound/announcer/vox_fem/changed.ogg', + "changeling" = 'sound/announcer/vox_fem/changeling.ogg', + "chapel" = 'sound/announcer/vox_fem/chapel.ogg', + "chaplain" = 'sound/announcer/vox_fem/chaplain.ogg', + "charge" = 'sound/announcer/vox_fem/charge.ogg', + "charlie" = 'sound/announcer/vox_fem/charlie.ogg', + "check" = 'sound/announcer/vox_fem/check.ogg', + "checkpoint" = 'sound/announcer/vox_fem/checkpoint.ogg', + "chemical" = 'sound/announcer/vox_fem/chemical.ogg', + "chemist" = 'sound/announcer/vox_fem/chemist.ogg', + "chief" = 'sound/announcer/vox_fem/chief.ogg', + "christ" = 'sound/announcer/vox_fem/christ.ogg', + "christmas" = 'sound/announcer/vox_fem/christmas.ogg', + "chuckle" = 'sound/announcer/vox_fem/chuckle.ogg', + "circuit" = 'sound/announcer/vox_fem/circuit.ogg', + "cleanup" = 'sound/announcer/vox_fem/cleanup.ogg', + "clear" = 'sound/announcer/vox_fem/clear.ogg', + "clearance" = 'sound/announcer/vox_fem/clearance.ogg', + "clockwork" = 'sound/announcer/vox_fem/clockwork.ogg', + "clog" = 'sound/announcer/vox_fem/clog.ogg', + "close" = 'sound/announcer/vox_fem/close.ogg', + "closed" = 'sound/announcer/vox_fem/closed.ogg', + "closing" = 'sound/announcer/vox_fem/closing.ogg', + "clothing" = 'sound/announcer/vox_fem/clothing.ogg', + "clown" = 'sound/announcer/vox_fem/clown.ogg', + "clowning" = 'sound/announcer/vox_fem/clowning.ogg', + "cmo" = 'sound/announcer/vox_fem/cmo.ogg', + "code" = 'sound/announcer/vox_fem/code.ogg', + "coded" = 'sound/announcer/vox_fem/coded.ogg', + "coil" = 'sound/announcer/vox_fem/coil.ogg', + "coils" = 'sound/announcer/vox_fem/coils.ogg', + "cold" = 'sound/announcer/vox_fem/cold.ogg', + "collider" = 'sound/announcer/vox_fem/collider.ogg', + "combat" = 'sound/announcer/vox_fem/combat.ogg', + "combatant" = 'sound/announcer/vox_fem/combatant.ogg', + "come" = 'sound/announcer/vox_fem/come.ogg', + "command" = 'sound/announcer/vox_fem/command.ogg', + "communication" = 'sound/announcer/vox_fem/communication.ogg', + "complete" = 'sound/announcer/vox_fem/complete.ogg', + "completed" = 'sound/announcer/vox_fem/completed.ogg', + "completion" = 'sound/announcer/vox_fem/completion.ogg', + "complex" = 'sound/announcer/vox_fem/complex.ogg', + "comply" = 'sound/announcer/vox_fem/comply.ogg', + "computer" = 'sound/announcer/vox_fem/computer.ogg', + "condition" = 'sound/announcer/vox_fem/condition.ogg', + "conditions" = 'sound/announcer/vox_fem/conditions.ogg', + "condom" = 'sound/announcer/vox_fem/condom.ogg', + "configure" = 'sound/announcer/vox_fem/configure.ogg', + "configured" = 'sound/announcer/vox_fem/configured.ogg', + "configuring" = 'sound/announcer/vox_fem/configuring.ogg', + "confirmed" = 'sound/announcer/vox_fem/confirmed.ogg', + "connor" = 'sound/announcer/vox_fem/connor.ogg', + "console" = 'sound/announcer/vox_fem/console.ogg', + "console2" = 'sound/announcer/vox_fem/console2.ogg', + "construct" = 'sound/announcer/vox_fem/construct.ogg', + "container" = 'sound/announcer/vox_fem/container.ogg', + "containment" = 'sound/announcer/vox_fem/containment.ogg', + "contamination" = 'sound/announcer/vox_fem/contamination.ogg', + "contraband" = 'sound/announcer/vox_fem/contraband.ogg', + "control" = 'sound/announcer/vox_fem/control.ogg', + "cook" = 'sound/announcer/vox_fem/cook.ogg', + "cool" = 'sound/announcer/vox_fem/cool.ogg', + "coolant" = 'sound/announcer/vox_fem/coolant.ogg', + "cooling" = 'sound/announcer/vox_fem/cooling.ogg', + "coomer" = 'sound/announcer/vox_fem/coomer.ogg', + "core" = 'sound/announcer/vox_fem/core.ogg', + "corgi" = 'sound/announcer/vox_fem/corgi.ogg', + "corporation" = 'sound/announcer/vox_fem/corporation.ogg', + "correct" = 'sound/announcer/vox_fem/correct.ogg', + "corridor" = 'sound/announcer/vox_fem/corridor.ogg', + "corridors" = 'sound/announcer/vox_fem/corridors.ogg', + "could" = 'sound/announcer/vox_fem/could.ogg', + "couldnt" = 'sound/announcer/vox_fem/couldnt.ogg', + "countdown" = 'sound/announcer/vox_fem/countdown.ogg', + "coward" = 'sound/announcer/vox_fem/coward.ogg', + "cowards" = 'sound/announcer/vox_fem/cowards.ogg', + "crate" = 'sound/announcer/vox_fem/crate.ogg', + "create" = 'sound/announcer/vox_fem/create.ogg', + "created" = 'sound/announcer/vox_fem/created.ogg', + "creating" = 'sound/announcer/vox_fem/creating.ogg', + "creature" = 'sound/announcer/vox_fem/creature.ogg', + "crew" = 'sound/announcer/vox_fem/crew.ogg', + "critical" = 'sound/announcer/vox_fem/critical.ogg', + "cross" = 'sound/announcer/vox_fem/cross.ogg', + "cryogenic" = 'sound/announcer/vox_fem/cryogenic.ogg', + "crystal" = 'sound/announcer/vox_fem/crystal.ogg', + "cult" = 'sound/announcer/vox_fem/cult.ogg', + "cultist" = 'sound/announcer/vox_fem/cultist.ogg', + "cunt" = 'sound/announcer/vox_fem/cunt.ogg', + "curator" = 'sound/announcer/vox_fem/curator.ogg', + "cyborg" = 'sound/announcer/vox_fem/cyborg.ogg', + "cyborgs" = 'sound/announcer/vox_fem/cyborgs.ogg', + "d" = 'sound/announcer/vox_fem/d.ogg', + "damage" = 'sound/announcer/vox_fem/damage.ogg', + "damaged" = 'sound/announcer/vox_fem/damaged.ogg', + "danger" = 'sound/announcer/vox_fem/danger.ogg', + "dangerous" = 'sound/announcer/vox_fem/dangerous.ogg', + "day" = 'sound/announcer/vox_fem/day.ogg', + "deactivated" = 'sound/announcer/vox_fem/deactivated.ogg', + "dead" = 'sound/announcer/vox_fem/dead.ogg', + "death" = 'sound/announcer/vox_fem/death.ogg', + "decompression" = 'sound/announcer/vox_fem/decompression.ogg', + "decontamination" = 'sound/announcer/vox_fem/decontamination.ogg', + "deeoo" = 'sound/announcer/vox_fem/deeoo.ogg', + "defense" = 'sound/announcer/vox_fem/defense.ogg', + "degrees" = 'sound/announcer/vox_fem/degrees.ogg', + "delaminating" = 'sound/announcer/vox_fem/delaminating.ogg', + "delamination" = 'sound/announcer/vox_fem/delamination.ogg', + "delta" = 'sound/announcer/vox_fem/delta.ogg', + "demon" = 'sound/announcer/vox_fem/demon.ogg', + "denied" = 'sound/announcer/vox_fem/denied.ogg', + "deny" = 'sound/announcer/vox_fem/deny.ogg', + "departures" = 'sound/announcer/vox_fem/departures.ogg', + "deploy" = 'sound/announcer/vox_fem/deploy.ogg', + "deployed" = 'sound/announcer/vox_fem/deployed.ogg', + "desire" = 'sound/announcer/vox_fem/desire.ogg', + "desist" = 'sound/announcer/vox_fem/desist.ogg', + "destroy" = 'sound/announcer/vox_fem/destroy.ogg', + "destroyed" = 'sound/announcer/vox_fem/destroyed.ogg', + "destruction" = 'sound/announcer/vox_fem/destruction.ogg', + "detain" = 'sound/announcer/vox_fem/detain.ogg', + "detect" = 'sound/announcer/vox_fem/detect.ogg', + "detected" = 'sound/announcer/vox_fem/detected.ogg', + "detecting" = 'sound/announcer/vox_fem/detecting.ogg', + "detective" = 'sound/announcer/vox_fem/detective.ogg', + "detonation" = 'sound/announcer/vox_fem/detonation.ogg', + "device" = 'sound/announcer/vox_fem/device.ogg', + "devil" = 'sound/announcer/vox_fem/devil.ogg', + "did" = 'sound/announcer/vox_fem/did.ogg', + "die" = 'sound/announcer/vox_fem/die.ogg', + "died" = 'sound/announcer/vox_fem/died.ogg', + "different" = 'sound/announcer/vox_fem/different.ogg', + "dimensional" = 'sound/announcer/vox_fem/dimensional.ogg', + "dioxide" = 'sound/announcer/vox_fem/dioxide.ogg', + "direct" = 'sound/announcer/vox_fem/direct.ogg', + "director" = 'sound/announcer/vox_fem/director.ogg', + "dirt" = 'sound/announcer/vox_fem/dirt.ogg', + "disabled" = 'sound/announcer/vox_fem/disabled.ogg', + "disease" = 'sound/announcer/vox_fem/disease.ogg', + "disengaged" = 'sound/announcer/vox_fem/disengaged.ogg', + "dish" = 'sound/announcer/vox_fem/dish.ogg', + "disk" = 'sound/announcer/vox_fem/disk.ogg', + "disposal" = 'sound/announcer/vox_fem/disposal.ogg', + "distance" = 'sound/announcer/vox_fem/distance.ogg', + "distortion" = 'sound/announcer/vox_fem/distortion.ogg', + "do" = 'sound/announcer/vox_fem/do.ogg', + "doctor" = 'sound/announcer/vox_fem/doctor.ogg', + "dog" = 'sound/announcer/vox_fem/dog.ogg', + "dont" = 'sound/announcer/vox_fem/dont.ogg', + "doomsday" = 'sound/announcer/vox_fem/doomsday.ogg', + "doop" = 'sound/announcer/vox_fem/doop.ogg', + "door" = 'sound/announcer/vox_fem/door.ogg', + "dormitory" = 'sound/announcer/vox_fem/dormitory.ogg', + "dot" = 'sound/announcer/vox_fem/dot.ogg', + "double" = 'sound/announcer/vox_fem/double.ogg', + "down" = 'sound/announcer/vox_fem/down.ogg', + "dress" = 'sound/announcer/vox_fem/dress.ogg', + "dressed" = 'sound/announcer/vox_fem/dressed.ogg', + "dressing" = 'sound/announcer/vox_fem/dressing.ogg', + "drone" = 'sound/announcer/vox_fem/drone.ogg', + "dual" = 'sound/announcer/vox_fem/dual.ogg', + "duct" = 'sound/announcer/vox_fem/duct.ogg', + "e" = 'sound/announcer/vox_fem/e.ogg', + "easily" = 'sound/announcer/vox_fem/easily.ogg', + "east" = 'sound/announcer/vox_fem/east.ogg', + "eat" = 'sound/announcer/vox_fem/eat.ogg', + "eaten" = 'sound/announcer/vox_fem/eaten.ogg', + "echo" = 'sound/announcer/vox_fem/echo.ogg', + "ed" = 'sound/announcer/vox_fem/ed.ogg', + "education" = 'sound/announcer/vox_fem/education.ogg', + "effect" = 'sound/announcer/vox_fem/effect.ogg', + "effects" = 'sound/announcer/vox_fem/effects.ogg', + "egress" = 'sound/announcer/vox_fem/egress.ogg', + "eight" = 'sound/announcer/vox_fem/eight.ogg', + "eighteen" = 'sound/announcer/vox_fem/eighteen.ogg', + "eighty" = 'sound/announcer/vox_fem/eighty.ogg', + "electric" = 'sound/announcer/vox_fem/electric.ogg', + "electrical" = 'sound/announcer/vox_fem/electrical.ogg', + "electromagnetic" = 'sound/announcer/vox_fem/electromagnetic.ogg', + "elevator" = 'sound/announcer/vox_fem/elevator.ogg', + "eleven" = 'sound/announcer/vox_fem/eleven.ogg', + "eliminate" = 'sound/announcer/vox_fem/eliminate.ogg', + "emergency" = 'sound/announcer/vox_fem/emergency.ogg', + "emitted" = 'sound/announcer/vox_fem/emitted.ogg', + "emitter" = 'sound/announcer/vox_fem/emitter.ogg', + "emitting" = 'sound/announcer/vox_fem/emitting.ogg', + "enabled" = 'sound/announcer/vox_fem/enabled.ogg', + "end" = 'sound/announcer/vox_fem/end.ogg', + "ends" = 'sound/announcer/vox_fem/ends.ogg', + "energy" = 'sound/announcer/vox_fem/energy.ogg', + "engage" = 'sound/announcer/vox_fem/engage.ogg', + "engaged" = 'sound/announcer/vox_fem/engaged.ogg', + "engine" = 'sound/announcer/vox_fem/engine.ogg', + "engineer" = 'sound/announcer/vox_fem/engineer.ogg', + "engineering" = 'sound/announcer/vox_fem/engineering.ogg', + "enormous" = 'sound/announcer/vox_fem/enormous.ogg', + "enough" = 'sound/announcer/vox_fem/enough.ogg', + "enter" = 'sound/announcer/vox_fem/enter.ogg', + "entity" = 'sound/announcer/vox_fem/entity.ogg', + "entry" = 'sound/announcer/vox_fem/entry.ogg', + "environment" = 'sound/announcer/vox_fem/environment.ogg', + "epic" = 'sound/announcer/vox_fem/epic.ogg', + "equipment" = 'sound/announcer/vox_fem/equipment.ogg', + "error" = 'sound/announcer/vox_fem/error.ogg', + "escape" = 'sound/announcer/vox_fem/escape.ogg', + "ethereal" = 'sound/announcer/vox_fem/ethereal.ogg', + "eva" = 'sound/announcer/vox_fem/eva.ogg', + "evacuate" = 'sound/announcer/vox_fem/evacuate.ogg', + "even" = 'sound/announcer/vox_fem/even.ogg', + "ever" = 'sound/announcer/vox_fem/ever.ogg', + "every" = 'sound/announcer/vox_fem/every.ogg', + "everybody" = 'sound/announcer/vox_fem/everybody.ogg', + "everyone" = 'sound/announcer/vox_fem/everyone.ogg', + "exchange" = 'sound/announcer/vox_fem/exchange.ogg', + "execute" = 'sound/announcer/vox_fem/execute.ogg', + "exit" = 'sound/announcer/vox_fem/exit.ogg', + "expect" = 'sound/announcer/vox_fem/expect.ogg', + "experiment" = 'sound/announcer/vox_fem/experiment.ogg', + "experimental" = 'sound/announcer/vox_fem/experimental.ogg', + "explode" = 'sound/announcer/vox_fem/explode.ogg', + "exploded" = 'sound/announcer/vox_fem/exploded.ogg', + "exploding" = 'sound/announcer/vox_fem/exploding.ogg', + "explosion" = 'sound/announcer/vox_fem/explosion.ogg', + "explosive" = 'sound/announcer/vox_fem/explosive.ogg', + "exposure" = 'sound/announcer/vox_fem/exposure.ogg', + "exterminate" = 'sound/announcer/vox_fem/exterminate.ogg', + "external" = 'sound/announcer/vox_fem/external.ogg', + "extinguish" = 'sound/announcer/vox_fem/extinguish.ogg', + "extinguisher" = 'sound/announcer/vox_fem/extinguisher.ogg', + "extra" = 'sound/announcer/vox_fem/extra.ogg', + "extreme" = 'sound/announcer/vox_fem/extreme.ogg', + "f" = 'sound/announcer/vox_fem/f.ogg', + "facility" = 'sound/announcer/vox_fem/facility.ogg', + "factory" = 'sound/announcer/vox_fem/factory.ogg', + "fahrenheit" = 'sound/announcer/vox_fem/fahrenheit.ogg', + "failed" = 'sound/announcer/vox_fem/failed.ogg', + "failure" = 'sound/announcer/vox_fem/failure.ogg', + "false" = 'sound/announcer/vox_fem/false.ogg', + "farthest" = 'sound/announcer/vox_fem/farthest.ogg', + "fast" = 'sound/announcer/vox_fem/fast.ogg', + "fauna" = 'sound/announcer/vox_fem/fauna.ogg', + "feature" = 'sound/announcer/vox_fem/feature.ogg', + "featured" = 'sound/announcer/vox_fem/featured.ogg', + "features" = 'sound/announcer/vox_fem/features.ogg', + "featuring" = 'sound/announcer/vox_fem/featuring.ogg', + "feet" = 'sound/announcer/vox_fem/feet.ogg', + "felinid" = 'sound/announcer/vox_fem/felinid.ogg', + "few" = 'sound/announcer/vox_fem/few.ogg', + "field" = 'sound/announcer/vox_fem/field.ogg', + "fifteen" = 'sound/announcer/vox_fem/fifteen.ogg', + "fifth" = 'sound/announcer/vox_fem/fifth.ogg', + "fifty" = 'sound/announcer/vox_fem/fifty.ogg', + "filter" = 'sound/announcer/vox_fem/filter.ogg', + "filters" = 'sound/announcer/vox_fem/filters.ogg', + "final" = 'sound/announcer/vox_fem/final.ogg', + "fine" = 'sound/announcer/vox_fem/fine.ogg', + "fire" = 'sound/announcer/vox_fem/fire.ogg', + "first" = 'sound/announcer/vox_fem/first.ogg', + "five" = 'sound/announcer/vox_fem/five.ogg', + "fix" = 'sound/announcer/vox_fem/fix.ogg', + "flooding" = 'sound/announcer/vox_fem/flooding.ogg', + "floor" = 'sound/announcer/vox_fem/floor.ogg', + "flyman" = 'sound/announcer/vox_fem/flyman.ogg', + "fool" = 'sound/announcer/vox_fem/fool.ogg', + "foolish" = 'sound/announcer/vox_fem/foolish.ogg', + "for" = 'sound/announcer/vox_fem/for.ogg', + "forbidden" = 'sound/announcer/vox_fem/forbidden.ogg', + "force" = 'sound/announcer/vox_fem/force.ogg', + "fore" = 'sound/announcer/vox_fem/fore.ogg', + "form" = 'sound/announcer/vox_fem/form.ogg', + "formed" = 'sound/announcer/vox_fem/formed.ogg', + "forms" = 'sound/announcer/vox_fem/forms.ogg', + "forty" = 'sound/announcer/vox_fem/forty.ogg', + "found" = 'sound/announcer/vox_fem/found.ogg', + "four" = 'sound/announcer/vox_fem/four.ogg', + "fourteen" = 'sound/announcer/vox_fem/fourteen.ogg', + "fourth" = 'sound/announcer/vox_fem/fourth.ogg', + "fourty" = 'sound/announcer/vox_fem/fourty.ogg', + "foxtrot" = 'sound/announcer/vox_fem/foxtrot.ogg', + "free" = 'sound/announcer/vox_fem/free.ogg', + "freeman" = 'sound/announcer/vox_fem/freeman.ogg', + "freeze" = 'sound/announcer/vox_fem/freeze.ogg', + "freezer" = 'sound/announcer/vox_fem/freezer.ogg', + "freezing" = 'sound/announcer/vox_fem/freezing.ogg', + "freon" = 'sound/announcer/vox_fem/freon.ogg', + "from" = 'sound/announcer/vox_fem/from.ogg', + "front" = 'sound/announcer/vox_fem/front.ogg', + "froze" = 'sound/announcer/vox_fem/froze.ogg', + "frozen" = 'sound/announcer/vox_fem/frozen.ogg', + "fuck" = 'sound/announcer/vox_fem/fuck.ogg', + "fucking" = 'sound/announcer/vox_fem/fucking.ogg', + "fucks" = 'sound/announcer/vox_fem/fucks.ogg', + "fuel" = 'sound/announcer/vox_fem/fuel.ogg', + "g" = 'sound/announcer/vox_fem/g.ogg', + "gas" = 'sound/announcer/vox_fem/gas.ogg', + "gases" = 'sound/announcer/vox_fem/gases.ogg', + "gave" = 'sound/announcer/vox_fem/gave.ogg', + "gear" = 'sound/announcer/vox_fem/gear.ogg', + "geared" = 'sound/announcer/vox_fem/geared.ogg', + "gearing" = 'sound/announcer/vox_fem/gearing.ogg', + "generate" = 'sound/announcer/vox_fem/generate.ogg', + "generated" = 'sound/announcer/vox_fem/generated.ogg', + "generating" = 'sound/announcer/vox_fem/generating.ogg', + "generator" = 'sound/announcer/vox_fem/generator.ogg', + "geneticist" = 'sound/announcer/vox_fem/geneticist.ogg', + "get" = 'sound/announcer/vox_fem/get.ogg', + "give" = 'sound/announcer/vox_fem/give.ogg', + "given" = 'sound/announcer/vox_fem/given.ogg', + "glory" = 'sound/announcer/vox_fem/glory.ogg', + "go" = 'sound/announcer/vox_fem/go.ogg', + "god" = 'sound/announcer/vox_fem/god.ogg', + "going" = 'sound/announcer/vox_fem/going.ogg', + "golem" = 'sound/announcer/vox_fem/golem.ogg', + "good" = 'sound/announcer/vox_fem/good.ogg', + "goodbye" = 'sound/announcer/vox_fem/goodbye.ogg', + "gordon" = 'sound/announcer/vox_fem/gordon.ogg', + "got" = 'sound/announcer/vox_fem/got.ogg', + "government" = 'sound/announcer/vox_fem/government.ogg', + "granted" = 'sound/announcer/vox_fem/granted.ogg', + "gravity" = 'sound/announcer/vox_fem/gravity.ogg', + "gray" = 'sound/announcer/vox_fem/gray.ogg', + "great" = 'sound/announcer/vox_fem/great.ogg', + "green" = 'sound/announcer/vox_fem/green.ogg', + "grenade" = 'sound/announcer/vox_fem/grenade.ogg', + "guard" = 'sound/announcer/vox_fem/guard.ogg', + "gulf" = 'sound/announcer/vox_fem/gulf.ogg', + "gun" = 'sound/announcer/vox_fem/gun.ogg', + "guthrie" = 'sound/announcer/vox_fem/guthrie.ogg', + "h" = 'sound/announcer/vox_fem/h.ogg', + "hacker" = 'sound/announcer/vox_fem/hacker.ogg', + "hackers" = 'sound/announcer/vox_fem/hackers.ogg', + "had" = 'sound/announcer/vox_fem/had.ogg', + "hall" = 'sound/announcer/vox_fem/hall.ogg', + "hallway" = 'sound/announcer/vox_fem/hallway.ogg', + "halon" = 'sound/announcer/vox_fem/halon.ogg', + "handling" = 'sound/announcer/vox_fem/handling.ogg', + "hangar" = 'sound/announcer/vox_fem/hangar.ogg', + "hard" = 'sound/announcer/vox_fem/hard.ogg', + "hardly" = 'sound/announcer/vox_fem/hardly.ogg', + "harm" = 'sound/announcer/vox_fem/harm.ogg', + "harmful" = 'sound/announcer/vox_fem/harmful.ogg', + "harness" = 'sound/announcer/vox_fem/harness.ogg', + "harnessed" = 'sound/announcer/vox_fem/harnessed.ogg', + "harnessing" = 'sound/announcer/vox_fem/harnessing.ogg', + "has" = 'sound/announcer/vox_fem/has.ogg', + "have" = 'sound/announcer/vox_fem/have.ogg', + "hazard" = 'sound/announcer/vox_fem/hazard.ogg', + "he" = 'sound/announcer/vox_fem/he.ogg', + "head" = 'sound/announcer/vox_fem/head.ogg', + "heal" = 'sound/announcer/vox_fem/heal.ogg', + "healed" = 'sound/announcer/vox_fem/healed.ogg', + "healing" = 'sound/announcer/vox_fem/healing.ogg', + "healium" = 'sound/announcer/vox_fem/healium.ogg', + "health" = 'sound/announcer/vox_fem/health.ogg', + "heat" = 'sound/announcer/vox_fem/heat.ogg', + "heated" = 'sound/announcer/vox_fem/heated.ogg', + "heating" = 'sound/announcer/vox_fem/heating.ogg', + "helicopter" = 'sound/announcer/vox_fem/helicopter.ogg', + "helium" = 'sound/announcer/vox_fem/helium.ogg', + "hello" = 'sound/announcer/vox_fem/hello.ogg', + "help" = 'sound/announcer/vox_fem/help.ogg', + "her" = 'sound/announcer/vox_fem/her.ogg', + "here" = 'sound/announcer/vox_fem/here.ogg', + "heretic" = 'sound/announcer/vox_fem/heretic.ogg', + "hide" = 'sound/announcer/vox_fem/hide.ogg', + "high" = 'sound/announcer/vox_fem/high.ogg', + "highest" = 'sound/announcer/vox_fem/highest.ogg', + "him" = 'sound/announcer/vox_fem/him.ogg', + "hit" = 'sound/announcer/vox_fem/hit.ogg', + "hole" = 'sound/announcer/vox_fem/hole.ogg', + "honk" = 'sound/announcer/vox_fem/honk.ogg', + "hop" = 'sound/announcer/vox_fem/hop.ogg', + "hos" = 'sound/announcer/vox_fem/hos.ogg', + "hostile" = 'sound/announcer/vox_fem/hostile.ogg', + "hot" = 'sound/announcer/vox_fem/hot.ogg', + "hotel" = 'sound/announcer/vox_fem/hotel.ogg', + "hour" = 'sound/announcer/vox_fem/hour.ogg', + "hours" = 'sound/announcer/vox_fem/hours.ogg', + "how" = 'sound/announcer/vox_fem/how.ogg', + "human" = 'sound/announcer/vox_fem/human.ogg', + "humanoid" = 'sound/announcer/vox_fem/humanoid.ogg', + "humans" = 'sound/announcer/vox_fem/humans.ogg', + "hundred" = 'sound/announcer/vox_fem/hundred.ogg', + "hunger" = 'sound/announcer/vox_fem/hunger.ogg', + "hurt" = 'sound/announcer/vox_fem/hurt.ogg', + "hydro" = 'sound/announcer/vox_fem/hydro.ogg', + "hydrogen" = 'sound/announcer/vox_fem/hydrogen.ogg', + "hydroponics" = 'sound/announcer/vox_fem/hydroponics.ogg', + "hyper-noblium" = 'sound/announcer/vox_fem/hyper-noblium.ogg', + "i" = 'sound/announcer/vox_fem/i.ogg', + "ian" = 'sound/announcer/vox_fem/ian.ogg', + "idiot" = 'sound/announcer/vox_fem/idiot.ogg', + "if" = 'sound/announcer/vox_fem/if.ogg', + "if2" = 'sound/announcer/vox_fem/if2.ogg', + "illegal" = 'sound/announcer/vox_fem/illegal.ogg', + "immediate" = 'sound/announcer/vox_fem/immediate.ogg', + "immediately" = 'sound/announcer/vox_fem/immediately.ogg', + "immortal" = 'sound/announcer/vox_fem/immortal.ogg', + "impossible" = 'sound/announcer/vox_fem/impossible.ogg', + "in" = 'sound/announcer/vox_fem/in.ogg', + "inches" = 'sound/announcer/vox_fem/inches.ogg', + "india" = 'sound/announcer/vox_fem/india.ogg', + "inert" = 'sound/announcer/vox_fem/inert.ogg', + "ing" = 'sound/announcer/vox_fem/ing.ogg', + "inoperative" = 'sound/announcer/vox_fem/inoperative.ogg', + "inside" = 'sound/announcer/vox_fem/inside.ogg', + "inspection" = 'sound/announcer/vox_fem/inspection.ogg', + "inspector" = 'sound/announcer/vox_fem/inspector.ogg', + "interchange" = 'sound/announcer/vox_fem/interchange.ogg', + "internal" = 'sound/announcer/vox_fem/internal.ogg', + "internals" = 'sound/announcer/vox_fem/internals.ogg', + "intruder" = 'sound/announcer/vox_fem/intruder.ogg', + "invalid" = 'sound/announcer/vox_fem/invalid.ogg', + "invalidate" = 'sound/announcer/vox_fem/invalidate.ogg', + "invasion" = 'sound/announcer/vox_fem/invasion.ogg', + "irradiate" = 'sound/announcer/vox_fem/irradiate.ogg', + "is" = 'sound/announcer/vox_fem/is.ogg', + "it" = 'sound/announcer/vox_fem/it.ogg', + "its" = 'sound/announcer/vox_fem/its.ogg', + "j" = 'sound/announcer/vox_fem/j.ogg', + "janitor" = 'sound/announcer/vox_fem/janitor.ogg', + "jesus" = 'sound/announcer/vox_fem/jesus.ogg', + "job" = 'sound/announcer/vox_fem/job.ogg', + "jobs" = 'sound/announcer/vox_fem/jobs.ogg', + "johnson" = 'sound/announcer/vox_fem/johnson.ogg', + "jolly" = 'sound/announcer/vox_fem/jolly.ogg', + "juliet" = 'sound/announcer/vox_fem/juliet.ogg', + "k" = 'sound/announcer/vox_fem/k.ogg', + "kelvin" = 'sound/announcer/vox_fem/kelvin.ogg', + "key" = 'sound/announcer/vox_fem/key.ogg', + "kidnapped" = 'sound/announcer/vox_fem/kidnapped.ogg', + "kidnapping" = 'sound/announcer/vox_fem/kidnapping.ogg', + "kill" = 'sound/announcer/vox_fem/kill.ogg', + "killed" = 'sound/announcer/vox_fem/killed.ogg', + "killer" = 'sound/announcer/vox_fem/killer.ogg', + "kilo" = 'sound/announcer/vox_fem/kilo.ogg', + "kit" = 'sound/announcer/vox_fem/kit.ogg', + "kitchen" = 'sound/announcer/vox_fem/kitchen.ogg', + "l" = 'sound/announcer/vox_fem/l.ogg', + "lab" = 'sound/announcer/vox_fem/lab.ogg', + "lambda" = 'sound/announcer/vox_fem/lambda.ogg', + "large" = 'sound/announcer/vox_fem/large.ogg', + "laser" = 'sound/announcer/vox_fem/laser.ogg', + "last" = 'sound/announcer/vox_fem/last.ogg', + "launch" = 'sound/announcer/vox_fem/launch.ogg', + "lavaland" = 'sound/announcer/vox_fem/lavaland.ogg', + "law" = 'sound/announcer/vox_fem/law.ogg', + "laws" = 'sound/announcer/vox_fem/laws.ogg', + "lawyer" = 'sound/announcer/vox_fem/lawyer.ogg', + "leak" = 'sound/announcer/vox_fem/leak.ogg', + "leave" = 'sound/announcer/vox_fem/leave.ogg', + "left" = 'sound/announcer/vox_fem/left.ogg', + "legal" = 'sound/announcer/vox_fem/legal.ogg', + "level" = 'sound/announcer/vox_fem/level.ogg', + "lever" = 'sound/announcer/vox_fem/lever.ogg', + "library" = 'sound/announcer/vox_fem/library.ogg', + "lie" = 'sound/announcer/vox_fem/lie.ogg', + "lieutenant" = 'sound/announcer/vox_fem/lieutenant.ogg', + "life" = 'sound/announcer/vox_fem/life.ogg', + "lifeform" = 'sound/announcer/vox_fem/lifeform.ogg', + "light" = 'sound/announcer/vox_fem/light.ogg', + "lightbulb" = 'sound/announcer/vox_fem/lightbulb.ogg', + "lima" = 'sound/announcer/vox_fem/lima.ogg', + "limit" = 'sound/announcer/vox_fem/limit.ogg', + "limited" = 'sound/announcer/vox_fem/limited.ogg', + "liquid" = 'sound/announcer/vox_fem/liquid.ogg', + "list" = 'sound/announcer/vox_fem/list.ogg', + "live" = 'sound/announcer/vox_fem/live.ogg', + "live2" = 'sound/announcer/vox_fem/live2.ogg', + "lizard" = 'sound/announcer/vox_fem/lizard.ogg', + "lizardperson" = 'sound/announcer/vox_fem/lizardperson.ogg', + "loading" = 'sound/announcer/vox_fem/loading.ogg', + "locate" = 'sound/announcer/vox_fem/locate.ogg', + "located" = 'sound/announcer/vox_fem/located.ogg', + "location" = 'sound/announcer/vox_fem/location.ogg', + "lock" = 'sound/announcer/vox_fem/lock.ogg', + "locked" = 'sound/announcer/vox_fem/locked.ogg', + "locker" = 'sound/announcer/vox_fem/locker.ogg', + "lockout" = 'sound/announcer/vox_fem/lockout.ogg', + "long" = 'sound/announcer/vox_fem/long.ogg', + "look" = 'sound/announcer/vox_fem/look.ogg', + "loop" = 'sound/announcer/vox_fem/loop.ogg', + "loose" = 'sound/announcer/vox_fem/loose.ogg', + "lot" = 'sound/announcer/vox_fem/lot.ogg', + "lower" = 'sound/announcer/vox_fem/lower.ogg', + "lowest" = 'sound/announcer/vox_fem/lowest.ogg', + "lusty" = 'sound/announcer/vox_fem/lusty.ogg', + "m" = 'sound/announcer/vox_fem/m.ogg', + "machine" = 'sound/announcer/vox_fem/machine.ogg', + "made" = 'sound/announcer/vox_fem/made.ogg', + "magic" = 'sound/announcer/vox_fem/magic.ogg', + "magnetic" = 'sound/announcer/vox_fem/magnetic.ogg', + "main" = 'sound/announcer/vox_fem/main.ogg', + "maintainer" = 'sound/announcer/vox_fem/maintainer.ogg', + "maintenance" = 'sound/announcer/vox_fem/maintenance.ogg', + "major" = 'sound/announcer/vox_fem/major.ogg', + "making" = 'sound/announcer/vox_fem/making.ogg', + "malfunction" = 'sound/announcer/vox_fem/malfunction.ogg', + "man" = 'sound/announcer/vox_fem/man.ogg', + "many" = 'sound/announcer/vox_fem/many.ogg', + "mass" = 'sound/announcer/vox_fem/mass.ogg', + "materials" = 'sound/announcer/vox_fem/materials.ogg', + "maximum" = 'sound/announcer/vox_fem/maximum.ogg', + "may" = 'sound/announcer/vox_fem/may.ogg', + "me" = 'sound/announcer/vox_fem/me.ogg', + "mean" = 'sound/announcer/vox_fem/mean.ogg', + "means" = 'sound/announcer/vox_fem/means.ogg', + "meat" = 'sound/announcer/vox_fem/meat.ogg', + "medbay" = 'sound/announcer/vox_fem/medbay.ogg', + "medical" = 'sound/announcer/vox_fem/medical.ogg', + "medium" = 'sound/announcer/vox_fem/medium.ogg', + "megafauna" = 'sound/announcer/vox_fem/megafauna.ogg', + "men" = 'sound/announcer/vox_fem/men.ogg', + "mercy" = 'sound/announcer/vox_fem/mercy.ogg', + "mesa" = 'sound/announcer/vox_fem/mesa.ogg', + "meson" = 'sound/announcer/vox_fem/meson.ogg', + "message" = 'sound/announcer/vox_fem/message.ogg', + "meter" = 'sound/announcer/vox_fem/meter.ogg', + "method" = 'sound/announcer/vox_fem/method.ogg', + "miasma" = 'sound/announcer/vox_fem/miasma.ogg', + "micro" = 'sound/announcer/vox_fem/micro.ogg', + "middle" = 'sound/announcer/vox_fem/middle.ogg', + "mike" = 'sound/announcer/vox_fem/mike.ogg', + "miles" = 'sound/announcer/vox_fem/miles.ogg', + "military" = 'sound/announcer/vox_fem/military.ogg', + "milli" = 'sound/announcer/vox_fem/milli.ogg', + "million" = 'sound/announcer/vox_fem/million.ogg', + "mime" = 'sound/announcer/vox_fem/mime.ogg', + "minefield" = 'sound/announcer/vox_fem/minefield.ogg', + "miner" = 'sound/announcer/vox_fem/miner.ogg', + "minimum" = 'sound/announcer/vox_fem/minimum.ogg', + "minor" = 'sound/announcer/vox_fem/minor.ogg', + "minute" = 'sound/announcer/vox_fem/minute.ogg', + "minutes" = 'sound/announcer/vox_fem/minutes.ogg', + "mister" = 'sound/announcer/vox_fem/mister.ogg', + "mixture" = 'sound/announcer/vox_fem/mixture.ogg', + "mode" = 'sound/announcer/vox_fem/mode.ogg', + "modification" = 'sound/announcer/vox_fem/modification.ogg', + "money" = 'sound/announcer/vox_fem/money.ogg', + "monkey" = 'sound/announcer/vox_fem/monkey.ogg', + "most" = 'sound/announcer/vox_fem/most.ogg', + "moth" = 'sound/announcer/vox_fem/moth.ogg', + "mothperson" = 'sound/announcer/vox_fem/mothperson.ogg', + "motor" = 'sound/announcer/vox_fem/motor.ogg', + "motorpool" = 'sound/announcer/vox_fem/motorpool.ogg', + "move" = 'sound/announcer/vox_fem/move.ogg', + "moved" = 'sound/announcer/vox_fem/moved.ogg', + "moving" = 'sound/announcer/vox_fem/moving.ogg', + "multitude" = 'sound/announcer/vox_fem/multitude.ogg', + "murder" = 'sound/announcer/vox_fem/murder.ogg', + "murderer" = 'sound/announcer/vox_fem/murderer.ogg', + "must" = 'sound/announcer/vox_fem/must.ogg', + "my" = 'sound/announcer/vox_fem/my.ogg', + "mythic" = 'sound/announcer/vox_fem/mythic.ogg', + "n" = 'sound/announcer/vox_fem/n.ogg', + "nanotrasen" = 'sound/announcer/vox_fem/nanotrasen.ogg', + "near" = 'sound/announcer/vox_fem/near.ogg', + "nearest" = 'sound/announcer/vox_fem/nearest.ogg', + "nearly" = 'sound/announcer/vox_fem/nearly.ogg', + "need" = 'sound/announcer/vox_fem/need.ogg', + "never" = 'sound/announcer/vox_fem/never.ogg', + "nice" = 'sound/announcer/vox_fem/nice.ogg', + "night" = 'sound/announcer/vox_fem/night.ogg', + "nine" = 'sound/announcer/vox_fem/nine.ogg', + "nineteen" = 'sound/announcer/vox_fem/nineteen.ogg', + "ninety" = 'sound/announcer/vox_fem/ninety.ogg', + "nitrogen" = 'sound/announcer/vox_fem/nitrogen.ogg', + "no" = 'sound/announcer/vox_fem/no.ogg', + "nominal" = 'sound/announcer/vox_fem/nominal.ogg', + "none" = 'sound/announcer/vox_fem/none.ogg', + "normal" = 'sound/announcer/vox_fem/normal.ogg', + "normally" = 'sound/announcer/vox_fem/normally.ogg', + "north" = 'sound/announcer/vox_fem/north.ogg', + "northeast" = 'sound/announcer/vox_fem/northeast.ogg', + "northwest" = 'sound/announcer/vox_fem/northwest.ogg', + "not" = 'sound/announcer/vox_fem/not.ogg', + "notably" = 'sound/announcer/vox_fem/notably.ogg', + "november" = 'sound/announcer/vox_fem/november.ogg', + "now" = 'sound/announcer/vox_fem/now.ogg', + "nuclear" = 'sound/announcer/vox_fem/nuclear.ogg', + "nuke" = 'sound/announcer/vox_fem/nuke.ogg', + "number" = 'sound/announcer/vox_fem/number.ogg', + "o" = 'sound/announcer/vox_fem/o.ogg', + "object" = 'sound/announcer/vox_fem/object.ogg', + "objective" = 'sound/announcer/vox_fem/objective.ogg', + "obliterate" = 'sound/announcer/vox_fem/obliterate.ogg', + "obliterated" = 'sound/announcer/vox_fem/obliterated.ogg', + "obliterating" = 'sound/announcer/vox_fem/obliterating.ogg', + "observation" = 'sound/announcer/vox_fem/observation.ogg', + "obtain" = 'sound/announcer/vox_fem/obtain.ogg', + "of" = 'sound/announcer/vox_fem/of.ogg', + "off" = 'sound/announcer/vox_fem/off.ogg', + "office" = 'sound/announcer/vox_fem/office.ogg', + "officer" = 'sound/announcer/vox_fem/officer.ogg', + "oh" = 'sound/announcer/vox_fem/oh.ogg', + "ok" = 'sound/announcer/vox_fem/ok.ogg', + "okay" = 'sound/announcer/vox_fem/okay.ogg', + "on" = 'sound/announcer/vox_fem/on.ogg', + "once" = 'sound/announcer/vox_fem/once.ogg', + "one" = 'sound/announcer/vox_fem/one.ogg', + "oof" = 'sound/announcer/vox_fem/oof.ogg', + "open" = 'sound/announcer/vox_fem/open.ogg', + "opened" = 'sound/announcer/vox_fem/opened.ogg', + "opening" = 'sound/announcer/vox_fem/opening.ogg', + "operating" = 'sound/announcer/vox_fem/operating.ogg', + "operations" = 'sound/announcer/vox_fem/operations.ogg', + "operative" = 'sound/announcer/vox_fem/operative.ogg', + "option" = 'sound/announcer/vox_fem/option.ogg', + "or" = 'sound/announcer/vox_fem/or.ogg', + "order" = 'sound/announcer/vox_fem/order.ogg', + "ordered" = 'sound/announcer/vox_fem/ordered.ogg', + "ordering" = 'sound/announcer/vox_fem/ordering.ogg', + "organic" = 'sound/announcer/vox_fem/organic.ogg', + "oscar" = 'sound/announcer/vox_fem/oscar.ogg', + "out" = 'sound/announcer/vox_fem/out.ogg', + "output" = 'sound/announcer/vox_fem/output.ogg', + "outside" = 'sound/announcer/vox_fem/outside.ogg', + "over" = 'sound/announcer/vox_fem/over.ogg', + "overload" = 'sound/announcer/vox_fem/overload.ogg', + "override" = 'sound/announcer/vox_fem/override.ogg', + "own" = 'sound/announcer/vox_fem/own.ogg', + "oxygen" = 'sound/announcer/vox_fem/oxygen.ogg', + "p" = 'sound/announcer/vox_fem/p.ogg', + "pacification" = 'sound/announcer/vox_fem/pacification.ogg', + "pacify" = 'sound/announcer/vox_fem/pacify.ogg', + "pain" = 'sound/announcer/vox_fem/pain.ogg', + "pal" = 'sound/announcer/vox_fem/pal.ogg', + "panel" = 'sound/announcer/vox_fem/panel.ogg', + "panting" = 'sound/announcer/vox_fem/panting.ogg', + "pathetic" = 'sound/announcer/vox_fem/pathetic.ogg', + "pda" = 'sound/announcer/vox_fem/pda.ogg', + "percent" = 'sound/announcer/vox_fem/percent.ogg', + "perfect" = 'sound/announcer/vox_fem/perfect.ogg', + "perhaps" = 'sound/announcer/vox_fem/perhaps.ogg', + "perimeter" = 'sound/announcer/vox_fem/perimeter.ogg', + "permitted" = 'sound/announcer/vox_fem/permitted.ogg', + "personal" = 'sound/announcer/vox_fem/personal.ogg', + "personnel" = 'sound/announcer/vox_fem/personnel.ogg', + "pipe" = 'sound/announcer/vox_fem/pipe.ogg', + "piping" = 'sound/announcer/vox_fem/piping.ogg', + "piss" = 'sound/announcer/vox_fem/piss.ogg', + "plant" = 'sound/announcer/vox_fem/plant.ogg', + "plasma" = 'sound/announcer/vox_fem/plasma.ogg', + "plasmaman" = 'sound/announcer/vox_fem/plasmaman.ogg', + "platform" = 'sound/announcer/vox_fem/platform.ogg', + "plating" = 'sound/announcer/vox_fem/plating.ogg', + "plausible" = 'sound/announcer/vox_fem/plausible.ogg', + "please" = 'sound/announcer/vox_fem/please.ogg', + "pluoxium" = 'sound/announcer/vox_fem/pluoxium.ogg', + "point" = 'sound/announcer/vox_fem/point.ogg', + "port" = 'sound/announcer/vox_fem/port.ogg', + "portal" = 'sound/announcer/vox_fem/portal.ogg', + "portion" = 'sound/announcer/vox_fem/portion.ogg', + "possible" = 'sound/announcer/vox_fem/possible.ogg', + "power" = 'sound/announcer/vox_fem/power.ogg', + "powered" = 'sound/announcer/vox_fem/powered.ogg', + "powering" = 'sound/announcer/vox_fem/powering.ogg', + "premature" = 'sound/announcer/vox_fem/premature.ogg', + "prematurely" = 'sound/announcer/vox_fem/prematurely.ogg', + "presence" = 'sound/announcer/vox_fem/presence.ogg', + "present" = 'sound/announcer/vox_fem/present.ogg', + "presents" = 'sound/announcer/vox_fem/presents.ogg', + "press" = 'sound/announcer/vox_fem/press.ogg', + "pressure" = 'sound/announcer/vox_fem/pressure.ogg', + "primary" = 'sound/announcer/vox_fem/primary.ogg', + "priority" = 'sound/announcer/vox_fem/priority.ogg', + "prison" = 'sound/announcer/vox_fem/prison.ogg', + "prisoner" = 'sound/announcer/vox_fem/prisoner.ogg', + "proceed" = 'sound/announcer/vox_fem/proceed.ogg', + "processing" = 'sound/announcer/vox_fem/processing.ogg', + "progress" = 'sound/announcer/vox_fem/progress.ogg', + "projectile" = 'sound/announcer/vox_fem/projectile.ogg', + "proper" = 'sound/announcer/vox_fem/proper.ogg', + "propulsion" = 'sound/announcer/vox_fem/propulsion.ogg', + "prosecute" = 'sound/announcer/vox_fem/prosecute.ogg', + "protect" = 'sound/announcer/vox_fem/protect.ogg', + "protected" = 'sound/announcer/vox_fem/protected.ogg', + "protection" = 'sound/announcer/vox_fem/protection.ogg', + "protective" = 'sound/announcer/vox_fem/protective.ogg', + "proto-nitrate" = 'sound/announcer/vox_fem/proto-nitrate.ogg', + "pull" = 'sound/announcer/vox_fem/pull.ogg', + "pulled" = 'sound/announcer/vox_fem/pulled.ogg', + "pulling" = 'sound/announcer/vox_fem/pulling.ogg', + "pump" = 'sound/announcer/vox_fem/pump.ogg', + "pumps" = 'sound/announcer/vox_fem/pumps.ogg', + "push" = 'sound/announcer/vox_fem/push.ogg', + "put" = 'sound/announcer/vox_fem/put.ogg', + "q" = 'sound/announcer/vox_fem/q.ogg', + "quantum" = 'sound/announcer/vox_fem/quantum.ogg', + "quarantine" = 'sound/announcer/vox_fem/quarantine.ogg', + "quartermaster" = 'sound/announcer/vox_fem/quartermaster.ogg', + "quebec" = 'sound/announcer/vox_fem/quebec.ogg', + "queen" = 'sound/announcer/vox_fem/queen.ogg', + "question" = 'sound/announcer/vox_fem/question.ogg', + "questionable" = 'sound/announcer/vox_fem/questionable.ogg', + "questioning" = 'sound/announcer/vox_fem/questioning.ogg', + "quick" = 'sound/announcer/vox_fem/quick.ogg', + "quit" = 'sound/announcer/vox_fem/quit.ogg', + "r" = 'sound/announcer/vox_fem/r.ogg', + "radiation" = 'sound/announcer/vox_fem/radiation.ogg', + "radioactive" = 'sound/announcer/vox_fem/radioactive.ogg', + "rads" = 'sound/announcer/vox_fem/rads.ogg', + "raider" = 'sound/announcer/vox_fem/raider.ogg', + "raiders" = 'sound/announcer/vox_fem/raiders.ogg', + "rapid" = 'sound/announcer/vox_fem/rapid.ogg', + "reach" = 'sound/announcer/vox_fem/reach.ogg', + "reached" = 'sound/announcer/vox_fem/reached.ogg', + "reactor" = 'sound/announcer/vox_fem/reactor.ogg', + "red" = 'sound/announcer/vox_fem/red.ogg', + "relay" = 'sound/announcer/vox_fem/relay.ogg', + "release" = 'sound/announcer/vox_fem/release.ogg', + "released" = 'sound/announcer/vox_fem/released.ogg', + "releasing" = 'sound/announcer/vox_fem/releasing.ogg', + "remaining" = 'sound/announcer/vox_fem/remaining.ogg', + "removal" = 'sound/announcer/vox_fem/removal.ogg', + "remove" = 'sound/announcer/vox_fem/remove.ogg', + "removed" = 'sound/announcer/vox_fem/removed.ogg', + "removing" = 'sound/announcer/vox_fem/removing.ogg', + "renegade" = 'sound/announcer/vox_fem/renegade.ogg', + "repair" = 'sound/announcer/vox_fem/repair.ogg', + "report" = 'sound/announcer/vox_fem/report.ogg', + "reports" = 'sound/announcer/vox_fem/reports.ogg', + "request" = 'sound/announcer/vox_fem/request.ogg', + "requested" = 'sound/announcer/vox_fem/requested.ogg', + "requesting" = 'sound/announcer/vox_fem/requesting.ogg', + "require" = 'sound/announcer/vox_fem/require.ogg', + "required" = 'sound/announcer/vox_fem/required.ogg', + "research" = 'sound/announcer/vox_fem/research.ogg', + "resevoir" = 'sound/announcer/vox_fem/resevoir.ogg', + "resistance" = 'sound/announcer/vox_fem/resistance.ogg', + "resistant" = 'sound/announcer/vox_fem/resistant.ogg', + "resisting" = 'sound/announcer/vox_fem/resisting.ogg', + "resonance" = 'sound/announcer/vox_fem/resonance.ogg', + "rest" = 'sound/announcer/vox_fem/rest.ogg', + "restoration" = 'sound/announcer/vox_fem/restoration.ogg', + "revolution" = 'sound/announcer/vox_fem/revolution.ogg', + "revolutionary" = 'sound/announcer/vox_fem/revolutionary.ogg', + "right" = 'sound/announcer/vox_fem/right.ogg', + "riot" = 'sound/announcer/vox_fem/riot.ogg', + "roboticist" = 'sound/announcer/vox_fem/roboticist.ogg', + "rocket" = 'sound/announcer/vox_fem/rocket.ogg', + "roger" = 'sound/announcer/vox_fem/roger.ogg', + "rogue" = 'sound/announcer/vox_fem/rogue.ogg', + "romeo" = 'sound/announcer/vox_fem/romeo.ogg', + "room" = 'sound/announcer/vox_fem/room.ogg', + "round" = 'sound/announcer/vox_fem/round.ogg', + "run" = 'sound/announcer/vox_fem/run.ogg', + "rune" = 'sound/announcer/vox_fem/rune.ogg', + "runtime" = 'sound/announcer/vox_fem/runtime.ogg', + "s" = 'sound/announcer/vox_fem/s.ogg', + "sabotage" = 'sound/announcer/vox_fem/sabotage.ogg', + "sabotaged" = 'sound/announcer/vox_fem/sabotaged.ogg', + "sabotaging" = 'sound/announcer/vox_fem/sabotaging.ogg', + "safe" = 'sound/announcer/vox_fem/safe.ogg', + "safety" = 'sound/announcer/vox_fem/safety.ogg', + "sairhorn" = 'sound/announcer/vox_fem/sairhorn.ogg', + "same" = 'sound/announcer/vox_fem/same.ogg', + "sarah" = 'sound/announcer/vox_fem/sarah.ogg', + "sargeant" = 'sound/announcer/vox_fem/sargeant.ogg', + "satellite" = 'sound/announcer/vox_fem/satellite.ogg', + "save" = 'sound/announcer/vox_fem/save.ogg', + "saw" = 'sound/announcer/vox_fem/saw.ogg', + "scan" = 'sound/announcer/vox_fem/scan.ogg', + "scanned" = 'sound/announcer/vox_fem/scanned.ogg', + "scanner" = 'sound/announcer/vox_fem/scanner.ogg', + "scanners" = 'sound/announcer/vox_fem/scanners.ogg', + "scanning" = 'sound/announcer/vox_fem/scanning.ogg', + "scensor" = 'sound/announcer/vox_fem/scensor.ogg', + "science" = 'sound/announcer/vox_fem/science.ogg', + "scientist" = 'sound/announcer/vox_fem/scientist.ogg', + "scream" = 'sound/announcer/vox_fem/scream.ogg', + "screen" = 'sound/announcer/vox_fem/screen.ogg', + "screw" = 'sound/announcer/vox_fem/screw.ogg', + "search" = 'sound/announcer/vox_fem/search.ogg', + "second" = 'sound/announcer/vox_fem/second.ogg', + "secondary" = 'sound/announcer/vox_fem/secondary.ogg', + "seconds" = 'sound/announcer/vox_fem/seconds.ogg', + "section" = 'sound/announcer/vox_fem/section.ogg', + "sector" = 'sound/announcer/vox_fem/sector.ogg', + "secure" = 'sound/announcer/vox_fem/secure.ogg', + "secured" = 'sound/announcer/vox_fem/secured.ogg', + "security" = 'sound/announcer/vox_fem/security.ogg', + "seen" = 'sound/announcer/vox_fem/seen.ogg', + "select" = 'sound/announcer/vox_fem/select.ogg', + "selected" = 'sound/announcer/vox_fem/selected.ogg', + "self" = 'sound/announcer/vox_fem/self.ogg', + "sensors" = 'sound/announcer/vox_fem/sensors.ogg', + "server" = 'sound/announcer/vox_fem/server.ogg', + "service" = 'sound/announcer/vox_fem/service.ogg', + "set" = 'sound/announcer/vox_fem/set.ogg', + "seven" = 'sound/announcer/vox_fem/seven.ogg', + "seventeen" = 'sound/announcer/vox_fem/seventeen.ogg', + "seventy" = 'sound/announcer/vox_fem/seventy.ogg', + "sever" = 'sound/announcer/vox_fem/sever.ogg', + "severe" = 'sound/announcer/vox_fem/severe.ogg', + "severed" = 'sound/announcer/vox_fem/severed.ogg', + "severing" = 'sound/announcer/vox_fem/severing.ogg', + "sewage" = 'sound/announcer/vox_fem/sewage.ogg', + "sewer" = 'sound/announcer/vox_fem/sewer.ogg', + "shaft" = 'sound/announcer/vox_fem/shaft.ogg', + "shame" = 'sound/announcer/vox_fem/shame.ogg', + "shameful" = 'sound/announcer/vox_fem/shameful.ogg', + "shameless" = 'sound/announcer/vox_fem/shameless.ogg', + "shard" = 'sound/announcer/vox_fem/shard.ogg', + "she" = 'sound/announcer/vox_fem/she.ogg', + "shield" = 'sound/announcer/vox_fem/shield.ogg', + "shift" = 'sound/announcer/vox_fem/shift.ogg', + "shifts" = 'sound/announcer/vox_fem/shifts.ogg', + "shipment" = 'sound/announcer/vox_fem/shipment.ogg', + "shirt" = 'sound/announcer/vox_fem/shirt.ogg', + "shit" = 'sound/announcer/vox_fem/shit.ogg', + "shitlord" = 'sound/announcer/vox_fem/shitlord.ogg', + "shits" = 'sound/announcer/vox_fem/shits.ogg', + "shitting" = 'sound/announcer/vox_fem/shitting.ogg', + "shock" = 'sound/announcer/vox_fem/shock.ogg', + "shonk" = 'sound/announcer/vox_fem/shonk.ogg', + "shoot" = 'sound/announcer/vox_fem/shoot.ogg', + "shower" = 'sound/announcer/vox_fem/shower.ogg', + "shut" = 'sound/announcer/vox_fem/shut.ogg', + "shuttle" = 'sound/announcer/vox_fem/shuttle.ogg', + "sick" = 'sound/announcer/vox_fem/sick.ogg', + "side" = 'sound/announcer/vox_fem/side.ogg', + "sides" = 'sound/announcer/vox_fem/sides.ogg', + "sierra" = 'sound/announcer/vox_fem/sierra.ogg', + "sight" = 'sound/announcer/vox_fem/sight.ogg', + "silicon" = 'sound/announcer/vox_fem/silicon.ogg', + "silo" = 'sound/announcer/vox_fem/silo.ogg', + "single" = 'sound/announcer/vox_fem/single.ogg', + "singularity" = 'sound/announcer/vox_fem/singularity.ogg', + "siphon" = 'sound/announcer/vox_fem/siphon.ogg', + "siphoning" = 'sound/announcer/vox_fem/siphoning.ogg', + "six" = 'sound/announcer/vox_fem/six.ogg', + "sixteen" = 'sound/announcer/vox_fem/sixteen.ogg', + "sixty" = 'sound/announcer/vox_fem/sixty.ogg', + "skeleton" = 'sound/announcer/vox_fem/skeleton.ogg', + "slaughter" = 'sound/announcer/vox_fem/slaughter.ogg', + "slime" = 'sound/announcer/vox_fem/slime.ogg', + "slip" = 'sound/announcer/vox_fem/slip.ogg', + "slippery" = 'sound/announcer/vox_fem/slippery.ogg', + "slow" = 'sound/announcer/vox_fem/slow.ogg', + "sm" = 'sound/announcer/vox_fem/sm.ogg', + "small" = 'sound/announcer/vox_fem/small.ogg', + "sockmuncher" = 'sound/announcer/vox_fem/sockmuncher.ogg', + "soft" = 'sound/announcer/vox_fem/soft.ogg', + "solar" = 'sound/announcer/vox_fem/solar.ogg', + "solars" = 'sound/announcer/vox_fem/solars.ogg', + "soldier" = 'sound/announcer/vox_fem/soldier.ogg', + "some" = 'sound/announcer/vox_fem/some.ogg', + "someone" = 'sound/announcer/vox_fem/someone.ogg', + "something" = 'sound/announcer/vox_fem/something.ogg', + "son" = 'sound/announcer/vox_fem/son.ogg', + "sorry" = 'sound/announcer/vox_fem/sorry.ogg', + "source" = 'sound/announcer/vox_fem/source.ogg', + "south" = 'sound/announcer/vox_fem/south.ogg', + "southeast" = 'sound/announcer/vox_fem/southeast.ogg', + "southwest" = 'sound/announcer/vox_fem/southwest.ogg', + "space" = 'sound/announcer/vox_fem/space.ogg', + "special" = 'sound/announcer/vox_fem/special.ogg', + "spew" = 'sound/announcer/vox_fem/spew.ogg', + "squad" = 'sound/announcer/vox_fem/squad.ogg', + "square" = 'sound/announcer/vox_fem/square.ogg', + "ss13" = 'sound/announcer/vox_fem/ss13.ogg', + "stairway" = 'sound/announcer/vox_fem/stairway.ogg', + "starboard" = 'sound/announcer/vox_fem/starboard.ogg', + "start" = 'sound/announcer/vox_fem/start.ogg', + "starts" = 'sound/announcer/vox_fem/starts.ogg', + "station" = 'sound/announcer/vox_fem/station.ogg', + "stations" = 'sound/announcer/vox_fem/stations.ogg', + "stationwide" = 'sound/announcer/vox_fem/stationwide.ogg', + "status" = 'sound/announcer/vox_fem/status.ogg', + "stay" = 'sound/announcer/vox_fem/stay.ogg', + "sterile" = 'sound/announcer/vox_fem/sterile.ogg', + "sterilization" = 'sound/announcer/vox_fem/sterilization.ogg', + "stop" = 'sound/announcer/vox_fem/stop.ogg', + "storage" = 'sound/announcer/vox_fem/storage.ogg', + "strong" = 'sound/announcer/vox_fem/strong.ogg', + "stuck" = 'sound/announcer/vox_fem/stuck.ogg', + "sub" = 'sound/announcer/vox_fem/sub.ogg', + "subsurface" = 'sound/announcer/vox_fem/subsurface.ogg', + "such" = 'sound/announcer/vox_fem/such.ogg', + "sudden" = 'sound/announcer/vox_fem/sudden.ogg', + "suffer" = 'sound/announcer/vox_fem/suffer.ogg', + "suit" = 'sound/announcer/vox_fem/suit.ogg', + "suited" = 'sound/announcer/vox_fem/suited.ogg', + "super" = 'sound/announcer/vox_fem/super.ogg', + "superconducting" = 'sound/announcer/vox_fem/superconducting.ogg', + "supercooled" = 'sound/announcer/vox_fem/supercooled.ogg', + "supermatter" = 'sound/announcer/vox_fem/supermatter.ogg', + "supply" = 'sound/announcer/vox_fem/supply.ogg', + "surface" = 'sound/announcer/vox_fem/surface.ogg', + "surrender" = 'sound/announcer/vox_fem/surrender.ogg', + "surround" = 'sound/announcer/vox_fem/surround.ogg', + "surrounded" = 'sound/announcer/vox_fem/surrounded.ogg', + "sweating" = 'sound/announcer/vox_fem/sweating.ogg', + "swhitenoise" = 'sound/announcer/vox_fem/swhitenoise.ogg', + "switch" = 'sound/announcer/vox_fem/switch.ogg', + "syndicate" = 'sound/announcer/vox_fem/syndicate.ogg', + "system" = 'sound/announcer/vox_fem/system.ogg', + "systems" = 'sound/announcer/vox_fem/systems.ogg', + "t" = 'sound/announcer/vox_fem/t.ogg', + "table" = 'sound/announcer/vox_fem/table.ogg', + "tactical" = 'sound/announcer/vox_fem/tactical.ogg', + "taildragger" = 'sound/announcer/vox_fem/taildragger.ogg', + "take" = 'sound/announcer/vox_fem/take.ogg', + "talk" = 'sound/announcer/vox_fem/talk.ogg', + "tampered" = 'sound/announcer/vox_fem/tampered.ogg', + "tango" = 'sound/announcer/vox_fem/tango.ogg', + "tank" = 'sound/announcer/vox_fem/tank.ogg', + "target" = 'sound/announcer/vox_fem/target.ogg', + "team" = 'sound/announcer/vox_fem/team.ogg', + "tech" = 'sound/announcer/vox_fem/tech.ogg', + "technician" = 'sound/announcer/vox_fem/technician.ogg', + "technology" = 'sound/announcer/vox_fem/technology.ogg', + "teleporter" = 'sound/announcer/vox_fem/teleporter.ogg', + "temperature" = 'sound/announcer/vox_fem/temperature.ogg', + "temporal" = 'sound/announcer/vox_fem/temporal.ogg', + "ten" = 'sound/announcer/vox_fem/ten.ogg', + "terminal" = 'sound/announcer/vox_fem/terminal.ogg', + "terminate" = 'sound/announcer/vox_fem/terminate.ogg', + "terminated" = 'sound/announcer/vox_fem/terminated.ogg', + "termination" = 'sound/announcer/vox_fem/termination.ogg', + "tesla" = 'sound/announcer/vox_fem/tesla.ogg', + "test" = 'sound/announcer/vox_fem/test.ogg', + "text" = 'sound/announcer/vox_fem/text.ogg', + "thank" = 'sound/announcer/vox_fem/thank.ogg', + "thanks" = 'sound/announcer/vox_fem/thanks.ogg', + "that" = 'sound/announcer/vox_fem/that.ogg', + "the" = 'sound/announcer/vox_fem/the.ogg', + "theater" = 'sound/announcer/vox_fem/theater.ogg', + "them" = 'sound/announcer/vox_fem/them.ogg', + "then" = 'sound/announcer/vox_fem/then.ogg', + "there" = 'sound/announcer/vox_fem/there.ogg', + "they" = 'sound/announcer/vox_fem/they.ogg', + "third" = 'sound/announcer/vox_fem/third.ogg', + "thirteen" = 'sound/announcer/vox_fem/thirteen.ogg', + "thirty" = 'sound/announcer/vox_fem/thirty.ogg', + "this" = 'sound/announcer/vox_fem/this.ogg', + "those" = 'sound/announcer/vox_fem/those.ogg', + "thousand" = 'sound/announcer/vox_fem/thousand.ogg', + "threat" = 'sound/announcer/vox_fem/threat.ogg', + "three" = 'sound/announcer/vox_fem/three.ogg', + "through" = 'sound/announcer/vox_fem/through.ogg', + "tick" = 'sound/announcer/vox_fem/tick.ogg', + "tide" = 'sound/announcer/vox_fem/tide.ogg', + "tile" = 'sound/announcer/vox_fem/tile.ogg', + "time" = 'sound/announcer/vox_fem/time.ogg', + "tiny" = 'sound/announcer/vox_fem/tiny.ogg', + "to" = 'sound/announcer/vox_fem/to.ogg', + "top" = 'sound/announcer/vox_fem/top.ogg', + "topside" = 'sound/announcer/vox_fem/topside.ogg', + "touch" = 'sound/announcer/vox_fem/touch.ogg', + "touched" = 'sound/announcer/vox_fem/touched.ogg', + "touching" = 'sound/announcer/vox_fem/touching.ogg', + "towards" = 'sound/announcer/vox_fem/towards.ogg', + "toxins" = 'sound/announcer/vox_fem/toxins.ogg', + "track" = 'sound/announcer/vox_fem/track.ogg', + "train" = 'sound/announcer/vox_fem/train.ogg', + "traitor" = 'sound/announcer/vox_fem/traitor.ogg', + "transportation" = 'sound/announcer/vox_fem/transportation.ogg', + "trigger" = 'sound/announcer/vox_fem/trigger.ogg', + "triggered" = 'sound/announcer/vox_fem/triggered.ogg', + "triggering" = 'sound/announcer/vox_fem/triggering.ogg', + "triple" = 'sound/announcer/vox_fem/triple.ogg', + "tritium" = 'sound/announcer/vox_fem/tritium.ogg', + "truck" = 'sound/announcer/vox_fem/truck.ogg', + "true" = 'sound/announcer/vox_fem/true.ogg', + "tunnel" = 'sound/announcer/vox_fem/tunnel.ogg', + "turn" = 'sound/announcer/vox_fem/turn.ogg', + "turned" = 'sound/announcer/vox_fem/turned.ogg', + "turret" = 'sound/announcer/vox_fem/turret.ogg', + "twelve" = 'sound/announcer/vox_fem/twelve.ogg', + "twenty" = 'sound/announcer/vox_fem/twenty.ogg', + "two" = 'sound/announcer/vox_fem/two.ogg', + "u" = 'sound/announcer/vox_fem/u.ogg', + "ugh" = 'sound/announcer/vox_fem/ugh.ogg', + "ughh" = 'sound/announcer/vox_fem/ughh.ogg', + "unable" = 'sound/announcer/vox_fem/unable.ogg', + "unauthorized" = 'sound/announcer/vox_fem/unauthorized.ogg', + "under" = 'sound/announcer/vox_fem/under.ogg', + "uniform" = 'sound/announcer/vox_fem/uniform.ogg', + "unique" = 'sound/announcer/vox_fem/unique.ogg', + "unknown" = 'sound/announcer/vox_fem/unknown.ogg', + "unlocked" = 'sound/announcer/vox_fem/unlocked.ogg', + "unsafe" = 'sound/announcer/vox_fem/unsafe.ogg', + "until" = 'sound/announcer/vox_fem/until.ogg', + "unwrench" = 'sound/announcer/vox_fem/unwrench.ogg', + "unwrenching" = 'sound/announcer/vox_fem/unwrenching.ogg', + "up" = 'sound/announcer/vox_fem/up.ogg', + "update" = 'sound/announcer/vox_fem/update.ogg', + "updated" = 'sound/announcer/vox_fem/updated.ogg', + "updating" = 'sound/announcer/vox_fem/updating.ogg', + "upload" = 'sound/announcer/vox_fem/upload.ogg', + "upper" = 'sound/announcer/vox_fem/upper.ogg', + "uranium" = 'sound/announcer/vox_fem/uranium.ogg', + "us" = 'sound/announcer/vox_fem/us.ogg', + "usa" = 'sound/announcer/vox_fem/usa.ogg', + "use" = 'sound/announcer/vox_fem/use.ogg', + "used" = 'sound/announcer/vox_fem/used.ogg', + "useful" = 'sound/announcer/vox_fem/useful.ogg', + "useless" = 'sound/announcer/vox_fem/useless.ogg', + "user" = 'sound/announcer/vox_fem/user.ogg', + "v" = 'sound/announcer/vox_fem/v.ogg', + "vacate" = 'sound/announcer/vox_fem/vacate.ogg', + "vacuum" = 'sound/announcer/vox_fem/vacuum.ogg', + "valid" = 'sound/announcer/vox_fem/valid.ogg', + "validate" = 'sound/announcer/vox_fem/validate.ogg', + "vapor" = 'sound/announcer/vox_fem/vapor.ogg', + "vendor" = 'sound/announcer/vox_fem/vendor.ogg', + "vent" = 'sound/announcer/vox_fem/vent.ogg', + "ventilation" = 'sound/announcer/vox_fem/ventilation.ogg', + "very" = 'sound/announcer/vox_fem/very.ogg', + "victor" = 'sound/announcer/vox_fem/victor.ogg', + "violated" = 'sound/announcer/vox_fem/violated.ogg', + "violation" = 'sound/announcer/vox_fem/violation.ogg', + "virologist" = 'sound/announcer/vox_fem/virologist.ogg', + "virology" = 'sound/announcer/vox_fem/virology.ogg', + "virus" = 'sound/announcer/vox_fem/virus.ogg', + "vitals" = 'sound/announcer/vox_fem/vitals.ogg', + "voltage" = 'sound/announcer/vox_fem/voltage.ogg', + "vox" = 'sound/announcer/vox_fem/vox.ogg', + "voxtest" = 'sound/announcer/vox_fem/voxtest.ogg', + "vox_login" = 'sound/announcer/vox_fem/vox_login.ogg', + "w" = 'sound/announcer/vox_fem/w.ogg', + "walk" = 'sound/announcer/vox_fem/walk.ogg', + "wall" = 'sound/announcer/vox_fem/wall.ogg', + "wanker" = 'sound/announcer/vox_fem/wanker.ogg', + "want" = 'sound/announcer/vox_fem/want.ogg', + "wanted" = 'sound/announcer/vox_fem/wanted.ogg', + "warden" = 'sound/announcer/vox_fem/warden.ogg', + "warm" = 'sound/announcer/vox_fem/warm.ogg', + "warn" = 'sound/announcer/vox_fem/warn.ogg', + "warning" = 'sound/announcer/vox_fem/warning.ogg', + "was" = 'sound/announcer/vox_fem/was.ogg', + "waste" = 'sound/announcer/vox_fem/waste.ogg', + "water" = 'sound/announcer/vox_fem/water.ogg', + "way" = 'sound/announcer/vox_fem/way.ogg', + "ways" = 'sound/announcer/vox_fem/ways.ogg', + "we" = 'sound/announcer/vox_fem/we.ogg', + "weak" = 'sound/announcer/vox_fem/weak.ogg', + "weapon" = 'sound/announcer/vox_fem/weapon.ogg', + "welcome" = 'sound/announcer/vox_fem/welcome.ogg', + "weld" = 'sound/announcer/vox_fem/weld.ogg', + "west" = 'sound/announcer/vox_fem/west.ogg', + "wew" = 'sound/announcer/vox_fem/wew.ogg', + "what" = 'sound/announcer/vox_fem/what.ogg', + "when" = 'sound/announcer/vox_fem/when.ogg', + "where" = 'sound/announcer/vox_fem/where.ogg', + "which" = 'sound/announcer/vox_fem/which.ogg', + "while" = 'sound/announcer/vox_fem/while.ogg', + "whiskey" = 'sound/announcer/vox_fem/whiskey.ogg', + "white" = 'sound/announcer/vox_fem/white.ogg', + "why" = 'sound/announcer/vox_fem/why.ogg', + "wilco" = 'sound/announcer/vox_fem/wilco.ogg', + "will" = 'sound/announcer/vox_fem/will.ogg', + "wing" = 'sound/announcer/vox_fem/wing.ogg', + "wire" = 'sound/announcer/vox_fem/wire.ogg', + "with" = 'sound/announcer/vox_fem/with.ogg', + "without" = 'sound/announcer/vox_fem/without.ogg', + "wizard" = 'sound/announcer/vox_fem/wizard.ogg', + "wood" = 'sound/announcer/vox_fem/wood.ogg', + "woody" = 'sound/announcer/vox_fem/woody.ogg', + "woop" = 'sound/announcer/vox_fem/woop.ogg', + "work" = 'sound/announcer/vox_fem/work.ogg', + "worked" = 'sound/announcer/vox_fem/worked.ogg', + "working" = 'sound/announcer/vox_fem/working.ogg', + "works" = 'sound/announcer/vox_fem/works.ogg', + "would" = 'sound/announcer/vox_fem/would.ogg', + "wouldnt" = 'sound/announcer/vox_fem/wouldnt.ogg', + "wow" = 'sound/announcer/vox_fem/wow.ogg', + "wrench" = 'sound/announcer/vox_fem/wrench.ogg', + "wrenching" = 'sound/announcer/vox_fem/wrenching.ogg', + "x" = 'sound/announcer/vox_fem/x.ogg', + "xeno" = 'sound/announcer/vox_fem/xeno.ogg', + "xenobiology" = 'sound/announcer/vox_fem/xenobiology.ogg', + "xenomorph" = 'sound/announcer/vox_fem/xenomorph.ogg', + "xenomorphs" = 'sound/announcer/vox_fem/xenomorphs.ogg', + "y" = 'sound/announcer/vox_fem/y.ogg', + "yankee" = 'sound/announcer/vox_fem/yankee.ogg', + "yards" = 'sound/announcer/vox_fem/yards.ogg', + "year" = 'sound/announcer/vox_fem/year.ogg', + "yellow" = 'sound/announcer/vox_fem/yellow.ogg', + "yes" = 'sound/announcer/vox_fem/yes.ogg', + "you" = 'sound/announcer/vox_fem/you.ogg', + "your" = 'sound/announcer/vox_fem/your.ogg', + "yourself" = 'sound/announcer/vox_fem/yourself.ogg', + "z" = 'sound/announcer/vox_fem/z.ogg', + "zap" = 'sound/announcer/vox_fem/zap.ogg', + "zauker" = 'sound/announcer/vox_fem/zauker.ogg', + "zero" = 'sound/announcer/vox_fem/zero.ogg', + "zombie" = 'sound/announcer/vox_fem/zombie.ogg', + "zone" = 'sound/announcer/vox_fem/zone.ogg', + "zulu" = 'sound/announcer/vox_fem/zulu.ogg', )) #endif diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 2215864782325..f304cbbc400dc 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -13,7 +13,7 @@ message = "beeps." message_param = "beeps at %t." emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/twobeep.ogg' + sound = 'sound/machines/beep/twobeep.ogg' /datum/emote/silicon/buzz key = "buzz" @@ -21,13 +21,13 @@ message = "buzzes." message_param = "buzzes at %t." emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/buzz-sigh.ogg' + sound = 'sound/machines/buzz/buzz-sigh.ogg' /datum/emote/silicon/buzz2 key = "buzz2" message = "buzzes twice." emote_type = EMOTE_AUDIBLE - sound = 'sound/machines/buzz-two.ogg' + sound = 'sound/machines/buzz/buzz-two.ogg' /datum/emote/silicon/chime key = "chime" diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 3ab7b25f8268d..6deab5f08e0ac 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -248,7 +248,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real log_combat(user, src, "pushed") visible_message(span_danger("[user] forces back [src]!"), \ span_userdanger("[user] forces back [src]!"), null, COMBAT_MESSAGE_RANGE) - playsound(loc, 'sound/weapons/pierce.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/pierce.ogg', 50, TRUE, -1) else ..() return diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 7aabdafaa4825..221b1d18478cf 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -208,7 +208,7 @@ storage_datum.energy += charger.materials.use_materials(list(GET_MATERIAL_REF(storage_datum.mat_type) = to_stock), action = "resupplied", name = "units") charger.balloon_alert(robot, "+ [to_stock]u [initial(storage_datum.mat_type.name)]") - playsound(charger, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 50, vary = FALSE) + playsound(charger, 'sound/items/weapons/gun/general/mag_bullet_insert.ogg', 50, vary = FALSE) return charger.balloon_alert(robot, "restock process complete") charger.sendmats = FALSE @@ -303,7 +303,7 @@ cyborg.logevent("Chassis model has been set to [name].") sleep(0.1 SECONDS) for(var/i in 1 to 4) - playsound(cyborg, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/welder.ogg', 'sound/items/ratchet.ogg'), 80, TRUE, -1) + playsound(cyborg, pick('sound/items/tools/drill_use.ogg', 'sound/items/tools/jaws_cut.ogg', 'sound/items/tools/jaws_pry.ogg', 'sound/items/tools/welder.ogg', 'sound/items/tools/ratchet.ogg'), 80, TRUE, -1) sleep(0.7 SECONDS) cyborg.SetLockdown(FALSE) cyborg.ai_lockdown = FALSE @@ -755,8 +755,8 @@ /obj/item/robot_model/peacekeeper/do_transform_animation() ..() - to_chat(loc, "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \ - You are not a security member and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.") + to_chat(loc, span_userdanger("Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \ + You are not a security member and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.")) /obj/item/robot_model/security name = "Security" @@ -779,8 +779,8 @@ /obj/item/robot_model/security/do_transform_animation() ..() - to_chat(loc, "While you have picked the security model, you still have to follow your laws, NOT Space Law. \ - For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.") + to_chat(loc, span_userdanger("While you have picked the security model, you still have to follow your laws, NOT Space Law. \ + For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.")) /obj/item/robot_model/security/respawn_consumable(mob/living/silicon/robot/cyborg, coeff = 1) ..() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 507008caf943c..2142d1bb0a3d7 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -7,7 +7,7 @@ initial_language_holder = /datum/language_holder/synthetic bubble_icon = "machine" mob_biotypes = MOB_ROBOTIC - death_sound = 'sound/voice/borg_deathsound.ogg' + death_sound = 'sound/mobs/non-humanoids/cyborg/borg_deathsound.ogg' speech_span = SPAN_ROBOT flags_1 = PREVENT_CONTENTS_EXPLOSION_1 examine_cursor_icon = null diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 73d6ac25bdd0f..ddad79afacb91 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -10,7 +10,7 @@ var/damage = rand(user.melee_damage_lower, user.melee_damage_upper) if (prob(90)) log_combat(user, src, "attacked") - playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slash.ogg', 25, TRUE, -1) visible_message(span_danger("[user] slashes at [src]!"), \ span_userdanger("[user] slashes at you!"), null, null, user) to_chat(user, span_danger("You slash at [src]!")) @@ -19,7 +19,7 @@ log_combat(user, src, "attacked") adjustBruteLoss(damage) else - playsound(loc, 'sound/weapons/slashmiss.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slashmiss.ogg', 25, TRUE, -1) visible_message(span_danger("[user]'s swipe misses [src]!"), \ span_danger("You avoid [user]'s swipe!"), null, null, user) to_chat(user, span_warning("Your swipe misses [src]!")) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index baaf1b39b3c56..2c7bc4583e2cf 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -13,7 +13,7 @@ visible_message(span_notice("[user] [response_help_continuous] [src]."), \ span_notice("[user] [response_help_continuous] you."), null, null, user) to_chat(user, span_notice("You [response_help_simple] [src].")) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) else if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, span_warning("You don't want to hurt [src]!")) @@ -61,13 +61,13 @@ visible_message(span_notice("[user.name] [response_help_continuous] [src]."), \ span_notice("[user.name] [response_help_continuous] you."), null, COMBAT_MESSAGE_RANGE, user) to_chat(user, span_notice("You [response_help_simple] [src].")) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) /mob/living/simple_animal/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) if(..()) //if harm or disarm intent. if(LAZYACCESS(modifiers, RIGHT_CLICK)) - playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/pierce.ogg', 25, TRUE, -1) visible_message(span_danger("[user] [response_disarm_continuous] [name]!"), \ span_userdanger("[user] [response_disarm_continuous] you!"), null, COMBAT_MESSAGE_RANGE, user) to_chat(user, span_danger("You [response_disarm_simple] [name]!")) @@ -77,7 +77,7 @@ visible_message(span_danger("[user] slashes at [src]!"), \ span_userdanger("You're slashed at by [user]!"), null, COMBAT_MESSAGE_RANGE, user) to_chat(user, span_danger("You slash at [src]!")) - playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(loc, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) apply_damage(damage) log_combat(user, src, "attacked") return 1 diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm index f09361e9bdf48..eefc3389e87c9 100644 --- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm +++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm @@ -31,14 +31,14 @@ return NONE visible_message(span_warning("[source] deflects [hitting_projectile] with its energy swords!")) - playsound(source, 'sound/weapons/blade1.ogg', 50, TRUE) + playsound(source, 'sound/items/weapons/blade1.ogg', 50, TRUE) return COMPONENT_BULLET_BLOCKED /mob/living/simple_animal/bot/secbot/grievous/on_entered(datum/source, atom/movable/AM) . = ..() if(ismob(AM) && AM == target) visible_message(span_warning("[src] flails his swords and cuts [AM]!")) - playsound(src,'sound/effects/beepskyspinsabre.ogg',100,TRUE,-1) + playsound(src,'sound/mobs/non-humanoids/beepsky/beepskyspinsabre.ogg',100,TRUE,-1) INVOKE_ASYNC(src, PROC_REF(stun_attack), AM) /mob/living/simple_animal/bot/secbot/grievous/Initialize(mapload) @@ -54,12 +54,12 @@ return if(prob(block_chance)) visible_message(span_warning("[src] deflects [user]'s attack with his energy swords!")) - playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1) + playsound(src, 'sound/items/weapons/blade1.ogg', 50, TRUE, -1) return TRUE /mob/living/simple_animal/bot/secbot/grievous/stun_attack(mob/living/carbon/C) //Criminals don't deserve to live weapon.attack(C, src) - playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE, -1) + playsound(src, 'sound/items/weapons/blade1.ogg', 50, TRUE, -1) if(C.stat == DEAD) addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, update_appearance)), 0.2 SECONDS) back_to_idle() @@ -77,7 +77,7 @@ mode = BOT_START_PATROL // switch to patrol mode if(BOT_HUNT) // hunting for perp update_appearance() - playsound(src,'sound/effects/beepskyspinsabre.ogg',100,TRUE,-1) + playsound(src,'sound/mobs/non-humanoids/beepsky/beepskyspinsabre.ogg',100,TRUE,-1) // general beepsky doesn't give up so easily, jedi scum if(frustration >= 20) GLOB.move_manager.stop_looping(src) @@ -124,8 +124,8 @@ target = C oldtarget_name = C.name speak("Level [threatlevel] infraction alert!") - playsound(src, pick('sound/voice/beepsky/criminal.ogg', 'sound/voice/beepsky/justice.ogg', 'sound/voice/beepsky/freeze.ogg'), 50, FALSE) - playsound(src,'sound/weapons/saberon.ogg',50,TRUE,-1) + playsound(src, pick('sound/mobs/non-humanoids/beepsky/criminal.ogg', 'sound/mobs/non-humanoids/beepsky/justice.ogg', 'sound/mobs/non-humanoids/beepsky/freeze.ogg'), 50, FALSE) + playsound(src,'sound/items/weapons/saberon.ogg',50,TRUE,-1) visible_message(span_warning("[src] ignites his energy swords!")) icon_state = "grievous-c" visible_message("[src] points at [C.name]!") diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index ee7cd1357989e..2c5d4c6aa91bd 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -117,8 +117,8 @@ if(client) //Player bots do not have modes, thus the override. Also an easy way for PDA users/AI to know when a bot is a player. return paicard ? "pAI Controlled" : "Autonomous" if(!(bot_mode_flags & BOT_MODE_ON)) - return "Inactive" - return "[mode]" + return span_bad("Inactive") + return span_average("[mode]") /** * Returns a status string about the bot's current status, if it's moving, manually controlled, or idle. diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index bbd45e12a2733..c2ff78cb76bf7 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -13,11 +13,11 @@ bot_type = ADVANCED_SEC_BOT hackables = "combat inhibitors" - automated_announcements = list(ED209_VOICED_DOWN_WEAPONS = 'sound/voice/ed209_20sec.ogg') + automated_announcements = list(ED209_VOICED_DOWN_WEAPONS = 'sound/mobs/non-humanoids/ed209/ed209_20sec.ogg') var/lastfired = 0 var/shot_delay = 15 - var/shoot_sound = 'sound/weapons/laser.ogg' + var/shoot_sound = 'sound/items/weapons/laser.ogg' var/projectile = /obj/projectile/beam/disabler var/fair_market_projectile = /obj/projectile/bullet/c38 // For shooting the worst scumbags of all: the poor @@ -59,10 +59,10 @@ /mob/living/simple_animal/bot/secbot/ed209/threat_react(threatlevel) speak("Level [threatlevel] infraction alert!") - playsound(src, pick('sound/voice/ed209_20sec.ogg', 'sound/voice/edplaceholder.ogg'), 50, FALSE) + playsound(src, pick('sound/mobs/non-humanoids/ed209/ed209_20sec.ogg', 'sound/mobs/non-humanoids/ed209/edplaceholder.ogg'), 50, FALSE) /mob/living/simple_animal/bot/secbot/ed209/proc/set_weapon() //used to update the projectile type and firing sound - shoot_sound = 'sound/weapons/laser.ogg' + shoot_sound = 'sound/items/weapons/laser.ogg' if(bot_cover_flags & BOT_COVER_EMAGGED) projectile = /obj/projectile/beam else diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index c670f6561c86b..ae17e58686c65 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -316,7 +316,7 @@ if(check_bot_working(target_turf)) add_to_ignore(target_turf) target = null - playsound(src, 'sound/effects/whistlereset.ogg', 50, TRUE) + playsound(src, 'sound/mobs/non-humanoids/floorbot/whistlereset.ogg', 50, TRUE) return if(isspaceturf(target_turf)) //Must be a hull breach or in line mode to continue. diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 68579730e8dd0..dd3303f35230d 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -360,10 +360,10 @@ switch(type) if(SIGH) audible_message(span_hear("[src] makes a sighing buzz.")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) if(ANNOYED) audible_message(span_hear("[src] makes an annoyed buzzing sound.")) - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE) if(DELIGHT) audible_message(span_hear("[src] makes a delighted ping!")) playsound(src, 'sound/machines/ping.ogg', 50, FALSE) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index d946367f6c3bd..269f08629e175 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -25,12 +25,12 @@ possessed_message = "You are a securitron! Guard the station to the best of your ability!" automated_announcements = list( - BEEPSKY_VOICED_CRIMINAL_DETECTED = 'sound/voice/beepsky/criminal.ogg', - BEEPSKY_VOICED_FREEZE = 'sound/voice/beepsky/freeze.ogg', - BEEPSKY_VOICED_JUSTICE = 'sound/voice/beepsky/justice.ogg', - BEEPSKY_VOICED_YOUR_MOVE = 'sound/voice/beepsky/creep.ogg', - BEEPSKY_VOICED_I_AM_THE_LAW = 'sound/voice/beepsky/iamthelaw.ogg', - BEEPSKY_VOICED_SECURE_DAY = 'sound/voice/beepsky/secureday.ogg', + BEEPSKY_VOICED_CRIMINAL_DETECTED = 'sound/mobs/non-humanoids/beepsky/criminal.ogg', + BEEPSKY_VOICED_FREEZE = 'sound/mobs/non-humanoids/beepsky/freeze.ogg', + BEEPSKY_VOICED_JUSTICE = 'sound/mobs/non-humanoids/beepsky/justice.ogg', + BEEPSKY_VOICED_YOUR_MOVE = 'sound/mobs/non-humanoids/beepsky/creep.ogg', + BEEPSKY_VOICED_I_AM_THE_LAW = 'sound/mobs/non-humanoids/beepsky/iamthelaw.ogg', + BEEPSKY_VOICED_SECURE_DAY = 'sound/mobs/non-humanoids/beepsky/secureday.ogg', ) ///Whether this secbot is considered 'commissioned' and given the trait on Initialize. @@ -180,7 +180,7 @@ if(base_speed < initial(base_speed) + 3) base_speed += 3 addtimer(VARSET_CALLBACK(src, base_speed, base_speed - 3), 6 SECONDS) - playsound(src, 'sound/machines/defib_zap.ogg', 50) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50) visible_message(span_warning("[src] shakes and speeds up!")) /mob/living/simple_animal/bot/secbot/Exited(atom/movable/gone, direction) @@ -289,7 +289,7 @@ if(bot_type == HONK_BOT) audible_message(span_danger("[src] gives out an evil laugh!")) - playsound(src, 'sound/machines/honkbot_evil_laugh.ogg', 75, TRUE, -1) // evil laughter + playsound(src, 'sound/mobs/non-humanoids/honkbot/honkbot_evil_laugh.ogg', 75, TRUE, -1) // evil laughter else audible_message(span_danger("[src] buzzes oddly!")) @@ -334,7 +334,7 @@ /mob/living/simple_animal/bot/secbot/proc/start_handcuffing(mob/living/carbon/current_target) mode = BOT_ARREST - playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) + playsound(src, 'sound/items/weapons/cablecuff.ogg', 30, TRUE, -2) current_target.visible_message(span_danger("[src] is trying to put zipties on [current_target]!"),\ span_userdanger("[src] is trying to put zipties on you!")) addtimer(CALLBACK(src, PROC_REF(handcuff_target), current_target), 6 SECONDS) @@ -354,7 +354,7 @@ /mob/living/simple_animal/bot/secbot/proc/stun_attack(mob/living/carbon/current_target, harm = FALSE) var/judgement_criteria = judgement_criteria() - playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) + playsound(src, 'sound/items/weapons/egloves.ogg', 50, TRUE, -1) icon_state = "[initial(icon_state)]-c" addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_appearance)), 0.2 SECONDS) var/threat = 5 @@ -509,7 +509,7 @@ /// React to detecting criminal scum by making some kind of noise /mob/living/simple_animal/bot/secbot/proc/threat_react(threatlevel) speak("Level [threatlevel] infraction alert!") - playsound(src, pick('sound/voice/beepsky/criminal.ogg', 'sound/voice/beepsky/justice.ogg', 'sound/voice/beepsky/freeze.ogg'), 50, FALSE) + playsound(src, pick('sound/mobs/non-humanoids/beepsky/criminal.ogg', 'sound/mobs/non-humanoids/beepsky/justice.ogg', 'sound/mobs/non-humanoids/beepsky/freeze.ogg'), 50, FALSE) /mob/living/simple_animal/bot/secbot/explode() var/atom/Tsec = drop_location() diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm index ca1ae3b70d612..e2c2aca2693ce 100644 --- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm @@ -6,7 +6,7 @@ icon_living = "dark_wizard" move_to_delay = 10 projectiletype = /obj/projectile/temp/earth_bolt - projectilesound = 'sound/magic/ethereal_enter.ogg' + projectilesound = 'sound/effects/magic/ethereal_enter.ogg' ranged = TRUE ranged_message = "earth bolts" ranged_cooldown_time = 20 @@ -19,7 +19,7 @@ attack_verb_continuous = "staves" combat_mode = TRUE speak_emote = list("chants") - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' aggro_vision_range = 9 turns_per_move = 5 mob_biotypes = MOB_ORGANIC|MOB_HUMANOID diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 5b0cfdcc51e7e..201c83497dfd5 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -483,7 +483,7 @@ if(projectiletype) fire_projectile(projectiletype, targeted_atom, projectilesound) if(AIStatus != AI_ON)//Don't want mindless mobs to have their movement screwed up firing in space - newtonian_move(get_dir(targeted_atom, target_from)) + newtonian_move(get_angle(targeted_atom, target_from)) /mob/living/simple_animal/hostile/proc/CanSmashTurfs(turf/T) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 935ed7a7215b0..ae3b10b11990a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -76,7 +76,7 @@ Difficulty: Medium dash_attack.Grant(src) transform_weapon.Grant(src) - AddComponent(/datum/component/boss_music, 'sound/lavaland/bdm_boss.ogg', 167 SECONDS) + AddComponent(/datum/component/boss_music, 'sound/music/boss/bdm_boss.ogg', 167 SECONDS) /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Destroy() dash = null diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 00cc37fe618cb..70d27f023f188 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -34,7 +34,7 @@ Difficulty: Hard maxHealth = 2500 attack_verb_continuous = "rends" attack_verb_simple = "rend" - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' icon_state = "bubblegum" icon_living = "bubblegum" icon_dead = "" @@ -66,7 +66,7 @@ Difficulty: Hard crusher_achievement_type = /datum/award/achievement/boss/bubblegum_crusher score_achievement_type = /datum/award/score/bubblegum_score death_message = "sinks into a pool of blood, fleeing the battle. You've won, for now... " - death_sound = 'sound/magic/enter_blood.ogg' + death_sound = 'sound/effects/magic/enter_blood.ogg' faction = list(FACTION_MINING, FACTION_BOSS, FACTION_HELL) summon_line = "GRAAAAAAAHHHHHHHHH!" /// Check to see if we should spawn blood @@ -221,10 +221,10 @@ Difficulty: Hard if(!faction_check_atom(L)) if(L.stat != CONSCIOUS) to_chat(L, span_userdanger("[src] drags you through the blood!")) - playsound(T, 'sound/magic/enter_blood.ogg', 100, TRUE, -1) + playsound(T, 'sound/effects/magic/enter_blood.ogg', 100, TRUE, -1) var/turf/targetturf = get_step(src, dir) L.forceMove(targetturf) - playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, TRUE, -1) + playsound(targetturf, 'sound/effects/magic/exit_blood.ogg', 100, TRUE, -1) addtimer(CALLBACK(src, PROC_REF(devour), L), 0.2 SECONDS) SLEEP_CHECK_DEATH(1, src) @@ -300,7 +300,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/bubblegum/bullet_act(obj/projectile/P) if(BUBBLEGUM_IS_ENRAGED) visible_message(span_danger("[src] deflects the projectile; [p_they()] can't be hit with ranged weapons while enraged!"), span_userdanger("You deflect the projectile!")) - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 300, TRUE) + playsound(src, pick('sound/items/weapons/bulletflyby.ogg', 'sound/items/weapons/bulletflyby2.ogg', 'sound/items/weapons/bulletflyby3.ogg'), 300, TRUE) return BULLET_ACT_BLOCK return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm index d7e82507f747c..cba3de73669c8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm @@ -16,7 +16,7 @@ I'd rather there be something than the clockwork ruin be entirely empty though s icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE) speak_emote = list("roars") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 3cfc4e7dd35c7..3af739f736c0a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -27,7 +27,7 @@ maxHealth = 2500 attack_verb_continuous = "judges" attack_verb_simple = "judge" - attack_sound = 'sound/magic/clockwork/ratvar_attack.ogg' + attack_sound = 'sound/effects/magic/clockwork/ratvar_attack.ogg' icon_state = "eva" icon_living = "eva" icon_dead = "" @@ -54,7 +54,7 @@ crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher) loot = list(/obj/structure/closet/crate/necropolis/colossus) death_message = "disintegrates, leaving a glowing core in its wake." - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' summon_line = "Your trial begins now." /// Spiral shots ability var/datum/action/cooldown/mob_cooldown/projectile_attack/spiral_shots/colossus/spiral_shots @@ -129,7 +129,7 @@ if(viewer.client) flash_color(viewer.client, "#C80000", 1) shake_camera(viewer, 4, 3) - playsound(src, 'sound/magic/clockwork/narsie_attack.ogg', 200, TRUE) + playsound(src, 'sound/effects/magic/clockwork/narsie_attack.ogg', 200, TRUE) /mob/living/simple_animal/hostile/megafauna/colossus/proc/start_attack(mob/living/owner, datum/action/cooldown/activated) SIGNAL_HANDLER @@ -306,7 +306,7 @@ active = TRUE set_anchored(TRUE) balloon_alert_to_viewers("charging...") - playsound(src, 'sound/magic/disable_tech.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/disable_tech.ogg', 50, TRUE) sleep(use_time) icon_state = initial(icon_state) active = FALSE @@ -412,7 +412,7 @@ /obj/machinery/anomalous_crystal/dark_reprise //Revives anyone nearby, but turns them into shadowpeople and renders them uncloneable, so the crystal is your only hope of getting up again if you go down. observer_desc = "When activated, this crystal revives anyone nearby, but turns them into Shadowpeople and makes them unclonable, making the crystal their only hope of getting up again." activation_method = ACTIVATE_TOUCH - activation_sound = 'sound/hallucinations/growl1.ogg' + activation_sound = 'sound/effects/hallucinations/growl1.ogg' use_time = 3 SECONDS /obj/machinery/anomalous_crystal/dark_reprise/ActivationReaction(mob/user, method) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 448896e3700de..350a1a68fd8e3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -17,7 +17,7 @@ Difficulty: Extremely Hard icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' attack_verb_continuous = "pummels" attack_verb_simple = "pummels" - attack_sound = 'sound/weapons/sonic_jackhammer.ogg' + attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg' mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_SPECIAL light_color = COLOR_LIGHT_GRAYISH_RED movement_type = GROUND @@ -81,7 +81,7 @@ Difficulty: Extremely Hard AddElement(/datum/element/knockback, 7, FALSE, TRUE) AddElement(/datum/element/lifesteal, 50) ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, INNATE_TRAIT) - AddComponent(/datum/component/boss_music, 'sound/lavaland/bdm_boss.ogg', 167 SECONDS) + AddComponent(/datum/component/boss_music, 'sound/music/boss/bdm_boss.ogg', 167 SECONDS) /mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Destroy() frost_orbs = null @@ -143,7 +143,7 @@ Difficulty: Extremely Hard animate(src, pixel_y = pixel_y + 96, time = 100, easing = ELASTIC_EASING) spin(100, 10) SLEEP_CHECK_DEATH(60, src) - playsound(src, 'sound/effects/explosion3.ogg', 100, TRUE) + playsound(src, 'sound/effects/explosion/explosion3.ogg', 100, TRUE) icon_state = "demonic_miner_phase2" animate(src, pixel_y = pixel_y - 96, time = 8, flags = ANIMATION_END_NOW) spin(8, 2) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 831589ceaf632..f8569897accf1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -36,7 +36,7 @@ maxHealth = 2500 attack_verb_continuous = "chomps" attack_verb_simple = "chomp" - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' attack_vis_effect = ATTACK_EFFECT_BITE icon = 'icons/mob/simple/lavaland/96x96megafauna.dmi' icon_state = "dragon" @@ -67,7 +67,7 @@ crusher_achievement_type = /datum/award/achievement/boss/drake_crusher score_achievement_type = /datum/award/score/drake_score death_message = "collapses into a pile of bones, its flesh sloughing away." - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' footstep_type = FOOTSTEP_MOB_HEAVY summon_line = "ROOOOOOOOAAAAAAAAAAAR!" /// Fire cone ability @@ -212,9 +212,9 @@ /obj/effect/temp_visual/lava_warning/proc/fall(reset_time) var/turf/T = get_turf(src) - playsound(T,'sound/magic/fleshtostone.ogg', 80, TRUE) + playsound(T,'sound/effects/magic/fleshtostone.ogg', 80, TRUE) sleep(duration) - playsound(T,'sound/magic/fireball.ogg', 200, TRUE) + playsound(T,'sound/effects/magic/fireball.ogg', 200, TRUE) for(var/mob/living/L in T.contents - owner) if(istype(L, /mob/living/simple_animal/hostile/megafauna/dragon)) @@ -281,7 +281,7 @@ /obj/effect/temp_visual/target/proc/fall(list/flame_hit) var/turf/T = get_turf(src) - playsound(T,'sound/magic/fleshtostone.ogg', 80, TRUE) + playsound(T,'sound/effects/magic/fleshtostone.ogg', 80, TRUE) new /obj/effect/temp_visual/fireball(T) sleep(duration) if(ismineralturf(T)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 3d1b56d77e131..9383718e7bd30 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -41,7 +41,7 @@ Difficulty: Hard maxHealth = 2500 attack_verb_continuous = "clubs" attack_verb_simple = "club" - attack_sound = 'sound/weapons/sonic_jackhammer.ogg' + attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg' icon_state = "hierophant" icon_living = "hierophant" health_doll_icon = "hierophant" @@ -66,7 +66,7 @@ Difficulty: Hard crusher_achievement_type = /datum/award/achievement/boss/hierophant_crusher score_achievement_type = /datum/award/score/hierophant_score del_on_death = TRUE - death_sound = 'sound/magic/repulse.ogg' + death_sound = 'sound/effects/magic/repulse.ogg' attack_action_types = list(/datum/action/innate/megafauna_attack/blink, /datum/action/innate/megafauna_attack/chaser_swarm, /datum/action/innate/megafauna_attack/cross_blasts, @@ -101,7 +101,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/hierophant/Initialize(mapload) . = ..() spawned_beacon_ref = WEAKREF(new /obj/effect/hierophant(loc)) - AddComponent(/datum/component/boss_music, 'sound/lavaland/hiero_boss.ogg', 145 SECONDS) + AddComponent(/datum/component/boss_music, 'sound/music/boss/hiero_boss.ogg', 145 SECONDS) /mob/living/simple_animal/hostile/megafauna/hierophant/Destroy() QDEL_NULL(spawned_beacon_ref) @@ -111,28 +111,28 @@ Difficulty: Hard name = "Blink To Target" button_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "sniper_zoom" - chosen_message = "You are now blinking to your target." + chosen_message = span_colossus("You are now blinking to your target.") chosen_attack_num = 1 /datum/action/innate/megafauna_attack/chaser_swarm name = "Chaser Swarm" button_icon = 'icons/effects/effects.dmi' button_icon_state = "hierophant_squares_indefinite" - chosen_message = "You are firing a chaser swarm at your target." + chosen_message = span_colossus("You are firing a chaser swarm at your target.") chosen_attack_num = 2 /datum/action/innate/megafauna_attack/cross_blasts name = "Cross Blasts" button_icon = 'icons/effects/effects.dmi' button_icon_state = "hierophant_blast_indefinite" - chosen_message = "You are now firing cross blasts at your target." + chosen_message = span_colossus("You are now firing cross blasts at your target.") chosen_attack_num = 3 /datum/action/innate/megafauna_attack/blink_spam name = "Blink Chase" button_icon = 'icons/obj/mining_zones/artefacts.dmi' button_icon_state = "hierophant_club_ready_beacon" - chosen_message = "You are now repeatedly blinking at your target." + chosen_message = span_colossus("You are now repeatedly blinking at your target.") chosen_attack_num = 4 /mob/living/simple_animal/hostile/megafauna/hierophant/update_cooldowns(list/cooldown_updates, ignore_staggered = FALSE) @@ -305,7 +305,7 @@ Difficulty: Hard new /obj/effect/temp_visual/hierophant/telegraph/diagonal(T, src) else new /obj/effect/temp_visual/hierophant/telegraph(T, src) - playsound(T, 'sound/effects/bin_close.ogg', 75, TRUE) + playsound(T, 'sound/effects/bin/bin_close.ogg', 75, TRUE) SLEEP_CHECK_DEATH(2, src) new /obj/effect/temp_visual/hierophant/blast/damaging(T, src, FALSE) for(var/d in directions) @@ -353,8 +353,8 @@ Difficulty: Hard var/turf/source = get_turf(src) new /obj/effect/temp_visual/hierophant/telegraph(T, src) new /obj/effect/temp_visual/hierophant/telegraph(source, src) - playsound(T,'sound/magic/wand_teleport.ogg', 80, TRUE) - playsound(source,'sound/machines/airlockopen.ogg', 80, TRUE) + playsound(T,'sound/effects/magic/wand_teleport.ogg', 80, TRUE) + playsound(source,'sound/machines/airlock/airlockopen.ogg', 80, TRUE) blinking = TRUE SLEEP_CHECK_DEATH(2, src) //short delay before we start... new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src) @@ -386,14 +386,14 @@ Difficulty: Hard if(!T) return new /obj/effect/temp_visual/hierophant/telegraph(T, src) - playsound(T,'sound/effects/bin_close.ogg', 75, TRUE) + playsound(T,'sound/effects/bin/bin_close.ogg', 75, TRUE) SLEEP_CHECK_DEATH(2, src) for(var/t in RANGE_TURFS(1, T)) new /obj/effect/temp_visual/hierophant/blast/damaging(t, src, FALSE) //expanding square /proc/hierophant_burst(mob/caster, turf/original, burst_range, spread_speed = 0.5) - playsound(original,'sound/machines/airlockopen.ogg', 750, TRUE) + playsound(original,'sound/machines/airlock/airlockopen.ogg', 750, TRUE) var/last_dist = 0 for(var/t in spiral_range_turfs(burst_range, original)) var/turf/T = t @@ -505,7 +505,7 @@ Difficulty: Hard if(!stat && .) var/obj/effect/temp_visual/hierophant/squares/HS = new(old_loc) HS.setDir(movement_dir) - playsound(src, 'sound/mecha/mechmove04.ogg', 80, TRUE, -4) + playsound(src, 'sound/vehicles/mecha/mechmove04.ogg', 80, TRUE, -4) if(target) arena_trap(target) @@ -697,7 +697,7 @@ Difficulty: Hard var/turf/T = get_turf(src) if(!T) return - playsound(T,'sound/magic/blind.ogg', 65, TRUE, -5) //make a sound + playsound(T,'sound/effects/magic/blind.ogg', 65, TRUE, -5) //make a sound sleep(0.6 SECONDS) //wait a little bursting = TRUE do_damage(T) //do damage and mark us as bursting @@ -718,7 +718,7 @@ Difficulty: Hard continue if(L.client) flash_color(L.client, "#660099", 1) - playsound(L,'sound/weapons/sear.ogg', 50, TRUE, -4) + playsound(L,'sound/items/weapons/sear.ogg', 50, TRUE, -4) to_chat(L, span_userdanger("You're struck by a [name]!")) var/limb_to_hit = L.get_bodypart(L.get_random_valid_zone(even_weights = TRUE)) var/armor = L.run_armor_check(limb_to_hit, MELEE, "Your armor absorbs [src]!", "Your armor blocks part of [src]!", FALSE, 50, "Your armor was penetrated by [src]!") @@ -742,7 +742,7 @@ Difficulty: Hard if(friendly_fire_check && caster?.faction_check_atom(occupant)) continue to_chat(occupant, span_userdanger("Your [M.name] is struck by a [name]!")) - playsound(M,'sound/weapons/sear.ogg', 50, TRUE, -4) + playsound(M,'sound/items/weapons/sear.ogg', 50, TRUE, -4) M.take_damage(damage, BURN, 0, 0) /obj/effect/temp_visual/hierophant/blast/visual @@ -756,7 +756,7 @@ Difficulty: Hard /obj/effect/temp_visual/hierophant/blast/visual/Initialize(mapload, new_caster) . = ..() var/turf/src_turf = get_turf(src) - playsound(src_turf,'sound/magic/blind.ogg', 65, TRUE, -5) + playsound(src_turf,'sound/effects/magic/blind.ogg', 65, TRUE, -5) /obj/effect/hierophant name = "hierophant beacon" @@ -773,7 +773,7 @@ Difficulty: Hard if(club.beacon == src) to_chat(user, span_notice("You start removing your hierophant beacon...")) if(do_after(user, 5 SECONDS, target = src)) - playsound(src,'sound/magic/blind.ogg', 100, TRUE, -4) + playsound(src,'sound/effects/magic/blind.ogg', 100, TRUE, -4) new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user) to_chat(user, span_hierophant_warning("You collect [src], reattaching it to the club!")) club.beacon = null diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 5077b3781e6a2..bb2f1025b00ee 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -32,7 +32,7 @@ icon = 'icons/mob/simple/lavaland/96x96megafauna.dmi' attack_verb_continuous = "chomps" attack_verb_simple = "chomp" - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' attack_vis_effect = ATTACK_EFFECT_BITE speak_emote = list("echoes") armour_penetration = 50 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 8b3a6b253e6dc..a7db852492442 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -17,7 +17,7 @@ Difficulty: Hard icon = 'icons/mob/simple/icemoon/64x64megafauna.dmi' attack_verb_continuous = "claws" attack_verb_simple = "claw" - attack_sound = 'sound/magic/demon_attack1.ogg' + attack_sound = 'sound/effects/magic/demon_attack1.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE) speak_emote = list("roars") @@ -149,7 +149,7 @@ Difficulty: Hard /proc/wendigo_scream(mob/owner) SLEEP_CHECK_DEATH(5, owner) - playsound(owner.loc, 'sound/magic/demon_dies.ogg', 600, FALSE, 10) + playsound(owner.loc, 'sound/effects/magic/demon_dies.ogg', 600, FALSE, 10) var/pixel_shift = rand(5, 15) animate(owner, pixel_z = pixel_shift, time = 1, loop = 20, flags = ANIMATION_RELATIVE) animate(pixel_z = -pixel_shift, time = 1, flags = ANIMATION_RELATIVE) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 78bd8a9c5b648..253fe799bfd2c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -27,7 +27,7 @@ GLOBAL_LIST_INIT(animatable_blacklist, typecacheof(list( harm_intent_damage = 5 melee_damage_lower = 8 melee_damage_upper = 12 - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' emote_taunt = list("growls") speak_emote = list("creaks") taunt_chance = 30 @@ -298,10 +298,10 @@ GLOBAL_LIST_INIT(animatable_blacklist, typecacheof(list( speak_emote = list("clatters") gold_core_spawnable = HOSTILE_SPAWN var/opened = FALSE - var/open_sound = 'sound/machines/crate_open.ogg' - var/close_sound = 'sound/machines/crate_close.ogg' + var/open_sound = 'sound/machines/crate/crate_open.ogg' + var/close_sound = 'sound/machines/crate/crate_close.ogg' ///sound played when the mimic attempts to eat more items than it can - var/full_sound = 'sound/items/trayhit2.ogg' + var/full_sound = 'sound/items/trayhit/trayhit2.ogg' var/max_mob_size = MOB_SIZE_HUMAN var/locked = FALSE var/datum/action/innate/mimic/lock/lock diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 95744d0a2d310..03d79c108d60d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -16,7 +16,7 @@ melee_damage_type = BURN attack_verb_continuous = "slashes" attack_verb_simple = "slash" - attack_sound = 'sound/effects/curseattack.ogg' + attack_sound = 'sound/effects/curse/curseattack.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH throw_message = "passes through the smokey body of" obj_damage = 0 @@ -30,7 +30,7 @@ . = ..() QDEL_IN(src, 60 SECONDS) AddElement(/datum/element/simple_flying) - playsound(src, 'sound/effects/curse1.ogg', 100, TRUE, -1) + playsound(src, 'sound/effects/curse/curse1.ogg', 100, TRUE, -1) /mob/living/simple_animal/hostile/asteroid/curseblob/Destroy() new /obj/effect/temp_visual/dir_setting/curse/blob(loc, dir) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index ae0011f998a68..b40a793f0fc74 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -353,7 +353,7 @@ While using this makes the system rely on OnFire, it still gives options for tim to_chat(mychild, "Your max health has been halved, but can now heal by standing on your tumor. Note, it's your only way to heal.\n\ Bear in mind, if anyone interacts with your tumor, you'll be resummoned here to carry out another fight. In such a case, you will regain your full max health.\n\ Also, be weary of your fellow inhabitants, they likely won't be happy to see you!") - to_chat(mychild, "Note that you are a lavaland monster, and thus not allied to the station. You should not cooperate or act friendly with any station crew unless under extreme circumstances!") + to_chat(mychild, span_boldbig("Note that you are a lavaland monster, and thus not allied to the station. You should not cooperate or act friendly with any station crew unless under extreme circumstances!")) /obj/item/tumor_shard name = "tumor shard" @@ -380,8 +380,8 @@ While using this makes the system rely on OnFire, it still gives options for tim E.revive(HEAL_ALL) user.visible_message(span_notice("[user] stabs [E] with [src], reviving it.")) E.playsound_local(get_turf(E), 'sound/effects/magic.ogg', 40, 0) - to_chat(E, "You have been revived by [user]. While you can't speak to them, you owe [user] a great debt. Assist [user.p_them()] in achieving [user.p_their()] goals, regardless of risk.") - to_chat(E, "Note that you now share the loyalties of [user]. You are expected not to intentionally sabotage their faction unless commanded to!") + to_chat(E, span_userdanger("You have been revived by [user]. While you can't speak to them, you owe [user] a great debt. Assist [user.p_them()] in achieving [user.p_their()] goals, regardless of risk.")) + to_chat(E, span_boldbig("Note that you now share the loyalties of [user]. You are expected not to intentionally sabotage their faction unless commanded to!")) E.maxHealth = E.maxHealth * 0.4 E.health = E.maxHealth E.desc = "[E.desc] However, this one appears to be less wild in nature, and calmer around people." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 821045b51690d..e3cccde2bc6d6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -36,7 +36,7 @@ armour_penetration = 30 attack_verb_continuous = "beats down on" attack_verb_simple = "beat down on" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" speed = 2 move_to_delay = 5 @@ -60,25 +60,25 @@ /datum/action/innate/elite_attack/tentacle_patch name = "Tentacle Patch" button_icon_state = "tentacle_patch" - chosen_message = "You are now attacking with a patch of tentacles." + chosen_message = span_boldwarning("You are now attacking with a patch of tentacles.") chosen_attack_num = TENTACLE_PATCH /datum/action/innate/elite_attack/spawn_children name = "Spawn Children" button_icon_state = "spawn_children" - chosen_message = "You will spawn two children at your location to assist you in combat. You can have up to 8." + chosen_message = span_boldwarning("You will spawn two children at your location to assist you in combat. You can have up to 8.") chosen_attack_num = SPAWN_CHILDREN /datum/action/innate/elite_attack/rage name = "Rage" button_icon_state = "rage" - chosen_message = "You will temporarily increase your movement speed." + chosen_message = span_boldwarning("You will temporarily increase your movement speed.") chosen_attack_num = RAGE /datum/action/innate/elite_attack/call_children name = "Call Children" button_icon_state = "call_children" - chosen_message = "You will summon your children to your location." + chosen_message = span_boldwarning("You will summon your children to your location.") chosen_attack_num = CALL_CHILDREN /mob/living/simple_animal/hostile/asteroid/elite/broodmother/OpenFire() @@ -142,7 +142,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/broodmother/proc/rage() ranged_cooldown = world.time + 100 - playsound(src,'sound/voice/insane_low_laugh.ogg', 200, 1) + playsound(src,'sound/misc/insane_low_laugh.ogg', 200, 1) visible_message(span_warning("[src] starts picking up speed!")) color = COLOR_RED set_varspeed(0) @@ -181,7 +181,7 @@ melee_damage_upper = 5 attack_verb_continuous = "bashes against" attack_verb_simple = "bash against" - attack_sound = 'sound/weapons/punch1.ogg' + attack_sound = 'sound/items/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" speed = 2 move_to_delay = 5 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 0a01777fb1fd7..b12be32587e3d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -34,12 +34,12 @@ melee_damage_upper = 20 attack_verb_continuous = "preaches to" attack_verb_simple = "preach to" - attack_sound = 'sound/magic/clockwork/ratvar_attack.ogg' + attack_sound = 'sound/effects/magic/clockwork/ratvar_attack.ogg' throw_message = "doesn't affect the purity of" speed = 2 move_to_delay = 10 mouse_opacity = MOUSE_OPACITY_ICON - death_sound = 'sound/magic/demon_dies.ogg' + death_sound = 'sound/effects/magic/demon_dies.ogg' death_message = "begins to shudder as it becomes transparent..." loot_drop = /obj/item/clothing/neck/cloak/herald_cloak @@ -67,30 +67,30 @@ . = ..() if(stat != CONSCIOUS) return - playsound(src, 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(src, 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) /datum/action/innate/elite_attack/herald_trishot name = "Triple Shot" button_icon_state = "herald_trishot" - chosen_message = "You are now firing three shots in your chosen direction." + chosen_message = span_boldwarning("You are now firing three shots in your chosen direction.") chosen_attack_num = HERALD_TRISHOT /datum/action/innate/elite_attack/herald_directionalshot name = "Circular Shot" button_icon_state = "herald_directionalshot" - chosen_message = "You are firing projectiles in all directions." + chosen_message = span_boldwarning("You are firing projectiles in all directions.") chosen_attack_num = HERALD_DIRECTIONALSHOT /datum/action/innate/elite_attack/herald_teleshot name = "Teleport Shot" button_icon_state = "herald_teleshot" - chosen_message = "You will now fire a shot which teleports you where it lands." + chosen_message = span_boldwarning("You will now fire a shot which teleports you where it lands.") chosen_attack_num = HERALD_TELESHOT /datum/action/innate/elite_attack/herald_mirror name = "Summon Mirror" button_icon_state = "herald_mirror" - chosen_message = "You will spawn a mirror which duplicates your attacks." + chosen_message = span_boldwarning("You will spawn a mirror which duplicates your attacks.") chosen_attack_num = HERALD_MIRROR /mob/living/simple_animal/hostile/asteroid/elite/herald/OpenFire() @@ -146,14 +146,14 @@ /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_trishot(target) ranged_cooldown = world.time + 30 - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) var/target_turf = get_turf(target) var/angle_to_target = get_angle(src, target_turf) shoot_projectile(target_turf, angle_to_target, FALSE, TRUE) addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE, TRUE), 0.2 SECONDS) addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE, TRUE), 0.4 SECONDS) if(health < maxHealth * 0.5 && !is_mirror) - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE, TRUE), 1 SECONDS) addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE, TRUE), 1.2 SECONDS) addtimer(CALLBACK(src, PROC_REF(shoot_projectile), target_turf, angle_to_target, FALSE, TRUE), 1.4 SECONDS) @@ -172,23 +172,23 @@ ranged_cooldown = world.time + 3 SECONDS if(!is_mirror) icon_state = "herald_enraged" - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) addtimer(CALLBACK(src, PROC_REF(herald_circleshot), 0), 0.5 SECONDS) if(health < maxHealth * 0.5 && !is_mirror) - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) addtimer(CALLBACK(src, PROC_REF(herald_circleshot), 22.5), 1.5 SECONDS) addtimer(CALLBACK(src, PROC_REF(unenrage)), 2 SECONDS) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target) ranged_cooldown = world.time + 30 - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) var/target_turf = get_turf(target) var/angle_to_target = get_angle(src, target_turf) shoot_projectile(target_turf, angle_to_target, TRUE, FALSE) /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_mirror() ranged_cooldown = world.time + 4 SECONDS - playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(src), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) if(my_mirror != null) qdel(my_mirror) my_mirror = null @@ -207,7 +207,7 @@ pixel_x = -16 base_pixel_x = -16 death_message = "shatters violently!" - death_sound = 'sound/effects/glassbr1.ogg' + death_sound = 'sound/effects/glass/glassbr1.ogg' del_on_death = TRUE is_mirror = TRUE move_resist = MOVE_FORCE_OVERPOWERING // no dragging your mirror around @@ -286,7 +286,7 @@ return owner.visible_message(span_danger("[owner]'s [src] emits a loud noise as [owner] is struck!")) var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) - playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) + playsound(get_turf(owner), 'sound/effects/magic/clockwork/invoke_general.ogg', 20, TRUE) addtimer(CALLBACK(src, PROC_REF(reactionshot), owner), 1 SECONDS) #undef HERALD_TRISHOT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index ba9e8daa99621..4853e0f3d019b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -31,13 +31,13 @@ melee_damage_upper = 35 attack_verb_continuous = "slashes its arms at" attack_verb_simple = "slash your arms at" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_SLASH throw_message = "doesn't affect the sturdiness of" speed = 1 move_to_delay = 3 mouse_opacity = MOUSE_OPACITY_ICON - death_sound = 'sound/magic/curse.ogg' + death_sound = 'sound/effects/magic/curse.ogg' death_message = "'s arms reach out before it falls apart onto the floor, lifeless." loot_drop = /obj/item/crusher_trophy/legionnaire_spine @@ -55,25 +55,25 @@ /datum/action/innate/elite_attack/legionnaire_charge name = "Legionnaire Charge" button_icon_state = "legionnaire_charge" - chosen_message = "You will attempt to grab your opponent and throw them." + chosen_message = span_boldwarning("You will attempt to grab your opponent and throw them.") chosen_attack_num = LEGIONNAIRE_CHARGE /datum/action/innate/elite_attack/head_detach name = "Release Head" button_icon_state = "head_detach" - chosen_message = "You will now detach your head or kill it if it is already released." + chosen_message = span_boldwarning("You will now detach your head or kill it if it is already released.") chosen_attack_num = HEAD_DETACH /datum/action/innate/elite_attack/bonfire_teleport name = "Bonfire Teleport" button_icon_state = "bonfire_teleport" - chosen_message = "You will leave a bonfire. Second use will let you swap positions with it indefintiely. Using this move on the same tile as your active bonfire removes it." + chosen_message = span_boldwarning("You will leave a bonfire. Second use will let you swap positions with it indefintiely. Using this move on the same tile as your active bonfire removes it.") chosen_attack_num = BONFIRE_TELEPORT /datum/action/innate/elite_attack/spew_smoke name = "Spew Smoke" button_icon_state = "spew_smoke" - chosen_message = "Your head will spew smoke in an area, wherever it may be." + chosen_message = span_boldwarning("Your head will spew smoke in an area, wherever it may be.") chosen_attack_num = SPEW_SMOKE /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/OpenFire() @@ -121,7 +121,7 @@ for(var/i in 1 to 6) new /obj/effect/temp_visual/dragon_swoop/legionnaire(T) T = get_step(T, dir_to_target) - playsound(src,'sound/magic/demon_attack1.ogg', 200, 1) + playsound(src,'sound/effects/magic/demon_attack1.ogg', 200, 1) visible_message(span_boldwarning("[src] prepares to charge!")) addtimer(CALLBACK(src, PROC_REF(legionnaire_charge_2), dir_to_target, 0), 0.4 SECONDS) @@ -200,7 +200,7 @@ var/obj/structure/legionnaire_bonfire/newpile = new /obj/structure/legionnaire_bonfire(loc) mypile = newpile mypile.myowner = src - playsound(get_turf(src),'sound/items/fultext_deploy.ogg', 200, 1) + playsound(get_turf(src),'sound/items/fulton/fultext_deploy.ogg', 200, 1) visible_message(span_boldwarning("[src] summons a bonfire on [get_turf(src)]!")) return else @@ -210,8 +210,8 @@ mypile.take_damage(100) mypile = null return - playsound(pileturf,'sound/items/fultext_deploy.ogg', 200, 1) - playsound(legionturf,'sound/items/fultext_deploy.ogg', 200, 1) + playsound(pileturf,'sound/items/fulton/fultext_deploy.ogg', 200, 1) + playsound(legionturf,'sound/items/fulton/fultext_deploy.ogg', 200, 1) visible_message(span_boldwarning("[src] melts down into a burning pile of bones!")) forceMove(pileturf) visible_message(span_boldwarning("[src] forms from the bonfire!")) @@ -249,7 +249,7 @@ melee_damage_upper = 20 attack_verb_continuous = "bites at" attack_verb_simple = "bite at" - attack_sound = 'sound/effects/curse1.ogg' + attack_sound = 'sound/effects/curse/curse1.ogg' attack_vis_effect = ATTACK_EFFECT_BITE throw_message = "simply misses" speed = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 33bcb4dc9d704..e865c40c1f71a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -31,12 +31,12 @@ melee_damage_upper = 15 attack_verb_continuous = "smashes into the side of" attack_verb_simple = "smash into the side of" - attack_sound = 'sound/weapons/sonic_jackhammer.ogg' + attack_sound = 'sound/items/weapons/sonic_jackhammer.ogg' throw_message = "merely dinks off of the" speed = 3 move_to_delay = 10 mouse_opacity = MOUSE_OPACITY_ICON - death_sound = 'sound/magic/repulse.ogg' + death_sound = 'sound/effects/magic/repulse.ogg' death_message = "'s lights flicker, before its top part falls down." loot_drop = /obj/item/clothing/accessory/pandora_hope @@ -51,25 +51,25 @@ /datum/action/innate/elite_attack/singular_shot name = "Singular Shot" button_icon_state = "singular_shot" - chosen_message = "You are now creating a single linear magic square." + chosen_message = span_boldwarning("You are now creating a single linear magic square.") chosen_attack_num = SINGULAR_SHOT /datum/action/innate/elite_attack/magic_box name = "Magic Box" button_icon_state = "magic_box" - chosen_message = "You are now attacking with a box of magic squares." + chosen_message = span_boldwarning("You are now attacking with a box of magic squares.") chosen_attack_num = MAGIC_BOX /datum/action/innate/elite_attack/pandora_teleport name = "Line Teleport" button_icon_state = "pandora_teleport" - chosen_message = "You will now teleport to your target." + chosen_message = span_boldwarning("You will now teleport to your target.") chosen_attack_num = PANDORA_TELEPORT /datum/action/innate/elite_attack/aoe_squares name = "AOE Blast" button_icon_state = "aoe_squares" - chosen_message = "Your attacks will spawn an AOE blast at your target location." + chosen_message = span_boldwarning("Your attacks will spawn an AOE blast at your target location.") chosen_attack_num = AOE_SQUARES /mob/living/simple_animal/hostile/asteroid/elite/pandora/OpenFire() @@ -135,7 +135,7 @@ var/turf/source = get_turf(src) new /obj/effect/temp_visual/hierophant/telegraph(turf_target, src) new /obj/effect/temp_visual/hierophant/telegraph(source, src) - playsound(source,'sound/machines/airlockopen.ogg', 200, 1) + playsound(source,'sound/machines/airlock/airlockopen.ogg', 200, 1) addtimer(CALLBACK(src, PROC_REF(pandora_teleport_2), turf_target, source), 0.2 SECONDS) /mob/living/simple_animal/hostile/asteroid/elite/pandora/proc/pandora_teleport_2(turf/T, turf/source) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index 57b49047436ee..5dba83e25320e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -19,7 +19,7 @@ melee_damage_upper = 25 attack_verb_continuous = "claws" attack_verb_simple = "claw" - attack_sound = 'sound/weapons/bladeslice.ogg' + attack_sound = 'sound/items/weapons/bladeslice.ogg' attack_vis_effect = ATTACK_EFFECT_CLAW vision_range = 2 // don't aggro unless you basically antagonize it, though they will kill you worse than a goliath will aggro_vision_range = 9 diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index f69c010ac6bfb..a44cae6f139f5 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -21,7 +21,7 @@ maxHealth = 200 attack_verb_continuous = "slimes" attack_verb_simple = "slime" - attack_sound = 'sound/effects/blobattack.ogg' + attack_sound = 'sound/effects/blob/blobattack.ogg' combat_mode = TRUE environment_smash = ENVIRONMENT_SMASH_STRUCTURES mob_size = MOB_SIZE_LARGE @@ -196,7 +196,7 @@ ///This action lets you consume the mob you're currently pulling. I'M GONNA CONSUUUUUME (this is considered one of the funny memes in the 2019-2020 era) /datum/action/consume name = "Consume" - desc = "Consume a mob that you are dragging to gain nutrition from them" + desc = "Consume a mob that you are dragging to gain nutrition from them." background_icon_state = "bg_hive" overlay_icon_state = "bg_hive_border" button_icon = 'icons/mob/actions/actions_slime.dmi' @@ -216,16 +216,16 @@ if(!.) return var/mob/living/simple_animal/hostile/ooze/gelatinous/ooze = owner + if(vored_mob) //one happy meal at a time, buddy + stop_consuming() + return FALSE if(!isliving(ooze.pulling)) to_chat(src, span_warning("You need to be pulling a creature for this to work!")) return FALSE - if(vored_mob) - to_chat(src, span_warning("You are already consuming another creature!")) - return FALSE - owner.visible_message(span_warning("[ooze] starts attempting to devour [target]!"), span_notice("You start attempting to devour [target].")) - if(!do_after(ooze, 1.5 SECONDS, target = ooze.pulling)) - return FALSE var/mob/living/eat_target = ooze.pulling + owner.visible_message(span_warning("[ooze] starts attempting to devour [eat_target]!"), span_notice("You start attempting to devour [eat_target].")) + if(!do_after(ooze, 1.5 SECONDS, eat_target)) + return FALSE if(!(eat_target.mob_biotypes & MOB_ORGANIC) || eat_target.stat == DEAD) to_chat(src, span_warning("This creature isn't to my tastes!")) @@ -240,6 +240,7 @@ playsound(owner,'sound/items/eatfood.ogg', rand(30,50), TRUE) owner.visible_message(span_warning("[src] devours [target]!"), span_notice("You devour [target].")) START_PROCESSING(SSprocessing, src) + build_all_button_icons(UPDATE_BUTTON_NAME|UPDATE_BUTTON_ICON) ///Stop consuming the mob; dump them on the floor /datum/action/consume/proc/stop_consuming() @@ -252,6 +253,7 @@ owner.visible_message(span_warning("[owner] pukes out [vored_mob]!"), span_notice("You puke out [vored_mob].")) UnregisterSignal(vored_mob, COMSIG_QDELETING) vored_mob = null + build_all_button_icons(UPDATE_BUTTON_NAME|UPDATE_BUTTON_ICON) ///Gain health for the consumption and dump some brute loss on the target. /datum/action/consume/process() @@ -260,14 +262,26 @@ ooze.heal_ordered_damage((ooze.maxHealth * 0.03), list(BRUTE, BURN, OXY)) ///Heal 6% of these specific damage types each process ooze.adjust_ooze_nutrition(3) - ///Dump em at 200 bruteloss. - if(vored_mob.getBruteLoss() >= 200) + ///Dump 'em if they're dead. + if(vored_mob.stat == DEAD) stop_consuming() /datum/action/consume/Remove(mob/remove_from) stop_consuming() return ..() +/datum/action/consume/update_button_name(atom/movable/screen/movable/action_button/button, force) + if(vored_mob) + name = "Eject Mob" + desc = "Eject the mob you're currently consuming." + else + name = "Consume" + desc = "Consume a mob that you are dragging to gain nutrition from them." + return ..() + +/datum/action/consume/apply_button_icon(atom/movable/screen/movable/action_button/current_button, force) + button_icon_state = vored_mob ? "eject" : "consume" + return ..() ///* Gelatinious Grapes code below *\\\\ diff --git a/code/modules/mob/living/simple_animal/hostile/vatbeast.dm b/code/modules/mob/living/simple_animal/hostile/vatbeast.dm index fb7ac24da657f..d77649562430c 100644 --- a/code/modules/mob/living/simple_animal/hostile/vatbeast.dm +++ b/code/modules/mob/living/simple_animal/hostile/vatbeast.dm @@ -22,7 +22,7 @@ lighting_cutoff_red = 10 lighting_cutoff_green = 25 lighting_cutoff_blue = 20 - attack_sound = 'sound/weapons/punch3.ogg' + attack_sound = 'sound/items/weapons/punch3.ogg' attack_verb_continuous = "slaps" attack_verb_simple = "slap" @@ -108,7 +108,7 @@ span_warning("[owner] slaps [to_slap] with its tentacle!"), span_notice("You slap [to_slap] with your tentacle."), ) - playsound(owner, 'sound/effects/assslap.ogg', 90) + playsound(owner, 'sound/effects/emotes/assslap.ogg', 90) var/atom/throw_target = get_edge_target_turf(to_slap, owner.dir) living_to_slap.throw_at(throw_target, 6, 4, owner) living_to_slap.apply_damage(30, BRUTE) diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm index 6bcb7afbd5402..45bcf6cd3acd7 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -13,7 +13,7 @@ melee_damage_upper = 21 attack_verb_continuous = "bites" attack_verb_simple = "bite" - attack_sound = 'sound/hallucinations/growl1.ogg' + attack_sound = 'sound/effects/hallucinations/growl1.ogg' attack_vis_effect = ATTACK_EFFECT_BITE combat_mode = TRUE atmos_requirements = null diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 179b50710c1d3..3bdc67a3c8984 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -561,7 +561,7 @@ if(isliving(hunted)) // Are we hunting a living mob? var/mob/living/prey = hunted if(inept_hunter) // Make your hunter inept to have them unable to catch their prey. - visible_message("[src] chases [prey] around, to no avail!") + visible_message(span_warning("[src] chases [prey] around, to no avail!")) step(prey, pick(GLOB.cardinals)) COOLDOWN_START(src, emote_cooldown, 1 MINUTES) return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d86d3dd700d9c..dda3d0f3ffc1e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -292,7 +292,7 @@ var/raw_msg = message if(visible_message_flags & EMOTE_MESSAGE) - message = "[src][separation][message]" // DOPPLER EDIT ADDITION - Better emotes + message = span_emote("[src][separation][message]") // DOPPLER EDIT ADDITION - Better emotes for(var/mob/M in hearers) if(!M.client) @@ -329,7 +329,7 @@ var/raw_self_message = self_message var/self_runechat = FALSE if(visible_message_flags & EMOTE_MESSAGE) - self_message = "[src] [self_message]" // May make more sense as "You do x" + self_message = span_emote("[src] [self_message]") // May make more sense as "You do x" if(visible_message_flags & ALWAYS_SHOW_SELF_MESSAGE) to_chat(src, self_message) @@ -371,7 +371,7 @@ hearers -= src var/raw_msg = message if(audible_message_flags & EMOTE_MESSAGE) - message = "[src][separation][message]" //DOPPLER EDIT CHANGE + message = span_emote("[src][separation][message]") //DOPPLER EDIT CHANGE for(var/mob/M in hearers) if(audible_message_flags & EMOTE_MESSAGE && runechat_prefs_check(M, audible_message_flags) && M.can_hear()) M.create_chat_message(src, raw_message = raw_msg, runechat_flags = audible_message_flags) @@ -395,7 +395,7 @@ var/raw_self_message = self_message var/self_runechat = FALSE if(audible_message_flags & EMOTE_MESSAGE) - self_message = "[src] [self_message]" + self_message = span_emote("[src] [self_message]") if(audible_message_flags & ALWAYS_SHOW_SELF_MESSAGE) to_chat(src, self_message) self_runechat = TRUE @@ -1010,7 +1010,7 @@ ) antimagic_effect = mutable_appearance('icons/effects/effects.dmi', "shield-red", MOB_SHIELD_LAYER) antimagic_color = LIGHT_COLOR_BLOOD_MAGIC - playsound(src, 'sound/magic/magic_block.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/magic_block.ogg', 50, TRUE) else if(magic_flags & MAGIC_RESISTANCE_HOLY) visible_message( @@ -1019,7 +1019,7 @@ ) antimagic_effect = mutable_appearance('icons/mob/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER) antimagic_color = LIGHT_COLOR_HOLY_MAGIC - playsound(src, 'sound/magic/magic_block_holy.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/magic_block_holy.ogg', 50, TRUE) else if(magic_flags & MAGIC_RESISTANCE_MIND) visible_message( @@ -1028,7 +1028,7 @@ ) antimagic_effect = mutable_appearance('icons/mob/effects/genetics.dmi', "telekinesishead", MOB_SHIELD_LAYER) antimagic_color = LIGHT_COLOR_DARK_BLUE - playsound(src, 'sound/magic/magic_block_mind.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/magic_block_mind.ogg', 50, TRUE) mob_light(range = 2, power = 2, color = antimagic_color, duration = 5 SECONDS) add_overlay(antimagic_effect) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 33a4ea12f753b..13bd8ee2318e8 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -93,6 +93,7 @@ return loc_atom.relaymove(mob, direct) if(!mob.Process_Spacemove(direct)) + SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVE_NOGRAV, args) return FALSE if(SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_PRE_MOVE, args) & COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE) @@ -264,19 +265,29 @@ if(. || HAS_TRAIT(src, TRAIT_SPACEWALK)) return TRUE - // FUCK OFF if(buckled) return TRUE + if(movement_type & FLYING || HAS_TRAIT(src, TRAIT_FREE_FLOAT_MOVEMENT)) + return TRUE + + if (HAS_TRAIT(src, TRAIT_NOGRAV_ALWAYS_DRIFT)) + return FALSE + var/atom/movable/backup = get_spacemove_backup(movement_dir, continuous_move) if(!backup) return FALSE + + if (SEND_SIGNAL(src, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE, movement_dir, continuous_move, backup) & COMPONENT_PREVENT_SPACEMOVE_HALT) + return FALSE + if(continuous_move || !istype(backup) || !movement_dir || backup.anchored) return TRUE + // last pushoff exists for one reason // to ensure pushing a mob doesn't just lead to it considering us as backup, and failing last_pushoff = world.time - if(backup.newtonian_move(REVERSE_DIR(movement_dir), instant = TRUE)) //You're pushing off something movable, so it moves + if(backup.newtonian_move(dir2angle(REVERSE_DIR(movement_dir)), instant = TRUE)) //You're pushing off something movable, so it moves // We set it down here so future calls to Process_Spacemove by the same pair in the same tick don't lead to fucky backup.last_pushoff = world.time to_chat(src, span_info("You push off of [backup] to propel yourself.")) @@ -287,6 +298,8 @@ * Takes the intended movement direction as input, alongside if the context is checking if we're allowed to continue drifting */ /mob/get_spacemove_backup(moving_direction, continuous_move) + var/atom/secondary_backup + var/list/priority_dirs = (moving_direction in GLOB.cardinals) ? GLOB.cardinals : GLOB.diagonals for(var/atom/pushover as anything in range(1, get_turf(src))) if(pushover == src) continue @@ -298,7 +311,10 @@ continue if(!turf.density && !mob_negates_gravity()) continue - return pushover + if (get_dir(src, pushover) in priority_dirs) + return pushover + secondary_backup = pushover + continue var/atom/movable/rebound = pushover if(rebound == buckled) @@ -315,7 +331,7 @@ if(rebound.last_pushoff == world.time) continue if(continuous_move && !pass_allowed) - var/datum/move_loop/move/rebound_engine = GLOB.move_manager.processing_on(rebound, SSspacedrift) + var/datum/move_loop/move/rebound_engine = GLOB.move_manager.processing_on(rebound, SSnewtonian_movement) // If you're moving toward it and you're both going the same direction, stop if(moving_direction == get_dir(src, pushover) && rebound_engine && moving_direction == rebound_engine.direction) continue @@ -323,10 +339,16 @@ if(moving_direction == get_dir(src, pushover)) // Can't push "off" of something that you're walking into continue if(rebound.anchored) - return rebound + if (get_dir(src, rebound) in priority_dirs) + return rebound + secondary_backup = rebound + continue if(pulling == rebound) continue - return rebound + if (get_dir(src, rebound) in priority_dirs) + return rebound + secondary_backup = rebound + return secondary_backup /mob/has_gravity(turf/gravity_turf) return mob_negates_gravity() || ..() diff --git a/code/modules/mob_spawn/ghost_roles/mining_roles.dm b/code/modules/mob_spawn/ghost_roles/mining_roles.dm index 00ff1b5a8fd1e..12b5c6deb2f2f 100644 --- a/code/modules/mob_spawn/ghost_roles/mining_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/mining_roles.dm @@ -179,12 +179,12 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(loc, 'sound/effects/attackblob.ogg', 100, TRUE) + playsound(loc, 'sound/effects/blob/attackblob.ogg', 100, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) if(damage_amount) - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/ash_walker_eggshell/attack_ghost(mob/user) //Pass on ghost clicks to the mob spawner if(egg) diff --git a/code/modules/mob_spawn/ghost_roles/unused_roles.dm b/code/modules/mob_spawn/ghost_roles/unused_roles.dm index d533c2365c47b..df651eb29c77c 100644 --- a/code/modules/mob_spawn/ghost_roles/unused_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/unused_roles.dm @@ -167,7 +167,7 @@ message = "You wished for power. Little good it did you, cast out of the light. You are the [gender == MALE ? "king" : "queen"] of a hell that holds no subjects. You feel only remorse." if(4) message = "You wished for immortality, even as your friends lay dying behind you. No matter how many times you cast yourself into the lava, you awaken in this room again within a few days. There is no escape." - to_chat(new_spawn, "[message]") + to_chat(new_spawn, span_infoplain("[message]")) /obj/effect/mob_spawn/ghost_role/human/nanotrasensoldier name = "sleeper" diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm index ca724ab405857..b39707b97aff5 100644 --- a/code/modules/mob_spawn/mob_spawn.dm +++ b/code/modules/mob_spawn/mob_spawn.dm @@ -278,7 +278,7 @@ spawned_mind.name = spawned_mob.real_name if(show_flavor) - var/output_message = "[you_are_text]" + var/output_message = span_infoplain("[you_are_text]") if(flavour_text != "") output_message += "\n[flavour_text]" if(important_text != "") diff --git a/code/modules/mod/mod_activation.dm b/code/modules/mod/mod_activation.dm index 8c4de3be84d84..7da28c17a3a46 100644 --- a/code/modules/mod/mod_activation.dm +++ b/code/modules/mod/mod_activation.dm @@ -22,7 +22,7 @@ return if(active || activating) balloon_alert(user, "deactivate the suit first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return var/parts_to_check = parts - part if(part.loc == src) @@ -46,7 +46,7 @@ /obj/item/mod/control/proc/quick_deploy(mob/user) if(active || activating) balloon_alert(user, "deactivate the suit first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE var/deploy = TRUE for(var/obj/item/part as anything in get_parts()) @@ -62,7 +62,7 @@ wearer.visible_message(span_notice("[wearer]'s [src] [deploy ? "deploys" : "retracts"] its parts with a mechanical hiss."), span_notice("[src] [deploy ? "deploys" : "retracts"] its parts with a mechanical hiss."), span_hear("You hear a mechanical hiss.")) - playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) if(deploy) SEND_SIGNAL(src, COMSIG_MOD_DEPLOYED, user) else @@ -73,13 +73,13 @@ /obj/item/mod/control/proc/deploy(mob/user, obj/item/part) var/datum/mod_part/part_datum = get_part_datum(part) if(!wearer) - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE // pAI is trying to deploy it from your hands if(part.loc != src) if(!user) return FALSE balloon_alert(user, "[part.name] already deployed!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) if(part_datum.can_overslot) var/obj/item/overslot = wearer.get_item_by_slot(part.slot_flags) if(overslot) @@ -93,14 +93,14 @@ wearer.visible_message(span_notice("[wearer]'s [part.name] deploy[part.p_s()] with a mechanical hiss."), span_notice("[part] deploy[part.p_s()] with a mechanical hiss."), span_hear("You hear a mechanical hiss.")) - playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) SEND_SIGNAL(src, COMSIG_MOD_PART_DEPLOYED, user, part) return TRUE else if(!user) return FALSE balloon_alert(user, "bodypart clothed!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE /// Retract a part of the suit from the user. @@ -110,7 +110,7 @@ if(!user) return FALSE balloon_alert(user, "[part.name] already retracted!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) REMOVE_TRAIT(part, TRAIT_NODROP, MOD_TRAIT) wearer.transferItemToLoc(part, src, force = TRUE) if(part_datum.overslotting) @@ -125,39 +125,39 @@ wearer.visible_message(span_notice("[wearer]'s [part.name] retract[part.p_s()] back into [src] with a mechanical hiss."), span_notice("[part] retract[part.p_s()] back into [src] with a mechanical hiss."), span_hear("You hear a mechanical hiss.")) - playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) /// Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on. /obj/item/mod/control/proc/toggle_activate(mob/user, force_deactivate = FALSE) if(!wearer) if(!force_deactivate) balloon_alert(user, "equip suit first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE if(!force_deactivate && (SEND_SIGNAL(src, COMSIG_MOD_ACTIVATE, user) & MOD_CANCEL_ACTIVATE)) - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE for(var/obj/item/part as anything in get_parts()) if(!force_deactivate && part.loc == src) balloon_alert(user, "deploy all parts first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE if(locked && !active && !allowed(user) && !force_deactivate) balloon_alert(user, "access insufficient!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE if(!get_charge() && !force_deactivate) balloon_alert(user, "suit not powered!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE if(open && !force_deactivate) balloon_alert(user, "close the suit panel!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE if(activating) if(!force_deactivate) balloon_alert(user, "suit already [active ? "shutting down" : "starting up"]!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE for(var/obj/item/mod/module/module as anything in modules) if(!module.active || (module.allow_flags & MODULE_ALLOW_INACTIVE)) @@ -170,7 +170,7 @@ var/datum/mod_part/part_datum = get_part_datum(part) if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(get_wearer)), hidden = TRUE)) to_chat(wearer, span_notice("[part] [active ? part_datum.unsealed_message : part_datum.sealed_message].")) - playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) seal_part(part, is_sealed = !active) if(do_after(wearer, activation_step_time, wearer, MOD_ACTIVATION_STEP_FLAGS, extra_checks = CALLBACK(src, PROC_REF(get_wearer)), hidden = TRUE)) to_chat(wearer, span_notice("Systems [active ? "shut down. Parts unsealed. Goodbye" : "started up. Parts sealed. Welcome"], [wearer].")) @@ -178,11 +178,11 @@ to_chat(ai_assistant, span_notice("SYSTEMS [active ? "DEACTIVATED. GOODBYE" : "ACTIVATED. WELCOME"]: \"[ai_assistant]\"")) finish_activation(is_on = !active) if(active) - playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = 6000) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = 6000) if(!malfunctioning) - wearer.playsound_local(get_turf(src), 'sound/mecha/nominal.ogg', 50) + wearer.playsound_local(get_turf(src), 'sound/vehicles/mecha/nominal.ogg', 50) else - playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = 6000) + playsound(src, 'sound/machines/synth/synth_no.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = 6000) activating = FALSE SEND_SIGNAL(src, COMSIG_MOD_TOGGLED, user) return TRUE diff --git a/code/modules/mod/mod_ai.dm b/code/modules/mod/mod_ai.dm index 4f855fa8bc999..1336ff1707449 100644 --- a/code/modules/mod/mod_ai.dm +++ b/code/modules/mod/mod_ai.dm @@ -143,7 +143,7 @@ return FALSE COOLDOWN_START(src, cooldown_mod_move, movedelay * timemodifier + slowdown_active) subtract_charge(CHARGE_PER_STEP) - playsound(src, 'sound/mecha/mechmove01.ogg', 25, TRUE) + playsound(src, 'sound/vehicles/mecha/mechmove01.ogg', 25, TRUE) if(ismovable(wearer?.loc)) return wearer.loc.relaymove(wearer, direction) else if(wearer) diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 1faadafe0ec6d..df2096ae367a4 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -222,7 +222,7 @@ for(var/obj/item/part as anything in get_parts()) if(part.loc != src) balloon_alert(user, "retract parts first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE) return FALSE /obj/item/mod/control/mouse_drop_dragged(atom/over_object, mob/user) @@ -231,7 +231,7 @@ for(var/obj/item/part as anything in get_parts()) if(part.loc != src) balloon_alert(wearer, "retract parts first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE) return if(!wearer.incapacitated) var/atom/movable/screen/inventory/hand/ui_hand = over_object @@ -259,7 +259,7 @@ /obj/item/mod/control/screwdriver_act(mob/living/user, obj/item/screwdriver) if(active || activating || ai_controller) balloon_alert(user, "deactivate suit first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING balloon_alert(user, "[open ? "closing" : "opening"] cover...") screwdriver.play_tool_sound(src, 100) @@ -276,14 +276,14 @@ /obj/item/mod/control/crowbar_act(mob/living/user, obj/item/crowbar) if(!open) balloon_alert(user, "open the cover first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING if(!allowed(user)) balloon_alert(user, "insufficient access!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING if(SEND_SIGNAL(src, COMSIG_MOD_MODULE_REMOVAL, user) & MOD_CANCEL_REMOVAL) - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING if(length(modules)) var/list/removable_modules = list() @@ -300,7 +300,7 @@ SEND_SIGNAL(src, COMSIG_MOD_MODULE_REMOVED, user) return ITEM_INTERACT_SUCCESS balloon_alert(user, "no modules!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING // Makes use of tool act to prevent shoving stuff into our internal storage @@ -334,7 +334,7 @@ if(istype(tool, /obj/item/mod/module)) if(!open) balloon_alert(user, "open the cover first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING install(tool, user) SEND_SIGNAL(src, COMSIG_MOD_MODULE_ADDED, user) @@ -342,11 +342,11 @@ if(istype(tool, /obj/item/mod/core)) if(!open) balloon_alert(user, "open the cover first!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING if(core) balloon_alert(user, "core already installed!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return ITEM_INTERACT_BLOCKING var/obj/item/mod/core/attacking_core = tool attacking_core.install(src) @@ -548,24 +548,24 @@ if(is_type_in_list(new_module, old_module.incompatible_modules) || is_type_in_list(old_module, new_module.incompatible_modules)) if(user) balloon_alert(user, "[new_module] incompatible with [old_module]!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return var/complexity_with_module = complexity complexity_with_module += new_module.complexity if(complexity_with_module > complexity_max) if(user) balloon_alert(user, "[new_module] would make [src] too complex!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return if(!new_module.has_required_parts(mod_parts)) if(user) balloon_alert(user, "[new_module] incompatible with [src]'s parts!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return if(!new_module.can_install(src)) if(user) balloon_alert(user, "[new_module] cannot be installed into [src]!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return new_module.forceMove(src) modules += new_module @@ -602,7 +602,7 @@ /obj/item/mod/control/proc/update_access(mob/user, obj/item/card/id/card) if(!allowed(user)) balloon_alert(user, "insufficient access!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return req_access = card.access.Copy() balloon_alert(user, "access updated") diff --git a/code/modules/mod/mod_core.dm b/code/modules/mod/mod_core.dm index 5c8d4a2e2ee47..791c5347722b6 100644 --- a/code/modules/mod/mod_core.dm +++ b/code/modules/mod/mod_core.dm @@ -223,11 +223,11 @@ return FALSE if(!mod.open) mod.balloon_alert(user, "open the cover first!") - playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(mod, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE if(cell) mod.balloon_alert(user, "cell already installed!") - playsound(mod, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(mod, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return FALSE install_cell(attacking_item) mod.balloon_alert(user, "cell installed") diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm index aa5307957f981..e7a5a20d9f370 100644 --- a/code/modules/mod/mod_link.dm +++ b/code/modules/mod/mod_link.dm @@ -15,7 +15,7 @@ /proc/get_link_visual_generic(datum/mod_link/mod_link, atom/movable/visuals, proc_path) var/mob/living/user = mod_link.get_user_callback.Invoke() - playsound(mod_link.holder, 'sound/machines/terminal_processing.ogg', 50, vary = TRUE) + playsound(mod_link.holder, 'sound/machines/terminal/terminal_processing.ogg', 50, vary = TRUE) visuals.add_overlay(mutable_appearance('icons/effects/effects.dmi', "static_base", ABOVE_NORMAL_TURF_LAYER)) visuals.add_overlay(mutable_appearance('icons/effects/effects.dmi', "modlink", ABOVE_ALL_MOB_LAYER)) visuals.add_filter("crop_square", 1, alpha_mask_filter(icon = icon('icons/effects/effects.dmi', "modlink_filter"))) @@ -30,7 +30,7 @@ /proc/delete_link_visual_generic(datum/mod_link/mod_link) var/mob/living/user = mod_link.get_user_callback.Invoke() - playsound(mod_link.get_other().holder, 'sound/machines/terminal_processing.ogg', 50, vary = TRUE, frequency = -1) + playsound(mod_link.get_other().holder, 'sound/machines/terminal/terminal_processing.ogg', 50, vary = TRUE, frequency = -1) LAZYREMOVE(mod_link.holder.update_on_z, mod_link.visual) mod_link.holder.lose_hearing_sensitivity(REF(mod_link)) mod_link.holder.UnregisterSignal(user, list(COMSIG_CARBON_APPLY_OVERLAY, COMSIG_CARBON_REMOVE_OVERLAY, COMSIG_ATOM_DIR_CHANGE)) @@ -421,7 +421,7 @@ if(!can_call_callback.Invoke() || !called.can_call_callback.Invoke()) holder.balloon_alert(user, "can't call!") return - link_target.playsound_local(get_turf(called.holder), 'sound/weapons/ring.ogg', 15, vary = TRUE) + link_target.playsound_local(get_turf(called.holder), 'sound/items/weapons/ring.ogg', 15, vary = TRUE) var/atom/movable/screen/alert/modlink_call/alert = link_target.throw_alert("[REF(src)]_modlink", /atom/movable/screen/alert/modlink_call) alert.desc = "[holder] ([id]) is calling you! Left-click this to accept the call. Right-click to deny it." alert.caller_ref = WEAKREF(src) diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index b20efa4c66641..626144bf3e114 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -98,11 +98,13 @@ /obj/item/mod/module/flashlight, /obj/item/mod/module/jetpack, /obj/item/mod/module/headprotector, + /obj/item/mod/module/tether, ) default_pins = list( /obj/item/mod/module/magboot/advanced, /obj/item/mod/module/flashlight, /obj/item/mod/module/jetpack, + /obj/item/mod/module/tether, ) /obj/item/mod/control/pre_equipped/loader @@ -208,13 +210,13 @@ /obj/item/mod/module/storage/large_capacity, /obj/item/mod/module/hat_stabilizer, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/pathfinder, /obj/item/mod/module/quick_cuff, /obj/item/mod/module/headprotector, ) default_pins = list( - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, ) /obj/item/mod/control/pre_equipped/cosmohonk @@ -256,7 +258,7 @@ /obj/item/mod/module/shock_absorber, /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/dna_lock, @@ -265,7 +267,7 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, ) @@ -279,7 +281,7 @@ /obj/item/mod/module/shock_absorber, /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/hat_stabilizer/syndicate, @@ -287,14 +289,14 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, ) /obj/item/mod/control/pre_equipped/nuclear/no_jetpack /obj/item/mod/control/pre_equipped/nuclear/no_jetpack/Initialize(mapload, new_theme, new_skin, new_core) - applied_modules -= list(/obj/item/mod/module/jetpack, /obj/item/mod/module/jump_jet) + applied_modules -= list(/obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet) return ..() /obj/item/mod/control/pre_equipped/nuclear/plasmaman @@ -316,7 +318,7 @@ /obj/item/mod/module/shock_absorber, /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/hat_stabilizer/syndicate, @@ -324,7 +326,7 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, ) @@ -335,7 +337,7 @@ /obj/item/mod/module/emp_shield, /obj/item/mod/module/magnetic_harness, /obj/item/mod/module/thermal_regulator, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, /obj/item/mod/module/hat_stabilizer/syndicate, @@ -344,7 +346,7 @@ ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flamethrower, ) @@ -440,13 +442,13 @@ applied_modules = list( /obj/item/mod/module/storage, /obj/item/mod/module/magnetic_harness, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, /obj/item/mod/module/flashlight, ) default_pins = list( /obj/item/mod/module/armor_booster, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/jump_jet, ) @@ -637,7 +639,7 @@ /obj/item/mod/module/stealth/ninja, /obj/item/mod/module/quick_carry/advanced, /obj/item/mod/module/magboot/advanced, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/anomaly_locked/kinesis/admin, /obj/item/mod/module/shove_blocker, /obj/item/mod/module/quick_cuff, @@ -645,7 +647,7 @@ default_pins = list( /obj/item/mod/module/stealth/ninja, /obj/item/mod/module/magboot/advanced, - /obj/item/mod/module/jetpack, + /obj/item/mod/module/jetpack/advanced, /obj/item/mod/module/anomaly_locked/kinesis/admin, ) diff --git a/code/modules/mod/mod_ui.dm b/code/modules/mod/mod_ui.dm index f994b91060fea..2a8ccf7b4bf94 100644 --- a/code/modules/mod/mod_ui.dm +++ b/code/modules/mod/mod_ui.dm @@ -92,7 +92,7 @@ balloon_alert(ui.user, "[locked ? "locked" : "unlocked"]!") else balloon_alert(ui.user, "access insufficent!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) if("call") if(!mod_link.link_call) call_link(ui.user, mod_link) diff --git a/code/modules/mod/modules/module_kinesis.dm b/code/modules/mod/modules/module_kinesis.dm index 374be840d9507..c17f03747b13f 100644 --- a/code/modules/mod/modules/module_kinesis.dm +++ b/code/modules/mod/modules/module_kinesis.dm @@ -161,7 +161,7 @@ RegisterSignal(grabbed_atom, COMSIG_MOB_STATCHANGE, PROC_REF(on_statchange)) ADD_TRAIT(grabbed_atom, TRAIT_NO_FLOATING_ANIM, REF(src)) RegisterSignal(grabbed_atom, COMSIG_MOVABLE_SET_ANCHORED, PROC_REF(on_setanchored)) - playsound(grabbed_atom, 'sound/effects/contractorbatonhit.ogg', 75, TRUE) + playsound(grabbed_atom, 'sound/items/weapons/contractor_baton/contractorbatonhit.ogg', 75, TRUE) kinesis_icon = mutable_appearance(icon = 'icons/effects/effects.dmi', icon_state = "kinesis", layer = grabbed_atom.layer - 0.1) kinesis_icon.appearance_flags = RESET_ALPHA|RESET_COLOR|RESET_TRANSFORM kinesis_icon.overlays += emissive_appearance(icon = 'icons/effects/effects.dmi', icon_state = "kinesis", offset_spokesman = grabbed_atom) @@ -223,7 +223,7 @@ clear_grab() /obj/item/mod/module/anomaly_locked/kinesis/proc/launch(atom/movable/launched_object) - playsound(launched_object, 'sound/magic/repulse.ogg', 100, TRUE) + playsound(launched_object, 'sound/effects/magic/repulse.ogg', 100, TRUE) RegisterSignal(launched_object, COMSIG_MOVABLE_IMPACT, PROC_REF(launch_impact)) var/turf/target_turf = get_turf_in_angle(get_angle(mod.wearer, launched_object), get_turf(src), 10) launched_object.throw_at(target_turf, range = grab_range, speed = launched_object.density ? 3 : 4, thrower = mod.wearer, spin = isitem(launched_object)) diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index c67fd7755d8c6..8fa2670c76091 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -49,7 +49,7 @@ head_cover.flash_protect = initial(head_cover.flash_protect) /obj/item/mod/module/armor_booster/on_activation() - playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) balloon_alert(mod.wearer, "armor boosted, EVA lost") actual_speed_added = max(0, min(mod.slowdown_active, speed_added)) mod.slowdown -= actual_speed_added @@ -68,7 +68,7 @@ /obj/item/mod/module/armor_booster/on_deactivation(display_message = TRUE, deleting = FALSE) if(!deleting) - playsound(src, 'sound/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/vehicles/mecha/mechmove03.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) balloon_alert(mod.wearer, "armor retracts, EVA ready") mod.slowdown += actual_speed_added mod.wearer.update_equipment_speed_mods() diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm index 40e1889efd968..dffa66e3931b5 100644 --- a/code/modules/mod/modules/modules_engineering.dm +++ b/code/modules/mod/modules/modules_engineering.dm @@ -93,13 +93,6 @@ cooldown_time = 1.5 SECONDS required_slots = list(ITEM_SLOT_GLOVES) -/obj/item/mod/module/tether/used() - if(mod.wearer.has_gravity(get_turf(src))) - balloon_alert(mod.wearer, "too much gravity!") - playsound(src, 'sound/weapons/gun/general/dry_fire.ogg', 25, TRUE) - return FALSE - return ..() - /obj/item/mod/module/tether/on_select_use(atom/target) . = ..() if(!.) @@ -107,7 +100,7 @@ var/obj/projectile/tether = new /obj/projectile/tether(mod.wearer.loc) tether.preparePixelProjectile(target, mod.wearer) tether.firer = mod.wearer - playsound(src, 'sound/weapons/batonextend.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 25, TRUE) INVOKE_ASYNC(tether, TYPE_PROC_REF(/obj/projectile, fire)) drain_power(use_energy_cost) @@ -117,12 +110,30 @@ icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' damage = 0 range = 10 - hitsound = 'sound/weapons/batonextend.ogg' - hitsound_wall = 'sound/weapons/batonextend.ogg' + hitsound = 'sound/items/weapons/batonextend.ogg' + hitsound_wall = 'sound/items/weapons/batonextend.ogg' suppressed = SUPPRESSED_VERY hit_threshhold = ABOVE_NORMAL_TURF_LAYER + embed_type = /datum/embed_data/tether_projectile + shrapnel_type = /obj/item/tether_anchor /// Reference to the beam following the projectile. var/line + /// Last turf that we passed before impact + var/turf/open/last_turf + +/obj/projectile/tether/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_PROJECTILE_ON_EMBEDDED, PROC_REF(on_embedded)) + +/obj/projectile/tether/proc/on_embedded(datum/source, obj/item/payload, atom/hit) + SIGNAL_HANDLER + + firer.AddComponent(/datum/component/tether, hit, 7, "MODtether", payload) + +/obj/projectile/tether/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + if (isopenturf(loc)) + last_turf = loc /obj/projectile/tether/fire(setAngle) if(firer) @@ -131,13 +142,102 @@ /obj/projectile/tether/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() - if(firer) - firer.throw_at(target, 10, 1, firer, FALSE, FALSE, null, MOVE_FORCE_NORMAL, TRUE) + if (!firer) + return + + // Funni is handled separately + if (ismob(target)) + return + + if (istype(target, /obj/item/tether_anchor) || isstructure(target) || ismachinery(target)) + firer.AddComponent(/datum/component/tether, target, 7, "MODtether") + return + + var/hitx + var/hity + if(target == original) + hitx = target.pixel_x + p_x - 16 + hity = target.pixel_y + p_y - 16 + else + hitx = target.pixel_x + rand(-8, 8) + hity = target.pixel_y + rand(-8, 8) + + if (!isnull(last_turf) && last_turf != target && last_turf != target.loc) + var/turf_dir = get_dir(last_turf, get_turf(target)) + if (turf_dir & NORTH) + hity += 32 + if (turf_dir & SOUTH) + hity -= 32 + if (turf_dir & EAST) + hitx += 32 + if (turf_dir & WEST) + hitx -= 32 + + var/obj/item/tether_anchor/anchor = new(last_turf || get_turf(target)) + anchor.pixel_x = hitx + anchor.pixel_y = hity + anchor.anchored = TRUE + firer.AddComponent(/datum/component/tether, anchor, 7, "MODtether") /obj/projectile/tether/Destroy() QDEL_NULL(line) return ..() +/obj/item/tether_anchor + name = "tether anchor" + desc = "A reinforced anchor with a tether attachment point. A centuries old EVA tool which saved countless engineers' lives." + icon_state = "tether_latched" + icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' + max_integrity = 60 + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT + +/obj/item/tether_anchor/examine(mob/user) + . = ..() + . += span_info("It can be secured by using a wrench on it. Use right-click to tether yourself to [src].") + +/obj/item/tether_anchor/wrench_act(mob/living/user, obj/item/tool) + . = ..() + default_unfasten_wrench(user, tool) + return ITEM_INTERACT_SUCCESS + +/obj/item/tether_anchor/attack_hand_secondary(mob/user, list/modifiers) + if (!can_interact(user) || !user.CanReach(src) || !isturf(loc)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + balloon_alert(user, "attached tether") + user.AddComponent(/datum/component/tether, src, 7, "tether") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/item/tether_anchor/mouse_drop_receive(atom/target, mob/user, params) + if (!can_interact(user) || !user.CanReach(src) || !isturf(loc)) + return + + if (!isliving(target) || !target.CanReach(src)) + return + + if (target == user) + balloon_alert(user, "attached tether") + user.AddComponent(/datum/component/tether, src, 7, "tether") + return + + balloon_alert(user, "attaching tether...") + to_chat(target, span_userdanger("[user] is trying to attach a tether to you!")) + if (!do_after(user, 5 SECONDS, target)) + return + + balloon_alert(user, "attached tether") + to_chat(target, span_userdanger("[user] attaches a tether to you!")) + target.AddComponent(/datum/component/tether, src, 7, "tether") + +/datum/embed_data/tether_projectile + embed_chance=65 // spiky + fall_chance=2 + ignore_throwspeed_threshold=TRUE + pain_stam_pct=0.4 + pain_mult=3 + jostle_pain_mult=2 + rip_time=1 SECONDS + ///Radiation Protection - Protects the user from radiation, gives them a geiger counter and rad info in the panel. /obj/item/mod/module/rad_protection name = "MOD radiation protection module" diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index 2a2d29bb08f6a..3faf44fe2f088 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -112,6 +112,10 @@ var/stabilize = TRUE /// Callback to see if we can thrust the user. var/thrust_callback + /// How much force this module can apply per tick + var/drift_force = 1.5 NEWTONS + /// How much force this module's stabilizier can put out + var/stabilizer_force = 1.2 NEWTONS /obj/item/mod/module/jetpack/Initialize(mapload) . = ..() @@ -134,13 +138,21 @@ AddComponent( \ /datum/component/jetpack, \ src.stabilize, \ + drift_force, \ + stabilizer_force, \ COMSIG_MODULE_TRIGGERED, \ COMSIG_MODULE_DEACTIVATED, \ MOD_ABORT_USE, \ thrust_callback, \ - /datum/effect_system/trail_follow/ion/grav_allowed \ + /datum/effect_system/trail_follow/ion/grav_allowed, \ ) + if (!isnull(mod) && !isnull(mod.wearer) && mod.wearer.get_item_by_slot(slot_flags) == src) + if (!stabilize) + ADD_TRAIT(mod.wearer, TRAIT_NOGRAV_ALWAYS_DRIFT, MOD_TRAIT) + else + REMOVE_TRAIT(mod.wearer, TRAIT_NOGRAV_ALWAYS_DRIFT, MOD_TRAIT) + /obj/item/mod/module/jetpack/get_configuration() . = ..() .["stabilizers"] = add_ui_configuration("Stabilizers", "bool", stabilize) @@ -157,6 +169,25 @@ return FALSE return TRUE +/obj/item/mod/module/jetpack/on_activation() + mod.wearer.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/full_speed) + if (!stabilize) + ADD_TRAIT(mod.wearer, TRAIT_NOGRAV_ALWAYS_DRIFT, MOD_TRAIT) + +/obj/item/mod/module/jetpack/on_deactivation(display_message = TRUE, deleting = FALSE) + mod.wearer.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/full_speed) + REMOVE_TRAIT(mod.wearer, TRAIT_NOGRAV_ALWAYS_DRIFT, MOD_TRAIT) + +/obj/item/mod/module/jetpack/advanced + name = "MOD advanced ion jetpack module" + desc = "An improvement on the previous model of electric thrusters. This one achieves higher precision \ + and spartial stability through mounting of more jets and application of red paint." + icon_state = "jetpack_advanced" + overlay_state_inactive = "module_jetpackadv" + overlay_state_active = "module_jetpackadv_on" + drift_force = 2 NEWTONS + stabilizer_force = 2 NEWTONS + /// Cooldown to use if we didn't actually launch a jump jet #define FAILED_ACTIVATION_COOLDOWN 3 SECONDS @@ -920,7 +951,7 @@ playsound(src, 'sound/machines/microwave/microwave-end.ogg', 50, TRUE) return balloon_alert(mod.wearer, "not enough material") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) /obj/item/mod/module/recycler/proc/InsertSheets(obj/item/recycler, obj/item/stack/sheets, atom/context) SIGNAL_HANDLER @@ -949,7 +980,7 @@ /obj/item/mod/module/recycler/donk/dispense(atom/target) if(!container.use_amount_mat(required_amount, /datum/material/iron)) balloon_alert(mod.wearer, "not enough material") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return var/obj/item/ammo_box/product = new ammobox_type(target) attempt_insert_storage(product) diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm index 0d45bc4a44db8..f59076fa4b5ff 100644 --- a/code/modules/mod/modules/modules_maint.dm +++ b/code/modules/mod/modules/modules_maint.dm @@ -107,7 +107,7 @@ QDEL_NULL(music_player) if(deleting) return - SEND_SOUND(mod.wearer, sound('sound/machines/terminal_off.ogg', volume = 50, channel = CHANNEL_JUKEBOX)) + SEND_SOUND(mod.wearer, sound('sound/machines/terminal/terminal_off.ogg', volume = 50, channel = CHANNEL_JUKEBOX)) /obj/item/mod/module/visor/rave/generate_worn_overlay(mutable_appearance/standing) . = ..() @@ -270,7 +270,7 @@ var/you_fucked_up = FALSE /obj/item/mod/module/atrocinator/on_activation() - playsound(src, 'sound/effects/curseattack.ogg', 50) + playsound(src, 'sound/effects/curse/curseattack.ogg', 50) mod.wearer.AddElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY) RegisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED, PROC_REF(check_upstairs)) RegisterSignal(mod.wearer, COMSIG_MOB_SAY, PROC_REF(on_talk)) @@ -286,7 +286,7 @@ /obj/item/mod/module/atrocinator/on_deactivation(display_message = TRUE, deleting = FALSE) if(!deleting) - playsound(src, 'sound/effects/curseattack.ogg', 50) + playsound(src, 'sound/effects/curse/curseattack.ogg', 50) qdel(mod.wearer.RemoveElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY)) UnregisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED) UnregisterSignal(mod.wearer, COMSIG_MOB_SAY) diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm index 22c30cf5c36c2..1d83f91dac81f 100644 --- a/code/modules/mod/modules/modules_medical.dm +++ b/code/modules/mod/modules/modules_medical.dm @@ -160,7 +160,7 @@ organ_list += organ organ.forceMove(src) balloon_alert(mod.wearer, "picked up [organ]") - playsound(src, 'sound/mecha/hydraulic.ogg', 25, TRUE) + playsound(src, 'sound/vehicles/mecha/hydraulic.ogg', 25, TRUE) drain_power(use_energy_cost) return if(!length(organ_list)) @@ -169,15 +169,15 @@ var/obj/projectile/organ/projectile = new /obj/projectile/organ(mod.wearer.loc, fired_organ) projectile.preparePixelProjectile(target, mod.wearer) projectile.firer = mod.wearer - playsound(src, 'sound/mecha/hydraulic.ogg', 25, TRUE) + playsound(src, 'sound/vehicles/mecha/hydraulic.ogg', 25, TRUE) INVOKE_ASYNC(projectile, TYPE_PROC_REF(/obj/projectile, fire)) drain_power(use_energy_cost) /obj/projectile/organ name = "organ" damage = 0 - hitsound = 'sound/effects/attackblob.ogg' - hitsound_wall = 'sound/effects/attackblob.ogg' + hitsound = 'sound/effects/blob/attackblob.ogg' + hitsound_wall = 'sound/effects/blob/attackblob.ogg' /// A reference to the organ we "are". var/obj/item/organ/organ @@ -338,7 +338,7 @@ balloon_alert(mod.wearer, "already ripped!") return balloon_alert(mod.wearer, "ripping clothing...") - playsound(src, 'sound/items/zip.ogg', 25, TRUE, frequency = -1) + playsound(src, 'sound/items/zip/zip.ogg', 25, TRUE, frequency = -1) if(!do_after(mod.wearer, 1.5 SECONDS, target = carbon_target)) balloon_alert(mod.wearer, "interrupted!") return @@ -369,7 +369,7 @@ clothing.body_parts_covered |= ripped_clothing[clothing] ripped_clothing -= clothing if(zipped) - playsound(src, 'sound/items/zip.ogg', 25, TRUE) + playsound(src, 'sound/items/zip/zip.ogg', 25, TRUE) balloon_alert(mod.wearer, "clothing mended") /obj/item/mod/module/thread_ripper/on_suit_deactivation(deleting = FALSE) @@ -382,7 +382,7 @@ clothing.body_parts_covered |= ripped_clothing[clothing] ripped_clothing = list() if(!deleting) - playsound(src, 'sound/items/zip.ogg', 25, TRUE) + playsound(src, 'sound/items/zip/zip.ogg', 25, TRUE) ///Surgical Processor - Lets you do advanced surgeries portably. /obj/item/mod/module/surgical_processor diff --git a/code/modules/mod/modules/modules_ninja.dm b/code/modules/mod/modules/modules_ninja.dm index a5215341a06d2..bce377c71e935 100644 --- a/code/modules/mod/modules/modules_ninja.dm +++ b/code/modules/mod/modules/modules_ninja.dm @@ -325,7 +325,7 @@ var/obj/projectile/net = new /obj/projectile/energy_net(mod.wearer.loc, src) net.preparePixelProjectile(target, mod.wearer) net.firer = mod.wearer - playsound(src, 'sound/weapons/punchmiss.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/punchmiss.ogg', 25, TRUE) INVOKE_ASYNC(net, TYPE_PROC_REF(/obj/projectile, fire)) drain_power(use_energy_cost) @@ -343,8 +343,8 @@ icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' damage = 0 range = 9 - hitsound = 'sound/items/fultext_deploy.ogg' - hitsound_wall = 'sound/items/fultext_deploy.ogg' + hitsound = 'sound/items/fulton/fultext_deploy.ogg' + hitsound_wall = 'sound/items/fulton/fultext_deploy.ogg' /// Reference to the beam following the projectile. var/line /// Reference to the energy net module. diff --git a/code/modules/mod/modules/modules_security.dm b/code/modules/mod/modules/modules_security.dm index 5da8ff00241c9..8edcaff7715f0 100644 --- a/code/modules/mod/modules/modules_security.dm +++ b/code/modules/mod/modules/modules_security.dm @@ -128,10 +128,10 @@ if(mod.wearer.transferItemToLoc(holding, src, force = FALSE, silent = TRUE)) holstered = holding balloon_alert(mod.wearer, "weapon holstered") - playsound(src, 'sound/weapons/gun/revolver/empty.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/gun/revolver/empty.ogg', 100, TRUE) else if(mod.wearer.put_in_active_hand(holstered, forced = FALSE, ignore_animation = TRUE)) balloon_alert(mod.wearer, "weapon drawn") - playsound(src, 'sound/weapons/gun/revolver/empty.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/gun/revolver/empty.ogg', 100, TRUE) else balloon_alert(mod.wearer, "holster full!") @@ -232,14 +232,14 @@ return linked_bodybag = new bodybag_type(target_turf) linked_bodybag.take_contents() - playsound(linked_bodybag, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(linked_bodybag, 'sound/items/weapons/egloves.ogg', 80, TRUE) RegisterSignal(linked_bodybag, COMSIG_MOVABLE_MOVED, PROC_REF(check_range)) RegisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED, PROC_REF(check_range)) /obj/item/mod/module/criminalcapture/proc/packup() if(!linked_bodybag) return - playsound(linked_bodybag, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(linked_bodybag, 'sound/items/weapons/egloves.ogg', 80, TRUE) apply_wibbly_filters(linked_bodybag) animate(linked_bodybag, 0.5 SECONDS, alpha = 50, flags = ANIMATION_PARALLEL) addtimer(CALLBACK(src, PROC_REF(delete_bag), linked_bodybag), 0.5 SECONDS) @@ -452,7 +452,7 @@ /obj/item/mod/module/active_sonar/on_use() balloon_alert(mod.wearer, "readying sonar...") - playsound(mod.wearer, 'sound/mecha/skyfall_power_up.ogg', vol = 20, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(mod.wearer, 'sound/vehicles/mecha/skyfall_power_up.ogg', vol = 20, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) if(!do_after(mod.wearer, 1.1 SECONDS, target = mod)) return playsound(mod.wearer, 'sound/effects/ping_hit.ogg', vol = 75, vary = TRUE) // Should be audible for the radius of the sonar @@ -503,7 +503,7 @@ return if(new_mode != SHOOTING_ASSISTANT_OFF && !mod.get_charge()) balloon_alert(mod.wearer, "no charge!") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) return //Remove the effects of the previously selected mode diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index 18c1ac6926763..1ce0a2f316d49 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -53,7 +53,7 @@ var/atom/movable/picked_crate = target if(!check_crate_pickup(picked_crate)) return - playsound(src, 'sound/mecha/hydraulic.ogg', 25, TRUE) + playsound(src, 'sound/vehicles/mecha/hydraulic.ogg', 25, TRUE) if(!do_after(mod.wearer, load_time, target = target)) balloon_alert(mod.wearer, "interrupted!") return @@ -67,7 +67,7 @@ var/turf/target_turf = get_turf(target) if(target_turf.is_blocked_turf()) return - playsound(src, 'sound/mecha/hydraulic.ogg', 25, TRUE) + playsound(src, 'sound/vehicles/mecha/hydraulic.ogg', 25, TRUE) if(!do_after(mod.wearer, load_time, target = target)) balloon_alert(mod.wearer, "interrupted!") return @@ -154,7 +154,7 @@ var/turf/closed/mineral/mineral_turf = bumped_into var/turf/closed/mineral/gibtonite/giberal_turf = mineral_turf if(istype(giberal_turf) && giberal_turf.stage != GIBTONITE_UNSTRUCK) - playsound(bumper, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(bumper, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) to_chat(bumper, span_warning("[icon2html(src, bumper)] Unstable gibtonite ore deposit detected! Drills disabled.")) on_deactivation() return @@ -442,7 +442,7 @@ balloon_alert(mod.wearer, "fully ash covered") mod.wearer.color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,3) //make them super light animate(mod.wearer, 1 SECONDS, color = null, flags = ANIMATION_PARALLEL) - playsound(src, 'sound/effects/sparks1.ogg', 100, TRUE) + playsound(src, 'sound/effects/sparks/sparks1.ogg', 100, TRUE) actual_speed_added = max(0, min(mod.slowdown_active, speed_added)) mod.slowdown -= actual_speed_added mod.wearer.update_equipment_speed_mods() @@ -519,7 +519,7 @@ /obj/item/mod/module/sphere_transform/used() if(!lavaland_equipment_pressure_check(get_turf(src))) balloon_alert(mod.wearer, "too much pressure!") - playsound(src, 'sound/weapons/gun/general/dry_fire.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/gun/general/dry_fire.ogg', 25, TRUE) return FALSE return ..() @@ -530,7 +530,7 @@ var/obj/projectile/bomb = new /obj/projectile/bullet/mining_bomb(mod.wearer.loc) bomb.preparePixelProjectile(target, mod.wearer) bomb.firer = mod.wearer - playsound(src, 'sound/weapons/gun/general/grenade_launch.ogg', 75, TRUE) + playsound(src, 'sound/items/weapons/gun/general/grenade_launch.ogg', 75, TRUE) INVOKE_ASYNC(bomb, TYPE_PROC_REF(/obj/projectile, fire)) drain_power(use_energy_cost) @@ -617,7 +617,7 @@ /obj/structure/mining_bomb/proc/boom(atom/movable/firer) visible_message(span_danger("[src] explodes!")) - playsound(src, 'sound/magic/magic_missile.ogg', 200, vary = TRUE) + playsound(src, 'sound/effects/magic/magic_missile.ogg', 200, vary = TRUE) for(var/turf/closed/mineral/rock in circle_range_turfs(src, 2)) rock.gets_drilled() for(var/mob/living/mob in range(1, src)) diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index d8e41c67cb5d6..3f29e3006befa 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -196,7 +196,7 @@ /obj/item/modular_computer/pre_attack_secondary(atom/A, mob/living/user, params) if(active_program?.tap(A, user, params)) user.do_attack_animation(A) //Emulate this animation since we kill the attack in three lines - playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) //Likewise for the tap sound + playsound(loc, 'sound/items/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) //Likewise for the tap sound addtimer(CALLBACK(src, PROC_REF(play_ping)), 0.5 SECONDS, TIMER_UNIQUE) //Slightly delayed ping to indicate success return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN return ..() @@ -288,7 +288,7 @@ to_chat(user, span_notice("You insert \the [inserting_id] into the card slot.")) balloon_alert(user, "inserted ID") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) if(ishuman(loc)) var/mob/living/carbon/human/human_wearer = loc @@ -322,7 +322,7 @@ if(!silent && !isnull(user)) to_chat(user, span_notice("You remove the card from the card slot.")) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) balloon_alert(user, "removed ID") if(ishuman(loc)) @@ -549,7 +549,7 @@ * The program calling this proc. * The message that the program wishes to display. */ -/obj/item/modular_computer/proc/alert_call(datum/computer_file/program/caller, alerttext, sound = 'sound/machines/twobeep_high.ogg') +/obj/item/modular_computer/proc/alert_call(datum/computer_file/program/caller, alerttext, sound = 'sound/machines/beep/twobeep_high.ogg') if(!caller || !caller.alert_able || caller.alert_silenced || !alerttext) //Yeah, we're checking alert_able. No, you don't get to make alerts that the user can't silence. return FALSE playsound(src, sound, 50, TRUE) @@ -559,13 +559,13 @@ if(!use_energy()) return if(HAS_TRAIT(SSstation, STATION_TRAIT_PDA_GLITCHED)) - playsound(src, pick('sound/machines/twobeep_voice1.ogg', 'sound/machines/twobeep_voice2.ogg'), 50, TRUE) + playsound(src, pick('sound/machines/beep/twobeep_voice1.ogg', 'sound/machines/beep/twobeep_voice2.ogg'), 50, TRUE) else - playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) audible_message("*[ringtone]*") /obj/item/modular_computer/proc/send_sound() - playsound(src, 'sound/machines/terminal_success.ogg', 15, TRUE) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 15, TRUE) // Function used by NanoUI's to obtain data for header. All relevant entries begin with "PC_" /obj/item/modular_computer/proc/get_header_data() diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index 4313bf2efbd08..d8b97c523019d 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -211,7 +211,7 @@ if("PC_Imprint_ID") imprint_id() UpdateDisplay() - playsound(src, 'sound/machines/terminal_processing.ogg', 15, TRUE) + playsound(src, 'sound/machines/terminal/terminal_processing.ogg', 15, TRUE) if("PC_Pai_Interact") switch(params["option"]) diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index 37021e4fb0f82..d21a3e2047559 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -162,7 +162,7 @@ else balloon_alert(user, "inserted [tool]") inserted_item = tool - playsound(src, 'sound/machines/pda_button1.ogg', 50, TRUE) + playsound(src, 'sound/machines/pda_button/pda_button1.ogg', 50, TRUE) return ITEM_INTERACT_SUCCESS @@ -189,7 +189,7 @@ user.put_in_hands(inserted_item) inserted_item = null update_appearance() - playsound(src, 'sound/machines/pda_button2.ogg', 50, TRUE) + playsound(src, 'sound/machines/pda_button/pda_button2.ogg', 50, TRUE) /obj/item/modular_computer/pda/proc/swap_pen(mob/user, obj/item/tool) if(inserted_item) @@ -197,7 +197,7 @@ user.put_in_hands(inserted_item) inserted_item = tool update_appearance() - playsound(src, 'sound/machines/pda_button1.ogg', 50, TRUE) + playsound(src, 'sound/machines/pda_button/pda_button1.ogg', 50, TRUE) /obj/item/modular_computer/pda/proc/explode(mob/target, mob/bomber, from_message_menu = FALSE) var/turf/current_turf = get_turf(src) @@ -322,6 +322,12 @@ ///Ref to the silicon we're installed in. Set by the silicon itself during its creation. var/mob/living/silicon/silicon_owner +/obj/item/modular_computer/pda/silicon/pai + starting_programs = list( + /datum/computer_file/program/messenger, + /datum/computer_file/program/chatclient, + ) + /obj/item/modular_computer/pda/silicon/cyborg starting_programs = list( /datum/computer_file/program/filemanager, diff --git a/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm b/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm index d357d0f12f7de..5d77be0250018 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/contractor_program.dm @@ -54,7 +54,7 @@ if(!traitor_data.uplink_handler.contractor_hub) traitor_data.uplink_handler.contractor_hub = new traitor_data.uplink_handler.contractor_hub.create_contracts(traitor_user.owner) - user.playsound_local(user, 'sound/effects/contractstartup.ogg', 100, FALSE) + user.playsound_local(user, 'sound/music/antag/contractstartup.ogg', 100, FALSE) program_open_overlay = "contractor-contractlist" return TRUE @@ -66,10 +66,10 @@ program_open_overlay = "contractor-extracted" else - user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) + user.playsound_local(user, 'sound/machines/uplink/uplinkerror.ogg', 50) error = "Either both you or your target aren't at the dropoff location, or the pod hasn't got a valid place to land. Clear space, or make sure you're both inside." else - user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) + user.playsound_local(user, 'sound/machines/uplink/uplinkerror.ogg', 50) error = "Already extracting... Place the target into the pod. If the pod was destroyed, this contract is no longer possible." return TRUE @@ -96,7 +96,7 @@ traitor_data.uplink_handler.contractor_hub.contract_TC_to_redeem = 0 return TRUE else - user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) + user.playsound_local(user, 'sound/machines/uplink/uplinkerror.ogg', 50) return TRUE if ("PRG_clear_error") error = "" diff --git a/code/modules/modular_computers/file_system/programs/arcade.dm b/code/modules/modular_computers/file_system/programs/arcade.dm index fd52792bc8bdc..a731e95a94423 100644 --- a/code/modules/modular_computers/file_system/programs/arcade.dm +++ b/code/modules/modular_computers/file_system/programs/arcade.dm @@ -42,7 +42,7 @@ user?.mind?.adjust_experience(/datum/skill/gaming, 1) if(boss_hp <= 0) heads_up = "You have crushed [boss_name]! Rejoice!" - playsound(computer.loc, 'sound/arcade/win.ogg', 50) + playsound(computer.loc, 'sound/machines/arcade/win.ogg', 50) game_active = FALSE program_open_overlay = "arcade_off" if(istype(computer)) @@ -53,7 +53,7 @@ sleep(1 SECONDS) else if(player_hp <= 0 || player_mp <= 0) heads_up = "You have been defeated... how will the station survive?" - playsound(computer.loc, 'sound/arcade/lose.ogg', 50) + playsound(computer.loc, 'sound/machines/arcade/lose.ogg', 50) game_active = FALSE program_open_overlay = "arcade_off" if(istype(computer)) @@ -74,17 +74,17 @@ return if (boss_mp <= 5) heads_up = "[boss_mpamt] magic power has been stolen from you!" - playsound(computer.loc, 'sound/arcade/steal.ogg', 50, TRUE) + playsound(computer.loc, 'sound/machines/arcade/steal.ogg', 50, TRUE) player_mp -= boss_mpamt boss_mp += boss_mpamt else if(boss_mp > 5 && boss_hp <12) heads_up = "[boss_name] heals for [bossheal] health!" - playsound(computer.loc, 'sound/arcade/heal.ogg', 50, TRUE) + playsound(computer.loc, 'sound/machines/arcade/heal.ogg', 50, TRUE) boss_hp += bossheal boss_mp -= boss_mpamt else heads_up = "[boss_name] attacks you for [boss_attackamt] damage!" - playsound(computer.loc, 'sound/arcade/hit.ogg', 50, TRUE) + playsound(computer.loc, 'sound/machines/arcade/hit.ogg', 50, TRUE) player_hp -= boss_attackamt pause_state = FALSE @@ -122,7 +122,7 @@ attackamt = rand(2,6) + rand(0, gamerSkill) pause_state = TRUE heads_up = "You attack for [attackamt] damage." - playsound(computer.loc, 'sound/arcade/hit.ogg', 50, TRUE) + playsound(computer.loc, 'sound/machines/arcade/hit.ogg', 50, TRUE) boss_hp -= attackamt sleep(1 SECONDS) game_check() @@ -139,7 +139,7 @@ healcost = rand(1, maxPointCost) pause_state = TRUE heads_up = "You heal for [healamt] damage." - playsound(computer.loc, 'sound/arcade/heal.ogg', 50, TRUE) + playsound(computer.loc, 'sound/machines/arcade/heal.ogg', 50, TRUE) player_hp += healamt player_mp -= healcost sleep(1 SECONDS) @@ -152,7 +152,7 @@ rechargeamt = rand(4,7) + rand(0, gamerSkill) pause_state = TRUE heads_up = "You regain [rechargeamt] magic power." - playsound(computer.loc, 'sound/arcade/mana.ogg', 50, TRUE) + playsound(computer.loc, 'sound/machines/arcade/mana.ogg', 50, TRUE) player_mp += rechargeamt sleep(1 SECONDS) game_check() diff --git a/code/modules/modular_computers/file_system/programs/borg_monitor.dm b/code/modules/modular_computers/file_system/programs/borg_monitor.dm index 48966f2f2616f..90213963e3e64 100644 --- a/code/modules/modular_computers/file_system/programs/borg_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/borg_monitor.dm @@ -139,10 +139,10 @@ if(user) to_chat(user, "Message sent to [robot]: [message]") robot.logevent("Message from [ID] -- \"[message]\"") - SEND_SOUND(robot, 'sound/machines/twobeep_high.ogg') + SEND_SOUND(robot, 'sound/machines/beep/twobeep_high.ogg') if(robot.connected_ai) to_chat(robot.connected_ai, "

      [span_notice("Message from [ID] to [robot] -- \"[message]\"")]
      ") - SEND_SOUND(robot.connected_ai, 'sound/machines/twobeep_high.ogg') + SEND_SOUND(robot.connected_ai, 'sound/machines/beep/twobeep_high.ogg') user?.log_talk(message, LOG_PDA, tag = "Cyborg Monitor Program: ID name \"[ID]\" to [robot]") return TRUE diff --git a/code/modules/modular_computers/file_system/programs/bounty_board.dm b/code/modules/modular_computers/file_system/programs/bounty_board.dm index 86590192041ce..da86b112689c0 100644 --- a/code/modules/modular_computers/file_system/programs/bounty_board.dm +++ b/code/modules/modular_computers/file_system/programs/bounty_board.dm @@ -75,7 +75,7 @@ switch(action) if("createBounty") if(!current_user || !bounty_text) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE for(var/datum/station_request/i in GLOB.request_list) if("[i.req_number]" == "[current_user.account_id]") @@ -92,14 +92,14 @@ computer.say("Please swipe a valid ID first.") return TRUE if(current_user.account_holder == active_request.owner) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE active_request.applicants += list(current_user) if("payApplicant") if(!current_user) return if(!current_user.has_money(active_request.value) || (current_user.account_holder != active_request.owner)) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return request_target.transfer_money(current_user, active_request.value, "Bounties: Request Completed") computer.say("Paid out [active_request.value] credits.") @@ -112,10 +112,10 @@ return TRUE if("deleteRequest") if(!current_user) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE if(active_request.owner != current_user.account_holder) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE computer.say("Deleted current request.") GLOB.request_list.Remove(active_request) diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index d1ce57bda61d8..511c664c137ab 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -245,12 +245,12 @@ return if(pack.goody && !self_paid) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) computer.say("ERROR: Small crates may only be purchased by private accounts.") return if(SSshuttle.supply.get_order_count(pack) == OVER_ORDER_LIMIT) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) computer.say("ERROR: No more then [CARGO_MAX_ORDER] of any pack may be ordered at once") return diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index a9bbff8db1b91..fe5fbbdfce10b 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -95,16 +95,16 @@ // Log in. if("PRG_authenticate") if(!computer || !inserted_auth_card) - playsound(computer, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return TRUE if(authenticate(user, inserted_auth_card)) - playsound(computer, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) return TRUE // Log out. if("PRG_logout") authenticated_card = null authenticated_user = null - playsound(computer, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) return TRUE // Print a report. if("PRG_print") @@ -129,7 +129,7 @@ to_chat(usr, span_notice("Printer is out of paper.")) return TRUE else - playsound(computer, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) computer.visible_message(span_notice("\The [computer] prints out a paper.")) return TRUE if("PRG_eject_id") @@ -153,7 +153,7 @@ inserted_auth_card.assignment = is_centcom ? "Fired" : "Demoted" SSid_access.remove_trim_from_card(inserted_auth_card) - playsound(computer, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return TRUE // Change ID card assigned name. if("PRG_edit") diff --git a/code/modules/modular_computers/file_system/programs/cargoship.dm b/code/modules/modular_computers/file_system/programs/cargoship.dm index fa73149dc850a..9df7bbd56d3b5 100644 --- a/code/modules/modular_computers/file_system/programs/cargoship.dm +++ b/code/modules/modular_computers/file_system/programs/cargoship.dm @@ -36,7 +36,7 @@ computer.RemoveID(usr) if("selectid") if(!computer.computer_id_slot.registered_account) - playsound(get_turf(computer.ui_host()), 'sound/machines/buzz-sigh.ogg', 50, TRUE, -1) + playsound(get_turf(computer.ui_host()), 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE, -1) return TRUE payments_acc = computer.computer_id_slot.registered_account playsound(get_turf(computer.ui_host()), 'sound/machines/ping.ogg', 50, TRUE, -1) diff --git a/code/modules/modular_computers/file_system/programs/dept_order.dm b/code/modules/modular_computers/file_system/programs/dept_order.dm index 2229628d3921e..405e202e30949 100644 --- a/code/modules/modular_computers/file_system/programs/dept_order.dm +++ b/code/modules/modular_computers/file_system/programs/dept_order.dm @@ -156,7 +156,7 @@ var/new_dept_type = find_department_to_link(computer.computer_id_slot) if(isnull(new_dept_type)) computer.physical.balloon_alert(orderer, "no department found!") - playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) else computer.physical.balloon_alert(orderer, "linked") playsound(computer, 'sound/machines/ping.ogg', 30, TRUE) @@ -171,7 +171,7 @@ if(length(use_access & id_card_access) <= 0) computer.physical.balloon_alert(orderer, "access denied!") - playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return TRUE if(action == "override_order") @@ -179,7 +179,7 @@ return TRUE if(length(download_access & id_card_access) <= 0) computer.physical.balloon_alert(orderer, "requires head of staff access!") - playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return TRUE department_cooldowns[linked_department] = 0 @@ -222,7 +222,7 @@ break if(SSshuttle.supply.get_order_count(pack) == OVER_ORDER_LIMIT) - playsound(computer, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) computer.physical.say("ERROR: No more then [CARGO_MAX_ORDER] of any pack may be ordered at once!") return diff --git a/code/modules/modular_computers/file_system/programs/file_browser.dm b/code/modules/modular_computers/file_system/programs/file_browser.dm index 74af88ac87045..5c5d29d6672d0 100644 --- a/code/modules/modular_computers/file_system/programs/file_browser.dm +++ b/code/modules/modular_computers/file_system/programs/file_browser.dm @@ -35,7 +35,7 @@ return var/newname = reject_bad_name(params["new_name"]) if(!newname || newname != params["new_name"]) - playsound(computer, 'sound/machines/terminal_error.ogg', 25, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_error.ogg', 25, FALSE) return file.filename = newname return TRUE @@ -47,7 +47,7 @@ return var/newname = reject_bad_name(params["new_name"]) if(!newname || newname != params["new_name"]) - playsound(computer, 'sound/machines/terminal_error.ogg', 25, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_error.ogg', 25, FALSE) return file.filename = newname return TRUE diff --git a/code/modules/modular_computers/file_system/programs/frontier.dm b/code/modules/modular_computers/file_system/programs/frontier.dm index 04e902a5e8d4c..53d13008bc1f2 100644 --- a/code/modules/modular_computers/file_system/programs/frontier.dm +++ b/code/modules/modular_computers/file_system/programs/frontier.dm @@ -222,7 +222,7 @@ computer.say("Purchase succesful.") playsound(computer, 'sound/machines/ping.ogg', 25) return TRUE - playsound(computer, 'sound/machines/terminal_error.ogg', 25) + playsound(computer, 'sound/machines/terminal/terminal_error.ogg', 25) return TRUE /// Publication and adding points. @@ -235,5 +235,5 @@ SStgui.update_uis(src) playsound(computer, 'sound/machines/ping.ogg', 25) return TRUE - playsound(computer, 'sound/machines/terminal_error.ogg', 25) + playsound(computer, 'sound/machines/terminal/terminal_error.ogg', 25) return FALSE diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.dm b/code/modules/modular_computers/file_system/programs/jobmanagement.dm index 2d51840886395..fefb76c7f84e9 100644 --- a/code/modules/modular_computers/file_system/programs/jobmanagement.dm +++ b/code/modules/modular_computers/file_system/programs/jobmanagement.dm @@ -70,7 +70,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) j.total_positions++ opened_positions[edit_job_target]++ log_job_debug("[key_name(usr)] opened a [j.title] job position, for a total of [j.total_positions] open job slots.") - playsound(computer, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) return TRUE if("PRG_close_job") var/edit_job_target = params["target"] @@ -83,7 +83,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) j.total_positions-- opened_positions[edit_job_target]-- log_job_debug("[key_name(usr)] closed a [j.title] job position, leaving [j.total_positions] open job slots.") - playsound(computer, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) return TRUE if("PRG_priority") var/priority_target = params["target"] @@ -99,7 +99,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) SSjob.prioritized_jobs += j else computer.say("Error: CentCom employment protocols restrict prioritising more than 5 jobs.") - playsound(computer, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) return TRUE diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm index 3d7c735e4661c..bec3ca91a079e 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm @@ -589,7 +589,7 @@ if(sender) to_chat(sender, span_notice("ERROR: Network unavailable, please try again later.")) if(alert_able && !alert_silenced) - playsound(computer, 'sound/machines/terminal_error.ogg', 15, TRUE) + playsound(computer, 'sound/machines/terminal/terminal_error.ogg', 15, TRUE) return FALSE // used for logging @@ -620,7 +620,7 @@ if(sender) to_chat(sender, span_notice("ERROR: Server is not responding.")) if(alert_able && !alert_silenced) - playsound(computer, 'sound/machines/terminal_error.ogg', 15, TRUE) + playsound(computer, 'sound/machines/terminal/terminal_error.ogg', 15, TRUE) return FALSE var/shell_addendum = "" diff --git a/code/modules/modular_computers/file_system/programs/portrait_printer.dm b/code/modules/modular_computers/file_system/programs/portrait_printer.dm index 0e69dd4969da7..5285bbc09bd1d 100644 --- a/code/modules/modular_computers/file_system/programs/portrait_printer.dm +++ b/code/modules/modular_computers/file_system/programs/portrait_printer.dm @@ -96,6 +96,6 @@ printed_canvas.no_save = TRUE printed_canvas.update_icon() to_chat(usr, span_notice("You have printed [chosen_portrait.title] onto a new canvas.")) - playsound(computer.physical, 'sound/items/poster_being_created.ogg', 100, TRUE) + playsound(computer.physical, 'sound/items/poster/poster_being_created.ogg', 100, TRUE) #undef CANVAS_PAPER_COST diff --git a/code/modules/modular_computers/file_system/programs/robocontrol.dm b/code/modules/modular_computers/file_system/programs/robocontrol.dm index 694c84eaeea4d..75c6bb545f289 100644 --- a/code/modules/modular_computers/file_system/programs/robocontrol.dm +++ b/code/modules/modular_computers/file_system/programs/robocontrol.dm @@ -122,7 +122,7 @@ GLOB.manifest.modify(id_card.registered_name, id_card.assignment, id_card.get_trim_assignment()) computer.RemoveID(usr) else - playsound(get_turf(computer.ui_host()) , 'sound/machines/buzz-sigh.ogg', 25, FALSE) + playsound(get_turf(computer.ui_host()) , 'sound/machines/buzz/buzz-sigh.ogg', 25, FALSE) if("changedroneaccess") if(!computer || !computer.computer_id_slot || !id_card) to_chat(current_user, span_notice("No ID found, authorization failed.")) @@ -143,4 +143,4 @@ var/msg = span_boldnotice("NON-DRONE PING: [current_user.name]: [params["ping_type"]] priority alert in [current_area.name]!") _alert_drones(msg, TRUE, current_user) to_chat(current_user, msg) - playsound(src, 'sound/machines/terminal_success.ogg', 15, TRUE) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 15, TRUE) diff --git a/code/modules/modular_computers/file_system/programs/robotact.dm b/code/modules/modular_computers/file_system/programs/robotact.dm index 1738943b53399..c213790b80a80 100644 --- a/code/modules/modular_computers/file_system/programs/robotact.dm +++ b/code/modules/modular_computers/file_system/programs/robotact.dm @@ -111,7 +111,7 @@ if(!cyborg.cell || !cyborg.cell.charge) cyborg.visible_message(span_notice("The power warning light on [span_name("[cyborg]")] flashes urgently."), \ "You announce you are operating in low power mode.") - playsound(cyborg, 'sound/machines/buzz-two.ogg', 50, FALSE) + playsound(cyborg, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE) if("toggleSensors") cyborg.toggle_sensors() diff --git a/code/modules/modular_computers/file_system/programs/secureye.dm b/code/modules/modular_computers/file_system/programs/secureye.dm index c7a24a6e8b7b9..b38200cfce185 100644 --- a/code/modules/modular_computers/file_system/programs/secureye.dm +++ b/code/modules/modular_computers/file_system/programs/secureye.dm @@ -198,7 +198,7 @@ camera_ref = null last_camera_turf = null if(!spying) - playsound(computer, 'sound/machines/terminal_off.ogg', 25, FALSE) + playsound(computer, 'sound/machines/terminal/terminal_off.ogg', 25, FALSE) /datum/computer_file/program/secureye/proc/update_active_camera_screen() var/obj/machinery/camera/active_camera = camera_ref?.resolve() diff --git a/code/modules/modular_computers/file_system/programs/virtual_pet.dm b/code/modules/modular_computers/file_system/programs/virtual_pet.dm index 8f1eef074d46a..eacdb1323b368 100644 --- a/code/modules/modular_computers/file_system/programs/virtual_pet.dm +++ b/code/modules/modular_computers/file_system/programs/virtual_pet.dm @@ -54,22 +54,47 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) var/static/list/hat_selections = list( /obj/item/clothing/head/hats/tophat = 1, /obj/item/clothing/head/fedora = 1, + /obj/item/clothing/head/soft/fishing_hat = 1, + /obj/item/cigarette/dart = 1, /obj/item/clothing/head/hats/bowler = 2, /obj/item/clothing/head/hats/warden/police = 2, + /obj/item/clothing/head/wizard/tape = 2, + /obj/item/clothing/head/utility/hardhat/cakehat/energycake = 2, + /obj/item/clothing/head/cowboy/bounty = 2, /obj/item/clothing/head/hats/warden/red = 3, /obj/item/clothing/head/hats/caphat = 3, + /obj/item/clothing/head/costume/crown/fancy = 3, + ) + ///hat options that are locked behind achievements + var/static/list/cheevo_hats = list( + /obj/item/clothing/head/soft/fishing_hat = /datum/award/achievement/skill/legendary_fisher, + /obj/item/cigarette/dart = /datum/award/achievement/misc/cigarettes, + /obj/item/clothing/head/wizard/tape = /datum/award/achievement/misc/grand_ritual_finale, + /obj/item/clothing/head/utility/hardhat/cakehat/energycake = /datum/award/achievement/misc/cayenne_disk, + /obj/item/clothing/head/cowboy/bounty = /datum/award/achievement/misc/hot_damn, + /obj/item/clothing/head/costume/crown/fancy = /datum/award/achievement/misc/debt_extinguished, + ) + ///A list of hats that override the hat offsets and transform variable + var/static/list/special_hat_placement = list( + /obj/item/cigarette/dart = list( + "west" = list(2,-1), + "east" = list(-2,-1), + "north" = list(0,0), + "south" = list(0, -3), + "transform" = list(1, 1), + ), ) ///hologram hat we have selected for our pet var/list/selected_hat = list() - ///area we have picked as dropoff location for petfeed - var/area/selected_area ///manage hat offsets for when we turn directions var/static/list/hat_offsets = list( "west" = list(0,1), "east" = list(0,1), "north" = list(1,1), - "south" = list(0,1), + "south" = list(1,1), ) + ///area we have picked as dropoff location for petfeed + var/area/selected_area ///possible colors our pet can have var/static/list/possible_colors= list( "white" = null, //default color state @@ -171,12 +196,11 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) /datum/computer_file/program/virtual_pet/proc/set_hat_offsets(new_dir) var/direction_text = dir2text(new_dir) - var/list/offsets_list = hat_offsets[direction_text] - if(isnull(offsets_list)) - return + var/hat_type = selected_hat["type"] + var/list/offsets_list = special_hat_placement[hat_type]?[direction_text] || hat_offsets[direction_text] var/mutable_appearance/hat_appearance = selected_hat["appearance"] - hat_appearance.pixel_x = offsets_list[1] - hat_appearance.pixel_y = offsets_list[2] + hat_appearance.pixel_w = offsets_list[1] + hat_appearance.pixel_z = offsets_list[2] + selected_hat["worn_offset"] pet.update_appearance(UPDATE_OVERLAYS) ///give our pet his hologram hat @@ -195,10 +219,15 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) if(length(selected_hat)) var/mutable_appearance/our_selected_hat = selected_hat["appearance"] var/mutable_appearance/hat_preview = mutable_appearance(our_selected_hat.icon, our_selected_hat.icon_state) - hat_preview.pixel_y = -9 + hat_preview.pixel_y = -9 + selected_hat["worn_offset"] + var/list/spec_hat = special_hat_placement[selected_hat["type"]]?["south"] + if(spec_hat) + hat_preview.pixel_w += spec_hat[1] + hat_preview.pixel_z += spec_hat[2] + hat_preview.appearance_flags = RESET_COLOR pet_preview.add_overlay(hat_preview) - profile_picture = getFlatIcon(pet_preview) + profile_picture = getFlatIcon(pet_preview, no_anim = TRUE) COOLDOWN_START(src, alter_appearance_cooldown, 10 SECONDS) @@ -281,7 +310,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) level++ grant_level_abilities() pet.ai_controller?.set_blackboard_key(BB_VIRTUAL_PET_LEVEL, level) - playsound(computer.loc, 'sound/items/orbie_level_up.ogg', 50) + playsound(computer.loc, 'sound/mobs/non-humanoids/orbie/orbie_level_up.ogg', 50) to_next_level += (level**2) + 500 SEND_SIGNAL(pet, COMSIG_VIRTUAL_PET_LEVEL_UP, level) //its a signal so different path types of virtual pets can handle leveling up differently announce_global_updates(message = "has reached level [level]!") @@ -312,7 +341,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) GLOB.global_pet_updates.Cut(1,2) GLOB.global_pet_updates += list(message_to_announce) - playsound(computer.loc, 'sound/items/orbie_notification_sound.ogg', 50) + playsound(computer.loc, 'sound/mobs/non-humanoids/orbie/orbie_notification_sound.ogg', 50) /datum/computer_file/program/virtual_pet/proc/remove_pet(datum/source) SIGNAL_HANDLER @@ -344,12 +373,13 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) /datum/computer_file/program/virtual_pet/ui_data(mob/user) var/list/data = list() + var/obj/item/hat_type = selected_hat?["type"] data["currently_summoned"] = (pet.loc != computer) data["selected_area"] = (selected_area ? selected_area.name : "No location set") data["pet_state"] = get_pet_state() data["hunger"] = hunger data["maximum_hunger"] = max_hunger - data["pet_hat"] = (length(selected_hat) ? selected_hat["name"] : "none") + data["pet_hat"] = (hat_type ? initial(hat_type.name) : "none") data["can_reroll"] = COOLDOWN_FINISHED(src, area_reroll) data["can_summon"] = COOLDOWN_FINISHED(src, summon_cooldown) data["can_alter_appearance"] = COOLDOWN_FINISHED(src, alter_appearance_cooldown) @@ -415,9 +445,14 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) for(var/type_index as anything in hat_selections) if(level >= hat_selections[type_index]) var/obj/item/hat = type_index + var/obj/item/hat_name = initial(hat.name) + if(length(SSachievements.achievements)) // The Achievements subsystem is active. + var/datum/award/required_cheevo = cheevo_hats[hat] + if(required_cheevo && !user.client.get_award_status(required_cheevo)) + hat_name = "LOCKED" data["hat_selections"] += list(list( "hat_id" = type_index, - "hat_name" = initial(hat.name), + "hat_name" = hat_name, )) data["possible_colors"] = list() @@ -461,12 +496,22 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) if(isnull(chosen_type)) selected_hat.Cut() - else if((chosen_type in hat_selections)) - selected_hat["name"] = initial(chosen_type.name) - var/mutable_appearance/selected_hat_appearance = mutable_appearance(icon = initial(chosen_type.worn_icon), icon_state = initial(chosen_type.icon_state), layer = ABOVE_ALL_MOB_LAYER) - selected_hat_appearance.transform = selected_hat_appearance.transform.Scale(0.8, 1) - selected_hat["appearance"] = selected_hat_appearance - set_hat_offsets(pet.dir) + else if(hat_selections[chosen_type]) + var/datum/award/required_cheevo = cheevo_hats[chosen_type] + if(length(SSachievements.achievements) && required_cheevo && !ui.user.client.get_award_status(required_cheevo)) + to_chat(ui.user, span_info("This customization requires the \"[span_bold(initial(required_cheevo.name))]\ achievement to be unlocked.")) + else + selected_hat["type"] = chosen_type + var/state_to_use = initial(chosen_type.worn_icon_state) || initial(chosen_type.icon_state) + var/mutable_appearance/selected_hat_appearance = mutable_appearance(initial(chosen_type.worn_icon), state_to_use, appearance_flags = RESET_COLOR) + selected_hat["worn_offset"] = initial(chosen_type.worn_y_offset) + var/list/scale_list = special_hat_placement[chosen_type]?["scale"] + if(scale_list) + selected_hat_appearance.transform = selected_hat_appearance.transform.Scale(scale_list[1], scale_list[2]) + else + selected_hat_appearance.transform = selected_hat_appearance.transform.Scale(0.8, 1) + selected_hat["appearance"] = selected_hat_appearance + set_hat_offsets(pet.dir) var/chosen_color = params["chosen_color"] if(isnull(chosen_color)) @@ -515,7 +560,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) if(!isnull(trick_name)) pet.ai_controller.set_blackboard_key(BB_TRICK_NAME, trick_name) pet.ai_controller.override_blackboard_key(BB_TRICK_SEQUENCE, trick_sequence) - playsound(computer.loc, 'sound/items/orbie_trick_learned.ogg', 50) + playsound(computer.loc, 'sound/mobs/non-humanoids/orbie/orbie_trick_learned.ogg', 50) return TRUE @@ -553,7 +598,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list) pet.befriend(our_user) //befriend whoever set us out animate(pet, transform = matrix(), time = 1.5 SECONDS) pet.forceMove(final_turf) - playsound(computer.loc, 'sound/items/orbie_send_out.ogg', 20) + playsound(computer.loc, 'sound/mobs/non-humanoids/orbie/orbie_send_out.ogg', 20) new /obj/effect/temp_visual/guardian/phase(pet.loc) #undef PET_MAX_LEVEL diff --git a/code/modules/movespeed/modifiers/items.dm b/code/modules/movespeed/modifiers/items.dm index 601ecc2289261..1f988f50c57ac 100644 --- a/code/modules/movespeed/modifiers/items.dm +++ b/code/modules/movespeed/modifiers/items.dm @@ -3,7 +3,13 @@ movetypes = FLOATING /datum/movespeed_modifier/jetpack/cybernetic - multiplicative_slowdown = -0.5 + multiplicative_slowdown = -0.3 + +/datum/movespeed_modifier/jetpack/full_speed + multiplicative_slowdown = -0.3 + +/datum/movespeed_modifier/jetpack/wings + multiplicative_slowdown = -0.3 /datum/movespeed_modifier/die_of_fate multiplicative_slowdown = 1 diff --git a/code/modules/pai/camera.dm b/code/modules/pai/camera.dm index 319f20e369990..a30601e41547e 100644 --- a/code/modules/pai/camera.dm +++ b/code/modules/pai/camera.dm @@ -6,7 +6,7 @@ var/number = length(stored) picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE, -3) + playsound(src, pick('sound/items/polaroid/polaroid1.ogg', 'sound/items/polaroid/polaroid2.ogg'), 75, TRUE, -3) balloon_alert(user, "image recorded") /** diff --git a/code/modules/pai/door_jack.dm b/code/modules/pai/door_jack.dm index 36220ecfaced8..cd8073a9f2c74 100644 --- a/code/modules/pai/door_jack.dm +++ b/code/modules/pai/door_jack.dm @@ -107,7 +107,7 @@ if(!hacking_cable.hacking_machine) balloon_alert(src, "nothing connected") return FALSE - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 50, TRUE) balloon_alert(src, "overriding...") // Now begin hacking if(!do_after(src, 15 SECONDS, hacking_cable.hacking_machine, timed_action_flags = NONE, progress = TRUE)) diff --git a/code/modules/pai/pai.dm b/code/modules/pai/pai.dm index 066a1146fd437..ee732432851a7 100644 --- a/code/modules/pai/pai.dm +++ b/code/modules/pai/pai.dm @@ -240,6 +240,11 @@ RegisterSignals(src, list(COMSIG_LIVING_ADJUST_BRUTE_DAMAGE, COMSIG_LIVING_ADJUST_BURN_DAMAGE), PROC_REF(on_shell_damaged)) RegisterSignal(src, COMSIG_LIVING_ADJUST_STAMINA_DAMAGE, PROC_REF(on_shell_weakened)) +/mob/living/silicon/pai/create_modularInterface() + if(!modularInterface) + modularInterface = new /obj/item/modular_computer/pda/silicon/pai(src) + return ..() + /mob/living/silicon/pai/make_laws() laws = new /datum/ai_laws/pai() return TRUE @@ -463,7 +468,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/buzz-two.ogg', 30, TRUE) qdel(src) return TRUE diff --git a/code/modules/paperwork/desk_bell.dm b/code/modules/paperwork/desk_bell.dm index c3964b7292c0b..7c2b96f32175e 100644 --- a/code/modules/paperwork/desk_bell.dm +++ b/code/modules/paperwork/desk_bell.dm @@ -67,7 +67,7 @@ tool.play_tool_sound(src) if(tool.use_tool(src, user, 5 SECONDS)) balloon_alert_to_viewers("repaired") - playsound(user, 'sound/items/change_drill.ogg', 50, vary = TRUE) + playsound(user, 'sound/items/tools/change_drill.ogg', 50, vary = TRUE) broken_ringer = FALSE times_rang = 0 return ITEM_INTERACT_SUCCESS diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 09858d8375b4b..6ad571896974f 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -144,7 +144,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department return FALSE if (!(obj_flags & EMAGGED)) obj_flags |= EMAGGED - playsound(src, 'sound/creatures/dog/growl2.ogg', 50, FALSE) + playsound(src, 'sound/mobs/non-humanoids/dog/growl2.ogg', 50, FALSE) balloon_alert(user, "migrated to syndienet 2.0") to_chat(user, span_warning("An image appears on [src] screen for a moment with Ian in the cap of a Syndicate officer.")) return TRUE @@ -369,7 +369,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department if (FAX.jammed) do_sparks(5, TRUE, src) balloon_alert(usr, "destination port jammed") - playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) return FALSE FAX.receive(loaded, fax_name) history_add("Send", FAX.fax_name) diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index 5d6b10c0568a3..203d8234ca79f 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -287,7 +287,7 @@ playsound(sticking_to, 'sound/items/handling/component_pickup.ogg', 20, TRUE) sticking_to.balloon_alert(user, "label renamed") else - playsound(sticking_to, 'sound/items/poster_ripped.ogg', 20, TRUE) + playsound(sticking_to, 'sound/items/poster/poster_ripped.ogg', 20, TRUE) sticking_to.balloon_alert(user, "label removed") qdel(src) return ITEM_INTERACT_SUCCESS diff --git a/code/modules/paperwork/paper_biscuit.dm b/code/modules/paperwork/paper_biscuit.dm index bac859e029f4f..d98eb234c95fb 100644 --- a/code/modules/paperwork/paper_biscuit.dm +++ b/code/modules/paperwork/paper_biscuit.dm @@ -136,7 +136,7 @@ cracked = FALSE has_been_sealed = TRUE contents_hidden = TRUE - playsound(get_turf(user), 'sound/items/duct_tape_snap.ogg', 60) + playsound(get_turf(user), 'sound/items/duct_tape/duct_tape_snap.ogg', 60) icon_state = "[sealed_icon]" update_appearance() diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index 1315ca3a81d23..10aad59001a24 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -163,7 +163,7 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/item/papercutter/proc/cut_paper(mob/user) - playsound(src.loc, 'sound/weapons/slash.ogg', 50, TRUE) + playsound(src.loc, 'sound/items/weapons/slash.ogg', 50, TRUE) var/clumsy = (iscarbon(user) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(cut_self_chance)) to_chat(user, span_userdanger("You neatly cut [stored_paper][clumsy ? "... and your finger in the process!" : "."]")) if(clumsy) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 7be0e3548ad2b..60c6aeb4dfef5 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -327,7 +327,7 @@ . = ..() AddComponent(/datum/component/butchering, \ speed = 6 SECONDS, \ - butcher_sound = 'sound/weapons/blade1.ogg', \ + butcher_sound = 'sound/items/weapons/blade1.ogg', \ ) RegisterSignal(src, COMSIG_DETECTIVE_SCANNED, PROC_REF(on_scan)) @@ -368,14 +368,14 @@ /obj/item/pen/edagger/proc/on_containing_dart_fired(obj/projectile/source) SIGNAL_HANDLER - playsound(source, 'sound/weapons/saberon.ogg', 5, TRUE) + playsound(source, 'sound/items/weapons/saberon.ogg', 5, TRUE) var/datum/component/transforming/transform_comp = GetComponent(/datum/component/transforming) source.hitsound = transform_comp.hitsound_on source.set_light(light_range, light_power, light_color, l_on = TRUE) /obj/item/pen/edagger/proc/on_containing_dart_drop(datum/source, obj/item/ammo_casing/new_casing) SIGNAL_HANDLER - playsound(new_casing, 'sound/weapons/saberoff.ogg', 5, TRUE) + playsound(new_casing, 'sound/items/weapons/saberoff.ogg', 5, TRUE) /obj/item/pen/edagger/proc/on_containing_dart_embedded(datum/source, obj/item/ammo_casing/new_casing) SIGNAL_HANDLER @@ -384,12 +384,12 @@ /obj/item/pen/edagger/proc/on_containing_dart_failed_embed(obj/item/ammo_casing/source) SIGNAL_HANDLER - playsound(source, 'sound/weapons/saberoff.ogg', 5, TRUE) + playsound(source, 'sound/items/weapons/saberoff.ogg', 5, TRUE) UnregisterSignal(source, list(COMSIG_ITEM_UNEMBEDDED, COMSIG_ITEM_FAILED_EMBED)) /obj/item/pen/edagger/proc/on_embedded_removed(obj/item/ammo_casing/source, mob/living/carbon/victim) SIGNAL_HANDLER - playsound(source, 'sound/weapons/saberoff.ogg', 5, TRUE) + playsound(source, 'sound/items/weapons/saberoff.ogg', 5, TRUE) UnregisterSignal(source, list(COMSIG_ITEM_UNEMBEDDED, COMSIG_ITEM_FAILED_EMBED)) victim.visible_message( message = span_warning("The blade of the [hidden_name] retracts as the [source.name] is removed from [victim]!"), @@ -432,7 +432,7 @@ if(user) balloon_alert(user, "[hidden_name] [active ? "active" : "concealed"]") - playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 5, TRUE) + playsound(src, active ? 'sound/items/weapons/saberon.ogg' : 'sound/items/weapons/saberoff.ogg', 5, TRUE) set_light_on(active) return COMPONENT_NO_DEFAULT_MESSAGE @@ -514,7 +514,7 @@ /obj/item/pen/screwdriver/on_transform(obj/item/source, mob/user, active) if(user) balloon_alert(user, active ? "extended" : "retracted") - playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/batonextend.ogg', 50, TRUE) if(!active) tool_behaviour = initial(tool_behaviour) diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index b4e97615a923a..5b3d4911f522a 100644 --- a/code/modules/paperwork/ticketmachine.dm +++ b/code/modules/paperwork/ticketmachine.dm @@ -87,7 +87,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32) if(LAZYLEN(tickets)) current_ticket = tickets[1] current_number++ //Increment the one we're serving. - playsound(src, 'sound/misc/announce_dig.ogg', 50, FALSE) + playsound(src, 'sound/announcer/announcement/announce_dig.ogg', 50, FALSE) say("Now serving [current_ticket]!") if(!(obj_flags & EMAGGED)) current_ticket.audible_message(span_notice("\the [current_ticket] vibrates!"), hearing_distance = SAMETILE_MESSAGE_RANGE) @@ -213,7 +213,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32) if((user_ref in ticket_holders) && !(obj_flags & EMAGGED)) to_chat(user, span_warning("You already have a ticket!")) return - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 100, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 100, FALSE) ticket_number++ to_chat(user, span_notice("You take a ticket from [src], looks like you're number [ticket_number] in queue...")) var/obj/item/ticket_machine_ticket/theirticket = new (get_turf(src), ticket_number) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 425ff9d38a403..8666bcbda4dfd 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -252,7 +252,7 @@ printpicture(user, picture) if(!silent) - playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE, -3) + playsound(loc, pick('sound/items/polaroid/polaroid1.ogg', 'sound/items/polaroid/polaroid2.ogg'), 75, TRUE, -3) /obj/item/camera/proc/printpicture(mob/user, datum/picture/picture) //Normal camera proc for creating photos pictures_left-- diff --git a/code/modules/photography/camera/other.dm b/code/modules/photography/camera/other.dm index 83e9a5fd28cac..149d69252a6ac 100644 --- a/code/modules/photography/camera/other.dm +++ b/code/modules/photography/camera/other.dm @@ -34,4 +34,4 @@ /obj/item/camera/detective/after_picture(mob/user, datum/picture/picture) . = ..() - user.playsound_local(get_turf(src), pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 35, TRUE) + user.playsound_local(get_turf(src), pick('sound/items/polaroid/polaroid1.ogg', 'sound/items/polaroid/polaroid2.ogg'), 35, TRUE) diff --git a/code/modules/photography/camera/silicon_camera.dm b/code/modules/photography/camera/silicon_camera.dm index a8bf7a3ba90e7..fdc390fe0615a 100644 --- a/code/modules/photography/camera/silicon_camera.dm +++ b/code/modules/photography/camera/silicon_camera.dm @@ -31,11 +31,11 @@ // Trying to turn on camera mode while you have another click intercept active, such as malf abilities if(sound) balloon_alert(user, "can't enable camera mode!") - playsound(user, 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) return if(sound) - playsound(user, 'sound/items/wirecutter.ogg', 50, TRUE) + playsound(user, 'sound/items/tools/wirecutter.ogg', 50, TRUE) balloon_alert(user, "camera mode [user.click_intercept == src ? "activated" : "deactivated"]") /obj/item/camera/siliconcam/proc/selectpicture(mob/user) @@ -80,7 +80,7 @@ picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE balloon_alert(user, "image recorded") - user.playsound_local(get_turf(user), pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 50, TRUE, -3) + user.playsound_local(get_turf(user), pick('sound/items/polaroid/polaroid1.ogg', 'sound/items/polaroid/polaroid2.ogg'), 50, TRUE, -3) /obj/item/camera/siliconcam/robot_camera name = "Cyborg photo camera" @@ -102,7 +102,7 @@ picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE balloon_alert(user, "image recorded and saved locally") - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE, -3) + playsound(src, pick('sound/items/polaroid/polaroid1.ogg', 'sound/items/polaroid/polaroid2.ogg'), 75, TRUE, -3) /obj/item/camera/siliconcam/robot_camera/selectpicture(mob/living/silicon/robot/user) if(istype(user) && user.connected_ai) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 342abb1625c5a..e240e94292ddc 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -66,9 +66,9 @@ /obj/item/photo/suicide_act(mob/living/carbon/human/user) user.visible_message(span_suicide("[user] is taking one last look at \the [src]! It looks like [user.p_theyre()] giving in to death!"))//when you wanna look at photo of waifu one last time before you die... if (!ishuman(user) || user.physique == MALE) - playsound(user, 'sound/voice/human/manlaugh1.ogg', 50, TRUE)//EVERY TIME I DO IT MAKES ME LAUGH + playsound(user, 'sound/mobs/humanoids/human/laugh/manlaugh1.ogg', 50, TRUE)//EVERY TIME I DO IT MAKES ME LAUGH else - playsound(user, 'sound/voice/human/womanlaugh.ogg', 50, TRUE) + playsound(user, 'sound/mobs/humanoids/human/laugh/womanlaugh.ogg', 50, TRUE) return OXYLOSS /obj/item/photo/attack_self(mob/user) diff --git a/code/modules/plumbing/plumbers/pumps.dm b/code/modules/plumbing/plumbers/pumps.dm index 79374fcf38c93..5aa1dc707e376 100644 --- a/code/modules/plumbing/plumbers/pumps.dm +++ b/code/modules/plumbing/plumbers/pumps.dm @@ -41,7 +41,7 @@ if(!geyser) //we didnt find one, abort geyserless = TRUE visible_message(span_warning("The [name] makes a sad beep!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50) return pump(seconds_per_tick) diff --git a/code/modules/power/apc/apc_attack.dm b/code/modules/power/apc/apc_attack.dm index 2752ae3c2bfdf..a40af34fc2a85 100644 --- a/code/modules/power/apc/apc_attack.dm +++ b/code/modules/power/apc/apc_attack.dm @@ -1,3 +1,9 @@ +// Ethereals: +/// How long it takes an ethereal to drain or charge APCs. Also used as a spam limiter. +#define ETHEREAL_APC_DRAIN_TIME (7.5 SECONDS) +/// How much power ethereals gain/drain from APCs. +#define ETHEREAL_APC_POWER_GAIN (0.2 * STANDARD_BATTERY_CHARGE) + /obj/machinery/power/apc/attack_hand_secondary(mob/user, list/modifiers) . = ..() if(!can_interact(user)) @@ -27,7 +33,7 @@ if(!istype(maybe_stomach, /obj/item/organ/internal/stomach/ethereal)) return - var/charge_limit = ETHEREAL_CHARGE_DANGEROUS - APC_POWER_GAIN + var/charge_limit = ETHEREAL_CHARGE_DANGEROUS - ETHEREAL_APC_POWER_GAIN var/obj/item/organ/internal/stomach/ethereal/stomach = maybe_stomach var/obj/item/stock_parts/power_store/stomach_cell = stomach.cell if(!((stomach?.drain_time < world.time) && LAZYACCESS(modifiers, RIGHT_CLICK))) @@ -39,33 +45,33 @@ if(stomach_cell.charge() > charge_limit) addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, balloon_alert), ethereal, "charge is full!"), alert_timer_duration) return - stomach.drain_time = world.time + APC_DRAIN_TIME + stomach.drain_time = world.time + ETHEREAL_APC_DRAIN_TIME addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, balloon_alert), ethereal, "draining power"), alert_timer_duration) - while(do_after(user, APC_DRAIN_TIME, target = src)) + while(do_after(user, ETHEREAL_APC_DRAIN_TIME, target = src)) if(cell.charge <= (cell.maxcharge / 2) || (stomach_cell.charge() > charge_limit)) return balloon_alert(ethereal, "received charge") - stomach.adjust_charge(APC_POWER_GAIN) - cell.use(APC_POWER_GAIN) + stomach.adjust_charge(ETHEREAL_APC_POWER_GAIN) + cell.use(ETHEREAL_APC_POWER_GAIN) return - if(cell.charge >= cell.maxcharge - APC_POWER_GAIN) + if(cell.charge >= cell.maxcharge - ETHEREAL_APC_POWER_GAIN) addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, balloon_alert), ethereal, "APC can't receive more power!"), alert_timer_duration) return - if(stomach_cell.charge() < APC_POWER_GAIN) + if(stomach_cell.charge() < ETHEREAL_APC_POWER_GAIN) addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, balloon_alert), ethereal, "charge is too low!"), alert_timer_duration) return - stomach.drain_time = world.time + APC_DRAIN_TIME + stomach.drain_time = world.time + ETHEREAL_APC_DRAIN_TIME addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, balloon_alert), ethereal, "transfering power"), alert_timer_duration) - if(!do_after(user, APC_DRAIN_TIME, target = src)) + if(!do_after(user, ETHEREAL_APC_DRAIN_TIME, target = src)) return - if((cell.charge >= (cell.maxcharge - APC_POWER_GAIN)) || (stomach_cell.charge() < APC_POWER_GAIN)) + if((cell.charge >= (cell.maxcharge - ETHEREAL_APC_POWER_GAIN)) || (stomach_cell.charge() < ETHEREAL_APC_POWER_GAIN)) balloon_alert(ethereal, "can't transfer power!") return if(istype(stomach)) - while(do_after(user, APC_DRAIN_TIME, target = src)) + while(do_after(user, ETHEREAL_APC_DRAIN_TIME, target = src)) balloon_alert(ethereal, "transferred power") - cell.give(-stomach.adjust_charge(-APC_POWER_GAIN)) + cell.give(-stomach.adjust_charge(-ETHEREAL_APC_POWER_GAIN)) else balloon_alert(ethereal, "can't transfer power!") @@ -125,3 +131,6 @@ return TRUE else return FALSE + +#undef ETHEREAL_APC_DRAIN_TIME +#undef ETHEREAL_APC_POWER_GAIN diff --git a/code/modules/power/apc/apc_main.dm b/code/modules/power/apc/apc_main.dm index d6c3b5d803da3..7b9bcd4f22388 100644 --- a/code/modules/power/apc/apc_main.dm +++ b/code/modules/power/apc/apc_main.dm @@ -420,9 +420,9 @@ say("Remote access detected.[locked ? " Interface unlocked." : ""]") to_chat(remote_control_user, span_danger("[icon2html(src, remote_control_user)] Connected to [src].")) if(locked) - playsound(src, 'sound/machines/terminal_on.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 25, FALSE) locked = FALSE - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50, FALSE) update_appearance() /obj/machinery/power/apc/proc/disconnect_remote_access() @@ -432,8 +432,8 @@ locked = TRUE say("Remote access canceled. Interface locked.") to_chat(remote_control_user, span_danger("[icon2html(src, remote_control_user)] Disconnected from [src].")) - playsound(src, 'sound/machines/terminal_off.ogg', 25, FALSE) - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50, FALSE) update_appearance() remote_control_user = null diff --git a/code/modules/power/apc/apc_malf.dm b/code/modules/power/apc/apc_malf.dm index b8fe1510c918d..3f7d23244ece9 100644 --- a/code/modules/power/apc/apc_malf.dm +++ b/code/modules/power/apc/apc_malf.dm @@ -113,10 +113,10 @@ transfer_in_progress = TRUE user.visible_message(span_notice("[user] slots [card] into [src]..."), span_notice("Transfer process initiated. Sending request for AI approval...")) playsound(src, 'sound/machines/click.ogg', 50, TRUE) - SEND_SOUND(occupier, sound('sound/misc/notice2.ogg')) //To alert the AI that someone's trying to card them if they're tabbed out + SEND_SOUND(occupier, sound('sound/announcer/notice/notice2.ogg')) //To alert the AI that someone's trying to card them if they're tabbed out if(tgui_alert(occupier, "[user] is attempting to transfer you to \a [card.name]. Do you consent to this?", "APC Transfer", list("Yes - Transfer Me", "No - Keep Me Here")) == "No - Keep Me Here") to_chat(user, span_danger("AI denied transfer request. Process terminated.")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) transfer_in_progress = FALSE return FALSE if(user.loc != user_turf) diff --git a/code/modules/power/apc/apc_power_proc.dm b/code/modules/power/apc/apc_power_proc.dm index ba60ec723b6a1..2f1182d01a52a 100644 --- a/code/modules/power/apc/apc_power_proc.dm +++ b/code/modules/power/apc/apc_power_proc.dm @@ -30,12 +30,12 @@ area.power_light = (lighting > APC_CHANNEL_AUTO_OFF) area.power_equip = (equipment > APC_CHANNEL_AUTO_OFF) area.power_environ = (environ > APC_CHANNEL_AUTO_OFF) - playsound(src.loc, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src.loc, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) else area.power_light = FALSE area.power_equip = FALSE area.power_environ = FALSE - playsound(src.loc, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src.loc, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) area.power_change() /obj/machinery/power/apc/proc/toggle_breaker(mob/user) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 5c68bb8f4c8b0..4b6c03c5eae05 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri if(avail()) king.apply_damage(10) - playsound(king, 'sound/effects/sparks2.ogg', 100, TRUE) + playsound(king, 'sound/effects/sparks/sparks2.ogg', 100, TRUE) deconstruct() return COMPONENT_RAT_INTERACTED @@ -578,7 +578,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri /obj/item/stack/cable_coil/proc/try_heal_loop(atom/interacting_with, mob/living/user, repeating = FALSE) var/mob/living/carbon/human/attacked_humanoid = interacting_with var/obj/item/clothing/under/uniform = attacked_humanoid.w_uniform - if(uniform.repair_sensors(src, user)) + if(uniform?.repair_sensors(src, user)) return ITEM_INTERACT_SUCCESS var/obj/item/bodypart/affecting = attacked_humanoid.get_bodypart(check_zone(user.zone_selected)) diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index 7799018a238a3..5b9d983cf1dd6 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -308,7 +308,7 @@ . = ..() if(!.) return - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) var/obj/structure/floodlight_frame/floodlight_frame = new(loc) floodlight_frame.state = FLOODLIGHT_NEEDS_LIGHTS @@ -318,7 +318,7 @@ qdel(src) /obj/machinery/power/floodlight/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(src, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src, 'sound/effects/glass/glasshit.ogg', 75, TRUE) #undef FLOODLIGHT_OFF #undef FLOODLIGHT_LOW diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index 431f2095b0a69..defb73fe2c7d5 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -447,13 +447,13 @@ if(BRUTE) switch(status) if(LIGHT_EMPTY) - playsound(loc, 'sound/weapons/smash.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/smash.ogg', 50, TRUE) if(LIGHT_BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) // returns if the light has power /but/ is manually turned off // if a light is turned off, it won't activate emergency power @@ -641,7 +641,7 @@ if(!skip_sound_and_sparks) if(status == LIGHT_OK || status == LIGHT_BURNED) - playsound(loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(on) do_sparks(3, TRUE, src) status = LIGHT_BROKEN diff --git a/code/modules/power/lighting/light_items.dm b/code/modules/power/lighting/light_items.dm index 5e9df6ee432ee..357507d0aa4f9 100644 --- a/code/modules/power/lighting/light_items.dm +++ b/code/modules/power/lighting/light_items.dm @@ -135,7 +135,7 @@ status = LIGHT_BROKEN force = 5 sharpness = SHARP_POINTY - playsound(loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(length(reagents.reagent_list)) visible_message(span_danger("The contents of [src] splash onto you as you step on it!"),span_hear("You feel the contents of [src] splash onto you as you step on it!.")) reagents.expose(target, TOUCH) diff --git a/code/modules/power/power_store.dm b/code/modules/power/power_store.dm index 8bbaa5bc0fe58..1be39dfbaa031 100644 --- a/code/modules/power/power_store.dm +++ b/code/modules/power/power_store.dm @@ -266,7 +266,7 @@ if(!eating_success || QDELETED(src) || charge == 0) user.visible_message(span_suicide("[user] chickens out!")) return SHAME - playsound(user, 'sound/effects/sparks1.ogg', charge / maxcharge) + playsound(user, 'sound/effects/sparks/sparks1.ogg', charge / maxcharge) var/damage = charge / (1 KILO JOULES) user.electrocute_act(damage, src, 1, SHOCK_IGNORE_IMMUNITY|SHOCK_DELAY_STUN|SHOCK_NOGLOVES) charge = 0 @@ -284,7 +284,7 @@ return user.dropItemToGround(src) user.dust(just_ash = TRUE) - playsound(src, 'sound/magic/lightningshock.ogg', 50, TRUE, 10) + playsound(src, 'sound/effects/magic/lightningshock.ogg', 50, TRUE, 10) tesla_zap(source = src, zap_range = 10, power = discharged_energy) /obj/item/stock_parts/power_store/attack_self(mob/user) diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 657263b3de415..dff4a732b9312 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -69,7 +69,7 @@ going_kaboom = TRUE visible_message(span_danger("\The [src] lets out a shower of sparks as it starts to lose stability!"),\ span_hear("You hear a loud electrical crack!")) - playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + playsound(src.loc, 'sound/effects/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) tesla_zap(source = src, zap_range = 5, power = power_gen * 20) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), src, 2, 3, 4, null, 8), 10 SECONDS) // Not a normal explosion. diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 90aed00876359..f3dd1be2581cb 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -40,7 +40,7 @@ ///What projectile type are we shooting? var/projectile_type = /obj/projectile/beam/emitter/hitscan ///What's the projectile sound? - var/projectile_sound = 'sound/weapons/emitter.ogg' + var/projectile_sound = 'sound/items/weapons/emitter.ogg' ///Sparks emitted with every shot var/datum/effect_system/spark_spread/sparks ///Stores the type of gun we are using inside the emitter @@ -407,7 +407,7 @@ //BUCKLE HOOKS /obj/machinery/power/emitter/prototype/unbuckle_mob(mob/living/buckled_mob, force = FALSE, can_fall = TRUE) - playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(src,'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) manual = FALSE for(var/obj/item/item in buckled_mob.held_items) if(istype(item, /obj/item/turret_control)) @@ -428,7 +428,7 @@ return buckled_mob.forceMove(get_turf(src)) ..() - playsound(src, 'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(src, 'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) buckled_mob.pixel_y = 14 layer = 4.1 if(buckled_mob.client) @@ -461,7 +461,7 @@ /datum/action/innate/proto_emitter/firing/Activate() if(proto_emitter.manual) - playsound(proto_emitter,'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(proto_emitter,'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) proto_emitter.manual = FALSE name = "Switch to Manual Firing" desc = "The emitter will only fire on your command and at your designated target" @@ -471,7 +471,7 @@ qdel(item) build_all_button_icons() return - playsound(proto_emitter,'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(proto_emitter,'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) name = "Switch to Automatic Firing" desc = "Emitters will switch to periodic firing at your last target" button_icon_state = "mech_zoom_off" @@ -553,7 +553,7 @@ emitter.fire_beam(user) delay = world.time + 10 else if (emitter.charge < 10) - playsound(src,'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src,'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return ITEM_INTERACT_SUCCESS /obj/machinery/power/emitter/ctf diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index b15867790026d..09e380aca17f4 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -68,7 +68,7 @@ )) send_to_playing_players(span_narsie("NAR'SIE HAS RISEN")) - sound_to_playing_players('sound/creatures/narsie_rises.ogg') + sound_to_playing_players('sound/music/antag/bloodcult/narsie_rises.ogg') var/area/area = get_area(src) if(area) @@ -124,7 +124,7 @@ summon_objective.killed = TRUE send_to_playing_players(span_narsie(span_bold(pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")))) - sound_to_playing_players('sound/magic/demon_dies.ogg', 50) + sound_to_playing_players('sound/effects/magic/demon_dies.ogg', 50) /obj/narsie/vv_get_dropdown() . = ..() @@ -253,21 +253,21 @@ ///First crew last second win check and flufftext for [/proc/begin_the_end()] /proc/narsie_end_begin_check() if(QDELETED(GLOB.cult_narsie)) // uno - priority_announce("Status report? We detected an anomaly, but it disappeared almost immediately.","[command_name()] Higher Dimensional Affairs", 'sound/misc/notice1.ogg') + priority_announce("Status report? We detected an anomaly, but it disappeared almost immediately.","[command_name()] Higher Dimensional Affairs", 'sound/announcer/notice/notice1.ogg') GLOB.cult_narsie = null addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), CULT_FAILURE_NARSIE_KILLED), 2 SECONDS) return priority_announce( text = "An acausal dimensional event has been detected in your sector. Event has been flagged EXTINCTION-CLASS. Directing all available assets toward simulating solutions. SOLUTION ETA: 60 SECONDS.", title = "[command_name()] Higher Dimensional Affairs", - sound = 'sound/misc/airraid.ogg', + sound = 'sound/announcer/alarm/airraid.ogg', ) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(narsie_end_second_check)), 50 SECONDS) ///Second crew last second win check and flufftext for [/proc/begin_the_end()] /proc/narsie_end_second_check() if(QDELETED(GLOB.cult_narsie)) // dos - priority_announce("Simulations aborted, sensors report that the acasual event is normalizing. Good work, crew.","[command_name()] Higher Dimensional Affairs", 'sound/misc/notice1.ogg') + priority_announce("Simulations aborted, sensors report that the acasual event is normalizing. Good work, crew.","[command_name()] Higher Dimensional Affairs", 'sound/announcer/notice/notice1.ogg') GLOB.cult_narsie = null addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), CULT_FAILURE_NARSIE_KILLED), 2 SECONDS) return @@ -284,14 +284,14 @@ ///Third crew last second win check and flufftext for [/proc/begin_the_end()] /proc/narsie_apocalypse() if(QDELETED(GLOB.cult_narsie)) // tres - priority_announce("Normalization detected! Abort the solution package!","[command_name()] Higher Dimensional Affairs", 'sound/misc/notice1.ogg') + priority_announce("Normalization detected! Abort the solution package!","[command_name()] Higher Dimensional Affairs", 'sound/announcer/notice/notice1.ogg') SSshuttle.clearHostileEnvironment(GLOB.cult_narsie) GLOB.cult_narsie = null addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(narsie_last_second_win)), 2 SECONDS) return if(GLOB.cult_narsie.resolved == FALSE) GLOB.cult_narsie.resolved = TRUE - sound_to_playing_players('sound/machines/alarm.ogg') + sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper)), 12 SECONDS) ///Called only if the crew managed to destroy narsie at the very last second for [/proc/begin_the_end()] diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index cd36823a207e9..1823f086228a4 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -108,15 +108,15 @@ if(machine_stat & BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 60, TRUE) else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/power/solar/atom_break(damage_flag) . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) unset_control() // Make sure user can see it's broken var/new_angle = rand(160, 200) @@ -170,7 +170,7 @@ // actually flip to other direction? if(abs(angle - azimuth_current) > 180) - mid_azimuth = (mid_azimuth + 180) % 360 + mid_azimuth = reverse_angle(mid_azimuth) // Split into 2 parts so it doesn't distort on large changes animate(part, @@ -559,14 +559,14 @@ if(machine_stat & BROKEN) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE) else - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src.loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/power/solar_control/atom_break(damage_flag) . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) /obj/machinery/power/solar_control/process() lastgen = gen diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index e7cc039c72df9..439c0b8d177b4 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -299,7 +299,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) zap_factors = calculate_zap_transmission_rate() var/delta_time = (SSmachines.times_fired - last_power_zap_perspective_machines) * SSmachines.wait / (1 SECONDS) if(delta_time && internal_energy && (last_power_zap + (4 - internal_energy * 0.001) SECONDS) < world.time) - playsound(src, 'sound/weapons/emitter2.ogg', 70, TRUE) + playsound(src, 'sound/items/weapons/emitter2.ogg', 70, TRUE) hue_angle_shift = clamp(903 * log(10, (internal_energy + 8000)) - 3590, -50, 240) var/zap_color = color_matrix_rotate_hue(hue_angle_shift) supermatter_zap( diff --git a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm index aea846d237ef1..26ebb06fbeb8a 100644 --- a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm +++ b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm @@ -50,18 +50,18 @@ GLOBAL_LIST_INIT(sm_delam_list, list( sm.radio.talk_into(sm,"Crystalline hyperstructure returning to safe operating parameters. Integrity: [round(sm.get_integrity_percent(), 0.01)]%", sm.emergency_channel) else sm.radio.talk_into(sm,"Crystalline hyperstructure returning to safe operating parameters. Integrity: [round(sm.get_integrity_percent(), 0.01)]%", sm.warning_channel) - playsound(sm, 'sound/machines/terminal_alert.ogg', 75) + playsound(sm, 'sound/machines/terminal/terminal_alert.ogg', 75) return FALSE switch(sm.get_status()) if(SUPERMATTER_DELAMINATING) - playsound(sm, 'sound/misc/bloblarm.ogg', 100, FALSE, 40, 30, falloff_distance = 10) + playsound(sm, 'sound/announcer/alarm/bloblarm.ogg', 100, FALSE, 40, 30, falloff_distance = 10) if(SUPERMATTER_EMERGENCY) - playsound(sm, 'sound/machines/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) + playsound(sm, 'sound/machines/engine_alert/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) if(SUPERMATTER_DANGER) - playsound(sm, 'sound/machines/engine_alert2.ogg', 100, FALSE, 30, 30, falloff_distance = 10) + playsound(sm, 'sound/machines/engine_alert/engine_alert2.ogg', 100, FALSE, 30, 30, falloff_distance = 10) if(SUPERMATTER_WARNING) - playsound(sm, 'sound/machines/terminal_alert.ogg', 75) + playsound(sm, 'sound/machines/terminal/terminal_alert.ogg', 75) if(sm.damage >= sm.emergency_point) // In emergency sm.radio.talk_into(sm, "CRYSTAL DELAMINATION IMMINENT! Integrity: [round(sm.get_integrity_percent(), 0.01)]%", sm.emergency_channel) diff --git a/code/modules/power/supermatter/supermatter_delamination/cascade_delam.dm b/code/modules/power/supermatter/supermatter_delamination/cascade_delam.dm index a9c7a87045da3..abcc6a3a50ea3 100644 --- a/code/modules/power/supermatter/supermatter_delamination/cascade_delam.dm +++ b/code/modules/power/supermatter/supermatter_delamination/cascade_delam.dm @@ -89,7 +89,7 @@ return FALSE priority_announce("Attention: Long range anomaly scans indicate abnormal quantities of harmonic flux originating from \ a subject within [station_name()], a resonance collapse may occur.", - "Nanotrasen Star Observation Association", 'sound/misc/airraid.ogg') + "Nanotrasen Star Observation Association", 'sound/announcer/alarm/airraid.ogg') return TRUE /// Signal calls cant sleep, we gotta do this. diff --git a/code/modules/power/supermatter/supermatter_delamination/cascade_delam_objects.dm b/code/modules/power/supermatter/supermatter_delamination/cascade_delam_objects.dm index d19d17452e221..c07ec7bbe89f7 100644 --- a/code/modules/power/supermatter/supermatter_delamination/cascade_delam_objects.dm +++ b/code/modules/power/supermatter/supermatter_delamination/cascade_delam_objects.dm @@ -64,7 +64,7 @@ span_userdanger("The crystal mass lunges on you and hits you in the chest. As your vision is filled with a blinding light, you think to yourself \"Damn it.\"")) else if(istype(checked_atom, /obj/cascade_portal)) checked_atom.visible_message(span_userdanger("\The [checked_atom] screeches and closes away as it is hit by \a [src]! Too late!")) - playsound(get_turf(checked_atom), 'sound/magic/charge.ogg', 50, TRUE) + playsound(get_turf(checked_atom), 'sound/effects/magic/charge.ogg', 50, TRUE) playsound(get_turf(checked_atom), 'sound/effects/supermatter.ogg', 50, TRUE) qdel(checked_atom) else if(isitem(checked_atom)) diff --git a/code/modules/power/supermatter/supermatter_delamination/delamination_effects.dm b/code/modules/power/supermatter/supermatter_delamination/delamination_effects.dm index a6c3f171b61af..4fe8863815a2d 100644 --- a/code/modules/power/supermatter/supermatter_delamination/delamination_effects.dm +++ b/code/modules/power/supermatter/supermatter_delamination/delamination_effects.dm @@ -32,7 +32,7 @@ var/turf/victim_turf = get_turf(victim) if(!is_valid_z_level(victim_turf, sm_turf)) continue - victim.playsound_local(victim_turf, 'sound/magic/charge.ogg') + victim.playsound_local(victim_turf, 'sound/effects/magic/charge.ogg') if(victim.z == 0) //victim is inside an object, this is to maintain an old bug turned feature with lockers n shit i guess. tg issue #69687 var/message = "" var/location = victim.loc @@ -140,7 +140,7 @@ priority_announce( text = "Fatal error occurred in emergency shuttle uplink during transit. Unable to reestablish connection.", title = "Shuttle Failure", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) @@ -163,7 +163,7 @@ var/mob/living/living_player = player to_chat(player, span_boldannounce("Everything around you is resonating with a powerful energy. This can't be good.")) living_player.add_mood_event("cascade", /datum/mood_event/cascade) - SEND_SOUND(player, 'sound/magic/charge.ogg') + SEND_SOUND(player, 'sound/effects/magic/charge.ogg') /datum/sm_delam/proc/effect_emergency_state() if(SSsecurity_level.get_current_level_as_number() != SEC_LEVEL_DELTA) diff --git a/code/modules/power/supermatter/supermatter_extra_effects.dm b/code/modules/power/supermatter/supermatter_extra_effects.dm index 5d4c3474d59f6..a21a5ee728739 100644 --- a/code/modules/power/supermatter/supermatter_extra_effects.dm +++ b/code/modules/power/supermatter/supermatter_extra_effects.dm @@ -128,7 +128,7 @@ zap_count += 1 if(zap_count >= 1) - playsound(loc, 'sound/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) + playsound(loc, 'sound/items/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) var/delta_time = (SSmachines.times_fired - last_high_energy_zap_perspective_machines) * SSmachines.wait / (1 SECONDS) if(delta_time) for(var/i in 1 to zap_count) @@ -144,7 +144,7 @@ supermatter_anomaly_gen(src, PYRO_ANOMALY, rand(5, 10)) /obj/machinery/power/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 3) - playsound(center, 'sound/weapons/marauder.ogg', 100, TRUE, extrarange = pull_range - world.view) + playsound(center, 'sound/items/weapons/marauder.ogg', 100, TRUE, extrarange = pull_range - world.view) for(var/atom/movable/movable_atom in orange(pull_range,center)) if((movable_atom.anchored || movable_atom.move_resist >= MOVE_FORCE_EXTREMELY_STRONG)) //move resist memes. if(istype(movable_atom, /obj/structure/closet)) diff --git a/code/modules/power/supermatter/supermatter_gas.dm b/code/modules/power/supermatter/supermatter_gas.dm index fe0ed388148b5..b6eb2804c28ab 100644 --- a/code/modules/power/supermatter/supermatter_gas.dm +++ b/code/modules/power/supermatter/supermatter_gas.dm @@ -218,7 +218,7 @@ GLOBAL_LIST_INIT(sm_gas_behavior, init_sm_gas()) /datum/sm_gas/zauker/extra_effects(obj/machinery/power/supermatter_crystal/sm) if(!prob(sm.gas_percentage[/datum/gas/zauker] * 100)) return - playsound(sm.loc, 'sound/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) + playsound(sm.loc, 'sound/items/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) sm.supermatter_zap( sm, range = 6, diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 14eb6c88864b0..394fcc96d33cb 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -114,7 +114,7 @@ var/power = (powernet.avail) * 0.2 * input_power_multiplier //Always always always use more then you output for the love of god power = min(surplus(), power) //Take the smaller of the two add_load(power) - playsound(src.loc, 'sound/magic/lightningshock.ogg', zap_sound_volume, TRUE, zap_sound_range) + playsound(src.loc, 'sound/effects/magic/lightningshock.ogg', zap_sound_volume, TRUE, zap_sound_range) tesla_zap(source = src, zap_range = 10, power = power, cutoff = 1e3, zap_flags = zap_flags) zap_buckle_check(power) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index bbc1030f0d6ae..b6187760f8360 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -70,7 +70,7 @@ move(4 + orbiting_balls.len * 1.5) - playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, TRUE, extrarange = 30) + playsound(src.loc, 'sound/effects/magic/lightningbolt.ogg', 100, TRUE, extrarange = 30) pixel_x = 0 pixel_y = 0 @@ -126,7 +126,7 @@ energy_to_lower = energy_to_raise - 20 energy_to_raise = energy_to_raise * 1.25 - playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, TRUE, extrarange = 30) + playsound(src.loc, 'sound/effects/magic/lightning_chargeup.ogg', 100, TRUE, extrarange = 30) addtimer(CALLBACK(src, PROC_REF(new_mini_ball)), 10 SECONDS) else if(energy < energy_to_lower && orbiting_balls.len) energy_to_raise = energy_to_raise / 1.25 diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index a6118e9ac093f..0855e63ed4bf9 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -90,7 +90,7 @@ // actually flip to other direction? if(abs(angle - azimuth_current) > 180) - mid_azimuth = (mid_azimuth + 180) % 360 + mid_azimuth = reverse_angle(mid_azimuth) // Split into 2 parts so it doesn't distort on large changes animate(part, @@ -134,7 +134,7 @@ /obj/machinery/power/tracker/atom_break(damage_flag) . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) unset_control() /obj/machinery/power/tracker/on_deconstruction(disassembled) diff --git a/code/modules/power/turbine/turbine.dm b/code/modules/power/turbine/turbine.dm index dbf5d1848dd48..e839800158f63 100644 --- a/code/modules/power/turbine/turbine.dm +++ b/code/modules/power/turbine/turbine.dm @@ -648,7 +648,7 @@ return PROCESS_KILL radio.talk_into(src, "Warning, turbine at [get_area_name(src)] taking damage, current integrity at [integrity]%!", RADIO_CHANNEL_ENGINEERING) - playsound(src, 'sound/machines/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) + playsound(src, 'sound/machines/engine_alert/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) //================ROTOR WORKING============// //The Rotor moves the gases that expands from 1000 L to 3000 L, they cool down and both temperature and pressure lowers diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 42751441fca4f..4bf428f80c125 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -32,6 +32,9 @@ var/firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect ///pacifism check for boolet, set to FALSE if bullet is non-lethal var/harmful = TRUE + /// How much force is applied when fired in zero-G + var/newtonian_force = 1 + ///If set to true or false, this ammunition can or cannot misfire, regardless the gun can_misfire setting var/can_misfire = null ///This is how much misfire probability is added to the gun when it fires this casing. @@ -156,6 +159,6 @@ SpinAnimation(10, 1) var/turf/T = get_turf(src) if(still_warm && T?.bullet_sizzle) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/tools/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected. else if(T?.bullet_bounce_sound) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, T.bullet_bounce_sound, 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them. diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm index 282c722b169e6..b15cd334a8e6d 100644 --- a/code/modules/projectiles/ammunition/_firing.dm +++ b/code/modules/projectiles/ammunition/_firing.dm @@ -23,10 +23,10 @@ user.changeNext_move(next_delay) if(!tk_firing(user, fired_from)) - user.newtonian_move(get_dir(target, user)) + user.newtonian_move(get_angle(target, user), drift_force = newtonian_force) else if(ismovable(fired_from)) var/atom/movable/firer = fired_from - if(!firer.newtonian_move(get_dir(target, fired_from), instant = TRUE)) + if(!firer.newtonian_move(get_angle(target, fired_from), instant = TRUE, drift_force = newtonian_force)) var/throwtarget = get_step(fired_from, get_dir(target, fired_from)) firer.safe_throw_at(throwtarget, 1, 2) update_appearance() diff --git a/code/modules/projectiles/ammunition/ballistic/foam.dm b/code/modules/projectiles/ammunition/ballistic/foam.dm index 7ffa317897a83..f4496cf6c189b 100644 --- a/code/modules/projectiles/ammunition/ballistic/foam.dm +++ b/code/modules/projectiles/ammunition/ballistic/foam.dm @@ -8,6 +8,7 @@ base_icon_state = "foamdart" custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.1125) harmful = FALSE + newtonian_force = 0.5 var/modified = FALSE var/static/list/insertable_items_hint = list(/obj/item/pen) ///For colored magazine overlays. diff --git a/code/modules/projectiles/ammunition/ballistic/harpoon.dm b/code/modules/projectiles/ammunition/ballistic/harpoon.dm index 79590ccb97d10..b3c1dddd08513 100644 --- a/code/modules/projectiles/ammunition/ballistic/harpoon.dm +++ b/code/modules/projectiles/ammunition/ballistic/harpoon.dm @@ -4,6 +4,7 @@ icon_state = "magspear" base_icon_state = "magspear" projectile_type = /obj/projectile/bullet/harpoon + newtonian_force = 1.5 /obj/item/ammo_casing/harpoon/Initialize(mapload) . = ..() diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index bc25970e7c364..fc90f2d7bfdfb 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -5,6 +5,7 @@ desc = "A 10mm bullet casing." caliber = CALIBER_10MM projectile_type = /obj/projectile/bullet/c10mm + newtonian_force = 0.75 /obj/item/ammo_casing/c10mm/ap name = "10mm armor-piercing bullet casing" @@ -33,6 +34,7 @@ desc = "A 9mm bullet casing." caliber = CALIBER_9MM projectile_type = /obj/projectile/bullet/c9mm + newtonian_force = 0.75 /obj/item/ammo_casing/c9mm/ap name = "9mm armor-piercing bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 4c5c24a3eec89..c85be11686118 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -48,6 +48,7 @@ caliber = CALIBER_40MM icon_state = "40mmHE" projectile_type = /obj/projectile/bullet/a40mm + newtonian_force = 1.25 /obj/item/ammo_casing/a40mm/rubber name = "40mm rubber shell" @@ -61,6 +62,7 @@ icon_state = "rod_sharp" base_icon_state = "rod_sharp" projectile_type = /obj/projectile/bullet/rebar + newtonian_force = 1.5 /obj/item/ammo_casing/rebar/syndie name = "Jagged Iron Rod" @@ -109,6 +111,7 @@ icon_state = "paperball" base_icon_state = "paperball" projectile_type = /obj/projectile/bullet/paperball + newtonian_force = 0.5 /obj/item/ammo_casing/rebar/Initialize(mapload) . = ..() diff --git a/code/modules/projectiles/ammunition/ballistic/rocket.dm b/code/modules/projectiles/ammunition/ballistic/rocket.dm index 25f0bee11a672..d387ea5ac4a4e 100644 --- a/code/modules/projectiles/ammunition/ballistic/rocket.dm +++ b/code/modules/projectiles/ammunition/ballistic/rocket.dm @@ -5,6 +5,7 @@ icon_state = "srm-8" base_icon_state = "srm-8" projectile_type = /obj/projectile/bullet/rocket + newtonian_force = 2 /obj/item/ammo_casing/rocket/Initialize(mapload) . = ..() diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 84c75ed24935e..897e695fd4eb7 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -8,6 +8,7 @@ caliber = CALIBER_SHOTGUN custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2) projectile_type = /obj/projectile/bullet/shotgun_slug + newtonian_force = 1.25 /obj/item/ammo_casing/shotgun/executioner name = "executioner slug" diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm index 03deb0f2034b4..1b6e60cdef0e4 100644 --- a/code/modules/projectiles/ammunition/ballistic/sniper.dm +++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm @@ -6,6 +6,7 @@ caliber = CALIBER_50BMG projectile_type = /obj/projectile/bullet/p50 icon_state = ".50" + newtonian_force = 1.5 /obj/item/ammo_casing/p50/surplus name = ".50 BMG surplus bullet casing" diff --git a/code/modules/projectiles/ammunition/energy/_energy.dm b/code/modules/projectiles/ammunition/energy/_energy.dm index 877dc7784d02d..29e3d635585e9 100644 --- a/code/modules/projectiles/ammunition/energy/_energy.dm +++ b/code/modules/projectiles/ammunition/energy/_energy.dm @@ -6,5 +6,6 @@ slot_flags = null var/e_cost = LASER_SHOTS(10, STANDARD_CELL_CHARGE) //The amount of energy a cell needs to expend to create this shot. var/select_name = CALIBER_ENERGY - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/red + newtonian_force = 0.5 diff --git a/code/modules/projectiles/ammunition/energy/ebow.dm b/code/modules/projectiles/ammunition/energy/ebow.dm index a6a928c25095d..9f22f31812335 100644 --- a/code/modules/projectiles/ammunition/energy/ebow.dm +++ b/code/modules/projectiles/ammunition/energy/ebow.dm @@ -2,7 +2,7 @@ projectile_type = /obj/projectile/energy/bolt select_name = "bolt" e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5) - fire_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' // Even for non-suppressed crossbows, this is the most appropriate sound + fire_sound = 'sound/items/weapons/gun/general/heavy_shot_suppressed.ogg' // Even for non-suppressed crossbows, this is the most appropriate sound firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect /obj/item/ammo_casing/energy/bolt/halloween diff --git a/code/modules/projectiles/ammunition/energy/gravity.dm b/code/modules/projectiles/ammunition/energy/gravity.dm index 6ad3a776475ce..076a586c26d3b 100644 --- a/code/modules/projectiles/ammunition/energy/gravity.dm +++ b/code/modules/projectiles/ammunition/energy/gravity.dm @@ -1,10 +1,11 @@ /obj/item/ammo_casing/energy/gravity e_cost = 0 // Not possible to use the macro - fire_sound = 'sound/weapons/wave.ogg' + fire_sound = 'sound/items/weapons/wave.ogg' select_name = "gravity" delay = 50 var/obj/item/gun/energy/gravity_gun/gun firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect + newtonian_force = 1 /obj/item/ammo_casing/energy/gravity/Initialize(mapload) if(istype(loc,/obj/item/gun/energy/gravity_gun)) diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index a77dcfec663b1..04d139ca3751a 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -17,13 +17,13 @@ projectile_type = /obj/projectile/beam/laser/carbine e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE) select_name = "kill" - fire_sound = 'sound/weapons/laser2.ogg' + fire_sound = 'sound/items/weapons/laser2.ogg' /obj/item/ammo_casing/energy/lasergun/carbine/cybersun projectile_type = /obj/projectile/beam/laser/carbine/cybersun e_cost = LASER_SHOTS(54, STANDARD_CELL_CHARGE) select_name = "rapid fire" - fire_sound = 'sound/weapons/laser2.ogg' + fire_sound = 'sound/items/weapons/laser2.ogg' /obj/item/ammo_casing/energy/lasergun/carbine/practice projectile_type = /obj/projectile/beam/laser/carbine/practice @@ -44,6 +44,8 @@ /obj/item/ammo_casing/energy/laser/musket/prime projectile_type = /obj/projectile/beam/laser/musket/prime + pellets = 3 + variance = 10 /obj/item/ammo_casing/energy/laser/practice projectile_type = /obj/projectile/beam/practice @@ -90,13 +92,13 @@ /obj/item/ammo_casing/energy/laser/heavy projectile_type = /obj/projectile/beam/laser/heavylaser select_name = "anti-vehicle" - fire_sound = 'sound/weapons/lasercannonfire.ogg' + fire_sound = 'sound/items/weapons/lasercannonfire.ogg' /obj/item/ammo_casing/energy/laser/pulse projectile_type = /obj/projectile/beam/pulse e_cost = LASER_SHOTS(200, STANDARD_CELL_CHARGE * 40) select_name = "DESTROY" - fire_sound = 'sound/weapons/pulse.ogg' + fire_sound = 'sound/items/weapons/pulse.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/blue /obj/item/ammo_casing/energy/laser/bluetag @@ -118,12 +120,12 @@ /obj/item/ammo_casing/energy/xray projectile_type = /obj/projectile/beam/xray e_cost = LASER_SHOTS(20, STANDARD_CELL_CHARGE) - fire_sound = 'sound/weapons/laser3.ogg' + fire_sound = 'sound/items/weapons/laser3.ogg' /obj/item/ammo_casing/energy/mindflayer projectile_type = /obj/projectile/beam/mindflayer select_name = "MINDFUCK" - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' /obj/item/ammo_casing/energy/laser/minigun select_name = "kill" @@ -134,7 +136,7 @@ projectile_type = /obj/projectile/bullet/c10mm //henk select_name = "bullet" e_cost = LASER_SHOTS(8, STANDARD_CELL_CHARGE) - fire_sound = 'sound/weapons/thermalpistol.ogg' + fire_sound = 'sound/items/weapons/thermalpistol.ogg' /obj/item/ammo_casing/energy/nanite/inferno projectile_type = /obj/projectile/energy/inferno @@ -154,7 +156,7 @@ base_icon_state = "s-casing-live" slot_flags = null projectile_type = /obj/projectile/beam - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/red /obj/item/ammo_casing/laser/Initialize(mapload) diff --git a/code/modules/projectiles/ammunition/energy/lmg.dm b/code/modules/projectiles/ammunition/energy/lmg.dm index 632044f065203..01585e28b6c9d 100644 --- a/code/modules/projectiles/ammunition/energy/lmg.dm +++ b/code/modules/projectiles/ammunition/energy/lmg.dm @@ -1,6 +1,6 @@ /obj/item/ammo_casing/energy/c3dbullet projectile_type = /obj/projectile/bullet/c3d select_name = "spraydown" - fire_sound = 'sound/weapons/gun/smg/shot.ogg' + fire_sound = 'sound/items/weapons/gun/smg/shot.ogg' e_cost = LASER_SHOTS(30, STANDARD_CELL_CHARGE * 0.6) firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect diff --git a/code/modules/projectiles/ammunition/energy/plasma.dm b/code/modules/projectiles/ammunition/energy/plasma.dm index e660903bdc95d..f68879fc7577e 100644 --- a/code/modules/projectiles/ammunition/energy/plasma.dm +++ b/code/modules/projectiles/ammunition/energy/plasma.dm @@ -1,7 +1,7 @@ /obj/item/ammo_casing/energy/plasma projectile_type = /obj/projectile/plasma select_name = "plasma burst" - fire_sound = 'sound/weapons/plasma_cutter.ogg' + fire_sound = 'sound/items/weapons/plasma_cutter.ogg' delay = 15 e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE) diff --git a/code/modules/projectiles/ammunition/energy/portal.dm b/code/modules/projectiles/ammunition/energy/portal.dm index 787f2e4eac76c..5aa21f5fcf677 100644 --- a/code/modules/projectiles/ammunition/energy/portal.dm +++ b/code/modules/projectiles/ammunition/energy/portal.dm @@ -2,7 +2,7 @@ projectile_type = /obj/projectile/beam/wormhole e_cost = 0 // Can't use the macro harmful = FALSE - fire_sound = 'sound/weapons/pulse3.ogg' + fire_sound = 'sound/items/weapons/pulse3.ogg' select_name = "blue" //Weakref to the gun that shot us var/datum/weakref/gun diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index c42bcdc746e45..47940ad81c99c 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -1,7 +1,7 @@ /obj/item/ammo_casing/energy/ion projectile_type = /obj/projectile/ion select_name = "ion" - fire_sound = 'sound/weapons/ionrifle.ogg' + fire_sound = 'sound/items/weapons/ionrifle.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/blue /obj/item/ammo_casing/energy/ion/hos @@ -11,7 +11,7 @@ /obj/item/ammo_casing/energy/radiation projectile_type = /obj/projectile/energy/radiation select_name = "declone" - fire_sound = 'sound/weapons/pulse3.ogg' + fire_sound = 'sound/items/weapons/pulse3.ogg' /obj/item/ammo_casing/energy/radiation/weak projectile_type = /obj/projectile/energy/radiation/weak @@ -37,7 +37,7 @@ projectile_type = /obj/projectile/temp select_name = "freeze" e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE * 10) - fire_sound = 'sound/weapons/pulse3.ogg' + fire_sound = 'sound/items/weapons/pulse3.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/blue /obj/item/ammo_casing/energy/temp/hot @@ -48,6 +48,7 @@ /obj/item/ammo_casing/energy/meteor projectile_type = /obj/projectile/meteor select_name = "goddamn meteor" + newtonian_force = 3 /obj/item/ammo_casing/energy/net projectile_type = /obj/projectile/energy/net @@ -62,7 +63,7 @@ harmful = FALSE /obj/item/ammo_casing/energy/tesla_cannon - fire_sound = 'sound/magic/lightningshock.ogg' + fire_sound = 'sound/effects/magic/lightningshock.ogg' e_cost = LASER_SHOTS(33, STANDARD_CELL_CHARGE) select_name = "shock" projectile_type = /obj/projectile/energy/tesla_cannon @@ -77,18 +78,19 @@ projectile_type = /obj/projectile/bullet/marksman select_name = "marksman nanoshot" e_cost = 0 // Can't use the macro - fire_sound = 'sound/weapons/gun/revolver/shot_alt.ogg' + fire_sound = 'sound/items/weapons/gun/revolver/shot_alt.ogg' + newtonian_force = 1 /obj/item/ammo_casing/energy/fisher projectile_type = /obj/projectile/energy/fisher select_name = "light disruptor" harmful = FALSE e_cost = LASER_SHOTS(2, STANDARD_CELL_CHARGE * 0.5) - fire_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' // fwip fwip fwip fwip + fire_sound = 'sound/items/weapons/gun/general/heavy_shot_suppressed.ogg' // fwip fwip fwip fwip // Used by /obj/item/gun/energy/photon /obj/item/ammo_casing/energy/photon - fire_sound = 'sound/weapons/lasercannonfire.ogg' + fire_sound = 'sound/items/weapons/lasercannonfire.ogg' e_cost = LASER_SHOTS(4, STANDARD_CELL_CHARGE) select_name = "flare" projectile_type = /obj/projectile/energy/photon diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index a7c3f61ee750a..7fb22e42ef5a9 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -1,7 +1,7 @@ /obj/item/ammo_casing/energy/electrode projectile_type = /obj/projectile/energy/electrode select_name = "stun" - fire_sound = 'sound/weapons/taser.ogg' + fire_sound = 'sound/items/weapons/taser.ogg' e_cost = LASER_SHOTS(5, STANDARD_CELL_CHARGE) harmful = FALSE firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect @@ -10,7 +10,7 @@ e_cost = LASER_SHOTS(10, STANDARD_CELL_CHARGE) /obj/item/ammo_casing/energy/electrode/gun - fire_sound = 'sound/weapons/gun/pistol/shot.ogg' + fire_sound = 'sound/items/weapons/gun/pistol/shot.ogg' e_cost = LASER_SHOTS(10, STANDARD_CELL_CHARGE) /obj/item/ammo_casing/energy/electrode/old @@ -20,14 +20,14 @@ projectile_type = /obj/projectile/beam/disabler select_name = "disable" e_cost = LASER_SHOTS(20, STANDARD_CELL_CHARGE) - fire_sound = 'sound/weapons/taser2.ogg' + fire_sound = 'sound/items/weapons/taser2.ogg' harmful = FALSE firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/blue /obj/item/ammo_casing/energy/disabler/smg projectile_type = /obj/projectile/beam/disabler/weak e_cost = LASER_SHOTS(40, STANDARD_CELL_CHARGE) - fire_sound = 'sound/weapons/taser3.ogg' + fire_sound = 'sound/items/weapons/taser3.ogg' /obj/item/ammo_casing/energy/disabler/hos e_cost = LASER_SHOTS(20, STANDARD_CELL_CHARGE * 1.2) diff --git a/code/modules/projectiles/ammunition/special/magic.dm b/code/modules/projectiles/ammunition/special/magic.dm index 0ae053005c4d7..f1cbc1d9c14ed 100644 --- a/code/modules/projectiles/ammunition/special/magic.dm +++ b/code/modules/projectiles/ammunition/special/magic.dm @@ -4,6 +4,7 @@ slot_flags = null projectile_type = /obj/projectile/magic firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/magic + newtonian_force = 0.5 /obj/item/ammo_casing/magic/change projectile_type = /obj/projectile/magic/change diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 207190d08f924..c010111113c66 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -161,7 +161,7 @@ if(num_loaded) if(!silent) to_chat(user, span_notice("You load [num_loaded > 1 ? "[num_loaded] [casing_phrasing]s" : "a [casing_phrasing]"] into \the [src]!")) - playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) + playsound(src, 'sound/items/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) update_appearance() return num_loaded @@ -174,7 +174,7 @@ A.forceMove(drop_location()) if(!user.is_holding(src) || !user.put_in_hands(A)) //incase they're using TK A.bounce_away(FALSE, NONE) - playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) + playsound(src, 'sound/items/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) to_chat(user, span_notice("You remove a [casing_phrasing] from [src]!")) update_appearance() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 190f9e1a7aca8..d3b0782036b2b 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -23,14 +23,14 @@ attack_verb_simple = list("strike", "hit", "bash") var/gun_flags = NONE - var/fire_sound = 'sound/weapons/gun/pistol/shot.ogg' + var/fire_sound = 'sound/items/weapons/gun/pistol/shot.ogg' var/vary_fire_sound = TRUE var/fire_sound_volume = 50 - var/dry_fire_sound = 'sound/weapons/gun/general/dry_fire.ogg' + var/dry_fire_sound = 'sound/items/weapons/gun/general/dry_fire.ogg' var/dry_fire_sound_volume = 30 var/suppressed = null //whether or not a message is displayed when fired var/can_suppress = FALSE - var/suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + var/suppressed_sound = 'sound/items/weapons/gun/general/heavy_shot_suppressed.ogg' var/suppressed_volume = 60 var/can_unsuppress = TRUE /// whether a gun can be unsuppressed. for ballistics, also determines if it generates a suppressor overlay var/recoil = 0 //boom boom shake the room @@ -228,7 +228,7 @@ var/mob/living/holder = loc if(holder.is_holding(src) && holder.stat < UNCONSCIOUS) to_chat(holder, span_boldwarning("[src] breaks down!")) - holder.playsound_local(get_turf(src), 'sound/weapons/smash.ogg', 50, TRUE) + holder.playsound_local(get_turf(src), 'sound/items/weapons/smash.ogg', 50, TRUE) return ..() /obj/item/gun/emp_act(severity) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 2d77185f1d255..2222140c805a2 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -5,44 +5,44 @@ name = "projectile gun" icon_state = "debug" w_class = WEIGHT_CLASS_NORMAL - pickup_sound = 'sound/items/gun_pick_up.ogg' - drop_sound = 'sound/items/gun_drop.ogg' + pickup_sound = 'sound/items/handling/gun/gun_pick_up.ogg' + drop_sound = 'sound/items/handling/gun/gun_drop.ogg' sound_vary = TRUE ///sound when inserting magazine - var/load_sound = 'sound/weapons/gun/general/magazine_insert_full.ogg' + var/load_sound = 'sound/items/weapons/gun/general/magazine_insert_full.ogg' ///sound when inserting an empty magazine - var/load_empty_sound = 'sound/weapons/gun/general/magazine_insert_empty.ogg' + var/load_empty_sound = 'sound/items/weapons/gun/general/magazine_insert_empty.ogg' ///volume of loading sound var/load_sound_volume = 40 ///whether loading sound should vary var/load_sound_vary = TRUE ///sound of racking - var/rack_sound = 'sound/weapons/gun/general/bolt_rack.ogg' + var/rack_sound = 'sound/items/weapons/gun/general/bolt_rack.ogg' ///volume of racking var/rack_sound_volume = 60 ///whether racking sound should vary var/rack_sound_vary = TRUE ///sound of when the bolt is locked back manually - var/lock_back_sound = 'sound/weapons/gun/general/slide_lock_1.ogg' + var/lock_back_sound = 'sound/items/weapons/gun/general/slide_lock_1.ogg' ///volume of lock back var/lock_back_sound_volume = 60 ///whether lock back varies var/lock_back_sound_vary = TRUE ///Sound of ejecting a magazine - var/eject_sound = 'sound/weapons/gun/general/magazine_remove_full.ogg' + var/eject_sound = 'sound/items/weapons/gun/general/magazine_remove_full.ogg' ///sound of ejecting an empty magazine - var/eject_empty_sound = 'sound/weapons/gun/general/magazine_remove_empty.ogg' + var/eject_empty_sound = 'sound/items/weapons/gun/general/magazine_remove_empty.ogg' ///volume of ejecting a magazine var/eject_sound_volume = 40 ///whether eject sound should vary var/eject_sound_vary = TRUE ///sound of dropping the bolt or releasing a slide - var/bolt_drop_sound = 'sound/weapons/gun/general/bolt_drop.ogg' + var/bolt_drop_sound = 'sound/items/weapons/gun/general/bolt_drop.ogg' ///volume of bolt drop/slide release var/bolt_drop_sound_volume = 60 ///empty alarm sound (if enabled) - var/empty_alarm_sound = 'sound/weapons/gun/general/empty_alarm.ogg' + var/empty_alarm_sound = 'sound/items/weapons/gun/general/empty_alarm.ogg' ///empty alarm volume sound var/empty_alarm_volume = 70 ///whether empty alarm sound varies @@ -174,11 +174,11 @@ if(suppressed) playsound(src, suppressed_sound, suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) if(play_click && click_on_low_ammo) - playsound(src, 'sound/weapons/gun/general/ballistic_click.ogg', suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0, frequency = click_frequency_to_use) + playsound(src, 'sound/items/weapons/gun/general/ballistic_click.ogg', suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0, frequency = click_frequency_to_use) else playsound(src, fire_sound, fire_sound_volume, vary_fire_sound) if(play_click && click_on_low_ammo) - playsound(src, 'sound/weapons/gun/general/ballistic_click.ogg', fire_sound_volume, vary_fire_sound, frequency = click_frequency_to_use) + playsound(src, 'sound/items/weapons/gun/general/ballistic_click.ogg', fire_sound_volume, vary_fire_sound, frequency = click_frequency_to_use) /** @@ -284,7 +284,7 @@ fire_delay = initial(fire_delay) balloon_alert(user, "switched to [burst_size]-round burst") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, 'sound/items/weapons/empty.ogg', 100, TRUE) update_appearance() update_item_action_buttons() diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index c3bb92eec7140..f09f650aca73d 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -5,10 +5,10 @@ fire_delay = 2 actions_types = list(/datum/action/item_action/toggle_firemode) semi_auto = TRUE - fire_sound = 'sound/weapons/gun/smg/shot.ogg' + fire_sound = 'sound/items/weapons/gun/smg/shot.ogg' fire_sound_volume = 90 - rack_sound = 'sound/weapons/gun/smg/smgrack.ogg' - suppressed_sound = 'sound/weapons/gun/smg/shot_suppressed.ogg' + rack_sound = 'sound/items/weapons/gun/smg/smgrack.ogg' + suppressed_sound = 'sound/items/weapons/gun/smg/shot_suppressed.ogg' burst_fire_selection = TRUE /obj/item/gun/ballistic/automatic/proto @@ -105,9 +105,9 @@ click_on_low_ammo = FALSE /// List of the possible firing sounds var/list/firing_sound_list = list( - 'sound/weapons/gun/smartgun/smartgun_shoot_1.ogg', - 'sound/weapons/gun/smartgun/smartgun_shoot_2.ogg', - 'sound/weapons/gun/smartgun/smartgun_shoot_3.ogg', + 'sound/items/weapons/gun/smartgun/smartgun_shoot_1.ogg', + 'sound/items/weapons/gun/smartgun/smartgun_shoot_2.ogg', + 'sound/items/weapons/gun/smartgun/smartgun_shoot_3.ogg', ) /obj/item/gun/ballistic/automatic/smartgun/fire_sounds() @@ -123,7 +123,7 @@ bolt_type = BOLT_TYPE_OPEN show_bolt_icon = FALSE mag_display = TRUE - rack_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' + rack_sound = 'sound/items/weapons/gun/pistol/slide_lock.ogg' /** * Weak uzi for syndicate chimps. It comes in a 4 TC kit. @@ -153,7 +153,7 @@ pin = /obj/item/firing_pin/implant/pindicate mag_display = TRUE empty_indicator = TRUE - fire_sound = 'sound/weapons/gun/smg/shot_alt.ogg' + fire_sound = 'sound/items/weapons/gun/smg/shot_alt.ogg' /obj/item/gun/ballistic/automatic/m90/Initialize(mapload) . = ..() @@ -254,9 +254,9 @@ mag_display = TRUE mag_display_ammo = TRUE tac_reloads = FALSE - fire_sound = 'sound/weapons/gun/l6/shot.ogg' - rack_sound = 'sound/weapons/gun/l6/l6_rack.ogg' - suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + fire_sound = 'sound/items/weapons/gun/l6/shot.ogg' + rack_sound = 'sound/items/weapons/gun/l6/l6_rack.ogg' + suppressed_sound = 'sound/items/weapons/gun/general/heavy_shot_suppressed.ogg' var/cover_open = FALSE /obj/item/gun/ballistic/automatic/l6_saw/unrestricted @@ -277,7 +277,7 @@ /obj/item/gun/ballistic/automatic/l6_saw/click_alt(mob/user) cover_open = !cover_open balloon_alert(user, "cover [cover_open ? "opened" : "closed"]") - playsound(src, 'sound/weapons/gun/l6/l6_door.ogg', 60, TRUE) + playsound(src, 'sound/items/weapons/gun/l6/l6_door.ogg', 60, TRUE) update_appearance() return CLICK_ACTION_SUCCESS @@ -348,5 +348,5 @@ can_suppress = FALSE burst_size = 0 actions_types = list() - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' casing_ejector = FALSE diff --git a/code/modules/projectiles/guns/ballistic/bows/_bow.dm b/code/modules/projectiles/guns/ballistic/bows/_bow.dm index c0ce0b1ef2c9d..5bcec2deeb7e2 100644 --- a/code/modules/projectiles/guns/ballistic/bows/_bow.dm +++ b/code/modules/projectiles/guns/ballistic/bows/_bow.dm @@ -8,8 +8,8 @@ icon_state = "bow" inhand_icon_state = "bow" base_icon_state = "bow" - load_sound = 'sound/weapons/gun/general/ballistic_click.ogg' - fire_sound = 'sound/weapons/gun/bow/bow_fire.ogg' + load_sound = 'sound/items/weapons/gun/general/ballistic_click.ogg' + fire_sound = 'sound/items/weapons/gun/bow/bow_fire.ogg' accepted_magazine_type = /obj/item/ammo_box/magazine/internal/bow force = 15 pinless = TRUE @@ -65,7 +65,7 @@ return balloon_alert(user, "[drawn ? "string released" : "string drawn"]") drawn = !drawn - playsound(src, 'sound/weapons/gun/bow/bow_draw.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/gun/bow/bow_draw.ogg', 25, TRUE) update_appearance() /obj/item/gun/ballistic/bow/try_fire_gun(atom/target, mob/living/user, params) @@ -87,7 +87,7 @@ if(slot != ITEM_SLOT_HANDS && chambered) balloon_alert(user, "the arrow falls out!") if(drawn) - playsound(src, 'sound/weapons/gun/bow/bow_fire.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/gun/bow/bow_fire.ogg', 25, TRUE) drop_arrow() @@ -99,7 +99,7 @@ if(ismob(loc) || !chambered) return if(drawn) - playsound(src, 'sound/weapons/gun/bow/bow_fire.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/gun/bow/bow_fire.ogg', 25, TRUE) drop_arrow() /obj/item/gun/ballistic/bow/shoot_with_empty_chamber(mob/living/user) diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index 23c41d1d07e15..03c7f51b936be 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -7,7 +7,7 @@ icon_state = "dshotgun_sawn" inhand_icon_state = "gun" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/grenadelauncher - fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/grenade_launch.ogg' w_class = WEIGHT_CLASS_NORMAL pin = /obj/item/firing_pin/implant/pindicate bolt_type = BOLT_TYPE_NO_BOLT @@ -35,7 +35,7 @@ name = "gyrojet pistol" desc = "A prototype pistol designed to fire self propelled rockets." icon_state = "gyropistol" - fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/grenade_launch.ogg' accepted_magazine_type = /obj/item/ammo_box/magazine/m75 burst_size = 1 fire_delay = 0 @@ -54,7 +54,7 @@ worn_icon_state = "rocketlauncher" SET_BASE_PIXEL(-8, 0) accepted_magazine_type = /obj/item/ammo_box/magazine/internal/rocketlauncher - fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/rocket_launch.ogg' slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY can_suppress = FALSE diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 35660571074fd..ad925222703dc 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -9,16 +9,16 @@ fire_delay = 0 actions_types = list() bolt_type = BOLT_TYPE_LOCKING - fire_sound = 'sound/weapons/gun/pistol/shot.ogg' - dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg' - suppressed_sound = 'sound/weapons/gun/pistol/shot_suppressed.ogg' - load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' - load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg' - eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg' - eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg' - rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg' - lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg' + fire_sound = 'sound/items/weapons/gun/pistol/shot.ogg' + dry_fire_sound = 'sound/items/weapons/gun/pistol/dry_fire.ogg' + suppressed_sound = 'sound/items/weapons/gun/pistol/shot_suppressed.ogg' + load_sound = 'sound/items/weapons/gun/pistol/mag_insert.ogg' + load_empty_sound = 'sound/items/weapons/gun/pistol/mag_insert.ogg' + eject_sound = 'sound/items/weapons/gun/pistol/mag_release.ogg' + eject_empty_sound = 'sound/items/weapons/gun/pistol/mag_release.ogg' + rack_sound = 'sound/items/weapons/gun/pistol/rack_small.ogg' + lock_back_sound = 'sound/items/weapons/gun/pistol/lock_small.ogg' + bolt_drop_sound = 'sound/items/weapons/gun/pistol/drop_small.ogg' fire_sound_volume = 90 bolt_wording = "slide" suppressor_x_offset = 10 @@ -110,10 +110,10 @@ w_class = WEIGHT_CLASS_NORMAL accepted_magazine_type = /obj/item/ammo_box/magazine/m45 can_suppress = FALSE - fire_sound = 'sound/weapons/gun/pistol/shot_alt.ogg' - rack_sound = 'sound/weapons/gun/pistol/rack.ogg' - lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + fire_sound = 'sound/items/weapons/gun/pistol/shot_alt.ogg' + rack_sound = 'sound/items/weapons/gun/pistol/rack.ogg' + lock_back_sound = 'sound/items/weapons/gun/pistol/slide_lock.ogg' + bolt_drop_sound = 'sound/items/weapons/gun/pistol/slide_drop.ogg' /** * Weak 1911 for syndicate chimps. It comes in a 4 TC kit. @@ -138,10 +138,10 @@ accepted_magazine_type = /obj/item/ammo_box/magazine/m50 can_suppress = FALSE mag_display = TRUE - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' - rack_sound = 'sound/weapons/gun/pistol/rack.ogg' - lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' - bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + fire_sound = 'sound/items/weapons/gun/rifle/shot.ogg' + rack_sound = 'sound/items/weapons/gun/pistol/rack.ogg' + lock_back_sound = 'sound/items/weapons/gun/pistol/slide_lock.ogg' + bolt_drop_sound = 'sound/items/weapons/gun/pistol/slide_drop.ogg' /obj/item/gun/ballistic/automatic/pistol/deagle/contraband diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index cd7d75556727b..c073c6a6aafbc 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -3,11 +3,11 @@ desc = "A suspicious revolver. Uses .357 ammo." icon_state = "revolver" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder - fire_sound = 'sound/weapons/gun/revolver/shot_alt.ogg' - load_sound = 'sound/weapons/gun/revolver/load_bullet.ogg' - eject_sound = 'sound/weapons/gun/revolver/empty.ogg' + fire_sound = 'sound/items/weapons/gun/revolver/shot_alt.ogg' + load_sound = 'sound/items/weapons/gun/revolver/load_bullet.ogg' + eject_sound = 'sound/items/weapons/gun/revolver/empty.ogg' fire_sound_volume = 90 - dry_fire_sound = 'sound/weapons/gun/revolver/dry_fire.ogg' + dry_fire_sound = 'sound/items/weapons/gun/revolver/dry_fire.ogg' casing_ejector = FALSE internal_magazine = TRUE bolt_type = BOLT_TYPE_NO_BOLT @@ -48,11 +48,11 @@ if(suppressed) playsound(src, suppressed_sound, suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0) if(play_click) - playsound(src, 'sound/weapons/gun/general/ballistic_click.ogg', suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0, frequency = click_frequency_to_use) + playsound(src, 'sound/items/weapons/gun/general/ballistic_click.ogg', suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0, frequency = click_frequency_to_use) else playsound(src, fire_sound, fire_sound_volume, vary_fire_sound) if(play_click) - playsound(src, 'sound/weapons/gun/general/ballistic_click.ogg', fire_sound_volume, vary_fire_sound, frequency = click_frequency_to_use) + playsound(src, 'sound/items/weapons/gun/general/ballistic_click.ogg', fire_sound_volume, vary_fire_sound, frequency = click_frequency_to_use) /obj/item/gun/ballistic/revolver/verb/spin() @@ -107,7 +107,7 @@ desc = "A classic, if not outdated, lethal firearm. Uses .38 Special rounds." accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 icon_state = "c38" - fire_sound = 'sound/weapons/gun/revolver/shot.ogg' + fire_sound = 'sound/items/weapons/gun/revolver/shot.ogg' /obj/item/gun/ballistic/revolver/c38/detective name = "\improper Colt Detective Special" @@ -115,9 +115,9 @@ can_modify_ammo = TRUE initial_caliber = CALIBER_38 - initial_fire_sound = 'sound/weapons/gun/revolver/shot.ogg' + initial_fire_sound = 'sound/items/weapons/gun/revolver/shot.ogg' alternative_caliber = CALIBER_357 - alternative_fire_sound = 'sound/weapons/gun/revolver/shot_alt.ogg' + alternative_fire_sound = 'sound/items/weapons/gun/revolver/shot_alt.ogg' alternative_ammo_misfires = TRUE misfire_probability = 0 misfire_percentage_increment = 25 //about 1 in 4 rounds, which increases rapidly every shot @@ -160,7 +160,7 @@ name = "\improper Golden revolver" desc = "This ain't no game, ain't never been no show, And I'll gladly gun down the oldest lady you know. Uses .357 ammo." icon_state = "goldrevolver" - fire_sound = 'sound/weapons/resonator_blast.ogg' + fire_sound = 'sound/items/weapons/resonator_blast.ogg' recoil = 8 pin = /obj/item/firing_pin diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 0317ead192882..855547dd5f313 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -9,10 +9,10 @@ bolt_type = BOLT_TYPE_LOCKING semi_auto = FALSE internal_magazine = TRUE - fire_sound = 'sound/weapons/gun/rifle/shot_heavy.ogg' + fire_sound = 'sound/items/weapons/gun/rifle/shot_heavy.ogg' fire_sound_volume = 90 - rack_sound = 'sound/weapons/gun/rifle/bolt_out.ogg' - bolt_drop_sound = 'sound/weapons/gun/rifle/bolt_in.ogg' + rack_sound = 'sound/items/weapons/gun/rifle/bolt_out.ogg' + bolt_drop_sound = 'sound/items/weapons/gun/rifle/bolt_in.ogg' tac_reloads = FALSE /obj/item/gun/ballistic/rifle/rack(mob/user = null) @@ -83,7 +83,7 @@ else unjam_chance += 10 balloon_alert(user, "jammed!") - playsound(user,'sound/weapons/jammed.ogg', 75, TRUE) + playsound(user,'sound/items/weapons/jammed.ogg', 75, TRUE) return FALSE ..() @@ -126,7 +126,7 @@ inhand_icon_state = "speargun" worn_icon_state = "speargun" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/harpoon - fire_sound = 'sound/weapons/gun/sniper/shot.ogg' + fire_sound = 'sound/items/weapons/gun/sniper/shot.ogg' can_be_sawn_off = FALSE SET_BASE_PIXEL(0, 0) @@ -200,7 +200,7 @@ icon_state = "rebarxbow" inhand_icon_state = "rebarxbow" worn_icon_state = "rebarxbow" - rack_sound = 'sound/weapons/gun/sniper/rack.ogg' + rack_sound = 'sound/items/weapons/gun/sniper/rack.ogg' mag_display = FALSE empty_indicator = TRUE bolt_type = BOLT_TYPE_OPEN @@ -297,7 +297,7 @@ icon_state = "pipegun" inhand_icon_state = "pipegun" worn_icon_state = "pipegun" - fire_sound = 'sound/weapons/gun/sniper/shot.ogg' + fire_sound = 'sound/items/weapons/gun/sniper/shot.ogg' accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun projectile_damage_multiplier = 1.35 @@ -424,11 +424,11 @@ weapon_weight = WEAPON_HEAVY inhand_icon_state = "sniper" worn_icon_state = null - fire_sound = 'sound/weapons/gun/sniper/shot.ogg' + fire_sound = 'sound/items/weapons/gun/sniper/shot.ogg' fire_sound_volume = 90 - load_sound = 'sound/weapons/gun/sniper/mag_insert.ogg' - rack_sound = 'sound/weapons/gun/sniper/rack.ogg' - suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + load_sound = 'sound/items/weapons/gun/sniper/mag_insert.ogg' + rack_sound = 'sound/items/weapons/gun/sniper/rack.ogg' + suppressed_sound = 'sound/items/weapons/gun/general/heavy_shot_suppressed.ogg' recoil = 2 accepted_magazine_type = /obj/item/ammo_box/magazine/sniper_rounds internal_magazine = FALSE diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index c3ba84d1cb8cd..bf4715bdb41fd 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -8,10 +8,10 @@ inhand_icon_state = "shotgun" inhand_x_dimension = 64 inhand_y_dimension = 64 - fire_sound = 'sound/weapons/gun/shotgun/shot.ogg' + fire_sound = 'sound/items/weapons/gun/shotgun/shot.ogg' fire_sound_volume = 90 - rack_sound = 'sound/weapons/gun/shotgun/rack.ogg' - load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg' + rack_sound = 'sound/items/weapons/gun/shotgun/rack.ogg' + load_sound = 'sound/items/weapons/gun/shotgun/insert_shell.ogg' w_class = WEIGHT_CLASS_BULKY force = 10 obj_flags = CONDUCTS_ELECTRICITY @@ -159,7 +159,7 @@ burst_size = 2 fire_delay = 1 pin = /obj/item/firing_pin/implant/pindicate - fire_sound = 'sound/weapons/gun/shotgun/shot_alt.ogg' + fire_sound = 'sound/items/weapons/gun/shotgun/shot_alt.ogg' actions_types = list(/datum/action/item_action/toggle_firemode) mag_display = TRUE empty_indicator = TRUE @@ -321,7 +321,7 @@ sharpness = SHARP_POINTY //it does in fact, have a hook on it attack_verb_continuous = list("slashes", "hooks", "stabs") attack_verb_simple = list("slash", "hook", "stab") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' //our hook gun! var/obj/item/gun/magic/hook/bounty/hook diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 39e55f94fca17..0648f7992487b 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -3,8 +3,8 @@ name = "energy gun" desc = "A basic energy-based gun." icon = 'icons/obj/weapons/guns/energy.dmi' - pickup_sound = 'sound/items/gun_pick_up.ogg' - drop_sound = 'sound/items/gun_drop.ogg' + pickup_sound = 'sound/items/handling/gun/gun_pick_up.ogg' + drop_sound = 'sound/items/handling/gun/gun_drop.ogg' sound_vary = TRUE /// What type of power cell this uses diff --git a/code/modules/projectiles/guns/energy/beam_rifle.dm b/code/modules/projectiles/guns/energy/beam_rifle.dm index 0bda1930c6260..d17e4be75ba89 100644 --- a/code/modules/projectiles/guns/energy/beam_rifle.dm +++ b/code/modules/projectiles/guns/energy/beam_rifle.dm @@ -6,7 +6,7 @@ icon_state = "esniper" inhand_icon_state = null worn_icon_state = null - fire_sound = 'sound/weapons/beam_sniper.ogg' + fire_sound = 'sound/items/weapons/beam_sniper.ogg' slot_flags = ITEM_SLOT_BACK force = 20 //This is maybe the sanest part of this weapon. custom_materials = null @@ -38,12 +38,12 @@ projectile_type = /obj/projectile/beam/event_horizon select_name = "doomsday" e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE) - fire_sound = 'sound/weapons/beam_sniper.ogg' + fire_sound = 'sound/items/weapons/beam_sniper.ogg' /obj/projectile/beam/event_horizon name = "anti-existential beam" icon = null - hitsound = 'sound/effects/explosion3.ogg' + hitsound = 'sound/effects/explosion/explosion3.ogg' damage = 100 // Does it matter? damage_type = BURN armor_flag = ENERGY diff --git a/code/modules/projectiles/guns/energy/crank_guns.dm b/code/modules/projectiles/guns/energy/crank_guns.dm index fa56075990ec5..32aa65827cfb0 100644 --- a/code/modules/projectiles/guns/energy/crank_guns.dm +++ b/code/modules/projectiles/guns/energy/crank_guns.dm @@ -13,14 +13,14 @@ /obj/item/gun/energy/laser/musket/Initialize(mapload) . = ..() - AddComponent(/datum/component/two_handed, require_twohands = TRUE, force_wielded = 10) AddComponent( \ /datum/component/crank_recharge, \ charging_cell = get_cell(), \ charge_amount = STANDARD_CELL_CHARGE * 0.5, \ cooldown_time = 2 SECONDS, \ - charge_sound = 'sound/weapons/laser_crank.ogg', \ + charge_sound = 'sound/items/weapons/laser_crank.ogg', \ charge_sound_cooldown_time = 1.8 SECONDS, \ + charge_move = IGNORE_USER_LOC_CHANGE, \ ) /obj/item/gun/energy/laser/musket/update_icon_state() @@ -52,8 +52,9 @@ charging_cell = get_cell(), \ charge_amount = STANDARD_CELL_CHARGE, \ cooldown_time = 2 SECONDS, \ - charge_sound = 'sound/weapons/laser_crank.ogg', \ + charge_sound = 'sound/items/weapons/laser_crank.ogg', \ charge_sound_cooldown_time = 1.8 SECONDS, \ + charge_move = IGNORE_USER_LOC_CHANGE, \ ) /obj/item/gun/energy/disabler/smoothbore/add_seclight_point() @@ -99,7 +100,7 @@ spin_to_win = TRUE, \ charge_amount = LASER_SHOTS(8, STANDARD_CELL_CHARGE), \ cooldown_time = 0.8 SECONDS, \ - charge_sound = 'sound/weapons/kinetic_reload.ogg', \ + charge_sound = 'sound/items/weapons/kinetic_reload.ogg', \ charge_sound_cooldown_time = 0.8 SECONDS, \ ) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 1180a90e8d217..7e174b544ea29 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -173,7 +173,8 @@ projectile_type = /obj/projectile/kinetic select_name = "kinetic" e_cost = LASER_SHOTS(1, STANDARD_CELL_CHARGE * 0.5) - fire_sound = 'sound/weapons/kinetic_accel.ogg' + fire_sound = 'sound/items/weapons/kinetic_accel.ogg' + newtonian_force = 1 /obj/item/ammo_casing/energy/kinetic/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() @@ -315,7 +316,7 @@ if(transfer_to_loc && !user.transferItemToLoc(src, KA)) return to_chat(user, span_notice("You install the modkit.")) - playsound(loc, 'sound/items/screwdriver.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/screwdriver.ogg', 100, TRUE) KA.modkits |= src else to_chat(user, span_notice("The modkit you're trying to install would conflict with an already installed modkit. Remove existing modkits first.")) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index a85d1d0db14ab..9c69a718986e4 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -141,7 +141,7 @@ /obj/item/ammo_casing/energy/laser/accelerator projectile_type = /obj/projectile/beam/laser/accelerator select_name = "accelerator" - fire_sound = 'sound/weapons/lasercannonfire.ogg' + fire_sound = 'sound/items/weapons/lasercannonfire.ogg' /obj/projectile/beam/laser/accelerator name = "accelerator laser" diff --git a/code/modules/projectiles/guns/energy/recharge.dm b/code/modules/projectiles/guns/energy/recharge.dm index 504dc5c9e0f4a..f7231847b2567 100644 --- a/code/modules/projectiles/guns/energy/recharge.dm +++ b/code/modules/projectiles/guns/energy/recharge.dm @@ -12,7 +12,7 @@ /// How much time we need to recharge var/recharge_time = 1.6 SECONDS /// Sound we use when recharged - var/recharge_sound = 'sound/weapons/kinetic_reload.ogg' + var/recharge_sound = 'sound/items/weapons/kinetic_reload.ogg' /// An ID for our recharging timer. var/recharge_timerid /// Do we recharge slower with more of our type? diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 244e68e8b031c..8072f62e46458 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -95,7 +95,7 @@ can_charge = FALSE gun_flags = NOT_A_REAL_GUN heat = 3800 - usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') + usesound = list('sound/items/tools/welder.ogg', 'sound/items/tools/welder2.ogg') tool_behaviour = TOOL_WELDER toolspeed = 0.7 //plasmacutters can be used as welders, and are faster than standard welders @@ -106,7 +106,7 @@ speed = 2.5 SECONDS, \ effectiveness = 105, \ bonus_modifier = 0, \ - butcher_sound = 'sound/weapons/plasma_cutter.ogg', \ + butcher_sound = 'sound/items/weapons/plasma_cutter.ogg', \ ) AddElement(/datum/element/tool_flash, 1) @@ -379,7 +379,7 @@ icon = 'icons/obj/weapons/guns/ballistic.dmi' icon_state = "revolver" ammo_type = list(/obj/item/ammo_casing/energy/marksman) - fire_sound = 'sound/weapons/gun/revolver/shot_alt.ogg' + fire_sound = 'sound/items/weapons/gun/revolver/shot_alt.ogg' automatic_charge_overlays = FALSE /// How many coins we can have at a time. Set to 0 for infinite var/max_coins = 4 @@ -440,7 +440,7 @@ desc = "A competitive design to the tesla cannon, that instead of charging latent electrons, releases energy into photons. Eye protection is recommended." icon_state = "photon" inhand_icon_state = "tesla" - fire_sound = 'sound/weapons/lasercannonfire.ogg' + fire_sound = 'sound/items/weapons/lasercannonfire.ogg' ammo_type = list(/obj/item/ammo_casing/energy/photon) shaded_charge = TRUE weapon_weight = WEAPON_HEAVY diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 0c1c27c9c0759..44d50188eb76b 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -6,7 +6,7 @@ inhand_icon_state = "staff" lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' //not really a gun and some toys use these inhands righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' - fire_sound = 'sound/weapons/emitter.ogg' + fire_sound = 'sound/items/weapons/emitter.ogg' obj_flags = CONDUCTS_ELECTRICITY w_class = WEIGHT_CLASS_HUGE ///what kind of magic is this diff --git a/code/modules/projectiles/guns/magic/arcane_barrage.dm b/code/modules/projectiles/guns/magic/arcane_barrage.dm index 08931d8c391f7..74be54a6323e6 100644 --- a/code/modules/projectiles/guns/magic/arcane_barrage.dm +++ b/code/modules/projectiles/guns/magic/arcane_barrage.dm @@ -1,7 +1,7 @@ /obj/item/gun/magic/wand/arcane_barrage name = "arcane barrage" desc = "Pew Pew Pew." - fire_sound = 'sound/weapons/emitter.ogg' + fire_sound = 'sound/items/weapons/emitter.ogg' icon = 'icons/obj/weapons/guns/ballistic.dmi' icon_state = "arcane_barrage" inhand_icon_state = "arcane_barrage" diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index 5ca2e3052518d..6a383befa54d3 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -33,7 +33,7 @@ /obj/item/gun/magic/staff/change name = "staff of change" desc = "An artefact that spits bolts of coruscating energy which cause the target's very form to reshape itself." - fire_sound = 'sound/magic/staff_change.ogg' + fire_sound = 'sound/effects/magic/staff_change.ogg' ammo_type = /obj/item/ammo_casing/magic/change icon_state = "staffofchange" inhand_icon_state = "staffofchange" @@ -64,7 +64,7 @@ /obj/item/gun/magic/staff/animate name = "staff of animation" desc = "An artefact that spits bolts of life-force which causes objects which are hit by it to animate and come to life! This magic doesn't affect machines." - fire_sound = 'sound/magic/staff_animation.ogg' + fire_sound = 'sound/effects/magic/staff_animation.ogg' ammo_type = /obj/item/ammo_casing/magic/animate icon_state = "staffofanimation" inhand_icon_state = "staffofanimation" @@ -73,7 +73,7 @@ /obj/item/gun/magic/staff/healing name = "staff of healing" desc = "An artefact that spits bolts of restoring magic which can remove ailments of all kinds and even raise the dead." - fire_sound = 'sound/magic/staff_healing.ogg' + fire_sound = 'sound/effects/magic/staff_healing.ogg' ammo_type = /obj/item/ammo_casing/magic/heal icon_state = "staffofhealing" inhand_icon_state = "staffofhealing" @@ -120,7 +120,7 @@ /obj/item/gun/magic/staff/chaos name = "staff of chaos" desc = "An artefact that spits bolts of chaotic magic that can potentially do anything." - fire_sound = 'sound/magic/staff_chaos.ogg' + fire_sound = 'sound/effects/magic/staff_chaos.ogg' ammo_type = /obj/item/ammo_casing/magic/chaos icon_state = "staffofchaos" inhand_icon_state = "staffofchaos" @@ -215,7 +215,7 @@ /obj/item/gun/magic/staff/door name = "staff of door creation" desc = "An artefact that spits bolts of transformative magic that can create doors in walls." - fire_sound = 'sound/magic/staff_door.ogg' + fire_sound = 'sound/effects/magic/staff_door.ogg' ammo_type = /obj/item/ammo_casing/magic/door icon_state = "staffofdoor" inhand_icon_state = "staffofdoor" @@ -227,7 +227,7 @@ /obj/item/gun/magic/staff/honk name = "staff of the honkmother" desc = "Honk." - fire_sound = 'sound/items/airhorn.ogg' + fire_sound = 'sound/items/airhorn/airhorn.ogg' ammo_type = /obj/item/ammo_casing/magic/honk icon_state = "honker" inhand_icon_state = "honker" @@ -238,14 +238,14 @@ /obj/item/gun/magic/staff/spellblade name = "spellblade" desc = "A deadly combination of laziness and bloodlust, this blade allows the user to dismember their enemies without all the hard work of actually swinging the sword." - fire_sound = 'sound/magic/fireball.ogg' + fire_sound = 'sound/effects/magic/fireball.ogg' ammo_type = /obj/item/ammo_casing/magic/spellblade icon_state = "spellblade" inhand_icon_state = "spellblade" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - hitsound = 'sound/weapons/rapierhit.ogg' - block_sound = 'sound/weapons/parry.ogg' + hitsound = 'sound/items/weapons/rapierhit.ogg' + block_sound = 'sound/items/weapons/parry.ogg' force = 20 armour_penetration = 75 block_chance = 50 @@ -270,7 +270,7 @@ /obj/item/gun/magic/staff/locker name = "staff of the locker" desc = "An artefact that expells encapsulating bolts, for incapacitating thy enemy." - fire_sound = 'sound/magic/staff_change.ogg' + fire_sound = 'sound/effects/magic/staff_change.ogg' ammo_type = /obj/item/ammo_casing/magic/locker icon_state = "locker" inhand_icon_state = "locker" @@ -284,7 +284,7 @@ /obj/item/gun/magic/staff/flying name = "staff of flying" desc = "An artefact that spits bolts of graceful magic that can make something fly." - fire_sound = 'sound/magic/staff_healing.ogg' + fire_sound = 'sound/effects/magic/staff_healing.ogg' ammo_type = /obj/item/ammo_casing/magic/flying icon_state = "staffofflight" inhand_icon_state = "staffofchange" @@ -294,7 +294,7 @@ /obj/item/gun/magic/staff/babel name = "staff of babel" desc = "An artefact that spits bolts of confusion magic that can make something depressed and incoherent." - fire_sound = 'sound/magic/staff_change.ogg' + fire_sound = 'sound/effects/magic/staff_change.ogg' ammo_type = /obj/item/ammo_casing/magic/babel icon_state = "staffofbabel" inhand_icon_state = "staffofdoor" @@ -304,7 +304,7 @@ /obj/item/gun/magic/staff/necropotence name = "staff of necropotence" desc = "An artefact that spits bolts of death magic that can repurpose the soul." - fire_sound = 'sound/magic/staff_change.ogg' + fire_sound = 'sound/effects/magic/staff_change.ogg' ammo_type = /obj/item/ammo_casing/magic/necropotence icon_state = "staffofnecropotence" inhand_icon_state = "staffofchaos" @@ -314,7 +314,7 @@ /obj/item/gun/magic/staff/wipe name = "staff of possession" desc = "An artefact that spits bolts of mind-unlocking magic that can let ghosts invade the victim's mind." - fire_sound = 'sound/magic/staff_change.ogg' + fire_sound = 'sound/effects/magic/staff_change.ogg' ammo_type = /obj/item/ammo_casing/magic/wipe icon_state = "staffofwipe" inhand_icon_state = "pharoah_sceptre" @@ -324,7 +324,7 @@ /obj/item/gun/magic/staff/shrink name = "staff of shrinking" desc = "An artefact that spits bolts of tiny magic that makes things small. It's easily mistaken for a wand." - fire_sound = 'sound/magic/staff_shrink.ogg' + fire_sound = 'sound/effects/magic/staff_shrink.ogg' ammo_type = /obj/item/ammo_casing/magic/shrink icon_state = "shrinkstaff" inhand_icon_state = "staff" diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index b2fe293eae8c2..0a82f44318e79 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -65,7 +65,7 @@ name = "wand of death" desc = "This deadly wand overwhelms the victim's body with pure energy, slaying them without fail." school = SCHOOL_NECROMANCY - fire_sound = 'sound/magic/wandodeath.ogg' + fire_sound = 'sound/effects/magic/wandodeath.ogg' ammo_type = /obj/item/ammo_casing/magic/death icon_state = "deathwand" base_icon_state = "deathwand" @@ -83,9 +83,8 @@ user.revive(ADMIN_HEAL_ALL, force_grab_ghost = TRUE) // This heals suicides to_chat(user, span_notice("You feel great!")) return - to_chat(user, "You irradiate yourself with pure negative energy! \ - [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You die...","Do you want your possessions identified?")]\ - ") + to_chat(user, span_warning("You irradiate yourself with pure negative energy! \ + [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You die...","Do you want your possessions identified?")]")) user.death(FALSE) /obj/item/gun/magic/wand/death/debug @@ -105,7 +104,7 @@ desc = "This wand uses healing magics to heal and revive. They are rarely utilized within the Wizard Federation for some reason." school = SCHOOL_RESTORATION ammo_type = /obj/item/ammo_casing/magic/heal - fire_sound = 'sound/magic/staff_healing.ogg' + fire_sound = 'sound/effects/magic/staff_healing.ogg' icon_state = "revivewand" base_icon_state = "revivewand" max_charges = 10 //10, 5, 5, 4 @@ -119,9 +118,8 @@ if(isliving(user)) var/mob/living/L = user if(L.mob_biotypes & MOB_UNDEAD) //positive energy harms the undead - to_chat(user, "You irradiate yourself with pure positive energy! \ - [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You die...","Do you want your possessions identified?")]\ - ") + to_chat(user, span_warning("You irradiate yourself with pure positive energy! \ + [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You die...","Do you want your possessions identified?")]")) user.investigate_log("has been killed by a bolt of resurrection.", INVESTIGATE_DEATHS) user.death(FALSE) return @@ -146,7 +144,7 @@ ammo_type = /obj/item/ammo_casing/magic/change icon_state = "polywand" base_icon_state = "polywand" - fire_sound = 'sound/magic/staff_change.ogg' + fire_sound = 'sound/effects/magic/staff_change.ogg' max_charges = 10 //10, 5, 5, 4 /obj/item/gun/magic/wand/polymorph/zap_self(mob/living/user) @@ -164,7 +162,7 @@ desc = "This wand will wrench targets through space and time to move them somewhere else." school = SCHOOL_TRANSLOCATION ammo_type = /obj/item/ammo_casing/magic/teleport - fire_sound = 'sound/magic/wand_teleport.ogg' + fire_sound = 'sound/effects/magic/wand_teleport.ogg' icon_state = "telewand" base_icon_state = "telewand" max_charges = 10 //10, 5, 5, 4 @@ -183,7 +181,7 @@ desc = "This wand will use the lightest of bluespace currents to gently place the target somewhere safe." school = SCHOOL_TRANSLOCATION ammo_type = /obj/item/ammo_casing/magic/safety - fire_sound = 'sound/magic/wand_teleport.ogg' + fire_sound = 'sound/effects/magic/wand_teleport.ogg' icon_state = "telewand" base_icon_state = "telewand" max_charges = 10 //10, 5, 5, 4 @@ -219,7 +217,7 @@ ammo_type = /obj/item/ammo_casing/magic/door icon_state = "doorwand" base_icon_state = "doorwand" - fire_sound = 'sound/magic/staff_door.ogg' + fire_sound = 'sound/effects/magic/staff_door.ogg' max_charges = 20 //20, 10, 10, 7 no_den_usage = 1 @@ -236,7 +234,7 @@ name = "wand of fireball" desc = "This wand shoots scorching balls of fire that explode into destructive flames." school = SCHOOL_EVOCATION - fire_sound = 'sound/magic/fireball.ogg' + fire_sound = 'sound/effects/magic/fireball.ogg' ammo_type = /obj/item/ammo_casing/magic/fireball icon_state = "firewand" base_icon_state = "firewand" @@ -267,7 +265,7 @@ ammo_type = /obj/item/ammo_casing/magic/shrink/wand icon_state = "shrinkwand" base_icon_state = "shrinkwand" - fire_sound = 'sound/magic/staff_shrink.ogg' + fire_sound = 'sound/effects/magic/staff_shrink.ogg' max_charges = 10 //10, 5, 5, 4 no_den_usage = TRUE w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/projectiles/guns/special/blastcannon.dm b/code/modules/projectiles/guns/special/blastcannon.dm index d867ca09c041a..a7c35c9122ec2 100644 --- a/code/modules/projectiles/guns/special/blastcannon.dm +++ b/code/modules/projectiles/guns/special/blastcannon.dm @@ -23,7 +23,7 @@ base_icon_state = "blastcannon" w_class = WEIGHT_CLASS_NORMAL force = 10 - fire_sound = 'sound/weapons/blastcannon.ogg' + fire_sound = 'sound/items/weapons/blastcannon.ogg' item_flags = NONE clumsy_check = FALSE randomspread = FALSE @@ -263,7 +263,7 @@ * - light: The light impact range of the blastwave. */ /obj/item/gun/blastcannon/proc/fire_dropped(heavy, medium, light) - src.visible_message("[src] suddenly goes off!") + src.visible_message(span_danger("[src] suddenly goes off!")) var/turf/target = get_edge_target_turf(src, dir) var/mob/firer = cached_firer.resolve() var/turf/start_turf = get_turf(src) diff --git a/code/modules/projectiles/guns/special/grenade_launcher.dm b/code/modules/projectiles/guns/special/grenade_launcher.dm index 830952dd769e6..e57a041e60a52 100644 --- a/code/modules/projectiles/guns/special/grenade_launcher.dm +++ b/code/modules/projectiles/guns/special/grenade_launcher.dm @@ -52,5 +52,5 @@ user.log_message("fired a grenade ([F.name]) with a grenade launcher ([src]) from [AREACOORD(user)] at [target] [AREACOORD(target)].", LOG_ATTACK, log_globally = FALSE) F.active = 1 F.icon_state = initial(F.icon_state) + "_active" - playsound(user.loc, 'sound/weapons/armbomb.ogg', 75, TRUE, -3) + playsound(user.loc, 'sound/items/weapons/armbomb.ogg', 75, TRUE, -3) addtimer(CALLBACK(F, TYPE_PROC_REF(/obj/item/grenade, detonate)), 1.5 SECONDS) diff --git a/code/modules/projectiles/guns/special/hand_of_midas.dm b/code/modules/projectiles/guns/special/hand_of_midas.dm index e92ffe8d0bf22..598da68fde69f 100644 --- a/code/modules/projectiles/guns/special/hand_of_midas.dm +++ b/code/modules/projectiles/guns/special/hand_of_midas.dm @@ -9,7 +9,7 @@ worn_icon_state = "gun" lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' + fire_sound = 'sound/items/weapons/gun/rifle/shot.ogg' pinless = TRUE max_charges = 1 can_charge = FALSE @@ -143,7 +143,7 @@ victim.visible_message(span_suicide("[victim] holds the barrel of [src] to [victim.p_their()] head, lighting the fuse. It looks like [user.p_theyre()] trying to commit suicide!")) if(!do_after(victim, 1.5 SECONDS)) return - playsound(src, 'sound/weapons/gun/rifle/shot.ogg', 75, TRUE) + playsound(src, 'sound/items/weapons/gun/rifle/shot.ogg', 75, TRUE) to_chat(victim, span_danger("You don't even have the time to register the gunshot by the time your body has completely converted into a golden statue.")) var/newcolors = list(rgb(206, 164, 50), rgb(146, 146, 139), rgb(28,28,28), rgb(0,0,0)) victim.petrify(statue_timer = INFINITY, save_brain = FALSE, colorlist = newcolors) diff --git a/code/modules/projectiles/guns/special/meat_hook.dm b/code/modules/projectiles/guns/special/meat_hook.dm index 0fcf6b2c8e6b9..c3462abdd9144 100644 --- a/code/modules/projectiles/guns/special/meat_hook.dm +++ b/code/modules/projectiles/guns/special/meat_hook.dm @@ -10,7 +10,7 @@ inhand_icon_state = "hook" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - fire_sound = 'sound/weapons/batonextend.ogg' + fire_sound = 'sound/items/weapons/batonextend.ogg' pinless = TRUE max_charges = 1 item_flags = NEEDS_PERMIT | NOBLUDGEON @@ -36,7 +36,7 @@ playsound(get_turf(src), fire_sound, 50, TRUE, -1) user.visible_message(span_suicide("[user] is using the [src] on their [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(get_turf(src), 'sound/weapons/bladeslice.ogg', 70) + playsound(get_turf(src), 'sound/items/weapons/bladeslice.ogg', 70) removable.dismember(silent = FALSE) return BRUTELOSS diff --git a/code/modules/projectiles/guns/special/syringe_gun.dm b/code/modules/projectiles/guns/special/syringe_gun.dm index da93e2c1ab8a7..51af794215790 100644 --- a/code/modules/projectiles/guns/special/syringe_gun.dm +++ b/code/modules/projectiles/guns/special/syringe_gun.dm @@ -19,7 +19,7 @@ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT) clumsy_check = FALSE fire_sound = 'sound/items/syringeproj.ogg' - var/load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg' + var/load_sound = 'sound/items/weapons/gun/shotgun/insert_shell.ogg' var/list/syringes = list() var/max_syringes = 1 ///The number of syringes it can store. var/has_syringe_overlay = TRUE ///If it has an overlay for inserted syringes. If true, the overlay is determined by the number of syringes inserted into it. diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 7dfc4b6ad8aa0..b46bb5d153151 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -16,7 +16,7 @@ blocks_emissive = EMISSIVE_BLOCK_GENERIC layer = MOB_LAYER //The sound this plays on impact. - var/hitsound = 'sound/weapons/pierce.ogg' + var/hitsound = 'sound/items/weapons/pierce.ogg' var/hitsound_wall = "" resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 0e50326f1b07c..d36b66eac7ffe 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -4,8 +4,8 @@ pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 20 damage_type = BURN - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' + hitsound = 'sound/items/weapons/sear.ogg' + hitsound_wall = 'sound/items/weapons/effects/searwall.ogg' armor_flag = LASER eyeblur = 4 SECONDS impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser @@ -76,15 +76,15 @@ name = "low-power laser" icon_state = "laser_musket" impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser - damage = 25 - stamina = 40 + damage = 28 + stamina = 35 light_color = COLOR_STRONG_VIOLET weak_against_armour = TRUE /obj/projectile/beam/laser/musket/prime name = "mid-power laser" - damage = 30 - stamina = 45 + damage = 25 + stamina = 20 weak_against_armour = FALSE /obj/projectile/beam/weak @@ -135,7 +135,7 @@ damage = 30 damage_type = STAMINA armor_flag = ENERGY - hitsound = 'sound/weapons/sear_disabler.ogg' + hitsound = 'sound/items/weapons/sear_disabler.ogg' impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE tracer_type = /obj/effect/projectile/tracer/disabler diff --git a/code/modules/projectiles/projectile/bullets/cannonball.dm b/code/modules/projectiles/projectile/bullets/cannonball.dm index 358a23eb63c90..167f61dfa2c87 100644 --- a/code/modules/projectiles/projectile/bullets/cannonball.dm +++ b/code/modules/projectiles/projectile/bullets/cannonball.dm @@ -10,7 +10,7 @@ stutter = 20 SECONDS embed_type = null hitsound = 'sound/effects/meteorimpact.ogg' - hitsound_wall = 'sound/weapons/sonic_jackhammer.ogg' + hitsound_wall = 'sound/items/weapons/sonic_jackhammer.ogg' /// If our cannonball hits something, it reduces the damage by this value. var/damage_decrease_on_hit = 10 /// This is the cutoff point of our cannonball, so that it stops piercing past this value. diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 215093c9f100e..a2c11f76d4789 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -141,6 +141,6 @@ /obj/projectile/bullet/shotgun_breaching name = "12g breaching round" desc = "A breaching round designed to destroy airlocks and windows with only a few shots. Ineffective against other targets." - hitsound = 'sound/weapons/sonic_jackhammer.ogg' + hitsound = 'sound/items/weapons/sonic_jackhammer.ogg' damage = 5 //does shit damage to everything except doors and windows demolition_mod = 200 //one shot to break a window or grille, or two shots to breach an airlock door diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index ac35fb5503e68..ae05a9eb85d7e 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -3,7 +3,7 @@ icon_state = "e_netting" damage = 10 damage_type = STAMINA - hitsound = 'sound/weapons/taserhit.ogg' + hitsound = 'sound/items/weapons/taserhit.ogg' range = 10 /obj/projectile/energy/net/Initialize(mapload) @@ -118,7 +118,7 @@ /obj/projectile/energy/trap name = "energy snare" icon_state = "e_snare" - hitsound = 'sound/weapons/taserhit.ogg' + hitsound = 'sound/items/weapons/taserhit.ogg' range = 4 /obj/projectile/energy/trap/on_hit(atom/target, blocked = 0, pierce_hit) @@ -136,7 +136,7 @@ /obj/projectile/energy/trap/cyborg name = "Energy Bola" icon_state = "e_snare" - hitsound = 'sound/weapons/taserhit.ogg' + hitsound = 'sound/items/weapons/taserhit.ogg' range = 10 /obj/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = 0, pierce_hit) diff --git a/code/modules/projectiles/projectile/energy/nuclear_particle.dm b/code/modules/projectiles/projectile/energy/nuclear_particle.dm index 4cd2ea049e095..b82ff478a05b4 100644 --- a/code/modules/projectiles/projectile/energy/nuclear_particle.dm +++ b/code/modules/projectiles/projectile/energy/nuclear_particle.dm @@ -7,7 +7,7 @@ damage_type = TOX damage = 10 speed = 0.4 - hitsound = 'sound/weapons/emitter2.ogg' + hitsound = 'sound/items/weapons/emitter2.ogg' impact_type = /obj/effect/projectile/impact/xray var/static/list/particle_colors = list( "red" = COLOR_RED, diff --git a/code/modules/projectiles/projectile/energy/photon.dm b/code/modules/projectiles/projectile/energy/photon.dm index 62b5770fb441e..5210737a19801 100644 --- a/code/modules/projectiles/projectile/energy/photon.dm +++ b/code/modules/projectiles/projectile/energy/photon.dm @@ -50,7 +50,7 @@ /obj/projectile/energy/photon/on_range() do_sparks(rand(4, 9), FALSE, src) - playsound(loc, 'sound/weapons/solarflare.ogg', 100, FALSE, 8, 0.9) + playsound(loc, 'sound/items/weapons/solarflare.ogg', 100, FALSE, 8, 0.9) for(var/mob/living/flashed_mob in viewers(5, loc)) flashed_mob.flash_act() return ..() diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index b393dc3415fe5..fb5c041b33875 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -5,7 +5,7 @@ paralyze = 10 SECONDS stutter = 10 SECONDS jitter = 40 SECONDS - hitsound = 'sound/weapons/taserhit.ogg' + hitsound = 'sound/items/weapons/taserhit.ogg' range = 7 tracer_type = /obj/effect/projectile/tracer/stun muzzle_type = /obj/effect/projectile/muzzle/stun diff --git a/code/modules/projectiles/projectile/energy/thermal.dm b/code/modules/projectiles/projectile/energy/thermal.dm index 0efb983eb3b69..7b1319e117a9e 100644 --- a/code/modules/projectiles/projectile/energy/thermal.dm +++ b/code/modules/projectiles/projectile/energy/thermal.dm @@ -21,7 +21,7 @@ if(how_cold_is_target < danger_zone) explosion(cold_target, devastation_range = -1, heavy_impact_range = -1, light_impact_range = 2, flame_range = 3) //maybe stand back a bit cold_target.bodytemperature = cold_target.dna.species.bodytemp_normal //avoids repeat explosions, maybe could be used to heat up again? - playsound(cold_target, 'sound/weapons/sear.ogg', 30, TRUE, -1) + playsound(cold_target, 'sound/items/weapons/sear.ogg', 30, TRUE, -1) /obj/projectile/energy/cryo name = "frozen nanite bullet" @@ -47,4 +47,4 @@ hot_target.Knockdown(100) hot_target.apply_damage(20, BURN) hot_target.bodytemperature = hot_target.dna.species.bodytemp_normal //avoids repeat knockdowns, maybe could be used to cool down again? - playsound(hot_target, 'sound/weapons/sonic_jackhammer.ogg', 30, TRUE, -1) + playsound(hot_target, 'sound/items/weapons/sonic_jackhammer.ogg', 30, TRUE, -1) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 23930f3cca7d0..44404c15f14a6 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -192,7 +192,7 @@ icon_state = "arcane_barrage" damage = 20 damage_type = BURN - hitsound = 'sound/weapons/barragespellhit.ogg' + hitsound = 'sound/items/weapons/barragespellhit.ogg' /obj/projectile/magic/locker name = "locker bolt" @@ -522,7 +522,7 @@ trigger_range = 0 can_only_hit_target = TRUE paralyze = 6 SECONDS - hitsound = 'sound/magic/mm_hit.ogg' + hitsound = 'sound/effects/magic/mm_hit.ogg' trail = TRUE trail_lifespan = 0.5 SECONDS @@ -539,7 +539,7 @@ damage = 30 damage_type = BRUTE knockdown = 50 - hitsound = 'sound/weapons/punch3.ogg' + hitsound = 'sound/items/weapons/punch3.ogg' trigger_range = 0 antimagic_flags = MAGIC_RESISTANCE_HOLY ignored_factions = list(FACTION_CULT) @@ -550,7 +550,7 @@ /obj/projectile/magic/aoe/juggernaut/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() var/turf/target_turf = get_turf(src) - playsound(target_turf, 'sound/weapons/resonator_blast.ogg', 100, FALSE) + playsound(target_turf, 'sound/items/weapons/resonator_blast.ogg', 100, FALSE) new /obj/effect/temp_visual/cult/sac(target_turf) for(var/obj/adjacent_object in range(1, src)) if(!adjacent_object.density) @@ -585,7 +585,7 @@ /obj/projectile/magic/shrink name = "shrink ray" icon_state = "blue_laser" - hitsound = 'sound/weapons/shrink_hit.ogg' + hitsound = 'sound/items/weapons/shrink_hit.ogg' damage = 0 damage_type = STAMINA armor_flag = ENERGY diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 23df9c9c50a6f..5f1f1017e836e 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -5,7 +5,7 @@ name = "curse hand" icon_state = "cursehand0" base_icon_state = "cursehand" - hitsound = 'sound/effects/curse4.ogg' + hitsound = 'sound/effects/curse/curse4.ogg' layer = LARGE_MOB_LAYER damage_type = BURN damage = 10 @@ -44,7 +44,7 @@ if(arm) QDEL_NULL(arm) if((movement_type & PHASING)) - playsound(src, 'sound/effects/curse3.ogg', 25, TRUE, -1) + playsound(src, 'sound/effects/curse/curse3.ogg', 25, TRUE, -1) var/turf/T = get_step(src, dir) var/obj/effect/temp_visual/dir_setting/curse/hand/leftover = new(T, dir) leftover.icon_state = icon_state diff --git a/code/modules/projectiles/projectile/special/gravity.dm b/code/modules/projectiles/projectile/special/gravity.dm index 5fbcbb98dd6d9..f76817cc00d5c 100644 --- a/code/modules/projectiles/projectile/special/gravity.dm +++ b/code/modules/projectiles/projectile/special/gravity.dm @@ -2,7 +2,7 @@ name = "repulsion bolt" icon = 'icons/effects/effects.dmi' icon_state = "chronofield" - hitsound = 'sound/weapons/wave.ogg' + hitsound = 'sound/items/weapons/wave.ogg' damage = 0 damage_type = BRUTE color = COLOR_BLUE_LIGHT @@ -36,7 +36,7 @@ name = "attraction bolt" icon = 'icons/effects/effects.dmi' icon_state = "chronofield" - hitsound = 'sound/weapons/wave.ogg' + hitsound = 'sound/items/weapons/wave.ogg' damage = 0 damage_type = BRUTE color = "#FF6600" @@ -69,7 +69,7 @@ name = "gravitational blast" icon = 'icons/effects/effects.dmi' icon_state = "chronofield" - hitsound = 'sound/weapons/wave.ogg' + hitsound = 'sound/items/weapons/wave.ogg' damage = 0 damage_type = BRUTE color = COLOR_FULL_TONER_BLACK diff --git a/code/modules/reagents/chemistry/equilibrium.dm b/code/modules/reagents/chemistry/equilibrium.dm index 435f4159ccbed..6b43e441d483c 100644 --- a/code/modules/reagents/chemistry/equilibrium.dm +++ b/code/modules/reagents/chemistry/equilibrium.dm @@ -368,9 +368,9 @@ #ifdef REAGENTS_TESTING //Kept in so that people who want to write fermireactions can contact me with this log so I can help them if(GLOB.Debug2) //I want my spans for my sanity - message_admins("Reaction step active for:[reaction.type]") - message_admins("|Reaction conditions| Temp: [holder.chem_temp], pH: [holder.ph], reactions: [length(holder.reaction_list)], awaiting reactions: [length(holder.failed_but_capable_reactions)], no. reagents:[length(holder.reagent_list)], no. prev reagents: [length(holder.previous_reagent_list)]") - message_admins("Reaction vars: PreReacted:[reacted_vol] of [step_target_vol] of total [target_vol]. delta_t [delta_t], multiplier [multiplier], delta_chem_factor [delta_chem_factor] Pfactor [product_ratio], purity of [purity] from a delta_ph of [delta_ph]. DeltaTime: [seconds_per_tick]") + message_admins(span_green("Reaction step active for:[reaction.type]")) + message_admins(span_notice("|Reaction conditions| Temp: [holder.chem_temp], pH: [holder.ph], reactions: [length(holder.reaction_list)], awaiting reactions: [length(holder.failed_but_capable_reactions)], no. reagents:[length(holder.reagent_list)], no. prev reagents: [length(holder.previous_reagent_list)]")) + message_admins(span_warning("Reaction vars: PreReacted:[reacted_vol] of [step_target_vol] of total [target_vol]. delta_t [delta_t], multiplier [multiplier], delta_chem_factor [delta_chem_factor] Pfactor [product_ratio], purity of [purity] from a delta_ph of [delta_ph]. DeltaTime: [seconds_per_tick]")) #endif //Apply thermal output of reaction to beaker diff --git a/code/modules/reagents/chemistry/items.dm b/code/modules/reagents/chemistry/items.dm index 0344971497b01..1e712db9c23ef 100644 --- a/code/modules/reagents/chemistry/items.dm +++ b/code/modules/reagents/chemistry/items.dm @@ -33,7 +33,7 @@ user.put_in_active_hand(page) to_chat(user, span_notice("You take [page] out of \the [src].")) number_of_pages-- - playsound(user.loc, 'sound/items/poster_ripped.ogg', 50, TRUE) + playsound(user.loc, 'sound/items/poster/poster_ripped.ogg', 50, TRUE) add_fingerprint(user) if(!number_of_pages) icon_state = "pHbooklet_empty" @@ -57,7 +57,7 @@ user.put_in_active_hand(P) to_chat(user, span_notice("You take [P] out of \the [src].")) number_of_pages-- - playsound(user.loc, 'sound/items/poster_ripped.ogg', 50, TRUE) + playsound(user.loc, 'sound/items/poster/poster_ripped.ogg', 50, TRUE) add_fingerprint(user) if(!number_of_pages) icon_state = "pHbookletEmpty" @@ -166,7 +166,7 @@ var/obj/item/reagent_containers/container = I container.reagents.expose_temperature(get_temperature()) to_chat(user, span_notice("You heat up the [I] with the [src].")) - playsound(user.loc, 'sound/chemistry/heatdam.ogg', 50, TRUE) + playsound(user.loc, 'sound/effects/chemistry/heatdam.ogg', 50, TRUE) return else if(I.is_drainable()) //Transfer FROM it TO us. Special code so it only happens when flame is off. var/obj/item/reagent_containers/container = I @@ -193,7 +193,7 @@ var/obj/item/reagent_containers/container = interacting_with container.reagents.expose_temperature(get_temperature()) user.visible_message(span_notice("[user] heats up [src]."), span_notice("You heat up [src].")) - playsound(user, 'sound/chemistry/heatdam.ogg', 50, TRUE) + playsound(user, 'sound/effects/chemistry/heatdam.ogg', 50, TRUE) return ITEM_INTERACT_SUCCESS else if(isitem(interacting_with)) @@ -216,7 +216,7 @@ if(lit) force = 5 damtype = BURN - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) START_PROCESSING(SSobj, src) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index b7266ca0fe375..8790883688e0e 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -122,9 +122,9 @@ if(panel_open) . += span_notice("[src]'s maintenance hatch is open!") if(in_range(user, src) || isobserver(user)) - . += "The status display reads:\n\ + . += span_notice("The status display reads:\n\ Recharge rate: [display_power(recharge_amount, convert = FALSE)].\n\ - Energy cost: [siunit(power_cost, "J/u", 3)]." + Energy cost: [siunit(power_cost, "J/u", 3)].") . += span_notice("Use RMB to eject a stored beaker.") /obj/machinery/chem_dispenser/on_set_is_operational(old_value) @@ -357,7 +357,7 @@ if(!dispensable_reagents.Find(reagent_id)) visible_message(span_warning("[src] buzzes."), span_hear("You hear a faint buzz.")) to_chat(ui.user, span_warning("[src] cannot find [reagent]!")) - playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) return saved_recipes[name] = recording_recipe recording_recipe = null diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm index 552bfe48650ca..f45eb89b8ebe9 100644 --- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm +++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm @@ -7,9 +7,16 @@ amount = 10 resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF use_power = NO_POWER_USE + + ///The temperature of the added reagents + var/temperature = DEFAULT_REAGENT_TEMPERATURE ///The purity of the created reagent in % (purity uses 0-1 values) var/purity = 100 +/obj/machinery/chem_dispenser/chem_synthesizer/Destroy() + QDEL_NULL(beaker) + return ..() + /obj/machinery/chem_dispenser/chem_synthesizer/screwdriver_act(mob/living/user, obj/item/tool) return NONE @@ -22,6 +29,12 @@ ui = new(user, src, "ChemDebugSynthesizer", name) ui.open() + +/obj/machinery/chem_dispenser/chem_synthesizer/ui_data(mob/user) + . = ..() + .["purity"] = purity + .["temp"] = temperature + /obj/machinery/chem_dispenser/chem_synthesizer/handle_ui_act(action, params, datum/tgui/ui, datum/ui_state/state) switch(action) if("input") @@ -36,7 +49,7 @@ if(!input_reagent) return FALSE - beaker.reagents.add_reagent(input_reagent, amount, added_purity = (purity / 100)) + beaker.reagents.add_reagent(input_reagent, amount, reagtemp = temperature, added_purity = (purity / 100)) return TRUE if("makecup") @@ -58,6 +71,18 @@ amount = input return TRUE + if("temp") + var/input = params["amount"] + if(isnull(input)) + return FALSE + + input = text2num(input) + if(isnull(input)) + return FALSE + + temperature = input + return TRUE + if("purity") var/input = params["amount"] if(isnull(input)) @@ -71,11 +96,3 @@ return TRUE update_appearance() - -/obj/machinery/chem_dispenser/chem_synthesizer/Destroy() - QDEL_NULL(beaker) - return ..() - -/obj/machinery/chem_dispenser/chem_synthesizer/ui_data(mob/user) - . = ..() - .["purity"] = purity diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 3b0272240b0df..141fb7c4e6fb0 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -394,7 +394,7 @@ if("mix") mix(50 DECISECONDS, user) if("examine") - to_chat(user, examine_block("[examine(user)]")) + to_chat(user, examine_block(span_infoplain("[examine(user)]"))) /** * Checks if the radial menu can interact with this machine diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index dd463397b77bd..8c0aa36189f99 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -529,7 +529,7 @@ carbies.add_mood_event("painful_medicine", /datum/mood_event/painful_medicine) if(HAS_TRAIT_FROM(exposed_mob, TRAIT_HUSK, BURN) && carbies.getFireLoss() < UNHUSK_DAMAGE_THRESHOLD && (carbies.reagents.get_reagent_amount(/datum/reagent/medicine/c2/synthflesh) + reac_volume >= SYNTHFLESH_UNHUSK_AMOUNT)) carbies.cure_husk(BURN) - carbies.visible_message("A rubbery liquid coats [carbies]'s burns. [carbies] looks a lot healthier!") //we're avoiding using the phrases "burnt flesh" and "burnt skin" here because carbies could be a skeleton or a golem or something + carbies.visible_message(span_nicegreen("A rubbery liquid coats [carbies]'s burns. [carbies] looks a lot healthier!")) //we're avoiding using the phrases "burnt flesh" and "burnt skin" here because carbies could be a skeleton or a golem or something /******ORGAN HEALING******/ /*Suffix: -rite*/ diff --git a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm index da57f6ce405a1..fa869cb267a57 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm @@ -630,14 +630,14 @@ if(src == holder.get_master_reagent()) var/obj/item/reagent_containers/cup/glass/drinkingglass/drink = holder.my_atom drink.tool_behaviour = TOOL_SCREWDRIVER - drink.usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg') + drink.usesound = list('sound/items/tools/screwdriver.ogg', 'sound/items/tools/screwdriver2.ogg') /datum/reagent/consumable/ethanol/screwdrivercocktail/proc/on_reagent_change(datum/reagents/reagents) SIGNAL_HANDLER var/obj/item/reagent_containers/cup/glass/drinkingglass/drink = reagents.my_atom if(reagents.get_master_reagent() == src) drink.tool_behaviour = TOOL_SCREWDRIVER - drink.usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg') + drink.usesound = list('sound/items/tools/screwdriver.ogg', 'sound/items/tools/screwdriver2.ogg') else drink.tool_behaviour = initial(drink.tool_behaviour) drink.usesound = initial(drink.usesound) @@ -881,7 +881,7 @@ /datum/reagent/consumable/ethanol/b52/on_mob_metabolize(mob/living/drinker) . = ..() - playsound(drinker, 'sound/effects/explosion_distant.ogg', 100, FALSE) + playsound(drinker, 'sound/effects/explosion/explosion_distant.ogg', 100, FALSE) /datum/reagent/consumable/ethanol/irishcoffee name = "Irish Coffee" @@ -1259,7 +1259,7 @@ /datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) . = ..() if(SPT_PROB(2.5, seconds_per_tick)) - playsound(get_turf(drinker), 'sound/effects/explosionfar.ogg', 100, TRUE) + playsound(get_turf(drinker), 'sound/effects/explosion/explosionfar.ogg', 100, TRUE) /datum/reagent/consumable/ethanol/hiveminderaser name = "Hivemind Eraser" @@ -2638,6 +2638,7 @@ quality = DRINK_VERYGOOD taste_description = "light gin with sweet ginger and cucumber" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + glass_price = DRINK_PRICE_MEDIUM /datum/reagent/consumable/ethanol/gin_garden/on_mob_life(mob/living/carbon/doll, seconds_per_tick, times_fired) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm index 34b2dce4170e6..6ef6fc0a44d1d 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm @@ -586,8 +586,8 @@ . = ..() if(exposed_mob?.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && (methods & INGEST) && !HAS_TRAIT(exposed_mob, TRAIT_GAMERGOD)) ADD_TRAIT(exposed_mob, TRAIT_GAMERGOD, "pwr_game") - to_chat(exposed_mob, "As you imbibe the Pwr Game, your gamer third eye opens... \ - You feel as though a great secret of the universe has been made known to you...") + to_chat(exposed_mob, span_nicegreen("As you imbibe the Pwr Game, your gamer third eye opens... \ + You feel as though a great secret of the universe has been made known to you...")) /datum/reagent/consumable/pwr_game/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index c6cee8e91c062..904d09db7334b 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -51,15 +51,15 @@ affected_mob.apply_status_effect(/datum/status_effect/stoned) if(SPT_PROB(1, seconds_per_tick)) var/smoke_message = pick("You feel relaxed.","You feel calmed.","Your mouth feels dry.","You could use some water.","Your heart beats quickly.","You feel clumsy.","You crave junk food.","You notice you've been moving more slowly.") - to_chat(affected_mob, "[smoke_message]") + to_chat(affected_mob, span_notice("[smoke_message]")) if(SPT_PROB(2, seconds_per_tick)) affected_mob.emote(pick("smile","laugh","giggle")) affected_mob.adjust_nutrition(-0.15 * REM * seconds_per_tick) //munchies if(SPT_PROB(4, seconds_per_tick) && affected_mob.body_position == LYING_DOWN && !affected_mob.IsSleeping()) //chance to fall asleep if lying down - to_chat(affected_mob, "You doze off...") + to_chat(affected_mob, span_warning("You doze off...")) affected_mob.Sleeping(10 SECONDS) if(SPT_PROB(4, seconds_per_tick) && affected_mob.buckled && affected_mob.body_position != LYING_DOWN && !affected_mob.IsParalyzed()) //chance to be couchlocked if sitting - to_chat(affected_mob, "It's too comfy to move...") + to_chat(affected_mob, span_warning("It's too comfy to move...")) affected_mob.Paralyze(10 SECONDS) /datum/reagent/drug/nicotine @@ -694,7 +694,7 @@ /datum/reagent/drug/saturnx/on_mob_metabolize(mob/living/invisible_man) . = ..() - playsound(invisible_man, 'sound/chemistry/saturnx_fade.ogg', 40) + playsound(invisible_man, 'sound/effects/chemistry/saturnx_fade.ogg', 40) to_chat(invisible_man, span_nicegreen("You feel pins and needles all over your skin as your body suddenly becomes transparent!")) addtimer(CALLBACK(src, PROC_REF(turn_man_invisible), invisible_man), 1 SECONDS) //just a quick delay to synch up the sound. if(!invisible_man.hud_used) diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm index ce829a6ac1222..3fd9188e8d4f0 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm @@ -69,7 +69,7 @@ /datum/reagent/inverse/helgrasp/on_mob_add(mob/living/affected_mob, amount) . = ..() to_chat(affected_mob, span_hierophant("You hear laughter as malevolent hands apparate before you, eager to drag you down to hell...! Look out!")) - playsound(affected_mob.loc, 'sound/chemistry/ahaha.ogg', 80, TRUE, -1) //Very obvious tell so people can be ready + playsound(affected_mob.loc, 'sound/effects/chemistry/ahaha.ogg', 80, TRUE, -1) //Very obvious tell so people can be ready //Sends hands after you for your hubris /* @@ -539,7 +539,7 @@ Basically, we fill the time between now and 2s from now with hands based off the affected_mob.grab_ghost(force = FALSE) //Shoves them back into their freshly reanimated corpse. back_from_the_dead = TRUE affected_mob.emote("gasp") - affected_mob.playsound_local(affected_mob, 'sound/health/fastbeat.ogg', 65) + affected_mob.playsound_local(affected_mob, 'sound/effects/health/fastbeat.ogg', 65) /datum/reagent/inverse/penthrite/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index df7f222a496fe..d8cc74b1079a6 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -133,7 +133,7 @@ if(SPT_PROB(10, seconds_per_tick)) to_chat(affected_mob, "You feel confused and disoriented.") if(prob(30)) - SEND_SOUND(affected_mob, sound('sound/weapons/flash_ring.ogg')) + SEND_SOUND(affected_mob, sound('sound/items/weapons/flash_ring.ogg')) /datum/reagent/medicine/cryoxadone name = "Cryoxadone" diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 6f28d12964771..bbaad188151a2 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -587,6 +587,7 @@ fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "spraytan_fallback" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + glass_price = DRINK_PRICE_HIGH /datum/reagent/spraytan/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm index e7cb222ac5837..eac83c5efc9eb 100644 --- a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm @@ -24,6 +24,7 @@ inverse_chem = null fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "acid_buffer_fallback" + glass_price = DRINK_PRICE_HIGH //Consumes self on addition and shifts ph /datum/reagent/reaction_agent/acidic_buffer/intercept_reagents_transfer(datum/reagents/target, amount) @@ -41,7 +42,7 @@ //give feedback & remove from holder because it's not transferred target.my_atom.audible_message(span_warning(message)) - playsound(target.my_atom, 'sound/chemistry/bufferadd.ogg', 50, TRUE) + playsound(target.my_atom, 'sound/effects/chemistry/bufferadd.ogg', 50, TRUE) holder.remove_reagent(type, amount) /datum/reagent/reaction_agent/basic_buffer @@ -52,6 +53,7 @@ inverse_chem = null fallback_icon = 'icons/obj/drinks/drink_effects.dmi' fallback_icon_state = "base_buffer_fallback" + glass_price = DRINK_PRICE_HIGH /datum/reagent/reaction_agent/basic_buffer/intercept_reagents_transfer(datum/reagents/target, amount) . = ..() @@ -68,7 +70,7 @@ //give feedback & remove from holder because it's not transferred target.my_atom.audible_message(span_warning(message)) - playsound(target.my_atom, 'sound/chemistry/bufferadd.ogg', 50, TRUE) + playsound(target.my_atom, 'sound/effects/chemistry/bufferadd.ogg', 50, TRUE) holder.remove_reagent(type, amount) //purity testor/reaction agent prefactors @@ -100,7 +102,7 @@ is_inverse = TRUE if(is_inverse) target.my_atom.audible_message(span_warning("The beaker bubbles violently as the reagent is added!")) - playsound(target.my_atom, 'sound/chemistry/bufferadd.ogg', 50, TRUE) + playsound(target.my_atom, 'sound/effects/chemistry/bufferadd.ogg', 50, TRUE) else target.my_atom.audible_message(span_warning("The added reagent doesn't seem to do much.")) holder.remove_reagent(type, amount) diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 59271ccbcf9db..4670aebdd6e0a 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -25,7 +25,7 @@ ///The message shown to nearby people upon mixing, if applicable var/mix_message = "The solution begins to bubble." ///The sound played upon mixing, if applicable - var/mix_sound = 'sound/effects/bubbles.ogg' + var/mix_sound = 'sound/effects/bubbles/bubbles.ogg' /// Set to TRUE if you want the recipe to only react when it's BELOW the required temp. var/is_cold_recipe = FALSE @@ -403,7 +403,7 @@ var/turf/this_turf = get_turf(holder.my_atom) if(sound_and_text) holder.my_atom.audible_message("The [holder.my_atom] suddenly explodes, sending a shockwave rippling through the air!") - playsound(this_turf, 'sound/chemistry/shockwave_explosion.ogg', 80, TRUE) + playsound(this_turf, 'sound/effects/chemistry/shockwave_explosion.ogg', 80, TRUE) //Modified goonvortex for(var/atom/movable/movey as anything in orange(range, this_turf)) if(!istype(movey, /atom/movable)) diff --git a/code/modules/reagents/chemistry/recipes/cat2_medicines.dm b/code/modules/reagents/chemistry/recipes/cat2_medicines.dm index ae6e616b20390..802d5a820e2f5 100644 --- a/code/modules/reagents/chemistry/recipes/cat2_medicines.dm +++ b/code/modules/reagents/chemistry/recipes/cat2_medicines.dm @@ -131,7 +131,7 @@ if(living_mob.flash_act(1, length = 5)) living_mob.set_eye_blur(20 SECONDS) holder.my_atom.audible_message(span_notice("[icon2html(holder.my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))] The [holder.my_atom] lets out a loud bang!")) - playsound(holder.my_atom, 'sound/effects/explosion1.ogg', 50, 1) + playsound(holder.my_atom, 'sound/effects/explosion/explosion1.ogg', 50, 1) /datum/chemical_reaction/medicine/hercuri results = list(/datum/reagent/medicine/c2/hercuri = 5) @@ -154,7 +154,7 @@ /datum/chemical_reaction/medicine/hercuri/overheated(datum/reagents/holder, datum/equilibrium/equilibrium, step_volume_added) if(off_cooldown(holder, equilibrium, 2, "hercuri_freeze")) return - playsound(holder.my_atom, 'sound/magic/ethereal_exit.ogg', 50, 1) + playsound(holder.my_atom, 'sound/effects/magic/ethereal_exit.ogg', 50, 1) holder.my_atom.visible_message("The reaction frosts over, releasing its chilly contents!") var/radius = max((equilibrium.step_target_vol/50), 1) freeze_radius(holder, equilibrium, 200, radius, 60 SECONDS) //drying agent exists @@ -345,10 +345,10 @@ . = ..() if(off_cooldown(holder, equilibrium, 1, "lub")) explode_shockwave(holder, equilibrium, 3, 2) - playsound(holder.my_atom, 'sound/health/slowbeat.ogg', 50, 1) // this is 2 mintues long (!) cut it up! + playsound(holder.my_atom, 'sound/effects/health/slowbeat.ogg', 50, 1) // this is 2 mintues long (!) cut it up! if(off_cooldown(holder, equilibrium, 1, "dub", 0.5)) explode_shockwave(holder, equilibrium, 3, 2, implosion = TRUE) - playsound(holder.my_atom, 'sound/health/slowbeat.ogg', 50, 1) + playsound(holder.my_atom, 'sound/effects/health/slowbeat.ogg', 50, 1) explode_fire_vortex(holder, equilibrium, 1, 1) //enabling hardmode diff --git a/code/modules/reagents/chemistry/recipes/catalysts.dm b/code/modules/reagents/chemistry/recipes/catalysts.dm index 7ef4a8a771cbe..bdad316f8f9f6 100644 --- a/code/modules/reagents/chemistry/recipes/catalysts.dm +++ b/code/modules/reagents/chemistry/recipes/catalysts.dm @@ -5,7 +5,7 @@ results = list(/datum/reagent/catalyst_agent/speed/medicine = 2) required_reagents = list(/datum/reagent/medicine/c2/libital = 3, /datum/reagent/medicine/c2/probital = 4, /datum/reagent/toxin/plasma = 2) mix_message = "The reaction evaporates slightly as the mixture solidifies" - mix_sound = 'sound/chemistry/catalyst.ogg' + mix_sound = 'sound/effects/chemistry/catalyst.ogg' reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_UNIQUE | REACTION_TAG_CHEMICAL required_temp = 200 optimal_temp = 500 diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 8e2353555be5d..8e86a85e21264 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -585,7 +585,7 @@ /datum/chemical_reaction/monkey required_reagents = list(/datum/reagent/monkey_powder = 50, /datum/reagent/water = 1) reaction_flags = REACTION_INSTANT - mix_message = "Expands into a brown mass before shaping itself into a monkey!." + mix_message = span_danger("Expands into a brown mass before shaping itself into a monkey!.") /datum/chemical_reaction/monkey/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) var/mob/living/carbon/M = holder.my_atom @@ -640,18 +640,18 @@ /datum/chemical_reaction/scream/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) /// List of screams to play. var/static/list/screams = list( - 'sound/voice/human/femalescream_1.ogg', - 'sound/voice/human/femalescream_2.ogg', - 'sound/voice/human/femalescream_3.ogg', - 'sound/voice/human/femalescream_4.ogg', - 'sound/voice/human/femalescream_5.ogg', - 'sound/voice/human/malescream_1.ogg', - 'sound/voice/human/malescream_2.ogg', - 'sound/voice/human/malescream_3.ogg', - 'sound/voice/human/malescream_4.ogg', - 'sound/voice/human/malescream_5.ogg', - 'sound/voice/human/malescream_6.ogg', - 'sound/voice/human/wilhelm_scream.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_1.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_2.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_3.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_4.ogg', + 'sound/mobs/humanoids/human/scream/femalescream_5.ogg', + 'sound/mobs/humanoids/human/scream/malescream_1.ogg', + 'sound/mobs/humanoids/human/scream/malescream_2.ogg', + 'sound/mobs/humanoids/human/scream/malescream_3.ogg', + 'sound/mobs/humanoids/human/scream/malescream_4.ogg', + 'sound/mobs/humanoids/human/scream/malescream_5.ogg', + 'sound/mobs/humanoids/human/scream/malescream_6.ogg', + 'sound/mobs/humanoids/human/scream/wilhelm_scream.ogg', ) playsound(holder.my_atom, pick(screams), created_volume*5,TRUE) @@ -884,7 +884,7 @@ results = list(/datum/reagent/eigenstate = 1) required_reagents = list(/datum/reagent/bluespace = 1, /datum/reagent/stable_plasma = 1, /datum/reagent/consumable/caramel = 1) mix_message = "the reaction zaps suddenly!" - mix_sound = 'sound/chemistry/bluespace.ogg' + mix_sound = 'sound/effects/chemistry/bluespace.ogg' //FermiChem vars: required_temp = 350 optimal_temp = 600 diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 62a14ddc794be..69dda419d7cd3 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -196,7 +196,7 @@ required_temp = 474 strengthdiv = 10 modifier = 5 - mix_message = "Sparks start flying around the gunpowder!" + mix_message = span_boldnotice("Sparks start flying around the gunpowder!") /datum/chemical_reaction/reagent_explosion/gunpowder_explosion/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) addtimer(CALLBACK(src, PROC_REF(default_explode), holder, created_volume, modifier, strengthdiv), rand(5 SECONDS, 10 SECONDS)) @@ -226,9 +226,9 @@ /datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) var/location = holder.my_atom.drop_location() if(created_volume < 5) - playsound(location,'sound/effects/sparks1.ogg', 100, TRUE) + playsound(location,'sound/effects/sparks/sparks1.ogg', 100, TRUE) else - playsound(location,'sound/creatures/bee.ogg', 100, TRUE) + playsound(location,'sound/mobs/non-humanoids/bee/bee.ogg', 100, TRUE) var/list/beeagents = list() for(var/R in holder.reagent_list) if(required_reagents[R]) @@ -498,7 +498,7 @@ if(!cryostylane) return ..() var/turf/local_turf = get_turf(holder.my_atom) - playsound(local_turf, 'sound/magic/ethereal_exit.ogg', 50, 1) + playsound(local_turf, 'sound/effects/magic/ethereal_exit.ogg', 50, 1) local_turf.visible_message("The reaction frosts over, releasing its chilly contents!") freeze_radius(holder, null, holder.chem_temp*2, clamp(cryostylane.volume/30, 2, 6), 120 SECONDS, 2) clear_reactants(holder, 15) @@ -508,7 +508,7 @@ /datum/chemical_reaction/cryostylane/overly_impure(datum/reagents/holder, datum/equilibrium/equilibrium, vol_added) var/datum/reagent/cryostylane/cryostylane = holder.has_reagent(/datum/reagent/cryostylane) var/turf/local_turf = get_turf(holder.my_atom) - playsound(local_turf, 'sound/magic/ethereal_exit.ogg', 50, 1) + playsound(local_turf, 'sound/effects/magic/ethereal_exit.ogg', 50, 1) local_turf.visible_message("The reaction furiously freezes up as a snowman suddenly rises out of the [holder.my_atom.name]!") freeze_radius(holder, equilibrium, holder.chem_temp, clamp(cryostylane.volume/15, 3, 10), 180 SECONDS, 5) new /obj/structure/statue/snow/snowman(local_turf) @@ -564,22 +564,22 @@ /datum/chemical_reaction/teslium results = list(/datum/reagent/teslium = 3) required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/silver = 1, /datum/reagent/gunpowder = 1) - mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry." + mix_message = span_danger("A jet of sparks flies from the mixture as it merges into a flickering slurry.") required_temp = 400 reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE /datum/chemical_reaction/energized_jelly results = list(/datum/reagent/teslium/energized_jelly = 2) required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/teslium = 1) - mix_message = "The slime jelly starts glowing intermittently." + mix_message = span_danger("The slime jelly starts glowing intermittently.") reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DANGEROUS | REACTION_TAG_HEALING | REACTION_TAG_OTHER /datum/chemical_reaction/reagent_explosion/teslium_lightning required_reagents = list(/datum/reagent/teslium = 1, /datum/reagent/water = 1) strengthdiv = 100 modifier = -100 - mix_message = "The teslium starts to spark as electricity arcs away from it!" - mix_sound = 'sound/machines/defib_zap.ogg' + mix_message = span_boldannounce("The teslium starts to spark as electricity arcs away from it!") + mix_sound = 'sound/machines/defib/defib_zap.ogg' var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN | ZAP_LOW_POWER_GEN reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS @@ -603,7 +603,7 @@ if(QDELETED(holder_atom)) return tesla_zap(source = holder_atom, zap_range = 7, power = power, cutoff = 1 KILO JOULES, zap_flags = zap_flags) - playsound(holder_atom, 'sound/machines/defib_zap.ogg', 50, TRUE) + playsound(holder_atom, 'sound/machines/defib/defib_zap.ogg', 50, TRUE) /datum/chemical_reaction/reagent_explosion/teslium_lightning/heat required_temp = 474 @@ -640,4 +640,4 @@ /datum/chemical_reaction/reagent_explosion/patriotism_overload required_reagents = list(/datum/reagent/consumable/ethanol/planet_cracker = 1, /datum/reagent/consumable/ethanol/triumphal_arch = 1) strengthdiv = 20 - mix_message = "The two patriotic drinks instantly reject each other!" + mix_message = span_boldannounce("The two patriotic drinks instantly reject each other!") diff --git a/code/modules/reagents/chemistry/recipes/reaction_agents.dm b/code/modules/reagents/chemistry/recipes/reaction_agents.dm index f9292cf8c14b9..454a13aec5716 100644 --- a/code/modules/reagents/chemistry/recipes/reaction_agents.dm +++ b/code/modules/reagents/chemistry/recipes/reaction_agents.dm @@ -64,7 +64,7 @@ results = list(/datum/reagent/prefactor_b = 5) required_reagents = list(/datum/reagent/prefactor_a = 5) mix_message = "The solution's viscosity decreases." - mix_sound = 'sound/chemistry/bluespace.ogg' //Maybe use this elsewhere instead + mix_sound = 'sound/effects/chemistry/bluespace.ogg' //Maybe use this elsewhere instead required_temp = 50 optimal_temp = 500 overheat_temp = 500 diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index 0fcae783d8993..256bc31be117e 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -309,7 +309,7 @@ /datum/chemical_reaction/heparin results = list(/datum/reagent/toxin/heparin = 3) required_reagents = list(/datum/reagent/toxin/formaldehyde = 1, /datum/reagent/consumable/salt = 1, /datum/reagent/lithium = 1) - mix_message = "The mixture thins and loses all color." + mix_message = span_danger("The mixture thins and loses all color.") is_cold_recipe = FALSE required_temp = 100 optimal_temp = 450 @@ -329,7 +329,7 @@ /datum/chemical_reaction/rotatium results = list(/datum/reagent/toxin/rotatium = 3) required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/teslium = 1, /datum/reagent/toxin/fentanyl = 1) - mix_message = "After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight." + mix_message = span_danger("After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight.") is_cold_recipe = FALSE required_temp = 100 optimal_temp = 450 @@ -389,7 +389,7 @@ /datum/chemical_reaction/bonehurtingjuice results = list(/datum/reagent/toxin/bonehurtingjuice = 5) required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/toxin/itching_powder = 3, /datum/reagent/consumable/milk = 1) - mix_message = "The mixture suddenly becomes clear and looks a lot like water. You feel a strong urge to drink it." + mix_message = span_danger("The mixture suddenly becomes clear and looks a lot like water. You feel a strong urge to drink it.") is_cold_recipe = FALSE required_temp = 100 optimal_temp = 450 diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm index c6e74f3388ab4..c01ad352f54dd 100644 --- a/code/modules/reagents/reagent_containers/cups/_cup.dm +++ b/code/modules/reagents/reagent_containers/cups/_cup.dm @@ -118,7 +118,7 @@ return ITEM_INTERACT_BLOCKING var/trans = reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user) - playsound(target.loc, pick('sound/effects/liquid_pour1.ogg', 'sound/effects/liquid_pour2.ogg', 'sound/effects/liquid_pour3.ogg'), 50) + playsound(target.loc, SFX_LIQUID_POUR, 50, TRUE) to_chat(user, span_notice("You transfer [trans] unit\s of the solution to [target].")) SEND_SIGNAL(src, COMSIG_REAGENTS_CUP_TRANSFER_TO, target) target.update_appearance() @@ -134,6 +134,7 @@ return ITEM_INTERACT_BLOCKING var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, transferred_by = user) + playsound(target.loc, SFX_LIQUID_POUR, 50, TRUE) to_chat(user, span_notice("You fill [src] with [trans] unit\s of the contents of [target].")) SEND_SIGNAL(src, COMSIG_REAGENTS_CUP_TRANSFER_FROM, target) target.update_appearance() @@ -159,9 +160,12 @@ return ITEM_INTERACT_BLOCKING var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, transferred_by = user) + playsound(target.loc, SFX_LIQUID_POUR, 50, TRUE) to_chat(user, span_notice("You fill [src] with [trans] unit\s of the contents of [target].")) + SEND_SIGNAL(src, COMSIG_REAGENTS_CUP_TRANSFER_FROM, target) + target.update_appearance() + return ITEM_INTERACT_SUCCESS - target.update_appearance() return NONE /obj/item/reagent_containers/cup/attackby(obj/item/attacking_item, mob/user, params) diff --git a/code/modules/reagents/reagent_containers/cups/drinks.dm b/code/modules/reagents/reagent_containers/cups/drinks.dm index e75d3d28b66dc..b473c6b38a2ef 100644 --- a/code/modules/reagents/reagent_containers/cups/drinks.dm +++ b/code/modules/reagents/reagent_containers/cups/drinks.dm @@ -267,7 +267,7 @@ cap_lost = TRUE else to_chat(user, span_notice("You remove the cap from [src].")) - playsound(loc, 'sound/effects/can_open1.ogg', 50, TRUE) + playsound(loc, 'sound/effects/can/can_open1.ogg', 50, TRUE) else cap_on = TRUE spillable = FALSE diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index a214ea47eb148..67741748461c7 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -260,7 +260,7 @@ inhand_icon_state = "broken_beer" lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("stabs", "slashes", "attacks") attack_verb_simple = list("stab", "slash", "attack") sharpness = SHARP_EDGED @@ -781,7 +781,7 @@ name = "champagne cork" icon = 'icons/obj/drinks/drink_effects.dmi' icon_state = "champagne_cork" - hitsound = 'sound/weapons/genhit.ogg' + hitsound = 'sound/items/weapons/genhit.ogg' damage = 10 sharpness = NONE impact_effect_type = null @@ -1005,7 +1005,7 @@ for (var/mob/living/M in view(2, get_turf(src))) // letting people and/or narcs know when the pruno is done if(HAS_TRAIT(M, TRAIT_ANOSMIA)) to_chat(M, span_info("A pungent smell emanates from [src], like fruit puking out its guts.")) - playsound(get_turf(src), 'sound/effects/bubbles2.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/effects/bubbles/bubbles2.ogg', 25, TRUE) /** * Cartons diff --git a/code/modules/reagents/reagent_containers/cups/soda.dm b/code/modules/reagents/reagent_containers/cups/soda.dm index 2e85b2273f45e..7772a64f60e3d 100644 --- a/code/modules/reagents/reagent_containers/cups/soda.dm +++ b/code/modules/reagents/reagent_containers/cups/soda.dm @@ -69,7 +69,7 @@ user.visible_message(span_warning("[user] crushes the can of [src] on [user.p_their()] forehead!"), span_notice("You crush the can of [src] on your forehead.")) else user.visible_message(span_warning("[user] crushes the can of [src] on [M]'s forehead!"), span_notice("You crush the can of [src] on [M]'s forehead.")) - playsound(M,'sound/weapons/pierce.ogg', rand(10,50), TRUE) + playsound(M,'sound/items/weapons/pierce.ogg', rand(10,50), TRUE) var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(M.loc) crushed_can.icon_state = icon_state qdel(src) @@ -118,7 +118,7 @@ if(iter_mob != target) iter_mob.add_mood_event("observed_soda_spill", /datum/mood_event/observed_soda_spill, target, src) - playsound(src, 'sound/effects/can_pop.ogg', 80, TRUE) + playsound(src, 'sound/effects/can/can_pop.ogg', 80, TRUE) if(!hide_message) visible_message(span_danger("[src] spills over, fizzing its contents all over [target]!")) spillable = TRUE @@ -151,7 +151,7 @@ /obj/item/reagent_containers/cup/soda_cans/attack_self_secondary(mob/user) if(!is_drainable()) - playsound(src, 'sound/effects/can_shake.ogg', 50, TRUE) + playsound(src, 'sound/effects/can/can_shake.ogg', 50, TRUE) user.visible_message(span_danger("[user] shakes [src]!"), span_danger("You shake up [src]!"), vision_distance=2) fizziness += SODA_FIZZINESS_SHAKE return diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 2149b2fd4c495..a1792a9670db3 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -69,7 +69,7 @@ playsound(src, spray_sound, 50, TRUE, -6) user.changeNext_move(CLICK_CD_RANGE * 2) - user.newtonian_move(get_dir(target, user)) + user.newtonian_move(get_angle(target, user)) return TRUE /// Handles creating a chem puff that travels towards the target atom, exposing reagents to everything it hits on the way. @@ -232,8 +232,8 @@ stream_range = 4 amount_per_transfer_from_this = 5 list_reagents = list(/datum/reagent/consumable/condensedcapsaicin = 50) - pickup_sound = 'sound/items/pepper_spray_pick_up.ogg' - drop_sound = 'sound/items/pepper_spray_drop.ogg' + pickup_sound = 'sound/items/handling/pepper_spray/pepper_spray_pick_up.ogg' + drop_sound = 'sound/items/handling/pepper_spray/pepper_spray_drop.ogg' /obj/item/reagent_containers/spray/pepper/empty //for protolathe printing list_reagents = null diff --git a/code/modules/recycling/conveyor.dm b/code/modules/recycling/conveyor.dm index 82ac4646e0526..b4580a8bc2353 100644 --- a/code/modules/recycling/conveyor.dm +++ b/code/modules/recycling/conveyor.dm @@ -434,7 +434,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /// Updates the switch's `position` and `last_pos` variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions. /obj/machinery/conveyor_switch/proc/update_position(direction) if(position == CONVEYOR_OFF) - playsound(src, 'sound/machines/lever_start.ogg', 40, TRUE) + playsound(src, 'sound/machines/lever/lever_start.ogg', 40, TRUE) if(oneway) //is it a oneway switch position = oneway @@ -444,7 +444,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) else position = CONVEYOR_BACKWARDS else - playsound(src, 'sound/machines/lever_stop.ogg', 40, TRUE) + playsound(src, 'sound/machines/lever/lever_stop.ogg', 40, TRUE) position = CONVEYOR_OFF /obj/machinery/conveyor_switch/proc/on_user_activation(mob/user, direction) @@ -606,7 +606,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/item/stack/conveyor/use(used, transfer, check) . = ..() - playsound(src, 'sound/weapons/genhit.ogg', 30, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 30, TRUE) /obj/item/stack/conveyor/thirty amount = 30 diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 4930136b25bd7..1d1354e865dbc 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -685,6 +685,6 @@ update_appearance() to_chat(user, span_notice("You sweep the pile of garbage into [src].")) - playsound(broom.loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + playsound(broom.loc, 'sound/items/weapons/thudswoosh.ogg', 30, TRUE, -1) #undef SEND_PRESSURE diff --git a/code/modules/recycling/disposal/holder.dm b/code/modules/recycling/disposal/holder.dm index 78469d491912b..fb94e5ced5417 100644 --- a/code/modules/recycling/disposal/holder.dm +++ b/code/modules/recycling/disposal/holder.dm @@ -135,7 +135,7 @@ if(src in escapee.do_afters) return //already trying to escape to_chat(escapee, span_warning("You push against the thin pipe walls...")) - playsound(loc, 'sound/machines/airlock_alien_prying.ogg', vol = 30, vary = FALSE, extrarange = 3) //yeah I know but at least it sounds like metal being bent. + playsound(loc, 'sound/machines/airlock/airlock_alien_prying.ogg', vol = 30, vary = FALSE, extrarange = 3) //yeah I know but at least it sounds like metal being bent. if(!do_after(escapee, 20 SECONDS, get_turf(loc))) return diff --git a/code/modules/recycling/disposal/outlet.dm b/code/modules/recycling/disposal/outlet.dm index 63c3c83edd18c..1ba4b450509a6 100644 --- a/code/modules/recycling/disposal/outlet.dm +++ b/code/modules/recycling/disposal/outlet.dm @@ -86,7 +86,7 @@ if(!I.tool_start_check(user, amount=1, heat_required = HIGH_TEMPERATURE_REQUIRED)) return TRUE - playsound(src, 'sound/items/welder2.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder2.ogg', 100, TRUE) to_chat(user, span_notice("You start slicing the floorweld off [src]...")) if(I.use_tool(src, user, 20)) to_chat(user, span_notice("You slice the floorweld off [src].")) diff --git a/code/modules/recycling/disposal/pipe_sorting.dm b/code/modules/recycling/disposal/pipe_sorting.dm index 90cd583296636..08cb0ac21d6f9 100644 --- a/code/modules/recycling/disposal/pipe_sorting.dm +++ b/code/modules/recycling/disposal/pipe_sorting.dm @@ -66,7 +66,7 @@ else sortTypes |= O.currTag to_chat(user, span_notice("Added \"[GLOB.TAGGERLOCATIONS[O.currTag]]\" filter.")) - playsound(src, 'sound/machines/twobeep_high.ogg', 100, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 100, TRUE) else return ..() diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 280d074c7ff19..3d36ef1eceae9 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -32,7 +32,7 @@ /obj/item/delivery/proc/post_unwrap_contents(mob/user, rip_open = TRUE) var/turf/turf_loc = get_turf(user || src) if(rip_open) - playsound(loc, 'sound/items/poster_ripped.ogg', 50, TRUE) + playsound(loc, 'sound/items/poster/poster_ripped.ogg', 50, TRUE) new /obj/effect/decal/cleanable/wrapping(turf_loc) else playsound(loc, 'sound/items/box_cut.ogg', 50, TRUE) @@ -111,7 +111,7 @@ var/tag = uppertext(GLOB.TAGGERLOCATIONS[dest_tagger.currTag]) to_chat(user, span_notice("*[tag]*")) sort_tag = dest_tagger.currTag - playsound(loc, 'sound/machines/twobeep_high.ogg', 100, TRUE) + playsound(loc, 'sound/machines/beep/twobeep_high.ogg', 100, TRUE) update_appearance() else if(IS_WRITING_UTENSIL(item)) if(!user.can_write(item)) @@ -280,7 +280,7 @@ to_chat(user, span_notice("*HELL*"))//lizard nerf else to_chat(user, span_notice("*HEAVEN*")) - playsound(src, 'sound/machines/twobeep_high.ogg', 100, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 100, TRUE) return BRUTELOSS /** Standard TGUI actions */ diff --git a/code/modules/religion/burdened/psyker.dm b/code/modules/religion/burdened/psyker.dm index b256b4f9d4ac3..f111d04f93013 100644 --- a/code/modules/religion/burdened/psyker.dm +++ b/code/modules/religion/burdened/psyker.dm @@ -128,7 +128,7 @@ desc = "Holy smokes." icon_state = "lucky" force = 10 - fire_sound = 'sound/weapons/gun/revolver/shot.ogg' + fire_sound = 'sound/items/weapons/gun/revolver/shot.ogg' accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/revchap obj_flags = UNIQUE_RENAME custom_materials = null @@ -225,7 +225,7 @@ return user.say("#Oh great [GLOB.deity], give me the ammunition I need!", forced = "ammo prayer") magazine.top_off() - user.playsound_local(get_turf(src), 'sound/magic/magic_block_holy.ogg', 50, TRUE) + user.playsound_local(get_turf(src), 'sound/effects/magic/magic_block_holy.ogg', 50, TRUE) chamber_round() /datum/action/item_action/pray_refill @@ -258,7 +258,7 @@ . = ..() var/roll_them_bones = rand(1,38) if(roll_them_bones == 1 && isliving(target)) - playsound(target, 'sound/machines/synth_yes.ogg', 50, TRUE) + playsound(target, 'sound/machines/synth/synth_yes.ogg', 50, TRUE) playsound(target, pick(list('sound/machines/coindrop.ogg', 'sound/machines/coindrop2.ogg')), 40, TRUE) new /obj/effect/temp_visual/crit(get_turf(target)) @@ -348,7 +348,7 @@ name = "Psychic Booster" desc = "Charge up your mind to shoot firearms faster and home in on your targets. Think smarter, not harder." button_icon_state = "projectile" - sound = 'sound/weapons/gun/shotgun/rack.ogg' + sound = 'sound/items/weapons/gun/shotgun/rack.ogg' school = SCHOOL_PSYCHIC cooldown_time = 1 MINUTES antimagic_flags = MAGIC_RESISTANCE_MIND diff --git a/code/modules/religion/pyre/pyre_rites.dm b/code/modules/religion/pyre/pyre_rites.dm index 79f95ad6af6ae..75aaf1c6286cd 100644 --- a/code/modules/religion/pyre/pyre_rites.dm +++ b/code/modules/religion/pyre/pyre_rites.dm @@ -33,7 +33,7 @@ for(var/obj/item/clothing/head/integrated_helmet in chosen_clothing.contents) //check if the clothing has a hood/helmet integrated and fireproof it if there is one. apply_fireproof(integrated_helmet) apply_fireproof(chosen_clothing) - playsound(get_turf(religious_tool), 'sound/magic/fireball.ogg', 50, TRUE) + playsound(get_turf(religious_tool), 'sound/effects/magic/fireball.ogg', 50, TRUE) chosen_clothing = null //our lord and savior no longer cares about this apparel return TRUE chosen_clothing = null @@ -110,7 +110,7 @@ var/altar_turf = get_turf(religious_tool) for(var/i in 1 to 5) new /obj/item/flashlight/flare/candle/infinite(altar_turf) - playsound(altar_turf, 'sound/magic/fireball.ogg', 50, TRUE) + playsound(altar_turf, 'sound/effects/magic/fireball.ogg', 50, TRUE) return TRUE /datum/religion_rites/blazing_star diff --git a/code/modules/religion/religion_sects.dm b/code/modules/religion/religion_sects.dm index 0789cb2ac2086..b1c055ec9bddb 100644 --- a/code/modules/religion/religion_sects.dm +++ b/code/modules/religion/religion_sects.dm @@ -71,7 +71,7 @@ /datum/religion_sect/proc/can_sacrifice(obj/item/sacrifice, mob/living/chap) . = TRUE if(chap.mind.holy_role == HOLY_ROLE_DEACON) - to_chat(chap, "You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.") + to_chat(chap, span_warning("You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.")) return if(!is_type_in_typecache(sacrifice, desired_items_typecache)) return FALSE @@ -183,7 +183,7 @@ blessed.visible_message(span_notice("[chap] charges [blessed] with the power of [GLOB.deity]!")) to_chat(blessed, span_boldnotice("You feel charged by the power of [GLOB.deity]!")) blessed.add_mood_event("blessing", /datum/mood_event/blessing) - playsound(chap, 'sound/machines/synth_yes.ogg', 25, TRUE, -1) + playsound(chap, 'sound/machines/synth/synth_yes.ogg', 25, TRUE, -1) return TRUE //charge(?) and go diff --git a/code/modules/religion/sparring/ceremonial_gear.dm b/code/modules/religion/sparring/ceremonial_gear.dm index 08ab6940805ce..2c7e73b5a7540 100644 --- a/code/modules/religion/sparring/ceremonial_gear.dm +++ b/code/modules/religion/sparring/ceremonial_gear.dm @@ -12,7 +12,7 @@ greyscale_config_inhand_right = /datum/greyscale_config/ceremonial_blade_righthand greyscale_colors = COLOR_WHITE - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*6) //Defaults to an Iron blade. force = 2 //20 throwforce = 1 //10 @@ -21,7 +21,7 @@ attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") block_chance = 3 //30 - block_sound = 'sound/weapons/parry.ogg' + block_sound = 'sound/items/weapons/parry.ogg' sharpness = SHARP_EDGED max_integrity = 200 material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_GREYSCALE //doesn't affect stats of the weapon as to avoid gamering your opponent with a dope weapon diff --git a/code/modules/research/anomaly/anomaly_refinery.dm b/code/modules/research/anomaly/anomaly_refinery.dm index 1269edb926561..6caa03d6de57a 100644 --- a/code/modules/research/anomaly/anomaly_refinery.dm +++ b/code/modules/research/anomaly/anomaly_refinery.dm @@ -132,7 +132,7 @@ return obj_flags |= EMAGGED - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, vary = FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, vary = FALSE) say("ERROR: Unauthorized firmware access.") return TRUE diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 021c282958d89..a7edd804ff0da 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -139,7 +139,7 @@ /obj/machinery/rnd/destructive_analyzer/proc/unload_item() if(!loaded_item) return FALSE - playsound(loc, 'sound/machines/terminal_insert_disc.ogg', 30, FALSE) + playsound(loc, 'sound/machines/terminal/terminal_insert_disc.ogg', 30, FALSE) loaded_item.forceMove(drop_location()) loaded_item = null update_appearance(UPDATE_ICON) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index ded27054695cc..998995436ad52 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -758,7 +758,7 @@ /obj/item/relic/proc/scrambliticus(mob/user) new /obj/effect/temp_visual/circle_wave/bioscrambler/light(get_turf(src)) - playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) + playsound(src, 'sound/effects/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) for(var/mob/living/carbon/nearby in range(2, get_turf(src))) //needs get_turf() to work nearby.bioscramble(name) playsound(nearby, SFX_SPARKS, rand(25,50), TRUE, SHORT_RANGE_SOUND_EXTRARANGE) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 4d90e3cd34b29..f503f158a0e6b 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -123,7 +123,7 @@ if(design_delta > 0) say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].") - playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) update_static_data_for_all_viewers() diff --git a/code/modules/research/ordnance/doppler_array.dm b/code/modules/research/ordnance/doppler_array.dm index 6b1be6769844d..34ecb6b10891b 100644 --- a/code/modules/research/ordnance/doppler_array.dm +++ b/code/modules/research/ordnance/doppler_array.dm @@ -89,7 +89,7 @@ if(inserted_disk.add_file(record_data)) playsound(src, 'sound/machines/ping.ogg', 25) else - playsound(src, 'sound/machines/terminal_error.ogg', 25) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 25) /** * Checks a specified tachyon record for fitting reactions, then returns a list with diff --git a/code/modules/research/ordnance/tank_compressor.dm b/code/modules/research/ordnance/tank_compressor.dm index 89f38ee4a32e0..dcaefc6ad3a98 100644 --- a/code/modules/research/ordnance/tank_compressor.dm +++ b/code/modules/research/ordnance/tank_compressor.dm @@ -201,7 +201,7 @@ if(inserted_disk.add_file(record_data)) playsound(src, 'sound/machines/ping.ogg', 25) else - playsound(src, 'sound/machines/terminal_error.ogg', 25) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 25) /// Ejecting a tank. Also called on insertion to clear previous tanks. /obj/machinery/atmospherics/components/binary/tank_compressor/proc/eject_tank(mob/user) diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 46bd8746663b8..a82e818758ce7 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -11,7 +11,7 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' w_class = WEIGHT_CLASS_HUGE var/works_from_distance = FALSE - var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/rped.ogg' + var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/tools/rped.ogg' var/alt_sound = null /obj/item/storage/part_replacer/Initialize(mapload) @@ -70,8 +70,8 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good inhand_icon_state = "BS_RPED" w_class = WEIGHT_CLASS_NORMAL works_from_distance = TRUE - pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/pshoom.ogg' - alt_sound = 'sound/items/pshoom_2.ogg' + pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/pshoom/pshoom.ogg' + alt_sound = 'sound/items/pshoom/pshoom_2.ogg' /obj/item/storage/part_replacer/bluespace/Initialize(mapload) . = ..() diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm index b07299813d612..c47ea89eaac5d 100644 --- a/code/modules/research/xenobiology/crossbreeding/_misc.dm +++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm @@ -154,12 +154,12 @@ Slimecrossing Items /obj/structure/ice_stasis/Initialize(mapload) . = ..() - playsound(src, 'sound/magic/ethereal_exit.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE) /obj/structure/ice_stasis/Destroy() for(var/atom/movable/M in contents) M.forceMove(loc) - playsound(src, 'sound/effects/glassbr3.ogg', 50, TRUE) + playsound(src, 'sound/effects/glass/glassbr3.ogg', 50, TRUE) return ..() //Gold capture device - Chilling Gold diff --git a/code/modules/research/xenobiology/crossbreeding/_potions.dm b/code/modules/research/xenobiology/crossbreeding/_potions.dm index 16203cd3462fd..c33868e079711 100644 --- a/code/modules/research/xenobiology/crossbreeding/_potions.dm +++ b/code/modules/research/xenobiology/crossbreeding/_potions.dm @@ -170,6 +170,7 @@ Slimecrossing Potions if (isclothing(clothing)) var/obj/item/clothing/clothing_real = clothing clothing_real.clothing_flags |= LAVAPROTECT + clothing_real.resistance_flags |= FIRE_PROOF uses-- if(uses <= 0) qdel(src) diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm index 152a90f9795eb..3cc46b9be32ec 100644 --- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm +++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm @@ -32,15 +32,15 @@ Slimecrossing Weapons damtype = pick(BRUTE, BURN, TOX, OXY) switch(damtype) if(BRUTE) - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = string_list(list("slashes", "slices", "cuts")) attack_verb_simple = string_list(list("slash", "slice", "cut")) if(BURN) - hitsound = 'sound/weapons/sear.ogg' + hitsound = 'sound/items/weapons/sear.ogg' attack_verb_continuous = string_list(list("burns", "singes", "heats")) attack_verb_simple = string_list(list("burn", "singe", "heat")) if(TOX) - hitsound = 'sound/weapons/pierce.ogg' + hitsound = 'sound/items/weapons/pierce.ogg' attack_verb_continuous = string_list(list("poisons", "doses", "toxifies")) attack_verb_simple = string_list(list("poison", "dose", "toxify")) if(OXY) @@ -66,7 +66,7 @@ Slimecrossing Weapons attack_verb_simple = list("bash", "pound", "slam") item_flags = SLOWS_WHILE_IN_HAND breakable_by_damage = FALSE - shield_bash_sound = 'sound/effects/glassknock.ogg' + shield_bash_sound = 'sound/effects/glass/glassknock.ogg' /datum/armor/shield_adamantineshield melee = 50 @@ -97,7 +97,7 @@ Slimecrossing Weapons max_charges = 1 //Recharging costs blood. recharge_rate = 1 ammo_type = /obj/item/ammo_casing/magic/bloodchill - fire_sound = 'sound/effects/attackblob.ogg' + fire_sound = 'sound/effects/blob/attackblob.ogg' /obj/item/gun/magic/bloodchill/Initialize(mapload) . = ..() diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index 72ee9d98516eb..c3eb811fa4270 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -19,8 +19,8 @@ Burning extracts: return reagents.remove_reagent(/datum/reagent/toxin/plasma, 10) to_chat(user, span_notice("You squeeze the extract, and it absorbs the plasma!")) - playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) - playsound(src, 'sound/magic/fireball.ogg', 50, TRUE) + playsound(src, 'sound/effects/bubbles/bubbles.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/fireball.ogg', 50, TRUE) do_effect(user) /obj/item/slimecross/burning/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..() @@ -93,7 +93,7 @@ Burning extracts: /obj/item/slimecross/burning/yellow/do_effect(mob/user) user.visible_message(span_danger("[src] explodes into an electrical field!")) - playsound(get_turf(src), 'sound/weapons/zapbang.ogg', 50, TRUE) + playsound(get_turf(src), 'sound/items/weapons/zapbang.ogg', 50, TRUE) for(var/mob/living/M in range(4,get_turf(user))) if(M != user) var/mob/living/carbon/C = M @@ -263,7 +263,7 @@ Burning extracts: /// Inflicts a blastwave upon every mob within a small radius. /obj/item/slimecross/burning/oil/proc/boom() var/turf/T = get_turf(src) - playsound(T, 'sound/effects/explosion2.ogg', 200, TRUE) + playsound(T, 'sound/effects/explosion/explosion2.ogg', 200, TRUE) for(var/mob/living/target in range(2, T)) new /obj/effect/temp_visual/explosion(get_turf(target)) SSexplosions.med_mov_atom += target diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index ca026ae9f33f7..bdc19a70405d8 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -20,7 +20,7 @@ Charged extracts: return reagents.remove_reagent(/datum/reagent/toxin/plasma, 10) to_chat(user, span_notice("You squeeze the extract, and it absorbs the plasma!")) - playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) + playsound(src, 'sound/effects/bubbles/bubbles.ogg', 50, TRUE) playsound(src, 'sound/effects/light_flicker.ogg', 50, TRUE) do_effect(user) diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index 70784f5b90f3e..0a22cd0380f5e 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -19,8 +19,8 @@ Chilling extracts: return reagents.remove_reagent(/datum/reagent/toxin/plasma, 10) to_chat(user, span_notice("You squeeze the extract, and it absorbs the plasma!")) - playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) - playsound(src, 'sound/effects/glassbr1.ogg', 50, TRUE) + playsound(src, 'sound/effects/bubbles/bubbles.ogg', 50, TRUE) + playsound(src, 'sound/effects/glass/glassbr1.ogg', 50, TRUE) do_effect(user) /obj/item/slimecross/chilling/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..() diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm index 9d5ed59fcec0d..4f6135b65378e 100644 --- a/code/modules/research/xenobiology/crossbreeding/industrial.dm +++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm @@ -40,12 +40,12 @@ Industrial extracts: plasmaabsorbed += 1 if(plasmaabsorbed >= plasmarequired) - playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE) + playsound(src, 'sound/effects/blob/attackblob.ogg', 50, TRUE) plasmaabsorbed -= plasmarequired for(var/i in 1 to itemamount) do_after_spawn(new itempath(get_turf(src))) else if(IsWorking) - playsound(src, 'sound/effects/bubbles.ogg', 5, TRUE) + playsound(src, 'sound/effects/bubbles/bubbles.ogg', 5, TRUE) if(IsWorking) icon_state = "industrial" else diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index d04838f79ec0d..6cf8d2745ce6c 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -228,7 +228,7 @@ Regenerative extracts: effect_desc = "Fully heals the target and flashes everyone in sight." /obj/item/slimecross/regenerative/oil/core_effect(mob/living/target, mob/user) - playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 100, TRUE) for(var/mob/living/L in view(user,7)) L.flash_act() diff --git a/code/modules/research/xenobiology/vatgrowing/vatgrower.dm b/code/modules/research/xenobiology/vatgrowing/vatgrower.dm index 5b35bd10edf5e..8d6d1904f85d6 100644 --- a/code/modules/research/xenobiology/vatgrowing/vatgrower.dm +++ b/code/modules/research/xenobiology/vatgrowing/vatgrower.dm @@ -116,7 +116,7 @@ biological_sample.sample_layers = petri.sample.sample_layers biological_sample.sample_color = petri.sample.sample_color balloon_alert(user, "added sample") - playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) + playsound(src, 'sound/effects/bubbles/bubbles.ogg', 50, TRUE) update_appearance() RegisterSignal(biological_sample, COMSIG_SAMPLE_GROWTH_COMPLETED, PROC_REF(on_sample_growth_completed)) return ITEM_INTERACT_SUCCESS diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 72d79b20ec53f..1fc21eac65fae 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -81,7 +81,7 @@ target_slime.applied_crossbreed_amount++ qdel(src) to_chat(user, span_notice("You feed the slime [src], [target_slime.applied_crossbreed_amount == 1 ? "starting to mutate its core." : "further mutating its core."]")) - playsound(target_slime, 'sound/effects/attackblob.ogg', 50, TRUE) + playsound(target_slime, 'sound/effects/blob/attackblob.ogg', 50, TRUE) if(target_slime.applied_crossbreed_amount >= SLIME_EXTRACT_CROSSING_REQUIRED) target_slime.spawn_corecross() @@ -508,7 +508,7 @@ to_chat(user, span_warning("You feel your body vibrating...")) if(do_after(user, 2.5 SECONDS, target = user)) to_chat(user, span_warning("You teleport!")) - do_teleport(user, get_turf(user), 6, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) + do_teleport(user, get_turf(user), 6, asoundin = 'sound/items/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) return 300 if(SLIME_ACTIVATE_MAJOR) @@ -524,7 +524,7 @@ if(teleport_x && teleport_y && teleport_z) var/turf/T = locate(teleport_x, teleport_y, teleport_z) to_chat(user, span_notice("You snap back to your anchor point!")) - do_teleport(user, T, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) + do_teleport(user, T, asoundin = 'sound/items/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) return 450 diff --git a/code/modules/security_levels/security_level_datums.dm b/code/modules/security_levels/security_level_datums.dm index d5a2e74e8080e..4e0ed2473125f 100644 --- a/code/modules/security_levels/security_level_datums.dm +++ b/code/modules/security_levels/security_level_datums.dm @@ -49,7 +49,7 @@ /datum/security_level/green name = "green" announcement_color = "green" - sound = 'sound/misc/notice2.ogg' // Friendly beep + sound = 'sound/announcer/notice/notice2.ogg' // Friendly beep number_level = SEC_LEVEL_GREEN status_display_icon_state = "greenalert" fire_alarm_light_color = LIGHT_COLOR_BLUEGREEN @@ -64,7 +64,7 @@ /datum/security_level/blue name = "blue" announcement_color = "blue" - sound = 'sound/misc/notice1.ogg' // Angry alarm + sound = 'sound/announcer/notice/notice1.ogg' // Angry alarm number_level = SEC_LEVEL_BLUE status_display_icon_state = "bluealert" fire_alarm_light_color = LIGHT_COLOR_ELECTRIC_CYAN @@ -80,7 +80,7 @@ /datum/security_level/red name = "red" announcement_color = "red" - sound = 'sound/misc/notice3.ogg' // More angry alarm + sound = 'sound/announcer/notice/notice3.ogg' // More angry alarm number_level = SEC_LEVEL_RED status_display_icon_state = "redalert" fire_alarm_light_color = LIGHT_COLOR_FLARE @@ -96,7 +96,7 @@ /datum/security_level/delta name = "delta" announcement_color = "purple" - sound = 'sound/misc/airraid.ogg' // Air alarm to signify importance + sound = 'sound/announcer/alarm/airraid.ogg' // Air alarm to signify importance number_level = SEC_LEVEL_DELTA status_display_icon_state = "deltaalert" fire_alarm_light_color = LIGHT_COLOR_INTENSE_RED diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index d9a21cf5e2363..75baee5c39260 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -10,7 +10,7 @@ /obj/docking_port/mobile/assault_pod/initiate_docking(obj/docking_port/stationary/S1) . = ..() if(!istype(S1, /obj/docking_port/stationary/transit)) - playsound(get_turf(src.loc), 'sound/effects/explosion1.ogg',50,TRUE) + playsound(get_turf(src.loc), 'sound/effects/explosion/explosion1.ogg',50,TRUE) diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 5d2242a614407..8e59c63cfbd70 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -136,7 +136,7 @@ minor_announce("Early launch authorization revoked, [remaining] authorizations needed") acted_recently += user - ui_interact(user) + SStgui.update_user_uis(user, src) /obj/machinery/computer/emergency_shuttle/proc/authorize(mob/living/user, source) var/obj/item/card/id/ID = user.get_idcard(TRUE) @@ -159,7 +159,7 @@ /obj/machinery/computer/emergency_shuttle/proc/clear_recent_action(mob/user) acted_recently -= user if (!QDELETED(user)) - ui_interact(user) + SStgui.update_user_uis(user, src) /obj/machinery/computer/emergency_shuttle/process() // Launch check is in process in case auth_need changes for some reason @@ -599,7 +599,7 @@ destination_dock = "emergency_syndicate" minor_announce("Corruption detected in \ shuttle navigation protocols. Please contact your \ - supervisor.", "SYSTEM ERROR:", sound_override = 'sound/misc/announce_syndi.ogg') + supervisor.", "SYSTEM ERROR:", sound_override = 'sound/announcer/announcement/announce_syndi.ogg') dock_id(destination_dock) mode = SHUTTLE_ENDGAME diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index d3184cc96c62f..88272f6727659 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -358,7 +358,7 @@ var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control var/obj/machinery/computer/camera_advanced/shuttle_docker/console = remote_eye.origin - playsound(console, 'sound/machines/terminal_prompt_deny.ogg', 25, FALSE) + playsound(console, 'sound/machines/terminal/terminal_prompt_deny.ogg', 25, FALSE) var/list/L = list() for(var/V in SSshuttle.stationary_docking_ports) @@ -383,10 +383,10 @@ else L["([L.len]) [nav_beacon.name] locked"] = null - playsound(console, 'sound/machines/terminal_prompt.ogg', 25, FALSE) + playsound(console, 'sound/machines/terminal/terminal_prompt.ogg', 25, FALSE) var/selected = tgui_input_list(usr, "Choose location to jump to", "Locations", sort_list(L)) if(isnull(selected)) - playsound(console, 'sound/machines/terminal_prompt_deny.ogg', 25, FALSE) + playsound(console, 'sound/machines/terminal/terminal_prompt_deny.ogg', 25, FALSE) return if(QDELETED(src) || QDELETED(owner) || !isliving(owner)) return @@ -394,7 +394,7 @@ var/turf/T = get_turf(L[selected]) if(isnull(T)) return - playsound(console, 'sound/machines/terminal_prompt_confirm.ogg', 25, FALSE) + playsound(console, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 25, FALSE) remote_eye.setLoc(T) to_chat(owner, span_notice("Jumped to [selected].")) owner.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash/static) diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 08e0b0d269950..565655a441602 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -62,8 +62,8 @@ shuttlePortId = "syndicate_custom" jump_to_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1) view_range = 5.5 - x_offset = -7 - y_offset = -1 + x_offset = 7 //flip both offsets because the shuttle is mapped in facing SOUTH, not NORTH; the docking port is also rotated + y_offset = 1 whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava, /turf/closed/mineral, /turf/open/openspace, /turf/open/misc) see_hidden = TRUE circuit = /obj/item/circuitboard/computer/syndicate_shuttle_docker diff --git a/code/modules/spells/spell_types/aoe_spell/area_conversion.dm b/code/modules/spells/spell_types/aoe_spell/area_conversion.dm index a03b4c9ab21a4..ed3598d2fb5cc 100644 --- a/code/modules/spells/spell_types/aoe_spell/area_conversion.dm +++ b/code/modules/spells/spell_types/aoe_spell/area_conversion.dm @@ -19,5 +19,5 @@ return RANGE_TURFS(aoe_radius, center) /datum/action/cooldown/spell/aoe/area_conversion/cast_on_thing_in_aoe(turf/victim, atom/caster) - playsound(victim, 'sound/items/welder.ogg', 75, TRUE) + playsound(victim, 'sound/items/tools/welder.ogg', 75, TRUE) victim.narsie_act(FALSE, TRUE, 100 - (get_dist(victim, caster) * 25)) diff --git a/code/modules/spells/spell_types/aoe_spell/knock.dm b/code/modules/spells/spell_types/aoe_spell/knock.dm index ede1462633b03..8e4f453b5d646 100644 --- a/code/modules/spells/spell_types/aoe_spell/knock.dm +++ b/code/modules/spells/spell_types/aoe_spell/knock.dm @@ -3,7 +3,7 @@ desc = "This spell opens nearby doors and closets." button_icon_state = "knock" - sound = 'sound/magic/knock.ogg' + sound = 'sound/effects/magic/knock.ogg' school = SCHOOL_TRANSMUTATION cooldown_time = 10 SECONDS cooldown_reduction_per_rank = 2 SECONDS diff --git a/code/modules/spells/spell_types/aoe_spell/magic_missile.dm b/code/modules/spells/spell_types/aoe_spell/magic_missile.dm index 18278fb593a94..02f19f45323c2 100644 --- a/code/modules/spells/spell_types/aoe_spell/magic_missile.dm +++ b/code/modules/spells/spell_types/aoe_spell/magic_missile.dm @@ -2,7 +2,7 @@ name = "Magic Missile" desc = "This spell fires several, slow moving, magic projectiles at nearby targets." button_icon_state = "magicm" - sound = 'sound/magic/magic_missile.ogg' + sound = 'sound/effects/magic/magic_missile.ogg' school = SCHOOL_EVOCATION cooldown_time = 20 SECONDS diff --git a/code/modules/spells/spell_types/aoe_spell/repulse.dm b/code/modules/spells/spell_types/aoe_spell/repulse.dm index 259f20ee9ba0a..c56ffd1180b4c 100644 --- a/code/modules/spells/spell_types/aoe_spell/repulse.dm +++ b/code/modules/spells/spell_types/aoe_spell/repulse.dm @@ -73,7 +73,7 @@ name = "Repulse" desc = "This spell throws everything around the user away." button_icon_state = "repulse" - sound = 'sound/magic/repulse.ogg' + sound = 'sound/effects/magic/repulse.ogg' school = SCHOOL_EVOCATION invocation = "GITTAH WEIGH" @@ -91,7 +91,7 @@ button_icon = 'icons/mob/actions/actions_xeno.dmi' button_icon_state = "tailsweep" panel = "Alien" - sound = 'sound/magic/tail_swing.ogg' + sound = 'sound/effects/magic/tail_swing.ogg' cooldown_time = 15 SECONDS spell_requirements = NONE @@ -106,7 +106,7 @@ /datum/action/cooldown/spell/aoe/repulse/xeno/cast(atom/cast_on) if(iscarbon(cast_on)) var/mob/living/carbon/carbon_caster = cast_on - playsound(get_turf(carbon_caster), 'sound/voice/hiss5.ogg', 80, TRUE, TRUE) + playsound(get_turf(carbon_caster), 'sound/mobs/non-humanoids/hiss/hiss5.ogg', 80, TRUE, TRUE) carbon_caster.spin(6, 1) return ..() diff --git a/code/modules/spells/spell_types/aoe_spell/sacred_flame.dm b/code/modules/spells/spell_types/aoe_spell/sacred_flame.dm index 450544a7a1f66..e0041525839dd 100644 --- a/code/modules/spells/spell_types/aoe_spell/sacred_flame.dm +++ b/code/modules/spells/spell_types/aoe_spell/sacred_flame.dm @@ -2,7 +2,7 @@ name = "Sacred Flame" desc = "Makes everyone around you more flammable, and lights yourself on fire." button_icon_state = "sacredflame" - sound = 'sound/magic/fireball.ogg' + sound = 'sound/effects/magic/fireball.ogg' school = SCHOOL_EVOCATION cooldown_time = 6 SECONDS diff --git a/code/modules/spells/spell_types/charged/tesla_blast.dm b/code/modules/spells/spell_types/charged/tesla_blast.dm index efad0e4a69241..84f9cba8153bc 100644 --- a/code/modules/spells/spell_types/charged/tesla_blast.dm +++ b/code/modules/spells/spell_types/charged/tesla_blast.dm @@ -3,7 +3,7 @@ desc = "Charge up a tesla arc and release it at random nearby targets! \ You can move freely while it charges. The arc jumps between targets and can knock them down." button_icon_state = "lightning" - sound = 'sound/magic/lightningbolt.ogg' + sound = 'sound/effects/magic/lightningbolt.ogg' cooldown_time = 30 SECONDS cooldown_reduction_per_rank = 6.75 SECONDS @@ -15,7 +15,7 @@ channel_message = span_notice("You start gathering power...") charge_overlay_icon = 'icons/effects/effects.dmi' charge_overlay_state = "electricity" - charge_sound = 'sound/magic/lightning_chargeup.ogg' + charge_sound = 'sound/effects/magic/lightning_chargeup.ogg' target_radius = 7 max_beam_bounces = 5 @@ -27,7 +27,7 @@ /// Zaps a target, the bolt originating from origin. /datum/action/cooldown/spell/charged/beam/tesla/send_beam(atom/origin, mob/living/carbon/to_beam, bolt_energy = 30, bounces = 5) origin.Beam(to_beam, icon_state = "lightning[rand(1,12)]", time = 0.5 SECONDS) - playsound(get_turf(to_beam), 'sound/magic/lightningshock.ogg', 50, TRUE, -1) + playsound(get_turf(to_beam), 'sound/effects/magic/lightningshock.ogg', 50, TRUE, -1) if(to_beam.can_block_magic(antimagic_flags)) to_beam.visible_message( diff --git a/code/modules/spells/spell_types/conjure/_conjure.dm b/code/modules/spells/spell_types/conjure/_conjure.dm index 99f0c5af821d5..5501f1055ca2e 100644 --- a/code/modules/spells/spell_types/conjure/_conjure.dm +++ b/code/modules/spells/spell_types/conjure/_conjure.dm @@ -1,5 +1,5 @@ /datum/action/cooldown/spell/conjure - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' school = SCHOOL_CONJURATION /// The radius around the caster the items will appear. 0 = spawns on top of the caster. diff --git a/code/modules/spells/spell_types/conjure/bees.dm b/code/modules/spells/spell_types/conjure/bees.dm index 58062f1e8fe98..28636cde70967 100644 --- a/code/modules/spells/spell_types/conjure/bees.dm +++ b/code/modules/spells/spell_types/conjure/bees.dm @@ -4,7 +4,7 @@ instantly summoning a swarm of bees to your location. \ These bees are NOT friendly to anyone." button_icon_state = "bee" - sound = 'sound/voice/moth/scream_moth.ogg' + sound = 'sound/mobs/humanoids/moth/scream_moth.ogg' school = SCHOOL_CONJURATION cooldown_time = 1 MINUTES diff --git a/code/modules/spells/spell_types/conjure/carp.dm b/code/modules/spells/spell_types/conjure/carp.dm index 5411030e75cb1..8525791405108 100644 --- a/code/modules/spells/spell_types/conjure/carp.dm +++ b/code/modules/spells/spell_types/conjure/carp.dm @@ -1,7 +1,7 @@ /datum/action/cooldown/spell/conjure/carp name = "Summon Carp" desc = "This spell conjures a simple carp." - sound = 'sound/magic/summon_karp.ogg' + sound = 'sound/effects/magic/summon_karp.ogg' school = SCHOOL_CONJURATION cooldown_time = 2 MINUTES diff --git a/code/modules/spells/spell_types/conjure/cheese.dm b/code/modules/spells/spell_types/conjure/cheese.dm index d9c90d1dbac34..c017ebb6c2039 100644 --- a/code/modules/spells/spell_types/conjure/cheese.dm +++ b/code/modules/spells/spell_types/conjure/cheese.dm @@ -1,7 +1,7 @@ /datum/action/cooldown/spell/conjure/cheese name = "Summon Cheese" desc = "This spell conjures a bunch of cheese wheels. What the hell?" - sound = 'sound/magic/summonitems_generic.ogg' + sound = 'sound/effects/magic/summonitems_generic.ogg' button_icon_state = "cheese" school = SCHOOL_CONJURATION diff --git a/code/modules/spells/spell_types/conjure/constructs.dm b/code/modules/spells/spell_types/conjure/constructs.dm index 2af3034f07881..72381d0693a37 100644 --- a/code/modules/spells/spell_types/conjure/constructs.dm +++ b/code/modules/spells/spell_types/conjure/constructs.dm @@ -3,7 +3,7 @@ desc = "This spell conjures a construct which may be controlled by Shades." button_icon = 'icons/mob/actions/actions_cult.dmi' button_icon_state = "artificer" - sound = 'sound/magic/summonitems_generic.ogg' + sound = 'sound/effects/magic/summonitems_generic.ogg' school = SCHOOL_CONJURATION cooldown_time = 1 MINUTES diff --git a/code/modules/spells/spell_types/conjure/creatures.dm b/code/modules/spells/spell_types/conjure/creatures.dm index 9aeede68a6654..1fcd11c579db8 100644 --- a/code/modules/spells/spell_types/conjure/creatures.dm +++ b/code/modules/spells/spell_types/conjure/creatures.dm @@ -1,7 +1,7 @@ /datum/action/cooldown/spell/conjure/creature name = "Summon Creature Swarm" desc = "This spell tears the fabric of reality, allowing horrific daemons to spill forth." - sound = 'sound/magic/summonitems_generic.ogg' + sound = 'sound/effects/magic/summonitems_generic.ogg' school = SCHOOL_CONJURATION cooldown_time = 2 MINUTES diff --git a/code/modules/spells/spell_types/conjure/ed_swarm.dm b/code/modules/spells/spell_types/conjure/ed_swarm.dm index db122e4c846a7..3341f3a6aace6 100644 --- a/code/modules/spells/spell_types/conjure/ed_swarm.dm +++ b/code/modules/spells/spell_types/conjure/ed_swarm.dm @@ -19,4 +19,4 @@ summoned_bot.bot_mode_flags |= BOT_COVER_EMAGGED summoned_bot.projectile = /obj/projectile/beam/laser - summoned_bot.shoot_sound = 'sound/weapons/laser.ogg' + summoned_bot.shoot_sound = 'sound/items/weapons/laser.ogg' diff --git a/code/modules/spells/spell_types/conjure/link_worlds.dm b/code/modules/spells/spell_types/conjure/link_worlds.dm index f227fc1a13e9a..242227c4d0a1d 100644 --- a/code/modules/spells/spell_types/conjure/link_worlds.dm +++ b/code/modules/spells/spell_types/conjure/link_worlds.dm @@ -1,15 +1,14 @@ /datum/action/cooldown/spell/conjure/link_worlds name = "Link Worlds" desc = "A whole new dimension for you to play with! They won't be happy about it, though." - - sound = 'sound/weapons/marauder.ogg' + sound = 'sound/items/weapons/marauder.ogg' + button_icon = 'icons/mob/simple/lavaland/nest.dmi' + button_icon_state = "nether" cooldown_time = 1 MINUTES cooldown_reduction_per_rank = 10 SECONDS - - invocation = "WTF" + invocation = "FL'NT N' ST'L" invocation_type = INVOCATION_SHOUT spell_requirements = NONE - summon_radius = 1 summon_type = list(/obj/structure/spawner/nether) summon_amount = 1 diff --git a/code/modules/spells/spell_types/conjure/simian.dm b/code/modules/spells/spell_types/conjure/simian.dm index 9fef5629d0379..b64a34f847ea7 100644 --- a/code/modules/spells/spell_types/conjure/simian.dm +++ b/code/modules/spells/spell_types/conjure/simian.dm @@ -4,7 +4,7 @@ summons monkeys and gorillas that will promptly flip out and attack everything in sight. Fun! \ Their lesser, easily manipulable minds will be convinced you are one of their allies, but only for a minute. Unless you also are a monkey." button_icon_state = "simian" - sound = 'sound/ambience/antag/monkey.ogg' + sound = 'sound/music/antag/monkey.ogg' school = SCHOOL_CONJURATION cooldown_time = 1.5 MINUTES diff --git a/code/modules/spells/spell_types/jaunt/bloodcrawl.dm b/code/modules/spells/spell_types/jaunt/bloodcrawl.dm index f61e48e889672..2795efc2b201b 100644 --- a/code/modules/spells/spell_types/jaunt/bloodcrawl.dm +++ b/code/modules/spells/spell_types/jaunt/bloodcrawl.dm @@ -101,7 +101,7 @@ jaunter.put_in_hands(right_hand) blood.visible_message(span_warning("[jaunter] sinks into [blood]!")) - playsound(jaunt_turf, 'sound/magic/enter_blood.ogg', 50, TRUE, -1) + playsound(jaunt_turf, 'sound/effects/magic/enter_blood.ogg', 50, TRUE, -1) jaunter.extinguish_mob() REMOVE_TRAIT(jaunter, TRAIT_NO_TRANSFORM, REF(src)) @@ -140,7 +140,7 @@ /// Adds an coloring effect to mobs which exit blood crawl. /datum/action/cooldown/spell/jaunt/bloodcrawl/proc/exit_blood_effect(mob/living/exited) var/turf/landing_turf = get_turf(exited) - playsound(landing_turf, 'sound/magic/exit_blood.ogg', 50, TRUE, -1) + playsound(landing_turf, 'sound/effects/magic/exit_blood.ogg', 50, TRUE, -1) // Make the mob have the color of the blood pool it came out of var/obj/effect/decal/cleanable/came_from = locate() in landing_turf @@ -161,7 +161,7 @@ desc = "Allows you to phase in and out of existance via pools of blood. If you are dragging someone in critical or dead, \ they will be consumed by you, fully healing you." /// The sound played when someone's consumed. - var/consume_sound = 'sound/magic/demon_consume.ogg' + var/consume_sound = 'sound/effects/magic/demon_consume.ogg' /// consume count (statistics and stuff) var/consume_count = 0 /// Apply damage every 20 seconds if we bloodcrawling diff --git a/code/modules/spells/spell_types/jaunt/ethereal_jaunt.dm b/code/modules/spells/spell_types/jaunt/ethereal_jaunt.dm index 43e1f9036ee43..e020ec1d5b16f 100644 --- a/code/modules/spells/spell_types/jaunt/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/jaunt/ethereal_jaunt.dm @@ -2,14 +2,14 @@ name = "Ethereal Jaunt" desc = "This spell turns your form ethereal, temporarily making you invisible and able to pass through walls." button_icon_state = "jaunt" - sound = 'sound/magic/ethereal_enter.ogg' + sound = 'sound/effects/magic/ethereal_enter.ogg' cooldown_time = 30 SECONDS cooldown_reduction_per_rank = 5 SECONDS jaunt_type = /obj/effect/dummy/phased_mob/spell_jaunt - var/exit_jaunt_sound = 'sound/magic/ethereal_exit.ogg' + var/exit_jaunt_sound = 'sound/effects/magic/ethereal_exit.ogg' /// For how long are we jaunting? var/jaunt_duration = 5 SECONDS /// For how long we become immobilized after exiting the jaunt. diff --git a/code/modules/spells/spell_types/list_target/telepathy.dm b/code/modules/spells/spell_types/list_target/telepathy.dm index 861fc49732dfc..9f3694c03b41b 100644 --- a/code/modules/spells/spell_types/list_target/telepathy.dm +++ b/code/modules/spells/spell_types/list_target/telepathy.dm @@ -48,7 +48,7 @@ to_chat(cast_on, "You hear a voice in your head... [formatted_message]") else owner.balloon_alert(owner, "transmission blocked!") - to_chat(owner, "Something has blocked your transmission!") + to_chat(owner, span_warning("Something has blocked your transmission!")) failure_message_for_ghosts = " (blocked by antimagic)" for(var/mob/dead/ghost as anything in GLOB.dead_mob_list) diff --git a/code/modules/spells/spell_types/madness_curse.dm b/code/modules/spells/spell_types/madness_curse.dm index 91122b387bba9..d186756b1c10e 100644 --- a/code/modules/spells/spell_types/madness_curse.dm +++ b/code/modules/spells/spell_types/madness_curse.dm @@ -22,7 +22,7 @@ GLOBAL_VAR_INIT(curse_of_madness_triggered, FALSE) give_madness(to_curse, message) /proc/give_madness(mob/living/carbon/human/to_curse, message) - to_curse.playsound_local(get_turf(to_curse), 'sound/magic/curse.ogg', 40, 1) + to_curse.playsound_local(get_turf(to_curse), 'sound/effects/magic/curse.ogg', 40, 1) to_chat(to_curse, span_reallybig(span_hypnophrase(message))) to_chat(to_curse, span_warning("Your mind shatters!")) switch(rand(1, 10)) diff --git a/code/modules/spells/spell_types/pointed/_pointed.dm b/code/modules/spells/spell_types/pointed/_pointed.dm index edf3dab2179d4..9189106d87424 100644 --- a/code/modules/spells/spell_types/pointed/_pointed.dm +++ b/code/modules/spells/spell_types/pointed/_pointed.dm @@ -143,7 +143,7 @@ var/turf/caster_front_turf = get_step(owner, owner.dir) fire_projectile(cast_on) - owner.newtonian_move(get_dir(caster_front_turf, caster_turf)) + owner.newtonian_move(get_angle(caster_front_turf, caster_turf)) if(current_amount <= 0) unset_click_ability(owner, refund_cooldown = FALSE) diff --git a/code/modules/spells/spell_types/pointed/abyssal_gaze.dm b/code/modules/spells/spell_types/pointed/abyssal_gaze.dm index a7336ef7834aa..a117e577e463c 100644 --- a/code/modules/spells/spell_types/pointed/abyssal_gaze.dm +++ b/code/modules/spells/spell_types/pointed/abyssal_gaze.dm @@ -34,7 +34,7 @@ return FALSE to_chat(cast_on, span_userdanger("A freezing darkness surrounds you...")) - cast_on.playsound_local(get_turf(cast_on), 'sound/hallucinations/i_see_you1.ogg', 50, 1) + cast_on.playsound_local(get_turf(cast_on), 'sound/effects/hallucinations/i_see_you1.ogg', 50, 1) owner.playsound_local(get_turf(owner), 'sound/effects/ghost2.ogg', 50, 1) cast_on.adjust_temp_blindness(blind_duration) if(ishuman(cast_on)) diff --git a/code/modules/spells/spell_types/pointed/blind.dm b/code/modules/spells/spell_types/pointed/blind.dm index 982cb9be5346e..208564d250a84 100644 --- a/code/modules/spells/spell_types/pointed/blind.dm +++ b/code/modules/spells/spell_types/pointed/blind.dm @@ -4,7 +4,7 @@ button_icon_state = "blind" ranged_mousepointer = 'icons/effects/mouse_pointers/blind_target.dmi' - sound = 'sound/magic/blind.ogg' + sound = 'sound/effects/magic/blind.ogg' school = SCHOOL_TRANSMUTATION cooldown_time = 30 SECONDS cooldown_reduction_per_rank = 6.25 SECONDS diff --git a/code/modules/spells/spell_types/pointed/fireball.dm b/code/modules/spells/spell_types/pointed/fireball.dm index e818de97501db..52b80b8ad6411 100644 --- a/code/modules/spells/spell_types/pointed/fireball.dm +++ b/code/modules/spells/spell_types/pointed/fireball.dm @@ -3,7 +3,7 @@ desc = "This spell fires an explosive fireball at a target." button_icon_state = "fireball0" - sound = 'sound/magic/fireball.ogg' + sound = 'sound/effects/magic/fireball.ogg' school = SCHOOL_EVOCATION cooldown_time = 6 SECONDS cooldown_reduction_per_rank = 1 SECONDS // 1 second reduction per rank diff --git a/code/modules/spells/spell_types/pointed/lightning_bolt.dm b/code/modules/spells/spell_types/pointed/lightning_bolt.dm index 76d9665e71107..fcbc3f8c91d70 100644 --- a/code/modules/spells/spell_types/pointed/lightning_bolt.dm +++ b/code/modules/spells/spell_types/pointed/lightning_bolt.dm @@ -4,7 +4,7 @@ button_icon_state = "lightning" active_overlay_icon_state = "bg_spell_border_active_yellow" - sound = 'sound/magic/lightningbolt.ogg' + sound = 'sound/effects/magic/lightningbolt.ogg' school = SCHOOL_EVOCATION cooldown_time = 10 SECONDS cooldown_reduction_per_rank = 2 SECONDS diff --git a/code/modules/spells/spell_types/pointed/mind_transfer.dm b/code/modules/spells/spell_types/pointed/mind_transfer.dm index fa401c3b432f6..d779933b01acd 100644 --- a/code/modules/spells/spell_types/pointed/mind_transfer.dm +++ b/code/modules/spells/spell_types/pointed/mind_transfer.dm @@ -9,6 +9,7 @@ cooldown_reduction_per_rank = 10 SECONDS spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC|SPELL_REQUIRES_MIND|SPELL_CASTABLE_AS_BRAIN antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_MIND + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_PHASED|AB_CHECK_OPEN_TURF invocation = "GIN'YU CAPAN" invocation_type = INVOCATION_WHISPER @@ -137,7 +138,7 @@ // Only the caster and victim hear the sounds, // that way no one knows for sure if the swap happened - SEND_SOUND(caster, sound('sound/magic/mandswap.ogg')) - SEND_SOUND(to_swap, sound('sound/magic/mandswap.ogg')) + SEND_SOUND(caster, sound('sound/effects/magic/mandswap.ogg')) + SEND_SOUND(to_swap, sound('sound/effects/magic/mandswap.ogg')) return TRUE diff --git a/code/modules/spells/spell_types/pointed/swap.dm b/code/modules/spells/spell_types/pointed/swap.dm index 6b4a5e45e1437..884504efc8edc 100644 --- a/code/modules/spells/spell_types/pointed/swap.dm +++ b/code/modules/spells/spell_types/pointed/swap.dm @@ -82,12 +82,12 @@ do_teleport(second_target, owner.loc, no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC) do_teleport(cast_on, second_location, no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC) do_teleport(owner, target_location, no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC) - second_target.playsound_local(get_turf(second_target), 'sound/magic/swap.ogg', 50, 1) - cast_on.playsound_local(get_turf(cast_on), 'sound/magic/swap.ogg', 50, 1) - owner.playsound_local(get_turf(owner), 'sound/magic/swap.ogg', 50, 1) + second_target.playsound_local(get_turf(second_target), 'sound/effects/magic/swap.ogg', 50, 1) + cast_on.playsound_local(get_turf(cast_on), 'sound/effects/magic/swap.ogg', 50, 1) + owner.playsound_local(get_turf(owner), 'sound/effects/magic/swap.ogg', 50, 1) else do_teleport(cast_on, owner.loc, no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC) do_teleport(owner, target_location, no_effects = TRUE, channel = TELEPORT_CHANNEL_MAGIC) - cast_on.playsound_local(get_turf(cast_on), 'sound/magic/swap.ogg', 50, 1) - owner.playsound_local(get_turf(owner), 'sound/magic/swap.ogg', 50, 1) + cast_on.playsound_local(get_turf(cast_on), 'sound/effects/magic/swap.ogg', 50, 1) + owner.playsound_local(get_turf(owner), 'sound/effects/magic/swap.ogg', 50, 1) second_target = null diff --git a/code/modules/spells/spell_types/pointed/tie_shoes.dm b/code/modules/spells/spell_types/pointed/tie_shoes.dm index 5783717d0e72b..b8efafaf3ba92 100644 --- a/code/modules/spells/spell_types/pointed/tie_shoes.dm +++ b/code/modules/spells/spell_types/pointed/tie_shoes.dm @@ -63,7 +63,7 @@ cast_on.balloon_alert_to_viewers("magically tied!") else cast_on.balloon_alert(owner, "magically tied!") - playsound(cast_on, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + playsound(cast_on, 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE) return TRUE var/shoe_to_cast = /obj/item/clothing/shoes/sneakers/random @@ -86,7 +86,7 @@ return FALSE if(invocation_type != INVOCATION_NONE) - playsound(cast_on, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + playsound(cast_on, 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE) switch(shoes_to_tie.tied) if(SHOES_TIED) @@ -96,7 +96,7 @@ cast_on.balloon_alert(owner, "laced!") shoes_to_tie.can_be_tied = TRUE if(invocation_type != INVOCATION_NONE) - playsound(cast_on, 'sound/magic/summonitems_generic.ogg', 50, TRUE) + playsound(cast_on, 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE) return TRUE else to_chat(owner, span_warning("[cast_on] is wearing laceless shoes!")) diff --git a/code/modules/spells/spell_types/projectile/juggernaut.dm b/code/modules/spells/spell_types/projectile/juggernaut.dm index 11a2cbb9a15f6..8d339298a3779 100644 --- a/code/modules/spells/spell_types/projectile/juggernaut.dm +++ b/code/modules/spells/spell_types/projectile/juggernaut.dm @@ -6,7 +6,7 @@ background_icon_state = "bg_demon" overlay_icon_state = "bg_demon_border" - sound = 'sound/weapons/resonator_blast.ogg' + sound = 'sound/items/weapons/resonator_blast.ogg' cooldown_time = 35 SECONDS spell_requirements = NONE diff --git a/code/modules/spells/spell_types/right_and_wrong.dm b/code/modules/spells/spell_types/right_and_wrong.dm index 306770c074f43..cafea93fce691 100644 --- a/code/modules/spells/spell_types/right_and_wrong.dm +++ b/code/modules/spells/spell_types/right_and_wrong.dm @@ -125,7 +125,7 @@ GLOBAL_LIST_INIT(summoned_magic_objectives, list( var/obj/item/gun/spawned_gun = new gun_type(get_turf(to_equip)) if (istype(spawned_gun)) // The list may contain some non-gun type guns which do not have this proc spawned_gun.unlock() - playsound(get_turf(to_equip), 'sound/magic/summon_guns.ogg', 50, TRUE) + playsound(get_turf(to_equip), 'sound/effects/magic/summon_guns.ogg', 50, TRUE) var/in_hand = to_equip.put_in_hands(spawned_gun) // not always successful @@ -149,7 +149,7 @@ GLOBAL_LIST_INIT(summoned_magic_objectives, list( var/magic_type = prob(SPECIALIST_MAGIC_PROB) ? pick(GLOB.summoned_special_magic) : pick(GLOB.summoned_magic) var/obj/item/spawned_magic = new magic_type(get_turf(to_equip)) - playsound(get_turf(to_equip), 'sound/magic/summon_magic.ogg', 50, TRUE) + playsound(get_turf(to_equip), 'sound/effects/magic/summon_magic.ogg', 50, TRUE) var/in_hand = to_equip.put_in_hands(spawned_magic) diff --git a/code/modules/spells/spell_types/self/basic_heal.dm b/code/modules/spells/spell_types/self/basic_heal.dm index f68403ddeeb3f..d22b38cba8be8 100644 --- a/code/modules/spells/spell_types/self/basic_heal.dm +++ b/code/modules/spells/spell_types/self/basic_heal.dm @@ -3,7 +3,7 @@ name = "Lesser Heal" desc = "Heals a small amount of brute and burn damage to the caster." - sound = 'sound/magic/staff_healing.ogg' + sound = 'sound/effects/magic/staff_healing.ogg' school = SCHOOL_RESTORATION cooldown_time = 10 SECONDS cooldown_reduction_per_rank = 1.25 SECONDS diff --git a/code/modules/spells/spell_types/self/charge.dm b/code/modules/spells/spell_types/self/charge.dm index 87d7ae287d337..af345f8cb13b5 100644 --- a/code/modules/spells/spell_types/self/charge.dm +++ b/code/modules/spells/spell_types/self/charge.dm @@ -5,7 +5,7 @@ to grant magical power to a fellow magic user." button_icon_state = "charge" - sound = 'sound/magic/charge.ogg' + sound = 'sound/effects/magic/charge.ogg' school = SCHOOL_TRANSMUTATION cooldown_time = 60 SECONDS cooldown_reduction_per_rank = 5 SECONDS diff --git a/code/modules/spells/spell_types/self/disable_tech.dm b/code/modules/spells/spell_types/self/disable_tech.dm index 4a1ab1b0eda12..c357ef9a74963 100644 --- a/code/modules/spells/spell_types/self/disable_tech.dm +++ b/code/modules/spells/spell_types/self/disable_tech.dm @@ -2,7 +2,7 @@ name = "Emplosion" desc = "This spell causes an EMP in an area." button_icon_state = "emp" - sound = 'sound/weapons/zapbang.ogg' + sound = 'sound/items/weapons/zapbang.ogg' school = SCHOOL_EVOCATION @@ -18,7 +18,7 @@ /datum/action/cooldown/spell/emp/disable_tech name = "Disable Tech" desc = "This spell disables all weapons, cameras and most other technology in range." - sound = 'sound/magic/disable_tech.ogg' + sound = 'sound/effects/magic/disable_tech.ogg' cooldown_time = 40 SECONDS cooldown_reduction_per_rank = 5 SECONDS diff --git a/code/modules/spells/spell_types/self/forcewall.dm b/code/modules/spells/spell_types/self/forcewall.dm index 761860f4099f7..3bacb58e6a05b 100644 --- a/code/modules/spells/spell_types/self/forcewall.dm +++ b/code/modules/spells/spell_types/self/forcewall.dm @@ -3,7 +3,7 @@ desc = "Create a magical barrier that only you can pass through." button_icon_state = "shield" - sound = 'sound/magic/forcewall.ogg' + sound = 'sound/effects/magic/forcewall.ogg' school = SCHOOL_TRANSMUTATION cooldown_time = 10 SECONDS cooldown_reduction_per_rank = 1.25 SECONDS diff --git a/code/modules/spells/spell_types/self/mutate.dm b/code/modules/spells/spell_types/self/mutate.dm index 7ebd9ab4d1bfe..cb976875decef 100644 --- a/code/modules/spells/spell_types/self/mutate.dm +++ b/code/modules/spells/spell_types/self/mutate.dm @@ -1,7 +1,7 @@ /// A spell type that adds mutations to the caster temporarily. /datum/action/cooldown/spell/apply_mutations button_icon_state = "mutate" - sound = 'sound/magic/mutate.ogg' + sound = 'sound/effects/magic/mutate.ogg' school = SCHOOL_TRANSMUTATION diff --git a/code/modules/spells/spell_types/self/sanguine_strike.dm b/code/modules/spells/spell_types/self/sanguine_strike.dm index 4c819a69690ab..64cb2a11d6a36 100644 --- a/code/modules/spells/spell_types/self/sanguine_strike.dm +++ b/code/modules/spells/spell_types/self/sanguine_strike.dm @@ -9,7 +9,7 @@ desc = "Enchants your next weapon strike to deal more damage, heal you for damage dealt, and refill blood." button_icon_state = "charge" - sound = 'sound/magic/charge.ogg' + sound = 'sound/effects/magic/charge.ogg' // makes this spell not take blood from splattercasting school = SCHOOL_SANGUINE cooldown_time = 60 SECONDS @@ -67,7 +67,7 @@ if(living_target.blood_volume < BLOOD_VOLUME_SURVIVE) return playsound(target, 'sound/effects/wounds/crackandbleed.ogg', 100) - playsound(target, 'sound/magic/charge.ogg', 100) + playsound(target, 'sound/effects/magic/charge.ogg', 100) var/attack_direction = get_dir(user, living_target) if(iscarbon(living_target)) var/mob/living/carbon/carbon_target = living_target diff --git a/code/modules/spells/spell_types/self/summonitem.dm b/code/modules/spells/spell_types/self/summonitem.dm index ab99f35271d3c..4165781c3668f 100644 --- a/code/modules/spells/spell_types/self/summonitem.dm +++ b/code/modules/spells/spell_types/self/summonitem.dm @@ -168,7 +168,7 @@ item_to_retrieve.loc.visible_message(span_warning("[item_to_retrieve] suddenly appears!")) SEND_SIGNAL(item_to_retrieve, COMSIG_MAGIC_RECALL, caster, item_to_retrieve) - playsound(get_turf(item_to_retrieve), 'sound/magic/summonitems_generic.ogg', 50, TRUE) + playsound(get_turf(item_to_retrieve), 'sound/effects/magic/summonitems_generic.ogg', 50, TRUE) /datum/action/cooldown/spell/summonitem/abductor name = "Baton Recall" diff --git a/code/modules/spells/spell_types/self/voice_of_god.dm b/code/modules/spells/spell_types/self/voice_of_god.dm index e7602a214f18f..3db16f400811b 100644 --- a/code/modules/spells/spell_types/self/voice_of_god.dm +++ b/code/modules/spells/spell_types/self/voice_of_god.dm @@ -3,7 +3,7 @@ desc = "Speak with an incredibly compelling voice, forcing listeners to obey your commands." button_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "voice_of_god" - sound = 'sound/magic/clockwork/invoke_general.ogg' + sound = 'sound/effects/magic/clockwork/invoke_general.ogg' cooldown_time = 120 SECONDS // Varies depending on command invocation = "" // Handled by the VOICE OF GOD itself diff --git a/code/modules/spells/spell_types/shapeshift/_shapeshift.dm b/code/modules/spells/spell_types/shapeshift/_shapeshift.dm index b7542d4077f3c..a01faa1002dd2 100644 --- a/code/modules/spells/spell_types/shapeshift/_shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift/_shapeshift.dm @@ -126,7 +126,7 @@ for(var/obj/machinery/atmospherics/components/unary/possible_vent in range(10, get_turf(cast_on))) if(length(possible_vent.parents) && possible_vent.parents[1] == our_pipeline) new gib_type(get_turf(possible_vent)) - playsound(possible_vent, 'sound/effects/reee.ogg', 75, TRUE) + playsound(possible_vent, 'sound/mobs/non-humanoids/frog/reee.ogg', 75, TRUE) priority_announce("We detected a pipe blockage around [get_area(get_turf(cast_on))], please dispatch someone to investigate.", "[command_name()]") // Gib our caster, and make sure to leave nothing behind diff --git a/code/modules/spells/spell_types/teleport/_teleport.dm b/code/modules/spells/spell_types/teleport/_teleport.dm index fd6e02cdfb330..9262d21f3e29e 100644 --- a/code/modules/spells/spell_types/teleport/_teleport.dm +++ b/code/modules/spells/spell_types/teleport/_teleport.dm @@ -5,7 +5,7 @@ * Teleports the caster to a turf selected by get_destinations(). */ /datum/action/cooldown/spell/teleport - sound = 'sound/weapons/zapbang.ogg' + sound = 'sound/items/weapons/zapbang.ogg' school = SCHOOL_TRANSLOCATION @@ -16,7 +16,7 @@ /// A list of flags related to determining if our destination target is valid or not. var/destination_flags = NONE /// The sound played on arrival, after the teleport. - var/post_teleport_sound = 'sound/weapons/zapbang.ogg' + var/post_teleport_sound = 'sound/items/weapons/zapbang.ogg' /datum/action/cooldown/spell/teleport/cast(atom/cast_on) . = ..() diff --git a/code/modules/spells/spell_types/teleport/blink.dm b/code/modules/spells/spell_types/teleport/blink.dm index 04c17a0e77523..18531949a5312 100644 --- a/code/modules/spells/spell_types/teleport/blink.dm +++ b/code/modules/spells/spell_types/teleport/blink.dm @@ -2,7 +2,7 @@ name = "Blink" desc = "This spell randomly teleports you a short distance." button_icon_state = "blink" - sound = 'sound/magic/blink.ogg' + sound = 'sound/effects/magic/blink.ogg' school = SCHOOL_TRANSLOCATION cooldown_time = 2 SECONDS @@ -16,4 +16,4 @@ inner_tele_radius = 0 outer_tele_radius = 6 - post_teleport_sound = 'sound/magic/blink.ogg' + post_teleport_sound = 'sound/effects/magic/blink.ogg' diff --git a/code/modules/spells/spell_types/teleport/teleport.dm b/code/modules/spells/spell_types/teleport/teleport.dm index 57e88b9852025..eaf7110980815 100644 --- a/code/modules/spells/spell_types/teleport/teleport.dm +++ b/code/modules/spells/spell_types/teleport/teleport.dm @@ -3,7 +3,7 @@ name = "Teleport" desc = "This spell teleports you to an area of your selection." button_icon_state = "teleport" - sound = 'sound/magic/teleport_diss.ogg' + sound = 'sound/effects/magic/teleport_diss.ogg' school = SCHOOL_TRANSLOCATION cooldown_time = 1 MINUTES @@ -16,7 +16,7 @@ smoke_type = /datum/effect_system/fluid_spread/smoke smoke_amt = 2 - post_teleport_sound = 'sound/magic/teleport_app.ogg' + post_teleport_sound = 'sound/effects/magic/teleport_app.ogg' // Santa's teleport, themed as such /datum/action/cooldown/spell/teleport/area_teleport/wizard/santa diff --git a/code/modules/spells/spell_types/touch/_touch.dm b/code/modules/spells/spell_types/touch/_touch.dm index d1adc9619be27..24eefe04d1020 100644 --- a/code/modules/spells/spell_types/touch/_touch.dm +++ b/code/modules/spells/spell_types/touch/_touch.dm @@ -20,7 +20,7 @@ */ /datum/action/cooldown/spell/touch check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' invocation = "High Five!" invocation_type = INVOCATION_SHOUT @@ -170,10 +170,9 @@ SHOULD_NOT_OVERRIDE(TRUE) // DEFINITELY don't put effects here, put them in cast_on_hand_hit if(!can_hit_with_hand(target, caster)) - return + return NONE - INVOKE_ASYNC(src, PROC_REF(do_hand_hit), source, target, caster) - return ITEM_INTERACT_SUCCESS + return do_hand_hit(source, target, caster) /** * Signal proc for [COMSIG_ITEM_INTERACTING_WITH_ATOM_SECONDARY] from our attached hand. @@ -185,10 +184,9 @@ SHOULD_NOT_OVERRIDE(TRUE) if(!can_hit_with_hand(target, caster)) - return + return NONE - INVOKE_ASYNC(src, PROC_REF(do_secondary_hand_hit), source, target, caster) - return ITEM_INTERACT_SUCCESS + return do_secondary_hand_hit(source, target, caster) /// Checks if the passed victim can be cast on by the caster. /datum/action/cooldown/spell/touch/proc/can_hit_with_hand(atom/victim, mob/living/caster) @@ -220,14 +218,15 @@ on_antimagic_triggered(hand, victim, caster) else if(!cast_on_hand_hit(hand, victim, caster)) - return + return NONE log_combat(caster, victim, "cast the touch spell [name] on", hand) - spell_feedback(caster) + INVOKE_ASYNC(src, PROC_REF(spell_feedback), caster) caster.do_attack_animation(victim) caster.changeNext_move(CLICK_CD_MELEE) victim.add_fingerprint(caster) remove_hand(caster) + return ITEM_INTERACT_SUCCESS /** * Calls do_secondary_hand_hit() from the caster onto the victim. @@ -243,11 +242,12 @@ // Continue will remove the hand here and stop if(SECONDARY_ATTACK_CONTINUE_CHAIN) log_combat(caster, victim, "cast the touch spell [name] on", hand, "(secondary / alt cast)") - spell_feedback(caster) + INVOKE_ASYNC(src, PROC_REF(spell_feedback), caster) caster.do_attack_animation(victim) caster.changeNext_move(CLICK_CD_MELEE) victim.add_fingerprint(caster) remove_hand(caster) + return ITEM_INTERACT_SUCCESS // Call normal will call the normal cast proc if(SECONDARY_ATTACK_CALL_NORMAL) @@ -255,7 +255,7 @@ // Cancel chain will do nothing, if(SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) - return + return NONE /** * The actual process of casting the spell on the victim from the caster. diff --git a/code/modules/spells/spell_types/touch/duffelbag_curse.dm b/code/modules/spells/spell_types/touch/duffelbag_curse.dm index f5ac8a6961deb..c4882ba5365f4 100644 --- a/code/modules/spells/spell_types/touch/duffelbag_curse.dm +++ b/code/modules/spells/spell_types/touch/duffelbag_curse.dm @@ -3,7 +3,7 @@ name = "Bestow Cursed Duffel Bag" desc = "A spell that summons a duffel bag demon on the target, slowing them down and slowly eating them." button_icon_state = "duffelbag_curse" - sound = 'sound/magic/mm_hit.ogg' + sound = 'sound/effects/magic/mm_hit.ogg' school = SCHOOL_CONJURATION cooldown_time = 6 SECONDS diff --git a/code/modules/spells/spell_types/touch/flesh_to_stone.dm b/code/modules/spells/spell_types/touch/flesh_to_stone.dm index abc6066084236..dd4f622427f74 100644 --- a/code/modules/spells/spell_types/touch/flesh_to_stone.dm +++ b/code/modules/spells/spell_types/touch/flesh_to_stone.dm @@ -2,7 +2,7 @@ name = "Flesh to Stone" desc = "This spell charges your hand with the power to turn victims into inert statues for a long period of time." button_icon_state = "statue" - sound = 'sound/magic/fleshtostone.ogg' + sound = 'sound/effects/magic/fleshtostone.ogg' school = SCHOOL_TRANSMUTATION cooldown_time = 1 MINUTES diff --git a/code/modules/spells/spell_types/touch/smite.dm b/code/modules/spells/spell_types/touch/smite.dm index 7bef97c8a6582..5bf90dff443a4 100644 --- a/code/modules/spells/spell_types/touch/smite.dm +++ b/code/modules/spells/spell_types/touch/smite.dm @@ -3,7 +3,7 @@ desc = "This spell charges your hand with an unholy energy \ that can be used to cause a touched victim to violently explode." button_icon_state = "gib" - sound = 'sound/magic/disintegrate.ogg' + sound = 'sound/effects/magic/disintegrate.ogg' school = SCHOOL_EVOCATION cooldown_time = 1 MINUTES @@ -59,7 +59,7 @@ inhand_icon_state = "disintegrate" /obj/item/melee/touch_attack/smite/suicide_act(mob/living/user) - + user.visible_message(span_suicide("[user] spreads [user.p_their()] arms apart, lightning arcing between them! It looks like [user.p_theyre()] going out with a bang!")) user.say("SHIA KAZING!!", forced = "smite suicide") do_sparks(4, FALSE, get_turf(user)) diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index 5509f925cfd10..402a9aa73e19f 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -48,9 +48,9 @@ /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) time = 200 - preop_sound = 'sound/surgery/hemostat1.ogg' - success_sound = 'sound/surgery/hemostat1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/hemostat1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' var/objective /datum/surgery_step/brainwash/mechanic diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index 1c82052fe98b1..5c528acae52fc 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -43,9 +43,9 @@ /obj/item = 20, ) time = 100 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/scalpel2.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/scalpel2.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/lobotomize/mechanic diff --git a/code/modules/surgery/advanced/pacification.dm b/code/modules/surgery/advanced/pacification.dm index 6db290e1df715..6c2d990cb9624 100644 --- a/code/modules/surgery/advanced/pacification.dm +++ b/code/modules/surgery/advanced/pacification.dm @@ -38,9 +38,9 @@ /obj/item/pen = 15, ) time = 40 - preop_sound = 'sound/surgery/hemostat1.ogg' - success_sound = 'sound/surgery/hemostat1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/hemostat1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' /datum/surgery_step/pacify/mechanic name = "delete aggression programming (multitool)" diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 16045a760324c..0bcf408b2a714 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -52,8 +52,8 @@ /obj/item/knife/butcher = 25, ) time = 64 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/sever_limb/mechanic @@ -66,8 +66,8 @@ TOOL_SAW = 50, ) time = 20 //WAIT I NEED THAT!! - preop_sound = 'sound/items/ratchet.ogg' - preop_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + preop_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/sever_limb/peg name = "detach limb (circular saw)" @@ -79,8 +79,8 @@ TOOL_SCALPEL = 25, ) time = 30 - preop_sound = 'sound/surgery/saw.ogg' - success_sound = 'sound/items/wood_drop.ogg' + preop_sound = 'sound/items/handling/surgery/saw.ogg' + success_sound = 'sound/items/handling/materials/wood_drop.ogg' /datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 5d3e5270c8884..0b953b9313d04 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -174,8 +174,8 @@ /// what visual effect is used when this limb is used to strike someone. var/unarmed_attack_effect = ATTACK_EFFECT_PUNCH /// Sounds when this bodypart is used in an umarmed attack - var/sound/unarmed_attack_sound = 'sound/weapons/punch1.ogg' - var/sound/unarmed_miss_sound = 'sound/weapons/punchmiss.ogg' + var/sound/unarmed_attack_sound = 'sound/items/weapons/punch1.ogg' + var/sound/unarmed_miss_sound = 'sound/items/weapons/punchmiss.ogg' ///Lowest possible punch damage this bodypart can give. If this is set to 0, unarmed attacks will always miss. var/unarmed_damage_low = 1 ///Highest possible punch damage this bodypart can ive. @@ -400,7 +400,7 @@ if(!contents.len) to_chat(user, span_warning("There is nothing left inside [src]!")) return - playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1) + playsound(loc, 'sound/items/weapons/slice.ogg', 50, TRUE, -1) user.visible_message(span_warning("[user] begins to cut open [src]."),\ span_notice("You begin to cut open [src]...")) if(do_after(user, 5.4 SECONDS, target = src)) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 16a9a288bf0ba..cce8935f80349 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -19,8 +19,8 @@ is_dimorphic = TRUE unarmed_attack_verbs = list("bite", "chomp") unarmed_attack_effect = ATTACK_EFFECT_BITE - unarmed_attack_sound = 'sound/weapons/bite.ogg' - unarmed_miss_sound = 'sound/weapons/bite.ogg' + unarmed_attack_sound = 'sound/items/weapons/bite.ogg' + unarmed_miss_sound = 'sound/items/weapons/bite.ogg' unarmed_damage_low = 1 // Yeah, biteing is pretty weak, blame the monkey super-nerf unarmed_damage_high = 3 unarmed_effectiveness = 0 diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm index d97b00c58af68..756cda32fa327 100644 --- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm @@ -4,8 +4,8 @@ is_dimorphic = FALSE dmg_overlay_type = null attack_type = BURN // bish buzz - unarmed_attack_sound = 'sound/weapons/etherealhit.ogg' - unarmed_miss_sound = 'sound/weapons/etherealmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg' + unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg' brute_modifier = 1.25 //ethereal are weak to brute damage head_flags = HEAD_HAIR|HEAD_FACIAL_HAIR|HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN @@ -39,8 +39,8 @@ attack_type = BURN //burn bish unarmed_attack_verbs = list("burn", "sear") grappled_attack_verb = "scorch" - unarmed_attack_sound = 'sound/weapons/etherealhit.ogg' - unarmed_miss_sound = 'sound/weapons/etherealmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg' + unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg' brute_modifier = 1.25 //ethereal are weak to brute damage /obj/item/bodypart/arm/left/ethereal/update_limb(dropping_limb, is_creating) @@ -57,8 +57,8 @@ attack_type = BURN // bish buzz unarmed_attack_verbs = list("burn", "sear") grappled_attack_verb = "scorch" - unarmed_attack_sound = 'sound/weapons/etherealhit.ogg' - unarmed_miss_sound = 'sound/weapons/etherealmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg' + unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg' brute_modifier = 1.25 //ethereal are weak to brute damage /obj/item/bodypart/arm/right/ethereal/update_limb(dropping_limb, is_creating) @@ -73,8 +73,8 @@ limb_id = SPECIES_ETHEREAL dmg_overlay_type = null attack_type = BURN // bish buzz - unarmed_attack_sound = 'sound/weapons/etherealhit.ogg' - unarmed_miss_sound = 'sound/weapons/etherealmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg' + unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg' brute_modifier = 1.25 //ethereal are weak to brute damage /obj/item/bodypart/leg/left/ethereal/update_limb(dropping_limb, is_creating) @@ -89,8 +89,8 @@ limb_id = SPECIES_ETHEREAL dmg_overlay_type = null attack_type = BURN // bish buzz - unarmed_attack_sound = 'sound/weapons/etherealhit.ogg' - unarmed_miss_sound = 'sound/weapons/etherealmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/etherealhit.ogg' + unarmed_miss_sound = 'sound/items/weapons/etherealmiss.ogg' brute_modifier = 1.25 //ethereal are weak to brute damage /obj/item/bodypart/leg/right/ethereal/update_limb(dropping_limb, is_creating) diff --git a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm index fec3c8f858434..0de9322e70b8c 100644 --- a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm @@ -21,8 +21,8 @@ unarmed_attack_verbs = list("slash", "scratch", "claw") grappled_attack_verb = "lacerate" unarmed_attack_effect = ATTACK_EFFECT_CLAW - unarmed_attack_sound = 'sound/weapons/slash.ogg' - unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/slash.ogg' + unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' /obj/item/bodypart/arm/right/lizard icon_greyscale = 'icons/mob/human/species/lizard/bodyparts.dmi' @@ -30,8 +30,8 @@ unarmed_attack_verbs = list("slash", "scratch", "claw") grappled_attack_verb = "lacerate" unarmed_attack_effect = ATTACK_EFFECT_CLAW - unarmed_attack_sound = 'sound/weapons/slash.ogg' - unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/slash.ogg' + unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' /obj/item/bodypart/arm/left/lizard/ashwalker bodypart_traits = list(TRAIT_CHUNKYFINGERS) diff --git a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm index f8619943a81ed..e02d1daad8244 100644 --- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm @@ -226,8 +226,8 @@ unarmed_attack_verbs = list("slash", "lash") grappled_attack_verb = "lacerate" unarmed_attack_effect = ATTACK_EFFECT_CLAW - unarmed_attack_sound = 'sound/weapons/slice.ogg' - unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/slice.ogg' + unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' burn_modifier = 1.25 /obj/item/bodypart/arm/right/pod @@ -235,8 +235,8 @@ unarmed_attack_verbs = list("slash", "lash") grappled_attack_verb = "lacerate" unarmed_attack_effect = ATTACK_EFFECT_CLAW - unarmed_attack_sound = 'sound/weapons/slice.ogg' - unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/slice.ogg' + unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' burn_modifier = 1.25 /obj/item/bodypart/leg/left/pod diff --git a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm index b437129db35c3..6761fa6751a5d 100644 --- a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm +++ b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm @@ -31,8 +31,8 @@ unarmed_attack_verbs = list("slash") grappled_attack_verb = "lacerate" unarmed_attack_effect = ATTACK_EFFECT_CLAW - unarmed_attack_sound = 'sound/weapons/slash.ogg' - unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/slash.ogg' + unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' /obj/item/bodypart/arm/right/moth icon = 'icons/mob/human/species/moth/bodyparts.dmi' @@ -43,8 +43,8 @@ unarmed_attack_verbs = list("slash") grappled_attack_verb = "lacerate" unarmed_attack_effect = ATTACK_EFFECT_CLAW - unarmed_attack_sound = 'sound/weapons/slash.ogg' - unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + unarmed_attack_sound = 'sound/items/weapons/slash.ogg' + unarmed_miss_sound = 'sound/items/weapons/slashmiss.ogg' /obj/item/bodypart/leg/left/moth icon = 'icons/mob/human/species/moth/bodyparts.dmi' diff --git a/code/modules/surgery/bone_mending.dm b/code/modules/surgery/bone_mending.dm index 73fdcba3fce6b..8afffb232fb9d 100644 --- a/code/modules/surgery/bone_mending.dm +++ b/code/modules/surgery/bone_mending.dm @@ -212,7 +212,7 @@ TOOL_SCREWDRIVER = 40, ) time = 2.4 SECONDS - preop_sound = 'sound/surgery/hemostat1.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' /datum/surgery_step/clamp_bleeders/discard_skull_debris/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index 879cbdf7bf59b..c3a9baafde10f 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -31,9 +31,9 @@ /obj/item/pen = 15) //don't worry, pouring some alcohol on their open brain will get that chance to 100 repeatable = TRUE time = 100 //long and complicated - preop_sound = 'sound/surgery/hemostat1.ogg' - success_sound = 'sound/surgery/hemostat1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/hemostat1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' /datum/surgery_step/fix_brain/mechanic name = "perform neural debugging (hemostat or multitool)" diff --git a/code/modules/surgery/burn_dressing.dm b/code/modules/surgery/burn_dressing.dm index 5f2bdb8048327..9ffeaef089553 100644 --- a/code/modules/surgery/burn_dressing.dm +++ b/code/modules/surgery/burn_dressing.dm @@ -41,9 +41,9 @@ TOOL_WIRECUTTER = 40) time = 30 repeatable = TRUE - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/retractor2.ogg' - failure_sound = 'sound/surgery/organ1.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/retractor2.ogg' + failure_sound = 'sound/items/handling/surgery/organ1.ogg' surgery_effects_mood = TRUE /// How much sanitization is added per step var/sanitization_added = 0.5 diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index 3ec68f8db8858..1be5e1db8230a 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -18,8 +18,8 @@ GLOBAL_LIST_INIT(heavy_cavity_implants, typecacheof(list(/obj/item/transfer_valv implements = list(/obj/item = 100) repeatable = TRUE time = 32 - preop_sound = 'sound/surgery/organ1.ogg' - success_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/organ1.ogg' + success_sound = 'sound/items/handling/surgery/organ2.ogg' var/obj/item/item_for_cavity /datum/surgery_step/handle_cavity/tool_check(mob/user, obj/item/tool) diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index e9c136574b29b..c2cc3f551acd2 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -41,9 +41,9 @@ /obj/item/knife = 45, /obj/item/shard = 25) time = 16 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/scalpel2.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/scalpel2.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/incise_heart/mechanic @@ -54,8 +54,8 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/incise_heart/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -107,9 +107,9 @@ /obj/item/stack/package_wrap = 15, /obj/item/stack/cable_coil = 5) time = 90 - preop_sound = 'sound/surgery/hemostat1.ogg' - success_sound = 'sound/surgery/hemostat1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/hemostat1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' /datum/surgery_step/coronary_bypass/mechanic name = "perform maintenance (hemostat or wrench)" @@ -119,8 +119,8 @@ TOOL_WIRECUTTER = 35, /obj/item/stack/package_wrap = 15, /obj/item/stack/cable_coil = 5) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/coronary_bypass/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index 95c952e7724d4..845f655009b7f 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -36,11 +36,11 @@ silicons_obey_prob = TRUE /datum/surgery_step/experimental_dissection/preop(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery) - user.visible_message("[user] starts dissecting [target].", "You start dissecting [target].") + user.visible_message(span_notice("[user] starts dissecting [target]."), span_notice("You start dissecting [target].")) /datum/surgery_step/experimental_dissection/success(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) var/points_earned = check_value(target) - user.visible_message("[user] dissects [target], discovering [points_earned] point\s of data!", "You dissect [target], finding [points_earned] point\s worth of discoveries, you also write a few notes.") + user.visible_message(span_notice("[user] dissects [target], discovering [points_earned] point\s of data!"), span_notice("You dissect [target], finding [points_earned] point\s worth of discoveries, you also write a few notes.")) var/obj/item/research_notes/the_dossier = new /obj/item/research_notes(user.loc, points_earned, "biology") if(!user.put_in_hands(the_dossier) && istype(user.get_inactive_held_item(), /obj/item/research_notes)) @@ -54,8 +54,8 @@ /datum/surgery_step/experimental_dissection/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) var/points_earned = round(check_value(target) * 0.01) user.visible_message( - "[user] dissects [target]!", - "You dissect [target], but do not find anything particularly interesting.", + span_notice("[user] dissects [target]!"), + span_notice("You dissect [target], but do not find anything particularly interesting."), ) var/obj/item/research_notes/the_dossier = new /obj/item/research_notes(user.loc, points_earned, "biology") diff --git a/code/modules/surgery/gastrectomy.dm b/code/modules/surgery/gastrectomy.dm index f498d220d2f2b..b72e01d0ecf7d 100644 --- a/code/modules/surgery/gastrectomy.dm +++ b/code/modules/surgery/gastrectomy.dm @@ -42,9 +42,9 @@ /obj/item/knife = 45, /obj/item/shard = 35) time = 52 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/organ1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/organ1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/gastrectomy/mechanic @@ -55,8 +55,8 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/gastrectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index 20458fb8dcaf8..12540945a5238 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -42,8 +42,8 @@ /obj/item/pen = 55) repeatable = TRUE time = 25 - success_sound = 'sound/surgery/retractor2.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + success_sound = 'sound/items/handling/surgery/retractor2.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' var/brutehealing = 0 var/burnhealing = 0 var/brute_multiplier = 0 //multiplies the damage that the patient has. if 0 the patient wont get any additional healing from the damage he has. diff --git a/code/modules/surgery/hepatectomy.dm b/code/modules/surgery/hepatectomy.dm index 2216ac7ad69f7..c0d94abb69a99 100644 --- a/code/modules/surgery/hepatectomy.dm +++ b/code/modules/surgery/hepatectomy.dm @@ -41,9 +41,9 @@ /obj/item/knife = 45, /obj/item/shard = 35) time = 52 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/organ1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/organ1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/hepatectomy/mechanic @@ -54,8 +54,8 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/hepatectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 66eaf6faf737f..51c279d32cd98 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -19,7 +19,7 @@ TOOL_CROWBAR = 65, /obj/item/kitchen/fork = 35) time = 64 - success_sound = 'sound/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/hemostat1.ogg' var/obj/item/implant/implant /datum/surgery_step/extract_implant/preop(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm index 6cb3dc8f75708..975df4a8bdffa 100644 --- a/code/modules/surgery/lipoplasty.dm +++ b/code/modules/surgery/lipoplasty.dm @@ -40,8 +40,8 @@ time = 64 surgery_effects_mood = TRUE preop_sound = list( - /obj/item/circular_saw = 'sound/surgery/saw.ogg', - /obj/item = 'sound/surgery/scalpel1.ogg', + /obj/item/circular_saw = 'sound/items/handling/surgery/saw.ogg', + /obj/item = 'sound/items/handling/surgery/scalpel1.ogg', ) /datum/surgery_step/cut_fat/mechanic @@ -54,8 +54,8 @@ /obj/item/knife = 45, /obj/item/shard = 35, ) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/cut_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) user.visible_message(span_notice("[user] begins to cut away [target]'s excess fat."), span_notice("You begin to cut away [target]'s excess fat...")) @@ -88,8 +88,8 @@ TOOL_WIRECUTTER = 35, ) time = 32 - preop_sound = 'sound/surgery/retractor1.ogg' - success_sound = 'sound/surgery/retractor2.ogg' + preop_sound = 'sound/items/handling/surgery/retractor1.ogg' + success_sound = 'sound/items/handling/surgery/retractor2.ogg' /datum/surgery_step/remove_fat/mechanic name = "engage expulsion valve (screwdriver or wrench)" //gross @@ -99,8 +99,8 @@ TOOL_WIRECUTTER = 35, TOOL_RETRACTOR = 35, ) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/items/handling/surgery/organ2.ogg' /datum/surgery_step/remove_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index a31af5f69cc00..85a963953c68e 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -38,9 +38,9 @@ /obj/item/knife = 45, /obj/item/shard = 35) time = 42 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/organ1.ogg' - failure_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/organ1.ogg' + failure_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/lobectomy/mechanic @@ -51,8 +51,8 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - preop_sound = 'sound/items/ratchet.ogg' - success_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + success_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/lobectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/mechanic_steps.dm b/code/modules/surgery/mechanic_steps.dm index e9bfcbe949015..44be32bc858a7 100644 --- a/code/modules/surgery/mechanic_steps.dm +++ b/code/modules/surgery/mechanic_steps.dm @@ -7,8 +7,8 @@ /obj/item/knife = 50, /obj/item = 10) // 10% success with any sharp item. time = 24 - preop_sound = 'sound/items/screwdriver.ogg' - success_sound = 'sound/items/screwdriver2.ogg' + preop_sound = 'sound/items/tools/screwdriver.ogg' + success_sound = 'sound/items/tools/screwdriver2.ogg' /datum/surgery_step/mechanic_open/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -37,8 +37,8 @@ /obj/item/knife = 50, /obj/item = 10) // 10% success with any sharp item. time = 24 - preop_sound = 'sound/items/screwdriver.ogg' - success_sound = 'sound/items/screwdriver2.ogg' + preop_sound = 'sound/items/tools/screwdriver.ogg' + success_sound = 'sound/items/tools/screwdriver2.ogg' /datum/surgery_step/mechanic_close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -85,7 +85,7 @@ TOOL_WRENCH = 100, TOOL_RETRACTOR = 75) time = 24 - preop_sound = 'sound/items/ratchet.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' /datum/surgery_step/mechanic_unwrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -110,7 +110,7 @@ TOOL_WRENCH = 100, TOOL_RETRACTOR = 75) time = 24 - preop_sound = 'sound/items/ratchet.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' /datum/surgery_step/mechanic_wrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -133,8 +133,8 @@ name = "open the hatch (hand)" accept_hand = TRUE time = 10 - preop_sound = 'sound/items/ratchet.ogg' - preop_sound = 'sound/machines/doorclick.ogg' + preop_sound = 'sound/items/tools/ratchet.ogg' + preop_sound = 'sound/machines/airlock/doorclick.ogg' /datum/surgery_step/open_hatch/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index c4987ae5c4786..84edc783af7a9 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -137,8 +137,8 @@ implements = list( /obj/item/organ = 100, /obj/item/borg/apparatus/organ_storage = 100) - preop_sound = 'sound/surgery/organ2.ogg' - success_sound = 'sound/surgery/organ1.ogg' + preop_sound = 'sound/items/handling/surgery/organ2.ogg' + success_sound = 'sound/items/handling/surgery/organ1.ogg' var/implements_extract = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 55, /obj/item/kitchen/fork = 35) var/current_type @@ -165,8 +165,8 @@ tool = target_organ if(isorgan(tool)) current_type = "insert" - preop_sound = 'sound/surgery/hemostat1.ogg' - success_sound = 'sound/surgery/organ2.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/organ2.ogg' target_organ = tool if(target_zone != target_organ.zone || target.get_organ_slot(target_organ.slot)) to_chat(user, span_warning("There is no room for [target_organ] in [target]'s [target.parse_zone_with_bodypart(target_zone)]!")) diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index ce9dec4543846..22d95c9afd512 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -9,8 +9,8 @@ /obj/item/shard = 45, /obj/item = 30) // 30% success with any sharp item. time = 16 - preop_sound = 'sound/surgery/scalpel1.ogg' - success_sound = 'sound/surgery/scalpel2.ogg' + preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' + success_sound = 'sound/items/handling/surgery/scalpel2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/incise/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -64,7 +64,7 @@ /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) time = 24 - preop_sound = 'sound/surgery/hemostat1.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' /datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -95,8 +95,8 @@ TOOL_WIRECUTTER = 35, /obj/item/stack/rods = 35) time = 24 - preop_sound = 'sound/surgery/retractor1.ogg' - success_sound = 'sound/surgery/retractor2.ogg' + preop_sound = 'sound/items/handling/surgery/retractor1.ogg' + success_sound = 'sound/items/handling/surgery/retractor2.ogg' /datum/surgery_step/retract_skin/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -117,8 +117,8 @@ TOOL_WELDER = 70, /obj/item = 30) // 30% success with any hot item. time = 24 - preop_sound = 'sound/surgery/cautery1.ogg' - success_sound = 'sound/surgery/cautery2.ogg' + preop_sound = 'sound/items/handling/surgery/cautery1.ogg' + success_sound = 'sound/items/handling/surgery/cautery2.ogg' /datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( @@ -161,14 +161,14 @@ /obj/item = 25) //20% success (sort of) with any sharp item with a force >= 10 time = 54 preop_sound = list( - /obj/item/circular_saw = 'sound/surgery/saw.ogg', - /obj/item/melee/arm_blade = 'sound/surgery/scalpel1.ogg', - /obj/item/fireaxe = 'sound/surgery/scalpel1.ogg', - /obj/item/hatchet = 'sound/surgery/scalpel1.ogg', - /obj/item/knife/butcher = 'sound/surgery/scalpel1.ogg', - /obj/item = 'sound/surgery/scalpel1.ogg', + /obj/item/circular_saw = 'sound/items/handling/surgery/saw.ogg', + /obj/item/melee/arm_blade = 'sound/items/handling/surgery/scalpel1.ogg', + /obj/item/fireaxe = 'sound/items/handling/surgery/scalpel1.ogg', + /obj/item/hatchet = 'sound/items/handling/surgery/scalpel1.ogg', + /obj/item/knife/butcher = 'sound/items/handling/surgery/scalpel1.ogg', + /obj/item = 'sound/items/handling/surgery/scalpel1.ogg', ) - success_sound = 'sound/surgery/organ2.ogg' + success_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE /datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/organs/_organ.dm b/code/modules/surgery/organs/_organ.dm index 4d28b987abcaf..3e67b5c43792b 100644 --- a/code/modules/surgery/organs/_organ.dm +++ b/code/modules/surgery/organs/_organ.dm @@ -320,27 +320,40 @@ INITIALIZE_IMMEDIATE(/obj/item/organ) replacement.set_organ_damage(damage) /// Called by medical scanners to get a simple summary of how healthy the organ is. Returns an empty string if things are fine. -/obj/item/organ/proc/get_status_text(advanced) - if(advanced && (organ_flags & ORGAN_PROMINENT)) - return "Harmful Foreign Body" +/obj/item/organ/proc/get_status_text(advanced, add_tooltips) + if(advanced && (organ_flags & ORGAN_HAZARDOUS)) + return conditional_tooltip("Harmful Foreign Body", "Remove surgically.", add_tooltips) if(organ_flags & ORGAN_EMP) - return "EMP-Derived Failure Cascade in Progress" + return conditional_tooltip("EMP-Derived Failure", "Repair or replace surgically.", add_tooltips) + var/tech_text = "" if(owner.has_reagent(/datum/reagent/inverse/technetium)) - return "[round((damage/maxHealth)*100, 1)]% damaged." + tech_text = "[round((damage / maxHealth) * 100, 1)]% damaged" if(organ_flags & ORGAN_FAILING) - return "Non-Functional" + return conditional_tooltip("[tech_text || "Non-Functional"]", "Repair or replace surgically.", add_tooltips) if(damage > high_threshold) - return "Severely Damaged" + return conditional_tooltip("[tech_text || "Severely Damaged"]", "[healing_factor ? "Treat with rest or use specialty medication." : "Repair surgically or use specialty medication."]", add_tooltips && owner.stat != DEAD) - if (damage > low_threshold) - return "Mildly Damaged" + if(damage > low_threshold) + return conditional_tooltip("[tech_text || "Mildly Damaged"] ", "[healing_factor ? "Treat with rest." : "Use specialty medication."]", add_tooltips && owner.stat != DEAD) + + if(tech_text) + return "[tech_text]" return "" +/// Determines if this organ is shown when a user has condensed scans enabled +/obj/item/organ/proc/show_on_condensed_scans() + // We don't need to show *most* damaged organs as they have no effects associated + return (organ_flags & (ORGAN_PROMINENT|ORGAN_HAZARDOUS|ORGAN_FAILING|ORGAN_VITAL)) + +/// Similar to get_status_text, but appends the text after the damage report, for additional status info +/obj/item/organ/proc/get_status_appendix(advanced, add_tooltips) + return + /// Tries to replace the existing organ on the passed mob with this one, with special handling for replacing a brain without ghosting target /obj/item/organ/proc/replace_into(mob/living/carbon/new_owner) return Insert(new_owner, special = TRUE, movement_flags = DELETE_IF_REPLACED) diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 0bb8afc6ced52..59107666bfde5 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -93,7 +93,7 @@ stored_organ.Insert(target)//insert stored organ into the user stored_organ = null name = initial(name) //get rid of the organ in the name - playsound(target.loc, 'sound/weapons/circsawhit.ogg', 50, vary = TRUE) + playsound(target.loc, 'sound/items/weapons/circsawhit.ogg', 50, vary = TRUE) update_appearance() if(uses) diff --git a/code/modules/surgery/organs/external/wings/functional_wings.dm b/code/modules/surgery/organs/external/wings/functional_wings.dm index e1f364f547559..e97ed1bbd363d 100644 --- a/code/modules/surgery/organs/external/wings/functional_wings.dm +++ b/code/modules/surgery/organs/external/wings/functional_wings.dm @@ -1,3 +1,6 @@ +#define FUNCTIONAL_WING_FORCE 2.25 NEWTONS +#define FUNCTIONAL_WING_STABILIZATION 1.2 NEWTONS + ///hud action for starting and stopping flight /datum/action/innate/flight name = "Toggle Flight" @@ -10,11 +13,6 @@ var/obj/item/organ/external/wings/functional/wings = human.get_organ_slot(ORGAN_SLOT_EXTERNAL_WINGS) if(wings?.can_fly(human)) wings.toggle_flight(human) - if(!(human.movement_type & FLYING)) - to_chat(human, span_notice("You settle gently back onto the ground...")) - else - to_chat(human, span_notice("You beat your wings and begin to hover gently above the ground...")) - human.set_resting(FALSE, TRUE) ///The true wings that you can use to fly and shit (you cant actually shit with them) /obj/item/organ/external/wings/functional @@ -54,7 +52,7 @@ ///Called on_life(). Handle flight code and check if we're still flying /obj/item/organ/external/wings/functional/proc/handle_flight(mob/living/carbon/human/human) - if(!(human.movement_type & FLYING)) + if(!HAS_TRAIT_FROM(human, TRAIT_MOVE_FLOATING, SPECIES_FLIGHT_TRAIT)) return FALSE if(!can_fly(human)) toggle_flight(human) @@ -78,8 +76,7 @@ if(environment?.return_pressure() < HAZARD_LOW_PRESSURE + 10) to_chat(human, span_warning("The atmosphere is too thin for you to fly!")) return FALSE - else - return TRUE + return TRUE ///Slipping but in the air? /obj/item/organ/external/wings/functional/proc/fly_slip(mob/living/carbon/human/human) @@ -106,19 +103,48 @@ ///UNSAFE PROC, should only be called through the Activate or other sources that check for CanFly /obj/item/organ/external/wings/functional/proc/toggle_flight(mob/living/carbon/human/human) - if(!HAS_TRAIT_FROM(human, TRAIT_MOVE_FLYING, SPECIES_FLIGHT_TRAIT)) + if(!HAS_TRAIT_FROM(human, TRAIT_MOVE_FLOATING, SPECIES_FLIGHT_TRAIT)) human.physiology.stun_mod *= 2 - human.add_traits(list(TRAIT_NO_FLOATING_ANIM, TRAIT_MOVE_FLYING), SPECIES_FLIGHT_TRAIT) + human.add_traits(list(TRAIT_NO_FLOATING_ANIM, TRAIT_MOVE_FLOATING, TRAIT_IGNORING_GRAVITY, TRAIT_NOGRAV_ALWAYS_DRIFT), SPECIES_FLIGHT_TRAIT) + human.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/wings) + human.AddElement(/datum/element/forced_gravity, 0) passtable_on(human, SPECIES_FLIGHT_TRAIT) + RegisterSignal(human, COMSIG_MOB_CLIENT_MOVE_NOGRAV, PROC_REF(on_client_move)) + START_PROCESSING(SSnewtonian_movement, src) open_wings() - else - human.physiology.stun_mod *= 0.5 - human.remove_traits(list(TRAIT_NO_FLOATING_ANIM, TRAIT_MOVE_FLYING), SPECIES_FLIGHT_TRAIT) - passtable_off(human, SPECIES_FLIGHT_TRAIT) - close_wings() - + to_chat(human, span_notice("You beat your wings and begin to hover gently above the ground...")) + human.set_resting(FALSE, TRUE) + human.refresh_gravity() + return + + human.physiology.stun_mod *= 0.5 + human.remove_traits(list(TRAIT_NO_FLOATING_ANIM, TRAIT_MOVE_FLOATING, TRAIT_IGNORING_GRAVITY, TRAIT_NOGRAV_ALWAYS_DRIFT), SPECIES_FLIGHT_TRAIT) + human.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/wings) + human.RemoveElement(/datum/element/forced_gravity, 0) + passtable_off(human, SPECIES_FLIGHT_TRAIT) + UnregisterSignal(human, COMSIG_MOB_CLIENT_MOVE_NOGRAV) + STOP_PROCESSING(SSnewtonian_movement, src) + to_chat(human, span_notice("You settle gently back onto the ground...")) + close_wings() human.refresh_gravity() +/obj/item/organ/external/wings/functional/proc/on_client_move(mob/source, list/move_args) + SIGNAL_HANDLER + + if (!can_fly(source)) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / source.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + source.newtonian_move(dir2angle(source.client.intended_direction), instant = TRUE, drift_force = FUNCTIONAL_WING_FORCE, controlled_cap = max_drift_force) + source.setDir(source.client.intended_direction) + +/obj/item/organ/external/wings/functional/process(seconds_per_tick) + if (!owner || !can_fly(owner) || isnull(owner.drift_handler)) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / owner.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + owner.drift_handler.stabilize_drift(owner.client.intended_direction ? dir2angle(owner.client.intended_direction) : null, owner.client.intended_direction ? max_drift_force : 0, FUNCTIONAL_WING_STABILIZATION * (seconds_per_tick * 1 SECONDS)) + ///SPREAD OUR WINGS AND FLLLLLYYYYYY /obj/item/organ/external/wings/functional/proc/open_wings() var/datum/bodypart_overlay/mutant/wings/functional/overlay = bodypart_overlay @@ -194,7 +220,7 @@ sprite_accessory_override = /datum/sprite_accessory/wings/skeleton /obj/item/organ/external/wings/functional/moth/make_flap_sound(mob/living/carbon/wing_owner) - playsound(wing_owner, 'sound/voice/moth/moth_flutter.ogg', 50, TRUE) + playsound(wing_owner, 'sound/mobs/humanoids/moth/moth_flutter.ogg', 50, TRUE) ///mothra wings, which relate to moths. /obj/item/organ/external/wings/functional/moth/mothra @@ -219,3 +245,6 @@ name = "slime wings" desc = "How does something so squishy even fly?" sprite_accessory_override = /datum/sprite_accessory/wings/slime + +#undef FUNCTIONAL_WING_FORCE +#undef FUNCTIONAL_WING_STABILIZATION diff --git a/code/modules/surgery/organs/external/wings/moth_wings.dm b/code/modules/surgery/organs/external/wings/moth_wings.dm index a76b60325ff6d..16b9832f6de0f 100644 --- a/code/modules/surgery/organs/external/wings/moth_wings.dm +++ b/code/modules/surgery/organs/external/wings/moth_wings.dm @@ -1,3 +1,5 @@ +#define MOTH_WING_FORCE 1 NEWTONS + ///Moth wings! They can flutter in low-grav and burn off in heat /obj/item/organ/external/wings/moth name = "moth wings" @@ -18,40 +20,60 @@ . = ..() RegisterSignal(receiver, COMSIG_HUMAN_BURNING, PROC_REF(try_burn_wings)) RegisterSignal(receiver, COMSIG_LIVING_POST_FULLY_HEAL, PROC_REF(heal_wings)) - RegisterSignal(receiver, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(update_float_move)) + RegisterSignal(receiver, COMSIG_MOB_CLIENT_MOVE_NOGRAV, PROC_REF(on_client_move)) + START_PROCESSING(SSnewtonian_movement, src) /obj/item/organ/external/wings/moth/on_mob_remove(mob/living/carbon/organ_owner) . = ..() - UnregisterSignal(organ_owner, list(COMSIG_HUMAN_BURNING, COMSIG_LIVING_POST_FULLY_HEAL, COMSIG_MOVABLE_PRE_MOVE)) - REMOVE_TRAIT(organ_owner, TRAIT_FREE_FLOAT_MOVEMENT, REF(src)) + UnregisterSignal(organ_owner, list(COMSIG_HUMAN_BURNING, COMSIG_LIVING_POST_FULLY_HEAL, COMSIG_MOB_CLIENT_MOVE_NOGRAV)) + STOP_PROCESSING(SSnewtonian_movement, src) /obj/item/organ/external/wings/moth/make_flap_sound(mob/living/carbon/wing_owner) - playsound(wing_owner, 'sound/voice/moth/moth_flutter.ogg', 50, TRUE) + playsound(wing_owner, 'sound/mobs/humanoids/moth/moth_flutter.ogg', 50, TRUE) /obj/item/organ/external/wings/moth/can_soften_fall() return !burnt -///Check if we can flutter around -/obj/item/organ/external/wings/moth/proc/update_float_move() - SIGNAL_HANDLER - - if(can_fly()) - var/datum/gas_mixture/current = owner.loc.return_air() - if(current && (current.return_pressure() >= ONE_ATMOSPHERE*0.85)) //as long as there's reasonable pressure and no gravity, flight is possible - ADD_TRAIT(owner, TRAIT_FREE_FLOAT_MOVEMENT, REF(src)) - return - - REMOVE_TRAIT(owner, TRAIT_FREE_FLOAT_MOVEMENT, REF(src)) - -///Checks if our wings are usable -/obj/item/organ/external/wings/moth/proc/can_fly() +/obj/item/organ/external/wings/moth/proc/allow_flight() + if(!owner || !owner.client) + return FALSE + if(!isturf(owner.loc)) + return FALSE + if(!(owner.movement_type & FLOATING) || owner.buckled) + return FALSE + if(owner.pulledby) + return FALSE + if(owner.throwing) + return FALSE + if(owner.has_gravity()) + return FALSE if(ishuman(owner)) var/mob/living/carbon/human/human_owner = owner if(human_owner.wear_suit?.flags_inv & HIDEMUTWINGS) return FALSE //Can't fly with hidden wings - if(isspaceturf(owner.loc) || burnt) - return FALSE //No flight in space/burnt wings - return TRUE + if(burnt) + return FALSE + var/datum/gas_mixture/current = owner.loc.return_air() + if(current && (current.return_pressure() >= ONE_ATMOSPHERE*0.85)) + return TRUE + return FALSE + +/obj/item/organ/external/wings/moth/process(seconds_per_tick) + if (!owner || !allow_flight() || isnull(owner.drift_handler)) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / owner.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + owner.drift_handler.stabilize_drift(owner.client.intended_direction ? dir2angle(owner.client.intended_direction) : null, owner.client.intended_direction ? max_drift_force : 0, MOTH_WING_FORCE * (seconds_per_tick * 1 SECONDS)) + +/obj/item/organ/external/wings/moth/proc/on_client_move(mob/source, list/move_args) + SIGNAL_HANDLER + + if (!allow_flight()) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / source.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + source.newtonian_move(dir2angle(source.client.intended_direction), instant = TRUE, drift_force = MOTH_WING_FORCE, controlled_cap = max_drift_force) + source.setDir(source.client.intended_direction) ///check if our wings can burn off ;_; /obj/item/organ/external/wings/moth/proc/try_burn_wings(mob/living/carbon/human/human) @@ -106,3 +128,5 @@ /datum/bodypart_overlay/mutant/wings/moth/get_base_icon_state() return burnt ? burn_datum.icon_state : sprite_datum.icon_state + +#undef MOTH_WING_FORCE diff --git a/code/modules/surgery/organs/internal/appendix/_appendix.dm b/code/modules/surgery/organs/internal/appendix/_appendix.dm index 169495bccaa33..795871c7ccd5d 100644 --- a/code/modules/surgery/organs/internal/appendix/_appendix.dm +++ b/code/modules/surgery/organs/internal/appendix/_appendix.dm @@ -14,8 +14,8 @@ healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY - now_failing = "An explosion of pain erupts in your lower right abdomen!" - now_fixed = "The pain in your abdomen has subsided." + now_failing = span_warning("An explosion of pain erupts in your lower right abdomen!") + now_fixed = span_info("The pain in your abdomen has subsided.") var/inflamation_stage = 0 @@ -87,11 +87,10 @@ ADD_TRAIT(organ_owner, TRAIT_DISEASELIKE_SEVERITY_MEDIUM, type) organ_owner.med_hud_set_status() -/obj/item/organ/internal/appendix/get_status_text(advanced) - if((!(organ_flags & ORGAN_FAILING)) && inflamation_stage) - return "Inflamed" - else - return ..() +/obj/item/organ/internal/appendix/get_status_text(advanced, add_tooltips) + if(!(organ_flags & ORGAN_FAILING) && inflamation_stage) + return conditional_tooltip("Inflamed", "Remove surgically.", add_tooltips) + return ..() #undef APPENDICITIS_PROB #undef INFLAMATION_ADVANCEMENT_PROB diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm index 4a7dcab80f259..0946d1441039c 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm @@ -14,9 +14,9 @@ /// You can use this var for item path, it would be converted into an item on New(). var/obj/item/active_item /// Sound played when extending - var/extend_sound = 'sound/mecha/mechmove03.ogg' + var/extend_sound = 'sound/vehicles/mecha/mechmove03.ogg' /// Sound played when retracting - var/retract_sound = 'sound/mecha/mechmove03.ogg' + var/retract_sound = 'sound/vehicles/mecha/mechmove03.ogg' /// Organ slot that the implant occupies for the right arm var/right_arm_organ_slot = ORGAN_SLOT_RIGHT_ARM_AUG /// Organ slot that the implant occupies for the left arm @@ -235,7 +235,7 @@ if(prob(30/severity) && owner && !(organ_flags & ORGAN_FAILING)) Retract() owner.visible_message(span_danger("A loud bang comes from [owner]\'s [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm!")) - playsound(get_turf(owner), 'sound/weapons/flashbang.ogg', 100, TRUE) + playsound(get_turf(owner), 'sound/items/weapons/flashbang.ogg', 100, TRUE) to_chat(owner, span_userdanger("You feel an explosion erupt inside your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm as your implant breaks!")) owner.adjust_fire_stacks(20) owner.ignite_mob() @@ -467,7 +467,7 @@ var/mob/living/carbon/human/human_target = target if(human_target.check_block(source, punch_damage, "[source]'s' [picked_hit_type]")) source.do_attack_animation(target) - playsound(living_target.loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(living_target.loc, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) log_combat(source, target, "attempted to [picked_hit_type]", "muscle implant") return COMPONENT_CANCEL_ATTACK_CHAIN @@ -480,7 +480,7 @@ potential_damage += biotype_bonus_damage source.do_attack_animation(target, ATTACK_EFFECT_SMASH) - playsound(living_target.loc, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(living_target.loc, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) var/target_zone = living_target.get_random_valid_zone(source.zone_selected) var/armor_block = living_target.run_armor_check(target_zone, MELEE, armour_penetration = attacking_bodypart.unarmed_effectiveness) diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm b/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm index 060499936d53d..c9cbfbe445bdf 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_chest.dm @@ -117,7 +117,7 @@ owner.visible_message(span_warning("[owner]'s body convulses a bit.")) playsound(owner, SFX_BODYFALL, 50, TRUE) - playsound(owner, 'sound/machines/defib_zap.ogg', 75, TRUE, -1) + playsound(owner, 'sound/machines/defib/defib_zap.ogg', 75, TRUE, -1) owner.set_heartattack(FALSE) owner.revive() owner.emote("gasp") @@ -169,11 +169,13 @@ AddComponent( \ /datum/component/jetpack, \ FALSE, \ + 1.5 NEWTONS, \ + 1.2 NEWTONS, \ COMSIG_THRUSTER_ACTIVATED, \ COMSIG_THRUSTER_DEACTIVATED, \ THRUSTER_ACTIVATION_FAILED, \ CALLBACK(src, PROC_REF(allow_thrust), 0.01), \ - /datum/effect_system/trail_follow/ion \ + /datum/effect_system/trail_follow/ion, \ ) /obj/item/organ/internal/cyberimp/chest/thrusters/Remove(mob/living/carbon/thruster_owner, special, movement_flags) diff --git a/code/modules/surgery/organs/internal/ears/_ears.dm b/code/modules/surgery/organs/internal/ears/_ears.dm index 9fd0d89adfdd8..bbc45b093998c 100644 --- a/code/modules/surgery/organs/internal/ears/_ears.dm +++ b/code/modules/surgery/organs/internal/ears/_ears.dm @@ -9,10 +9,10 @@ healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY - low_threshold_passed = "Your ears begin to resonate with an internal ring sometimes." - now_failing = "You are unable to hear at all!" - now_fixed = "Noise slowly begins filling your ears once more." - low_threshold_cleared = "The ringing in your ears has died down." + low_threshold_passed = span_info("Your ears begin to resonate with an internal ring sometimes.") + now_failing = span_warning("You are unable to hear at all!") + now_fixed = span_info("Noise slowly begins filling your ears once more.") + low_threshold_cleared = span_info("The ringing in your ears has died down.") /// `deaf` measures "ticks" of deafness. While > 0, the person is unable to hear anything. var/deaf = 0 @@ -42,7 +42,7 @@ adjustEarDamage(0, -0.5 * seconds_per_tick) if((damage > low_threshold) && SPT_PROB(damage / 60, seconds_per_tick)) adjustEarDamage(0, 4) - SEND_SOUND(owner, sound('sound/weapons/flash_ring.ogg')) + SEND_SOUND(owner, sound('sound/items/weapons/flash_ring.ogg')) /obj/item/organ/internal/ears/apply_organ_damage(damage_amount, maximum, required_organ_flag) . = ..() @@ -57,6 +57,22 @@ UnregisterSignal(organ_owner, COMSIG_MOB_SAY) REMOVE_TRAIT(organ_owner, TRAIT_DEAF, EAR_DAMAGE) +/obj/item/organ/internal/ears/get_status_appendix(advanced, add_tooltips) + if(owner.stat == DEAD || !HAS_TRAIT(owner, TRAIT_DEAF)) + return + if(advanced) + if(HAS_TRAIT_FROM(owner, TRAIT_DEAF, QUIRK_TRAIT)) + return conditional_tooltip("Subject is permanently deaf.", "Irreparable under normal circumstances.", add_tooltips) + if(HAS_TRAIT_FROM(owner, TRAIT_DEAF, GENETIC_MUTATION)) + return conditional_tooltip("Subject is genetically deaf.", "Use medication such as [/datum/reagent/medicine/mutadone::name].", add_tooltips) + if(HAS_TRAIT_FROM(owner, TRAIT_DEAF, EAR_DAMAGE)) + return conditional_tooltip("Subject is [(organ_flags & ORGAN_FAILING) ? "permanently": "temporarily"] deaf from ear damage.", "Repair surgically, use medication such as [/datum/reagent/medicine/inacusiate::name], or protect ears with earmuffs.", add_tooltips) + return "Subject is deaf." + +/obj/item/organ/internal/ears/show_on_condensed_scans() + // Always show if we have an appendix + return ..() || (owner.stat != DEAD && HAS_TRAIT(owner, TRAIT_DEAF)) + /** * Snowflake proc to handle temporary deafness * @@ -128,6 +144,7 @@ /obj/item/organ/internal/ears/invincible damage_multiplier = 0 + /obj/item/organ/internal/ears/cat name = "cat ears" icon = 'icons/obj/clothing/head/costume.dmi' @@ -144,12 +161,12 @@ /// Bodypart overlay for the horrible cat ears /datum/bodypart_overlay/mutant/cat_ears - layers = EXTERNAL_FRONT | EXTERNAL_ADJACENT + layers = EXTERNAL_FRONT | EXTERNAL_BEHIND color_source = ORGAN_COLOR_HAIR feature_key = "ears" - /// We dont color the inner part, which is the front layer - var/colorless_layer = EXTERNAL_FRONT + /// Layer upon which we add the inner ears overlay + var/inner_layer = EXTERNAL_FRONT /datum/bodypart_overlay/mutant/cat_ears/get_global_feature_list() return SSaccessories.ears_list @@ -159,10 +176,21 @@ return FALSE return TRUE -/datum/bodypart_overlay/mutant/cat_ears/color_image(image/overlay, draw_layer, obj/item/bodypart/limb) - if(draw_layer != bitflag_to_layer(colorless_layer)) - return ..() - return overlay +/datum/bodypart_overlay/mutant/cat_ears/get_image(image_layer, obj/item/bodypart/limb) + var/mutable_appearance/base_ears = ..() + + // Only add inner ears on the inner layer + if(image_layer != bitflag_to_layer(inner_layer)) + return base_ears + + // Construct image of inner ears, apply to base ears as an overlay + feature_key += "inner" + var/mutable_appearance/inner_ears = ..() + inner_ears.appearance_flags = RESET_COLOR + feature_key = initial(feature_key) + + base_ears.overlays += inner_ears + return base_ears /obj/item/organ/internal/ears/penguin name = "penguin ears" diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm index 3cfb06031cfc3..ddf59b71455d0 100644 --- a/code/modules/surgery/organs/internal/eyes/_eyes.dm +++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm @@ -13,12 +13,12 @@ high_threshold = 0.3 * STANDARD_ORGAN_THRESHOLD //threshold at 30 low_threshold = 0.2 * STANDARD_ORGAN_THRESHOLD //threshold at 20 - low_threshold_passed = "Distant objects become somewhat less tangible." - high_threshold_passed = "Everything starts to look a lot less clear." - now_failing = "Darkness envelopes you, as your eyes go blind!" - now_fixed = "Color and shapes are once again perceivable." - high_threshold_cleared = "Your vision functions passably once more." - low_threshold_cleared = "Your vision is cleared of any ailment." + low_threshold_passed = span_info("Distant objects become somewhat less tangible.") + high_threshold_passed = span_info("Everything starts to look a lot less clear.") + now_failing = span_warning("Darkness envelopes you, as your eyes go blind!") + now_fixed = span_info("Color and shapes are once again perceivable.") + high_threshold_cleared = span_info("Your vision functions passably once more.") + low_threshold_cleared = span_info("Your vision is cleared of any ailment.") /// Sight flags this eye pair imparts on its user. var/sight_flags = NONE @@ -121,6 +121,36 @@ #define OFFSET_X 1 #define OFFSET_Y 2 +/// Similar to get_status_text, but appends the text after the damage report, for additional status info +/obj/item/organ/internal/eyes/get_status_appendix(advanced, add_tooltips) + if(owner.stat == DEAD || HAS_TRAIT(owner, TRAIT_KNOCKEDOUT)) + return + if(owner.is_blind()) + if(advanced) + if(owner.is_blind_from(QUIRK_TRAIT)) + return conditional_tooltip("Subject is permanently blind.", "Irreparable under normal circumstances.", add_tooltips) + if(owner.is_blind_from(TRAUMA_TRAIT)) + return conditional_tooltip("Subject is blind from mental trauma.", "Repair via treatment of associated trauma.", add_tooltips) + if(owner.is_blind_from(GENETIC_MUTATION)) + return conditional_tooltip("Subject is genetically blind.", "Use medication such as [/datum/reagent/medicine/mutadone::name].", add_tooltips) + if(owner.is_blind_from(EYE_DAMAGE)) + return conditional_tooltip("Subject is blind from eye damage.", "Repair surgically, use medication such as [/datum/reagent/medicine/oculine::name], or protect eyes with a blindfold.", add_tooltips) + return "Subject is blind." + if(owner.is_nearsighted()) + if(advanced) + if(owner.is_nearsighted_from(QUIRK_TRAIT)) + return conditional_tooltip("Subject is permanently nearsighted.", "Irreparable under normal circumstances. Prescription glasses will assuage the effects.", add_tooltips) + if(owner.is_nearsighted_from(GENETIC_MUTATION)) + return conditional_tooltip("Subject is genetically nearsighted.", "Use medication such as [/datum/reagent/medicine/mutadone::name]. Prescription glasses will assuage the effects.", add_tooltips) + if(owner.is_nearsighted_from(EYE_DAMAGE)) + return conditional_tooltip("Subject is nearsighted from eye damage.", "Repair surgically or use medication such as [/datum/reagent/medicine/oculine::name]. Prescription glasses will assuage the effects.", add_tooltips) + return "Subject is nearsighted." + return "" + +/obj/item/organ/internal/eyes/show_on_condensed_scans() + // Always show if we have an appendix + return ..() || (owner.stat != DEAD && !HAS_TRAIT(owner, TRAIT_KNOCKEDOUT) && (owner.is_blind() || owner.is_nearsighted())) + /// This proc generates a list of overlays that the eye should be displayed using for the given parent /obj/item/organ/internal/eyes/proc/generate_body_overlay(mob/living/carbon/human/parent) if(!istype(parent) || parent.get_organ_by_type(/obj/item/organ/internal/eyes) != src) diff --git a/code/modules/surgery/organs/internal/heart/_heart.dm b/code/modules/surgery/organs/internal/heart/_heart.dm index d52e483da389d..ce659792529bb 100644 --- a/code/modules/surgery/organs/internal/heart/_heart.dm +++ b/code/modules/surgery/organs/internal/heart/_heart.dm @@ -92,6 +92,15 @@ /obj/item/organ/internal/heart/proc/is_beating() return beating +/obj/item/organ/internal/heart/get_status_text(advanced, add_tooltips) + if(!beating && !(organ_flags & ORGAN_FAILING) && owner.needs_heart() && owner.stat != DEAD) + return conditional_tooltip("Cardiac Arrest", "Apply defibrillation immediately. Similar electric shocks may work in emergencies.", add_tooltips) + return ..() + +/obj/item/organ/internal/heart/show_on_condensed_scans() + // Always show if the guy needs a heart (so its status can be monitored) + return ..() || owner.needs_heart() + /obj/item/organ/internal/heart/on_life(seconds_per_tick, times_fired) ..() @@ -115,11 +124,11 @@ if(beat != BEAT_SLOW) beat = BEAT_SLOW to_chat(owner, span_notice("You feel your heart slow down...")) - SEND_SOUND(owner, sound('sound/health/slowbeat.ogg', repeat = TRUE, channel = CHANNEL_HEARTBEAT, volume = 40)) + SEND_SOUND(owner, sound('sound/effects/health/slowbeat.ogg', repeat = TRUE, channel = CHANNEL_HEARTBEAT, volume = 40)) else if(owner.stat == HARD_CRIT) if(beat != BEAT_FAST && owner.has_status_effect(/datum/status_effect/jitter)) - SEND_SOUND(owner, sound('sound/health/fastbeat.ogg', repeat = TRUE, channel = CHANNEL_HEARTBEAT, volume = 40)) + SEND_SOUND(owner, sound('sound/effects/health/fastbeat.ogg', repeat = TRUE, channel = CHANNEL_HEARTBEAT, volume = 40)) beat = BEAT_FAST else if(beat != BEAT_NONE) diff --git a/code/modules/surgery/organs/internal/heart/heart_anomalock.dm b/code/modules/surgery/organs/internal/heart/heart_anomalock.dm index 4a80f1857a0df..31e9e64750c92 100644 --- a/code/modules/surgery/organs/internal/heart/heart_anomalock.dm +++ b/code/modules/surgery/organs/internal/heart/heart_anomalock.dm @@ -59,7 +59,7 @@ to_chat(user, span_userdanger("Black cyberveins tear your skin apart, pulling the heart into your ribcage. This feels unwise..")) if(!do_after(user, 5 SECONDS, interaction_key = DOAFTER_IMPLANTING_HEART)) return ..() - playsound(target_mob, 'sound/weapons/slice.ogg', 100, TRUE) + playsound(target_mob, 'sound/items/weapons/slice.ogg', 100, TRUE) user.temporarilyRemoveItemFromInventory(src, TRUE) Insert(user) user.apply_damage(100, BRUTE, BODY_ZONE_CHEST) diff --git a/code/modules/surgery/organs/internal/heart/heart_ethereal.dm b/code/modules/surgery/organs/internal/heart/heart_ethereal.dm index 3e853a965b1bf..781df0dceb1f3 100644 --- a/code/modules/surgery/organs/internal/heart/heart_ethereal.dm +++ b/code/modules/surgery/organs/internal/heart/heart_ethereal.dm @@ -187,7 +187,7 @@ src.ethereal_heart = ethereal_heart ethereal_heart.owner.visible_message(span_notice("The crystals fully encase [ethereal_heart.owner]!")) to_chat(ethereal_heart.owner, span_notice("You are encased in a huge crystal!")) - playsound(get_turf(src), 'sound/effects/ethereal_crystalization.ogg', 50) + playsound(get_turf(src), 'sound/mobs/humanoids/ethereal/ethereal_crystalization.ogg', 50) var/atom/movable/possible_chair = ethereal_heart.owner.buckled possible_chair?.unbuckle_mob(ethereal_heart.owner, force = TRUE) ethereal_heart.owner.forceMove(src) //put that ethereal in @@ -203,7 +203,7 @@ update_appearance(UPDATE_OVERLAYS) /obj/structure/ethereal_crystal/atom_destruction(damage_flag) - playsound(get_turf(ethereal_heart.owner), 'sound/effects/ethereal_revive_fail.ogg', 100) + playsound(get_turf(ethereal_heart.owner), 'sound/mobs/humanoids/ethereal/ethereal_revive_fail.ogg', 100) return ..() /obj/structure/ethereal_crystal/Destroy() @@ -236,7 +236,7 @@ // revive will regenerate organs, so our heart refence is going to be null'd. Unreliable var/mob/living/carbon/regenerating = ethereal_heart.owner - playsound(get_turf(regenerating), 'sound/effects/ethereal_revive.ogg', 100) + playsound(get_turf(regenerating), 'sound/mobs/humanoids/ethereal/ethereal_revive.ogg', 100) to_chat(regenerating, span_notice("You burst out of the crystal with vigour... But at a cost.")) regenerating.gain_trauma(picked_trauma, TRAUMA_RESILIENCE_ABSOLUTE) regenerating.revive(HEAL_ALL & ~HEAL_REFRESH_ORGANS) diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm index 5f435fff98ebb..b2d85a26f8fdc 100644 --- a/code/modules/surgery/organs/internal/lungs/_lungs.dm +++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm @@ -12,11 +12,11 @@ healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY * 0.9 // fails around 16.5 minutes, lungs are one of the last organs to die (of the ones we have) - low_threshold_passed = "You feel short of breath." - high_threshold_passed = "You feel some sort of constriction around your chest as your breathing becomes shallow and rapid." - now_fixed = "Your lungs seem to once again be able to hold air." - low_threshold_cleared = "You can breathe normally again." - high_threshold_cleared = "The constriction around your chest loosens as your breathing calms down." + low_threshold_passed = span_warning("You feel short of breath.") + high_threshold_passed = span_warning("You feel some sort of constriction around your chest as your breathing becomes shallow and rapid.") + now_fixed = span_warning("Your lungs seem to once again be able to hold air.") + low_threshold_cleared = span_info("You can breathe normally again.") + high_threshold_cleared = span_info("The constriction around your chest loosens as your breathing calms down.") var/failed = FALSE var/operated = FALSE //whether we can still have our damages fixed through surgery @@ -547,7 +547,7 @@ if((prob(nitrium_pp) && (nitrium_pp > 15))) // Nitrium side-effect. breather.adjustOrganLoss(ORGAN_SLOT_LUNGS, nitrium_pp * 0.1) - to_chat(breather, "You feel a burning sensation in your chest") + to_chat(breather, span_notice("You feel a burning sensation in your chest")) // Metabolize to reagents. if (nitrium_pp > 5) var/existing = breather.reagents.get_reagent_amount(/datum/reagent/nitrium_low_metabolization) diff --git a/code/modules/surgery/organs/internal/stomach/_stomach.dm b/code/modules/surgery/organs/internal/stomach/_stomach.dm index 4f1edd1542d69..7e7a864f0a04c 100644 --- a/code/modules/surgery/organs/internal/stomach/_stomach.dm +++ b/code/modules/surgery/organs/internal/stomach/_stomach.dm @@ -15,10 +15,10 @@ healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY * 1.15 // ~13 minutes, the stomach is one of the first organs to die - low_threshold_passed = "Your stomach flashes with pain before subsiding. Food doesn't seem like a good idea right now." - high_threshold_passed = "Your stomach flares up with constant pain- you can hardly stomach the idea of food right now!" - high_threshold_cleared = "The pain in your stomach dies down for now, but food still seems unappealing." - low_threshold_cleared = "The last bouts of pain in your stomach have died out." + low_threshold_passed = span_info("Your stomach flashes with pain before subsiding. Food doesn't seem like a good idea right now.") + high_threshold_passed = span_warning("Your stomach flares up with constant pain- you can hardly stomach the idea of food right now!") + high_threshold_cleared = span_info("The pain in your stomach dies down for now, but food still seems unappealing.") + low_threshold_cleared = span_info("The last bouts of pain in your stomach have died out.") food_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue = 5) //This is a reagent user and needs more then the 10u from edible component diff --git a/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm b/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm index 7df01c516a319..d340edbecea64 100644 --- a/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm +++ b/code/modules/surgery/organs/internal/stomach/stomach_ethereal.dm @@ -105,7 +105,7 @@ //fixed_mut_color is also ethereal color (for some reason) carbon.flash_lighting_fx(5, 7, human.dna.species.fixed_mut_color ? human.dna.species.fixed_mut_color : human.dna.features["mcolor"]) - playsound(carbon, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + playsound(carbon, 'sound/effects/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) carbon.cut_overlay(overcharge) // Only a small amount of the energy gets discharged as the zap. The rest dissipates as heat. Keeps the damage and energy from the zap the same regardless of what STANDARD_CELL_CHARGE is. var/discharged_energy = -adjust_charge(ETHEREAL_CHARGE_FULL - cell.charge()) * min(7500 / STANDARD_CELL_CHARGE, 1) diff --git a/code/modules/surgery/organs/internal/vocal_cords/_vocal_cords.dm b/code/modules/surgery/organs/internal/vocal_cords/_vocal_cords.dm index 4ed51e77e42d6..f6fed86a90d60 100644 --- a/code/modules/surgery/organs/internal/vocal_cords/_vocal_cords.dm +++ b/code/modules/surgery/organs/internal/vocal_cords/_vocal_cords.dm @@ -78,7 +78,7 @@ return owner.can_speak() /obj/item/organ/internal/vocal_cords/colossus/handle_speech(message) - playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 300, TRUE, 5) + playsound(get_turf(owner), 'sound/effects/magic/clockwork/invoke_general.ogg', 300, TRUE, 5) return //voice of god speaks for us /obj/item/organ/internal/vocal_cords/colossus/speak_with(message) diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index 0d452d851f266..a9905513e8c65 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -34,9 +34,9 @@ /obj/item/stack/sheet/plastic = 100, /obj/item/stack/sheet/meat = 100) time = 3.2 SECONDS - preop_sound = 'sound/effects/blobattack.ogg' - success_sound = 'sound/effects/attackblob.ogg' - failure_sound = 'sound/effects/blobattack.ogg' + preop_sound = 'sound/effects/blob/blobattack.ogg' + success_sound = 'sound/effects/blob/attackblob.ogg' + failure_sound = 'sound/effects/blob/blobattack.ogg' /datum/surgery_step/insert_plastic/preop(mob/user, mob/living/target, target_zone, obj/item/stack/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/repair_puncture.dm b/code/modules/surgery/repair_puncture.dm index 0d2e2d3123ca4..b916668433f08 100644 --- a/code/modules/surgery/repair_puncture.dm +++ b/code/modules/surgery/repair_puncture.dm @@ -45,7 +45,7 @@ TOOL_SCALPEL = 85, TOOL_WIRECUTTER = 40) time = 3 SECONDS - preop_sound = 'sound/surgery/hemostat1.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' surgery_effects_mood = TRUE /datum/surgery_step/repair_innards/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -106,8 +106,8 @@ TOOL_WELDER = 70, /obj/item = 30) time = 4 SECONDS - preop_sound = 'sound/surgery/cautery1.ogg' - success_sound = 'sound/surgery/cautery2.ogg' + preop_sound = 'sound/items/handling/surgery/cautery1.ogg' + success_sound = 'sound/items/handling/surgery/cautery2.ogg' /datum/surgery_step/seal_veins/tool_check(mob/user, obj/item/tool) if(implement_type == TOOL_WELDER || implement_type == /obj/item) diff --git a/code/modules/surgery/revival.dm b/code/modules/surgery/revival.dm index 5ade25890ecb6..76689032fb6a4 100644 --- a/code/modules/surgery/revival.dm +++ b/code/modules/surgery/revival.dm @@ -63,8 +63,8 @@ /obj/item/gun/energy = 60) repeatable = TRUE time = 5 SECONDS - success_sound = 'sound/magic/lightningbolt.ogg' - failure_sound = 'sound/magic/lightningbolt.ogg' + success_sound = 'sound/effects/magic/lightningbolt.ogg' + failure_sound = 'sound/effects/magic/lightningbolt.ogg' /datum/surgery_step/revive/tool_check(mob/user, obj/item/tool) . = TRUE @@ -98,7 +98,7 @@ /datum/surgery_step/revive/play_preop_sound(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery) if(istype(tool, /obj/item/shockpaddles)) - playsound(tool, 'sound/machines/defib_charge.ogg', 75, 0) + playsound(tool, 'sound/machines/defib/defib_charge.ogg', 75, 0) else ..() diff --git a/code/modules/surgery/sleeper_protocol.dm b/code/modules/surgery/sleeper_protocol.dm index 277a8c170d6d3..23b02aeda801d 100644 --- a/code/modules/surgery/sleeper_protocol.dm +++ b/code/modules/surgery/sleeper_protocol.dm @@ -67,8 +67,8 @@ TOOL_WIRECUTTER = 50, /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) - preop_sound = 'sound/surgery/hemostat1.ogg' - success_sound = 'sound/surgery/hemostat1.ogg' + preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' + success_sound = 'sound/items/handling/surgery/hemostat1.ogg' /datum/surgery_step/brainwash/sleeper_agent/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) objective = pick(possible_objectives) diff --git a/code/modules/surgery/stomachpump.dm b/code/modules/surgery/stomachpump.dm index 4d6dca105dacf..4880f9329646f 100644 --- a/code/modules/surgery/stomachpump.dm +++ b/code/modules/surgery/stomachpump.dm @@ -36,7 +36,7 @@ accept_hand = TRUE repeatable = TRUE time = 20 - success_sound = 'sound/surgery/organ2.ogg' + success_sound = 'sound/items/handling/surgery/organ2.ogg' /datum/surgery_step/stomach_pump/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index c0f71b57ca235..fc6480e923908 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -100,7 +100,7 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2, /datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/plasma =SHEET_MATERIAL_AMOUNT, /datum/material/uranium = SHEET_MATERIAL_AMOUNT*1.5, /datum/material/titanium = SHEET_MATERIAL_AMOUNT*1.5) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' w_class = WEIGHT_CLASS_NORMAL toolspeed = 0.7 light_system = OVERLAY_LIGHT @@ -139,7 +139,7 @@ set_light_color(LIGHT_COLOR_ORANGE) balloon_alert(user, "lenses set to [active ? "drill" : "mend"]") - playsound(user ? user : src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(user ? user : src, 'sound/items/weapons/tap.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/cautery/advanced/examine() @@ -154,7 +154,7 @@ inhand_icon_state = "drill" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - hitsound = 'sound/weapons/circsawhit.ogg' + hitsound = 'sound/items/weapons/circsawhit.ogg' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*5, /datum/material/glass = SHEET_MATERIAL_AMOUNT*3) obj_flags = CONDUCTS_ELECTRICITY item_flags = SURGICAL_TOOL @@ -191,7 +191,7 @@ /obj/item/surgicaldrill/augment desc = "Effectively a small power drill contained within your arm. May or may not pierce the heavens." - hitsound = 'sound/weapons/circsawhit.ogg' + hitsound = 'sound/items/weapons/circsawhit.ogg' w_class = WEIGHT_CLASS_SMALL toolspeed = 0.5 @@ -214,7 +214,7 @@ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2, /datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT) attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' sharpness = SHARP_EDGED tool_behaviour = TOOL_SCALPEL toolspeed = 1 @@ -255,8 +255,8 @@ inhand_icon_state = "saw" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - hitsound = 'sound/weapons/circsawhit.ogg' - mob_throw_hit_sound = 'sound/weapons/pierce.ogg' + hitsound = 'sound/items/weapons/circsawhit.ogg' + mob_throw_hit_sound = 'sound/items/weapons/pierce.ogg' obj_flags = CONDUCTS_ELECTRICITY item_flags = SURGICAL_TOOL force = 15 @@ -281,7 +281,7 @@ speed = 4 SECONDS * toolspeed, \ effectiveness = 100, \ bonus_modifier = 5, \ - butcher_sound = 'sound/weapons/circsawhit.ogg', \ + butcher_sound = 'sound/items/weapons/circsawhit.ogg', \ ) //saws are very accurate and fast at butchering var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/chainsaw) @@ -372,7 +372,7 @@ if(!istype(design_holder, /obj/item/disk/surgery) && !istype(design_holder, /obj/machinery/computer/operating)) return NONE balloon_alert(user, "copying designs...") - playsound(src, 'sound/machines/terminal_processing.ogg', 25, TRUE) + playsound(src, 'sound/machines/terminal/terminal_processing.ogg', 25, TRUE) if(do_after(user, 1 SECONDS, target = design_holder)) if(istype(design_holder, /obj/item/disk/surgery)) var/obj/item/disk/surgery/surgery_disk = design_holder @@ -380,7 +380,7 @@ else var/obj/machinery/computer/operating/surgery_computer = design_holder loaded_surgeries |= surgery_computer.advanced_surgeries - playsound(src, 'sound/machines/terminal_success.ogg', 25, TRUE) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 25, TRUE) downloaded = TRUE update_appearance(UPDATE_OVERLAYS) return ITEM_INTERACT_SUCCESS @@ -408,7 +408,7 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*3, /datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/silver =SHEET_MATERIAL_AMOUNT, /datum/material/gold =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/diamond =SMALL_MATERIAL_AMOUNT * 2, /datum/material/titanium = SHEET_MATERIAL_AMOUNT*2) - hitsound = 'sound/weapons/blade1.ogg' + hitsound = 'sound/items/weapons/blade1.ogg' force = 16 w_class = WEIGHT_CLASS_NORMAL toolspeed = 0.7 @@ -496,7 +496,7 @@ tool_behaviour = (active ? TOOL_HEMOSTAT : TOOL_RETRACTOR) balloon_alert(user, "gears set to [active ? "clamp" : "retract"]") - playsound(user ? user : src, 'sound/items/change_drill.ogg', 50, TRUE) + playsound(user ? user : src, 'sound/items/tools/change_drill.ogg', 50, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/retractor/advanced/examine() @@ -556,14 +556,14 @@ var/amputation_speed_mod = 1 patient.visible_message(span_danger("[user] begins to secure [src] around [patient]'s [candidate_name]."), span_userdanger("[user] begins to secure [src] around your [candidate_name]!")) - playsound(get_turf(patient), 'sound/items/ratchet.ogg', 20, TRUE) + playsound(get_turf(patient), 'sound/items/tools/ratchet.ogg', 20, TRUE) if(patient.stat >= UNCONSCIOUS || HAS_TRAIT(patient, TRAIT_INCAPACITATED)) //if you're incapacitated (due to paralysis, a stun, being in staminacrit, etc.), critted, unconscious, or dead, it's much easier to properly line up a snip amputation_speed_mod *= 0.5 if(patient.stat != DEAD && patient.has_status_effect(/datum/status_effect/jitter)) //jittering will make it harder to secure the shears, even if you can't otherwise move amputation_speed_mod *= 1.5 //15*0.5*1.5=11.25, so staminacritting someone who's jittering (from, say, a stun baton) won't give you enough time to snip their head off, but staminacritting someone who isn't jittering will if(do_after(user, toolspeed * 15 SECONDS * amputation_speed_mod, target = patient)) - playsound(get_turf(patient), 'sound/weapons/bladeslice.ogg', 250, TRUE) + playsound(get_turf(patient), 'sound/items/weapons/bladeslice.ogg', 250, TRUE) if(user.zone_selected == BODY_ZONE_PRECISE_GROIN) //OwO tail_snip_candidate.Remove(patient) tail_snip_candidate.forceMove(get_turf(patient)) @@ -583,7 +583,7 @@ if(thing.body_part == CHEST) continue addtimer(CALLBACK(thing, TYPE_PROC_REF(/obj/item/bodypart/, dismember)), timer) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), user, 'sound/weapons/bladeslice.ogg', 70), timer) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), user, 'sound/items/weapons/bladeslice.ogg', 70), timer) timer += 1 SECONDS sleep(timer) return BRUTELOSS diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index 9fb8b02b0196c..a680056b0e5e7 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -61,7 +61,7 @@ */ /datum/tgui_panel/proc/on_initialize_timed_out() // Currently does nothing but sending a message to old chat. - SEND_TEXT(client, "Failed to load fancy chat, click HERE to attempt to reload it.") + SEND_TEXT(client, span_userdanger("Failed to load fancy chat, click HERE to attempt to reload it.")) /** * private diff --git a/code/modules/transport/_transport_machinery.dm b/code/modules/transport/_transport_machinery.dm index a51d6d840d372..6028510293815 100644 --- a/code/modules/transport/_transport_machinery.dm +++ b/code/modules/transport/_transport_machinery.dm @@ -125,7 +125,7 @@ machine.balloon_alert(user, "interrupted!") return FALSE - playsound(src, 'sound/machines/synth_yes.ogg', 75, use_reverb = TRUE) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 75, use_reverb = TRUE) machine.balloon_alert(user, "success!") UnregisterSignal(src, repair_signals) LAZYNULL(repair_signals) diff --git a/code/modules/transport/elevator/elev_controller.dm b/code/modules/transport/elevator/elev_controller.dm index 870211ecb56d9..ce49efafe4bd8 100644 --- a/code/modules/transport/elevator/elev_controller.dm +++ b/code/modules/transport/elevator/elev_controller.dm @@ -106,7 +106,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/button/elevator, 32) // Actually try to call the elevator - this sleeps. // If we failed to call it, play a buzz sound. if(!call_elevator(activator)) - playsound(loc, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(loc, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) // Finally, give people a chance to get off after it's done before going back off cooldown COOLDOWN_START(src, elevator_cooldown, 2 SECONDS) @@ -154,7 +154,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/button/elevator, 32) if(!QDELETED(prime_lift) && prime_lift.z != loc.z) if(!QDELETED(activator)) loc.balloon_alert(activator, "elevator out of service!") - playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(loc, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return TRUE // Everything went according to plan diff --git a/code/modules/transport/linear_controller.dm b/code/modules/transport/linear_controller.dm index 1b3ffd30c148f..0388fe11482f3 100644 --- a/code/modules/transport/linear_controller.dm +++ b/code/modules/transport/linear_controller.dm @@ -345,7 +345,7 @@ var/obj/structure/transport/linear/prime_lift = return_closest_platform_to_z(direction == UP ? world.maxz : 0) // ...because we use the duration of the sound effect to make it last for roughly the duration of the lift travel - playsound(prime_lift, 'sound/mecha/hydraulic.ogg', 25, vary = TRUE, frequency = clamp(HYDRAULIC_SFX_DURATION / lift_move_duration, 0.33, 3)) + playsound(prime_lift, 'sound/vehicles/mecha/hydraulic.ogg', 25, vary = TRUE, frequency = clamp(HYDRAULIC_SFX_DURATION / lift_move_duration, 0.33, 3)) // Move the platform after a timer addtimer(CALLBACK(src, PROC_REF(move_lift_vertically), direction, user), lift_move_duration, TIMER_UNIQUE) diff --git a/code/modules/transport/tram/tram_controller.dm b/code/modules/transport/tram/tram_controller.dm index 11b3bbcdec9e9..5ac6d5bc748bc 100644 --- a/code/modules/transport/tram/tram_controller.dm +++ b/code/modules/transport/tram/tram_controller.dm @@ -256,7 +256,7 @@ set_status_code(PRE_DEPARTURE, FALSE) if(controller_status & EMERGENCY_STOP) set_status_code(EMERGENCY_STOP, FALSE) - playsound(paired_cabinet, 'sound/machines/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/synth/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller reset.") if(malf_active) @@ -346,7 +346,7 @@ addtimer(CALLBACK(src, PROC_REF(unlock_controls)), 2 SECONDS) if((controller_status & SYSTEM_FAULT) && (nav_beacon.loc == destination_platform.loc)) //position matches between controller and tram, we're back on track set_status_code(SYSTEM_FAULT, FALSE) - playsound(paired_cabinet, 'sound/machines/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/synth/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller reset.") log_transport("TC: [specific_transport_id] position data successfully reset.") speed_limiter = initial(speed_limiter) @@ -366,7 +366,7 @@ addtimer(CALLBACK(src, PROC_REF(unlock_controls)), 4 SECONDS) if(controller_status & SYSTEM_FAULT) set_status_code(SYSTEM_FAULT, FALSE) - playsound(paired_cabinet, 'sound/machines/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/synth/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller reset.") log_transport("TC: [specific_transport_id] position data successfully reset. ") speed_limiter = initial(speed_limiter) @@ -375,7 +375,7 @@ addtimer(CALLBACK(src, PROC_REF(cycle_doors), CYCLE_OPEN), 2 SECONDS) malf_active = FALSE throw_chance = initial(throw_chance) - playsound(paired_cabinet, 'sound/machines/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/buzz/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller error. Please contact your engineering department.") idle_platform = destination_platform tram_registration.distance_travelled += (travel_trip_length - travel_remaining) @@ -393,7 +393,7 @@ /datum/transport_controller/linear/tram/proc/halt_and_catch_fire() if(controller_status & SYSTEM_FAULT) if(!isnull(paired_cabinet)) - playsound(paired_cabinet, 'sound/machines/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/buzz/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller error. Please contact your engineering department.") log_transport("TC: [specific_transport_id] Transport Controller failed!") @@ -421,7 +421,7 @@ if(get_turf(idle_platform) == get_turf(nav_beacon)) set_status_code(SYSTEM_FAULT, FALSE) set_status_code(EMERGENCY_STOP, FALSE) - playsound(paired_cabinet, 'sound/machines/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/synth/synth_yes.ogg', 40, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller reset.") log_transport("TC: [specific_transport_id] Transport Controller reset was requested, but the tram nav data seems correct. Info: nav_pos ([nav_beacon.x], [nav_beacon.y], [nav_beacon.z]) idle_pos ([idle_platform.x], [idle_platform.y], [idle_platform.z]).") return @@ -436,7 +436,7 @@ var/reset_beacon = closest_nav_in_travel_dir(nav_beacon, tram_velocity_sign, specific_transport_id) if(!reset_beacon) - playsound(paired_cabinet, 'sound/machines/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/buzz/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Controller reset failed. Contact manufacturer.") // If you screwed up the tram this bad, I don't even log_transport("TC: [specific_transport_id] non-recoverable error! Tram is at ([nav_beacon.x], [nav_beacon.y], [nav_beacon.z] [tram_velocity_sign ? "OUTBOUND" : "INBOUND"]) and can't find a reset beacon.") message_admins("Tram ID [specific_transport_id] is in a non-recoverable error state at [ADMIN_JMP(nav_beacon)]. If it's causing problems, delete the controller datum from the 'Reset Tram' proc in the Debug tab.") @@ -457,7 +457,7 @@ log_transport("TC: [specific_transport_id] trying to reset at [destination_platform].") /datum/transport_controller/linear/tram/proc/estop() - playsound(paired_cabinet, 'sound/machines/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(paired_cabinet, 'sound/machines/buzz/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) paired_cabinet.say("Emergency stop activated!") set_status_code(EMERGENCY_STOP, TRUE) log_transport("TC: [specific_transport_id] requested emergency stop.") @@ -887,9 +887,9 @@ /obj/machinery/transport/tram_controller/proc/toggle_door() if(!cover_open) - playsound(loc, 'sound/machines/closet_open.ogg', 35, TRUE, -3) + playsound(loc, 'sound/machines/closet/closet_open.ogg', 35, TRUE, -3) else - playsound(loc, 'sound/machines/closet_close.ogg', 50, TRUE, -3) + playsound(loc, 'sound/machines/closet/closet_close.ogg', 50, TRUE, -3) cover_open = !cover_open update_appearance() diff --git a/code/modules/transport/tram/tram_doors.dm b/code/modules/transport/tram/tram_doors.dm index 6d5231db96c56..6e1680bcb4c15 100644 --- a/code/modules/transport/tram/tram_doors.dm +++ b/code/modules/transport/tram/tram_doors.dm @@ -14,8 +14,8 @@ air_tight = TRUE req_access = list(ACCESS_TCOMMS) transport_linked_id = TRAMSTATION_LINE_1 - doorOpen = 'sound/machines/tramopen.ogg' - doorClose = 'sound/machines/tramclose.ogg' + doorOpen = 'sound/machines/tram/tramopen.ogg' + doorClose = 'sound/machines/tram/tramclose.ogg' autoclose = FALSE /// Weakref to the tram we're attached var/datum/weakref/transport_ref @@ -43,7 +43,7 @@ update_icon(ALL, AIRLOCK_OPENING, TRUE) if(forced >= BYPASS_DOOR_CHECKS) - playsound(src, 'sound/machines/airlockforced.ogg', vol = 40, vary = FALSE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', vol = 40, vary = FALSE) sleep(TRAM_DOOR_CYCLE_TIME) else playsound(src, doorOpen, vol = 40, vary = FALSE) @@ -101,7 +101,7 @@ for(var/atom/movable/blocker in checked_turf) if(blocker.density && blocker != src) //something is blocking the door say("Please stand clear of the doors!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) layer = OPEN_DOOR_LAYER update_icon(ALL, AIRLOCK_OPEN, 1) operating = FALSE @@ -167,7 +167,7 @@ close() return - playsound(src, 'sound/machines/buzz-two.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 60, vary = FALSE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) say("YOU'RE HOLDING UP THE TRAM, ASSHOLE!") close(forced = BYPASS_DOOR_CHECKS) diff --git a/code/modules/transport/tram/tram_signals.dm b/code/modules/transport/tram/tram_signals.dm index a5d309b8378b0..7f0da9331d613 100644 --- a/code/modules/transport/tram/tram_signals.dm +++ b/code/modules/transport/tram/tram_signals.dm @@ -562,7 +562,7 @@ new_partner.paired_sensor = WEAKREF(src) new_partner.set_machine_stat(machine_stat & ~MAINT) new_partner.update_appearance() - playsound(src, 'sound/machines/synth_yes.ogg', 75, vary = FALSE, use_reverb = TRUE) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 75, vary = FALSE, use_reverb = TRUE) /obj/machinery/transport/guideway_sensor/Destroy() SStransport.sensors -= src @@ -571,7 +571,7 @@ divorcee.set_machine_stat(machine_stat & ~MAINT) divorcee.paired_sensor = null divorcee.update_appearance() - playsound(src, 'sound/machines/synth_no.ogg', 75, vary = FALSE, use_reverb = TRUE) + playsound(src, 'sound/machines/synth/synth_no.ogg', 75, vary = FALSE, use_reverb = TRUE) paired_sensor = null . = ..() diff --git a/code/modules/transport/tram/tram_structures.dm b/code/modules/transport/tram/tram_structures.dm index 1eed69c84ffb0..bdea433a9c925 100644 --- a/code/modules/transport/tram/tram_structures.dm +++ b/code/modules/transport/tram/tram_structures.dm @@ -55,9 +55,9 @@ /// Sound when it breaks var/break_sound = SFX_SHATTER /// Sound when hit without combat mode - var/knock_sound = 'sound/effects/glassknock.ogg' + var/knock_sound = 'sound/effects/glass/glassknock.ogg' /// Sound when hit with combat mode - var/bash_sound = 'sound/effects/glassbash.ogg' + var/bash_sound = 'sound/effects/glass/glassbash.ogg' /obj/structure/tram/split base_icon_state = "tram-split" diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index 809bf60d230a8..1bda9875c2648 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -128,7 +128,7 @@ description = "It smells fishy." /obj/structure/aquarium/traits - allow_breeding = TRUE + reproduction_and_growth = TRUE var/obj/item/fish/testdummy/crossbreeder/crossbreeder var/obj/item/fish/testdummy/cloner/cloner var/obj/item/fish/testdummy/sterile/sterile @@ -155,7 +155,7 @@ fish_traits = list(/datum/fish_trait/no_mating) /obj/structure/aquarium/evolution - allow_breeding = TRUE + reproduction_and_growth = TRUE var/obj/item/fish/testdummy/evolve/evolve var/obj/item/fish/testdummy/evolve_two/evolve_two @@ -182,7 +182,9 @@ new_fish_type = /obj/item/fish/clownfish new_traits = list(/datum/fish_trait/dummy/two) removed_traits = list(/datum/fish_trait/dummy) + show_on_wiki = FALSE +///This is used by both fish_evolution and fish_growth unit tests. /datum/fish_evolution/dummy/two new_fish_type = /obj/item/fish/goldfish @@ -190,6 +192,12 @@ . = ..() probability = 0 //works around the global list initialization skipping abstract/impossible evolutions. +///During the fish_growth unit test, we spawn a fish outside of the aquarium and check that this actually stops it from growing +/datum/fish_evolution/dummy/two/growth_checks(obj/item/fish/source, seconds_per_tick, growth) + . = ..() + if(!isaquarium(source.loc)) + return COMPONENT_DONT_GROW + ///A test that checks that fishing portals can be linked and function as expected /datum/unit_test/fish_portal_gen_linking @@ -312,29 +320,49 @@ run_loc_floor_bottom_left.ChangeTurf(original_turf_type, original_turf_baseturfs) return ..() -///Check that you can actually raise a chasm crab without errors. -/datum/unit_test/raise_a_chasm_crab +///Check that the fish growth component works. +/datum/unit_test/fish_growth -/datum/unit_test/raise_a_chasm_crab/Run() +/datum/unit_test/fish_growth/Run() var/obj/structure/aquarium/crab/aquarium = allocate(/obj/structure/aquarium/crab) - SEND_SIGNAL(aquarium.crabbie, COMSIG_FISH_LIFE, 1) //give the fish growth component a small push. + var/list/growth_comps = aquarium.crabbie.GetComponents(/datum/component/fish_growth) //Can't use GetComponent() without s because the comp is dupe-selective + var/datum/component/fish_growth/crab_growth = growth_comps[1] + + crab_growth.on_fish_life(aquarium.crabbie, seconds_per_tick = 1) //give the fish growth component a small push. + var/mob/living/basic/mining/lobstrosity/juvenile/lobster = locate() in aquarium.loc + TEST_ASSERT(lobster, "The lobstrosity didn't spawn at all. chasm crab maturation: [crab_growth.maturation]%.") TEST_ASSERT_EQUAL(lobster.loc, get_turf(aquarium), "The lobstrosity didn't spawn on the aquarium's turf") TEST_ASSERT(QDELETED(aquarium.crabbie), "The test aquarium's chasm crab didn't delete itself.") + TEST_ASSERT_EQUAL(lobster.name, "Crabbie", "The lobstrosity didn't inherit the aquarium chasm crab's custom name") allocated |= lobster //make sure it's allocated and thus properly deleted when the test is over + //While ideally impossible to have all traits because of incompatible ones, I want to be sure they don't error out. for(var/trait_type in GLOB.fish_traits) var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] trait.apply_to_mob(lobster) + var/obj/item/fish/testdummy/dummy = allocate(/obj/item/fish/testdummy) + var/datum/component/fish_growth/dummy_growth = dummy.AddComponent(/datum/component/fish_growth, /datum/fish_evolution/dummy/two, 1 SECONDS, use_drop_loc = FALSE) + dummy.last_feeding = world.time + dummy_growth.on_fish_life(dummy, seconds_per_tick = 1) + TEST_ASSERT(!QDELETED(dummy), "The fish has grown when it shouldn't have") + dummy.forceMove(aquarium) + dummy_growth.on_fish_life(dummy, seconds_per_tick = 1) + var/obj/item/fish/dummy_boogaloo = locate(/datum/fish_evolution/dummy/two::new_fish_type) in aquarium + TEST_ASSERT(dummy_boogaloo, "The new fish type cannot be found inside the aquarium") + /obj/structure/aquarium/crab - allow_breeding = TRUE //needed for growing up + reproduction_and_growth = TRUE //needed for growing up ///Our test subject var/obj/item/fish/chasm_crab/instant_growth/crabbie /obj/structure/aquarium/crab/Initialize(mapload) . = ..() crabbie = new(src) + crabbie.name = "Crabbie" + crabbie.last_feeding = world.time + crabbie.AddComponent(/datum/component/fish_growth, crabbie.lob_type, 1 SECONDS) /obj/structure/aquarium/crab/Exited(atom/movable/gone) . = ..() @@ -342,7 +370,6 @@ crabbie = null /obj/item/fish/chasm_crab/instant_growth - growth_rate = 100 fish_traits = list() //We don't want to end up applying traits twice on the resulting lobstrosity /datum/unit_test/fish_sources @@ -452,6 +479,13 @@ /obj/item/fish/testdummy/food average_weight = FISH_WEIGHT_BITE_DIVISOR * 2 //One bite, it's death; the other, it's gone. +///Check that nothing wrong happens when randomizing size and weight of a fish +/datum/unit_test/fish_randomize_size_weight + +/datum/unit_test/fish_randomize_size_weight/Run() + var/obj/item/storage/box/fish_debug/box = allocate(/obj/item/storage/box/fish_debug) + for(var/obj/item/fish/fish as anything in box) + fish.randomize_size_and_weight() + #undef FISH_REAGENT_AMOUNT #undef TRAIT_FISH_TESTING - diff --git a/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png b/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png index adc462ace50d1..c29a1e742f1f4 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png and b/code/modules/unit_tests/screenshots/screenshot_dynamic_human_icons_syndicate_commando.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_husk_body.png b/code/modules/unit_tests/screenshots/screenshot_husk_body.png index d113b47384678..0892b864695ac 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_husk_body.png and b/code/modules/unit_tests/screenshots/screenshot_husk_body.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png b/code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png index 1a1db7dfd87fe..6ea75db4bb7b7 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png and b/code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png differ diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 2cd85f786fc48..6a2fd57821fc1 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -127,7 +127,7 @@ "[WOUND_PICK_HIGHEST_SEVERITY]" ))) carbon_occupant.cause_wound_of_type_and_severity(WOUND_BLUNT, head_to_wound, WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, pick_mode) - carbon_occupant.playsound_local(src, 'sound/weapons/flash_ring.ogg', 50) + carbon_occupant.playsound_local(src, 'sound/items/weapons/flash_ring.ogg', 50) carbon_occupant.set_eye_blur_if_lower(rand(10 SECONDS, 20 SECONDS)) hittarget_living.adjustBruteLoss(200) @@ -168,7 +168,7 @@ target_pancake.visible_message(span_warning("[src] runs over [target_pancake], flattening [target_pancake.p_them()] like a pancake!")) target_pancake.AddElement(/datum/element/squish, 5 SECONDS) target_pancake.Paralyze(2 SECONDS) - playsound(target_pancake, 'sound/effects/cartoon_splat.ogg', 75) + playsound(target_pancake, 'sound/effects/cartoon_sfx/cartoon_splat.ogg', 75) log_combat(src, crossed, "ran over") /obj/vehicle/sealed/car/clowncar/emag_act(mob/user, obj/item/card/emag/emag_card) diff --git a/code/modules/vehicles/cars/vim.dm b/code/modules/vehicles/cars/vim.dm index 56e1da7528d95..e2d9c50e5d66c 100644 --- a/code/modules/vehicles/cars/vim.dm +++ b/code/modules/vehicles/cars/vim.dm @@ -90,7 +90,7 @@ update_appearance() playsound(src, 'sound/machines/windowdoor.ogg', 50, TRUE) if(atom_integrity == max_integrity) - SEND_SOUND(newoccupant, sound('sound/mecha/nominal.ogg',volume=50)) + SEND_SOUND(newoccupant, sound('sound/vehicles/mecha/nominal.ogg',volume=50)) /obj/vehicle/sealed/car/vim/mob_try_exit(mob/pilot, mob/user, silent = FALSE, randomstep = FALSE) . = ..() diff --git a/code/modules/vehicles/lavaboat.dm b/code/modules/vehicles/lavaboat.dm index 0336ff486dd47..fbe130d969709 100644 --- a/code/modules/vehicles/lavaboat.dm +++ b/code/modules/vehicles/lavaboat.dm @@ -67,7 +67,7 @@ /obj/item/ship_in_a_bottle/attack_self(mob/user) to_chat(user, span_notice("You're not sure how they get the ships in these things, but you're pretty sure you know how to get it out.")) - playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, TRUE) + playsound(user.loc, 'sound/effects/glass/glassbr1.ogg', 100, TRUE) new /obj/vehicle/ridden/lavaboat/dragon(get_turf(src)) qdel(src) diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index 4755631dfeb0a..ccb211a2a6678 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -35,6 +35,8 @@ generic_canpass = FALSE hud_possible = list(DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_TRACK_HUD, DIAG_CAMERA_HUD) mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi' + /// Significantly heavier than humans + inertia_force_weight = 5 ///How much energy the mech will consume each time it moves. this is the current active energy consumed var/step_energy_drain = 0.008 * STANDARD_CELL_CHARGE ///How much energy we drain each time we mechpunch someone @@ -134,12 +136,12 @@ ///Whether our steps are silent due to no gravity var/step_silent = FALSE ///Sound played when the mech moves - var/stepsound = 'sound/mecha/mechstep.ogg' + var/stepsound = 'sound/vehicles/mecha/mechstep.ogg' ///Sound played when the mech walks - var/turnsound = 'sound/mecha/mechturn.ogg' + var/turnsound = 'sound/vehicles/mecha/mechturn.ogg' ///Sounds for types of melee attack - var/brute_attack_sound = 'sound/weapons/punch4.ogg' - var/burn_attack_sound = 'sound/items/welder.ogg' + var/brute_attack_sound = 'sound/items/weapons/punch4.ogg' + var/burn_attack_sound = 'sound/items/tools/welder.ogg' var/tox_attack_sound = 'sound/effects/spray2.ogg' ///Sound on wall destroying var/destroy_wall_sound = 'sound/effects/meteorimpact.ogg' @@ -376,7 +378,7 @@ /obj/vehicle/sealed/mecha/proc/set_safety(mob/user) weapons_safety = !weapons_safety if(!safety_sound_custom) - SEND_SOUND(user, sound('sound/machines/beep.ogg', volume = 25)) + SEND_SOUND(user, sound('sound/machines/beep/beep.ogg', volume = 25)) balloon_alert(user, "equipment [weapons_safety ? "safe" : "ready"]") set_mouse_pointer() SEND_SIGNAL(src, COMSIG_MECH_SAFETIES_TOGGLE, user, weapons_safety) @@ -819,7 +821,7 @@ balloon_alert(occupant, "cabin [cabin_sealed ? "sealed" : "unsealed"]") log_message("Cabin [cabin_sealed ? "sealed" : "unsealed"].", LOG_MECHA) - playsound(src, 'sound/machines/airlock.ogg', 50, TRUE) + playsound(src, 'sound/machines/airlock/airlock.ogg', 50, TRUE) /// Special light eater handling /obj/vehicle/sealed/mecha/proc/on_light_eater(obj/vehicle/sealed/source, datum/light_eater) diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm index a466bc30d2245..0e1ab1302db91 100644 --- a/code/modules/vehicles/mecha/combat/durand.dm +++ b/code/modules/vehicles/mecha/combat/durand.dm @@ -236,13 +236,13 @@ own integrity back to max. Shield is automatically dropped if we run out of powe if(chassis.defense_mode) SetInvisibility(INVISIBILITY_NONE, id=type) flick("shield_raise", src) - playsound(src, 'sound/mecha/mech_shield_raise.ogg', 50, FALSE) + playsound(src, 'sound/vehicles/mecha/mech_shield_raise.ogg', 50, FALSE) icon_state = "shield" resetdir(chassis, dir, dir) // to set the plane for the shield properly when it's turned on RegisterSignal(chassis, COMSIG_ATOM_DIR_CHANGE, PROC_REF(resetdir)) else flick("shield_drop", src) - playsound(src, 'sound/mecha/mech_shield_drop.ogg', 50, FALSE) + playsound(src, 'sound/vehicles/mecha/mech_shield_drop.ogg', 50, FALSE) icon_state = "shield_null" addtimer(CALLBACK(src, PROC_REF(make_invisible)), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) UnregisterSignal(chassis, COMSIG_ATOM_DIR_CHANGE) @@ -283,7 +283,7 @@ own integrity back to max. Shield is automatically dropped if we run out of powe atom_integrity = 10000 /obj/durand_shield/play_attack_sound() - playsound(src, 'sound/mecha/mech_shield_deflect.ogg', 100, TRUE) + playsound(src, 'sound/vehicles/mecha/mech_shield_deflect.ogg', 100, TRUE) /obj/durand_shield/bullet_act() play_attack_sound() diff --git a/code/modules/vehicles/mecha/combat/justice.dm b/code/modules/vehicles/mecha/combat/justice.dm index 00b0543dbd865..5dbe4ac890e98 100644 --- a/code/modules/vehicles/mecha/combat/justice.dm +++ b/code/modules/vehicles/mecha/combat/justice.dm @@ -23,8 +23,8 @@ mech_type = EXOSUIT_MODULE_JUSTICE resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF mecha_flags = ID_LOCK_ON | QUIET_STEPS | QUIET_TURNS | CAN_STRAFE | HAS_LIGHTS | MMI_COMPATIBLE | IS_ENCLOSED - destroy_wall_sound = 'sound/mecha/mech_blade_break_wall.ogg' - brute_attack_sound = 'sound/mecha/mech_blade_attack.ogg' + destroy_wall_sound = 'sound/vehicles/mecha/mech_blade_break_wall.ogg' + brute_attack_sound = 'sound/vehicles/mecha/mech_blade_attack.ogg' attack_verbs = list("cut", "cuts", "cutting") weapons_safety = TRUE safety_sound_custom = TRUE @@ -70,7 +70,7 @@ else movedelay = MOVEDELAY_ANGRY - playsound(src, 'sound/mecha/mech_blade_safty.ogg', 75, FALSE) //everyone need to hear this sound + playsound(src, 'sound/vehicles/mecha/mech_blade_safty.ogg', 75, FALSE) //everyone need to hear this sound update_appearance(UPDATE_ICON_STATE) @@ -106,7 +106,7 @@ */ /obj/vehicle/sealed/mecha/justice/proc/finish_him(obj/vehicle/sealed/mecha/my_mech, mob/finisher, mob/living/him) say(pick("Take my Justice-Slash!", "A falling leaf...", "Justice is quite a lonely path"), forced = "Justice Mech") - playsound(src, 'sound/mecha/mech_stealth_pre_attack.ogg', 75, FALSE) + playsound(src, 'sound/vehicles/mecha/mech_stealth_pre_attack.ogg', 75, FALSE) if(!do_after(finisher, 1 SECONDS, him)) return if(QDELETED(finisher)) @@ -140,13 +140,13 @@ if(alpha == 255) return animate(src, alpha = 255, time = 0.5 SECONDS) - playsound(src, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + playsound(src, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) /obj/vehicle/sealed/mecha/justice/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir, armour_penetration) if(LAZYLEN(occupants)) if(prob(60)) new /obj/effect/temp_visual/mech_sparks(get_turf(src)) - playsound(src, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + playsound(src, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) return return ..() @@ -162,9 +162,9 @@ /// Energy cost to become invisibile var/energy_cost = 200 /// Aoe pre attack sound. - var/stealth_pre_attack_sound = 'sound/mecha/mech_stealth_pre_attack.ogg' + var/stealth_pre_attack_sound = 'sound/vehicles/mecha/mech_stealth_pre_attack.ogg' /// Aoe attack sound. - var/stealth_attack_sound = 'sound/mecha/mech_stealth_attack.ogg' + var/stealth_attack_sound = 'sound/vehicles/mecha/mech_stealth_attack.ogg' /datum/action/vehicle/sealed/mecha/invisibility/set_chassis(passed_chassis) . = ..() @@ -208,7 +208,7 @@ ///Called when invisibility activated. /datum/action/vehicle/sealed/mecha/invisibility/proc/invisibility_on() new /obj/effect/temp_visual/mech_sparks(get_turf(chassis)) - playsound(chassis, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + playsound(chassis, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) check_charge_attack() animate(chassis, alpha = 0, time = 0.5 SECONDS) button_icon_state = "mech_stealth_on" @@ -223,7 +223,7 @@ ///Called when invisibility deactivated. /datum/action/vehicle/sealed/mecha/invisibility/proc/invisibility_off() new /obj/effect/temp_visual/mech_sparks(get_turf(chassis)) - playsound(chassis, 'sound/mecha/mech_stealth_effect.ogg' , 75, FALSE) + playsound(chassis, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) invisibility_timer = null charge = FALSE addtimer(CALLBACK(src, PROC_REF(charge)), 5 SECONDS) @@ -369,7 +369,7 @@ /// Maximum range of charge attack. var/max_charge_range = 7 /// Sound when mech do charge attack. - var/charge_attack_sound = 'sound/mecha/mech_charge_attack.ogg' + var/charge_attack_sound = 'sound/vehicles/mecha/mech_charge_attack.ogg' /datum/action/vehicle/sealed/mecha/charge_attack/set_chassis(passed_chassis) . = ..() diff --git a/code/modules/vehicles/mecha/combat/marauder.dm b/code/modules/vehicles/mecha/combat/marauder.dm index 48e2d60cbd68e..32fd0627c6fb8 100644 --- a/code/modules/vehicles/mecha/combat/marauder.dm +++ b/code/modules/vehicles/mecha/combat/marauder.dm @@ -79,7 +79,7 @@ to_chat(owner, "[icon2html(chassis, owner)]Zoom mode [chassis.zoom_mode?"en":"dis"]abled.") if(chassis.zoom_mode) owner.client.view_size.setTo(4.5) - SEND_SOUND(owner, sound('sound/mecha/imag_enh.ogg', volume=50)) + SEND_SOUND(owner, sound('sound/vehicles/mecha/imag_enh.ogg', volume=50)) else owner.client.view_size.resetToDefault() build_all_button_icons() diff --git a/code/modules/vehicles/mecha/combat/phazon.dm b/code/modules/vehicles/mecha/combat/phazon.dm index cacfa7743dfbb..8f37b0945ec20 100644 --- a/code/modules/vehicles/mecha/combat/phazon.dm +++ b/code/modules/vehicles/mecha/combat/phazon.dm @@ -57,7 +57,7 @@ chassis.balloon_alert(owner,"your punches will now deal toxin damage") chassis.damtype = new_damtype button_icon_state = "mech_damtype_[new_damtype]" - playsound(chassis, 'sound/mecha/mechmove01.ogg', 50, TRUE) + playsound(chassis, 'sound/vehicles/mecha/mechmove01.ogg', 50, TRUE) build_all_button_icons() /datum/action/vehicle/sealed/mecha/mech_toggle_phasing diff --git a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm index 123cfef903581..dfcf2896b5b74 100644 --- a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm +++ b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm @@ -110,7 +110,7 @@ switch(skyfall_charge_level) if(1) chassis.visible_message(span_warning("[chassis] clicks and whirrs for a moment, with a low hum emerging from the legs.")) - playsound(chassis, 'sound/items/rped.ogg', 50, TRUE) + playsound(chassis, 'sound/items/tools/rped.ogg', 50, TRUE) if(2) chassis.visible_message(span_warning("[chassis] begins to shake, the sounds of electricity growing louder.")) chassis.Shake(1, 1, SKYFALL_SINGLE_CHARGE_TIME-1) // -1 gives space between the animates, so they don't interrupt eachother @@ -121,12 +121,12 @@ chassis.update_appearance(UPDATE_ICON_STATE) if(4) chassis.visible_message(span_warning("[chassis] sparks and shutters as it finalizes preparation.")) - playsound(chassis, 'sound/mecha/skyfall_power_up.ogg', 50, TRUE) + playsound(chassis, 'sound/vehicles/mecha/skyfall_power_up.ogg', 50, TRUE) chassis.Shake(3, 3, SKYFALL_SINGLE_CHARGE_TIME-1) // -1 gives space between the animates, so they don't interrupt eachother chassis.spark_system.start() if(SKYFALL_CHARGELEVEL_LAUNCH) chassis.visible_message(span_danger("[chassis] leaps into the air!")) - playsound(chassis, 'sound/weapons/gun/general/rocket_launch.ogg', 50, TRUE) + playsound(chassis, 'sound/items/weapons/gun/general/rocket_launch.ogg', 50, TRUE) if(skyfall_charge_level != SKYFALL_CHARGELEVEL_LAUNCH) skyfall_charge_loop() return @@ -171,7 +171,7 @@ /datum/action/vehicle/sealed/mecha/skyfall/proc/land() var/turf/landed_on = get_turf(chassis) chassis.visible_message(span_danger("[chassis] lands from above!")) - playsound(chassis, 'sound/effects/explosion1.ogg', 50, 1) + playsound(chassis, 'sound/effects/explosion/explosion1.ogg', 50, 1) chassis.resistance_flags &= ~INDESTRUCTIBLE chassis.mecha_flags &= ~(QUIET_STEPS|QUIET_TURNS|CANNOT_INTERACT) chassis.phasing = initial(chassis.phasing) @@ -286,7 +286,7 @@ owner.client.mouse_override_icon = 'icons/effects/mouse_pointers/supplypod_down_target.dmi' owner.update_mouse_pointer() owner.overlay_fullscreen("ivanov", /atom/movable/screen/fullscreen/ivanov_display, 1) - SEND_SOUND(owner, 'sound/machines/terminal_on.ogg') //spammable so I don't want to make it audible to anyone else + SEND_SOUND(owner, 'sound/machines/terminal/terminal_on.ogg') //spammable so I don't want to make it audible to anyone else /** * ## end_missile_targeting @@ -328,7 +328,7 @@ rockets_left-- if(rockets_left <= 0) end_missile_targeting() - SEND_SOUND(owner, 'sound/machines/triple_beep.ogg') + SEND_SOUND(owner, 'sound/machines/beep/triple_beep.ogg') S_TIMER_COOLDOWN_START(chassis, COOLDOWN_MECHA_MISSILE_STRIKE, strike_cooldown_time) podspawn(list( "target" = target_turf, diff --git a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm index 00d0a955d7b87..2ad10ae028d17 100644 --- a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm +++ b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm @@ -33,7 +33,7 @@ ///Boolean: whether a pacifist can use this equipment var/harmful = FALSE ///Sound file: Sound to play when this equipment is destroyed while still attached to the mech - var/destroy_sound = 'sound/mecha/critdestr.ogg' + var/destroy_sound = 'sound/vehicles/mecha/critdestr.ogg' /obj/item/mecha_parts/mecha_equipment/Destroy() if(chassis) @@ -201,7 +201,7 @@ /obj/item/mecha_parts/mecha_equipment/proc/detach(atom/moveto) moveto = moveto || get_turf(chassis) forceMove(moveto) - playsound(chassis, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(chassis, 'sound/items/weapons/tap.ogg', 50, TRUE) LAZYREMOVE(chassis.flat_equipment, src) var/to_unequip_slot = equipment_slot if(equipment_slot == MECHA_WEAPON) diff --git a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm index 95def3ef9b07c..bcf6d9a86ae81 100644 --- a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm @@ -74,7 +74,7 @@ if(istype(target, /turf/closed/mineral/gibtonite)) var/turf/closed/mineral/gibtonite/giberal_turf = target if(giberal_turf.stage != GIBTONITE_UNSTRUCK) - playsound(chassis, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + playsound(chassis, 'sound/machines/scanner/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) to_chat(source, span_warning("[icon2html(src, source)] Active gibtonite ore deposit detected! Safety protocols preventing continued drilling.")) return @@ -115,7 +115,7 @@ while(do_after_mecha(target, source, drill_delay)) if(isliving(target)) drill_mob(target, source) - playsound(src,'sound/weapons/drill.ogg',40,TRUE) + playsound(src,'sound/items/weapons/drill.ogg',40,TRUE) else if(isobj(target)) var/obj/obj_target = target if(istype(obj_target, /obj/item/boulder)) @@ -123,7 +123,7 @@ nu_boulder.manual_process(src, source) else obj_target.take_damage(15, BRUTE, 0, FALSE, get_dir(chassis, target)) - playsound(src,'sound/weapons/drill.ogg', 40, TRUE) + playsound(src,'sound/items/weapons/drill.ogg', 40, TRUE) // If we caused a qdel drilling the target, we can stop drilling them. // Prevents starting a do_after on a qdeleted target. diff --git a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm index f89ddb9e274c2..c30e67a274633 100644 --- a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm @@ -18,7 +18,7 @@ ///How much base damage this clamp does var/clamp_damage = 20 ///Audio for using the hydraulic clamp - var/clampsound = 'sound/mecha/hydraulic.ogg' + var/clampsound = 'sound/vehicles/mecha/hydraulic.ogg' ///Chassis but typed for the cargo_hold var var/obj/vehicle/sealed/mecha/ripley/workmech @@ -370,7 +370,7 @@ if(HAS_TRAIT(markone, TRAIT_MECHA_CREATED_NORMALLY)) ADD_TRAIT(newmech, TRAIT_MECHA_CREATED_NORMALLY, newmech) qdel(markone) - playsound(get_turf(newmech),'sound/items/ratchet.ogg',50,TRUE) + playsound(get_turf(newmech),'sound/items/tools/ratchet.ogg',50,TRUE) /obj/item/mecha_parts/mecha_equipment/ripleyupgrade/paddy name = "Paddy Conversion Kit" diff --git a/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.dm b/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.dm index 828bb6f152cea..ae78558bab6fa 100644 --- a/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.dm +++ b/code/modules/vehicles/mecha/equipment/weapons/mecha_ammo.dm @@ -8,7 +8,7 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' var/rounds = 0 var/direct_load //For weapons where we re-load the weapon itself rather than adding to the ammo storage. - var/load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg' + var/load_audio = 'sound/items/weapons/gun/general/mag_bullet_insert.ogg' var/ammo_type /// whether to qdel this mecha_ammo when it becomes empty var/qdel_on_empty = FALSE @@ -75,7 +75,7 @@ icon_state = "missile_he" rounds = 8 direct_load = TRUE - load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg' + load_audio = 'sound/items/weapons/gun/general/mag_bullet_insert.ogg' ammo_type = MECHA_AMMO_MISSILE_SRM /// PEP-6 Missile type - Used by Robotics @@ -86,7 +86,7 @@ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*4,/datum/material/gold=SMALL_MATERIAL_AMOUNT*5) rounds = 6 direct_load = TRUE - load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg' + load_audio = 'sound/items/weapons/gun/general/mag_bullet_insert.ogg' ammo_type = MECHA_AMMO_MISSILE_PEP /obj/item/mecha_ammo/flashbang diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm index 0bb691160b373..287c9e3cf0e20 100644 --- a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm +++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm @@ -2,7 +2,7 @@ name = "mecha weapon" range = MECHA_RANGED equipment_slot = MECHA_WEAPON - destroy_sound = 'sound/mecha/weapdestr.ogg' + destroy_sound = 'sound/vehicles/mecha/weapdestr.ogg' mech_flags = EXOSUIT_MODULE_COMBAT /// The type of bullet generated by the mecha weapon. var/projectile @@ -53,7 +53,7 @@ return FALSE /// Find our mecha, find the opposite direction. Used for kickback while the mecha is drifting in zero-g to launch us in this direction. - var/newtonian_target = REVERSE_DIR(chassis.dir) + var/newtonian_target = dir2angle(REVERSE_DIR(chassis.dir)) . = ..()//start the cooldown early because of sleeps for(var/projectiles_to_shoot in 1 to projectiles_per_shot) if(energy_drain && !chassis.has_charge(energy_drain))//in case we run out of energy mid-burst, such as emp @@ -97,7 +97,7 @@ icon_state = "mecha_laser" energy_drain = 30 projectile = /obj/projectile/beam/laser - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/disabler @@ -109,7 +109,7 @@ projectile = /obj/projectile/beam/disabler/weak variance = 25 projectiles_per_shot = 5 - fire_sound = 'sound/weapons/taser2.ogg' + fire_sound = 'sound/items/weapons/taser2.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/blue /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy @@ -119,7 +119,7 @@ icon_state = "mecha_laser" energy_drain = 60 projectile = /obj/projectile/beam/laser/heavylaser - fire_sound = 'sound/weapons/lasercannonfire.ogg' + fire_sound = 'sound/items/weapons/lasercannonfire.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion equip_cooldown = 20 @@ -128,7 +128,7 @@ icon_state = "mecha_ion" energy_drain = 120 projectile = /obj/projectile/ion - fire_sound = 'sound/weapons/laser.ogg' + fire_sound = 'sound/items/weapons/laser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla equip_cooldown = 35 @@ -137,7 +137,7 @@ icon_state = "mecha_ion" energy_drain = 500 projectile = /obj/projectile/energy/tesla/cannon - fire_sound = 'sound/magic/lightningbolt.ogg' + fire_sound = 'sound/effects/magic/lightningbolt.ogg' harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse @@ -147,7 +147,7 @@ icon_state = "mecha_pulse" energy_drain = 120 projectile = /obj/projectile/beam/pulse/heavy - fire_sound = 'sound/weapons/marauder.ogg' + fire_sound = 'sound/items/weapons/marauder.ogg' harmful = TRUE /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma @@ -160,7 +160,7 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' energy_drain = 30 projectile = /obj/projectile/plasma/adv/mech - fire_sound = 'sound/weapons/plasma_cutter.ogg' + fire_sound = 'sound/items/weapons/plasma_cutter.ogg' harmful = TRUE mech_flags = EXOSUIT_MODULE_COMBAT | EXOSUIT_MODULE_WORKING @@ -172,7 +172,7 @@ icon_state = "mecha_kineticgun" energy_drain = 30 projectile = /obj/projectile/kinetic/mech - fire_sound = 'sound/weapons/kinetic_accel.ogg' + fire_sound = 'sound/items/weapons/kinetic_accel.ogg' harmful = TRUE mech_flags = EXOSUIT_MODULE_COMBAT | EXOSUIT_MODULE_WORKING @@ -183,7 +183,7 @@ energy_drain = 20 equip_cooldown = 8 projectile = /obj/projectile/energy/electrode - fire_sound = 'sound/weapons/taser.ogg' + fire_sound = 'sound/items/weapons/taser.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect @@ -200,7 +200,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/honker/action(mob/source, atom/target, list/modifiers) if(!action_checks(target)) return - playsound(chassis, 'sound/items/airhorn.ogg', 100, TRUE) + playsound(chassis, 'sound/items/airhorn/airhorn.ogg', 100, TRUE) to_chat(source, "[icon2html(src, source)]HONK") for(var/mob/living/carbon/M in ohearers(6, chassis)) if(!M.can_hear()) @@ -232,7 +232,7 @@ //Base ballistic weapon type /obj/item/mecha_parts/mecha_equipment/weapon/ballistic name = "general ballistic weapon" - fire_sound = 'sound/weapons/gun/smg/shot.ogg' + fire_sound = 'sound/items/weapons/gun/smg/shot.ogg' var/projectiles var/projectiles_cache //ammo to be loaded in, if possible. var/projectiles_cache_max @@ -301,7 +301,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced name = "\improper S.H.H. \"Quietus\" Carbine" desc = "A weapon for combat exosuits. A mime invention, field tests have shown that targets cannot even scream before going down." - fire_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' + fire_sound = 'sound/items/weapons/gun/general/heavy_shot_suppressed.ogg' icon_state = "mecha_mime" equip_cooldown = 30 projectile = /obj/projectile/bullet/mime @@ -347,7 +347,7 @@ desc = "A weapon for combat exosuits. Launches short range missiles." icon_state = "mecha_missilerack" projectile = /obj/projectile/bullet/rocket/srm - fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/rocket_launch.ogg' projectiles = 8 projectiles_cache = 0 projectiles_cache_max = 0 @@ -362,7 +362,7 @@ desc = "A weapon for combat exosuits. Launches precision explosive projectiles designed to explode only when striking a structured target, including walls, exosuits and cyborgs." icon_state = "mecha_missilerack_six" projectile = /obj/projectile/bullet/rocket/pep - fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/rocket_launch.ogg' projectiles = 6 projectiles_cache = 0 projectiles_cache_max = 0 @@ -381,7 +381,7 @@ return TIMER_COOLDOWN_START(chassis, COOLDOWN_MECHA_EQUIPMENT(type), equip_cooldown) chassis.use_energy(energy_drain) - var/newtonian_target = turn(chassis.dir,180) + var/newtonian_target = dir2angle(REVERSE_DIR(chassis.dir)) var/obj/O = new projectile(chassis.loc) playsound(chassis, fire_sound, 50, TRUE) log_message("Launched a [O.name] from [name], targeting [target].", LOG_MECHA) @@ -403,7 +403,7 @@ desc = "A weapon for combat exosuits. Launches primed flashbangs." icon_state = "mecha_grenadelnchr" projectile = /obj/item/grenade/flashbang - fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/grenade_launch.ogg' projectiles = 6 projectiles_cache = 6 projectiles_cache_max = 24 @@ -543,7 +543,7 @@ desc = "A weapon for combat exosuits. Launches primed tear-stache grenades." icon_state = "mecha_grenadelnchr" projectile = /obj/item/grenade/chem_grenade/teargas/moustache - fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' + fire_sound = 'sound/items/weapons/gun/general/grenade_launch.ogg' projectiles = 6 missile_speed = 1.5 projectiles_cache = 999 @@ -566,7 +566,7 @@ ///Chassis but typed for the cargo_hold var var/obj/vehicle/sealed/mecha/ripley/secmech ///Audio for using the hydraulic clamp - var/clampsound = 'sound/mecha/hydraulic.ogg' + var/clampsound = 'sound/vehicles/mecha/hydraulic.ogg' ///Var for the cuff type. Basically stole how cuffing works from secbots var/cuff_type = /obj/item/restraints/handcuffs/cable/zipties/used ///Var for autocuff, can be toggled in the mech interface. diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index b167f38141594..54f8cee9ed4c5 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -163,7 +163,7 @@ illegal_local_designs |= illegal_mech_design cached_designs |= illegal_mech_design say("R$c!i&ed ERROR de#i$ns. C@n%ec$%ng to ~NULL~ se%ve$s.") - playsound(src, 'sound/machines/uplinkerror.ogg', 50, TRUE) + playsound(src, 'sound/machines/uplink/uplinkerror.ogg', 50, TRUE) update_static_data_for_all_viewers() return TRUE @@ -187,7 +187,7 @@ if(design_delta > 0) say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].") - playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) update_static_data_for_all_viewers() diff --git a/code/modules/vehicles/mecha/mech_melee_attack.dm b/code/modules/vehicles/mecha/mech_melee_attack.dm index f37d092b83f32..0d25c21bb4e3c 100644 --- a/code/modules/vehicles/mecha/mech_melee_attack.dm +++ b/code/modules/vehicles/mecha/mech_melee_attack.dm @@ -42,9 +42,9 @@ mecha_attacker.do_attack_animation(src) switch(mecha_attacker.damtype) if(BRUTE) - playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/punch4.ogg', 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 50, TRUE) else return mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) @@ -79,9 +79,9 @@ mecha_attacker.do_attack_animation(src) switch(mecha_attacker.damtype) if(BRUTE) - playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/punch4.ogg', 50, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 50, TRUE) else return mecha_attacker.visible_message(span_danger("[mecha_attacker] hits [src]!"), span_danger("You hit [src]!"), null, COMBAT_MESSAGE_RANGE) diff --git a/code/modules/vehicles/mecha/mecha_actions.dm b/code/modules/vehicles/mecha/mecha_actions.dm index 322a1189053b8..5e3c658a525e2 100644 --- a/code/modules/vehicles/mecha/mecha_actions.dm +++ b/code/modules/vehicles/mecha/mecha_actions.dm @@ -101,7 +101,7 @@ for(var/mob/occupant in occupants) balloon_alert(occupant, "strafing [strafe?"on":"off"]") - occupant.playsound_local(src, 'sound/machines/terminal_eject.ogg', 50, TRUE) + occupant.playsound_local(src, 'sound/machines/terminal/terminal_eject.ogg', 50, TRUE) log_message("Toggled strafing mode [strafe?"on":"off"].", LOG_MECHA) for(var/occupant in occupants) diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm index 8634ff88591e7..f0fdc3997a39d 100644 --- a/code/modules/vehicles/mecha/mecha_defense.dm +++ b/code/modules/vehicles/mecha/mecha_defense.dm @@ -63,7 +63,7 @@ return user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) - playsound(loc, 'sound/weapons/tap.ogg', 40, TRUE, -1) + playsound(loc, 'sound/items/weapons/tap.ogg', 40, TRUE, -1) user.visible_message(span_danger("[user] hits [src]. Nothing happens."), null, null, COMBAT_MESSAGE_RANGE) log_message("Attack by hand/paw (no damage). Attacker - [user].", LOG_MECHA, color="red") @@ -72,7 +72,7 @@ /obj/vehicle/sealed/mecha/attack_alien(mob/living/user, list/modifiers) log_message("Attack by alien. Attacker - [user].", LOG_MECHA, color="red") - playsound(loc, 'sound/weapons/slash.ogg', 100, TRUE) + playsound(loc, 'sound/items/weapons/slash.ogg', 100, TRUE) attack_generic(user, rand(user.melee_damage_lower, user.melee_damage_upper), BRUTE, MELEE, 0) /obj/vehicle/sealed/mecha/attack_animal(mob/living/simple_animal/user, list/modifiers) @@ -268,7 +268,7 @@ cell = weapon balloon_alert(user, "installed power cell") diag_hud_set_mechcell() - playsound(src, 'sound/items/screwdriver2.ogg', 50, FALSE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 50, FALSE) log_message("Power cell installed", LOG_MECHA) else balloon_alert(user, "already installed!") @@ -280,7 +280,7 @@ return scanmod = weapon balloon_alert(user, "installed scanning module") - playsound(src, 'sound/items/screwdriver2.ogg', 50, FALSE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 50, FALSE) log_message("[weapon] installed", LOG_MECHA) update_part_values() else @@ -293,7 +293,7 @@ return capacitor = weapon balloon_alert(user, "installed capacitor") - playsound(src, 'sound/items/screwdriver2.ogg', 50, FALSE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 50, FALSE) log_message("[weapon] installed", LOG_MECHA) update_part_values() else @@ -306,7 +306,7 @@ return servo = weapon balloon_alert(user, "installed servo") - playsound(src, 'sound/items/screwdriver2.ogg', 50, FALSE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 50, FALSE) log_message("[weapon] installed", LOG_MECHA) update_part_values() else diff --git a/code/modules/vehicles/mecha/mecha_mob_interaction.dm b/code/modules/vehicles/mecha/mecha_mob_interaction.dm index 18f04c056e18e..53ad199cc0be7 100644 --- a/code/modules/vehicles/mecha/mecha_mob_interaction.dm +++ b/code/modules/vehicles/mecha/mecha_mob_interaction.dm @@ -50,7 +50,7 @@ playsound(src, 'sound/machines/windowdoor.ogg', 50, TRUE) set_mouse_pointer() if(!internal_damage) - SEND_SOUND(newoccupant, sound('sound/mecha/nominal.ogg',volume=50)) + SEND_SOUND(newoccupant, sound('sound/vehicles/mecha/nominal.ogg',volume=50)) return TRUE ///proc called when a new mmi mob tries to enter this mech @@ -100,7 +100,7 @@ setDir(SOUTH) log_message("[brain_obj] moved in as pilot.", LOG_MECHA) if(!internal_damage) - SEND_SOUND(brain_obj, sound('sound/mecha/nominal.ogg',volume=50)) + SEND_SOUND(brain_obj, sound('sound/vehicles/mecha/nominal.ogg',volume=50)) user.log_message("has put the MMI/posibrain of [key_name(brain_mob)] into [src]", LOG_GAME) brain_mob.log_message("was put into [src] by [key_name(user)]", LOG_GAME, log_globally = FALSE) return TRUE diff --git a/code/modules/vehicles/mecha/mecha_movement.dm b/code/modules/vehicles/mecha/mecha_movement.dm index 3c743bd7fb357..dcd6f47c4fc05 100644 --- a/code/modules/vehicles/mecha/mecha_movement.dm +++ b/code/modules/vehicles/mecha/mecha_movement.dm @@ -42,7 +42,7 @@ if(!istype(backup) || !movement_dir || backup.anchored || continuous_move) //get_spacemove_backup() already checks if a returned turf is solid, so we can just go return TRUE last_pushoff = world.time - if(backup.newtonian_move(REVERSE_DIR(movement_dir), instant = TRUE)) + if(backup.newtonian_move(dir2angle(REVERSE_DIR(movement_dir)), instant = TRUE)) backup.last_pushoff = world.time step_silent = TRUE if(return_drivers()) diff --git a/code/modules/vehicles/mecha/working/clarke.dm b/code/modules/vehicles/mecha/working/clarke.dm index 0acfa2749a5bd..8ccee945ed26e 100644 --- a/code/modules/vehicles/mecha/working/clarke.dm +++ b/code/modules/vehicles/mecha/working/clarke.dm @@ -105,7 +105,7 @@ if(isnull(cached_ore_box)) return FALSE cached_ore_box.dump_box_contents() - playsound(chassis, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(chassis, 'sound/items/weapons/tap.ogg', 50, TRUE) log_message("Dumped [cached_ore_box].", LOG_MECHA) return TRUE diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm index f5c55f613ee10..a2aaa53784f45 100644 --- a/code/modules/vehicles/mecha/working/ripley.dm +++ b/code/modules/vehicles/mecha/working/ripley.dm @@ -25,8 +25,8 @@ enter_delay = 10 //can enter in a quarter of the time of other mechs exit_delay = 10 /// Custom Ripley step and turning sounds (from TGMC) - stepsound = 'sound/mecha/powerloader_step.ogg' - turnsound = 'sound/mecha/powerloader_turn2.ogg' + stepsound = 'sound/vehicles/mecha/powerloader_step.ogg' + turnsound = 'sound/vehicles/mecha/powerloader_turn2.ogg' equip_by_category = list( MECHA_L_ARM = null, MECHA_R_ARM = null, @@ -350,7 +350,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo) crate.forceMove(drop_location()) if(crate == chassis.ore_box) chassis.ore_box = null - playsound(chassis, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(chassis, 'sound/items/weapons/tap.ogg', 50, TRUE) log_message("Unloaded [crate]. Cargo compartment capacity: [cargo_capacity - contents.len]", LOG_MECHA) return TRUE @@ -390,7 +390,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo) to_chat(chassis.occupants, "[icon2html(src, chassis.occupants)][span_notice("You unload [passenger].")]") passenger.forceMove(drop_location()) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), passenger, chassis.dir), 1) //That's right, one tick. Just enough to cause the tile move animation. - playsound(chassis, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(chassis, 'sound/items/weapons/tap.ogg', 50, TRUE) log_message("Unloaded [passenger]. Cargo compartment capacity: [cargo_capacity - contents.len]", LOG_MECHA) return TRUE return ..() @@ -405,7 +405,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo) if(!do_after(user, breakout_time, target = chassis)) return to_chat(user, span_notice("You break out of the [src].")) - playsound(chassis, 'sound/items/crowbar.ogg', 100, TRUE) + playsound(chassis, 'sound/items/tools/crowbar.ogg', 100, TRUE) cheese_it(user) for(var/mob/freebird in contents) if(user != freebird) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 25e8ed9740943..392c890ca8fd2 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -154,7 +154,7 @@ sparks.start() //the most radical way to start plasma fires for(var/mob/living/carbon/victim in location) if(victim.body_position == LYING_DOWN) - playsound(location, 'sound/items/trayhit2.ogg', 40) + playsound(location, 'sound/items/trayhit/trayhit2.ogg', 40) victim.apply_damage(damage = 25, damagetype = BRUTE, def_zone = victim.get_random_valid_zone(even_weights = TRUE), wound_bonus = 20) victim.Paralyze(1.5 SECONDS) skater.adjustStaminaLoss(instability) diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index c378009996618..b5249c216a742 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -252,7 +252,7 @@ vehicle_entered_target.headlights_toggle = !vehicle_entered_target.headlights_toggle vehicle_entered_target.set_light_on(vehicle_entered_target.headlights_toggle) vehicle_entered_target.update_appearance() - playsound(owner, vehicle_entered_target.headlights_toggle ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE) + playsound(owner, vehicle_entered_target.headlights_toggle ? 'sound/items/weapons/magin.ogg' : 'sound/items/weapons/magout.ogg', 40, TRUE) /datum/action/vehicle/sealed/dump_kidnapped_mobs name = "Dump Kidnapped Mobs" @@ -444,7 +444,7 @@ name = "Buzz." desc = "Negative!" button_icon_state = "vim_buzz" - sound_path = 'sound/machines/buzz-sigh.ogg' + sound_path = 'sound/machines/buzz/buzz-sigh.ogg' sound_message = "buzzes." /datum/action/vehicle/sealed/noise/buzz/Trigger(trigger_flags) diff --git a/code/modules/vehicles/vehicle_key.dm b/code/modules/vehicles/vehicle_key.dm index 5f57895d8ac81..2bcc17115b060 100644 --- a/code/modules/vehicles/vehicle_key.dm +++ b/code/modules/vehicles/vehicle_key.dm @@ -63,7 +63,7 @@ if(SKILL_LEVEL_LEGENDARY to INFINITY) //Holy shit, look at that janny go! user.visible_message(span_suicide("[user] is putting \the [src] in [user.p_their()] mouth and has epically become one with the janicart, and they're even in overdrive mode! It looks like [user.p_theyre()] trying to commit suicide!")) user.AddElement(/datum/element/cleaning) - playsound(src, 'sound//magic/lightning_chargeup.ogg', 50, TRUE, -1) + playsound(src, 'sound/effects/magic/lightning_chargeup.ogg', 50, TRUE, -1) user.reagents.add_reagent(/datum/reagent/drug/methamphetamine, 10) //Gotta go fast! for(var/i in 1 to 150) addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? "#a245bb" : "#7a7d82", ADMIN_COLOUR_PRIORITY), i) @@ -90,5 +90,5 @@ righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' attack_verb_continuous = list("flogs", "whips", "lashes", "disciplines") attack_verb_simple = list("flog", "whip", "lash", "discipline") - hitsound = 'sound/weapons/whip.ogg' + hitsound = 'sound/items/weapons/whip.ogg' slot_flags = ITEM_SLOT_BELT diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 1db108ffe1a41..2a7de87ac558a 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -896,7 +896,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) living_target.Paralyze(paralyze_time) living_target.emote("scream") - playsound(living_target, 'sound/effects/blobattack.ogg', 40, TRUE) + playsound(living_target, 'sound/effects/blob/blobattack.ogg', 40, TRUE) playsound(living_target, 'sound/effects/splat.ogg', 50, TRUE) post_crush_living(living_target, was_alive) flags_to_return |= (SUCCESSFULLY_CRUSHED_MOB|SUCCESSFULLY_CRUSHED_ATOM) diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index 902e34e04f06c..450c8e74100c6 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -18,6 +18,7 @@ ) contraband = list( /obj/item/vape = 5, + /obj/item/cigarette/dart = 1, ) premium = list( /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3, diff --git a/code/modules/vending/runic_vendor.dm b/code/modules/vending/runic_vendor.dm index f338340c8b1d8..3e6d21c708fe1 100644 --- a/code/modules/vending/runic_vendor.dm +++ b/code/modules/vending/runic_vendor.dm @@ -65,7 +65,7 @@ SHOULD_NOT_OVERRIDE(TRUE) visible_message(span_warning("[src] flickers and disappears!")) - playsound(src,'sound/weapons/resonator_blast.ogg',25,TRUE) + playsound(src,'sound/items/weapons/resonator_blast.ogg',25,TRUE) return ..() /obj/machinery/vending/runic_vendor/proc/runic_explosion() diff --git a/code/modules/wiremod/components/action/soundemitter.dm b/code/modules/wiremod/components/action/soundemitter.dm index 44b9cbae8ab05..676ce8744385f 100644 --- a/code/modules/wiremod/components/action/soundemitter.dm +++ b/code/modules/wiremod/components/action/soundemitter.dm @@ -47,26 +47,26 @@ /obj/item/circuit_component/soundemitter/populate_options() var/static/component_options = list( - "Buzz" = 'sound/machines/buzz-sigh.ogg', - "Buzz Twice" = 'sound/machines/buzz-two.ogg', + "Buzz" = 'sound/machines/buzz/buzz-sigh.ogg', + "Buzz Twice" = 'sound/machines/buzz/buzz-two.ogg', "Chime" = 'sound/machines/chime.ogg', "Honk" = 'sound/items/bikehorn.ogg', "Ping" = 'sound/machines/ping.ogg', "Sad Trombone" = 'sound/misc/sadtrombone.ogg', "Warn" = 'sound/machines/warning-buzzer.ogg', "Slow Clap" = 'sound/machines/slowclap.ogg', - "Moth Buzz" = 'sound/voice/moth/scream_moth.ogg', - "Squeak" = 'sound/items/toysqueak1.ogg', - "Rip" = 'sound/items/poster_ripped.ogg', + "Moth Buzz" = 'sound/mobs/humanoids/moth/scream_moth.ogg', + "Squeak" = 'sound/items/toy_squeak/toysqueak1.ogg', + "Rip" = 'sound/items/poster/poster_ripped.ogg', "Coinflip" = 'sound/items/coinflip.ogg', "Megaphone" = 'sound/items/megaphone.ogg', - "Warpwhistle" = 'sound/magic/warpwhistle.ogg', - "Hiss" = 'sound/voice/hiss1.ogg', - "Lizard" = 'sound/voice/lizard/lizard_scream_1.ogg', - "Flashbang" = 'sound/weapons/flashbang.ogg', - "Flash" = 'sound/weapons/flash.ogg', - "Whip" = 'sound/weapons/whip.ogg', - "Laugh Track" = 'sound/items/SitcomLaugh1.ogg', + "Warpwhistle" = 'sound/effects/magic/warpwhistle.ogg', + "Hiss" = 'sound/mobs/non-humanoids/hiss/hiss1.ogg', + "Lizard" = 'sound/mobs/humanoids/lizard/lizard_scream_1.ogg', + "Flashbang" = 'sound/items/weapons/flashbang.ogg', + "Flash" = 'sound/items/weapons/flash.ogg', + "Whip" = 'sound/items/weapons/whip.ogg', + "Laugh Track" = 'sound/items/sitcom_laugh/sitcomLaugh1.ogg', "Gavel" = 'sound/items/gavel.ogg', ) sound_file = add_option_port("Sound Option", component_options) diff --git a/code/modules/wiremod/core/marker.dm b/code/modules/wiremod/core/marker.dm index 65ed029213e30..f4f36af427b63 100644 --- a/code/modules/wiremod/core/marker.dm +++ b/code/modules/wiremod/core/marker.dm @@ -45,7 +45,7 @@ RegisterSignal(marked_atom, COMSIG_QDELETING, PROC_REF(cleanup_marked_atom)) update_icon() flick("multitool_circuit_flick", src) - playsound(src.loc, 'sound/misc/compiler-stage2.ogg', 30, TRUE) + playsound(src.loc, 'sound/machines/compiler/compiler-stage2.ogg', 30, TRUE) return TRUE /// Allow users to mark items equipped by the target that are visible. diff --git a/code/modules/wiremod/core/usb_cable.dm b/code/modules/wiremod/core/usb_cable.dm index 23683bf0ee81d..5197403c9e693 100644 --- a/code/modules/wiremod/core/usb_cable.dm +++ b/code/modules/wiremod/core/usb_cable.dm @@ -53,7 +53,7 @@ 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_button1.ogg', 20, TRUE) + playsound(src, 'sound/machines/pda_button/pda_button1.ogg', 20, TRUE) if (last_attached_circuit != attached_circuit) if (!isnull(last_attached_circuit)) @@ -73,7 +73,7 @@ connection_description = "machine" balloon_alert(user, "connected to [connection_description]") - playsound(src, 'sound/items/screwdriver2.ogg', 20, TRUE) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 20, TRUE) return TRUE diff --git a/code/modules/wiremod/shell/brain_computer_interface.dm b/code/modules/wiremod/shell/brain_computer_interface.dm index 7adefcaa5eda6..7e9f79a58f65a 100644 --- a/code/modules/wiremod/shell/brain_computer_interface.dm +++ b/code/modules/wiremod/shell/brain_computer_interface.dm @@ -460,7 +460,7 @@ var/obj/item/organ/internal/cyberimp/bci/bci_organ = carbon_occupant.get_organ_by_type(/obj/item/organ/internal/cyberimp/bci) if (isnull(bci_organ) && isnull(bci_to_implant)) say("No brain-computer interface inserted, and occupant does not have one. Insert a BCI to implant one.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return FALSE addtimer(CALLBACK(src, PROC_REF(start_process)), 1 SECONDS) diff --git a/code/modules/wiremod/shell/gun.dm b/code/modules/wiremod/shell/gun.dm index 7115c3b548bee..9bfa8764f41df 100644 --- a/code/modules/wiremod/shell/gun.dm +++ b/code/modules/wiremod/shell/gun.dm @@ -21,7 +21,7 @@ projectile_type = /obj/projectile/energy/wiremod_gun harmful = FALSE select_name = "circuit" - fire_sound = 'sound/weapons/blaster.ogg' + fire_sound = 'sound/items/weapons/blaster.ogg' /obj/projectile/energy/wiremod_gun name = "scanning beam" diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm index 14dc6edee1118..894eeeeeb2183 100644 --- a/code/modules/zombie/items.dm +++ b/code/modules/zombie/items.dm @@ -5,7 +5,7 @@ sustain the zombie, smashing open airlock doors and opening \ child-safe caps on bottles." - hitsound = 'sound/hallucinations/growl1.ogg' + hitsound = 'sound/effects/hallucinations/growl1.ogg' force = 21 // Just enough to break airlocks with melee attacks wound_bonus = -30 bare_wound_bonus = 15 diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 2ed2bf541d88c..bd8646ccb780d 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -70,9 +70,9 @@ if(owner.stat != DEAD && !converts_living) return if(!iszombie(owner)) - to_chat(owner, "You can feel your heart stopping, but something isn't right... \ + to_chat(owner, span_cult_large("You can feel your heart stopping, but something isn't right... \ life has not abandoned your broken form. You can only feel a deep and immutable hunger that \ - not even death can stop, you will rise again!") + not even death can stop, you will rise again!")) var/revive_time = rand(revive_time_min, revive_time_max) var/flags = TIMER_STOPPABLE timer_id = addtimer(CALLBACK(src, PROC_REF(zombify), owner), revive_time, flags) @@ -95,7 +95,7 @@ to_chat(target, span_alien("You HUNGER!")) to_chat(target, span_alertalien("You are now a zombie! Do not seek to be cured, do not help any non-zombies in any way, do not harm your zombie brethren and spread the disease by killing others. You are a creature of hunger and violence.")) - playsound(target, 'sound/hallucinations/far_noise.ogg', 50, 1) + playsound(target, 'sound/effects/hallucinations/far_noise.ogg', 50, 1) target.do_jitter_animation(living_transformation_time) target.Stun(living_transformation_time) diff --git a/html/changelogs/AutoChangeLog-pr-86791.yml b/html/changelogs/AutoChangeLog-pr-86791.yml new file mode 100644 index 0000000000000..8cad532c946c4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86791.yml @@ -0,0 +1,4 @@ +author: "00-Steven" +delete-after: True +changes: + - rscadd: "You can now see people whispering, even if you cannot hear what they're saying, unless you are blind (obviously). The speaker wearing something that covers their mouth, being invisible, or being inside of something counteracts this." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86814.yml b/html/changelogs/AutoChangeLog-pr-86814.yml deleted file mode 100644 index a57e7d4e0fc72..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-86814.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Sealed101" -delete-after: True -changes: - - spellcheck: "fixed examine and balloon alert text for boulder refining machinery" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86820.yml b/html/changelogs/AutoChangeLog-pr-86820.yml new file mode 100644 index 0000000000000..d57e4f388337f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86820.yml @@ -0,0 +1,4 @@ +author: "00-Steven" +delete-after: True +changes: + - balance: "The pAI digital messenger software now includes the NTNRC client." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86834.yml b/html/changelogs/AutoChangeLog-pr-86834.yml new file mode 100644 index 0000000000000..4742c8725c79d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86834.yml @@ -0,0 +1,7 @@ +author: "ArcaneMusic" +delete-after: True +changes: + - bugfix: "Artifact boulders should keep their alien icon even after a first round of processing." + - bugfix: "Boulders are less likely to exist with zero materials after processing." + - bugfix: "Boulders should be slightly less laggy on conveyor belts." + - bugfix: "Grammar of refinery/smeltery examine is corrected." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86859.yml b/html/changelogs/AutoChangeLog-pr-86859.yml new file mode 100644 index 0000000000000..6619ac4e8b5de --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86859.yml @@ -0,0 +1,5 @@ +author: "timothymtorres" +delete-after: True +changes: + - code_imp: "Add missing signal to reagent dispenser RMB interactions." + - sound: "Fix missing pour sounds from reagent dispensers" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86863.yml b/html/changelogs/AutoChangeLog-pr-86863.yml new file mode 100644 index 0000000000000..0ef2a98f9138b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86863.yml @@ -0,0 +1,4 @@ +author: "00-Steven" +delete-after: True +changes: + - bugfix: "Imaginary friends can now hear their host wherever they are." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86865.yml b/html/changelogs/AutoChangeLog-pr-86865.yml new file mode 100644 index 0000000000000..5392926586867 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86865.yml @@ -0,0 +1,6 @@ +author: "00-Steven" +delete-after: True +changes: + - qol: "Imaginary friend smite ghost poll actually lets you jump to the target and shows their name." + - admin: "Imaginary friend smite now works with build mode." + - admin: "The imaginary friend smite configuration menus have been changed slightly." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86873.yml b/html/changelogs/AutoChangeLog-pr-86873.yml new file mode 100644 index 0000000000000..c7562c525da85 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86873.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Added missing venue prices for certain foods and reagents" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86897.yml b/html/changelogs/AutoChangeLog-pr-86897.yml new file mode 100644 index 0000000000000..85ac5c543263c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86897.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Players no longer can randomly get semi-permanently offset from being shoved" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86909.yml b/html/changelogs/AutoChangeLog-pr-86909.yml new file mode 100644 index 0000000000000..4a71fc158ecea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86909.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Mindswap can no longer be used inside of pipes" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86910.yml b/html/changelogs/AutoChangeLog-pr-86910.yml new file mode 100644 index 0000000000000..8c093c570c9f4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86910.yml @@ -0,0 +1,4 @@ +author: "SyncIt21" +delete-after: True +changes: + - bugfix: "Fixes ethereal APC drain/charge attack" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86912.yml b/html/changelogs/AutoChangeLog-pr-86912.yml new file mode 100644 index 0000000000000..7598fc5b582d6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86912.yml @@ -0,0 +1,4 @@ +author: "vinylspiders" +delete-after: True +changes: + - bugfix: "fixes pulsing tumor failing to spawn the elite if no ghosts respond to the poll and leaving you in a bugged state, and possibly other related issues" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86914.yml b/html/changelogs/AutoChangeLog-pr-86914.yml new file mode 100644 index 0000000000000..a743ee3a28cc3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86914.yml @@ -0,0 +1,4 @@ +author: "timothymtorres" +delete-after: True +changes: + - bugfix: "Fix air alarms being stuck and not updating their icons." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86915.yml b/html/changelogs/AutoChangeLog-pr-86915.yml new file mode 100644 index 0000000000000..956d4b2fa5773 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86915.yml @@ -0,0 +1,4 @@ +author: "timothymtorres" +delete-after: True +changes: + - bugfix: "Fix air alarm helper to ignore gas when appropriate" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86917.yml b/html/changelogs/AutoChangeLog-pr-86917.yml new file mode 100644 index 0000000000000..334faafa398a8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86917.yml @@ -0,0 +1,4 @@ +author: "timothymtorres" +delete-after: True +changes: + - bugfix: "Fix air alarms warning message to use pressure & temp settings" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86918.yml b/html/changelogs/AutoChangeLog-pr-86918.yml new file mode 100644 index 0000000000000..8663c672627a0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86918.yml @@ -0,0 +1,4 @@ +author: "timothymtorres" +delete-after: True +changes: + - bugfix: "Fix air alarm not checking missing gases" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86922.yml b/html/changelogs/AutoChangeLog-pr-86922.yml new file mode 100644 index 0000000000000..9365a9a1bebf6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86922.yml @@ -0,0 +1,4 @@ +author: "Sealed101" +delete-after: True +changes: + - bugfix: "A joint effort of Gorlex Marauders and MI13 tech support teams has finally managed to center the Syndicate Infiltrator shuttle's preview on the navigation console. Nuclear Ops teams sector-wide, rejoice!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86923.yml b/html/changelogs/AutoChangeLog-pr-86923.yml new file mode 100644 index 0000000000000..a1757370637a6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86923.yml @@ -0,0 +1,4 @@ +author: "timothymtorres" +delete-after: True +changes: + - bugfix: "Fix Meta's medical freezer air alarm to not trigger on cold temps. Fix missing atmos alarm in Wawa kitchen coldroom." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-86925.yml b/html/changelogs/AutoChangeLog-pr-86925.yml new file mode 100644 index 0000000000000..8bbb16786d86a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-86925.yml @@ -0,0 +1,4 @@ +author: "Ben10Omintrix" +delete-after: True +changes: + - bugfix: "fixes raptors retaliating against each other and their owners" \ No newline at end of file diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index 2dd9ac000774d..00d9a59b348d8 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -683,3 +683,167 @@ the mailing room:' - rscadd: The drone bay spot in maintenance has been cleared out by a gang of rowdy assistants, and turned into a drug den. +2024-09-23: + Bisar: + - balance: Changelings are now able to respec multiple times if they have absorbed + multiple humanoids, instead of it being toggled on if it was off during their + most recent absorb. + - balance: Last Resort is now an innate ability for changelings. + - code_imp: Added a little counter and a tgui function for displaying how many absorbs + lings have in their belly to spend for readaptions! + EnterTheJake: + - balance: Void Conduit has less range and no longer ignores Line of Sight. + Ghommie: + - rscadd: You can now fish new, tasty treats by the station deep fryers. + - rscadd: You can now grow fish inside an aquarium by feeding them regularly (at + 50% hunger for maximum growth). + - rscadd: Added the evolution for pikes to armored pikes. + - rscadd: Added more customizable options to PDA virtual pets, which can be unlocked + by completing achievements. + - rscadd: Added a fat dart that can be rarely found in hacked cigarette vending + machines. + - image: added icon states for linkable fishing spots in the fish portal gen radial + menu. + - balance: The fishing skill now positively affects fishing rod cast range and reeling + objects outside of the minigame. Reeling objects also provides a pitiable amount + of fishing experience. + - balance: High fishing skill now reduces experience gained from low difficulty + fishing spots. + - sound: Removed noise from reeling sounds. + Likteer: + - rscdel: Intentional screaming has been unmuted. Now has a 5s cooldown instead. + Sealed101: + - spellcheck: fixed examine and balloon alert text for boulder refining machinery + SmArtKar: + - bugfix: Emergency shuttle console no longer reopens its UI on its own + - bugfix: Mapped in express supply consoles now work instead of displaying an empty + UI. + - bugfix: Emagged express supply consoles now display updated prices. + - refactor: Rewrote a large chunk of express supply console code + - balance: Express supply consoles now drop their upgrade disk upon being deconstructed, + and emagged consoles now will try to send at least one package to the station + if cargo budget doesn't have enough funds for all 5. + - bugfix: Fixed infective components not cleaning up disease datums after themselves + grungussuss: + - sound: pruned higher frequencies from the resonant shriek ability sound, making + it lighter on the ears + - sound: lavaland magma ambience has been changed +2024-09-24: + Absolucy: + - bugfix: Fixed the Living Heart ritual deleting your old heart when replacing it + instead of having it dramatically burst out of your chest like it should. + - qol: The Living Heart ritual will now work if you don't have one at all for some + reason, in the same way that'd you use an organic heart in the ritual to replace + a cybernetic heart. + - qol: The Living Heart ritual, when putting a new heart into your chest, will now + heal the heart enough to be just under the "severe damage" threshold, if needed. + theselfish: + - bugfix: The Beer Sixpack no longer magically turns into bottles. +2024-09-25: + 00-Steven: + - bugfix: The greeting message imaginary friends get upon becoming one actually + includes the owner's name, instead of displaying nothing where it should've + been. + Jewelry-x: + - bugfix: fixed link for the rules button + Sealed101: + - bugfix: gelatinous cubes now puke out their consume victim when said victim dies, + not when it accumulates 200 brute damage (not all mobs can get damaged to that + point) + - qol: gelatinous cube's Consume action can now be used to eject the currently consumed + mob + - bugfix: "fixed gelatinous cube's consume attempt not showing the victim's name\ + \ properly (You start attempting to devour \_!)" + SmArtKar: + - bugfix: Storage UI should no longer (not so much) randomly disappear, hooray! + 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 + imedial: + - bugfix: fixes soapbox being given to non-mobs +2024-09-26: + 00-Steven: + - bugfix: Fixed cat ears not layering properly. + - bugfix: Husked bodies show their blood with the right colours in photographs. + Bisar: + - bugfix: Fixes augs not being able to heal with cables if they're naked or going + commando. + Jewelry-x: + - rscadd: Added ability to turn broadcast microphone on or off + Melbert: + - qol: Health Analyzer output has been reworked to be less "it takes up my entire + chat box", report any oddities or missing information + Skilets: + - image: Resprited the experimentor. + SmArtKar: + - bugfix: Kilo whiteship no longer has varedited turrets in it + TheBoondock: + - bugfix: fixed lava proofed clothing from xenobio potion being damaged from fire + grungussus: + - sound: audible emotes share the same cooldown +2024-09-27: + 00-Steven: + - bugfix: Fixed two broken spans, primarily used in traitor panel and some basic + bot stuff. + - admin: Traitor panel text is no longer bright red when an antag is selected, and + remove button is no longer blocked. + EnterTheJake: + - bugfix: Mansus Grasp can now properly interact with non living things. + - code_imp: proc/on_hand_hit and secondary have better return values. + Ghommie: + - bugfix: The Pun Pun job trait doesn't leave behind a fake (or is it?) Pun Pun. + - bugfix: Fixed water overlays showing on toilets facing directions other than SOUTH + (down). + Iamgoofball: + - bugfix: Removes particles from Slimed and Slime Food status effects to fix fps + lag in xenobio + Jewelry-x: + - bugfix: fixed hydroponics tray not updating new crop sprite properly + SmArtKar: + - rscadd: You can now craft tether anchors, which can be secured with a wrench and + attached to with right click. They won't let you drift into space and you can + adjust tether length/cut it via lmb/rmb/ctrl click on the wire. + - rscadd: MOD tethers now remotely place and connect to tether anchors instead of + throwing you at where they landed. + - balance: MOD tethers can now be used in gravity + - balance: Jetpacks are now inertia-based. + - balance: Guns can accelerate you significantly in zero-g. + - balance: All jetpacks now give you equal speed buff, however advanced MOD ion + jets and captain's jetpack have higher acceleration/deceleration values. + - refactor: Refactored zero-g movement to be inertia-based and utilize angles instead + of directions. + Tattle: + - balance: insulated gloves no longer have the chunky fingers trait + ZeWaka: + - bugfix: TGUI windows now flash less when opening new windows. + carlarctg: + - qol: you can now use the toy codex cicatrix as base for the codex ritual + grungussuss: + - sound: improved click.ogg + - bugfix: thrown items now respect the vary variable when making drop sounds. + - sound: lead pipe now only makes an obnoxious drop sound when thrown., reduced + its sound by 10db + mc-oofert: + - bugfix: fixed password paper in museum + oranges: + - rscadd: Cardboard rolls and Wrapping paper can now be used to hit people on the + head with +2024-09-28: + Cheshify: + - balance: laser muskets have been rebalanced + - balance: crank weapons can be charged while moving + Goat: + - bugfix: Removes a random bookcase that was in the holdout bunker holodeck simulation + Melbert: + - rscdel: Advanced Health Analyzers can no longer be used to determine if a body + is faking death (like a changeling) + Rhials: + - bugfix: Replaces the unusable blink spell on the Necromancer deathmatch kit with + a nether portal summon. + Soupfgc: + - spellcheck: Fixed closet typos + SyncIt21: + - bugfix: Debug chem synthesizer now has temperature control for adding reagents + grungussuss: + - sound: the volume of the nuclear fission explosive have been reduced diff --git a/icons/hud/radial_fishing.dmi b/icons/hud/radial_fishing.dmi index 6870698fbe689..90b2b17c83a8a 100644 Binary files a/icons/hud/radial_fishing.dmi and b/icons/hud/radial_fishing.dmi differ diff --git a/icons/mob/actions/actions_slime.dmi b/icons/mob/actions/actions_slime.dmi index aa92eb702e27a..fa81c45d24606 100644 Binary files a/icons/mob/actions/actions_slime.dmi and b/icons/mob/actions/actions_slime.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index ac40c153dd784..4ac9143e7a834 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/human/cat_features.dmi b/icons/mob/human/cat_features.dmi index d2d67fdd9b32e..6e7fd024fee1d 100644 Binary files a/icons/mob/human/cat_features.dmi and b/icons/mob/human/cat_features.dmi differ diff --git a/icons/obj/aquarium/fish.dmi b/icons/obj/aquarium/fish.dmi index e3b41f4cf906d..eec60317b0e08 100644 Binary files a/icons/obj/aquarium/fish.dmi and b/icons/obj/aquarium/fish.dmi differ diff --git a/icons/obj/aquarium/wide.dmi b/icons/obj/aquarium/wide.dmi index 5334fcf1808c8..33c8e43950f96 100644 Binary files a/icons/obj/aquarium/wide.dmi and b/icons/obj/aquarium/wide.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 1be85df6c156d..c9e9186b7a853 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_modules.dmi b/icons/obj/clothing/modsuit/mod_modules.dmi index 9d5600dab8073..9811af0b54838 100644 Binary files a/icons/obj/clothing/modsuit/mod_modules.dmi and b/icons/obj/clothing/modsuit/mod_modules.dmi differ diff --git a/icons/obj/fishing.dmi b/icons/obj/fishing.dmi index 9c6a535fd839e..dc0e65fac5898 100644 Binary files a/icons/obj/fishing.dmi and b/icons/obj/fishing.dmi differ diff --git a/icons/obj/machines/experimentator.dmi b/icons/obj/machines/experimentator.dmi index 924606d9847bb..64e11b3ead086 100644 Binary files a/icons/obj/machines/experimentator.dmi and b/icons/obj/machines/experimentator.dmi differ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index f8f83d9ab54ae..c8bee52855868 100644 Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ diff --git a/modular_doppler/cell_component/code/cell_component.dm b/modular_doppler/cell_component/code/cell_component.dm index c9e467bbd26b3..279b681be5baf 100644 --- a/modular_doppler/cell_component/code/cell_component.dm +++ b/modular_doppler/cell_component/code/cell_component.dm @@ -161,7 +161,7 @@ component_cell_out_of_charge/component_cell_removed proc using loc where necessa if(inserted_cell) to_chat(user, span_notice("You remove [inserted_cell] from [equipment]!")) - playsound(equipment, 'sound/weapons/magout.ogg', 40, TRUE) + playsound(equipment, 'sound/items/weapons/magout.ogg', 40, TRUE) inserted_cell.forceMove(get_turf(equipment)) INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living, put_in_hands), inserted_cell) inserted_cell = null @@ -188,7 +188,7 @@ component_cell_out_of_charge/component_cell_removed proc using loc where necessa return to_chat(user, span_notice("You insert [inserting_item] into [equipment]!")) - playsound(equipment, 'sound/weapons/magin.ogg', 40, TRUE) + playsound(equipment, 'sound/items/weapons/magin.ogg', 40, TRUE) inserted_cell = inserting_item inserting_item.forceMove(parent) handle_cell_overlays(FALSE) diff --git a/modular_doppler/colony_fabricator/code/colony_fabricator.dm b/modular_doppler/colony_fabricator/code/colony_fabricator.dm index 828aff57669b2..0913e2a181b6a 100644 --- a/modular_doppler/colony_fabricator/code/colony_fabricator.dm +++ b/modular_doppler/colony_fabricator/code/colony_fabricator.dm @@ -77,7 +77,7 @@ if(design_delta > 0) say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].") - playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) update_static_data_for_all_viewers() diff --git a/modular_doppler/colony_fabricator/code/machines/ore_silo.dm b/modular_doppler/colony_fabricator/code/machines/ore_silo.dm index d8c004ae28f60..1a059fe74d466 100644 --- a/modular_doppler/colony_fabricator/code/machines/ore_silo.dm +++ b/modular_doppler/colony_fabricator/code/machines/ore_silo.dm @@ -13,7 +13,7 @@ /obj/machinery/ore_silo/colony_lathe/silo_log(obj/machinery/machinery_in_question, action, amount, noun, list/mats) . = ..() - playsound(src, 'sound/machines/beep.ogg', 30, TRUE) + playsound(src, 'sound/machines/beep/beep.ogg', 30, TRUE) /obj/machinery/ore_silo/colony_lathe/default_deconstruction_crowbar() return diff --git a/modular_doppler/colony_fabricator/code/repacking_element.dm b/modular_doppler/colony_fabricator/code/repacking_element.dm index 4d11cece58c6f..bf4db0c09eae6 100644 --- a/modular_doppler/colony_fabricator/code/repacking_element.dm +++ b/modular_doppler/colony_fabricator/code/repacking_element.dm @@ -55,7 +55,7 @@ if(!do_after(user, 3 SECONDS, target = source)) return - playsound(source, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(source, 'sound/items/tools/ratchet.ogg', 50, TRUE) new item_to_pack_into(source.drop_location()) diff --git a/modular_doppler/colony_fabricator/code/tools/tools.dm b/modular_doppler/colony_fabricator/code/tools/tools.dm index 419ad19bad4ba..c48670058f7c7 100644 --- a/modular_doppler/colony_fabricator/code/tools/tools.dm +++ b/modular_doppler/colony_fabricator/code/tools/tools.dm @@ -23,8 +23,8 @@ throw_range = 3 attack_verb_continuous = list("drills", "screws", "jabs", "whacks") attack_verb_simple = list("drill", "screw", "jab", "whack") - hitsound = 'sound/items/drill_hit.ogg' - usesound = 'sound/items/drill_use.ogg' + hitsound = 'sound/items/tools/drill_hit.ogg' + usesound = 'sound/items/tools/drill_use.ogg' w_class = WEIGHT_CLASS_SMALL toolspeed = 1 random_color = FALSE @@ -83,7 +83,7 @@ if("Screwdriver") tool_behaviour = TOOL_SCREWDRIVER sharpness = SHARP_POINTY - playsound(src, 'sound/items/change_drill.ogg', 50, vary = TRUE) + playsound(src, 'sound/items/tools/change_drill.ogg', 50, vary = TRUE) update_appearance(UPDATE_ICON) /obj/item/screwdriver/omni_drill/proc/check_menu(mob/user) @@ -160,7 +160,7 @@ if(!(item_use_power(power_use_amount, user, TRUE) & COMPONENT_POWER_SUCCESS)) return powered = !powered - playsound(src, 'sound/effects/sparks4.ogg', 100, TRUE) + playsound(src, 'sound/effects/sparks/sparks4.ogg', 100, TRUE) if(powered) to_chat(user, span_notice("You turn [src] on.")) switched_on() @@ -174,7 +174,7 @@ light_on = TRUE force = 15 damtype = BURN - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' set_light_on(powered) update_appearance() START_PROCESSING(SSobj, src) diff --git a/modular_doppler/cryosleep/code/admin.dm b/modular_doppler/cryosleep/code/admin.dm index 4b6ce389eee24..ceb2a7db14739 100644 --- a/modular_doppler/cryosleep/code/admin.dm +++ b/modular_doppler/cryosleep/code/admin.dm @@ -1,7 +1,7 @@ /// Send player in not-quiet cryopod. If with_paper = TRUE, place a paper with notification under player. /mob/proc/send_to_cryo(with_paper = FALSE) //effect - playsound(loc, 'sound/magic/Repulse.ogg', 100, 1) + playsound(loc, 'sound/effects/magic/repulse.ogg', 100, 1) var/datum/effect_system/spark_spread/quantum/sparks = new sparks.set_up(10, 1, loc) sparks.attach(loc) diff --git a/modular_doppler/deforest_medical_items/code/chemicals/twitch.dm b/modular_doppler/deforest_medical_items/code/chemicals/twitch.dm index ba489b8834e4e..8d6b2ca392c6c 100644 --- a/modular_doppler/deforest_medical_items/code/chemicals/twitch.dm +++ b/modular_doppler/deforest_medical_items/code/chemicals/twitch.dm @@ -142,7 +142,7 @@ span_danger("[source] effortlessly dodges [hitting_projectile]!"), span_userdanger("You effortlessly evade [hitting_projectile]!"), ) - playsound(source, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + playsound(source, pick('sound/items/weapons/bulletflyby.ogg', 'sound/items/weapons/bulletflyby2.ogg', 'sound/items/weapons/bulletflyby3.ogg'), 75, TRUE) source.add_filter(TWITCH_BLUR_EFFECT, 2, gauss_blur_filter(5)) addtimer(CALLBACK(source, TYPE_PROC_REF(/datum, remove_filter), TWITCH_BLUR_EFFECT), 0.5 SECONDS) return COMPONENT_BULLET_PIERCED diff --git a/modular_doppler/deforest_medical_items/code/healing_stack_items.dm b/modular_doppler/deforest_medical_items/code/healing_stack_items.dm index d7f79749f1d4b..245ba6699f93a 100644 --- a/modular_doppler/deforest_medical_items/code/healing_stack_items.dm +++ b/modular_doppler/deforest_medical_items/code/healing_stack_items.dm @@ -30,7 +30,7 @@ /datum/wound/muscle, ) /// The sound we play upon successfully treating the wound - var/treatment_sound = 'sound/items/duct_tape_rip.ogg' + var/treatment_sound = 'sound/items/duct_tape/duct_tape_rip.ogg' // This is only relevant for the types of wounds defined, we can't work if there are none /obj/item/stack/medical/wound_recovery/try_heal(mob/living/patient, mob/user, silent, looping) diff --git a/modular_doppler/emotes/code/added_emotes/animal_sounds.dm b/modular_doppler/emotes/code/added_emotes/animal_sounds.dm index bcad9a92e8cba..acf202293453a 100644 --- a/modular_doppler/emotes/code/added_emotes/animal_sounds.dm +++ b/modular_doppler/emotes/code/added_emotes/animal_sounds.dm @@ -50,7 +50,7 @@ if(ismoth(user)) return 'modular_doppler/emotes/sound/mothchitter.ogg' else - return 'sound/creatures/chitter.ogg' + return 'sound/mobs/non-humanoids/insect/chitter.ogg' /datum/emote/living/flutter key = "flutter" @@ -59,7 +59,7 @@ emote_type = EMOTE_AUDIBLE cant_muffle = TRUE vary = TRUE - sound = 'sound/voice/moth/moth_flutter.ogg' + sound = 'sound/mobs/humanoids/moth/moth_flutter.ogg' // Mouse squeak but an emote @@ -69,7 +69,7 @@ message = "squeaks!" emote_type = EMOTE_AUDIBLE vary = TRUE - sound = 'sound/creatures/mousesqueek.ogg' + sound = 'sound/mobs/non-humanoids/mouse/mousesqueek.ogg' // Barking, like a dog @@ -285,7 +285,7 @@ message = "gnashes." emote_type = EMOTE_AUDIBLE vary = TRUE - sound = 'sound/weapons/bite.ogg' + sound = 'sound/items/weapons/bite.ogg' /datum/emote/living/thump key = "thump" @@ -294,4 +294,4 @@ emote_type = EMOTE_AUDIBLE cant_muffle = TRUE vary = TRUE - sound = 'sound/effects/glassbash.ogg' + sound = 'sound/effects/glass/glassbash.ogg' diff --git a/modular_doppler/hearthkin/primitive_structures/code/fencing.dm b/modular_doppler/hearthkin/primitive_structures/code/fencing.dm index ec6d83cb34b8d..b66811226d3df 100644 --- a/modular_doppler/hearthkin/primitive_structures/code/fencing.dm +++ b/modular_doppler/hearthkin/primitive_structures/code/fencing.dm @@ -60,7 +60,7 @@ opened = !opened set_density(!opened) icon_state = "[opened ? "gate_open" : "gate"]" - playsound(src, (opened ? 'sound/machines/wooden_closet_open.ogg' : 'sound/machines/wooden_closet_close.ogg'), 100, TRUE) + playsound(src, (opened ? 'sound/machines/closet/wooden_closet_open.ogg' : 'sound/machines/closet/wooden_closet_close.ogg'), 100, TRUE) update_appearance() /obj/structure/railing/wooden_fencing/gate/update_icon() @@ -74,8 +74,8 @@ name = "large wooden gate" icon = 'modular_doppler/hearthkin/primitive_structures/icons/wooden_gate.dmi' icon_state = "gate" - openSound = 'sound/machines/wooden_closet_open.ogg' - closeSound = 'sound/machines/wooden_closet_close.ogg' + openSound = 'sound/machines/closet/wooden_closet_open.ogg' + closeSound = 'sound/machines/closet/wooden_closet_close.ogg' /obj/structure/mineral_door/wood/large_gate/Open() playsound(src, openSound, 100, TRUE) diff --git a/modular_doppler/hearthkin/tribal_extended/code/weapons/sword.dm b/modular_doppler/hearthkin/tribal_extended/code/weapons/sword.dm index a2c7cff9cdccc..6b31ae93fa279 100644 --- a/modular_doppler/hearthkin/tribal_extended/code/weapons/sword.dm +++ b/modular_doppler/hearthkin/tribal_extended/code/weapons/sword.dm @@ -13,7 +13,7 @@ throwforce = 10 armour_penetration = 10 w_class = WEIGHT_CLASS_NORMAL - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 0 armor_type = /datum/armor/claymore_bone diff --git a/modular_doppler/icspawn/observer_spawn.dm b/modular_doppler/icspawn/observer_spawn.dm index f3dbf06aac84f..4f0948ec05b1d 100644 --- a/modular_doppler/icspawn/observer_spawn.dm +++ b/modular_doppler/icspawn/observer_spawn.dm @@ -65,7 +65,7 @@ QDEL_IN(user, 1) if (teleport_option == "Bluespace") - playsound(spawned_player, 'sound/magic/Disable_Tech.ogg', 100, 1) + playsound(spawned_player, 'sound/effects/magic/disable_tech.ogg', 100, 1) if(user.mind && isliving(spawned_player)) user.mind.transfer_to(spawned_player, 1) // second argument to force key move to new mob diff --git a/modular_doppler/icspawn/spell.dm b/modular_doppler/icspawn/spell.dm index b9dca8dbdb13d..dc4e0c9709794 100644 --- a/modular_doppler/icspawn/spell.dm +++ b/modular_doppler/icspawn/spell.dm @@ -1,7 +1,7 @@ /datum/action/cooldown/spell/return_back name = "Return" desc = "Activates your return beacon." - sound = 'sound/magic/Repulse.ogg' + sound = 'sound/effects/magic/repulse.ogg' button_icon_state = "lightning" spell_requirements = NONE invocation = "Return on!" diff --git a/modular_doppler/modular_antagonists/sapper_gang/code/creditminer.dm b/modular_doppler/modular_antagonists/sapper_gang/code/creditminer.dm index e26b5899e51cd..7f24002ed134e 100644 --- a/modular_doppler/modular_antagonists/sapper_gang/code/creditminer.dm +++ b/modular_doppler/modular_antagonists/sapper_gang/code/creditminer.dm @@ -62,7 +62,7 @@ /obj/item/powersink/creditminer/proc/print() if(cash_out > 0) - playsound(src, 'sound/items/poster_being_created.ogg', 100, TRUE) + playsound(src, 'sound/items/poster/poster_being_created.ogg', 100, TRUE) balloon_alert_to_viewers("printed [trunc(cash_out)] credits") new /obj/item/holochip(drop_location(), trunc(cash_out)) //get the loot cash_out = 0 diff --git a/modular_doppler/modular_antagonists/sapper_gang/sapper.dm b/modular_doppler/modular_antagonists/sapper_gang/sapper.dm index d3f5dfb1e6220..9c746691984ca 100644 --- a/modular_doppler/modular_antagonists/sapper_gang/sapper.dm +++ b/modular_doppler/modular_antagonists/sapper_gang/sapper.dm @@ -101,7 +101,7 @@ /datum/team/sapper/roundend_report() var/list/parts = list() - parts += "Sapper Gang were:" + parts += span_header("Sapper Gang were:") parts += printplayerlist(members) var/datum/objective/sapper/sapper_objective = locate() in objectives parts += "Total cash out: [sapper_objective.get_loot_value()] credits" diff --git a/modular_doppler/modular_cosmetics/code/head/hair_tie.dm b/modular_doppler/modular_cosmetics/code/head/hair_tie.dm index a10dd68230c4b..b935e7acda5c5 100644 --- a/modular_doppler/modular_cosmetics/code/head/hair_tie.dm +++ b/modular_doppler/modular_cosmetics/code/head/hair_tie.dm @@ -102,14 +102,14 @@ proj.firer = user proj.fired_from = user proj.fire((dir2angle(user.dir) + rand(-projectile_aim_radius, projectile_aim_radius))) - playsound(src, 'sound/weapons/effects/batreflect.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/effects/batreflect.ogg', 25, TRUE) //get rid of what we just launched to let projectile_drop spawn a new one qdel(src) /obj/projectile/bullet/hair_tie icon = 'modular_doppler/modular_cosmetics/icons/obj/head/hair_ties.dmi' icon_state = "hairtie" - hitsound = 'sound/weapons/genhit.ogg' + hitsound = 'sound/items/weapons/genhit.ogg' damage = 0 //its just about the knockdown sharpness = NONE shrapnel_type = NONE //no embedding pls diff --git a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm index 882f440c220c7..f4562c5599628 100644 --- a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm @@ -13,7 +13,7 @@ user.visible_message(span_warning("[user] crushes the can of [src] on [user.p_their()] forehead!"), span_notice("You crush the can of [src] on your forehead.")) else user.visible_message(span_warning("[user] crushes the can of [src] on [M]'s forehead!"), span_notice("You crush the can of [src] on [M]'s forehead.")) - playsound(M,'sound/weapons/pierce.ogg', rand(10,50), TRUE) + playsound(M,'sound/items/weapons/pierce.ogg', rand(10,50), TRUE) var/obj/item/trash/can/doppler/crushed_can = new /obj/item/trash/can/doppler(M.loc) crushed_can.icon_state = icon_state qdel(src) diff --git a/modular_doppler/modular_items/hyposprays/code/hyposprays_II.dm b/modular_doppler/modular_items/hyposprays/code/hyposprays_II.dm index e077f45928914..235d0ecb7ae91 100644 --- a/modular_doppler/modular_items/hyposprays/code/hyposprays_II.dm +++ b/modular_doppler/modular_items/hyposprays/code/hyposprays_II.dm @@ -174,7 +174,7 @@ to_chat(user, span_notice("You remove [vial] from [src].")) vial = null update_icon() - playsound(loc, 'sound/weapons/empty.ogg', 50, 1) + playsound(loc, 'sound/items/weapons/empty.ogg', 50, 1) else to_chat(user, span_notice("This hypo isn't loaded!")) return @@ -193,7 +193,7 @@ vial.forceMove(quickswap_loc) vial = new_vial user.visible_message(span_notice("[user] has loaded a vial into [src]."), span_notice("You have loaded [vial] into [src].")) - playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) + playsound(loc, 'sound/items/weapons/gun/pistol/drop_small.ogg', 35, 1) update_appearance() /obj/item/hypospray/mkii/item_interaction(mob/living/user, obj/item/tool, list/modifiers) diff --git a/modular_doppler/modular_mapping/code/areas/ruins.dm b/modular_doppler/modular_mapping/code/areas/ruins.dm index 1369264c447f5..734106281c19c 100644 --- a/modular_doppler/modular_mapping/code/areas/ruins.dm +++ b/modular_doppler/modular_mapping/code/areas/ruins.dm @@ -3,14 +3,14 @@ /area/ruin/unpowered/magic_hotsprings name = "Magical Hotsprings" icon_state = "ruins" - ambientsounds = list('sound/ambience/ambiicemelody2.ogg') + ambientsounds = list('sound/ambience/icemoon/ambiicemelody2.ogg') /area/ruin/unpowered/abandoned_hearth name = "Abandoned Hearth" icon_state = "ruins" - ambientsounds = list('sound/ambience/ambiicesting4.ogg', 'sound/ambience/ambiicemelody1.ogg') + ambientsounds = list('sound/ambience/icemoon/ambiicesting4.ogg', 'sound/ambience/icemoon/ambiicemelody1.ogg') /area/ruin/unpowered/abandoned_sacred_temple name = "Abandoned Sacred Temple" icon_state = "ruins" - ambientsounds = list('sound/ambience/ambiholy.ogg') + ambientsounds = list('sound/ambience/holy/ambiholy.ogg') diff --git a/modular_doppler/modular_quirks/paycheck_rations/code/tickets.dm b/modular_doppler/modular_quirks/paycheck_rations/code/tickets.dm index f088e6d043688..fc9677bca8953 100644 --- a/modular_doppler/modular_quirks/paycheck_rations/code/tickets.dm +++ b/modular_doppler/modular_quirks/paycheck_rations/code/tickets.dm @@ -20,7 +20,7 @@ /// Attempts to fill out the order list with items of the user's choosing, will stop in its tracks if it fails /obj/item/paper/paperslip/ration_ticket/proc/try_to_make_ration_order_list(obj/machinery/computer/cargo/object_we_attack, mob/living/user) forceMove(object_we_attack) - playsound(object_we_attack, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(object_we_attack, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) // List of meat options we get var/list/radial_meat_options = list( @@ -34,7 +34,7 @@ if(!meats_choice) object_we_attack.balloon_alert(user, "no selection made") forceMove(drop_location(object_we_attack)) - playsound(object_we_attack, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(object_we_attack, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) return switch(meats_choice) @@ -60,7 +60,7 @@ // Reset the list if we fail items_we_deliver = list() forceMove(drop_location(object_we_attack)) - playsound(object_we_attack, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(object_we_attack, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) return switch(produce_choice) @@ -88,7 +88,7 @@ // Reset the list if we fail items_we_deliver = list() forceMove(drop_location(object_we_attack)) - playsound(object_we_attack, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(object_we_attack, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) return switch(flour_choice) @@ -162,7 +162,7 @@ /// Attempts to fill out the order list with items of the user's choosing, will stop in its tracks if it fails /obj/item/paper/paperslip/ration_ticket/luxury/try_to_make_ration_order_list(obj/machinery/computer/cargo/object_we_attack, mob/living/user) forceMove(object_we_attack) - playsound(object_we_attack, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(object_we_attack, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) // List of meat options we get var/list/radial_alcohol_options = list( diff --git a/modular_doppler/modular_species/species_types/golem/golem.dm b/modular_doppler/modular_species/species_types/golem/golem.dm index 635296a43bccd..243419437c294 100644 --- a/modular_doppler/modular_species/species_types/golem/golem.dm +++ b/modular_doppler/modular_species/species_types/golem/golem.dm @@ -134,7 +134,7 @@ return ..() to_chat(owner, span_warning("Your [name] crumbles into loose stone!")) - playsound(owner, 'sound/effects/rock_break.ogg', 60, TRUE) + playsound(owner, 'sound/effects/rock/rock_break.ogg', 60, TRUE) new /obj/item/stack/stone(drop_location(), 4) . = ..() drop_organs(src, TRUE) @@ -146,7 +146,7 @@ return ..() to_chat(owner, span_warning("Your [name] crumbles into loose stone!")) - playsound(owner, 'sound/effects/rock_break.ogg', 60, TRUE) + playsound(owner, 'sound/effects/rock/rock_break.ogg', 60, TRUE) new /obj/item/stack/stone(drop_location(), 4) . = ..() drop_organs(src, TRUE) @@ -158,7 +158,7 @@ return ..() to_chat(owner, span_warning("Your [name] crumbles into loose stone!")) - playsound(owner, 'sound/effects/rock_break.ogg', 60, TRUE) + playsound(owner, 'sound/effects/rock/rock_break.ogg', 60, TRUE) new /obj/item/stack/stone(drop_location(), 4) . = ..() drop_organs(src, TRUE) @@ -170,7 +170,7 @@ return ..() to_chat(owner, span_warning("Your [name] crumbles into loose stone!")) - playsound(owner, 'sound/effects/rock_break.ogg', 60, TRUE) + playsound(owner, 'sound/effects/rock/rock_break.ogg', 60, TRUE) new /obj/item/stack/stone(drop_location(), 4) . = ..() drop_organs(src, TRUE) diff --git a/modular_doppler/modular_species/species_types/slugcats/slugcat.dm b/modular_doppler/modular_species/species_types/slugcats/slugcat.dm index 843ab3079c92c..acc99870aadbe 100644 --- a/modular_doppler/modular_species/species_types/slugcats/slugcat.dm +++ b/modular_doppler/modular_species/species_types/slugcats/slugcat.dm @@ -80,51 +80,51 @@ /datum/species/slugcat/get_cough_sound(mob/living/carbon/human/scug) if(scug.physique == FEMALE) return pick( - 'sound/voice/human/female_cough1.ogg', - 'sound/voice/human/female_cough2.ogg', - 'sound/voice/human/female_cough3.ogg', - 'sound/voice/human/female_cough4.ogg', - 'sound/voice/human/female_cough5.ogg', - 'sound/voice/human/female_cough6.ogg', + 'sound/mobs/humanoids/human/cough/female_cough1.ogg', + 'sound/mobs/humanoids/human/cough/female_cough2.ogg', + 'sound/mobs/humanoids/human/cough/female_cough3.ogg', + 'sound/mobs/humanoids/human/cough/female_cough4.ogg', + 'sound/mobs/humanoids/human/cough/female_cough5.ogg', + 'sound/mobs/humanoids/human/cough/female_cough6.ogg', ) return pick( - 'sound/voice/human/male_cough1.ogg', - 'sound/voice/human/male_cough2.ogg', - 'sound/voice/human/male_cough3.ogg', - 'sound/voice/human/male_cough4.ogg', - 'sound/voice/human/male_cough5.ogg', - 'sound/voice/human/male_cough6.ogg', + 'sound/mobs/humanoids/human/cough/male_cough1.ogg', + 'sound/mobs/humanoids/human/cough/male_cough2.ogg', + 'sound/mobs/humanoids/human/cough/male_cough3.ogg', + 'sound/mobs/humanoids/human/cough/male_cough4.ogg', + 'sound/mobs/humanoids/human/cough/male_cough5.ogg', + 'sound/mobs/humanoids/human/cough/male_cough6.ogg', ) /datum/species/slugcat/get_cry_sound(mob/living/carbon/human/scug) if(scug.physique == FEMALE) return pick( - 'sound/voice/human/female_cry1.ogg', - 'sound/voice/human/female_cry2.ogg', + 'sound/mobs/humanoids/human/cry/female_cry1.ogg', + 'sound/mobs/humanoids/human/cry/female_cry2.ogg', ) return pick( - 'sound/voice/human/male_cry1.ogg', - 'sound/voice/human/male_cry2.ogg', - 'sound/voice/human/male_cry3.ogg', + 'sound/mobs/humanoids/human/cry/male_cry1.ogg', + 'sound/mobs/humanoids/human/cry/male_cry2.ogg', + 'sound/mobs/humanoids/human/cry/male_cry3.ogg', ) /datum/species/lizard/get_sneeze_sound(mob/living/carbon/human/scug) if(scug.physique == FEMALE) - return 'sound/voice/human/female_sneeze1.ogg' - return 'sound/voice/human/male_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg' + return 'sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg' /datum/species/lizard/get_laugh_sound(mob/living/carbon/human/scug) return 'modular_doppler/modular_species/species_types/slugcats/sounds/scuglaugh_1.ogg' /datum/species/lizard/get_sigh_sound(mob/living/carbon/human/scug) if(scug.physique == FEMALE) - return 'sound/voice/human/female_sigh.ogg' - return 'sound/voice/human/male_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/female_sigh.ogg' + return 'sound/mobs/humanoids/human/sigh/male_sigh.ogg' /datum/species/lizard/get_sniff_sound(mob/living/carbon/human/scug) if(scug.physique == FEMALE) - return 'sound/voice/human/female_sniff.ogg' - return 'sound/voice/human/male_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/female_sniff.ogg' + return 'sound/mobs/humanoids/human/sniff/male_sniff.ogg' /// SOUNDS BREAKER END /datum/species/slugcat/get_species_description() diff --git a/modular_doppler/modular_species/species_types/snails/organs/snail_heart.dm b/modular_doppler/modular_species/species_types/snails/organs/snail_heart.dm index 7c8362a56cd81..1883a738d6a0c 100644 --- a/modular_doppler/modular_species/species_types/snails/organs/snail_heart.dm +++ b/modular_doppler/modular_species/species_types/snails/organs/snail_heart.dm @@ -57,7 +57,7 @@ if(COOLDOWN_FINISHED(src, shell_effect_cd)) source.visible_message(span_warning("[source]'s shell weathers the blow, absorbing most of the shock!")) - playsound(source, 'sound/weapons/parry.ogg', 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + playsound(source, 'sound/effects/parry.ogg', 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) COOLDOWN_START(src, shell_effect_cd, 3 SECONDS) // Cooldown resets EVERY time we get hit diff --git a/modular_doppler/reagent_forging/code/anvil.dm b/modular_doppler/reagent_forging/code/anvil.dm index e175bd6eb089e..129eade5cb9f0 100644 --- a/modular_doppler/reagent_forging/code/anvil.dm +++ b/modular_doppler/reagent_forging/code/anvil.dm @@ -158,6 +158,6 @@ ) poor_target.Paralyze(5 SECONDS) poor_target.emote("scream") - playsound(poor_target, 'sound/magic/clockwork/fellowship_armory.ogg', 50, TRUE) + playsound(poor_target, 'sound/effects/magic/clockwork/fellowship_armory.ogg', 50, TRUE) add_memory_in_range(poor_target, 7, /datum/memory/witness_vendor_crush, protagonist = poor_target, antognist = src) return TRUE diff --git a/modular_doppler/reagent_forging/code/forge.dm b/modular_doppler/reagent_forging/code/forge.dm index b183b392662c1..410879207253b 100644 --- a/modular_doppler/reagent_forging/code/forge.dm +++ b/modular_doppler/reagent_forging/code/forge.dm @@ -417,7 +417,7 @@ minimum_target_temperature = 25 // This won't matter except in a few cases here, but we still need to cover those few cases forge_level = FORGE_LEVEL_LEGENDARY - playsound(src, 'sound/weapons/parry.ogg', 50, TRUE) // Play a feedback sound to really let players know we just did an upgrade + playsound(src, 'sound/effects/parry.ogg', 50, TRUE) // Play a feedback sound to really let players know we just did an upgrade /obj/structure/reagent_forge/attackby(obj/item/attacking_item, mob/living/user, params) if(!used_tray && istype(attacking_item, /obj/item/plate/oven_tray)) @@ -611,7 +611,7 @@ attacking_weapon.color = mix_color_from_reagents(attacking_weapon.reagents.reagent_list) balloon_alert_to_viewers("imbued [attacking_weapon]") user.mind.adjust_experience(/datum/skill/smithing, 60) - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) in_use = FALSE return TRUE @@ -661,7 +661,7 @@ attacking_clothing.color = mix_color_from_reagents(attacking_clothing.reagents.reagent_list) balloon_alert_to_viewers("imbued [attacking_clothing]") user.mind.adjust_experience(/datum/skill/smithing, 60) - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + playsound(src, 'sound/effects/magic/demon_consume.ogg', 50, TRUE) in_use = FALSE return TRUE diff --git a/modular_doppler/reagent_forging/code/forge_weapons.dm b/modular_doppler/reagent_forging/code/forge_weapons.dm index 7eb24174bc0cf..af1602e9e3800 100644 --- a/modular_doppler/reagent_forging/code/forge_weapons.dm +++ b/modular_doppler/reagent_forging/code/forge_weapons.dm @@ -26,7 +26,7 @@ inhand_icon_state = "sword" worn_icon_state = "sword_back" belt_icon_state = "sword_belt" - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' throwforce = 10 block_chance = 25 slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK @@ -47,7 +47,7 @@ inhand_icon_state = "katana" worn_icon_state = "katana_back" belt_icon_state = "katana_belt" - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' throwforce = 10 block_chance = 20 slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK @@ -66,7 +66,7 @@ inhand_icon_state = "dagger" worn_icon_state = "dagger_back" belt_icon_state = "dagger_belt" - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' throw_speed = 4 embed_type = /datum/embed_data/forged_dagger throwforce = 15 @@ -118,7 +118,7 @@ slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY resistance_flags = FIRE_PROOF - hitsound = 'sound/weapons/bladeslice.ogg' + hitsound = 'sound/items/weapons/bladeslice.ogg' attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores") attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore") wound_bonus = -15 @@ -317,9 +317,9 @@ if(prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message(span_danger("[owner] deflects [attack_text] with [src]!")) - playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, TRUE) + playsound(src, pick('sound/items/weapons/effects/ric1.ogg', 'sound/items/weapons/effects/ric2.ogg', 'sound/items/weapons/effects/ric3.ogg', 'sound/items/weapons/effects/ric4.ogg', 'sound/items/weapons/effects/ric5.ogg'), 100, TRUE) else - playsound(src, 'sound/weapons/parry.ogg', 75, TRUE) + playsound(src, 'sound/items/weapons/parry.ogg', 75, TRUE) owner.visible_message(span_danger("[owner] parries [attack_text] with [src]!")) var/owner_turf = get_turf(owner) new block_effect(owner_turf, COLOR_YELLOW) diff --git a/modular_doppler/stone/code/stone.dm b/modular_doppler/stone/code/stone.dm index 1cac695222c94..d5e8fa5e19704 100644 --- a/modular_doppler/stone/code/stone.dm +++ b/modular_doppler/stone/code/stone.dm @@ -65,7 +65,7 @@ GLOBAL_LIST_INIT(stone_recipes, list ( \ /obj/item/stack/stone/attackby(obj/item/attacking_item, mob/user, params) if((attacking_item.tool_behaviour != TOOL_MINING) && !(istype(attacking_item, /obj/item/chisel))) return ..() - playsound(src, 'sound/effects/picaxe1.ogg', 50, TRUE) + playsound(src, 'sound/effects/pickaxe/picaxe1.ogg', 50, TRUE) balloon_alert_to_viewers("cutting...") if(!do_after(user, 5 SECONDS, target = src)) balloon_alert_to_viewers("stopped cutting") diff --git a/modular_doppler/tableflip/tableflip.dm b/modular_doppler/tableflip/tableflip.dm index c864fd7b29005..19d119536d436 100644 --- a/modular_doppler/tableflip/tableflip.dm +++ b/modular_doppler/tableflip/tableflip.dm @@ -64,7 +64,7 @@ if(custom_materials) unflipped_table.set_custom_materials(custom_materials) user.balloon_alert_to_viewers("table flipped upright") - playsound(src, 'sound/items/trayhit2.ogg', 100) + playsound(src, 'sound/items/trayhit/trayhit2.ogg', 100) qdel(src) //TABLES @@ -111,7 +111,7 @@ sound_volume = 40 user.balloon_alert_to_viewers(balloon_message) - playsound(src, 'sound/items/trayhit2.ogg', sound_volume) + playsound(src, 'sound/items/trayhit/trayhit2.ogg', sound_volume) qdel(src) var/turf/throw_target = get_step(flipped_table, flipped_table.dir) diff --git a/modular_doppler/time_clock/code/console.dm b/modular_doppler/time_clock/code/console.dm index e5faf4202eab0..472d53c436905 100644 --- a/modular_doppler/time_clock/code/console.dm +++ b/modular_doppler/time_clock/code/console.dm @@ -74,7 +74,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/time_clock, 28) eject_inserted_id(user) return FALSE - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) return TRUE /obj/machinery/time_clock/click_alt(mob/user) @@ -94,7 +94,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/time_clock, 28) inserted_id = FALSE update_appearance() update_static_data_for_all_viewers() - playsound(src, 'sound/machines/terminal_eject.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 50, FALSE) return TRUE diff --git a/sound/ambience/antag/attribution.txt b/sound/ambience/antag/attribution.txt deleted file mode 100644 index 8db2b1b8ec2eb..0000000000000 --- a/sound/ambience/antag/attribution.txt +++ /dev/null @@ -1,11 +0,0 @@ -sound/ambience/antag/abductee.ogg is from "Warp SFX" https://freesound.org/people/Breviceps/sounds/453391 (CC0) -sound/ambience/antag/brainwash.ogg is from "nog.wav" https://freesound.org/people/_NOMINAL_/sounds/124602 (CC-BY 3.0) -sound/ambience/antag/hypnosis.ogg is from "Flashback.wav" https://freesound.org/people/Sclolex/sounds/342103 (CC0) - -{ -ambimaint8.ogg -ambimaint9.ogg -ambimaint10.ogg -ambimaint11.ogg -ambimaint12.ogg -} made by Kayozz , license: CC-by-SA \ No newline at end of file diff --git a/sound/ambience/antag/heretic/attribution.txt b/sound/ambience/antag/heretic/attribution.txt deleted file mode 100644 index 8744b2497f5bd..0000000000000 --- a/sound/ambience/antag/heretic/attribution.txt +++ /dev/null @@ -1 +0,0 @@ -heretic_sacrifice.ogg - made by sadboysusss, License: CC-by-SA \ No newline at end of file diff --git a/sound/ambience/attribution.txt b/sound/ambience/attribution.txt new file mode 100644 index 0000000000000..881197c211b7e --- /dev/null +++ b/sound/ambience/attribution.txt @@ -0,0 +1 @@ +magma.ogg - Hot spring.Seething and bubbles(2lrs,mltprcssng).wav by newlocknew -- https://freesound.org/s/581417/ -- License: Attribution 4.0 and wind 5 by ZIP.Creates -- https://freesound.org/s/726316/ -- License: Creative Commons 0 diff --git a/sound/ambience/aurora_caelus/attribution.txt b/sound/ambience/aurora_caelus/attribution.txt new file mode 100644 index 0000000000000..3249d093518d3 --- /dev/null +++ b/sound/ambience/aurora_caelus/attribution.txt @@ -0,0 +1,2 @@ +aurora_caelus.ogg is Music for Manatees, by Kevin Macleod. It has been licensed under CC-BY 3.0 license. + It has been cropped for use ingame, and also fades out. diff --git a/sound/ambience/aurora_caelus.ogg b/sound/ambience/aurora_caelus/aurora_caelus.ogg similarity index 100% rename from sound/ambience/aurora_caelus.ogg rename to sound/ambience/aurora_caelus/aurora_caelus.ogg diff --git a/sound/ambience/aurora_caelus_short.ogg b/sound/ambience/aurora_caelus/aurora_caelus_short.ogg similarity index 100% rename from sound/ambience/aurora_caelus_short.ogg rename to sound/ambience/aurora_caelus/aurora_caelus_short.ogg diff --git a/sound/ambience/seag1.ogg b/sound/ambience/beach/seag1.ogg similarity index 100% rename from sound/ambience/seag1.ogg rename to sound/ambience/beach/seag1.ogg diff --git a/sound/ambience/seag2.ogg b/sound/ambience/beach/seag2.ogg similarity index 100% rename from sound/ambience/seag2.ogg rename to sound/ambience/beach/seag2.ogg diff --git a/sound/ambience/seag3.ogg b/sound/ambience/beach/seag3.ogg similarity index 100% rename from sound/ambience/seag3.ogg rename to sound/ambience/beach/seag3.ogg diff --git a/sound/ambience/shore.ogg b/sound/ambience/beach/shore.ogg similarity index 100% rename from sound/ambience/shore.ogg rename to sound/ambience/beach/shore.ogg diff --git a/sound/misc/earth_rumble.ogg b/sound/ambience/earth_rumble/earth_rumble.ogg similarity index 100% rename from sound/misc/earth_rumble.ogg rename to sound/ambience/earth_rumble/earth_rumble.ogg diff --git a/sound/misc/earth_rumble_distant1.ogg b/sound/ambience/earth_rumble/earth_rumble_distant1.ogg similarity index 100% rename from sound/misc/earth_rumble_distant1.ogg rename to sound/ambience/earth_rumble/earth_rumble_distant1.ogg diff --git a/sound/misc/earth_rumble_distant2.ogg b/sound/ambience/earth_rumble/earth_rumble_distant2.ogg similarity index 100% rename from sound/misc/earth_rumble_distant2.ogg rename to sound/ambience/earth_rumble/earth_rumble_distant2.ogg diff --git a/sound/misc/earth_rumble_distant3.ogg b/sound/ambience/earth_rumble/earth_rumble_distant3.ogg similarity index 100% rename from sound/misc/earth_rumble_distant3.ogg rename to sound/ambience/earth_rumble/earth_rumble_distant3.ogg diff --git a/sound/misc/earth_rumble_distant4.ogg b/sound/ambience/earth_rumble/earth_rumble_distant4.ogg similarity index 100% rename from sound/misc/earth_rumble_distant4.ogg rename to sound/ambience/earth_rumble/earth_rumble_distant4.ogg diff --git a/sound/ambience/ambiatmos.ogg b/sound/ambience/engineering/ambiatmos.ogg similarity index 100% rename from sound/ambience/ambiatmos.ogg rename to sound/ambience/engineering/ambiatmos.ogg diff --git a/sound/ambience/ambiatmos2.ogg b/sound/ambience/engineering/ambiatmos2.ogg similarity index 100% rename from sound/ambience/ambiatmos2.ogg rename to sound/ambience/engineering/ambiatmos2.ogg diff --git a/sound/ambience/ambisin1.ogg b/sound/ambience/engineering/ambisin1.ogg similarity index 100% rename from sound/ambience/ambisin1.ogg rename to sound/ambience/engineering/ambisin1.ogg diff --git a/sound/ambience/ambisin2.ogg b/sound/ambience/engineering/ambisin2.ogg similarity index 100% rename from sound/ambience/ambisin2.ogg rename to sound/ambience/engineering/ambisin2.ogg diff --git a/sound/ambience/ambisin3.ogg b/sound/ambience/engineering/ambisin3.ogg similarity index 100% rename from sound/ambience/ambisin3.ogg rename to sound/ambience/engineering/ambisin3.ogg diff --git a/sound/ambience/ambisin4.ogg b/sound/ambience/engineering/ambisin4.ogg similarity index 100% rename from sound/ambience/ambisin4.ogg rename to sound/ambience/engineering/ambisin4.ogg diff --git a/sound/ambience/ambitech.ogg b/sound/ambience/engineering/ambitech.ogg similarity index 100% rename from sound/ambience/ambitech.ogg rename to sound/ambience/engineering/ambitech.ogg diff --git a/sound/ambience/ambitech2.ogg b/sound/ambience/engineering/ambitech2.ogg similarity index 100% rename from sound/ambience/ambitech2.ogg rename to sound/ambience/engineering/ambitech2.ogg diff --git a/sound/ambience/ambitech3.ogg b/sound/ambience/engineering/ambitech3.ogg similarity index 100% rename from sound/ambience/ambitech3.ogg rename to sound/ambience/engineering/ambitech3.ogg diff --git a/sound/ambience/ambigen1.ogg b/sound/ambience/general/ambigen1.ogg similarity index 100% rename from sound/ambience/ambigen1.ogg rename to sound/ambience/general/ambigen1.ogg diff --git a/sound/ambience/ambigen10.ogg b/sound/ambience/general/ambigen10.ogg similarity index 100% rename from sound/ambience/ambigen10.ogg rename to sound/ambience/general/ambigen10.ogg diff --git a/sound/ambience/ambigen11.ogg b/sound/ambience/general/ambigen11.ogg similarity index 100% rename from sound/ambience/ambigen11.ogg rename to sound/ambience/general/ambigen11.ogg diff --git a/sound/ambience/ambigen12.ogg b/sound/ambience/general/ambigen12.ogg similarity index 100% rename from sound/ambience/ambigen12.ogg rename to sound/ambience/general/ambigen12.ogg diff --git a/sound/ambience/ambigen13.ogg b/sound/ambience/general/ambigen13.ogg similarity index 100% rename from sound/ambience/ambigen13.ogg rename to sound/ambience/general/ambigen13.ogg diff --git a/sound/ambience/ambigen14.ogg b/sound/ambience/general/ambigen14.ogg similarity index 100% rename from sound/ambience/ambigen14.ogg rename to sound/ambience/general/ambigen14.ogg diff --git a/sound/ambience/ambigen2.ogg b/sound/ambience/general/ambigen2.ogg similarity index 100% rename from sound/ambience/ambigen2.ogg rename to sound/ambience/general/ambigen2.ogg diff --git a/sound/ambience/ambigen3.ogg b/sound/ambience/general/ambigen3.ogg similarity index 100% rename from sound/ambience/ambigen3.ogg rename to sound/ambience/general/ambigen3.ogg diff --git a/sound/ambience/ambigen4.ogg b/sound/ambience/general/ambigen4.ogg similarity index 100% rename from sound/ambience/ambigen4.ogg rename to sound/ambience/general/ambigen4.ogg diff --git a/sound/ambience/ambigen5.ogg b/sound/ambience/general/ambigen5.ogg similarity index 100% rename from sound/ambience/ambigen5.ogg rename to sound/ambience/general/ambigen5.ogg diff --git a/sound/ambience/ambigen6.ogg b/sound/ambience/general/ambigen6.ogg similarity index 100% rename from sound/ambience/ambigen6.ogg rename to sound/ambience/general/ambigen6.ogg diff --git a/sound/ambience/ambigen7.ogg b/sound/ambience/general/ambigen7.ogg similarity index 100% rename from sound/ambience/ambigen7.ogg rename to sound/ambience/general/ambigen7.ogg diff --git a/sound/ambience/ambigen8.ogg b/sound/ambience/general/ambigen8.ogg similarity index 100% rename from sound/ambience/ambigen8.ogg rename to sound/ambience/general/ambigen8.ogg diff --git a/sound/ambience/ambigen9.ogg b/sound/ambience/general/ambigen9.ogg similarity index 100% rename from sound/ambience/ambigen9.ogg rename to sound/ambience/general/ambigen9.ogg diff --git a/sound/ambience/shipambience.ogg b/sound/ambience/general/shipambience.ogg similarity index 100% rename from sound/ambience/shipambience.ogg rename to sound/ambience/general/shipambience.ogg diff --git a/sound/ambience/ambicha1.ogg b/sound/ambience/holy/ambicha1.ogg similarity index 100% rename from sound/ambience/ambicha1.ogg rename to sound/ambience/holy/ambicha1.ogg diff --git a/sound/ambience/ambicha2.ogg b/sound/ambience/holy/ambicha2.ogg similarity index 100% rename from sound/ambience/ambicha2.ogg rename to sound/ambience/holy/ambicha2.ogg diff --git a/sound/ambience/ambicha3.ogg b/sound/ambience/holy/ambicha3.ogg similarity index 100% rename from sound/ambience/ambicha3.ogg rename to sound/ambience/holy/ambicha3.ogg diff --git a/sound/ambience/ambicha4.ogg b/sound/ambience/holy/ambicha4.ogg similarity index 100% rename from sound/ambience/ambicha4.ogg rename to sound/ambience/holy/ambicha4.ogg diff --git a/sound/ambience/ambiholy.ogg b/sound/ambience/holy/ambiholy.ogg similarity index 100% rename from sound/ambience/ambiholy.ogg rename to sound/ambience/holy/ambiholy.ogg diff --git a/sound/ambience/ambiholy2.ogg b/sound/ambience/holy/ambiholy2.ogg similarity index 100% rename from sound/ambience/ambiholy2.ogg rename to sound/ambience/holy/ambiholy2.ogg diff --git a/sound/ambience/ambiholy3.ogg b/sound/ambience/holy/ambiholy3.ogg similarity index 100% rename from sound/ambience/ambiholy3.ogg rename to sound/ambience/holy/ambiholy3.ogg diff --git a/sound/ambience/ambiicemelody1.ogg b/sound/ambience/icemoon/ambiicemelody1.ogg similarity index 100% rename from sound/ambience/ambiicemelody1.ogg rename to sound/ambience/icemoon/ambiicemelody1.ogg diff --git a/sound/ambience/ambiicemelody2.ogg b/sound/ambience/icemoon/ambiicemelody2.ogg similarity index 100% rename from sound/ambience/ambiicemelody2.ogg rename to sound/ambience/icemoon/ambiicemelody2.ogg diff --git a/sound/ambience/ambiicemelody3.ogg b/sound/ambience/icemoon/ambiicemelody3.ogg similarity index 100% rename from sound/ambience/ambiicemelody3.ogg rename to sound/ambience/icemoon/ambiicemelody3.ogg diff --git a/sound/ambience/ambiicemelody4.ogg b/sound/ambience/icemoon/ambiicemelody4.ogg similarity index 100% rename from sound/ambience/ambiicemelody4.ogg rename to sound/ambience/icemoon/ambiicemelody4.ogg diff --git a/sound/ambience/ambiicesting1.ogg b/sound/ambience/icemoon/ambiicesting1.ogg similarity index 100% rename from sound/ambience/ambiicesting1.ogg rename to sound/ambience/icemoon/ambiicesting1.ogg diff --git a/sound/ambience/ambiicesting2.ogg b/sound/ambience/icemoon/ambiicesting2.ogg similarity index 100% rename from sound/ambience/ambiicesting2.ogg rename to sound/ambience/icemoon/ambiicesting2.ogg diff --git a/sound/ambience/ambiicesting3.ogg b/sound/ambience/icemoon/ambiicesting3.ogg similarity index 100% rename from sound/ambience/ambiicesting3.ogg rename to sound/ambience/icemoon/ambiicesting3.ogg diff --git a/sound/ambience/ambiicesting4.ogg b/sound/ambience/icemoon/ambiicesting4.ogg similarity index 100% rename from sound/ambience/ambiicesting4.ogg rename to sound/ambience/icemoon/ambiicesting4.ogg diff --git a/sound/ambience/ambiicesting5.ogg b/sound/ambience/icemoon/ambiicesting5.ogg similarity index 100% rename from sound/ambience/ambiicesting5.ogg rename to sound/ambience/icemoon/ambiicesting5.ogg diff --git a/sound/ambience/ambiicetheme.ogg b/sound/ambience/icemoon/ambiicetheme.ogg similarity index 100% rename from sound/ambience/ambiicetheme.ogg rename to sound/ambience/icemoon/ambiicetheme.ogg diff --git a/sound/ambience/ambicave.ogg b/sound/ambience/lavaland/ambicave.ogg similarity index 100% rename from sound/ambience/ambicave.ogg rename to sound/ambience/lavaland/ambicave.ogg diff --git a/sound/ambience/ambilava1.ogg b/sound/ambience/lavaland/ambilava1.ogg similarity index 100% rename from sound/ambience/ambilava1.ogg rename to sound/ambience/lavaland/ambilava1.ogg diff --git a/sound/ambience/ambilava2.ogg b/sound/ambience/lavaland/ambilava2.ogg similarity index 100% rename from sound/ambience/ambilava2.ogg rename to sound/ambience/lavaland/ambilava2.ogg diff --git a/sound/ambience/ambilava3.ogg b/sound/ambience/lavaland/ambilava3.ogg similarity index 100% rename from sound/ambience/ambilava3.ogg rename to sound/ambience/lavaland/ambilava3.ogg diff --git a/sound/ambience/lavaland/magma.ogg b/sound/ambience/lavaland/magma.ogg new file mode 100644 index 0000000000000..e461801f9aead Binary files /dev/null and b/sound/ambience/lavaland/magma.ogg differ diff --git a/sound/ambience/license.txt b/sound/ambience/license.txt deleted file mode 100644 index a0b6efb24c5c1..0000000000000 --- a/sound/ambience/license.txt +++ /dev/null @@ -1,17 +0,0 @@ -ambidet1.ogg and spy.ogg is Fast Talking by Kevin Macleod. It has been licensed under the CC-BY 3.0 license. - It has been cropped for use ingame. -ambidet2.ogg is Night on the Docks, Piano by Kevin Macleod. It has been licensed under CC-BY 3.0 license. - It has been cropped for use ingame, and also fades in. -aurora_caelus.ogg is Music for Manatees, by Kevin Macleod. It has been licensed under CC-BY 3.0 license. - It has been cropped for use ingame, and also fades out. -title0.ogg is Endless Space by Solus. It has been licensed under CC-BY 3.0 license. Source file downloaded from https://www.newgrounds.com/audio/listen/74946 -title1.mod is Flip-Flap created by Jakub "AceMan" SzelÄ…g and taken from http://aminet.net/package/mods/xceed/Flipflap -title2.ogg is Robocop Theme (gameboy) remixed by Eric Schumacker -title3.ogg is Tintin On The Moon remixed by Cuboos https://tgstation13.org/phpBB/viewtopic.php?f=10&t=2157 (assumed CC under allowing it to be submitted to the github, see thread) - -VoidsEmbrace.ogg is Chopin - Waltz in C Sharp Minor (Op. 64 No. 2). It is in public domain. - -ambispace4.ogg is Sipping Bird, by Capsandi. It has been licensed under CC-BY 3.0 license. -ambimaint6.ogg and ambimaint7.ogg, created by Capsandi are licensed under CC-BY 3.0 license. - -CC-BY 3.0: http://creativecommons.org/licenses/by/3.0/ diff --git a/sound/ambience/magma.ogg b/sound/ambience/magma.ogg deleted file mode 100644 index 415c62966fcc4..0000000000000 Binary files a/sound/ambience/magma.ogg and /dev/null differ diff --git a/sound/ambience/ambimaint.ogg b/sound/ambience/maintenance/ambimaint.ogg similarity index 100% rename from sound/ambience/ambimaint.ogg rename to sound/ambience/maintenance/ambimaint.ogg diff --git a/sound/ambience/ambimaint1.ogg b/sound/ambience/maintenance/ambimaint1.ogg similarity index 100% rename from sound/ambience/ambimaint1.ogg rename to sound/ambience/maintenance/ambimaint1.ogg diff --git a/sound/ambience/ambimaint10.ogg b/sound/ambience/maintenance/ambimaint10.ogg similarity index 100% rename from sound/ambience/ambimaint10.ogg rename to sound/ambience/maintenance/ambimaint10.ogg diff --git a/sound/ambience/ambimaint11.ogg b/sound/ambience/maintenance/ambimaint11.ogg similarity index 100% rename from sound/ambience/ambimaint11.ogg rename to sound/ambience/maintenance/ambimaint11.ogg diff --git a/sound/ambience/ambimaint12.ogg b/sound/ambience/maintenance/ambimaint12.ogg similarity index 100% rename from sound/ambience/ambimaint12.ogg rename to sound/ambience/maintenance/ambimaint12.ogg diff --git a/sound/ambience/ambimaint2.ogg b/sound/ambience/maintenance/ambimaint2.ogg similarity index 100% rename from sound/ambience/ambimaint2.ogg rename to sound/ambience/maintenance/ambimaint2.ogg diff --git a/sound/ambience/ambimaint3.ogg b/sound/ambience/maintenance/ambimaint3.ogg similarity index 100% rename from sound/ambience/ambimaint3.ogg rename to sound/ambience/maintenance/ambimaint3.ogg diff --git a/sound/ambience/ambimaint4.ogg b/sound/ambience/maintenance/ambimaint4.ogg similarity index 100% rename from sound/ambience/ambimaint4.ogg rename to sound/ambience/maintenance/ambimaint4.ogg diff --git a/sound/ambience/ambimaint5.ogg b/sound/ambience/maintenance/ambimaint5.ogg similarity index 100% rename from sound/ambience/ambimaint5.ogg rename to sound/ambience/maintenance/ambimaint5.ogg diff --git a/sound/ambience/ambimaint6.ogg b/sound/ambience/maintenance/ambimaint6.ogg similarity index 100% rename from sound/ambience/ambimaint6.ogg rename to sound/ambience/maintenance/ambimaint6.ogg diff --git a/sound/ambience/ambimaint7.ogg b/sound/ambience/maintenance/ambimaint7.ogg similarity index 100% rename from sound/ambience/ambimaint7.ogg rename to sound/ambience/maintenance/ambimaint7.ogg diff --git a/sound/ambience/ambimaint8.ogg b/sound/ambience/maintenance/ambimaint8.ogg similarity index 100% rename from sound/ambience/ambimaint8.ogg rename to sound/ambience/maintenance/ambimaint8.ogg diff --git a/sound/ambience/ambimaint9.ogg b/sound/ambience/maintenance/ambimaint9.ogg similarity index 100% rename from sound/ambience/ambimaint9.ogg rename to sound/ambience/maintenance/ambimaint9.ogg diff --git a/sound/ambience/maintenance/attribution.txt b/sound/ambience/maintenance/attribution.txt new file mode 100644 index 0000000000000..cf7d2fe0676b2 --- /dev/null +++ b/sound/ambience/maintenance/attribution.txt @@ -0,0 +1,2 @@ +ambispace4.ogg is Sipping Bird, by Capsandi. It has been licensed under CC-BY 3.0 license. +ambimaint6.ogg and ambimaint7.ogg, created by Capsandi are licensed under CC-BY 3.0 license. diff --git a/sound/ambience/maintambience.ogg b/sound/ambience/maintenance/maintambience.ogg similarity index 100% rename from sound/ambience/maintambience.ogg rename to sound/ambience/maintenance/maintambience.ogg diff --git a/sound/ambience/source_corridor2.ogg b/sound/ambience/maintenance/source_corridor2.ogg similarity index 100% rename from sound/ambience/source_corridor2.ogg rename to sound/ambience/maintenance/source_corridor2.ogg diff --git a/sound/ambience/ambimo1.ogg b/sound/ambience/medical/ambimo1.ogg similarity index 100% rename from sound/ambience/ambimo1.ogg rename to sound/ambience/medical/ambimo1.ogg diff --git a/sound/ambience/ambimo2.ogg b/sound/ambience/medical/ambimo2.ogg similarity index 100% rename from sound/ambience/ambimo2.ogg rename to sound/ambience/medical/ambimo2.ogg diff --git a/sound/ambience/ambinice.ogg b/sound/ambience/medical/ambinice.ogg similarity index 100% rename from sound/ambience/ambinice.ogg rename to sound/ambience/medical/ambinice.ogg diff --git a/sound/ambience/ambiviro.ogg b/sound/ambience/medical/ambiviro.ogg similarity index 100% rename from sound/ambience/ambiviro.ogg rename to sound/ambience/medical/ambiviro.ogg diff --git a/sound/ambience/ambiviro1.ogg b/sound/ambience/medical/ambiviro1.ogg similarity index 100% rename from sound/ambience/ambiviro1.ogg rename to sound/ambience/medical/ambiviro1.ogg diff --git a/sound/ambience/ambiviro2.ogg b/sound/ambience/medical/ambiviro2.ogg similarity index 100% rename from sound/ambience/ambiviro2.ogg rename to sound/ambience/medical/ambiviro2.ogg diff --git a/sound/ambience/ambiatm1.ogg b/sound/ambience/misc/ambiatm1.ogg similarity index 100% rename from sound/ambience/ambiatm1.ogg rename to sound/ambience/misc/ambiatm1.ogg diff --git a/sound/ambience/ambidanger.ogg b/sound/ambience/misc/ambidanger.ogg similarity index 100% rename from sound/ambience/ambidanger.ogg rename to sound/ambience/misc/ambidanger.ogg diff --git a/sound/ambience/ambidanger2.ogg b/sound/ambience/misc/ambidanger2.ogg similarity index 100% rename from sound/ambience/ambidanger2.ogg rename to sound/ambience/misc/ambidanger2.ogg diff --git a/sound/ambience/ambifailure.ogg b/sound/ambience/misc/ambifailure.ogg similarity index 100% rename from sound/ambience/ambifailure.ogg rename to sound/ambience/misc/ambifailure.ogg diff --git a/sound/ambience/ambimalf.ogg b/sound/ambience/misc/ambimalf.ogg similarity index 100% rename from sound/ambience/ambimalf.ogg rename to sound/ambience/misc/ambimalf.ogg diff --git a/sound/ambience/ambimystery.ogg b/sound/ambience/misc/ambimystery.ogg similarity index 100% rename from sound/ambience/ambimystery.ogg rename to sound/ambience/misc/ambimystery.ogg diff --git a/sound/ambience/ambiodd.ogg b/sound/ambience/misc/ambiodd.ogg similarity index 100% rename from sound/ambience/ambiodd.ogg rename to sound/ambience/misc/ambiodd.ogg diff --git a/sound/ambience/ambireebe1.ogg b/sound/ambience/misc/ambireebe1.ogg similarity index 100% rename from sound/ambience/ambireebe1.ogg rename to sound/ambience/misc/ambireebe1.ogg diff --git a/sound/ambience/ambireebe2.ogg b/sound/ambience/misc/ambireebe2.ogg similarity index 100% rename from sound/ambience/ambireebe2.ogg rename to sound/ambience/misc/ambireebe2.ogg diff --git a/sound/ambience/ambireebe3.ogg b/sound/ambience/misc/ambireebe3.ogg similarity index 100% rename from sound/ambience/ambireebe3.ogg rename to sound/ambience/misc/ambireebe3.ogg diff --git a/sound/ambience/ambivapor1.ogg b/sound/ambience/misc/ambivapor1.ogg similarity index 100% rename from sound/ambience/ambivapor1.ogg rename to sound/ambience/misc/ambivapor1.ogg diff --git a/sound/ambience/cavesound3.ogg b/sound/ambience/misc/cavesound3.ogg similarity index 100% rename from sound/ambience/cavesound3.ogg rename to sound/ambience/misc/cavesound3.ogg diff --git a/sound/ambience/signal.ogg b/sound/ambience/misc/signal.ogg similarity index 100% rename from sound/ambience/signal.ogg rename to sound/ambience/misc/signal.ogg diff --git a/sound/ambience/source_holehit3.ogg b/sound/ambience/misc/source_holehit3.ogg similarity index 100% rename from sound/ambience/source_holehit3.ogg rename to sound/ambience/misc/source_holehit3.ogg diff --git a/sound/ambience/ticking_clock.ogg b/sound/ambience/misc/ticking_clock.ogg similarity index 100% rename from sound/ambience/ticking_clock.ogg rename to sound/ambience/misc/ticking_clock.ogg diff --git a/sound/ambience/ambimine.ogg b/sound/ambience/ruin/ambimine.ogg similarity index 100% rename from sound/ambience/ambimine.ogg rename to sound/ambience/ruin/ambimine.ogg diff --git a/sound/ambience/ambiruin.ogg b/sound/ambience/ruin/ambiruin.ogg similarity index 100% rename from sound/ambience/ambiruin.ogg rename to sound/ambience/ruin/ambiruin.ogg diff --git a/sound/ambience/ambiruin2.ogg b/sound/ambience/ruin/ambiruin2.ogg similarity index 100% rename from sound/ambience/ambiruin2.ogg rename to sound/ambience/ruin/ambiruin2.ogg diff --git a/sound/ambience/ambiruin3.ogg b/sound/ambience/ruin/ambiruin3.ogg similarity index 100% rename from sound/ambience/ambiruin3.ogg rename to sound/ambience/ruin/ambiruin3.ogg diff --git a/sound/ambience/ambiruin4.ogg b/sound/ambience/ruin/ambiruin4.ogg similarity index 100% rename from sound/ambience/ambiruin4.ogg rename to sound/ambience/ruin/ambiruin4.ogg diff --git a/sound/ambience/ambiruin5.ogg b/sound/ambience/ruin/ambiruin5.ogg similarity index 100% rename from sound/ambience/ambiruin5.ogg rename to sound/ambience/ruin/ambiruin5.ogg diff --git a/sound/ambience/ambiruin6.ogg b/sound/ambience/ruin/ambiruin6.ogg similarity index 100% rename from sound/ambience/ambiruin6.ogg rename to sound/ambience/ruin/ambiruin6.ogg diff --git a/sound/ambience/ambiruin7.ogg b/sound/ambience/ruin/ambiruin7.ogg similarity index 100% rename from sound/ambience/ambiruin7.ogg rename to sound/ambience/ruin/ambiruin7.ogg diff --git a/sound/ambience/servicebell.ogg b/sound/ambience/ruin/servicebell.ogg similarity index 100% rename from sound/ambience/servicebell.ogg rename to sound/ambience/ruin/servicebell.ogg diff --git a/sound/ambience/ambidet1.ogg b/sound/ambience/security/ambidet1.ogg similarity index 100% rename from sound/ambience/ambidet1.ogg rename to sound/ambience/security/ambidet1.ogg diff --git a/sound/ambience/ambidet2.ogg b/sound/ambience/security/ambidet2.ogg similarity index 100% rename from sound/ambience/ambidet2.ogg rename to sound/ambience/security/ambidet2.ogg diff --git a/sound/ambience/security/attribution.txt b/sound/ambience/security/attribution.txt new file mode 100644 index 0000000000000..ea51a227e9e91 --- /dev/null +++ b/sound/ambience/security/attribution.txt @@ -0,0 +1,4 @@ +ambidet1.ogg and spy.ogg is Fast Talking by Kevin Macleod. It has been licensed under the CC-BY 3.0 license. + It has been cropped for use ingame. +ambidet2.ogg is Night on the Docks, Piano by Kevin Macleod. It has been licensed under CC-BY 3.0 license. + It has been cropped for use ingame, and also fades in. diff --git a/sound/ambience/ambispace.ogg b/sound/ambience/space/ambispace.ogg similarity index 100% rename from sound/ambience/ambispace.ogg rename to sound/ambience/space/ambispace.ogg diff --git a/sound/ambience/ambispace2.ogg b/sound/ambience/space/ambispace2.ogg similarity index 100% rename from sound/ambience/ambispace2.ogg rename to sound/ambience/space/ambispace2.ogg diff --git a/sound/ambience/ambispace3.ogg b/sound/ambience/space/ambispace3.ogg similarity index 100% rename from sound/ambience/ambispace3.ogg rename to sound/ambience/space/ambispace3.ogg diff --git a/sound/ambience/ambispace4.ogg b/sound/ambience/space/ambispace4.ogg similarity index 100% rename from sound/ambience/ambispace4.ogg rename to sound/ambience/space/ambispace4.ogg diff --git a/sound/ambience/ambispace5.ogg b/sound/ambience/space/ambispace5.ogg similarity index 100% rename from sound/ambience/ambispace5.ogg rename to sound/ambience/space/ambispace5.ogg diff --git a/sound/ambience/ambispace6.ogg b/sound/ambience/space/ambispace6.ogg similarity index 100% rename from sound/ambience/ambispace6.ogg rename to sound/ambience/space/ambispace6.ogg diff --git a/sound/weather/ashstorm/inside/active_end.ogg b/sound/ambience/weather/ashstorm/inside/active_end.ogg similarity index 100% rename from sound/weather/ashstorm/inside/active_end.ogg rename to sound/ambience/weather/ashstorm/inside/active_end.ogg diff --git a/sound/weather/ashstorm/inside/active_mid1.ogg b/sound/ambience/weather/ashstorm/inside/active_mid1.ogg similarity index 100% rename from sound/weather/ashstorm/inside/active_mid1.ogg rename to sound/ambience/weather/ashstorm/inside/active_mid1.ogg diff --git a/sound/weather/ashstorm/inside/active_mid2.ogg b/sound/ambience/weather/ashstorm/inside/active_mid2.ogg similarity index 100% rename from sound/weather/ashstorm/inside/active_mid2.ogg rename to sound/ambience/weather/ashstorm/inside/active_mid2.ogg diff --git a/sound/weather/ashstorm/inside/active_mid3.ogg b/sound/ambience/weather/ashstorm/inside/active_mid3.ogg similarity index 100% rename from sound/weather/ashstorm/inside/active_mid3.ogg rename to sound/ambience/weather/ashstorm/inside/active_mid3.ogg diff --git a/sound/weather/ashstorm/inside/active_start.ogg b/sound/ambience/weather/ashstorm/inside/active_start.ogg similarity index 100% rename from sound/weather/ashstorm/inside/active_start.ogg rename to sound/ambience/weather/ashstorm/inside/active_start.ogg diff --git a/sound/weather/ashstorm/inside/weak_end.ogg b/sound/ambience/weather/ashstorm/inside/weak_end.ogg similarity index 100% rename from sound/weather/ashstorm/inside/weak_end.ogg rename to sound/ambience/weather/ashstorm/inside/weak_end.ogg diff --git a/sound/weather/ashstorm/inside/weak_mid1.ogg b/sound/ambience/weather/ashstorm/inside/weak_mid1.ogg similarity index 100% rename from sound/weather/ashstorm/inside/weak_mid1.ogg rename to sound/ambience/weather/ashstorm/inside/weak_mid1.ogg diff --git a/sound/weather/ashstorm/inside/weak_mid2.ogg b/sound/ambience/weather/ashstorm/inside/weak_mid2.ogg similarity index 100% rename from sound/weather/ashstorm/inside/weak_mid2.ogg rename to sound/ambience/weather/ashstorm/inside/weak_mid2.ogg diff --git a/sound/weather/ashstorm/inside/weak_mid3.ogg b/sound/ambience/weather/ashstorm/inside/weak_mid3.ogg similarity index 100% rename from sound/weather/ashstorm/inside/weak_mid3.ogg rename to sound/ambience/weather/ashstorm/inside/weak_mid3.ogg diff --git a/sound/weather/ashstorm/inside/weak_start.ogg b/sound/ambience/weather/ashstorm/inside/weak_start.ogg similarity index 100% rename from sound/weather/ashstorm/inside/weak_start.ogg rename to sound/ambience/weather/ashstorm/inside/weak_start.ogg diff --git a/sound/weather/ashstorm/outside/active_end.ogg b/sound/ambience/weather/ashstorm/outside/active_end.ogg similarity index 100% rename from sound/weather/ashstorm/outside/active_end.ogg rename to sound/ambience/weather/ashstorm/outside/active_end.ogg diff --git a/sound/weather/ashstorm/outside/active_mid1.ogg b/sound/ambience/weather/ashstorm/outside/active_mid1.ogg similarity index 100% rename from sound/weather/ashstorm/outside/active_mid1.ogg rename to sound/ambience/weather/ashstorm/outside/active_mid1.ogg diff --git a/sound/weather/ashstorm/outside/active_mid2.ogg b/sound/ambience/weather/ashstorm/outside/active_mid2.ogg similarity index 100% rename from sound/weather/ashstorm/outside/active_mid2.ogg rename to sound/ambience/weather/ashstorm/outside/active_mid2.ogg diff --git a/sound/weather/ashstorm/outside/active_mid3.ogg b/sound/ambience/weather/ashstorm/outside/active_mid3.ogg similarity index 100% rename from sound/weather/ashstorm/outside/active_mid3.ogg rename to sound/ambience/weather/ashstorm/outside/active_mid3.ogg diff --git a/sound/weather/ashstorm/outside/active_start.ogg b/sound/ambience/weather/ashstorm/outside/active_start.ogg similarity index 100% rename from sound/weather/ashstorm/outside/active_start.ogg rename to sound/ambience/weather/ashstorm/outside/active_start.ogg diff --git a/sound/weather/ashstorm/outside/weak_end.ogg b/sound/ambience/weather/ashstorm/outside/weak_end.ogg similarity index 100% rename from sound/weather/ashstorm/outside/weak_end.ogg rename to sound/ambience/weather/ashstorm/outside/weak_end.ogg diff --git a/sound/weather/ashstorm/outside/weak_mid1.ogg b/sound/ambience/weather/ashstorm/outside/weak_mid1.ogg similarity index 100% rename from sound/weather/ashstorm/outside/weak_mid1.ogg rename to sound/ambience/weather/ashstorm/outside/weak_mid1.ogg diff --git a/sound/weather/ashstorm/outside/weak_mid2.ogg b/sound/ambience/weather/ashstorm/outside/weak_mid2.ogg similarity index 100% rename from sound/weather/ashstorm/outside/weak_mid2.ogg rename to sound/ambience/weather/ashstorm/outside/weak_mid2.ogg diff --git a/sound/weather/ashstorm/outside/weak_mid3.ogg b/sound/ambience/weather/ashstorm/outside/weak_mid3.ogg similarity index 100% rename from sound/weather/ashstorm/outside/weak_mid3.ogg rename to sound/ambience/weather/ashstorm/outside/weak_mid3.ogg diff --git a/sound/weather/ashstorm/outside/weak_start.ogg b/sound/ambience/weather/ashstorm/outside/weak_start.ogg similarity index 100% rename from sound/weather/ashstorm/outside/weak_start.ogg rename to sound/ambience/weather/ashstorm/outside/weak_start.ogg diff --git a/sound/voice/ApproachingTG.ogg b/sound/announcer/ApproachingTG.ogg similarity index 100% rename from sound/voice/ApproachingTG.ogg rename to sound/announcer/ApproachingTG.ogg diff --git a/sound/misc/airraid.ogg b/sound/announcer/alarm/airraid.ogg similarity index 100% rename from sound/misc/airraid.ogg rename to sound/announcer/alarm/airraid.ogg diff --git a/sound/announcer/alarm/attribution.txt b/sound/announcer/alarm/attribution.txt new file mode 100644 index 0000000000000..47b896ed5e4f4 --- /dev/null +++ b/sound/announcer/alarm/attribution.txt @@ -0,0 +1,2 @@ +airraid.ogg by Jwade722. Shortened and cut. +https://freesound.org/people/Jwade722/sounds/534550/ diff --git a/sound/misc/bloblarm.ogg b/sound/announcer/alarm/bloblarm.ogg similarity index 100% rename from sound/misc/bloblarm.ogg rename to sound/announcer/alarm/bloblarm.ogg diff --git a/sound/machines/alarm.ogg b/sound/announcer/alarm/nuke_alarm.ogg similarity index 100% rename from sound/machines/alarm.ogg rename to sound/announcer/alarm/nuke_alarm.ogg diff --git a/sound/misc/announce.ogg b/sound/announcer/announcement/announce.ogg similarity index 100% rename from sound/misc/announce.ogg rename to sound/announcer/announcement/announce.ogg diff --git a/sound/misc/announce_dig.ogg b/sound/announcer/announcement/announce_dig.ogg similarity index 100% rename from sound/misc/announce_dig.ogg rename to sound/announcer/announcement/announce_dig.ogg diff --git a/sound/misc/announce_syndi.ogg b/sound/announcer/announcement/announce_syndi.ogg similarity index 100% rename from sound/misc/announce_syndi.ogg rename to sound/announcer/announcement/announce_syndi.ogg diff --git a/sound/ai/default/aimalf.ogg b/sound/announcer/default/aimalf.ogg similarity index 100% rename from sound/ai/default/aimalf.ogg rename to sound/announcer/default/aimalf.ogg diff --git a/sound/ai/default/aliens.ogg b/sound/announcer/default/aliens.ogg similarity index 100% rename from sound/ai/default/aliens.ogg rename to sound/announcer/default/aliens.ogg diff --git a/sound/ai/default/animes.ogg b/sound/announcer/default/animes.ogg similarity index 100% rename from sound/ai/default/animes.ogg rename to sound/announcer/default/animes.ogg diff --git a/sound/ai/default/attention.ogg b/sound/announcer/default/attention.ogg similarity index 100% rename from sound/ai/default/attention.ogg rename to sound/announcer/default/attention.ogg diff --git a/sound/ai/default/commandreport.ogg b/sound/announcer/default/commandreport.ogg similarity index 100% rename from sound/ai/default/commandreport.ogg rename to sound/announcer/default/commandreport.ogg diff --git a/sound/ai/default/granomalies.ogg b/sound/announcer/default/granomalies.ogg similarity index 100% rename from sound/ai/default/granomalies.ogg rename to sound/announcer/default/granomalies.ogg diff --git a/sound/ai/default/intercept.ogg b/sound/announcer/default/intercept.ogg similarity index 100% rename from sound/ai/default/intercept.ogg rename to sound/announcer/default/intercept.ogg diff --git a/sound/ai/default/ionstorm.ogg b/sound/announcer/default/ionstorm.ogg similarity index 100% rename from sound/ai/default/ionstorm.ogg rename to sound/announcer/default/ionstorm.ogg diff --git a/sound/ai/default/meteors.ogg b/sound/announcer/default/meteors.ogg similarity index 100% rename from sound/ai/default/meteors.ogg rename to sound/announcer/default/meteors.ogg diff --git a/sound/ai/default/outbreak5.ogg b/sound/announcer/default/outbreak5.ogg similarity index 100% rename from sound/ai/default/outbreak5.ogg rename to sound/announcer/default/outbreak5.ogg diff --git a/sound/ai/default/outbreak7.ogg b/sound/announcer/default/outbreak7.ogg similarity index 100% rename from sound/ai/default/outbreak7.ogg rename to sound/announcer/default/outbreak7.ogg diff --git a/sound/ai/default/poweroff.ogg b/sound/announcer/default/poweroff.ogg similarity index 100% rename from sound/ai/default/poweroff.ogg rename to sound/announcer/default/poweroff.ogg diff --git a/sound/ai/default/poweron.ogg b/sound/announcer/default/poweron.ogg similarity index 100% rename from sound/ai/default/poweron.ogg rename to sound/announcer/default/poweron.ogg diff --git a/sound/ai/default/radiation.ogg b/sound/announcer/default/radiation.ogg similarity index 100% rename from sound/ai/default/radiation.ogg rename to sound/announcer/default/radiation.ogg diff --git a/sound/ai/default/shuttlecalled.ogg b/sound/announcer/default/shuttlecalled.ogg similarity index 100% rename from sound/ai/default/shuttlecalled.ogg rename to sound/announcer/default/shuttlecalled.ogg diff --git a/sound/ai/default/shuttledock.ogg b/sound/announcer/default/shuttledock.ogg similarity index 100% rename from sound/ai/default/shuttledock.ogg rename to sound/announcer/default/shuttledock.ogg diff --git a/sound/ai/default/shuttlerecalled.ogg b/sound/announcer/default/shuttlerecalled.ogg similarity index 100% rename from sound/ai/default/shuttlerecalled.ogg rename to sound/announcer/default/shuttlerecalled.ogg diff --git a/sound/ai/default/spanomalies.ogg b/sound/announcer/default/spanomalies.ogg similarity index 100% rename from sound/ai/default/spanomalies.ogg rename to sound/announcer/default/spanomalies.ogg diff --git a/sound/ai/default/welcome.ogg b/sound/announcer/default/welcome.ogg similarity index 100% rename from sound/ai/default/welcome.ogg rename to sound/announcer/default/welcome.ogg diff --git a/sound/ai/intern/alerts/1.ogg b/sound/announcer/intern/alerts/1.ogg similarity index 100% rename from sound/ai/intern/alerts/1.ogg rename to sound/announcer/intern/alerts/1.ogg diff --git a/sound/ai/intern/alerts/10.ogg b/sound/announcer/intern/alerts/10.ogg similarity index 100% rename from sound/ai/intern/alerts/10.ogg rename to sound/announcer/intern/alerts/10.ogg diff --git a/sound/ai/intern/alerts/11.ogg b/sound/announcer/intern/alerts/11.ogg similarity index 100% rename from sound/ai/intern/alerts/11.ogg rename to sound/announcer/intern/alerts/11.ogg diff --git a/sound/ai/intern/alerts/12.ogg b/sound/announcer/intern/alerts/12.ogg similarity index 100% rename from sound/ai/intern/alerts/12.ogg rename to sound/announcer/intern/alerts/12.ogg diff --git a/sound/ai/intern/alerts/13.ogg b/sound/announcer/intern/alerts/13.ogg similarity index 100% rename from sound/ai/intern/alerts/13.ogg rename to sound/announcer/intern/alerts/13.ogg diff --git a/sound/ai/intern/alerts/14.ogg b/sound/announcer/intern/alerts/14.ogg similarity index 100% rename from sound/ai/intern/alerts/14.ogg rename to sound/announcer/intern/alerts/14.ogg diff --git a/sound/ai/intern/alerts/2.ogg b/sound/announcer/intern/alerts/2.ogg similarity index 100% rename from sound/ai/intern/alerts/2.ogg rename to sound/announcer/intern/alerts/2.ogg diff --git a/sound/ai/intern/alerts/3.ogg b/sound/announcer/intern/alerts/3.ogg similarity index 100% rename from sound/ai/intern/alerts/3.ogg rename to sound/announcer/intern/alerts/3.ogg diff --git a/sound/ai/intern/alerts/4.ogg b/sound/announcer/intern/alerts/4.ogg similarity index 100% rename from sound/ai/intern/alerts/4.ogg rename to sound/announcer/intern/alerts/4.ogg diff --git a/sound/ai/intern/alerts/5.ogg b/sound/announcer/intern/alerts/5.ogg similarity index 100% rename from sound/ai/intern/alerts/5.ogg rename to sound/announcer/intern/alerts/5.ogg diff --git a/sound/ai/intern/alerts/6.ogg b/sound/announcer/intern/alerts/6.ogg similarity index 100% rename from sound/ai/intern/alerts/6.ogg rename to sound/announcer/intern/alerts/6.ogg diff --git a/sound/ai/intern/alerts/7.ogg b/sound/announcer/intern/alerts/7.ogg similarity index 100% rename from sound/ai/intern/alerts/7.ogg rename to sound/announcer/intern/alerts/7.ogg diff --git a/sound/ai/intern/alerts/8.ogg b/sound/announcer/intern/alerts/8.ogg similarity index 100% rename from sound/ai/intern/alerts/8.ogg rename to sound/announcer/intern/alerts/8.ogg diff --git a/sound/ai/intern/alerts/9.ogg b/sound/announcer/intern/alerts/9.ogg similarity index 100% rename from sound/ai/intern/alerts/9.ogg rename to sound/announcer/intern/alerts/9.ogg diff --git a/sound/ai/intern/aliens.ogg b/sound/announcer/intern/aliens.ogg similarity index 100% rename from sound/ai/intern/aliens.ogg rename to sound/announcer/intern/aliens.ogg diff --git a/sound/ai/intern/animes.ogg b/sound/announcer/intern/animes.ogg similarity index 100% rename from sound/ai/intern/animes.ogg rename to sound/announcer/intern/animes.ogg diff --git a/sound/ai/intern/commandreport/1.ogg b/sound/announcer/intern/commandreport/1.ogg similarity index 100% rename from sound/ai/intern/commandreport/1.ogg rename to sound/announcer/intern/commandreport/1.ogg diff --git a/sound/ai/intern/commandreport/2.ogg b/sound/announcer/intern/commandreport/2.ogg similarity index 100% rename from sound/ai/intern/commandreport/2.ogg rename to sound/announcer/intern/commandreport/2.ogg diff --git a/sound/ai/intern/commandreport/3.ogg b/sound/announcer/intern/commandreport/3.ogg similarity index 100% rename from sound/ai/intern/commandreport/3.ogg rename to sound/announcer/intern/commandreport/3.ogg diff --git a/sound/ai/intern/granomalies.ogg b/sound/announcer/intern/granomalies.ogg similarity index 100% rename from sound/ai/intern/granomalies.ogg rename to sound/announcer/intern/granomalies.ogg diff --git a/sound/ai/intern/intercept.ogg b/sound/announcer/intern/intercept.ogg similarity index 100% rename from sound/ai/intern/intercept.ogg rename to sound/announcer/intern/intercept.ogg diff --git a/sound/ai/intern/ionstorm.ogg b/sound/announcer/intern/ionstorm.ogg similarity index 100% rename from sound/ai/intern/ionstorm.ogg rename to sound/announcer/intern/ionstorm.ogg diff --git a/sound/ai/intern/meteors.ogg b/sound/announcer/intern/meteors.ogg similarity index 100% rename from sound/ai/intern/meteors.ogg rename to sound/announcer/intern/meteors.ogg diff --git a/sound/ai/intern/outbreak5.ogg b/sound/announcer/intern/outbreak5.ogg similarity index 100% rename from sound/ai/intern/outbreak5.ogg rename to sound/announcer/intern/outbreak5.ogg diff --git a/sound/ai/intern/outbreak7.ogg b/sound/announcer/intern/outbreak7.ogg similarity index 100% rename from sound/ai/intern/outbreak7.ogg rename to sound/announcer/intern/outbreak7.ogg diff --git a/sound/ai/intern/poweroff.ogg b/sound/announcer/intern/poweroff.ogg similarity index 100% rename from sound/ai/intern/poweroff.ogg rename to sound/announcer/intern/poweroff.ogg diff --git a/sound/ai/intern/poweron.ogg b/sound/announcer/intern/poweron.ogg similarity index 100% rename from sound/ai/intern/poweron.ogg rename to sound/announcer/intern/poweron.ogg diff --git a/sound/ai/intern/radiation.ogg b/sound/announcer/intern/radiation.ogg similarity index 100% rename from sound/ai/intern/radiation.ogg rename to sound/announcer/intern/radiation.ogg diff --git a/sound/ai/intern/shuttlecalled.ogg b/sound/announcer/intern/shuttlecalled.ogg similarity index 100% rename from sound/ai/intern/shuttlecalled.ogg rename to sound/announcer/intern/shuttlecalled.ogg diff --git a/sound/ai/intern/shuttledock.ogg b/sound/announcer/intern/shuttledock.ogg similarity index 100% rename from sound/ai/intern/shuttledock.ogg rename to sound/announcer/intern/shuttledock.ogg diff --git a/sound/ai/intern/shuttlerecalled.ogg b/sound/announcer/intern/shuttlerecalled.ogg similarity index 100% rename from sound/ai/intern/shuttlerecalled.ogg rename to sound/announcer/intern/shuttlerecalled.ogg diff --git a/sound/ai/intern/spanomalies.ogg b/sound/announcer/intern/spanomalies.ogg similarity index 100% rename from sound/ai/intern/spanomalies.ogg rename to sound/announcer/intern/spanomalies.ogg diff --git a/sound/ai/intern/welcome/1.ogg b/sound/announcer/intern/welcome/1.ogg similarity index 100% rename from sound/ai/intern/welcome/1.ogg rename to sound/announcer/intern/welcome/1.ogg diff --git a/sound/ai/intern/welcome/2.ogg b/sound/announcer/intern/welcome/2.ogg similarity index 100% rename from sound/ai/intern/welcome/2.ogg rename to sound/announcer/intern/welcome/2.ogg diff --git a/sound/ai/intern/welcome/3.ogg b/sound/announcer/intern/welcome/3.ogg similarity index 100% rename from sound/ai/intern/welcome/3.ogg rename to sound/announcer/intern/welcome/3.ogg diff --git a/sound/ai/intern/welcome/4.ogg b/sound/announcer/intern/welcome/4.ogg similarity index 100% rename from sound/ai/intern/welcome/4.ogg rename to sound/announcer/intern/welcome/4.ogg diff --git a/sound/ai/intern/welcome/5.ogg b/sound/announcer/intern/welcome/5.ogg similarity index 100% rename from sound/ai/intern/welcome/5.ogg rename to sound/announcer/intern/welcome/5.ogg diff --git a/sound/ai/intern/welcome/6.ogg b/sound/announcer/intern/welcome/6.ogg similarity index 100% rename from sound/ai/intern/welcome/6.ogg rename to sound/announcer/intern/welcome/6.ogg diff --git a/sound/ai/medbot/aliens.ogg b/sound/announcer/medbot/aliens.ogg similarity index 100% rename from sound/ai/medbot/aliens.ogg rename to sound/announcer/medbot/aliens.ogg diff --git a/sound/ai/medbot/animes.ogg b/sound/announcer/medbot/animes.ogg similarity index 100% rename from sound/ai/medbot/animes.ogg rename to sound/announcer/medbot/animes.ogg diff --git a/sound/ai/medbot/attention.ogg b/sound/announcer/medbot/attention.ogg similarity index 100% rename from sound/ai/medbot/attention.ogg rename to sound/announcer/medbot/attention.ogg diff --git a/sound/ai/medbot/commandreport.ogg b/sound/announcer/medbot/commandreport.ogg similarity index 100% rename from sound/ai/medbot/commandreport.ogg rename to sound/announcer/medbot/commandreport.ogg diff --git a/sound/ai/medbot/granomalies.ogg b/sound/announcer/medbot/granomalies.ogg similarity index 100% rename from sound/ai/medbot/granomalies.ogg rename to sound/announcer/medbot/granomalies.ogg diff --git a/sound/ai/medbot/intercept.ogg b/sound/announcer/medbot/intercept.ogg similarity index 100% rename from sound/ai/medbot/intercept.ogg rename to sound/announcer/medbot/intercept.ogg diff --git a/sound/ai/medbot/ionstorm.ogg b/sound/announcer/medbot/ionstorm.ogg similarity index 100% rename from sound/ai/medbot/ionstorm.ogg rename to sound/announcer/medbot/ionstorm.ogg diff --git a/sound/ai/medbot/meteors.ogg b/sound/announcer/medbot/meteors.ogg similarity index 100% rename from sound/ai/medbot/meteors.ogg rename to sound/announcer/medbot/meteors.ogg diff --git a/sound/ai/medbot/newAI.ogg b/sound/announcer/medbot/newAI.ogg similarity index 100% rename from sound/ai/medbot/newAI.ogg rename to sound/announcer/medbot/newAI.ogg diff --git a/sound/ai/medbot/outbreak5.ogg b/sound/announcer/medbot/outbreak5.ogg similarity index 100% rename from sound/ai/medbot/outbreak5.ogg rename to sound/announcer/medbot/outbreak5.ogg diff --git a/sound/ai/medbot/outbreak7.ogg b/sound/announcer/medbot/outbreak7.ogg similarity index 100% rename from sound/ai/medbot/outbreak7.ogg rename to sound/announcer/medbot/outbreak7.ogg diff --git a/sound/ai/medbot/poweroff.ogg b/sound/announcer/medbot/poweroff.ogg similarity index 100% rename from sound/ai/medbot/poweroff.ogg rename to sound/announcer/medbot/poweroff.ogg diff --git a/sound/ai/medbot/poweron.ogg b/sound/announcer/medbot/poweron.ogg similarity index 100% rename from sound/ai/medbot/poweron.ogg rename to sound/announcer/medbot/poweron.ogg diff --git a/sound/ai/medbot/radiation.ogg b/sound/announcer/medbot/radiation.ogg similarity index 100% rename from sound/ai/medbot/radiation.ogg rename to sound/announcer/medbot/radiation.ogg diff --git a/sound/ai/medbot/shuttlecalled.ogg b/sound/announcer/medbot/shuttlecalled.ogg similarity index 100% rename from sound/ai/medbot/shuttlecalled.ogg rename to sound/announcer/medbot/shuttlecalled.ogg diff --git a/sound/ai/medbot/shuttledock.ogg b/sound/announcer/medbot/shuttledock.ogg similarity index 100% rename from sound/ai/medbot/shuttledock.ogg rename to sound/announcer/medbot/shuttledock.ogg diff --git a/sound/ai/medbot/shuttlerecalled.ogg b/sound/announcer/medbot/shuttlerecalled.ogg similarity index 100% rename from sound/ai/medbot/shuttlerecalled.ogg rename to sound/announcer/medbot/shuttlerecalled.ogg diff --git a/sound/ai/medbot/spanomalies.ogg b/sound/announcer/medbot/spanomalies.ogg similarity index 100% rename from sound/ai/medbot/spanomalies.ogg rename to sound/announcer/medbot/spanomalies.ogg diff --git a/sound/ai/medbot/welcome.ogg b/sound/announcer/medbot/welcome.ogg similarity index 100% rename from sound/ai/medbot/welcome.ogg rename to sound/announcer/medbot/welcome.ogg diff --git a/sound/misc/notice1.ogg b/sound/announcer/notice/notice1.ogg similarity index 100% rename from sound/misc/notice1.ogg rename to sound/announcer/notice/notice1.ogg diff --git a/sound/misc/notice2.ogg b/sound/announcer/notice/notice2.ogg similarity index 100% rename from sound/misc/notice2.ogg rename to sound/announcer/notice/notice2.ogg diff --git a/sound/misc/notice3.ogg b/sound/announcer/notice/notice3.ogg similarity index 100% rename from sound/misc/notice3.ogg rename to sound/announcer/notice/notice3.ogg diff --git a/sound/vox_fem/,.ogg b/sound/announcer/vox_fem/,.ogg similarity index 100% rename from sound/vox_fem/,.ogg rename to sound/announcer/vox_fem/,.ogg diff --git a/sound/vox_fem/..ogg b/sound/announcer/vox_fem/..ogg similarity index 100% rename from sound/vox_fem/..ogg rename to sound/announcer/vox_fem/..ogg diff --git a/sound/vox_fem/a.ogg b/sound/announcer/vox_fem/a.ogg similarity index 100% rename from sound/vox_fem/a.ogg rename to sound/announcer/vox_fem/a.ogg diff --git a/sound/vox_fem/abduction.ogg b/sound/announcer/vox_fem/abduction.ogg similarity index 100% rename from sound/vox_fem/abduction.ogg rename to sound/announcer/vox_fem/abduction.ogg diff --git a/sound/vox_fem/abortions.ogg b/sound/announcer/vox_fem/abortions.ogg similarity index 100% rename from sound/vox_fem/abortions.ogg rename to sound/announcer/vox_fem/abortions.ogg diff --git a/sound/vox_fem/above.ogg b/sound/announcer/vox_fem/above.ogg similarity index 100% rename from sound/vox_fem/above.ogg rename to sound/announcer/vox_fem/above.ogg diff --git a/sound/vox_fem/absorb.ogg b/sound/announcer/vox_fem/absorb.ogg similarity index 100% rename from sound/vox_fem/absorb.ogg rename to sound/announcer/vox_fem/absorb.ogg diff --git a/sound/vox_fem/absorbed.ogg b/sound/announcer/vox_fem/absorbed.ogg similarity index 100% rename from sound/vox_fem/absorbed.ogg rename to sound/announcer/vox_fem/absorbed.ogg diff --git a/sound/vox_fem/absorbing.ogg b/sound/announcer/vox_fem/absorbing.ogg similarity index 100% rename from sound/vox_fem/absorbing.ogg rename to sound/announcer/vox_fem/absorbing.ogg diff --git a/sound/vox_fem/abstain.ogg b/sound/announcer/vox_fem/abstain.ogg similarity index 100% rename from sound/vox_fem/abstain.ogg rename to sound/announcer/vox_fem/abstain.ogg diff --git a/sound/vox_fem/accelerating.ogg b/sound/announcer/vox_fem/accelerating.ogg similarity index 100% rename from sound/vox_fem/accelerating.ogg rename to sound/announcer/vox_fem/accelerating.ogg diff --git a/sound/vox_fem/accelerator.ogg b/sound/announcer/vox_fem/accelerator.ogg similarity index 100% rename from sound/vox_fem/accelerator.ogg rename to sound/announcer/vox_fem/accelerator.ogg diff --git a/sound/vox_fem/accepted.ogg b/sound/announcer/vox_fem/accepted.ogg similarity index 100% rename from sound/vox_fem/accepted.ogg rename to sound/announcer/vox_fem/accepted.ogg diff --git a/sound/vox_fem/access.ogg b/sound/announcer/vox_fem/access.ogg similarity index 100% rename from sound/vox_fem/access.ogg rename to sound/announcer/vox_fem/access.ogg diff --git a/sound/vox_fem/acknowledge.ogg b/sound/announcer/vox_fem/acknowledge.ogg similarity index 100% rename from sound/vox_fem/acknowledge.ogg rename to sound/announcer/vox_fem/acknowledge.ogg diff --git a/sound/vox_fem/acknowledged.ogg b/sound/announcer/vox_fem/acknowledged.ogg similarity index 100% rename from sound/vox_fem/acknowledged.ogg rename to sound/announcer/vox_fem/acknowledged.ogg diff --git a/sound/vox_fem/acquired.ogg b/sound/announcer/vox_fem/acquired.ogg similarity index 100% rename from sound/vox_fem/acquired.ogg rename to sound/announcer/vox_fem/acquired.ogg diff --git a/sound/vox_fem/acquisition.ogg b/sound/announcer/vox_fem/acquisition.ogg similarity index 100% rename from sound/vox_fem/acquisition.ogg rename to sound/announcer/vox_fem/acquisition.ogg diff --git a/sound/vox_fem/across.ogg b/sound/announcer/vox_fem/across.ogg similarity index 100% rename from sound/vox_fem/across.ogg rename to sound/announcer/vox_fem/across.ogg diff --git a/sound/vox_fem/activate.ogg b/sound/announcer/vox_fem/activate.ogg similarity index 100% rename from sound/vox_fem/activate.ogg rename to sound/announcer/vox_fem/activate.ogg diff --git a/sound/vox_fem/activated.ogg b/sound/announcer/vox_fem/activated.ogg similarity index 100% rename from sound/vox_fem/activated.ogg rename to sound/announcer/vox_fem/activated.ogg diff --git a/sound/vox_fem/activating.ogg b/sound/announcer/vox_fem/activating.ogg similarity index 100% rename from sound/vox_fem/activating.ogg rename to sound/announcer/vox_fem/activating.ogg diff --git a/sound/vox_fem/activation.ogg b/sound/announcer/vox_fem/activation.ogg similarity index 100% rename from sound/vox_fem/activation.ogg rename to sound/announcer/vox_fem/activation.ogg diff --git a/sound/vox_fem/active.ogg b/sound/announcer/vox_fem/active.ogg similarity index 100% rename from sound/vox_fem/active.ogg rename to sound/announcer/vox_fem/active.ogg diff --git a/sound/vox_fem/activity.ogg b/sound/announcer/vox_fem/activity.ogg similarity index 100% rename from sound/vox_fem/activity.ogg rename to sound/announcer/vox_fem/activity.ogg diff --git a/sound/vox_fem/adios.ogg b/sound/announcer/vox_fem/adios.ogg similarity index 100% rename from sound/vox_fem/adios.ogg rename to sound/announcer/vox_fem/adios.ogg diff --git a/sound/vox_fem/administration.ogg b/sound/announcer/vox_fem/administration.ogg similarity index 100% rename from sound/vox_fem/administration.ogg rename to sound/announcer/vox_fem/administration.ogg diff --git a/sound/vox_fem/advanced.ogg b/sound/announcer/vox_fem/advanced.ogg similarity index 100% rename from sound/vox_fem/advanced.ogg rename to sound/announcer/vox_fem/advanced.ogg diff --git a/sound/vox_fem/advised.ogg b/sound/announcer/vox_fem/advised.ogg similarity index 100% rename from sound/vox_fem/advised.ogg rename to sound/announcer/vox_fem/advised.ogg diff --git a/sound/vox_fem/affect.ogg b/sound/announcer/vox_fem/affect.ogg similarity index 100% rename from sound/vox_fem/affect.ogg rename to sound/announcer/vox_fem/affect.ogg diff --git a/sound/vox_fem/affected.ogg b/sound/announcer/vox_fem/affected.ogg similarity index 100% rename from sound/vox_fem/affected.ogg rename to sound/announcer/vox_fem/affected.ogg diff --git a/sound/vox_fem/affecting.ogg b/sound/announcer/vox_fem/affecting.ogg similarity index 100% rename from sound/vox_fem/affecting.ogg rename to sound/announcer/vox_fem/affecting.ogg diff --git a/sound/vox_fem/aft.ogg b/sound/announcer/vox_fem/aft.ogg similarity index 100% rename from sound/vox_fem/aft.ogg rename to sound/announcer/vox_fem/aft.ogg diff --git a/sound/vox_fem/after.ogg b/sound/announcer/vox_fem/after.ogg similarity index 100% rename from sound/vox_fem/after.ogg rename to sound/announcer/vox_fem/after.ogg diff --git a/sound/vox_fem/agent.ogg b/sound/announcer/vox_fem/agent.ogg similarity index 100% rename from sound/vox_fem/agent.ogg rename to sound/announcer/vox_fem/agent.ogg diff --git a/sound/vox_fem/ai.ogg b/sound/announcer/vox_fem/ai.ogg similarity index 100% rename from sound/vox_fem/ai.ogg rename to sound/announcer/vox_fem/ai.ogg diff --git a/sound/vox_fem/air.ogg b/sound/announcer/vox_fem/air.ogg similarity index 100% rename from sound/vox_fem/air.ogg rename to sound/announcer/vox_fem/air.ogg diff --git a/sound/vox_fem/airlock.ogg b/sound/announcer/vox_fem/airlock.ogg similarity index 100% rename from sound/vox_fem/airlock.ogg rename to sound/announcer/vox_fem/airlock.ogg diff --git a/sound/vox_fem/alarm.ogg b/sound/announcer/vox_fem/alarm.ogg similarity index 100% rename from sound/vox_fem/alarm.ogg rename to sound/announcer/vox_fem/alarm.ogg diff --git a/sound/vox_fem/alarmed.ogg b/sound/announcer/vox_fem/alarmed.ogg similarity index 100% rename from sound/vox_fem/alarmed.ogg rename to sound/announcer/vox_fem/alarmed.ogg diff --git a/sound/vox_fem/alarming.ogg b/sound/announcer/vox_fem/alarming.ogg similarity index 100% rename from sound/vox_fem/alarming.ogg rename to sound/announcer/vox_fem/alarming.ogg diff --git a/sound/vox_fem/alcohol.ogg b/sound/announcer/vox_fem/alcohol.ogg similarity index 100% rename from sound/vox_fem/alcohol.ogg rename to sound/announcer/vox_fem/alcohol.ogg diff --git a/sound/vox_fem/alert.ogg b/sound/announcer/vox_fem/alert.ogg similarity index 100% rename from sound/vox_fem/alert.ogg rename to sound/announcer/vox_fem/alert.ogg diff --git a/sound/vox_fem/alerted.ogg b/sound/announcer/vox_fem/alerted.ogg similarity index 100% rename from sound/vox_fem/alerted.ogg rename to sound/announcer/vox_fem/alerted.ogg diff --git a/sound/vox_fem/alerting.ogg b/sound/announcer/vox_fem/alerting.ogg similarity index 100% rename from sound/vox_fem/alerting.ogg rename to sound/announcer/vox_fem/alerting.ogg diff --git a/sound/vox_fem/alien.ogg b/sound/announcer/vox_fem/alien.ogg similarity index 100% rename from sound/vox_fem/alien.ogg rename to sound/announcer/vox_fem/alien.ogg diff --git a/sound/vox_fem/align.ogg b/sound/announcer/vox_fem/align.ogg similarity index 100% rename from sound/vox_fem/align.ogg rename to sound/announcer/vox_fem/align.ogg diff --git a/sound/vox_fem/aligned.ogg b/sound/announcer/vox_fem/aligned.ogg similarity index 100% rename from sound/vox_fem/aligned.ogg rename to sound/announcer/vox_fem/aligned.ogg diff --git a/sound/vox_fem/all.ogg b/sound/announcer/vox_fem/all.ogg similarity index 100% rename from sound/vox_fem/all.ogg rename to sound/announcer/vox_fem/all.ogg diff --git a/sound/vox_fem/allow.ogg b/sound/announcer/vox_fem/allow.ogg similarity index 100% rename from sound/vox_fem/allow.ogg rename to sound/announcer/vox_fem/allow.ogg diff --git a/sound/vox_fem/alongside.ogg b/sound/announcer/vox_fem/alongside.ogg similarity index 100% rename from sound/vox_fem/alongside.ogg rename to sound/announcer/vox_fem/alongside.ogg diff --git a/sound/vox_fem/alpha.ogg b/sound/announcer/vox_fem/alpha.ogg similarity index 100% rename from sound/vox_fem/alpha.ogg rename to sound/announcer/vox_fem/alpha.ogg diff --git a/sound/vox_fem/also.ogg b/sound/announcer/vox_fem/also.ogg similarity index 100% rename from sound/vox_fem/also.ogg rename to sound/announcer/vox_fem/also.ogg diff --git a/sound/vox_fem/am.ogg b/sound/announcer/vox_fem/am.ogg similarity index 100% rename from sound/vox_fem/am.ogg rename to sound/announcer/vox_fem/am.ogg diff --git a/sound/vox_fem/amigo.ogg b/sound/announcer/vox_fem/amigo.ogg similarity index 100% rename from sound/vox_fem/amigo.ogg rename to sound/announcer/vox_fem/amigo.ogg diff --git a/sound/vox_fem/ammunition.ogg b/sound/announcer/vox_fem/ammunition.ogg similarity index 100% rename from sound/vox_fem/ammunition.ogg rename to sound/announcer/vox_fem/ammunition.ogg diff --git a/sound/vox_fem/amount.ogg b/sound/announcer/vox_fem/amount.ogg similarity index 100% rename from sound/vox_fem/amount.ogg rename to sound/announcer/vox_fem/amount.ogg diff --git a/sound/vox_fem/an.ogg b/sound/announcer/vox_fem/an.ogg similarity index 100% rename from sound/vox_fem/an.ogg rename to sound/announcer/vox_fem/an.ogg diff --git a/sound/vox_fem/and.ogg b/sound/announcer/vox_fem/and.ogg similarity index 100% rename from sound/vox_fem/and.ogg rename to sound/announcer/vox_fem/and.ogg diff --git a/sound/vox_fem/animal.ogg b/sound/announcer/vox_fem/animal.ogg similarity index 100% rename from sound/vox_fem/animal.ogg rename to sound/announcer/vox_fem/animal.ogg diff --git a/sound/vox_fem/annihilate.ogg b/sound/announcer/vox_fem/annihilate.ogg similarity index 100% rename from sound/vox_fem/annihilate.ogg rename to sound/announcer/vox_fem/annihilate.ogg diff --git a/sound/vox_fem/annihilated.ogg b/sound/announcer/vox_fem/annihilated.ogg similarity index 100% rename from sound/vox_fem/annihilated.ogg rename to sound/announcer/vox_fem/annihilated.ogg diff --git a/sound/vox_fem/annihilating.ogg b/sound/announcer/vox_fem/annihilating.ogg similarity index 100% rename from sound/vox_fem/annihilating.ogg rename to sound/announcer/vox_fem/annihilating.ogg diff --git a/sound/vox_fem/annihilation.ogg b/sound/announcer/vox_fem/annihilation.ogg similarity index 100% rename from sound/vox_fem/annihilation.ogg rename to sound/announcer/vox_fem/annihilation.ogg diff --git a/sound/vox_fem/announcement.ogg b/sound/announcer/vox_fem/announcement.ogg similarity index 100% rename from sound/vox_fem/announcement.ogg rename to sound/announcer/vox_fem/announcement.ogg diff --git a/sound/vox_fem/anomalous.ogg b/sound/announcer/vox_fem/anomalous.ogg similarity index 100% rename from sound/vox_fem/anomalous.ogg rename to sound/announcer/vox_fem/anomalous.ogg diff --git a/sound/vox_fem/answer.ogg b/sound/announcer/vox_fem/answer.ogg similarity index 100% rename from sound/vox_fem/answer.ogg rename to sound/announcer/vox_fem/answer.ogg diff --git a/sound/vox_fem/antenna.ogg b/sound/announcer/vox_fem/antenna.ogg similarity index 100% rename from sound/vox_fem/antenna.ogg rename to sound/announcer/vox_fem/antenna.ogg diff --git a/sound/vox_fem/anti-noblium.ogg b/sound/announcer/vox_fem/anti-noblium.ogg similarity index 100% rename from sound/vox_fem/anti-noblium.ogg rename to sound/announcer/vox_fem/anti-noblium.ogg diff --git a/sound/vox_fem/any.ogg b/sound/announcer/vox_fem/any.ogg similarity index 100% rename from sound/vox_fem/any.ogg rename to sound/announcer/vox_fem/any.ogg diff --git a/sound/vox_fem/apc.ogg b/sound/announcer/vox_fem/apc.ogg similarity index 100% rename from sound/vox_fem/apc.ogg rename to sound/announcer/vox_fem/apc.ogg diff --git a/sound/vox_fem/apprehend.ogg b/sound/announcer/vox_fem/apprehend.ogg similarity index 100% rename from sound/vox_fem/apprehend.ogg rename to sound/announcer/vox_fem/apprehend.ogg diff --git a/sound/vox_fem/approach.ogg b/sound/announcer/vox_fem/approach.ogg similarity index 100% rename from sound/vox_fem/approach.ogg rename to sound/announcer/vox_fem/approach.ogg diff --git a/sound/vox_fem/arc.ogg b/sound/announcer/vox_fem/arc.ogg similarity index 100% rename from sound/vox_fem/arc.ogg rename to sound/announcer/vox_fem/arc.ogg diff --git a/sound/vox_fem/arcs.ogg b/sound/announcer/vox_fem/arcs.ogg similarity index 100% rename from sound/vox_fem/arcs.ogg rename to sound/announcer/vox_fem/arcs.ogg diff --git a/sound/vox_fem/are.ogg b/sound/announcer/vox_fem/are.ogg similarity index 100% rename from sound/vox_fem/are.ogg rename to sound/announcer/vox_fem/are.ogg diff --git a/sound/vox_fem/area.ogg b/sound/announcer/vox_fem/area.ogg similarity index 100% rename from sound/vox_fem/area.ogg rename to sound/announcer/vox_fem/area.ogg diff --git a/sound/vox_fem/arm.ogg b/sound/announcer/vox_fem/arm.ogg similarity index 100% rename from sound/vox_fem/arm.ogg rename to sound/announcer/vox_fem/arm.ogg diff --git a/sound/vox_fem/armed.ogg b/sound/announcer/vox_fem/armed.ogg similarity index 100% rename from sound/vox_fem/armed.ogg rename to sound/announcer/vox_fem/armed.ogg diff --git a/sound/vox_fem/armor.ogg b/sound/announcer/vox_fem/armor.ogg similarity index 100% rename from sound/vox_fem/armor.ogg rename to sound/announcer/vox_fem/armor.ogg diff --git a/sound/vox_fem/armory.ogg b/sound/announcer/vox_fem/armory.ogg similarity index 100% rename from sound/vox_fem/armory.ogg rename to sound/announcer/vox_fem/armory.ogg diff --git a/sound/vox_fem/around.ogg b/sound/announcer/vox_fem/around.ogg similarity index 100% rename from sound/vox_fem/around.ogg rename to sound/announcer/vox_fem/around.ogg diff --git a/sound/vox_fem/array.ogg b/sound/announcer/vox_fem/array.ogg similarity index 100% rename from sound/vox_fem/array.ogg rename to sound/announcer/vox_fem/array.ogg diff --git a/sound/vox_fem/arrest.ogg b/sound/announcer/vox_fem/arrest.ogg similarity index 100% rename from sound/vox_fem/arrest.ogg rename to sound/announcer/vox_fem/arrest.ogg diff --git a/sound/vox_fem/artillery.ogg b/sound/announcer/vox_fem/artillery.ogg similarity index 100% rename from sound/vox_fem/artillery.ogg rename to sound/announcer/vox_fem/artillery.ogg diff --git a/sound/vox_fem/asimov.ogg b/sound/announcer/vox_fem/asimov.ogg similarity index 100% rename from sound/vox_fem/asimov.ogg rename to sound/announcer/vox_fem/asimov.ogg diff --git a/sound/vox_fem/ask.ogg b/sound/announcer/vox_fem/ask.ogg similarity index 100% rename from sound/vox_fem/ask.ogg rename to sound/announcer/vox_fem/ask.ogg diff --git a/sound/vox_fem/ass.ogg b/sound/announcer/vox_fem/ass.ogg similarity index 100% rename from sound/vox_fem/ass.ogg rename to sound/announcer/vox_fem/ass.ogg diff --git a/sound/vox_fem/asshole.ogg b/sound/announcer/vox_fem/asshole.ogg similarity index 100% rename from sound/vox_fem/asshole.ogg rename to sound/announcer/vox_fem/asshole.ogg diff --git a/sound/vox_fem/assholes.ogg b/sound/announcer/vox_fem/assholes.ogg similarity index 100% rename from sound/vox_fem/assholes.ogg rename to sound/announcer/vox_fem/assholes.ogg diff --git a/sound/vox_fem/assistance.ogg b/sound/announcer/vox_fem/assistance.ogg similarity index 100% rename from sound/vox_fem/assistance.ogg rename to sound/announcer/vox_fem/assistance.ogg diff --git a/sound/vox_fem/assistant.ogg b/sound/announcer/vox_fem/assistant.ogg similarity index 100% rename from sound/vox_fem/assistant.ogg rename to sound/announcer/vox_fem/assistant.ogg diff --git a/sound/vox_fem/at.ogg b/sound/announcer/vox_fem/at.ogg similarity index 100% rename from sound/vox_fem/at.ogg rename to sound/announcer/vox_fem/at.ogg diff --git a/sound/vox_fem/ate.ogg b/sound/announcer/vox_fem/ate.ogg similarity index 100% rename from sound/vox_fem/ate.ogg rename to sound/announcer/vox_fem/ate.ogg diff --git a/sound/vox_fem/atmosphere.ogg b/sound/announcer/vox_fem/atmosphere.ogg similarity index 100% rename from sound/vox_fem/atmosphere.ogg rename to sound/announcer/vox_fem/atmosphere.ogg diff --git a/sound/vox_fem/atmospheric.ogg b/sound/announcer/vox_fem/atmospheric.ogg similarity index 100% rename from sound/vox_fem/atmospheric.ogg rename to sound/announcer/vox_fem/atmospheric.ogg diff --git a/sound/vox_fem/atmospherics.ogg b/sound/announcer/vox_fem/atmospherics.ogg similarity index 100% rename from sound/vox_fem/atmospherics.ogg rename to sound/announcer/vox_fem/atmospherics.ogg diff --git a/sound/vox_fem/atomic.ogg b/sound/announcer/vox_fem/atomic.ogg similarity index 100% rename from sound/vox_fem/atomic.ogg rename to sound/announcer/vox_fem/atomic.ogg diff --git a/sound/vox_fem/attention.ogg b/sound/announcer/vox_fem/attention.ogg similarity index 100% rename from sound/vox_fem/attention.ogg rename to sound/announcer/vox_fem/attention.ogg diff --git a/sound/vox_fem/authentication.ogg b/sound/announcer/vox_fem/authentication.ogg similarity index 100% rename from sound/vox_fem/authentication.ogg rename to sound/announcer/vox_fem/authentication.ogg diff --git a/sound/vox_fem/authorize.ogg b/sound/announcer/vox_fem/authorize.ogg similarity index 100% rename from sound/vox_fem/authorize.ogg rename to sound/announcer/vox_fem/authorize.ogg diff --git a/sound/vox_fem/authorized.ogg b/sound/announcer/vox_fem/authorized.ogg similarity index 100% rename from sound/vox_fem/authorized.ogg rename to sound/announcer/vox_fem/authorized.ogg diff --git a/sound/vox_fem/automatic.ogg b/sound/announcer/vox_fem/automatic.ogg similarity index 100% rename from sound/vox_fem/automatic.ogg rename to sound/announcer/vox_fem/automatic.ogg diff --git a/sound/vox_fem/away.ogg b/sound/announcer/vox_fem/away.ogg similarity index 100% rename from sound/vox_fem/away.ogg rename to sound/announcer/vox_fem/away.ogg diff --git a/sound/vox_fem/awful.ogg b/sound/announcer/vox_fem/awful.ogg similarity index 100% rename from sound/vox_fem/awful.ogg rename to sound/announcer/vox_fem/awful.ogg diff --git a/sound/vox_fem/b.ogg b/sound/announcer/vox_fem/b.ogg similarity index 100% rename from sound/vox_fem/b.ogg rename to sound/announcer/vox_fem/b.ogg diff --git a/sound/vox_fem/back.ogg b/sound/announcer/vox_fem/back.ogg similarity index 100% rename from sound/vox_fem/back.ogg rename to sound/announcer/vox_fem/back.ogg diff --git a/sound/vox_fem/backman.ogg b/sound/announcer/vox_fem/backman.ogg similarity index 100% rename from sound/vox_fem/backman.ogg rename to sound/announcer/vox_fem/backman.ogg diff --git a/sound/vox_fem/bad.ogg b/sound/announcer/vox_fem/bad.ogg similarity index 100% rename from sound/vox_fem/bad.ogg rename to sound/announcer/vox_fem/bad.ogg diff --git a/sound/vox_fem/bag.ogg b/sound/announcer/vox_fem/bag.ogg similarity index 100% rename from sound/vox_fem/bag.ogg rename to sound/announcer/vox_fem/bag.ogg diff --git a/sound/vox_fem/bailey.ogg b/sound/announcer/vox_fem/bailey.ogg similarity index 100% rename from sound/vox_fem/bailey.ogg rename to sound/announcer/vox_fem/bailey.ogg diff --git a/sound/vox_fem/bar.ogg b/sound/announcer/vox_fem/bar.ogg similarity index 100% rename from sound/vox_fem/bar.ogg rename to sound/announcer/vox_fem/bar.ogg diff --git a/sound/vox_fem/barracks.ogg b/sound/announcer/vox_fem/barracks.ogg similarity index 100% rename from sound/vox_fem/barracks.ogg rename to sound/announcer/vox_fem/barracks.ogg diff --git a/sound/vox_fem/bartender.ogg b/sound/announcer/vox_fem/bartender.ogg similarity index 100% rename from sound/vox_fem/bartender.ogg rename to sound/announcer/vox_fem/bartender.ogg diff --git a/sound/vox_fem/base.ogg b/sound/announcer/vox_fem/base.ogg similarity index 100% rename from sound/vox_fem/base.ogg rename to sound/announcer/vox_fem/base.ogg diff --git a/sound/vox_fem/bay.ogg b/sound/announcer/vox_fem/bay.ogg similarity index 100% rename from sound/vox_fem/bay.ogg rename to sound/announcer/vox_fem/bay.ogg diff --git a/sound/vox_fem/be.ogg b/sound/announcer/vox_fem/be.ogg similarity index 100% rename from sound/vox_fem/be.ogg rename to sound/announcer/vox_fem/be.ogg diff --git a/sound/vox_fem/beaker.ogg b/sound/announcer/vox_fem/beaker.ogg similarity index 100% rename from sound/vox_fem/beaker.ogg rename to sound/announcer/vox_fem/beaker.ogg diff --git a/sound/vox_fem/beam.ogg b/sound/announcer/vox_fem/beam.ogg similarity index 100% rename from sound/vox_fem/beam.ogg rename to sound/announcer/vox_fem/beam.ogg diff --git a/sound/vox_fem/been.ogg b/sound/announcer/vox_fem/been.ogg similarity index 100% rename from sound/vox_fem/been.ogg rename to sound/announcer/vox_fem/been.ogg diff --git a/sound/vox_fem/beep.ogg b/sound/announcer/vox_fem/beep.ogg similarity index 100% rename from sound/vox_fem/beep.ogg rename to sound/announcer/vox_fem/beep.ogg diff --git a/sound/vox_fem/before.ogg b/sound/announcer/vox_fem/before.ogg similarity index 100% rename from sound/vox_fem/before.ogg rename to sound/announcer/vox_fem/before.ogg diff --git a/sound/vox_fem/began.ogg b/sound/announcer/vox_fem/began.ogg similarity index 100% rename from sound/vox_fem/began.ogg rename to sound/announcer/vox_fem/began.ogg diff --git a/sound/vox_fem/begin.ogg b/sound/announcer/vox_fem/begin.ogg similarity index 100% rename from sound/vox_fem/begin.ogg rename to sound/announcer/vox_fem/begin.ogg diff --git a/sound/vox_fem/begins.ogg b/sound/announcer/vox_fem/begins.ogg similarity index 100% rename from sound/vox_fem/begins.ogg rename to sound/announcer/vox_fem/begins.ogg diff --git a/sound/vox_fem/below.ogg b/sound/announcer/vox_fem/below.ogg similarity index 100% rename from sound/vox_fem/below.ogg rename to sound/announcer/vox_fem/below.ogg diff --git a/sound/vox_fem/beside.ogg b/sound/announcer/vox_fem/beside.ogg similarity index 100% rename from sound/vox_fem/beside.ogg rename to sound/announcer/vox_fem/beside.ogg diff --git a/sound/vox_fem/beware.ogg b/sound/announcer/vox_fem/beware.ogg similarity index 100% rename from sound/vox_fem/beware.ogg rename to sound/announcer/vox_fem/beware.ogg diff --git a/sound/vox_fem/beyond.ogg b/sound/announcer/vox_fem/beyond.ogg similarity index 100% rename from sound/vox_fem/beyond.ogg rename to sound/announcer/vox_fem/beyond.ogg diff --git a/sound/vox_fem/big.ogg b/sound/announcer/vox_fem/big.ogg similarity index 100% rename from sound/vox_fem/big.ogg rename to sound/announcer/vox_fem/big.ogg diff --git a/sound/vox_fem/billion.ogg b/sound/announcer/vox_fem/billion.ogg similarity index 100% rename from sound/vox_fem/billion.ogg rename to sound/announcer/vox_fem/billion.ogg diff --git a/sound/vox_fem/biohazard.ogg b/sound/announcer/vox_fem/biohazard.ogg similarity index 100% rename from sound/vox_fem/biohazard.ogg rename to sound/announcer/vox_fem/biohazard.ogg diff --git a/sound/vox_fem/biological.ogg b/sound/announcer/vox_fem/biological.ogg similarity index 100% rename from sound/vox_fem/biological.ogg rename to sound/announcer/vox_fem/biological.ogg diff --git a/sound/vox_fem/birdwell.ogg b/sound/announcer/vox_fem/birdwell.ogg similarity index 100% rename from sound/vox_fem/birdwell.ogg rename to sound/announcer/vox_fem/birdwell.ogg diff --git a/sound/vox_fem/bitch.ogg b/sound/announcer/vox_fem/bitch.ogg similarity index 100% rename from sound/vox_fem/bitch.ogg rename to sound/announcer/vox_fem/bitch.ogg diff --git a/sound/vox_fem/bitches.ogg b/sound/announcer/vox_fem/bitches.ogg similarity index 100% rename from sound/vox_fem/bitches.ogg rename to sound/announcer/vox_fem/bitches.ogg diff --git a/sound/vox_fem/bitcoin.ogg b/sound/announcer/vox_fem/bitcoin.ogg similarity index 100% rename from sound/vox_fem/bitcoin.ogg rename to sound/announcer/vox_fem/bitcoin.ogg diff --git a/sound/vox_fem/bitrun.ogg b/sound/announcer/vox_fem/bitrun.ogg similarity index 100% rename from sound/vox_fem/bitrun.ogg rename to sound/announcer/vox_fem/bitrun.ogg diff --git a/sound/vox_fem/bitrunner.ogg b/sound/announcer/vox_fem/bitrunner.ogg similarity index 100% rename from sound/vox_fem/bitrunner.ogg rename to sound/announcer/vox_fem/bitrunner.ogg diff --git a/sound/vox_fem/bitrunning.ogg b/sound/announcer/vox_fem/bitrunning.ogg similarity index 100% rename from sound/vox_fem/bitrunning.ogg rename to sound/announcer/vox_fem/bitrunning.ogg diff --git a/sound/vox_fem/black.ogg b/sound/announcer/vox_fem/black.ogg similarity index 100% rename from sound/vox_fem/black.ogg rename to sound/announcer/vox_fem/black.ogg diff --git a/sound/vox_fem/blast.ogg b/sound/announcer/vox_fem/blast.ogg similarity index 100% rename from sound/vox_fem/blast.ogg rename to sound/announcer/vox_fem/blast.ogg diff --git a/sound/vox_fem/bleed.ogg b/sound/announcer/vox_fem/bleed.ogg similarity index 100% rename from sound/vox_fem/bleed.ogg rename to sound/announcer/vox_fem/bleed.ogg diff --git a/sound/vox_fem/blob.ogg b/sound/announcer/vox_fem/blob.ogg similarity index 100% rename from sound/vox_fem/blob.ogg rename to sound/announcer/vox_fem/blob.ogg diff --git a/sound/vox_fem/blocked.ogg b/sound/announcer/vox_fem/blocked.ogg similarity index 100% rename from sound/vox_fem/blocked.ogg rename to sound/announcer/vox_fem/blocked.ogg diff --git a/sound/vox_fem/blood.ogg b/sound/announcer/vox_fem/blood.ogg similarity index 100% rename from sound/vox_fem/blood.ogg rename to sound/announcer/vox_fem/blood.ogg diff --git a/sound/vox_fem/bloop.ogg b/sound/announcer/vox_fem/bloop.ogg similarity index 100% rename from sound/vox_fem/bloop.ogg rename to sound/announcer/vox_fem/bloop.ogg diff --git a/sound/vox_fem/blue.ogg b/sound/announcer/vox_fem/blue.ogg similarity index 100% rename from sound/vox_fem/blue.ogg rename to sound/announcer/vox_fem/blue.ogg diff --git a/sound/vox_fem/bluespace.ogg b/sound/announcer/vox_fem/bluespace.ogg similarity index 100% rename from sound/vox_fem/bluespace.ogg rename to sound/announcer/vox_fem/bluespace.ogg diff --git a/sound/vox_fem/bomb.ogg b/sound/announcer/vox_fem/bomb.ogg similarity index 100% rename from sound/vox_fem/bomb.ogg rename to sound/announcer/vox_fem/bomb.ogg diff --git a/sound/vox_fem/bone.ogg b/sound/announcer/vox_fem/bone.ogg similarity index 100% rename from sound/vox_fem/bone.ogg rename to sound/announcer/vox_fem/bone.ogg diff --git a/sound/vox_fem/botanist.ogg b/sound/announcer/vox_fem/botanist.ogg similarity index 100% rename from sound/vox_fem/botanist.ogg rename to sound/announcer/vox_fem/botanist.ogg diff --git a/sound/vox_fem/botany.ogg b/sound/announcer/vox_fem/botany.ogg similarity index 100% rename from sound/vox_fem/botany.ogg rename to sound/announcer/vox_fem/botany.ogg diff --git a/sound/vox_fem/bottle.ogg b/sound/announcer/vox_fem/bottle.ogg similarity index 100% rename from sound/vox_fem/bottle.ogg rename to sound/announcer/vox_fem/bottle.ogg diff --git a/sound/vox_fem/bottom.ogg b/sound/announcer/vox_fem/bottom.ogg similarity index 100% rename from sound/vox_fem/bottom.ogg rename to sound/announcer/vox_fem/bottom.ogg diff --git a/sound/vox_fem/bravo.ogg b/sound/announcer/vox_fem/bravo.ogg similarity index 100% rename from sound/vox_fem/bravo.ogg rename to sound/announcer/vox_fem/bravo.ogg diff --git a/sound/vox_fem/breach.ogg b/sound/announcer/vox_fem/breach.ogg similarity index 100% rename from sound/vox_fem/breach.ogg rename to sound/announcer/vox_fem/breach.ogg diff --git a/sound/vox_fem/breached.ogg b/sound/announcer/vox_fem/breached.ogg similarity index 100% rename from sound/vox_fem/breached.ogg rename to sound/announcer/vox_fem/breached.ogg diff --git a/sound/vox_fem/break.ogg b/sound/announcer/vox_fem/break.ogg similarity index 100% rename from sound/vox_fem/break.ogg rename to sound/announcer/vox_fem/break.ogg diff --git a/sound/vox_fem/bridge.ogg b/sound/announcer/vox_fem/bridge.ogg similarity index 100% rename from sound/vox_fem/bridge.ogg rename to sound/announcer/vox_fem/bridge.ogg diff --git a/sound/vox_fem/brig.ogg b/sound/announcer/vox_fem/brig.ogg similarity index 100% rename from sound/vox_fem/brig.ogg rename to sound/announcer/vox_fem/brig.ogg diff --git a/sound/vox_fem/broke.ogg b/sound/announcer/vox_fem/broke.ogg similarity index 100% rename from sound/vox_fem/broke.ogg rename to sound/announcer/vox_fem/broke.ogg diff --git a/sound/vox_fem/broken.ogg b/sound/announcer/vox_fem/broken.ogg similarity index 100% rename from sound/vox_fem/broken.ogg rename to sound/announcer/vox_fem/broken.ogg diff --git a/sound/vox_fem/bump.ogg b/sound/announcer/vox_fem/bump.ogg similarity index 100% rename from sound/vox_fem/bump.ogg rename to sound/announcer/vox_fem/bump.ogg diff --git a/sound/vox_fem/bumped.ogg b/sound/announcer/vox_fem/bumped.ogg similarity index 100% rename from sound/vox_fem/bumped.ogg rename to sound/announcer/vox_fem/bumped.ogg diff --git a/sound/vox_fem/bumps.ogg b/sound/announcer/vox_fem/bumps.ogg similarity index 100% rename from sound/vox_fem/bumps.ogg rename to sound/announcer/vox_fem/bumps.ogg diff --git a/sound/vox_fem/bust.ogg b/sound/announcer/vox_fem/bust.ogg similarity index 100% rename from sound/vox_fem/bust.ogg rename to sound/announcer/vox_fem/bust.ogg diff --git a/sound/vox_fem/but.ogg b/sound/announcer/vox_fem/but.ogg similarity index 100% rename from sound/vox_fem/but.ogg rename to sound/announcer/vox_fem/but.ogg diff --git a/sound/vox_fem/button.ogg b/sound/announcer/vox_fem/button.ogg similarity index 100% rename from sound/vox_fem/button.ogg rename to sound/announcer/vox_fem/button.ogg diff --git a/sound/vox_fem/bypass.ogg b/sound/announcer/vox_fem/bypass.ogg similarity index 100% rename from sound/vox_fem/bypass.ogg rename to sound/announcer/vox_fem/bypass.ogg diff --git a/sound/vox_fem/c.ogg b/sound/announcer/vox_fem/c.ogg similarity index 100% rename from sound/vox_fem/c.ogg rename to sound/announcer/vox_fem/c.ogg diff --git a/sound/vox_fem/cable.ogg b/sound/announcer/vox_fem/cable.ogg similarity index 100% rename from sound/vox_fem/cable.ogg rename to sound/announcer/vox_fem/cable.ogg diff --git a/sound/vox_fem/call.ogg b/sound/announcer/vox_fem/call.ogg similarity index 100% rename from sound/vox_fem/call.ogg rename to sound/announcer/vox_fem/call.ogg diff --git a/sound/vox_fem/called.ogg b/sound/announcer/vox_fem/called.ogg similarity index 100% rename from sound/vox_fem/called.ogg rename to sound/announcer/vox_fem/called.ogg diff --git a/sound/vox_fem/can.ogg b/sound/announcer/vox_fem/can.ogg similarity index 100% rename from sound/vox_fem/can.ogg rename to sound/announcer/vox_fem/can.ogg diff --git a/sound/vox_fem/canal.ogg b/sound/announcer/vox_fem/canal.ogg similarity index 100% rename from sound/vox_fem/canal.ogg rename to sound/announcer/vox_fem/canal.ogg diff --git a/sound/vox_fem/canister.ogg b/sound/announcer/vox_fem/canister.ogg similarity index 100% rename from sound/vox_fem/canister.ogg rename to sound/announcer/vox_fem/canister.ogg diff --git a/sound/vox_fem/cap.ogg b/sound/announcer/vox_fem/cap.ogg similarity index 100% rename from sound/vox_fem/cap.ogg rename to sound/announcer/vox_fem/cap.ogg diff --git a/sound/vox_fem/captain.ogg b/sound/announcer/vox_fem/captain.ogg similarity index 100% rename from sound/vox_fem/captain.ogg rename to sound/announcer/vox_fem/captain.ogg diff --git a/sound/vox_fem/capture.ogg b/sound/announcer/vox_fem/capture.ogg similarity index 100% rename from sound/vox_fem/capture.ogg rename to sound/announcer/vox_fem/capture.ogg diff --git a/sound/vox_fem/carbon.ogg b/sound/announcer/vox_fem/carbon.ogg similarity index 100% rename from sound/vox_fem/carbon.ogg rename to sound/announcer/vox_fem/carbon.ogg diff --git a/sound/vox_fem/cargo.ogg b/sound/announcer/vox_fem/cargo.ogg similarity index 100% rename from sound/vox_fem/cargo.ogg rename to sound/announcer/vox_fem/cargo.ogg diff --git a/sound/vox_fem/cascade.ogg b/sound/announcer/vox_fem/cascade.ogg similarity index 100% rename from sound/vox_fem/cascade.ogg rename to sound/announcer/vox_fem/cascade.ogg diff --git a/sound/vox_fem/cat.ogg b/sound/announcer/vox_fem/cat.ogg similarity index 100% rename from sound/vox_fem/cat.ogg rename to sound/announcer/vox_fem/cat.ogg diff --git a/sound/vox_fem/cause.ogg b/sound/announcer/vox_fem/cause.ogg similarity index 100% rename from sound/vox_fem/cause.ogg rename to sound/announcer/vox_fem/cause.ogg diff --git a/sound/vox_fem/caused.ogg b/sound/announcer/vox_fem/caused.ogg similarity index 100% rename from sound/vox_fem/caused.ogg rename to sound/announcer/vox_fem/caused.ogg diff --git a/sound/vox_fem/causes.ogg b/sound/announcer/vox_fem/causes.ogg similarity index 100% rename from sound/vox_fem/causes.ogg rename to sound/announcer/vox_fem/causes.ogg diff --git a/sound/vox_fem/causing.ogg b/sound/announcer/vox_fem/causing.ogg similarity index 100% rename from sound/vox_fem/causing.ogg rename to sound/announcer/vox_fem/causing.ogg diff --git a/sound/vox_fem/ce.ogg b/sound/announcer/vox_fem/ce.ogg similarity index 100% rename from sound/vox_fem/ce.ogg rename to sound/announcer/vox_fem/ce.ogg diff --git a/sound/vox_fem/cease.ogg b/sound/announcer/vox_fem/cease.ogg similarity index 100% rename from sound/vox_fem/cease.ogg rename to sound/announcer/vox_fem/cease.ogg diff --git a/sound/vox_fem/ceiling.ogg b/sound/announcer/vox_fem/ceiling.ogg similarity index 100% rename from sound/vox_fem/ceiling.ogg rename to sound/announcer/vox_fem/ceiling.ogg diff --git a/sound/vox_fem/celsius.ogg b/sound/announcer/vox_fem/celsius.ogg similarity index 100% rename from sound/vox_fem/celsius.ogg rename to sound/announcer/vox_fem/celsius.ogg diff --git a/sound/vox_fem/centcom.ogg b/sound/announcer/vox_fem/centcom.ogg similarity index 100% rename from sound/vox_fem/centcom.ogg rename to sound/announcer/vox_fem/centcom.ogg diff --git a/sound/vox_fem/center.ogg b/sound/announcer/vox_fem/center.ogg similarity index 100% rename from sound/vox_fem/center.ogg rename to sound/announcer/vox_fem/center.ogg diff --git a/sound/vox_fem/centi.ogg b/sound/announcer/vox_fem/centi.ogg similarity index 100% rename from sound/vox_fem/centi.ogg rename to sound/announcer/vox_fem/centi.ogg diff --git a/sound/vox_fem/central.ogg b/sound/announcer/vox_fem/central.ogg similarity index 100% rename from sound/vox_fem/central.ogg rename to sound/announcer/vox_fem/central.ogg diff --git a/sound/vox_fem/challenge.ogg b/sound/announcer/vox_fem/challenge.ogg similarity index 100% rename from sound/vox_fem/challenge.ogg rename to sound/announcer/vox_fem/challenge.ogg diff --git a/sound/vox_fem/chamber.ogg b/sound/announcer/vox_fem/chamber.ogg similarity index 100% rename from sound/vox_fem/chamber.ogg rename to sound/announcer/vox_fem/chamber.ogg diff --git a/sound/vox_fem/change.ogg b/sound/announcer/vox_fem/change.ogg similarity index 100% rename from sound/vox_fem/change.ogg rename to sound/announcer/vox_fem/change.ogg diff --git a/sound/vox_fem/changed.ogg b/sound/announcer/vox_fem/changed.ogg similarity index 100% rename from sound/vox_fem/changed.ogg rename to sound/announcer/vox_fem/changed.ogg diff --git a/sound/vox_fem/changeling.ogg b/sound/announcer/vox_fem/changeling.ogg similarity index 100% rename from sound/vox_fem/changeling.ogg rename to sound/announcer/vox_fem/changeling.ogg diff --git a/sound/vox_fem/chapel.ogg b/sound/announcer/vox_fem/chapel.ogg similarity index 100% rename from sound/vox_fem/chapel.ogg rename to sound/announcer/vox_fem/chapel.ogg diff --git a/sound/vox_fem/chaplain.ogg b/sound/announcer/vox_fem/chaplain.ogg similarity index 100% rename from sound/vox_fem/chaplain.ogg rename to sound/announcer/vox_fem/chaplain.ogg diff --git a/sound/vox_fem/charge.ogg b/sound/announcer/vox_fem/charge.ogg similarity index 100% rename from sound/vox_fem/charge.ogg rename to sound/announcer/vox_fem/charge.ogg diff --git a/sound/vox_fem/charlie.ogg b/sound/announcer/vox_fem/charlie.ogg similarity index 100% rename from sound/vox_fem/charlie.ogg rename to sound/announcer/vox_fem/charlie.ogg diff --git a/sound/vox_fem/check.ogg b/sound/announcer/vox_fem/check.ogg similarity index 100% rename from sound/vox_fem/check.ogg rename to sound/announcer/vox_fem/check.ogg diff --git a/sound/vox_fem/checkpoint.ogg b/sound/announcer/vox_fem/checkpoint.ogg similarity index 100% rename from sound/vox_fem/checkpoint.ogg rename to sound/announcer/vox_fem/checkpoint.ogg diff --git a/sound/vox_fem/chemical.ogg b/sound/announcer/vox_fem/chemical.ogg similarity index 100% rename from sound/vox_fem/chemical.ogg rename to sound/announcer/vox_fem/chemical.ogg diff --git a/sound/vox_fem/chemist.ogg b/sound/announcer/vox_fem/chemist.ogg similarity index 100% rename from sound/vox_fem/chemist.ogg rename to sound/announcer/vox_fem/chemist.ogg diff --git a/sound/vox_fem/chief.ogg b/sound/announcer/vox_fem/chief.ogg similarity index 100% rename from sound/vox_fem/chief.ogg rename to sound/announcer/vox_fem/chief.ogg diff --git a/sound/vox_fem/christ.ogg b/sound/announcer/vox_fem/christ.ogg similarity index 100% rename from sound/vox_fem/christ.ogg rename to sound/announcer/vox_fem/christ.ogg diff --git a/sound/vox_fem/christmas.ogg b/sound/announcer/vox_fem/christmas.ogg similarity index 100% rename from sound/vox_fem/christmas.ogg rename to sound/announcer/vox_fem/christmas.ogg diff --git a/sound/vox_fem/chuckle.ogg b/sound/announcer/vox_fem/chuckle.ogg similarity index 100% rename from sound/vox_fem/chuckle.ogg rename to sound/announcer/vox_fem/chuckle.ogg diff --git a/sound/vox_fem/circuit.ogg b/sound/announcer/vox_fem/circuit.ogg similarity index 100% rename from sound/vox_fem/circuit.ogg rename to sound/announcer/vox_fem/circuit.ogg diff --git a/sound/vox_fem/cleanup.ogg b/sound/announcer/vox_fem/cleanup.ogg similarity index 100% rename from sound/vox_fem/cleanup.ogg rename to sound/announcer/vox_fem/cleanup.ogg diff --git a/sound/vox_fem/clear.ogg b/sound/announcer/vox_fem/clear.ogg similarity index 100% rename from sound/vox_fem/clear.ogg rename to sound/announcer/vox_fem/clear.ogg diff --git a/sound/vox_fem/clearance.ogg b/sound/announcer/vox_fem/clearance.ogg similarity index 100% rename from sound/vox_fem/clearance.ogg rename to sound/announcer/vox_fem/clearance.ogg diff --git a/sound/vox_fem/clockwork.ogg b/sound/announcer/vox_fem/clockwork.ogg similarity index 100% rename from sound/vox_fem/clockwork.ogg rename to sound/announcer/vox_fem/clockwork.ogg diff --git a/sound/vox_fem/clog.ogg b/sound/announcer/vox_fem/clog.ogg similarity index 100% rename from sound/vox_fem/clog.ogg rename to sound/announcer/vox_fem/clog.ogg diff --git a/sound/vox_fem/close.ogg b/sound/announcer/vox_fem/close.ogg similarity index 100% rename from sound/vox_fem/close.ogg rename to sound/announcer/vox_fem/close.ogg diff --git a/sound/vox_fem/closed.ogg b/sound/announcer/vox_fem/closed.ogg similarity index 100% rename from sound/vox_fem/closed.ogg rename to sound/announcer/vox_fem/closed.ogg diff --git a/sound/vox_fem/closing.ogg b/sound/announcer/vox_fem/closing.ogg similarity index 100% rename from sound/vox_fem/closing.ogg rename to sound/announcer/vox_fem/closing.ogg diff --git a/sound/vox_fem/clothing.ogg b/sound/announcer/vox_fem/clothing.ogg similarity index 100% rename from sound/vox_fem/clothing.ogg rename to sound/announcer/vox_fem/clothing.ogg diff --git a/sound/vox_fem/clown.ogg b/sound/announcer/vox_fem/clown.ogg similarity index 100% rename from sound/vox_fem/clown.ogg rename to sound/announcer/vox_fem/clown.ogg diff --git a/sound/vox_fem/clowning.ogg b/sound/announcer/vox_fem/clowning.ogg similarity index 100% rename from sound/vox_fem/clowning.ogg rename to sound/announcer/vox_fem/clowning.ogg diff --git a/sound/vox_fem/cmo.ogg b/sound/announcer/vox_fem/cmo.ogg similarity index 100% rename from sound/vox_fem/cmo.ogg rename to sound/announcer/vox_fem/cmo.ogg diff --git a/sound/vox_fem/code.ogg b/sound/announcer/vox_fem/code.ogg similarity index 100% rename from sound/vox_fem/code.ogg rename to sound/announcer/vox_fem/code.ogg diff --git a/sound/vox_fem/coded.ogg b/sound/announcer/vox_fem/coded.ogg similarity index 100% rename from sound/vox_fem/coded.ogg rename to sound/announcer/vox_fem/coded.ogg diff --git a/sound/vox_fem/coil.ogg b/sound/announcer/vox_fem/coil.ogg similarity index 100% rename from sound/vox_fem/coil.ogg rename to sound/announcer/vox_fem/coil.ogg diff --git a/sound/vox_fem/coils.ogg b/sound/announcer/vox_fem/coils.ogg similarity index 100% rename from sound/vox_fem/coils.ogg rename to sound/announcer/vox_fem/coils.ogg diff --git a/sound/vox_fem/cold.ogg b/sound/announcer/vox_fem/cold.ogg similarity index 100% rename from sound/vox_fem/cold.ogg rename to sound/announcer/vox_fem/cold.ogg diff --git a/sound/vox_fem/collider.ogg b/sound/announcer/vox_fem/collider.ogg similarity index 100% rename from sound/vox_fem/collider.ogg rename to sound/announcer/vox_fem/collider.ogg diff --git a/sound/vox_fem/combat.ogg b/sound/announcer/vox_fem/combat.ogg similarity index 100% rename from sound/vox_fem/combat.ogg rename to sound/announcer/vox_fem/combat.ogg diff --git a/sound/vox_fem/combatant.ogg b/sound/announcer/vox_fem/combatant.ogg similarity index 100% rename from sound/vox_fem/combatant.ogg rename to sound/announcer/vox_fem/combatant.ogg diff --git a/sound/vox_fem/come.ogg b/sound/announcer/vox_fem/come.ogg similarity index 100% rename from sound/vox_fem/come.ogg rename to sound/announcer/vox_fem/come.ogg diff --git a/sound/vox_fem/command.ogg b/sound/announcer/vox_fem/command.ogg similarity index 100% rename from sound/vox_fem/command.ogg rename to sound/announcer/vox_fem/command.ogg diff --git a/sound/vox_fem/communication.ogg b/sound/announcer/vox_fem/communication.ogg similarity index 100% rename from sound/vox_fem/communication.ogg rename to sound/announcer/vox_fem/communication.ogg diff --git a/sound/vox_fem/complete.ogg b/sound/announcer/vox_fem/complete.ogg similarity index 100% rename from sound/vox_fem/complete.ogg rename to sound/announcer/vox_fem/complete.ogg diff --git a/sound/vox_fem/completed.ogg b/sound/announcer/vox_fem/completed.ogg similarity index 100% rename from sound/vox_fem/completed.ogg rename to sound/announcer/vox_fem/completed.ogg diff --git a/sound/vox_fem/completion.ogg b/sound/announcer/vox_fem/completion.ogg similarity index 100% rename from sound/vox_fem/completion.ogg rename to sound/announcer/vox_fem/completion.ogg diff --git a/sound/vox_fem/complex.ogg b/sound/announcer/vox_fem/complex.ogg similarity index 100% rename from sound/vox_fem/complex.ogg rename to sound/announcer/vox_fem/complex.ogg diff --git a/sound/vox_fem/comply.ogg b/sound/announcer/vox_fem/comply.ogg similarity index 100% rename from sound/vox_fem/comply.ogg rename to sound/announcer/vox_fem/comply.ogg diff --git a/sound/vox_fem/computer.ogg b/sound/announcer/vox_fem/computer.ogg similarity index 100% rename from sound/vox_fem/computer.ogg rename to sound/announcer/vox_fem/computer.ogg diff --git a/sound/vox_fem/condition.ogg b/sound/announcer/vox_fem/condition.ogg similarity index 100% rename from sound/vox_fem/condition.ogg rename to sound/announcer/vox_fem/condition.ogg diff --git a/sound/vox_fem/conditions.ogg b/sound/announcer/vox_fem/conditions.ogg similarity index 100% rename from sound/vox_fem/conditions.ogg rename to sound/announcer/vox_fem/conditions.ogg diff --git a/sound/vox_fem/condom.ogg b/sound/announcer/vox_fem/condom.ogg similarity index 100% rename from sound/vox_fem/condom.ogg rename to sound/announcer/vox_fem/condom.ogg diff --git a/sound/vox_fem/configure.ogg b/sound/announcer/vox_fem/configure.ogg similarity index 100% rename from sound/vox_fem/configure.ogg rename to sound/announcer/vox_fem/configure.ogg diff --git a/sound/vox_fem/configured.ogg b/sound/announcer/vox_fem/configured.ogg similarity index 100% rename from sound/vox_fem/configured.ogg rename to sound/announcer/vox_fem/configured.ogg diff --git a/sound/vox_fem/configuring.ogg b/sound/announcer/vox_fem/configuring.ogg similarity index 100% rename from sound/vox_fem/configuring.ogg rename to sound/announcer/vox_fem/configuring.ogg diff --git a/sound/vox_fem/confirmed.ogg b/sound/announcer/vox_fem/confirmed.ogg similarity index 100% rename from sound/vox_fem/confirmed.ogg rename to sound/announcer/vox_fem/confirmed.ogg diff --git a/sound/vox_fem/connor.ogg b/sound/announcer/vox_fem/connor.ogg similarity index 100% rename from sound/vox_fem/connor.ogg rename to sound/announcer/vox_fem/connor.ogg diff --git a/sound/vox_fem/console.ogg b/sound/announcer/vox_fem/console.ogg similarity index 100% rename from sound/vox_fem/console.ogg rename to sound/announcer/vox_fem/console.ogg diff --git a/sound/vox_fem/console2.ogg b/sound/announcer/vox_fem/console2.ogg similarity index 100% rename from sound/vox_fem/console2.ogg rename to sound/announcer/vox_fem/console2.ogg diff --git a/sound/vox_fem/construct.ogg b/sound/announcer/vox_fem/construct.ogg similarity index 100% rename from sound/vox_fem/construct.ogg rename to sound/announcer/vox_fem/construct.ogg diff --git a/sound/vox_fem/container.ogg b/sound/announcer/vox_fem/container.ogg similarity index 100% rename from sound/vox_fem/container.ogg rename to sound/announcer/vox_fem/container.ogg diff --git a/sound/vox_fem/containment.ogg b/sound/announcer/vox_fem/containment.ogg similarity index 100% rename from sound/vox_fem/containment.ogg rename to sound/announcer/vox_fem/containment.ogg diff --git a/sound/vox_fem/contamination.ogg b/sound/announcer/vox_fem/contamination.ogg similarity index 100% rename from sound/vox_fem/contamination.ogg rename to sound/announcer/vox_fem/contamination.ogg diff --git a/sound/vox_fem/contraband.ogg b/sound/announcer/vox_fem/contraband.ogg similarity index 100% rename from sound/vox_fem/contraband.ogg rename to sound/announcer/vox_fem/contraband.ogg diff --git a/sound/vox_fem/control.ogg b/sound/announcer/vox_fem/control.ogg similarity index 100% rename from sound/vox_fem/control.ogg rename to sound/announcer/vox_fem/control.ogg diff --git a/sound/vox_fem/cook.ogg b/sound/announcer/vox_fem/cook.ogg similarity index 100% rename from sound/vox_fem/cook.ogg rename to sound/announcer/vox_fem/cook.ogg diff --git a/sound/vox_fem/cool.ogg b/sound/announcer/vox_fem/cool.ogg similarity index 100% rename from sound/vox_fem/cool.ogg rename to sound/announcer/vox_fem/cool.ogg diff --git a/sound/vox_fem/coolant.ogg b/sound/announcer/vox_fem/coolant.ogg similarity index 100% rename from sound/vox_fem/coolant.ogg rename to sound/announcer/vox_fem/coolant.ogg diff --git a/sound/vox_fem/cooling.ogg b/sound/announcer/vox_fem/cooling.ogg similarity index 100% rename from sound/vox_fem/cooling.ogg rename to sound/announcer/vox_fem/cooling.ogg diff --git a/sound/vox_fem/coomer.ogg b/sound/announcer/vox_fem/coomer.ogg similarity index 100% rename from sound/vox_fem/coomer.ogg rename to sound/announcer/vox_fem/coomer.ogg diff --git a/sound/vox_fem/core.ogg b/sound/announcer/vox_fem/core.ogg similarity index 100% rename from sound/vox_fem/core.ogg rename to sound/announcer/vox_fem/core.ogg diff --git a/sound/vox_fem/corgi.ogg b/sound/announcer/vox_fem/corgi.ogg similarity index 100% rename from sound/vox_fem/corgi.ogg rename to sound/announcer/vox_fem/corgi.ogg diff --git a/sound/vox_fem/corporation.ogg b/sound/announcer/vox_fem/corporation.ogg similarity index 100% rename from sound/vox_fem/corporation.ogg rename to sound/announcer/vox_fem/corporation.ogg diff --git a/sound/vox_fem/correct.ogg b/sound/announcer/vox_fem/correct.ogg similarity index 100% rename from sound/vox_fem/correct.ogg rename to sound/announcer/vox_fem/correct.ogg diff --git a/sound/vox_fem/corridor.ogg b/sound/announcer/vox_fem/corridor.ogg similarity index 100% rename from sound/vox_fem/corridor.ogg rename to sound/announcer/vox_fem/corridor.ogg diff --git a/sound/vox_fem/corridors.ogg b/sound/announcer/vox_fem/corridors.ogg similarity index 100% rename from sound/vox_fem/corridors.ogg rename to sound/announcer/vox_fem/corridors.ogg diff --git a/sound/vox_fem/could.ogg b/sound/announcer/vox_fem/could.ogg similarity index 100% rename from sound/vox_fem/could.ogg rename to sound/announcer/vox_fem/could.ogg diff --git a/sound/vox_fem/couldnt.ogg b/sound/announcer/vox_fem/couldnt.ogg similarity index 100% rename from sound/vox_fem/couldnt.ogg rename to sound/announcer/vox_fem/couldnt.ogg diff --git a/sound/vox_fem/countdown.ogg b/sound/announcer/vox_fem/countdown.ogg similarity index 100% rename from sound/vox_fem/countdown.ogg rename to sound/announcer/vox_fem/countdown.ogg diff --git a/sound/vox_fem/coward.ogg b/sound/announcer/vox_fem/coward.ogg similarity index 100% rename from sound/vox_fem/coward.ogg rename to sound/announcer/vox_fem/coward.ogg diff --git a/sound/vox_fem/cowards.ogg b/sound/announcer/vox_fem/cowards.ogg similarity index 100% rename from sound/vox_fem/cowards.ogg rename to sound/announcer/vox_fem/cowards.ogg diff --git a/sound/vox_fem/crate.ogg b/sound/announcer/vox_fem/crate.ogg similarity index 100% rename from sound/vox_fem/crate.ogg rename to sound/announcer/vox_fem/crate.ogg diff --git a/sound/vox_fem/create.ogg b/sound/announcer/vox_fem/create.ogg similarity index 100% rename from sound/vox_fem/create.ogg rename to sound/announcer/vox_fem/create.ogg diff --git a/sound/vox_fem/created.ogg b/sound/announcer/vox_fem/created.ogg similarity index 100% rename from sound/vox_fem/created.ogg rename to sound/announcer/vox_fem/created.ogg diff --git a/sound/vox_fem/creating.ogg b/sound/announcer/vox_fem/creating.ogg similarity index 100% rename from sound/vox_fem/creating.ogg rename to sound/announcer/vox_fem/creating.ogg diff --git a/sound/vox_fem/creature.ogg b/sound/announcer/vox_fem/creature.ogg similarity index 100% rename from sound/vox_fem/creature.ogg rename to sound/announcer/vox_fem/creature.ogg diff --git a/sound/vox_fem/crew.ogg b/sound/announcer/vox_fem/crew.ogg similarity index 100% rename from sound/vox_fem/crew.ogg rename to sound/announcer/vox_fem/crew.ogg diff --git a/sound/vox_fem/critical.ogg b/sound/announcer/vox_fem/critical.ogg similarity index 100% rename from sound/vox_fem/critical.ogg rename to sound/announcer/vox_fem/critical.ogg diff --git a/sound/vox_fem/cross.ogg b/sound/announcer/vox_fem/cross.ogg similarity index 100% rename from sound/vox_fem/cross.ogg rename to sound/announcer/vox_fem/cross.ogg diff --git a/sound/vox_fem/cryogenic.ogg b/sound/announcer/vox_fem/cryogenic.ogg similarity index 100% rename from sound/vox_fem/cryogenic.ogg rename to sound/announcer/vox_fem/cryogenic.ogg diff --git a/sound/vox_fem/crystal.ogg b/sound/announcer/vox_fem/crystal.ogg similarity index 100% rename from sound/vox_fem/crystal.ogg rename to sound/announcer/vox_fem/crystal.ogg diff --git a/sound/vox_fem/cult.ogg b/sound/announcer/vox_fem/cult.ogg similarity index 100% rename from sound/vox_fem/cult.ogg rename to sound/announcer/vox_fem/cult.ogg diff --git a/sound/vox_fem/cultist.ogg b/sound/announcer/vox_fem/cultist.ogg similarity index 100% rename from sound/vox_fem/cultist.ogg rename to sound/announcer/vox_fem/cultist.ogg diff --git a/sound/vox_fem/cunt.ogg b/sound/announcer/vox_fem/cunt.ogg similarity index 100% rename from sound/vox_fem/cunt.ogg rename to sound/announcer/vox_fem/cunt.ogg diff --git a/sound/vox_fem/curator.ogg b/sound/announcer/vox_fem/curator.ogg similarity index 100% rename from sound/vox_fem/curator.ogg rename to sound/announcer/vox_fem/curator.ogg diff --git a/sound/vox_fem/cyborg.ogg b/sound/announcer/vox_fem/cyborg.ogg similarity index 100% rename from sound/vox_fem/cyborg.ogg rename to sound/announcer/vox_fem/cyborg.ogg diff --git a/sound/vox_fem/cyborgs.ogg b/sound/announcer/vox_fem/cyborgs.ogg similarity index 100% rename from sound/vox_fem/cyborgs.ogg rename to sound/announcer/vox_fem/cyborgs.ogg diff --git a/sound/vox_fem/d.ogg b/sound/announcer/vox_fem/d.ogg similarity index 100% rename from sound/vox_fem/d.ogg rename to sound/announcer/vox_fem/d.ogg diff --git a/sound/vox_fem/damage.ogg b/sound/announcer/vox_fem/damage.ogg similarity index 100% rename from sound/vox_fem/damage.ogg rename to sound/announcer/vox_fem/damage.ogg diff --git a/sound/vox_fem/damaged.ogg b/sound/announcer/vox_fem/damaged.ogg similarity index 100% rename from sound/vox_fem/damaged.ogg rename to sound/announcer/vox_fem/damaged.ogg diff --git a/sound/vox_fem/danger.ogg b/sound/announcer/vox_fem/danger.ogg similarity index 100% rename from sound/vox_fem/danger.ogg rename to sound/announcer/vox_fem/danger.ogg diff --git a/sound/vox_fem/dangerous.ogg b/sound/announcer/vox_fem/dangerous.ogg similarity index 100% rename from sound/vox_fem/dangerous.ogg rename to sound/announcer/vox_fem/dangerous.ogg diff --git a/sound/vox_fem/day.ogg b/sound/announcer/vox_fem/day.ogg similarity index 100% rename from sound/vox_fem/day.ogg rename to sound/announcer/vox_fem/day.ogg diff --git a/sound/vox_fem/deactivated.ogg b/sound/announcer/vox_fem/deactivated.ogg similarity index 100% rename from sound/vox_fem/deactivated.ogg rename to sound/announcer/vox_fem/deactivated.ogg diff --git a/sound/vox_fem/dead.ogg b/sound/announcer/vox_fem/dead.ogg similarity index 100% rename from sound/vox_fem/dead.ogg rename to sound/announcer/vox_fem/dead.ogg diff --git a/sound/vox_fem/death.ogg b/sound/announcer/vox_fem/death.ogg similarity index 100% rename from sound/vox_fem/death.ogg rename to sound/announcer/vox_fem/death.ogg diff --git a/sound/vox_fem/decompression.ogg b/sound/announcer/vox_fem/decompression.ogg similarity index 100% rename from sound/vox_fem/decompression.ogg rename to sound/announcer/vox_fem/decompression.ogg diff --git a/sound/vox_fem/decontamination.ogg b/sound/announcer/vox_fem/decontamination.ogg similarity index 100% rename from sound/vox_fem/decontamination.ogg rename to sound/announcer/vox_fem/decontamination.ogg diff --git a/sound/vox_fem/deeoo.ogg b/sound/announcer/vox_fem/deeoo.ogg similarity index 100% rename from sound/vox_fem/deeoo.ogg rename to sound/announcer/vox_fem/deeoo.ogg diff --git a/sound/vox_fem/defense.ogg b/sound/announcer/vox_fem/defense.ogg similarity index 100% rename from sound/vox_fem/defense.ogg rename to sound/announcer/vox_fem/defense.ogg diff --git a/sound/vox_fem/degrees.ogg b/sound/announcer/vox_fem/degrees.ogg similarity index 100% rename from sound/vox_fem/degrees.ogg rename to sound/announcer/vox_fem/degrees.ogg diff --git a/sound/vox_fem/delaminating.ogg b/sound/announcer/vox_fem/delaminating.ogg similarity index 100% rename from sound/vox_fem/delaminating.ogg rename to sound/announcer/vox_fem/delaminating.ogg diff --git a/sound/vox_fem/delamination.ogg b/sound/announcer/vox_fem/delamination.ogg similarity index 100% rename from sound/vox_fem/delamination.ogg rename to sound/announcer/vox_fem/delamination.ogg diff --git a/sound/vox_fem/delta.ogg b/sound/announcer/vox_fem/delta.ogg similarity index 100% rename from sound/vox_fem/delta.ogg rename to sound/announcer/vox_fem/delta.ogg diff --git a/sound/vox_fem/demon.ogg b/sound/announcer/vox_fem/demon.ogg similarity index 100% rename from sound/vox_fem/demon.ogg rename to sound/announcer/vox_fem/demon.ogg diff --git a/sound/vox_fem/denied.ogg b/sound/announcer/vox_fem/denied.ogg similarity index 100% rename from sound/vox_fem/denied.ogg rename to sound/announcer/vox_fem/denied.ogg diff --git a/sound/vox_fem/deny.ogg b/sound/announcer/vox_fem/deny.ogg similarity index 100% rename from sound/vox_fem/deny.ogg rename to sound/announcer/vox_fem/deny.ogg diff --git a/sound/vox_fem/departures.ogg b/sound/announcer/vox_fem/departures.ogg similarity index 100% rename from sound/vox_fem/departures.ogg rename to sound/announcer/vox_fem/departures.ogg diff --git a/sound/vox_fem/deploy.ogg b/sound/announcer/vox_fem/deploy.ogg similarity index 100% rename from sound/vox_fem/deploy.ogg rename to sound/announcer/vox_fem/deploy.ogg diff --git a/sound/vox_fem/deployed.ogg b/sound/announcer/vox_fem/deployed.ogg similarity index 100% rename from sound/vox_fem/deployed.ogg rename to sound/announcer/vox_fem/deployed.ogg diff --git a/sound/vox_fem/desire.ogg b/sound/announcer/vox_fem/desire.ogg similarity index 100% rename from sound/vox_fem/desire.ogg rename to sound/announcer/vox_fem/desire.ogg diff --git a/sound/vox_fem/desist.ogg b/sound/announcer/vox_fem/desist.ogg similarity index 100% rename from sound/vox_fem/desist.ogg rename to sound/announcer/vox_fem/desist.ogg diff --git a/sound/vox_fem/destroy.ogg b/sound/announcer/vox_fem/destroy.ogg similarity index 100% rename from sound/vox_fem/destroy.ogg rename to sound/announcer/vox_fem/destroy.ogg diff --git a/sound/vox_fem/destroyed.ogg b/sound/announcer/vox_fem/destroyed.ogg similarity index 100% rename from sound/vox_fem/destroyed.ogg rename to sound/announcer/vox_fem/destroyed.ogg diff --git a/sound/vox_fem/destruction.ogg b/sound/announcer/vox_fem/destruction.ogg similarity index 100% rename from sound/vox_fem/destruction.ogg rename to sound/announcer/vox_fem/destruction.ogg diff --git a/sound/vox_fem/detain.ogg b/sound/announcer/vox_fem/detain.ogg similarity index 100% rename from sound/vox_fem/detain.ogg rename to sound/announcer/vox_fem/detain.ogg diff --git a/sound/vox_fem/detect.ogg b/sound/announcer/vox_fem/detect.ogg similarity index 100% rename from sound/vox_fem/detect.ogg rename to sound/announcer/vox_fem/detect.ogg diff --git a/sound/vox_fem/detected.ogg b/sound/announcer/vox_fem/detected.ogg similarity index 100% rename from sound/vox_fem/detected.ogg rename to sound/announcer/vox_fem/detected.ogg diff --git a/sound/vox_fem/detecting.ogg b/sound/announcer/vox_fem/detecting.ogg similarity index 100% rename from sound/vox_fem/detecting.ogg rename to sound/announcer/vox_fem/detecting.ogg diff --git a/sound/vox_fem/detective.ogg b/sound/announcer/vox_fem/detective.ogg similarity index 100% rename from sound/vox_fem/detective.ogg rename to sound/announcer/vox_fem/detective.ogg diff --git a/sound/vox_fem/detonation.ogg b/sound/announcer/vox_fem/detonation.ogg similarity index 100% rename from sound/vox_fem/detonation.ogg rename to sound/announcer/vox_fem/detonation.ogg diff --git a/sound/vox_fem/device.ogg b/sound/announcer/vox_fem/device.ogg similarity index 100% rename from sound/vox_fem/device.ogg rename to sound/announcer/vox_fem/device.ogg diff --git a/sound/vox_fem/devil.ogg b/sound/announcer/vox_fem/devil.ogg similarity index 100% rename from sound/vox_fem/devil.ogg rename to sound/announcer/vox_fem/devil.ogg diff --git a/sound/vox_fem/did.ogg b/sound/announcer/vox_fem/did.ogg similarity index 100% rename from sound/vox_fem/did.ogg rename to sound/announcer/vox_fem/did.ogg diff --git a/sound/vox_fem/die.ogg b/sound/announcer/vox_fem/die.ogg similarity index 100% rename from sound/vox_fem/die.ogg rename to sound/announcer/vox_fem/die.ogg diff --git a/sound/vox_fem/died.ogg b/sound/announcer/vox_fem/died.ogg similarity index 100% rename from sound/vox_fem/died.ogg rename to sound/announcer/vox_fem/died.ogg diff --git a/sound/vox_fem/different.ogg b/sound/announcer/vox_fem/different.ogg similarity index 100% rename from sound/vox_fem/different.ogg rename to sound/announcer/vox_fem/different.ogg diff --git a/sound/vox_fem/dimensional.ogg b/sound/announcer/vox_fem/dimensional.ogg similarity index 100% rename from sound/vox_fem/dimensional.ogg rename to sound/announcer/vox_fem/dimensional.ogg diff --git a/sound/vox_fem/dioxide.ogg b/sound/announcer/vox_fem/dioxide.ogg similarity index 100% rename from sound/vox_fem/dioxide.ogg rename to sound/announcer/vox_fem/dioxide.ogg diff --git a/sound/vox_fem/direct.ogg b/sound/announcer/vox_fem/direct.ogg similarity index 100% rename from sound/vox_fem/direct.ogg rename to sound/announcer/vox_fem/direct.ogg diff --git a/sound/vox_fem/director.ogg b/sound/announcer/vox_fem/director.ogg similarity index 100% rename from sound/vox_fem/director.ogg rename to sound/announcer/vox_fem/director.ogg diff --git a/sound/vox_fem/dirt.ogg b/sound/announcer/vox_fem/dirt.ogg similarity index 100% rename from sound/vox_fem/dirt.ogg rename to sound/announcer/vox_fem/dirt.ogg diff --git a/sound/vox_fem/disabled.ogg b/sound/announcer/vox_fem/disabled.ogg similarity index 100% rename from sound/vox_fem/disabled.ogg rename to sound/announcer/vox_fem/disabled.ogg diff --git a/sound/vox_fem/disease.ogg b/sound/announcer/vox_fem/disease.ogg similarity index 100% rename from sound/vox_fem/disease.ogg rename to sound/announcer/vox_fem/disease.ogg diff --git a/sound/vox_fem/disengaged.ogg b/sound/announcer/vox_fem/disengaged.ogg similarity index 100% rename from sound/vox_fem/disengaged.ogg rename to sound/announcer/vox_fem/disengaged.ogg diff --git a/sound/vox_fem/dish.ogg b/sound/announcer/vox_fem/dish.ogg similarity index 100% rename from sound/vox_fem/dish.ogg rename to sound/announcer/vox_fem/dish.ogg diff --git a/sound/vox_fem/disk.ogg b/sound/announcer/vox_fem/disk.ogg similarity index 100% rename from sound/vox_fem/disk.ogg rename to sound/announcer/vox_fem/disk.ogg diff --git a/sound/vox_fem/disposal.ogg b/sound/announcer/vox_fem/disposal.ogg similarity index 100% rename from sound/vox_fem/disposal.ogg rename to sound/announcer/vox_fem/disposal.ogg diff --git a/sound/vox_fem/distance.ogg b/sound/announcer/vox_fem/distance.ogg similarity index 100% rename from sound/vox_fem/distance.ogg rename to sound/announcer/vox_fem/distance.ogg diff --git a/sound/vox_fem/distortion.ogg b/sound/announcer/vox_fem/distortion.ogg similarity index 100% rename from sound/vox_fem/distortion.ogg rename to sound/announcer/vox_fem/distortion.ogg diff --git a/sound/vox_fem/do.ogg b/sound/announcer/vox_fem/do.ogg similarity index 100% rename from sound/vox_fem/do.ogg rename to sound/announcer/vox_fem/do.ogg diff --git a/sound/vox_fem/doctor.ogg b/sound/announcer/vox_fem/doctor.ogg similarity index 100% rename from sound/vox_fem/doctor.ogg rename to sound/announcer/vox_fem/doctor.ogg diff --git a/sound/vox_fem/dog.ogg b/sound/announcer/vox_fem/dog.ogg similarity index 100% rename from sound/vox_fem/dog.ogg rename to sound/announcer/vox_fem/dog.ogg diff --git a/sound/vox_fem/dont.ogg b/sound/announcer/vox_fem/dont.ogg similarity index 100% rename from sound/vox_fem/dont.ogg rename to sound/announcer/vox_fem/dont.ogg diff --git a/sound/vox_fem/doomsday.ogg b/sound/announcer/vox_fem/doomsday.ogg similarity index 100% rename from sound/vox_fem/doomsday.ogg rename to sound/announcer/vox_fem/doomsday.ogg diff --git a/sound/vox_fem/doop.ogg b/sound/announcer/vox_fem/doop.ogg similarity index 100% rename from sound/vox_fem/doop.ogg rename to sound/announcer/vox_fem/doop.ogg diff --git a/sound/vox_fem/door.ogg b/sound/announcer/vox_fem/door.ogg similarity index 100% rename from sound/vox_fem/door.ogg rename to sound/announcer/vox_fem/door.ogg diff --git a/sound/vox_fem/dormitory.ogg b/sound/announcer/vox_fem/dormitory.ogg similarity index 100% rename from sound/vox_fem/dormitory.ogg rename to sound/announcer/vox_fem/dormitory.ogg diff --git a/sound/vox_fem/dot.ogg b/sound/announcer/vox_fem/dot.ogg similarity index 100% rename from sound/vox_fem/dot.ogg rename to sound/announcer/vox_fem/dot.ogg diff --git a/sound/vox_fem/double.ogg b/sound/announcer/vox_fem/double.ogg similarity index 100% rename from sound/vox_fem/double.ogg rename to sound/announcer/vox_fem/double.ogg diff --git a/sound/vox_fem/down.ogg b/sound/announcer/vox_fem/down.ogg similarity index 100% rename from sound/vox_fem/down.ogg rename to sound/announcer/vox_fem/down.ogg diff --git a/sound/vox_fem/dress.ogg b/sound/announcer/vox_fem/dress.ogg similarity index 100% rename from sound/vox_fem/dress.ogg rename to sound/announcer/vox_fem/dress.ogg diff --git a/sound/vox_fem/dressed.ogg b/sound/announcer/vox_fem/dressed.ogg similarity index 100% rename from sound/vox_fem/dressed.ogg rename to sound/announcer/vox_fem/dressed.ogg diff --git a/sound/vox_fem/dressing.ogg b/sound/announcer/vox_fem/dressing.ogg similarity index 100% rename from sound/vox_fem/dressing.ogg rename to sound/announcer/vox_fem/dressing.ogg diff --git a/sound/vox_fem/drone.ogg b/sound/announcer/vox_fem/drone.ogg similarity index 100% rename from sound/vox_fem/drone.ogg rename to sound/announcer/vox_fem/drone.ogg diff --git a/sound/vox_fem/dual.ogg b/sound/announcer/vox_fem/dual.ogg similarity index 100% rename from sound/vox_fem/dual.ogg rename to sound/announcer/vox_fem/dual.ogg diff --git a/sound/vox_fem/duct.ogg b/sound/announcer/vox_fem/duct.ogg similarity index 100% rename from sound/vox_fem/duct.ogg rename to sound/announcer/vox_fem/duct.ogg diff --git a/sound/vox_fem/e.ogg b/sound/announcer/vox_fem/e.ogg similarity index 100% rename from sound/vox_fem/e.ogg rename to sound/announcer/vox_fem/e.ogg diff --git a/sound/vox_fem/easily.ogg b/sound/announcer/vox_fem/easily.ogg similarity index 100% rename from sound/vox_fem/easily.ogg rename to sound/announcer/vox_fem/easily.ogg diff --git a/sound/vox_fem/east.ogg b/sound/announcer/vox_fem/east.ogg similarity index 100% rename from sound/vox_fem/east.ogg rename to sound/announcer/vox_fem/east.ogg diff --git a/sound/vox_fem/eat.ogg b/sound/announcer/vox_fem/eat.ogg similarity index 100% rename from sound/vox_fem/eat.ogg rename to sound/announcer/vox_fem/eat.ogg diff --git a/sound/vox_fem/eaten.ogg b/sound/announcer/vox_fem/eaten.ogg similarity index 100% rename from sound/vox_fem/eaten.ogg rename to sound/announcer/vox_fem/eaten.ogg diff --git a/sound/vox_fem/echo.ogg b/sound/announcer/vox_fem/echo.ogg similarity index 100% rename from sound/vox_fem/echo.ogg rename to sound/announcer/vox_fem/echo.ogg diff --git a/sound/vox_fem/ed.ogg b/sound/announcer/vox_fem/ed.ogg similarity index 100% rename from sound/vox_fem/ed.ogg rename to sound/announcer/vox_fem/ed.ogg diff --git a/sound/vox_fem/education.ogg b/sound/announcer/vox_fem/education.ogg similarity index 100% rename from sound/vox_fem/education.ogg rename to sound/announcer/vox_fem/education.ogg diff --git a/sound/vox_fem/effect.ogg b/sound/announcer/vox_fem/effect.ogg similarity index 100% rename from sound/vox_fem/effect.ogg rename to sound/announcer/vox_fem/effect.ogg diff --git a/sound/vox_fem/effects.ogg b/sound/announcer/vox_fem/effects.ogg similarity index 100% rename from sound/vox_fem/effects.ogg rename to sound/announcer/vox_fem/effects.ogg diff --git a/sound/vox_fem/egress.ogg b/sound/announcer/vox_fem/egress.ogg similarity index 100% rename from sound/vox_fem/egress.ogg rename to sound/announcer/vox_fem/egress.ogg diff --git a/sound/vox_fem/eight.ogg b/sound/announcer/vox_fem/eight.ogg similarity index 100% rename from sound/vox_fem/eight.ogg rename to sound/announcer/vox_fem/eight.ogg diff --git a/sound/vox_fem/eighteen.ogg b/sound/announcer/vox_fem/eighteen.ogg similarity index 100% rename from sound/vox_fem/eighteen.ogg rename to sound/announcer/vox_fem/eighteen.ogg diff --git a/sound/vox_fem/eighty.ogg b/sound/announcer/vox_fem/eighty.ogg similarity index 100% rename from sound/vox_fem/eighty.ogg rename to sound/announcer/vox_fem/eighty.ogg diff --git a/sound/vox_fem/electric.ogg b/sound/announcer/vox_fem/electric.ogg similarity index 100% rename from sound/vox_fem/electric.ogg rename to sound/announcer/vox_fem/electric.ogg diff --git a/sound/vox_fem/electrical.ogg b/sound/announcer/vox_fem/electrical.ogg similarity index 100% rename from sound/vox_fem/electrical.ogg rename to sound/announcer/vox_fem/electrical.ogg diff --git a/sound/vox_fem/electromagnetic.ogg b/sound/announcer/vox_fem/electromagnetic.ogg similarity index 100% rename from sound/vox_fem/electromagnetic.ogg rename to sound/announcer/vox_fem/electromagnetic.ogg diff --git a/sound/vox_fem/elevator.ogg b/sound/announcer/vox_fem/elevator.ogg similarity index 100% rename from sound/vox_fem/elevator.ogg rename to sound/announcer/vox_fem/elevator.ogg diff --git a/sound/vox_fem/eleven.ogg b/sound/announcer/vox_fem/eleven.ogg similarity index 100% rename from sound/vox_fem/eleven.ogg rename to sound/announcer/vox_fem/eleven.ogg diff --git a/sound/vox_fem/eliminate.ogg b/sound/announcer/vox_fem/eliminate.ogg similarity index 100% rename from sound/vox_fem/eliminate.ogg rename to sound/announcer/vox_fem/eliminate.ogg diff --git a/sound/vox_fem/emergency.ogg b/sound/announcer/vox_fem/emergency.ogg similarity index 100% rename from sound/vox_fem/emergency.ogg rename to sound/announcer/vox_fem/emergency.ogg diff --git a/sound/vox_fem/emitted.ogg b/sound/announcer/vox_fem/emitted.ogg similarity index 100% rename from sound/vox_fem/emitted.ogg rename to sound/announcer/vox_fem/emitted.ogg diff --git a/sound/vox_fem/emitter.ogg b/sound/announcer/vox_fem/emitter.ogg similarity index 100% rename from sound/vox_fem/emitter.ogg rename to sound/announcer/vox_fem/emitter.ogg diff --git a/sound/vox_fem/emitting.ogg b/sound/announcer/vox_fem/emitting.ogg similarity index 100% rename from sound/vox_fem/emitting.ogg rename to sound/announcer/vox_fem/emitting.ogg diff --git a/sound/vox_fem/enabled.ogg b/sound/announcer/vox_fem/enabled.ogg similarity index 100% rename from sound/vox_fem/enabled.ogg rename to sound/announcer/vox_fem/enabled.ogg diff --git a/sound/vox_fem/end.ogg b/sound/announcer/vox_fem/end.ogg similarity index 100% rename from sound/vox_fem/end.ogg rename to sound/announcer/vox_fem/end.ogg diff --git a/sound/vox_fem/ends.ogg b/sound/announcer/vox_fem/ends.ogg similarity index 100% rename from sound/vox_fem/ends.ogg rename to sound/announcer/vox_fem/ends.ogg diff --git a/sound/vox_fem/energy.ogg b/sound/announcer/vox_fem/energy.ogg similarity index 100% rename from sound/vox_fem/energy.ogg rename to sound/announcer/vox_fem/energy.ogg diff --git a/sound/vox_fem/engage.ogg b/sound/announcer/vox_fem/engage.ogg similarity index 100% rename from sound/vox_fem/engage.ogg rename to sound/announcer/vox_fem/engage.ogg diff --git a/sound/vox_fem/engaged.ogg b/sound/announcer/vox_fem/engaged.ogg similarity index 100% rename from sound/vox_fem/engaged.ogg rename to sound/announcer/vox_fem/engaged.ogg diff --git a/sound/vox_fem/engine.ogg b/sound/announcer/vox_fem/engine.ogg similarity index 100% rename from sound/vox_fem/engine.ogg rename to sound/announcer/vox_fem/engine.ogg diff --git a/sound/vox_fem/engineer.ogg b/sound/announcer/vox_fem/engineer.ogg similarity index 100% rename from sound/vox_fem/engineer.ogg rename to sound/announcer/vox_fem/engineer.ogg diff --git a/sound/vox_fem/engineering.ogg b/sound/announcer/vox_fem/engineering.ogg similarity index 100% rename from sound/vox_fem/engineering.ogg rename to sound/announcer/vox_fem/engineering.ogg diff --git a/sound/vox_fem/enormous.ogg b/sound/announcer/vox_fem/enormous.ogg similarity index 100% rename from sound/vox_fem/enormous.ogg rename to sound/announcer/vox_fem/enormous.ogg diff --git a/sound/vox_fem/enough.ogg b/sound/announcer/vox_fem/enough.ogg similarity index 100% rename from sound/vox_fem/enough.ogg rename to sound/announcer/vox_fem/enough.ogg diff --git a/sound/vox_fem/enter.ogg b/sound/announcer/vox_fem/enter.ogg similarity index 100% rename from sound/vox_fem/enter.ogg rename to sound/announcer/vox_fem/enter.ogg diff --git a/sound/vox_fem/entity.ogg b/sound/announcer/vox_fem/entity.ogg similarity index 100% rename from sound/vox_fem/entity.ogg rename to sound/announcer/vox_fem/entity.ogg diff --git a/sound/vox_fem/entry.ogg b/sound/announcer/vox_fem/entry.ogg similarity index 100% rename from sound/vox_fem/entry.ogg rename to sound/announcer/vox_fem/entry.ogg diff --git a/sound/vox_fem/environment.ogg b/sound/announcer/vox_fem/environment.ogg similarity index 100% rename from sound/vox_fem/environment.ogg rename to sound/announcer/vox_fem/environment.ogg diff --git a/sound/vox_fem/epic.ogg b/sound/announcer/vox_fem/epic.ogg similarity index 100% rename from sound/vox_fem/epic.ogg rename to sound/announcer/vox_fem/epic.ogg diff --git a/sound/vox_fem/equipment.ogg b/sound/announcer/vox_fem/equipment.ogg similarity index 100% rename from sound/vox_fem/equipment.ogg rename to sound/announcer/vox_fem/equipment.ogg diff --git a/sound/vox_fem/error.ogg b/sound/announcer/vox_fem/error.ogg similarity index 100% rename from sound/vox_fem/error.ogg rename to sound/announcer/vox_fem/error.ogg diff --git a/sound/vox_fem/escape.ogg b/sound/announcer/vox_fem/escape.ogg similarity index 100% rename from sound/vox_fem/escape.ogg rename to sound/announcer/vox_fem/escape.ogg diff --git a/sound/vox_fem/ethereal.ogg b/sound/announcer/vox_fem/ethereal.ogg similarity index 100% rename from sound/vox_fem/ethereal.ogg rename to sound/announcer/vox_fem/ethereal.ogg diff --git a/sound/vox_fem/eva.ogg b/sound/announcer/vox_fem/eva.ogg similarity index 100% rename from sound/vox_fem/eva.ogg rename to sound/announcer/vox_fem/eva.ogg diff --git a/sound/vox_fem/evacuate.ogg b/sound/announcer/vox_fem/evacuate.ogg similarity index 100% rename from sound/vox_fem/evacuate.ogg rename to sound/announcer/vox_fem/evacuate.ogg diff --git a/sound/vox_fem/even.ogg b/sound/announcer/vox_fem/even.ogg similarity index 100% rename from sound/vox_fem/even.ogg rename to sound/announcer/vox_fem/even.ogg diff --git a/sound/vox_fem/ever.ogg b/sound/announcer/vox_fem/ever.ogg similarity index 100% rename from sound/vox_fem/ever.ogg rename to sound/announcer/vox_fem/ever.ogg diff --git a/sound/vox_fem/every.ogg b/sound/announcer/vox_fem/every.ogg similarity index 100% rename from sound/vox_fem/every.ogg rename to sound/announcer/vox_fem/every.ogg diff --git a/sound/vox_fem/everybody.ogg b/sound/announcer/vox_fem/everybody.ogg similarity index 100% rename from sound/vox_fem/everybody.ogg rename to sound/announcer/vox_fem/everybody.ogg diff --git a/sound/vox_fem/everyone.ogg b/sound/announcer/vox_fem/everyone.ogg similarity index 100% rename from sound/vox_fem/everyone.ogg rename to sound/announcer/vox_fem/everyone.ogg diff --git a/sound/vox_fem/exchange.ogg b/sound/announcer/vox_fem/exchange.ogg similarity index 100% rename from sound/vox_fem/exchange.ogg rename to sound/announcer/vox_fem/exchange.ogg diff --git a/sound/vox_fem/execute.ogg b/sound/announcer/vox_fem/execute.ogg similarity index 100% rename from sound/vox_fem/execute.ogg rename to sound/announcer/vox_fem/execute.ogg diff --git a/sound/vox_fem/exit.ogg b/sound/announcer/vox_fem/exit.ogg similarity index 100% rename from sound/vox_fem/exit.ogg rename to sound/announcer/vox_fem/exit.ogg diff --git a/sound/vox_fem/expect.ogg b/sound/announcer/vox_fem/expect.ogg similarity index 100% rename from sound/vox_fem/expect.ogg rename to sound/announcer/vox_fem/expect.ogg diff --git a/sound/vox_fem/experiment.ogg b/sound/announcer/vox_fem/experiment.ogg similarity index 100% rename from sound/vox_fem/experiment.ogg rename to sound/announcer/vox_fem/experiment.ogg diff --git a/sound/vox_fem/experimental.ogg b/sound/announcer/vox_fem/experimental.ogg similarity index 100% rename from sound/vox_fem/experimental.ogg rename to sound/announcer/vox_fem/experimental.ogg diff --git a/sound/vox_fem/explode.ogg b/sound/announcer/vox_fem/explode.ogg similarity index 100% rename from sound/vox_fem/explode.ogg rename to sound/announcer/vox_fem/explode.ogg diff --git a/sound/vox_fem/exploded.ogg b/sound/announcer/vox_fem/exploded.ogg similarity index 100% rename from sound/vox_fem/exploded.ogg rename to sound/announcer/vox_fem/exploded.ogg diff --git a/sound/vox_fem/exploding.ogg b/sound/announcer/vox_fem/exploding.ogg similarity index 100% rename from sound/vox_fem/exploding.ogg rename to sound/announcer/vox_fem/exploding.ogg diff --git a/sound/vox_fem/explosion.ogg b/sound/announcer/vox_fem/explosion.ogg similarity index 100% rename from sound/vox_fem/explosion.ogg rename to sound/announcer/vox_fem/explosion.ogg diff --git a/sound/vox_fem/explosive.ogg b/sound/announcer/vox_fem/explosive.ogg similarity index 100% rename from sound/vox_fem/explosive.ogg rename to sound/announcer/vox_fem/explosive.ogg diff --git a/sound/vox_fem/exposure.ogg b/sound/announcer/vox_fem/exposure.ogg similarity index 100% rename from sound/vox_fem/exposure.ogg rename to sound/announcer/vox_fem/exposure.ogg diff --git a/sound/vox_fem/exterminate.ogg b/sound/announcer/vox_fem/exterminate.ogg similarity index 100% rename from sound/vox_fem/exterminate.ogg rename to sound/announcer/vox_fem/exterminate.ogg diff --git a/sound/vox_fem/external.ogg b/sound/announcer/vox_fem/external.ogg similarity index 100% rename from sound/vox_fem/external.ogg rename to sound/announcer/vox_fem/external.ogg diff --git a/sound/vox_fem/extinguish.ogg b/sound/announcer/vox_fem/extinguish.ogg similarity index 100% rename from sound/vox_fem/extinguish.ogg rename to sound/announcer/vox_fem/extinguish.ogg diff --git a/sound/vox_fem/extinguisher.ogg b/sound/announcer/vox_fem/extinguisher.ogg similarity index 100% rename from sound/vox_fem/extinguisher.ogg rename to sound/announcer/vox_fem/extinguisher.ogg diff --git a/sound/vox_fem/extra.ogg b/sound/announcer/vox_fem/extra.ogg similarity index 100% rename from sound/vox_fem/extra.ogg rename to sound/announcer/vox_fem/extra.ogg diff --git a/sound/vox_fem/extreme.ogg b/sound/announcer/vox_fem/extreme.ogg similarity index 100% rename from sound/vox_fem/extreme.ogg rename to sound/announcer/vox_fem/extreme.ogg diff --git a/sound/vox_fem/f.ogg b/sound/announcer/vox_fem/f.ogg similarity index 100% rename from sound/vox_fem/f.ogg rename to sound/announcer/vox_fem/f.ogg diff --git a/sound/vox_fem/facility.ogg b/sound/announcer/vox_fem/facility.ogg similarity index 100% rename from sound/vox_fem/facility.ogg rename to sound/announcer/vox_fem/facility.ogg diff --git a/sound/vox_fem/factory.ogg b/sound/announcer/vox_fem/factory.ogg similarity index 100% rename from sound/vox_fem/factory.ogg rename to sound/announcer/vox_fem/factory.ogg diff --git a/sound/vox_fem/fahrenheit.ogg b/sound/announcer/vox_fem/fahrenheit.ogg similarity index 100% rename from sound/vox_fem/fahrenheit.ogg rename to sound/announcer/vox_fem/fahrenheit.ogg diff --git a/sound/vox_fem/failed.ogg b/sound/announcer/vox_fem/failed.ogg similarity index 100% rename from sound/vox_fem/failed.ogg rename to sound/announcer/vox_fem/failed.ogg diff --git a/sound/vox_fem/failure.ogg b/sound/announcer/vox_fem/failure.ogg similarity index 100% rename from sound/vox_fem/failure.ogg rename to sound/announcer/vox_fem/failure.ogg diff --git a/sound/vox_fem/false.ogg b/sound/announcer/vox_fem/false.ogg similarity index 100% rename from sound/vox_fem/false.ogg rename to sound/announcer/vox_fem/false.ogg diff --git a/sound/vox_fem/farthest.ogg b/sound/announcer/vox_fem/farthest.ogg similarity index 100% rename from sound/vox_fem/farthest.ogg rename to sound/announcer/vox_fem/farthest.ogg diff --git a/sound/vox_fem/fast.ogg b/sound/announcer/vox_fem/fast.ogg similarity index 100% rename from sound/vox_fem/fast.ogg rename to sound/announcer/vox_fem/fast.ogg diff --git a/sound/vox_fem/fauna.ogg b/sound/announcer/vox_fem/fauna.ogg similarity index 100% rename from sound/vox_fem/fauna.ogg rename to sound/announcer/vox_fem/fauna.ogg diff --git a/sound/vox_fem/feature.ogg b/sound/announcer/vox_fem/feature.ogg similarity index 100% rename from sound/vox_fem/feature.ogg rename to sound/announcer/vox_fem/feature.ogg diff --git a/sound/vox_fem/featured.ogg b/sound/announcer/vox_fem/featured.ogg similarity index 100% rename from sound/vox_fem/featured.ogg rename to sound/announcer/vox_fem/featured.ogg diff --git a/sound/vox_fem/features.ogg b/sound/announcer/vox_fem/features.ogg similarity index 100% rename from sound/vox_fem/features.ogg rename to sound/announcer/vox_fem/features.ogg diff --git a/sound/vox_fem/featuring.ogg b/sound/announcer/vox_fem/featuring.ogg similarity index 100% rename from sound/vox_fem/featuring.ogg rename to sound/announcer/vox_fem/featuring.ogg diff --git a/sound/vox_fem/feet.ogg b/sound/announcer/vox_fem/feet.ogg similarity index 100% rename from sound/vox_fem/feet.ogg rename to sound/announcer/vox_fem/feet.ogg diff --git a/sound/vox_fem/felinid.ogg b/sound/announcer/vox_fem/felinid.ogg similarity index 100% rename from sound/vox_fem/felinid.ogg rename to sound/announcer/vox_fem/felinid.ogg diff --git a/sound/vox_fem/few.ogg b/sound/announcer/vox_fem/few.ogg similarity index 100% rename from sound/vox_fem/few.ogg rename to sound/announcer/vox_fem/few.ogg diff --git a/sound/vox_fem/field.ogg b/sound/announcer/vox_fem/field.ogg similarity index 100% rename from sound/vox_fem/field.ogg rename to sound/announcer/vox_fem/field.ogg diff --git a/sound/vox_fem/fifteen.ogg b/sound/announcer/vox_fem/fifteen.ogg similarity index 100% rename from sound/vox_fem/fifteen.ogg rename to sound/announcer/vox_fem/fifteen.ogg diff --git a/sound/vox_fem/fifth.ogg b/sound/announcer/vox_fem/fifth.ogg similarity index 100% rename from sound/vox_fem/fifth.ogg rename to sound/announcer/vox_fem/fifth.ogg diff --git a/sound/vox_fem/fifty.ogg b/sound/announcer/vox_fem/fifty.ogg similarity index 100% rename from sound/vox_fem/fifty.ogg rename to sound/announcer/vox_fem/fifty.ogg diff --git a/sound/vox_fem/filter.ogg b/sound/announcer/vox_fem/filter.ogg similarity index 100% rename from sound/vox_fem/filter.ogg rename to sound/announcer/vox_fem/filter.ogg diff --git a/sound/vox_fem/filters.ogg b/sound/announcer/vox_fem/filters.ogg similarity index 100% rename from sound/vox_fem/filters.ogg rename to sound/announcer/vox_fem/filters.ogg diff --git a/sound/vox_fem/final.ogg b/sound/announcer/vox_fem/final.ogg similarity index 100% rename from sound/vox_fem/final.ogg rename to sound/announcer/vox_fem/final.ogg diff --git a/sound/vox_fem/fine.ogg b/sound/announcer/vox_fem/fine.ogg similarity index 100% rename from sound/vox_fem/fine.ogg rename to sound/announcer/vox_fem/fine.ogg diff --git a/sound/vox_fem/fire.ogg b/sound/announcer/vox_fem/fire.ogg similarity index 100% rename from sound/vox_fem/fire.ogg rename to sound/announcer/vox_fem/fire.ogg diff --git a/sound/vox_fem/first.ogg b/sound/announcer/vox_fem/first.ogg similarity index 100% rename from sound/vox_fem/first.ogg rename to sound/announcer/vox_fem/first.ogg diff --git a/sound/vox_fem/five.ogg b/sound/announcer/vox_fem/five.ogg similarity index 100% rename from sound/vox_fem/five.ogg rename to sound/announcer/vox_fem/five.ogg diff --git a/sound/vox_fem/fix.ogg b/sound/announcer/vox_fem/fix.ogg similarity index 100% rename from sound/vox_fem/fix.ogg rename to sound/announcer/vox_fem/fix.ogg diff --git a/sound/vox_fem/flooding.ogg b/sound/announcer/vox_fem/flooding.ogg similarity index 100% rename from sound/vox_fem/flooding.ogg rename to sound/announcer/vox_fem/flooding.ogg diff --git a/sound/vox_fem/floor.ogg b/sound/announcer/vox_fem/floor.ogg similarity index 100% rename from sound/vox_fem/floor.ogg rename to sound/announcer/vox_fem/floor.ogg diff --git a/sound/vox_fem/flyman.ogg b/sound/announcer/vox_fem/flyman.ogg similarity index 100% rename from sound/vox_fem/flyman.ogg rename to sound/announcer/vox_fem/flyman.ogg diff --git a/sound/vox_fem/fool.ogg b/sound/announcer/vox_fem/fool.ogg similarity index 100% rename from sound/vox_fem/fool.ogg rename to sound/announcer/vox_fem/fool.ogg diff --git a/sound/vox_fem/foolish.ogg b/sound/announcer/vox_fem/foolish.ogg similarity index 100% rename from sound/vox_fem/foolish.ogg rename to sound/announcer/vox_fem/foolish.ogg diff --git a/sound/vox_fem/for.ogg b/sound/announcer/vox_fem/for.ogg similarity index 100% rename from sound/vox_fem/for.ogg rename to sound/announcer/vox_fem/for.ogg diff --git a/sound/vox_fem/forbidden.ogg b/sound/announcer/vox_fem/forbidden.ogg similarity index 100% rename from sound/vox_fem/forbidden.ogg rename to sound/announcer/vox_fem/forbidden.ogg diff --git a/sound/vox_fem/force.ogg b/sound/announcer/vox_fem/force.ogg similarity index 100% rename from sound/vox_fem/force.ogg rename to sound/announcer/vox_fem/force.ogg diff --git a/sound/vox_fem/fore.ogg b/sound/announcer/vox_fem/fore.ogg similarity index 100% rename from sound/vox_fem/fore.ogg rename to sound/announcer/vox_fem/fore.ogg diff --git a/sound/vox_fem/form.ogg b/sound/announcer/vox_fem/form.ogg similarity index 100% rename from sound/vox_fem/form.ogg rename to sound/announcer/vox_fem/form.ogg diff --git a/sound/vox_fem/formed.ogg b/sound/announcer/vox_fem/formed.ogg similarity index 100% rename from sound/vox_fem/formed.ogg rename to sound/announcer/vox_fem/formed.ogg diff --git a/sound/vox_fem/forms.ogg b/sound/announcer/vox_fem/forms.ogg similarity index 100% rename from sound/vox_fem/forms.ogg rename to sound/announcer/vox_fem/forms.ogg diff --git a/sound/vox_fem/forty.ogg b/sound/announcer/vox_fem/forty.ogg similarity index 100% rename from sound/vox_fem/forty.ogg rename to sound/announcer/vox_fem/forty.ogg diff --git a/sound/vox_fem/found.ogg b/sound/announcer/vox_fem/found.ogg similarity index 100% rename from sound/vox_fem/found.ogg rename to sound/announcer/vox_fem/found.ogg diff --git a/sound/vox_fem/four.ogg b/sound/announcer/vox_fem/four.ogg similarity index 100% rename from sound/vox_fem/four.ogg rename to sound/announcer/vox_fem/four.ogg diff --git a/sound/vox_fem/fourteen.ogg b/sound/announcer/vox_fem/fourteen.ogg similarity index 100% rename from sound/vox_fem/fourteen.ogg rename to sound/announcer/vox_fem/fourteen.ogg diff --git a/sound/vox_fem/fourth.ogg b/sound/announcer/vox_fem/fourth.ogg similarity index 100% rename from sound/vox_fem/fourth.ogg rename to sound/announcer/vox_fem/fourth.ogg diff --git a/sound/vox_fem/fourty.ogg b/sound/announcer/vox_fem/fourty.ogg similarity index 100% rename from sound/vox_fem/fourty.ogg rename to sound/announcer/vox_fem/fourty.ogg diff --git a/sound/vox_fem/foxtrot.ogg b/sound/announcer/vox_fem/foxtrot.ogg similarity index 100% rename from sound/vox_fem/foxtrot.ogg rename to sound/announcer/vox_fem/foxtrot.ogg diff --git a/sound/vox_fem/free.ogg b/sound/announcer/vox_fem/free.ogg similarity index 100% rename from sound/vox_fem/free.ogg rename to sound/announcer/vox_fem/free.ogg diff --git a/sound/vox_fem/freeman.ogg b/sound/announcer/vox_fem/freeman.ogg similarity index 100% rename from sound/vox_fem/freeman.ogg rename to sound/announcer/vox_fem/freeman.ogg diff --git a/sound/vox_fem/freeze.ogg b/sound/announcer/vox_fem/freeze.ogg similarity index 100% rename from sound/vox_fem/freeze.ogg rename to sound/announcer/vox_fem/freeze.ogg diff --git a/sound/vox_fem/freezer.ogg b/sound/announcer/vox_fem/freezer.ogg similarity index 100% rename from sound/vox_fem/freezer.ogg rename to sound/announcer/vox_fem/freezer.ogg diff --git a/sound/vox_fem/freezing.ogg b/sound/announcer/vox_fem/freezing.ogg similarity index 100% rename from sound/vox_fem/freezing.ogg rename to sound/announcer/vox_fem/freezing.ogg diff --git a/sound/vox_fem/freon.ogg b/sound/announcer/vox_fem/freon.ogg similarity index 100% rename from sound/vox_fem/freon.ogg rename to sound/announcer/vox_fem/freon.ogg diff --git a/sound/vox_fem/from.ogg b/sound/announcer/vox_fem/from.ogg similarity index 100% rename from sound/vox_fem/from.ogg rename to sound/announcer/vox_fem/from.ogg diff --git a/sound/vox_fem/front.ogg b/sound/announcer/vox_fem/front.ogg similarity index 100% rename from sound/vox_fem/front.ogg rename to sound/announcer/vox_fem/front.ogg diff --git a/sound/vox_fem/froze.ogg b/sound/announcer/vox_fem/froze.ogg similarity index 100% rename from sound/vox_fem/froze.ogg rename to sound/announcer/vox_fem/froze.ogg diff --git a/sound/vox_fem/frozen.ogg b/sound/announcer/vox_fem/frozen.ogg similarity index 100% rename from sound/vox_fem/frozen.ogg rename to sound/announcer/vox_fem/frozen.ogg diff --git a/sound/vox_fem/fuck.ogg b/sound/announcer/vox_fem/fuck.ogg similarity index 100% rename from sound/vox_fem/fuck.ogg rename to sound/announcer/vox_fem/fuck.ogg diff --git a/sound/vox_fem/fucking.ogg b/sound/announcer/vox_fem/fucking.ogg similarity index 100% rename from sound/vox_fem/fucking.ogg rename to sound/announcer/vox_fem/fucking.ogg diff --git a/sound/vox_fem/fucks.ogg b/sound/announcer/vox_fem/fucks.ogg similarity index 100% rename from sound/vox_fem/fucks.ogg rename to sound/announcer/vox_fem/fucks.ogg diff --git a/sound/vox_fem/fuel.ogg b/sound/announcer/vox_fem/fuel.ogg similarity index 100% rename from sound/vox_fem/fuel.ogg rename to sound/announcer/vox_fem/fuel.ogg diff --git a/sound/vox_fem/g.ogg b/sound/announcer/vox_fem/g.ogg similarity index 100% rename from sound/vox_fem/g.ogg rename to sound/announcer/vox_fem/g.ogg diff --git a/sound/vox_fem/gas.ogg b/sound/announcer/vox_fem/gas.ogg similarity index 100% rename from sound/vox_fem/gas.ogg rename to sound/announcer/vox_fem/gas.ogg diff --git a/sound/vox_fem/gases.ogg b/sound/announcer/vox_fem/gases.ogg similarity index 100% rename from sound/vox_fem/gases.ogg rename to sound/announcer/vox_fem/gases.ogg diff --git a/sound/vox_fem/gave.ogg b/sound/announcer/vox_fem/gave.ogg similarity index 100% rename from sound/vox_fem/gave.ogg rename to sound/announcer/vox_fem/gave.ogg diff --git a/sound/vox_fem/gear.ogg b/sound/announcer/vox_fem/gear.ogg similarity index 100% rename from sound/vox_fem/gear.ogg rename to sound/announcer/vox_fem/gear.ogg diff --git a/sound/vox_fem/geared.ogg b/sound/announcer/vox_fem/geared.ogg similarity index 100% rename from sound/vox_fem/geared.ogg rename to sound/announcer/vox_fem/geared.ogg diff --git a/sound/vox_fem/gearing.ogg b/sound/announcer/vox_fem/gearing.ogg similarity index 100% rename from sound/vox_fem/gearing.ogg rename to sound/announcer/vox_fem/gearing.ogg diff --git a/sound/vox_fem/generate.ogg b/sound/announcer/vox_fem/generate.ogg similarity index 100% rename from sound/vox_fem/generate.ogg rename to sound/announcer/vox_fem/generate.ogg diff --git a/sound/vox_fem/generated.ogg b/sound/announcer/vox_fem/generated.ogg similarity index 100% rename from sound/vox_fem/generated.ogg rename to sound/announcer/vox_fem/generated.ogg diff --git a/sound/vox_fem/generating.ogg b/sound/announcer/vox_fem/generating.ogg similarity index 100% rename from sound/vox_fem/generating.ogg rename to sound/announcer/vox_fem/generating.ogg diff --git a/sound/vox_fem/generator.ogg b/sound/announcer/vox_fem/generator.ogg similarity index 100% rename from sound/vox_fem/generator.ogg rename to sound/announcer/vox_fem/generator.ogg diff --git a/sound/vox_fem/geneticist.ogg b/sound/announcer/vox_fem/geneticist.ogg similarity index 100% rename from sound/vox_fem/geneticist.ogg rename to sound/announcer/vox_fem/geneticist.ogg diff --git a/sound/vox_fem/get.ogg b/sound/announcer/vox_fem/get.ogg similarity index 100% rename from sound/vox_fem/get.ogg rename to sound/announcer/vox_fem/get.ogg diff --git a/sound/vox_fem/give.ogg b/sound/announcer/vox_fem/give.ogg similarity index 100% rename from sound/vox_fem/give.ogg rename to sound/announcer/vox_fem/give.ogg diff --git a/sound/vox_fem/given.ogg b/sound/announcer/vox_fem/given.ogg similarity index 100% rename from sound/vox_fem/given.ogg rename to sound/announcer/vox_fem/given.ogg diff --git a/sound/vox_fem/glory.ogg b/sound/announcer/vox_fem/glory.ogg similarity index 100% rename from sound/vox_fem/glory.ogg rename to sound/announcer/vox_fem/glory.ogg diff --git a/sound/vox_fem/go.ogg b/sound/announcer/vox_fem/go.ogg similarity index 100% rename from sound/vox_fem/go.ogg rename to sound/announcer/vox_fem/go.ogg diff --git a/sound/vox_fem/god.ogg b/sound/announcer/vox_fem/god.ogg similarity index 100% rename from sound/vox_fem/god.ogg rename to sound/announcer/vox_fem/god.ogg diff --git a/sound/vox_fem/going.ogg b/sound/announcer/vox_fem/going.ogg similarity index 100% rename from sound/vox_fem/going.ogg rename to sound/announcer/vox_fem/going.ogg diff --git a/sound/vox_fem/golem.ogg b/sound/announcer/vox_fem/golem.ogg similarity index 100% rename from sound/vox_fem/golem.ogg rename to sound/announcer/vox_fem/golem.ogg diff --git a/sound/vox_fem/good.ogg b/sound/announcer/vox_fem/good.ogg similarity index 100% rename from sound/vox_fem/good.ogg rename to sound/announcer/vox_fem/good.ogg diff --git a/sound/vox_fem/goodbye.ogg b/sound/announcer/vox_fem/goodbye.ogg similarity index 100% rename from sound/vox_fem/goodbye.ogg rename to sound/announcer/vox_fem/goodbye.ogg diff --git a/sound/vox_fem/gordon.ogg b/sound/announcer/vox_fem/gordon.ogg similarity index 100% rename from sound/vox_fem/gordon.ogg rename to sound/announcer/vox_fem/gordon.ogg diff --git a/sound/vox_fem/got.ogg b/sound/announcer/vox_fem/got.ogg similarity index 100% rename from sound/vox_fem/got.ogg rename to sound/announcer/vox_fem/got.ogg diff --git a/sound/vox_fem/government.ogg b/sound/announcer/vox_fem/government.ogg similarity index 100% rename from sound/vox_fem/government.ogg rename to sound/announcer/vox_fem/government.ogg diff --git a/sound/vox_fem/granted.ogg b/sound/announcer/vox_fem/granted.ogg similarity index 100% rename from sound/vox_fem/granted.ogg rename to sound/announcer/vox_fem/granted.ogg diff --git a/sound/vox_fem/gravity.ogg b/sound/announcer/vox_fem/gravity.ogg similarity index 100% rename from sound/vox_fem/gravity.ogg rename to sound/announcer/vox_fem/gravity.ogg diff --git a/sound/vox_fem/gray.ogg b/sound/announcer/vox_fem/gray.ogg similarity index 100% rename from sound/vox_fem/gray.ogg rename to sound/announcer/vox_fem/gray.ogg diff --git a/sound/vox_fem/great.ogg b/sound/announcer/vox_fem/great.ogg similarity index 100% rename from sound/vox_fem/great.ogg rename to sound/announcer/vox_fem/great.ogg diff --git a/sound/vox_fem/green.ogg b/sound/announcer/vox_fem/green.ogg similarity index 100% rename from sound/vox_fem/green.ogg rename to sound/announcer/vox_fem/green.ogg diff --git a/sound/vox_fem/grenade.ogg b/sound/announcer/vox_fem/grenade.ogg similarity index 100% rename from sound/vox_fem/grenade.ogg rename to sound/announcer/vox_fem/grenade.ogg diff --git a/sound/vox_fem/guard.ogg b/sound/announcer/vox_fem/guard.ogg similarity index 100% rename from sound/vox_fem/guard.ogg rename to sound/announcer/vox_fem/guard.ogg diff --git a/sound/vox_fem/gulf.ogg b/sound/announcer/vox_fem/gulf.ogg similarity index 100% rename from sound/vox_fem/gulf.ogg rename to sound/announcer/vox_fem/gulf.ogg diff --git a/sound/vox_fem/gun.ogg b/sound/announcer/vox_fem/gun.ogg similarity index 100% rename from sound/vox_fem/gun.ogg rename to sound/announcer/vox_fem/gun.ogg diff --git a/sound/vox_fem/guthrie.ogg b/sound/announcer/vox_fem/guthrie.ogg similarity index 100% rename from sound/vox_fem/guthrie.ogg rename to sound/announcer/vox_fem/guthrie.ogg diff --git a/sound/vox_fem/h.ogg b/sound/announcer/vox_fem/h.ogg similarity index 100% rename from sound/vox_fem/h.ogg rename to sound/announcer/vox_fem/h.ogg diff --git a/sound/vox_fem/hacker.ogg b/sound/announcer/vox_fem/hacker.ogg similarity index 100% rename from sound/vox_fem/hacker.ogg rename to sound/announcer/vox_fem/hacker.ogg diff --git a/sound/vox_fem/hackers.ogg b/sound/announcer/vox_fem/hackers.ogg similarity index 100% rename from sound/vox_fem/hackers.ogg rename to sound/announcer/vox_fem/hackers.ogg diff --git a/sound/vox_fem/had.ogg b/sound/announcer/vox_fem/had.ogg similarity index 100% rename from sound/vox_fem/had.ogg rename to sound/announcer/vox_fem/had.ogg diff --git a/sound/vox_fem/hall.ogg b/sound/announcer/vox_fem/hall.ogg similarity index 100% rename from sound/vox_fem/hall.ogg rename to sound/announcer/vox_fem/hall.ogg diff --git a/sound/vox_fem/hallway.ogg b/sound/announcer/vox_fem/hallway.ogg similarity index 100% rename from sound/vox_fem/hallway.ogg rename to sound/announcer/vox_fem/hallway.ogg diff --git a/sound/vox_fem/halon.ogg b/sound/announcer/vox_fem/halon.ogg similarity index 100% rename from sound/vox_fem/halon.ogg rename to sound/announcer/vox_fem/halon.ogg diff --git a/sound/vox_fem/handling.ogg b/sound/announcer/vox_fem/handling.ogg similarity index 100% rename from sound/vox_fem/handling.ogg rename to sound/announcer/vox_fem/handling.ogg diff --git a/sound/vox_fem/hangar.ogg b/sound/announcer/vox_fem/hangar.ogg similarity index 100% rename from sound/vox_fem/hangar.ogg rename to sound/announcer/vox_fem/hangar.ogg diff --git a/sound/vox_fem/hard.ogg b/sound/announcer/vox_fem/hard.ogg similarity index 100% rename from sound/vox_fem/hard.ogg rename to sound/announcer/vox_fem/hard.ogg diff --git a/sound/vox_fem/hardly.ogg b/sound/announcer/vox_fem/hardly.ogg similarity index 100% rename from sound/vox_fem/hardly.ogg rename to sound/announcer/vox_fem/hardly.ogg diff --git a/sound/vox_fem/harm.ogg b/sound/announcer/vox_fem/harm.ogg similarity index 100% rename from sound/vox_fem/harm.ogg rename to sound/announcer/vox_fem/harm.ogg diff --git a/sound/vox_fem/harmful.ogg b/sound/announcer/vox_fem/harmful.ogg similarity index 100% rename from sound/vox_fem/harmful.ogg rename to sound/announcer/vox_fem/harmful.ogg diff --git a/sound/vox_fem/harness.ogg b/sound/announcer/vox_fem/harness.ogg similarity index 100% rename from sound/vox_fem/harness.ogg rename to sound/announcer/vox_fem/harness.ogg diff --git a/sound/vox_fem/harnessed.ogg b/sound/announcer/vox_fem/harnessed.ogg similarity index 100% rename from sound/vox_fem/harnessed.ogg rename to sound/announcer/vox_fem/harnessed.ogg diff --git a/sound/vox_fem/harnessing.ogg b/sound/announcer/vox_fem/harnessing.ogg similarity index 100% rename from sound/vox_fem/harnessing.ogg rename to sound/announcer/vox_fem/harnessing.ogg diff --git a/sound/vox_fem/has.ogg b/sound/announcer/vox_fem/has.ogg similarity index 100% rename from sound/vox_fem/has.ogg rename to sound/announcer/vox_fem/has.ogg diff --git a/sound/vox_fem/have.ogg b/sound/announcer/vox_fem/have.ogg similarity index 100% rename from sound/vox_fem/have.ogg rename to sound/announcer/vox_fem/have.ogg diff --git a/sound/vox_fem/hazard.ogg b/sound/announcer/vox_fem/hazard.ogg similarity index 100% rename from sound/vox_fem/hazard.ogg rename to sound/announcer/vox_fem/hazard.ogg diff --git a/sound/vox_fem/he.ogg b/sound/announcer/vox_fem/he.ogg similarity index 100% rename from sound/vox_fem/he.ogg rename to sound/announcer/vox_fem/he.ogg diff --git a/sound/vox_fem/head.ogg b/sound/announcer/vox_fem/head.ogg similarity index 100% rename from sound/vox_fem/head.ogg rename to sound/announcer/vox_fem/head.ogg diff --git a/sound/vox_fem/heal.ogg b/sound/announcer/vox_fem/heal.ogg similarity index 100% rename from sound/vox_fem/heal.ogg rename to sound/announcer/vox_fem/heal.ogg diff --git a/sound/vox_fem/healed.ogg b/sound/announcer/vox_fem/healed.ogg similarity index 100% rename from sound/vox_fem/healed.ogg rename to sound/announcer/vox_fem/healed.ogg diff --git a/sound/vox_fem/healing.ogg b/sound/announcer/vox_fem/healing.ogg similarity index 100% rename from sound/vox_fem/healing.ogg rename to sound/announcer/vox_fem/healing.ogg diff --git a/sound/vox_fem/healium.ogg b/sound/announcer/vox_fem/healium.ogg similarity index 100% rename from sound/vox_fem/healium.ogg rename to sound/announcer/vox_fem/healium.ogg diff --git a/sound/vox_fem/health.ogg b/sound/announcer/vox_fem/health.ogg similarity index 100% rename from sound/vox_fem/health.ogg rename to sound/announcer/vox_fem/health.ogg diff --git a/sound/vox_fem/heat.ogg b/sound/announcer/vox_fem/heat.ogg similarity index 100% rename from sound/vox_fem/heat.ogg rename to sound/announcer/vox_fem/heat.ogg diff --git a/sound/vox_fem/heated.ogg b/sound/announcer/vox_fem/heated.ogg similarity index 100% rename from sound/vox_fem/heated.ogg rename to sound/announcer/vox_fem/heated.ogg diff --git a/sound/vox_fem/heating.ogg b/sound/announcer/vox_fem/heating.ogg similarity index 100% rename from sound/vox_fem/heating.ogg rename to sound/announcer/vox_fem/heating.ogg diff --git a/sound/vox_fem/helicopter.ogg b/sound/announcer/vox_fem/helicopter.ogg similarity index 100% rename from sound/vox_fem/helicopter.ogg rename to sound/announcer/vox_fem/helicopter.ogg diff --git a/sound/vox_fem/helium.ogg b/sound/announcer/vox_fem/helium.ogg similarity index 100% rename from sound/vox_fem/helium.ogg rename to sound/announcer/vox_fem/helium.ogg diff --git a/sound/vox_fem/hello.ogg b/sound/announcer/vox_fem/hello.ogg similarity index 100% rename from sound/vox_fem/hello.ogg rename to sound/announcer/vox_fem/hello.ogg diff --git a/sound/vox_fem/help.ogg b/sound/announcer/vox_fem/help.ogg similarity index 100% rename from sound/vox_fem/help.ogg rename to sound/announcer/vox_fem/help.ogg diff --git a/sound/vox_fem/her.ogg b/sound/announcer/vox_fem/her.ogg similarity index 100% rename from sound/vox_fem/her.ogg rename to sound/announcer/vox_fem/her.ogg diff --git a/sound/vox_fem/here.ogg b/sound/announcer/vox_fem/here.ogg similarity index 100% rename from sound/vox_fem/here.ogg rename to sound/announcer/vox_fem/here.ogg diff --git a/sound/vox_fem/heretic.ogg b/sound/announcer/vox_fem/heretic.ogg similarity index 100% rename from sound/vox_fem/heretic.ogg rename to sound/announcer/vox_fem/heretic.ogg diff --git a/sound/vox_fem/hide.ogg b/sound/announcer/vox_fem/hide.ogg similarity index 100% rename from sound/vox_fem/hide.ogg rename to sound/announcer/vox_fem/hide.ogg diff --git a/sound/vox_fem/high.ogg b/sound/announcer/vox_fem/high.ogg similarity index 100% rename from sound/vox_fem/high.ogg rename to sound/announcer/vox_fem/high.ogg diff --git a/sound/vox_fem/highest.ogg b/sound/announcer/vox_fem/highest.ogg similarity index 100% rename from sound/vox_fem/highest.ogg rename to sound/announcer/vox_fem/highest.ogg diff --git a/sound/vox_fem/him.ogg b/sound/announcer/vox_fem/him.ogg similarity index 100% rename from sound/vox_fem/him.ogg rename to sound/announcer/vox_fem/him.ogg diff --git a/sound/vox_fem/hit.ogg b/sound/announcer/vox_fem/hit.ogg similarity index 100% rename from sound/vox_fem/hit.ogg rename to sound/announcer/vox_fem/hit.ogg diff --git a/sound/vox_fem/hole.ogg b/sound/announcer/vox_fem/hole.ogg similarity index 100% rename from sound/vox_fem/hole.ogg rename to sound/announcer/vox_fem/hole.ogg diff --git a/sound/vox_fem/honk.ogg b/sound/announcer/vox_fem/honk.ogg similarity index 100% rename from sound/vox_fem/honk.ogg rename to sound/announcer/vox_fem/honk.ogg diff --git a/sound/vox_fem/hop.ogg b/sound/announcer/vox_fem/hop.ogg similarity index 100% rename from sound/vox_fem/hop.ogg rename to sound/announcer/vox_fem/hop.ogg diff --git a/sound/vox_fem/hos.ogg b/sound/announcer/vox_fem/hos.ogg similarity index 100% rename from sound/vox_fem/hos.ogg rename to sound/announcer/vox_fem/hos.ogg diff --git a/sound/vox_fem/hostile.ogg b/sound/announcer/vox_fem/hostile.ogg similarity index 100% rename from sound/vox_fem/hostile.ogg rename to sound/announcer/vox_fem/hostile.ogg diff --git a/sound/vox_fem/hot.ogg b/sound/announcer/vox_fem/hot.ogg similarity index 100% rename from sound/vox_fem/hot.ogg rename to sound/announcer/vox_fem/hot.ogg diff --git a/sound/vox_fem/hotel.ogg b/sound/announcer/vox_fem/hotel.ogg similarity index 100% rename from sound/vox_fem/hotel.ogg rename to sound/announcer/vox_fem/hotel.ogg diff --git a/sound/vox_fem/hour.ogg b/sound/announcer/vox_fem/hour.ogg similarity index 100% rename from sound/vox_fem/hour.ogg rename to sound/announcer/vox_fem/hour.ogg diff --git a/sound/vox_fem/hours.ogg b/sound/announcer/vox_fem/hours.ogg similarity index 100% rename from sound/vox_fem/hours.ogg rename to sound/announcer/vox_fem/hours.ogg diff --git a/sound/vox_fem/how.ogg b/sound/announcer/vox_fem/how.ogg similarity index 100% rename from sound/vox_fem/how.ogg rename to sound/announcer/vox_fem/how.ogg diff --git a/sound/vox_fem/human.ogg b/sound/announcer/vox_fem/human.ogg similarity index 100% rename from sound/vox_fem/human.ogg rename to sound/announcer/vox_fem/human.ogg diff --git a/sound/vox_fem/humanoid.ogg b/sound/announcer/vox_fem/humanoid.ogg similarity index 100% rename from sound/vox_fem/humanoid.ogg rename to sound/announcer/vox_fem/humanoid.ogg diff --git a/sound/vox_fem/humans.ogg b/sound/announcer/vox_fem/humans.ogg similarity index 100% rename from sound/vox_fem/humans.ogg rename to sound/announcer/vox_fem/humans.ogg diff --git a/sound/vox_fem/hundred.ogg b/sound/announcer/vox_fem/hundred.ogg similarity index 100% rename from sound/vox_fem/hundred.ogg rename to sound/announcer/vox_fem/hundred.ogg diff --git a/sound/vox_fem/hunger.ogg b/sound/announcer/vox_fem/hunger.ogg similarity index 100% rename from sound/vox_fem/hunger.ogg rename to sound/announcer/vox_fem/hunger.ogg diff --git a/sound/vox_fem/hurt.ogg b/sound/announcer/vox_fem/hurt.ogg similarity index 100% rename from sound/vox_fem/hurt.ogg rename to sound/announcer/vox_fem/hurt.ogg diff --git a/sound/vox_fem/hydro.ogg b/sound/announcer/vox_fem/hydro.ogg similarity index 100% rename from sound/vox_fem/hydro.ogg rename to sound/announcer/vox_fem/hydro.ogg diff --git a/sound/vox_fem/hydrogen.ogg b/sound/announcer/vox_fem/hydrogen.ogg similarity index 100% rename from sound/vox_fem/hydrogen.ogg rename to sound/announcer/vox_fem/hydrogen.ogg diff --git a/sound/vox_fem/hydroponics.ogg b/sound/announcer/vox_fem/hydroponics.ogg similarity index 100% rename from sound/vox_fem/hydroponics.ogg rename to sound/announcer/vox_fem/hydroponics.ogg diff --git a/sound/vox_fem/hyper-noblium.ogg b/sound/announcer/vox_fem/hyper-noblium.ogg similarity index 100% rename from sound/vox_fem/hyper-noblium.ogg rename to sound/announcer/vox_fem/hyper-noblium.ogg diff --git a/sound/vox_fem/i.ogg b/sound/announcer/vox_fem/i.ogg similarity index 100% rename from sound/vox_fem/i.ogg rename to sound/announcer/vox_fem/i.ogg diff --git a/sound/vox_fem/ian.ogg b/sound/announcer/vox_fem/ian.ogg similarity index 100% rename from sound/vox_fem/ian.ogg rename to sound/announcer/vox_fem/ian.ogg diff --git a/sound/vox_fem/idiot.ogg b/sound/announcer/vox_fem/idiot.ogg similarity index 100% rename from sound/vox_fem/idiot.ogg rename to sound/announcer/vox_fem/idiot.ogg diff --git a/sound/vox_fem/if.ogg b/sound/announcer/vox_fem/if.ogg similarity index 100% rename from sound/vox_fem/if.ogg rename to sound/announcer/vox_fem/if.ogg diff --git a/sound/vox_fem/if2.ogg b/sound/announcer/vox_fem/if2.ogg similarity index 100% rename from sound/vox_fem/if2.ogg rename to sound/announcer/vox_fem/if2.ogg diff --git a/sound/vox_fem/illegal.ogg b/sound/announcer/vox_fem/illegal.ogg similarity index 100% rename from sound/vox_fem/illegal.ogg rename to sound/announcer/vox_fem/illegal.ogg diff --git a/sound/vox_fem/immediate.ogg b/sound/announcer/vox_fem/immediate.ogg similarity index 100% rename from sound/vox_fem/immediate.ogg rename to sound/announcer/vox_fem/immediate.ogg diff --git a/sound/vox_fem/immediately.ogg b/sound/announcer/vox_fem/immediately.ogg similarity index 100% rename from sound/vox_fem/immediately.ogg rename to sound/announcer/vox_fem/immediately.ogg diff --git a/sound/vox_fem/immortal.ogg b/sound/announcer/vox_fem/immortal.ogg similarity index 100% rename from sound/vox_fem/immortal.ogg rename to sound/announcer/vox_fem/immortal.ogg diff --git a/sound/vox_fem/impossible.ogg b/sound/announcer/vox_fem/impossible.ogg similarity index 100% rename from sound/vox_fem/impossible.ogg rename to sound/announcer/vox_fem/impossible.ogg diff --git a/sound/vox_fem/in.ogg b/sound/announcer/vox_fem/in.ogg similarity index 100% rename from sound/vox_fem/in.ogg rename to sound/announcer/vox_fem/in.ogg diff --git a/sound/vox_fem/inches.ogg b/sound/announcer/vox_fem/inches.ogg similarity index 100% rename from sound/vox_fem/inches.ogg rename to sound/announcer/vox_fem/inches.ogg diff --git a/sound/vox_fem/india.ogg b/sound/announcer/vox_fem/india.ogg similarity index 100% rename from sound/vox_fem/india.ogg rename to sound/announcer/vox_fem/india.ogg diff --git a/sound/vox_fem/inert.ogg b/sound/announcer/vox_fem/inert.ogg similarity index 100% rename from sound/vox_fem/inert.ogg rename to sound/announcer/vox_fem/inert.ogg diff --git a/sound/vox_fem/ing.ogg b/sound/announcer/vox_fem/ing.ogg similarity index 100% rename from sound/vox_fem/ing.ogg rename to sound/announcer/vox_fem/ing.ogg diff --git a/sound/vox_fem/inoperative.ogg b/sound/announcer/vox_fem/inoperative.ogg similarity index 100% rename from sound/vox_fem/inoperative.ogg rename to sound/announcer/vox_fem/inoperative.ogg diff --git a/sound/vox_fem/inside.ogg b/sound/announcer/vox_fem/inside.ogg similarity index 100% rename from sound/vox_fem/inside.ogg rename to sound/announcer/vox_fem/inside.ogg diff --git a/sound/vox_fem/inspection.ogg b/sound/announcer/vox_fem/inspection.ogg similarity index 100% rename from sound/vox_fem/inspection.ogg rename to sound/announcer/vox_fem/inspection.ogg diff --git a/sound/vox_fem/inspector.ogg b/sound/announcer/vox_fem/inspector.ogg similarity index 100% rename from sound/vox_fem/inspector.ogg rename to sound/announcer/vox_fem/inspector.ogg diff --git a/sound/vox_fem/interchange.ogg b/sound/announcer/vox_fem/interchange.ogg similarity index 100% rename from sound/vox_fem/interchange.ogg rename to sound/announcer/vox_fem/interchange.ogg diff --git a/sound/vox_fem/internal.ogg b/sound/announcer/vox_fem/internal.ogg similarity index 100% rename from sound/vox_fem/internal.ogg rename to sound/announcer/vox_fem/internal.ogg diff --git a/sound/vox_fem/internals.ogg b/sound/announcer/vox_fem/internals.ogg similarity index 100% rename from sound/vox_fem/internals.ogg rename to sound/announcer/vox_fem/internals.ogg diff --git a/sound/vox_fem/intruder.ogg b/sound/announcer/vox_fem/intruder.ogg similarity index 100% rename from sound/vox_fem/intruder.ogg rename to sound/announcer/vox_fem/intruder.ogg diff --git a/sound/vox_fem/invalid.ogg b/sound/announcer/vox_fem/invalid.ogg similarity index 100% rename from sound/vox_fem/invalid.ogg rename to sound/announcer/vox_fem/invalid.ogg diff --git a/sound/vox_fem/invalidate.ogg b/sound/announcer/vox_fem/invalidate.ogg similarity index 100% rename from sound/vox_fem/invalidate.ogg rename to sound/announcer/vox_fem/invalidate.ogg diff --git a/sound/vox_fem/invasion.ogg b/sound/announcer/vox_fem/invasion.ogg similarity index 100% rename from sound/vox_fem/invasion.ogg rename to sound/announcer/vox_fem/invasion.ogg diff --git a/sound/vox_fem/irradiate.ogg b/sound/announcer/vox_fem/irradiate.ogg similarity index 100% rename from sound/vox_fem/irradiate.ogg rename to sound/announcer/vox_fem/irradiate.ogg diff --git a/sound/vox_fem/is.ogg b/sound/announcer/vox_fem/is.ogg similarity index 100% rename from sound/vox_fem/is.ogg rename to sound/announcer/vox_fem/is.ogg diff --git a/sound/vox_fem/it.ogg b/sound/announcer/vox_fem/it.ogg similarity index 100% rename from sound/vox_fem/it.ogg rename to sound/announcer/vox_fem/it.ogg diff --git a/sound/vox_fem/its.ogg b/sound/announcer/vox_fem/its.ogg similarity index 100% rename from sound/vox_fem/its.ogg rename to sound/announcer/vox_fem/its.ogg diff --git a/sound/vox_fem/j.ogg b/sound/announcer/vox_fem/j.ogg similarity index 100% rename from sound/vox_fem/j.ogg rename to sound/announcer/vox_fem/j.ogg diff --git a/sound/vox_fem/janitor.ogg b/sound/announcer/vox_fem/janitor.ogg similarity index 100% rename from sound/vox_fem/janitor.ogg rename to sound/announcer/vox_fem/janitor.ogg diff --git a/sound/vox_fem/jesus.ogg b/sound/announcer/vox_fem/jesus.ogg similarity index 100% rename from sound/vox_fem/jesus.ogg rename to sound/announcer/vox_fem/jesus.ogg diff --git a/sound/vox_fem/job.ogg b/sound/announcer/vox_fem/job.ogg similarity index 100% rename from sound/vox_fem/job.ogg rename to sound/announcer/vox_fem/job.ogg diff --git a/sound/vox_fem/jobs.ogg b/sound/announcer/vox_fem/jobs.ogg similarity index 100% rename from sound/vox_fem/jobs.ogg rename to sound/announcer/vox_fem/jobs.ogg diff --git a/sound/vox_fem/johnson.ogg b/sound/announcer/vox_fem/johnson.ogg similarity index 100% rename from sound/vox_fem/johnson.ogg rename to sound/announcer/vox_fem/johnson.ogg diff --git a/sound/vox_fem/jolly.ogg b/sound/announcer/vox_fem/jolly.ogg similarity index 100% rename from sound/vox_fem/jolly.ogg rename to sound/announcer/vox_fem/jolly.ogg diff --git a/sound/vox_fem/juliet.ogg b/sound/announcer/vox_fem/juliet.ogg similarity index 100% rename from sound/vox_fem/juliet.ogg rename to sound/announcer/vox_fem/juliet.ogg diff --git a/sound/vox_fem/k.ogg b/sound/announcer/vox_fem/k.ogg similarity index 100% rename from sound/vox_fem/k.ogg rename to sound/announcer/vox_fem/k.ogg diff --git a/sound/vox_fem/kelvin.ogg b/sound/announcer/vox_fem/kelvin.ogg similarity index 100% rename from sound/vox_fem/kelvin.ogg rename to sound/announcer/vox_fem/kelvin.ogg diff --git a/sound/vox_fem/key.ogg b/sound/announcer/vox_fem/key.ogg similarity index 100% rename from sound/vox_fem/key.ogg rename to sound/announcer/vox_fem/key.ogg diff --git a/sound/vox_fem/kidnapped.ogg b/sound/announcer/vox_fem/kidnapped.ogg similarity index 100% rename from sound/vox_fem/kidnapped.ogg rename to sound/announcer/vox_fem/kidnapped.ogg diff --git a/sound/vox_fem/kidnapping.ogg b/sound/announcer/vox_fem/kidnapping.ogg similarity index 100% rename from sound/vox_fem/kidnapping.ogg rename to sound/announcer/vox_fem/kidnapping.ogg diff --git a/sound/vox_fem/kill.ogg b/sound/announcer/vox_fem/kill.ogg similarity index 100% rename from sound/vox_fem/kill.ogg rename to sound/announcer/vox_fem/kill.ogg diff --git a/sound/vox_fem/killed.ogg b/sound/announcer/vox_fem/killed.ogg similarity index 100% rename from sound/vox_fem/killed.ogg rename to sound/announcer/vox_fem/killed.ogg diff --git a/sound/vox_fem/killer.ogg b/sound/announcer/vox_fem/killer.ogg similarity index 100% rename from sound/vox_fem/killer.ogg rename to sound/announcer/vox_fem/killer.ogg diff --git a/sound/vox_fem/kilo.ogg b/sound/announcer/vox_fem/kilo.ogg similarity index 100% rename from sound/vox_fem/kilo.ogg rename to sound/announcer/vox_fem/kilo.ogg diff --git a/sound/vox_fem/kit.ogg b/sound/announcer/vox_fem/kit.ogg similarity index 100% rename from sound/vox_fem/kit.ogg rename to sound/announcer/vox_fem/kit.ogg diff --git a/sound/vox_fem/kitchen.ogg b/sound/announcer/vox_fem/kitchen.ogg similarity index 100% rename from sound/vox_fem/kitchen.ogg rename to sound/announcer/vox_fem/kitchen.ogg diff --git a/sound/vox_fem/l.ogg b/sound/announcer/vox_fem/l.ogg similarity index 100% rename from sound/vox_fem/l.ogg rename to sound/announcer/vox_fem/l.ogg diff --git a/sound/vox_fem/lab.ogg b/sound/announcer/vox_fem/lab.ogg similarity index 100% rename from sound/vox_fem/lab.ogg rename to sound/announcer/vox_fem/lab.ogg diff --git a/sound/vox_fem/lambda.ogg b/sound/announcer/vox_fem/lambda.ogg similarity index 100% rename from sound/vox_fem/lambda.ogg rename to sound/announcer/vox_fem/lambda.ogg diff --git a/sound/vox_fem/large.ogg b/sound/announcer/vox_fem/large.ogg similarity index 100% rename from sound/vox_fem/large.ogg rename to sound/announcer/vox_fem/large.ogg diff --git a/sound/vox_fem/laser.ogg b/sound/announcer/vox_fem/laser.ogg similarity index 100% rename from sound/vox_fem/laser.ogg rename to sound/announcer/vox_fem/laser.ogg diff --git a/sound/vox_fem/last.ogg b/sound/announcer/vox_fem/last.ogg similarity index 100% rename from sound/vox_fem/last.ogg rename to sound/announcer/vox_fem/last.ogg diff --git a/sound/vox_fem/launch.ogg b/sound/announcer/vox_fem/launch.ogg similarity index 100% rename from sound/vox_fem/launch.ogg rename to sound/announcer/vox_fem/launch.ogg diff --git a/sound/vox_fem/lavaland.ogg b/sound/announcer/vox_fem/lavaland.ogg similarity index 100% rename from sound/vox_fem/lavaland.ogg rename to sound/announcer/vox_fem/lavaland.ogg diff --git a/sound/vox_fem/law.ogg b/sound/announcer/vox_fem/law.ogg similarity index 100% rename from sound/vox_fem/law.ogg rename to sound/announcer/vox_fem/law.ogg diff --git a/sound/vox_fem/laws.ogg b/sound/announcer/vox_fem/laws.ogg similarity index 100% rename from sound/vox_fem/laws.ogg rename to sound/announcer/vox_fem/laws.ogg diff --git a/sound/vox_fem/lawyer.ogg b/sound/announcer/vox_fem/lawyer.ogg similarity index 100% rename from sound/vox_fem/lawyer.ogg rename to sound/announcer/vox_fem/lawyer.ogg diff --git a/sound/vox_fem/leak.ogg b/sound/announcer/vox_fem/leak.ogg similarity index 100% rename from sound/vox_fem/leak.ogg rename to sound/announcer/vox_fem/leak.ogg diff --git a/sound/vox_fem/leave.ogg b/sound/announcer/vox_fem/leave.ogg similarity index 100% rename from sound/vox_fem/leave.ogg rename to sound/announcer/vox_fem/leave.ogg diff --git a/sound/vox_fem/left.ogg b/sound/announcer/vox_fem/left.ogg similarity index 100% rename from sound/vox_fem/left.ogg rename to sound/announcer/vox_fem/left.ogg diff --git a/sound/vox_fem/legal.ogg b/sound/announcer/vox_fem/legal.ogg similarity index 100% rename from sound/vox_fem/legal.ogg rename to sound/announcer/vox_fem/legal.ogg diff --git a/sound/vox_fem/level.ogg b/sound/announcer/vox_fem/level.ogg similarity index 100% rename from sound/vox_fem/level.ogg rename to sound/announcer/vox_fem/level.ogg diff --git a/sound/vox_fem/lever.ogg b/sound/announcer/vox_fem/lever.ogg similarity index 100% rename from sound/vox_fem/lever.ogg rename to sound/announcer/vox_fem/lever.ogg diff --git a/sound/vox_fem/library.ogg b/sound/announcer/vox_fem/library.ogg similarity index 100% rename from sound/vox_fem/library.ogg rename to sound/announcer/vox_fem/library.ogg diff --git a/sound/vox_fem/lie.ogg b/sound/announcer/vox_fem/lie.ogg similarity index 100% rename from sound/vox_fem/lie.ogg rename to sound/announcer/vox_fem/lie.ogg diff --git a/sound/vox_fem/lieutenant.ogg b/sound/announcer/vox_fem/lieutenant.ogg similarity index 100% rename from sound/vox_fem/lieutenant.ogg rename to sound/announcer/vox_fem/lieutenant.ogg diff --git a/sound/vox_fem/life.ogg b/sound/announcer/vox_fem/life.ogg similarity index 100% rename from sound/vox_fem/life.ogg rename to sound/announcer/vox_fem/life.ogg diff --git a/sound/vox_fem/lifeform.ogg b/sound/announcer/vox_fem/lifeform.ogg similarity index 100% rename from sound/vox_fem/lifeform.ogg rename to sound/announcer/vox_fem/lifeform.ogg diff --git a/sound/vox_fem/light.ogg b/sound/announcer/vox_fem/light.ogg similarity index 100% rename from sound/vox_fem/light.ogg rename to sound/announcer/vox_fem/light.ogg diff --git a/sound/vox_fem/lightbulb.ogg b/sound/announcer/vox_fem/lightbulb.ogg similarity index 100% rename from sound/vox_fem/lightbulb.ogg rename to sound/announcer/vox_fem/lightbulb.ogg diff --git a/sound/vox_fem/lima.ogg b/sound/announcer/vox_fem/lima.ogg similarity index 100% rename from sound/vox_fem/lima.ogg rename to sound/announcer/vox_fem/lima.ogg diff --git a/sound/vox_fem/limit.ogg b/sound/announcer/vox_fem/limit.ogg similarity index 100% rename from sound/vox_fem/limit.ogg rename to sound/announcer/vox_fem/limit.ogg diff --git a/sound/vox_fem/limited.ogg b/sound/announcer/vox_fem/limited.ogg similarity index 100% rename from sound/vox_fem/limited.ogg rename to sound/announcer/vox_fem/limited.ogg diff --git a/sound/vox_fem/liquid.ogg b/sound/announcer/vox_fem/liquid.ogg similarity index 100% rename from sound/vox_fem/liquid.ogg rename to sound/announcer/vox_fem/liquid.ogg diff --git a/sound/vox_fem/list.ogg b/sound/announcer/vox_fem/list.ogg similarity index 100% rename from sound/vox_fem/list.ogg rename to sound/announcer/vox_fem/list.ogg diff --git a/sound/vox_fem/live.ogg b/sound/announcer/vox_fem/live.ogg similarity index 100% rename from sound/vox_fem/live.ogg rename to sound/announcer/vox_fem/live.ogg diff --git a/sound/vox_fem/live2.ogg b/sound/announcer/vox_fem/live2.ogg similarity index 100% rename from sound/vox_fem/live2.ogg rename to sound/announcer/vox_fem/live2.ogg diff --git a/sound/vox_fem/lizard.ogg b/sound/announcer/vox_fem/lizard.ogg similarity index 100% rename from sound/vox_fem/lizard.ogg rename to sound/announcer/vox_fem/lizard.ogg diff --git a/sound/vox_fem/lizardperson.ogg b/sound/announcer/vox_fem/lizardperson.ogg similarity index 100% rename from sound/vox_fem/lizardperson.ogg rename to sound/announcer/vox_fem/lizardperson.ogg diff --git a/sound/vox_fem/loading.ogg b/sound/announcer/vox_fem/loading.ogg similarity index 100% rename from sound/vox_fem/loading.ogg rename to sound/announcer/vox_fem/loading.ogg diff --git a/sound/vox_fem/locate.ogg b/sound/announcer/vox_fem/locate.ogg similarity index 100% rename from sound/vox_fem/locate.ogg rename to sound/announcer/vox_fem/locate.ogg diff --git a/sound/vox_fem/located.ogg b/sound/announcer/vox_fem/located.ogg similarity index 100% rename from sound/vox_fem/located.ogg rename to sound/announcer/vox_fem/located.ogg diff --git a/sound/vox_fem/location.ogg b/sound/announcer/vox_fem/location.ogg similarity index 100% rename from sound/vox_fem/location.ogg rename to sound/announcer/vox_fem/location.ogg diff --git a/sound/vox_fem/lock.ogg b/sound/announcer/vox_fem/lock.ogg similarity index 100% rename from sound/vox_fem/lock.ogg rename to sound/announcer/vox_fem/lock.ogg diff --git a/sound/vox_fem/locked.ogg b/sound/announcer/vox_fem/locked.ogg similarity index 100% rename from sound/vox_fem/locked.ogg rename to sound/announcer/vox_fem/locked.ogg diff --git a/sound/vox_fem/locker.ogg b/sound/announcer/vox_fem/locker.ogg similarity index 100% rename from sound/vox_fem/locker.ogg rename to sound/announcer/vox_fem/locker.ogg diff --git a/sound/vox_fem/lockout.ogg b/sound/announcer/vox_fem/lockout.ogg similarity index 100% rename from sound/vox_fem/lockout.ogg rename to sound/announcer/vox_fem/lockout.ogg diff --git a/sound/vox_fem/long.ogg b/sound/announcer/vox_fem/long.ogg similarity index 100% rename from sound/vox_fem/long.ogg rename to sound/announcer/vox_fem/long.ogg diff --git a/sound/vox_fem/look.ogg b/sound/announcer/vox_fem/look.ogg similarity index 100% rename from sound/vox_fem/look.ogg rename to sound/announcer/vox_fem/look.ogg diff --git a/sound/vox_fem/loop.ogg b/sound/announcer/vox_fem/loop.ogg similarity index 100% rename from sound/vox_fem/loop.ogg rename to sound/announcer/vox_fem/loop.ogg diff --git a/sound/vox_fem/loose.ogg b/sound/announcer/vox_fem/loose.ogg similarity index 100% rename from sound/vox_fem/loose.ogg rename to sound/announcer/vox_fem/loose.ogg diff --git a/sound/vox_fem/lot.ogg b/sound/announcer/vox_fem/lot.ogg similarity index 100% rename from sound/vox_fem/lot.ogg rename to sound/announcer/vox_fem/lot.ogg diff --git a/sound/vox_fem/lower.ogg b/sound/announcer/vox_fem/lower.ogg similarity index 100% rename from sound/vox_fem/lower.ogg rename to sound/announcer/vox_fem/lower.ogg diff --git a/sound/vox_fem/lowest.ogg b/sound/announcer/vox_fem/lowest.ogg similarity index 100% rename from sound/vox_fem/lowest.ogg rename to sound/announcer/vox_fem/lowest.ogg diff --git a/sound/vox_fem/lusty.ogg b/sound/announcer/vox_fem/lusty.ogg similarity index 100% rename from sound/vox_fem/lusty.ogg rename to sound/announcer/vox_fem/lusty.ogg diff --git a/sound/vox_fem/m.ogg b/sound/announcer/vox_fem/m.ogg similarity index 100% rename from sound/vox_fem/m.ogg rename to sound/announcer/vox_fem/m.ogg diff --git a/sound/vox_fem/machine.ogg b/sound/announcer/vox_fem/machine.ogg similarity index 100% rename from sound/vox_fem/machine.ogg rename to sound/announcer/vox_fem/machine.ogg diff --git a/sound/vox_fem/made.ogg b/sound/announcer/vox_fem/made.ogg similarity index 100% rename from sound/vox_fem/made.ogg rename to sound/announcer/vox_fem/made.ogg diff --git a/sound/vox_fem/magic.ogg b/sound/announcer/vox_fem/magic.ogg similarity index 100% rename from sound/vox_fem/magic.ogg rename to sound/announcer/vox_fem/magic.ogg diff --git a/sound/vox_fem/magnetic.ogg b/sound/announcer/vox_fem/magnetic.ogg similarity index 100% rename from sound/vox_fem/magnetic.ogg rename to sound/announcer/vox_fem/magnetic.ogg diff --git a/sound/vox_fem/main.ogg b/sound/announcer/vox_fem/main.ogg similarity index 100% rename from sound/vox_fem/main.ogg rename to sound/announcer/vox_fem/main.ogg diff --git a/sound/vox_fem/maintainer.ogg b/sound/announcer/vox_fem/maintainer.ogg similarity index 100% rename from sound/vox_fem/maintainer.ogg rename to sound/announcer/vox_fem/maintainer.ogg diff --git a/sound/vox_fem/maintenance.ogg b/sound/announcer/vox_fem/maintenance.ogg similarity index 100% rename from sound/vox_fem/maintenance.ogg rename to sound/announcer/vox_fem/maintenance.ogg diff --git a/sound/vox_fem/major.ogg b/sound/announcer/vox_fem/major.ogg similarity index 100% rename from sound/vox_fem/major.ogg rename to sound/announcer/vox_fem/major.ogg diff --git a/sound/vox_fem/making.ogg b/sound/announcer/vox_fem/making.ogg similarity index 100% rename from sound/vox_fem/making.ogg rename to sound/announcer/vox_fem/making.ogg diff --git a/sound/vox_fem/malfunction.ogg b/sound/announcer/vox_fem/malfunction.ogg similarity index 100% rename from sound/vox_fem/malfunction.ogg rename to sound/announcer/vox_fem/malfunction.ogg diff --git a/sound/vox_fem/man.ogg b/sound/announcer/vox_fem/man.ogg similarity index 100% rename from sound/vox_fem/man.ogg rename to sound/announcer/vox_fem/man.ogg diff --git a/sound/vox_fem/many.ogg b/sound/announcer/vox_fem/many.ogg similarity index 100% rename from sound/vox_fem/many.ogg rename to sound/announcer/vox_fem/many.ogg diff --git a/sound/vox_fem/mass.ogg b/sound/announcer/vox_fem/mass.ogg similarity index 100% rename from sound/vox_fem/mass.ogg rename to sound/announcer/vox_fem/mass.ogg diff --git a/sound/vox_fem/materials.ogg b/sound/announcer/vox_fem/materials.ogg similarity index 100% rename from sound/vox_fem/materials.ogg rename to sound/announcer/vox_fem/materials.ogg diff --git a/sound/vox_fem/maximum.ogg b/sound/announcer/vox_fem/maximum.ogg similarity index 100% rename from sound/vox_fem/maximum.ogg rename to sound/announcer/vox_fem/maximum.ogg diff --git a/sound/vox_fem/may.ogg b/sound/announcer/vox_fem/may.ogg similarity index 100% rename from sound/vox_fem/may.ogg rename to sound/announcer/vox_fem/may.ogg diff --git a/sound/vox_fem/me.ogg b/sound/announcer/vox_fem/me.ogg similarity index 100% rename from sound/vox_fem/me.ogg rename to sound/announcer/vox_fem/me.ogg diff --git a/sound/vox_fem/mean.ogg b/sound/announcer/vox_fem/mean.ogg similarity index 100% rename from sound/vox_fem/mean.ogg rename to sound/announcer/vox_fem/mean.ogg diff --git a/sound/vox_fem/means.ogg b/sound/announcer/vox_fem/means.ogg similarity index 100% rename from sound/vox_fem/means.ogg rename to sound/announcer/vox_fem/means.ogg diff --git a/sound/vox_fem/meat.ogg b/sound/announcer/vox_fem/meat.ogg similarity index 100% rename from sound/vox_fem/meat.ogg rename to sound/announcer/vox_fem/meat.ogg diff --git a/sound/vox_fem/medbay.ogg b/sound/announcer/vox_fem/medbay.ogg similarity index 100% rename from sound/vox_fem/medbay.ogg rename to sound/announcer/vox_fem/medbay.ogg diff --git a/sound/vox_fem/medical.ogg b/sound/announcer/vox_fem/medical.ogg similarity index 100% rename from sound/vox_fem/medical.ogg rename to sound/announcer/vox_fem/medical.ogg diff --git a/sound/vox_fem/medium.ogg b/sound/announcer/vox_fem/medium.ogg similarity index 100% rename from sound/vox_fem/medium.ogg rename to sound/announcer/vox_fem/medium.ogg diff --git a/sound/vox_fem/megafauna.ogg b/sound/announcer/vox_fem/megafauna.ogg similarity index 100% rename from sound/vox_fem/megafauna.ogg rename to sound/announcer/vox_fem/megafauna.ogg diff --git a/sound/vox_fem/men.ogg b/sound/announcer/vox_fem/men.ogg similarity index 100% rename from sound/vox_fem/men.ogg rename to sound/announcer/vox_fem/men.ogg diff --git a/sound/vox_fem/mercy.ogg b/sound/announcer/vox_fem/mercy.ogg similarity index 100% rename from sound/vox_fem/mercy.ogg rename to sound/announcer/vox_fem/mercy.ogg diff --git a/sound/vox_fem/mesa.ogg b/sound/announcer/vox_fem/mesa.ogg similarity index 100% rename from sound/vox_fem/mesa.ogg rename to sound/announcer/vox_fem/mesa.ogg diff --git a/sound/vox_fem/meson.ogg b/sound/announcer/vox_fem/meson.ogg similarity index 100% rename from sound/vox_fem/meson.ogg rename to sound/announcer/vox_fem/meson.ogg diff --git a/sound/vox_fem/message.ogg b/sound/announcer/vox_fem/message.ogg similarity index 100% rename from sound/vox_fem/message.ogg rename to sound/announcer/vox_fem/message.ogg diff --git a/sound/vox_fem/meter.ogg b/sound/announcer/vox_fem/meter.ogg similarity index 100% rename from sound/vox_fem/meter.ogg rename to sound/announcer/vox_fem/meter.ogg diff --git a/sound/vox_fem/method.ogg b/sound/announcer/vox_fem/method.ogg similarity index 100% rename from sound/vox_fem/method.ogg rename to sound/announcer/vox_fem/method.ogg diff --git a/sound/vox_fem/miasma.ogg b/sound/announcer/vox_fem/miasma.ogg similarity index 100% rename from sound/vox_fem/miasma.ogg rename to sound/announcer/vox_fem/miasma.ogg diff --git a/sound/vox_fem/micro.ogg b/sound/announcer/vox_fem/micro.ogg similarity index 100% rename from sound/vox_fem/micro.ogg rename to sound/announcer/vox_fem/micro.ogg diff --git a/sound/vox_fem/middle.ogg b/sound/announcer/vox_fem/middle.ogg similarity index 100% rename from sound/vox_fem/middle.ogg rename to sound/announcer/vox_fem/middle.ogg diff --git a/sound/vox_fem/mike.ogg b/sound/announcer/vox_fem/mike.ogg similarity index 100% rename from sound/vox_fem/mike.ogg rename to sound/announcer/vox_fem/mike.ogg diff --git a/sound/vox_fem/miles.ogg b/sound/announcer/vox_fem/miles.ogg similarity index 100% rename from sound/vox_fem/miles.ogg rename to sound/announcer/vox_fem/miles.ogg diff --git a/sound/vox_fem/military.ogg b/sound/announcer/vox_fem/military.ogg similarity index 100% rename from sound/vox_fem/military.ogg rename to sound/announcer/vox_fem/military.ogg diff --git a/sound/vox_fem/milli.ogg b/sound/announcer/vox_fem/milli.ogg similarity index 100% rename from sound/vox_fem/milli.ogg rename to sound/announcer/vox_fem/milli.ogg diff --git a/sound/vox_fem/million.ogg b/sound/announcer/vox_fem/million.ogg similarity index 100% rename from sound/vox_fem/million.ogg rename to sound/announcer/vox_fem/million.ogg diff --git a/sound/vox_fem/mime.ogg b/sound/announcer/vox_fem/mime.ogg similarity index 100% rename from sound/vox_fem/mime.ogg rename to sound/announcer/vox_fem/mime.ogg diff --git a/sound/vox_fem/minefield.ogg b/sound/announcer/vox_fem/minefield.ogg similarity index 100% rename from sound/vox_fem/minefield.ogg rename to sound/announcer/vox_fem/minefield.ogg diff --git a/sound/vox_fem/miner.ogg b/sound/announcer/vox_fem/miner.ogg similarity index 100% rename from sound/vox_fem/miner.ogg rename to sound/announcer/vox_fem/miner.ogg diff --git a/sound/vox_fem/minimum.ogg b/sound/announcer/vox_fem/minimum.ogg similarity index 100% rename from sound/vox_fem/minimum.ogg rename to sound/announcer/vox_fem/minimum.ogg diff --git a/sound/vox_fem/minor.ogg b/sound/announcer/vox_fem/minor.ogg similarity index 100% rename from sound/vox_fem/minor.ogg rename to sound/announcer/vox_fem/minor.ogg diff --git a/sound/vox_fem/minute.ogg b/sound/announcer/vox_fem/minute.ogg similarity index 100% rename from sound/vox_fem/minute.ogg rename to sound/announcer/vox_fem/minute.ogg diff --git a/sound/vox_fem/minutes.ogg b/sound/announcer/vox_fem/minutes.ogg similarity index 100% rename from sound/vox_fem/minutes.ogg rename to sound/announcer/vox_fem/minutes.ogg diff --git a/sound/vox_fem/mister.ogg b/sound/announcer/vox_fem/mister.ogg similarity index 100% rename from sound/vox_fem/mister.ogg rename to sound/announcer/vox_fem/mister.ogg diff --git a/sound/vox_fem/mixture.ogg b/sound/announcer/vox_fem/mixture.ogg similarity index 100% rename from sound/vox_fem/mixture.ogg rename to sound/announcer/vox_fem/mixture.ogg diff --git a/sound/vox_fem/mode.ogg b/sound/announcer/vox_fem/mode.ogg similarity index 100% rename from sound/vox_fem/mode.ogg rename to sound/announcer/vox_fem/mode.ogg diff --git a/sound/vox_fem/modification.ogg b/sound/announcer/vox_fem/modification.ogg similarity index 100% rename from sound/vox_fem/modification.ogg rename to sound/announcer/vox_fem/modification.ogg diff --git a/sound/vox_fem/money.ogg b/sound/announcer/vox_fem/money.ogg similarity index 100% rename from sound/vox_fem/money.ogg rename to sound/announcer/vox_fem/money.ogg diff --git a/sound/vox_fem/monkey.ogg b/sound/announcer/vox_fem/monkey.ogg similarity index 100% rename from sound/vox_fem/monkey.ogg rename to sound/announcer/vox_fem/monkey.ogg diff --git a/sound/vox_fem/most.ogg b/sound/announcer/vox_fem/most.ogg similarity index 100% rename from sound/vox_fem/most.ogg rename to sound/announcer/vox_fem/most.ogg diff --git a/sound/vox_fem/moth.ogg b/sound/announcer/vox_fem/moth.ogg similarity index 100% rename from sound/vox_fem/moth.ogg rename to sound/announcer/vox_fem/moth.ogg diff --git a/sound/vox_fem/mothperson.ogg b/sound/announcer/vox_fem/mothperson.ogg similarity index 100% rename from sound/vox_fem/mothperson.ogg rename to sound/announcer/vox_fem/mothperson.ogg diff --git a/sound/vox_fem/motor.ogg b/sound/announcer/vox_fem/motor.ogg similarity index 100% rename from sound/vox_fem/motor.ogg rename to sound/announcer/vox_fem/motor.ogg diff --git a/sound/vox_fem/motorpool.ogg b/sound/announcer/vox_fem/motorpool.ogg similarity index 100% rename from sound/vox_fem/motorpool.ogg rename to sound/announcer/vox_fem/motorpool.ogg diff --git a/sound/vox_fem/move.ogg b/sound/announcer/vox_fem/move.ogg similarity index 100% rename from sound/vox_fem/move.ogg rename to sound/announcer/vox_fem/move.ogg diff --git a/sound/vox_fem/moved.ogg b/sound/announcer/vox_fem/moved.ogg similarity index 100% rename from sound/vox_fem/moved.ogg rename to sound/announcer/vox_fem/moved.ogg diff --git a/sound/vox_fem/moving.ogg b/sound/announcer/vox_fem/moving.ogg similarity index 100% rename from sound/vox_fem/moving.ogg rename to sound/announcer/vox_fem/moving.ogg diff --git a/sound/vox_fem/multitude.ogg b/sound/announcer/vox_fem/multitude.ogg similarity index 100% rename from sound/vox_fem/multitude.ogg rename to sound/announcer/vox_fem/multitude.ogg diff --git a/sound/vox_fem/murder.ogg b/sound/announcer/vox_fem/murder.ogg similarity index 100% rename from sound/vox_fem/murder.ogg rename to sound/announcer/vox_fem/murder.ogg diff --git a/sound/vox_fem/murderer.ogg b/sound/announcer/vox_fem/murderer.ogg similarity index 100% rename from sound/vox_fem/murderer.ogg rename to sound/announcer/vox_fem/murderer.ogg diff --git a/sound/vox_fem/must.ogg b/sound/announcer/vox_fem/must.ogg similarity index 100% rename from sound/vox_fem/must.ogg rename to sound/announcer/vox_fem/must.ogg diff --git a/sound/vox_fem/my.ogg b/sound/announcer/vox_fem/my.ogg similarity index 100% rename from sound/vox_fem/my.ogg rename to sound/announcer/vox_fem/my.ogg diff --git a/sound/vox_fem/mythic.ogg b/sound/announcer/vox_fem/mythic.ogg similarity index 100% rename from sound/vox_fem/mythic.ogg rename to sound/announcer/vox_fem/mythic.ogg diff --git a/sound/vox_fem/n.ogg b/sound/announcer/vox_fem/n.ogg similarity index 100% rename from sound/vox_fem/n.ogg rename to sound/announcer/vox_fem/n.ogg diff --git a/sound/vox_fem/nanotrasen.ogg b/sound/announcer/vox_fem/nanotrasen.ogg similarity index 100% rename from sound/vox_fem/nanotrasen.ogg rename to sound/announcer/vox_fem/nanotrasen.ogg diff --git a/sound/vox_fem/near.ogg b/sound/announcer/vox_fem/near.ogg similarity index 100% rename from sound/vox_fem/near.ogg rename to sound/announcer/vox_fem/near.ogg diff --git a/sound/vox_fem/nearest.ogg b/sound/announcer/vox_fem/nearest.ogg similarity index 100% rename from sound/vox_fem/nearest.ogg rename to sound/announcer/vox_fem/nearest.ogg diff --git a/sound/vox_fem/nearly.ogg b/sound/announcer/vox_fem/nearly.ogg similarity index 100% rename from sound/vox_fem/nearly.ogg rename to sound/announcer/vox_fem/nearly.ogg diff --git a/sound/vox_fem/need.ogg b/sound/announcer/vox_fem/need.ogg similarity index 100% rename from sound/vox_fem/need.ogg rename to sound/announcer/vox_fem/need.ogg diff --git a/sound/vox_fem/never.ogg b/sound/announcer/vox_fem/never.ogg similarity index 100% rename from sound/vox_fem/never.ogg rename to sound/announcer/vox_fem/never.ogg diff --git a/sound/vox_fem/nice.ogg b/sound/announcer/vox_fem/nice.ogg similarity index 100% rename from sound/vox_fem/nice.ogg rename to sound/announcer/vox_fem/nice.ogg diff --git a/sound/vox_fem/night.ogg b/sound/announcer/vox_fem/night.ogg similarity index 100% rename from sound/vox_fem/night.ogg rename to sound/announcer/vox_fem/night.ogg diff --git a/sound/vox_fem/nine.ogg b/sound/announcer/vox_fem/nine.ogg similarity index 100% rename from sound/vox_fem/nine.ogg rename to sound/announcer/vox_fem/nine.ogg diff --git a/sound/vox_fem/nineteen.ogg b/sound/announcer/vox_fem/nineteen.ogg similarity index 100% rename from sound/vox_fem/nineteen.ogg rename to sound/announcer/vox_fem/nineteen.ogg diff --git a/sound/vox_fem/ninety.ogg b/sound/announcer/vox_fem/ninety.ogg similarity index 100% rename from sound/vox_fem/ninety.ogg rename to sound/announcer/vox_fem/ninety.ogg diff --git a/sound/vox_fem/nitrogen.ogg b/sound/announcer/vox_fem/nitrogen.ogg similarity index 100% rename from sound/vox_fem/nitrogen.ogg rename to sound/announcer/vox_fem/nitrogen.ogg diff --git a/sound/vox_fem/no.ogg b/sound/announcer/vox_fem/no.ogg similarity index 100% rename from sound/vox_fem/no.ogg rename to sound/announcer/vox_fem/no.ogg diff --git a/sound/vox_fem/nominal.ogg b/sound/announcer/vox_fem/nominal.ogg similarity index 100% rename from sound/vox_fem/nominal.ogg rename to sound/announcer/vox_fem/nominal.ogg diff --git a/sound/vox_fem/none.ogg b/sound/announcer/vox_fem/none.ogg similarity index 100% rename from sound/vox_fem/none.ogg rename to sound/announcer/vox_fem/none.ogg diff --git a/sound/vox_fem/normal.ogg b/sound/announcer/vox_fem/normal.ogg similarity index 100% rename from sound/vox_fem/normal.ogg rename to sound/announcer/vox_fem/normal.ogg diff --git a/sound/vox_fem/normally.ogg b/sound/announcer/vox_fem/normally.ogg similarity index 100% rename from sound/vox_fem/normally.ogg rename to sound/announcer/vox_fem/normally.ogg diff --git a/sound/vox_fem/north.ogg b/sound/announcer/vox_fem/north.ogg similarity index 100% rename from sound/vox_fem/north.ogg rename to sound/announcer/vox_fem/north.ogg diff --git a/sound/vox_fem/northeast.ogg b/sound/announcer/vox_fem/northeast.ogg similarity index 100% rename from sound/vox_fem/northeast.ogg rename to sound/announcer/vox_fem/northeast.ogg diff --git a/sound/vox_fem/northwest.ogg b/sound/announcer/vox_fem/northwest.ogg similarity index 100% rename from sound/vox_fem/northwest.ogg rename to sound/announcer/vox_fem/northwest.ogg diff --git a/sound/vox_fem/not.ogg b/sound/announcer/vox_fem/not.ogg similarity index 100% rename from sound/vox_fem/not.ogg rename to sound/announcer/vox_fem/not.ogg diff --git a/sound/vox_fem/notably.ogg b/sound/announcer/vox_fem/notably.ogg similarity index 100% rename from sound/vox_fem/notably.ogg rename to sound/announcer/vox_fem/notably.ogg diff --git a/sound/vox_fem/november.ogg b/sound/announcer/vox_fem/november.ogg similarity index 100% rename from sound/vox_fem/november.ogg rename to sound/announcer/vox_fem/november.ogg diff --git a/sound/vox_fem/now.ogg b/sound/announcer/vox_fem/now.ogg similarity index 100% rename from sound/vox_fem/now.ogg rename to sound/announcer/vox_fem/now.ogg diff --git a/sound/vox_fem/nuclear.ogg b/sound/announcer/vox_fem/nuclear.ogg similarity index 100% rename from sound/vox_fem/nuclear.ogg rename to sound/announcer/vox_fem/nuclear.ogg diff --git a/sound/vox_fem/nuke.ogg b/sound/announcer/vox_fem/nuke.ogg similarity index 100% rename from sound/vox_fem/nuke.ogg rename to sound/announcer/vox_fem/nuke.ogg diff --git a/sound/vox_fem/number.ogg b/sound/announcer/vox_fem/number.ogg similarity index 100% rename from sound/vox_fem/number.ogg rename to sound/announcer/vox_fem/number.ogg diff --git a/sound/vox_fem/o.ogg b/sound/announcer/vox_fem/o.ogg similarity index 100% rename from sound/vox_fem/o.ogg rename to sound/announcer/vox_fem/o.ogg diff --git a/sound/vox_fem/object.ogg b/sound/announcer/vox_fem/object.ogg similarity index 100% rename from sound/vox_fem/object.ogg rename to sound/announcer/vox_fem/object.ogg diff --git a/sound/vox_fem/objective.ogg b/sound/announcer/vox_fem/objective.ogg similarity index 100% rename from sound/vox_fem/objective.ogg rename to sound/announcer/vox_fem/objective.ogg diff --git a/sound/vox_fem/obliterate.ogg b/sound/announcer/vox_fem/obliterate.ogg similarity index 100% rename from sound/vox_fem/obliterate.ogg rename to sound/announcer/vox_fem/obliterate.ogg diff --git a/sound/vox_fem/obliterated.ogg b/sound/announcer/vox_fem/obliterated.ogg similarity index 100% rename from sound/vox_fem/obliterated.ogg rename to sound/announcer/vox_fem/obliterated.ogg diff --git a/sound/vox_fem/obliterating.ogg b/sound/announcer/vox_fem/obliterating.ogg similarity index 100% rename from sound/vox_fem/obliterating.ogg rename to sound/announcer/vox_fem/obliterating.ogg diff --git a/sound/vox_fem/observation.ogg b/sound/announcer/vox_fem/observation.ogg similarity index 100% rename from sound/vox_fem/observation.ogg rename to sound/announcer/vox_fem/observation.ogg diff --git a/sound/vox_fem/obtain.ogg b/sound/announcer/vox_fem/obtain.ogg similarity index 100% rename from sound/vox_fem/obtain.ogg rename to sound/announcer/vox_fem/obtain.ogg diff --git a/sound/vox_fem/of.ogg b/sound/announcer/vox_fem/of.ogg similarity index 100% rename from sound/vox_fem/of.ogg rename to sound/announcer/vox_fem/of.ogg diff --git a/sound/vox_fem/off.ogg b/sound/announcer/vox_fem/off.ogg similarity index 100% rename from sound/vox_fem/off.ogg rename to sound/announcer/vox_fem/off.ogg diff --git a/sound/vox_fem/office.ogg b/sound/announcer/vox_fem/office.ogg similarity index 100% rename from sound/vox_fem/office.ogg rename to sound/announcer/vox_fem/office.ogg diff --git a/sound/vox_fem/officer.ogg b/sound/announcer/vox_fem/officer.ogg similarity index 100% rename from sound/vox_fem/officer.ogg rename to sound/announcer/vox_fem/officer.ogg diff --git a/sound/vox_fem/oh.ogg b/sound/announcer/vox_fem/oh.ogg similarity index 100% rename from sound/vox_fem/oh.ogg rename to sound/announcer/vox_fem/oh.ogg diff --git a/sound/vox_fem/ok.ogg b/sound/announcer/vox_fem/ok.ogg similarity index 100% rename from sound/vox_fem/ok.ogg rename to sound/announcer/vox_fem/ok.ogg diff --git a/sound/vox_fem/okay.ogg b/sound/announcer/vox_fem/okay.ogg similarity index 100% rename from sound/vox_fem/okay.ogg rename to sound/announcer/vox_fem/okay.ogg diff --git a/sound/vox_fem/on.ogg b/sound/announcer/vox_fem/on.ogg similarity index 100% rename from sound/vox_fem/on.ogg rename to sound/announcer/vox_fem/on.ogg diff --git a/sound/vox_fem/once.ogg b/sound/announcer/vox_fem/once.ogg similarity index 100% rename from sound/vox_fem/once.ogg rename to sound/announcer/vox_fem/once.ogg diff --git a/sound/vox_fem/one.ogg b/sound/announcer/vox_fem/one.ogg similarity index 100% rename from sound/vox_fem/one.ogg rename to sound/announcer/vox_fem/one.ogg diff --git a/sound/vox_fem/oof.ogg b/sound/announcer/vox_fem/oof.ogg similarity index 100% rename from sound/vox_fem/oof.ogg rename to sound/announcer/vox_fem/oof.ogg diff --git a/sound/vox_fem/open.ogg b/sound/announcer/vox_fem/open.ogg similarity index 100% rename from sound/vox_fem/open.ogg rename to sound/announcer/vox_fem/open.ogg diff --git a/sound/vox_fem/opened.ogg b/sound/announcer/vox_fem/opened.ogg similarity index 100% rename from sound/vox_fem/opened.ogg rename to sound/announcer/vox_fem/opened.ogg diff --git a/sound/vox_fem/opening.ogg b/sound/announcer/vox_fem/opening.ogg similarity index 100% rename from sound/vox_fem/opening.ogg rename to sound/announcer/vox_fem/opening.ogg diff --git a/sound/vox_fem/operating.ogg b/sound/announcer/vox_fem/operating.ogg similarity index 100% rename from sound/vox_fem/operating.ogg rename to sound/announcer/vox_fem/operating.ogg diff --git a/sound/vox_fem/operations.ogg b/sound/announcer/vox_fem/operations.ogg similarity index 100% rename from sound/vox_fem/operations.ogg rename to sound/announcer/vox_fem/operations.ogg diff --git a/sound/vox_fem/operative.ogg b/sound/announcer/vox_fem/operative.ogg similarity index 100% rename from sound/vox_fem/operative.ogg rename to sound/announcer/vox_fem/operative.ogg diff --git a/sound/vox_fem/option.ogg b/sound/announcer/vox_fem/option.ogg similarity index 100% rename from sound/vox_fem/option.ogg rename to sound/announcer/vox_fem/option.ogg diff --git a/sound/vox_fem/or.ogg b/sound/announcer/vox_fem/or.ogg similarity index 100% rename from sound/vox_fem/or.ogg rename to sound/announcer/vox_fem/or.ogg diff --git a/sound/vox_fem/order.ogg b/sound/announcer/vox_fem/order.ogg similarity index 100% rename from sound/vox_fem/order.ogg rename to sound/announcer/vox_fem/order.ogg diff --git a/sound/vox_fem/ordered.ogg b/sound/announcer/vox_fem/ordered.ogg similarity index 100% rename from sound/vox_fem/ordered.ogg rename to sound/announcer/vox_fem/ordered.ogg diff --git a/sound/vox_fem/ordering.ogg b/sound/announcer/vox_fem/ordering.ogg similarity index 100% rename from sound/vox_fem/ordering.ogg rename to sound/announcer/vox_fem/ordering.ogg diff --git a/sound/vox_fem/organic.ogg b/sound/announcer/vox_fem/organic.ogg similarity index 100% rename from sound/vox_fem/organic.ogg rename to sound/announcer/vox_fem/organic.ogg diff --git a/sound/vox_fem/oscar.ogg b/sound/announcer/vox_fem/oscar.ogg similarity index 100% rename from sound/vox_fem/oscar.ogg rename to sound/announcer/vox_fem/oscar.ogg diff --git a/sound/vox_fem/out.ogg b/sound/announcer/vox_fem/out.ogg similarity index 100% rename from sound/vox_fem/out.ogg rename to sound/announcer/vox_fem/out.ogg diff --git a/sound/vox_fem/output.ogg b/sound/announcer/vox_fem/output.ogg similarity index 100% rename from sound/vox_fem/output.ogg rename to sound/announcer/vox_fem/output.ogg diff --git a/sound/vox_fem/outside.ogg b/sound/announcer/vox_fem/outside.ogg similarity index 100% rename from sound/vox_fem/outside.ogg rename to sound/announcer/vox_fem/outside.ogg diff --git a/sound/vox_fem/over.ogg b/sound/announcer/vox_fem/over.ogg similarity index 100% rename from sound/vox_fem/over.ogg rename to sound/announcer/vox_fem/over.ogg diff --git a/sound/vox_fem/overload.ogg b/sound/announcer/vox_fem/overload.ogg similarity index 100% rename from sound/vox_fem/overload.ogg rename to sound/announcer/vox_fem/overload.ogg diff --git a/sound/vox_fem/override.ogg b/sound/announcer/vox_fem/override.ogg similarity index 100% rename from sound/vox_fem/override.ogg rename to sound/announcer/vox_fem/override.ogg diff --git a/sound/vox_fem/own.ogg b/sound/announcer/vox_fem/own.ogg similarity index 100% rename from sound/vox_fem/own.ogg rename to sound/announcer/vox_fem/own.ogg diff --git a/sound/vox_fem/oxygen.ogg b/sound/announcer/vox_fem/oxygen.ogg similarity index 100% rename from sound/vox_fem/oxygen.ogg rename to sound/announcer/vox_fem/oxygen.ogg diff --git a/sound/vox_fem/p.ogg b/sound/announcer/vox_fem/p.ogg similarity index 100% rename from sound/vox_fem/p.ogg rename to sound/announcer/vox_fem/p.ogg diff --git a/sound/vox_fem/pacification.ogg b/sound/announcer/vox_fem/pacification.ogg similarity index 100% rename from sound/vox_fem/pacification.ogg rename to sound/announcer/vox_fem/pacification.ogg diff --git a/sound/vox_fem/pacify.ogg b/sound/announcer/vox_fem/pacify.ogg similarity index 100% rename from sound/vox_fem/pacify.ogg rename to sound/announcer/vox_fem/pacify.ogg diff --git a/sound/vox_fem/pain.ogg b/sound/announcer/vox_fem/pain.ogg similarity index 100% rename from sound/vox_fem/pain.ogg rename to sound/announcer/vox_fem/pain.ogg diff --git a/sound/vox_fem/pal.ogg b/sound/announcer/vox_fem/pal.ogg similarity index 100% rename from sound/vox_fem/pal.ogg rename to sound/announcer/vox_fem/pal.ogg diff --git a/sound/vox_fem/panel.ogg b/sound/announcer/vox_fem/panel.ogg similarity index 100% rename from sound/vox_fem/panel.ogg rename to sound/announcer/vox_fem/panel.ogg diff --git a/sound/vox_fem/panting.ogg b/sound/announcer/vox_fem/panting.ogg similarity index 100% rename from sound/vox_fem/panting.ogg rename to sound/announcer/vox_fem/panting.ogg diff --git a/sound/vox_fem/pathetic.ogg b/sound/announcer/vox_fem/pathetic.ogg similarity index 100% rename from sound/vox_fem/pathetic.ogg rename to sound/announcer/vox_fem/pathetic.ogg diff --git a/sound/vox_fem/pda.ogg b/sound/announcer/vox_fem/pda.ogg similarity index 100% rename from sound/vox_fem/pda.ogg rename to sound/announcer/vox_fem/pda.ogg diff --git a/sound/vox_fem/percent.ogg b/sound/announcer/vox_fem/percent.ogg similarity index 100% rename from sound/vox_fem/percent.ogg rename to sound/announcer/vox_fem/percent.ogg diff --git a/sound/vox_fem/perfect.ogg b/sound/announcer/vox_fem/perfect.ogg similarity index 100% rename from sound/vox_fem/perfect.ogg rename to sound/announcer/vox_fem/perfect.ogg diff --git a/sound/vox_fem/perhaps.ogg b/sound/announcer/vox_fem/perhaps.ogg similarity index 100% rename from sound/vox_fem/perhaps.ogg rename to sound/announcer/vox_fem/perhaps.ogg diff --git a/sound/vox_fem/perimeter.ogg b/sound/announcer/vox_fem/perimeter.ogg similarity index 100% rename from sound/vox_fem/perimeter.ogg rename to sound/announcer/vox_fem/perimeter.ogg diff --git a/sound/vox_fem/permitted.ogg b/sound/announcer/vox_fem/permitted.ogg similarity index 100% rename from sound/vox_fem/permitted.ogg rename to sound/announcer/vox_fem/permitted.ogg diff --git a/sound/vox_fem/personal.ogg b/sound/announcer/vox_fem/personal.ogg similarity index 100% rename from sound/vox_fem/personal.ogg rename to sound/announcer/vox_fem/personal.ogg diff --git a/sound/vox_fem/personnel.ogg b/sound/announcer/vox_fem/personnel.ogg similarity index 100% rename from sound/vox_fem/personnel.ogg rename to sound/announcer/vox_fem/personnel.ogg diff --git a/sound/vox_fem/pipe.ogg b/sound/announcer/vox_fem/pipe.ogg similarity index 100% rename from sound/vox_fem/pipe.ogg rename to sound/announcer/vox_fem/pipe.ogg diff --git a/sound/vox_fem/piping.ogg b/sound/announcer/vox_fem/piping.ogg similarity index 100% rename from sound/vox_fem/piping.ogg rename to sound/announcer/vox_fem/piping.ogg diff --git a/sound/vox_fem/piss.ogg b/sound/announcer/vox_fem/piss.ogg similarity index 100% rename from sound/vox_fem/piss.ogg rename to sound/announcer/vox_fem/piss.ogg diff --git a/sound/vox_fem/plant.ogg b/sound/announcer/vox_fem/plant.ogg similarity index 100% rename from sound/vox_fem/plant.ogg rename to sound/announcer/vox_fem/plant.ogg diff --git a/sound/vox_fem/plasma.ogg b/sound/announcer/vox_fem/plasma.ogg similarity index 100% rename from sound/vox_fem/plasma.ogg rename to sound/announcer/vox_fem/plasma.ogg diff --git a/sound/vox_fem/plasmaman.ogg b/sound/announcer/vox_fem/plasmaman.ogg similarity index 100% rename from sound/vox_fem/plasmaman.ogg rename to sound/announcer/vox_fem/plasmaman.ogg diff --git a/sound/vox_fem/platform.ogg b/sound/announcer/vox_fem/platform.ogg similarity index 100% rename from sound/vox_fem/platform.ogg rename to sound/announcer/vox_fem/platform.ogg diff --git a/sound/vox_fem/plating.ogg b/sound/announcer/vox_fem/plating.ogg similarity index 100% rename from sound/vox_fem/plating.ogg rename to sound/announcer/vox_fem/plating.ogg diff --git a/sound/vox_fem/plausible.ogg b/sound/announcer/vox_fem/plausible.ogg similarity index 100% rename from sound/vox_fem/plausible.ogg rename to sound/announcer/vox_fem/plausible.ogg diff --git a/sound/vox_fem/please.ogg b/sound/announcer/vox_fem/please.ogg similarity index 100% rename from sound/vox_fem/please.ogg rename to sound/announcer/vox_fem/please.ogg diff --git a/sound/vox_fem/pluoxium.ogg b/sound/announcer/vox_fem/pluoxium.ogg similarity index 100% rename from sound/vox_fem/pluoxium.ogg rename to sound/announcer/vox_fem/pluoxium.ogg diff --git a/sound/vox_fem/point.ogg b/sound/announcer/vox_fem/point.ogg similarity index 100% rename from sound/vox_fem/point.ogg rename to sound/announcer/vox_fem/point.ogg diff --git a/sound/vox_fem/port.ogg b/sound/announcer/vox_fem/port.ogg similarity index 100% rename from sound/vox_fem/port.ogg rename to sound/announcer/vox_fem/port.ogg diff --git a/sound/vox_fem/portal.ogg b/sound/announcer/vox_fem/portal.ogg similarity index 100% rename from sound/vox_fem/portal.ogg rename to sound/announcer/vox_fem/portal.ogg diff --git a/sound/vox_fem/portion.ogg b/sound/announcer/vox_fem/portion.ogg similarity index 100% rename from sound/vox_fem/portion.ogg rename to sound/announcer/vox_fem/portion.ogg diff --git a/sound/vox_fem/possible.ogg b/sound/announcer/vox_fem/possible.ogg similarity index 100% rename from sound/vox_fem/possible.ogg rename to sound/announcer/vox_fem/possible.ogg diff --git a/sound/vox_fem/power.ogg b/sound/announcer/vox_fem/power.ogg similarity index 100% rename from sound/vox_fem/power.ogg rename to sound/announcer/vox_fem/power.ogg diff --git a/sound/vox_fem/powered.ogg b/sound/announcer/vox_fem/powered.ogg similarity index 100% rename from sound/vox_fem/powered.ogg rename to sound/announcer/vox_fem/powered.ogg diff --git a/sound/vox_fem/powering.ogg b/sound/announcer/vox_fem/powering.ogg similarity index 100% rename from sound/vox_fem/powering.ogg rename to sound/announcer/vox_fem/powering.ogg diff --git a/sound/vox_fem/premature.ogg b/sound/announcer/vox_fem/premature.ogg similarity index 100% rename from sound/vox_fem/premature.ogg rename to sound/announcer/vox_fem/premature.ogg diff --git a/sound/vox_fem/prematurely.ogg b/sound/announcer/vox_fem/prematurely.ogg similarity index 100% rename from sound/vox_fem/prematurely.ogg rename to sound/announcer/vox_fem/prematurely.ogg diff --git a/sound/vox_fem/presence.ogg b/sound/announcer/vox_fem/presence.ogg similarity index 100% rename from sound/vox_fem/presence.ogg rename to sound/announcer/vox_fem/presence.ogg diff --git a/sound/vox_fem/present.ogg b/sound/announcer/vox_fem/present.ogg similarity index 100% rename from sound/vox_fem/present.ogg rename to sound/announcer/vox_fem/present.ogg diff --git a/sound/vox_fem/presents.ogg b/sound/announcer/vox_fem/presents.ogg similarity index 100% rename from sound/vox_fem/presents.ogg rename to sound/announcer/vox_fem/presents.ogg diff --git a/sound/vox_fem/press.ogg b/sound/announcer/vox_fem/press.ogg similarity index 100% rename from sound/vox_fem/press.ogg rename to sound/announcer/vox_fem/press.ogg diff --git a/sound/vox_fem/pressure.ogg b/sound/announcer/vox_fem/pressure.ogg similarity index 100% rename from sound/vox_fem/pressure.ogg rename to sound/announcer/vox_fem/pressure.ogg diff --git a/sound/vox_fem/primary.ogg b/sound/announcer/vox_fem/primary.ogg similarity index 100% rename from sound/vox_fem/primary.ogg rename to sound/announcer/vox_fem/primary.ogg diff --git a/sound/vox_fem/priority.ogg b/sound/announcer/vox_fem/priority.ogg similarity index 100% rename from sound/vox_fem/priority.ogg rename to sound/announcer/vox_fem/priority.ogg diff --git a/sound/vox_fem/prison.ogg b/sound/announcer/vox_fem/prison.ogg similarity index 100% rename from sound/vox_fem/prison.ogg rename to sound/announcer/vox_fem/prison.ogg diff --git a/sound/vox_fem/prisoner.ogg b/sound/announcer/vox_fem/prisoner.ogg similarity index 100% rename from sound/vox_fem/prisoner.ogg rename to sound/announcer/vox_fem/prisoner.ogg diff --git a/sound/vox_fem/proceed.ogg b/sound/announcer/vox_fem/proceed.ogg similarity index 100% rename from sound/vox_fem/proceed.ogg rename to sound/announcer/vox_fem/proceed.ogg diff --git a/sound/vox_fem/processing.ogg b/sound/announcer/vox_fem/processing.ogg similarity index 100% rename from sound/vox_fem/processing.ogg rename to sound/announcer/vox_fem/processing.ogg diff --git a/sound/vox_fem/progress.ogg b/sound/announcer/vox_fem/progress.ogg similarity index 100% rename from sound/vox_fem/progress.ogg rename to sound/announcer/vox_fem/progress.ogg diff --git a/sound/vox_fem/projectile.ogg b/sound/announcer/vox_fem/projectile.ogg similarity index 100% rename from sound/vox_fem/projectile.ogg rename to sound/announcer/vox_fem/projectile.ogg diff --git a/sound/vox_fem/proper.ogg b/sound/announcer/vox_fem/proper.ogg similarity index 100% rename from sound/vox_fem/proper.ogg rename to sound/announcer/vox_fem/proper.ogg diff --git a/sound/vox_fem/propulsion.ogg b/sound/announcer/vox_fem/propulsion.ogg similarity index 100% rename from sound/vox_fem/propulsion.ogg rename to sound/announcer/vox_fem/propulsion.ogg diff --git a/sound/vox_fem/prosecute.ogg b/sound/announcer/vox_fem/prosecute.ogg similarity index 100% rename from sound/vox_fem/prosecute.ogg rename to sound/announcer/vox_fem/prosecute.ogg diff --git a/sound/vox_fem/protect.ogg b/sound/announcer/vox_fem/protect.ogg similarity index 100% rename from sound/vox_fem/protect.ogg rename to sound/announcer/vox_fem/protect.ogg diff --git a/sound/vox_fem/protected.ogg b/sound/announcer/vox_fem/protected.ogg similarity index 100% rename from sound/vox_fem/protected.ogg rename to sound/announcer/vox_fem/protected.ogg diff --git a/sound/vox_fem/protection.ogg b/sound/announcer/vox_fem/protection.ogg similarity index 100% rename from sound/vox_fem/protection.ogg rename to sound/announcer/vox_fem/protection.ogg diff --git a/sound/vox_fem/protective.ogg b/sound/announcer/vox_fem/protective.ogg similarity index 100% rename from sound/vox_fem/protective.ogg rename to sound/announcer/vox_fem/protective.ogg diff --git a/sound/vox_fem/proto-nitrate.ogg b/sound/announcer/vox_fem/proto-nitrate.ogg similarity index 100% rename from sound/vox_fem/proto-nitrate.ogg rename to sound/announcer/vox_fem/proto-nitrate.ogg diff --git a/sound/vox_fem/pull.ogg b/sound/announcer/vox_fem/pull.ogg similarity index 100% rename from sound/vox_fem/pull.ogg rename to sound/announcer/vox_fem/pull.ogg diff --git a/sound/vox_fem/pulled.ogg b/sound/announcer/vox_fem/pulled.ogg similarity index 100% rename from sound/vox_fem/pulled.ogg rename to sound/announcer/vox_fem/pulled.ogg diff --git a/sound/vox_fem/pulling.ogg b/sound/announcer/vox_fem/pulling.ogg similarity index 100% rename from sound/vox_fem/pulling.ogg rename to sound/announcer/vox_fem/pulling.ogg diff --git a/sound/vox_fem/pump.ogg b/sound/announcer/vox_fem/pump.ogg similarity index 100% rename from sound/vox_fem/pump.ogg rename to sound/announcer/vox_fem/pump.ogg diff --git a/sound/vox_fem/pumps.ogg b/sound/announcer/vox_fem/pumps.ogg similarity index 100% rename from sound/vox_fem/pumps.ogg rename to sound/announcer/vox_fem/pumps.ogg diff --git a/sound/vox_fem/push.ogg b/sound/announcer/vox_fem/push.ogg similarity index 100% rename from sound/vox_fem/push.ogg rename to sound/announcer/vox_fem/push.ogg diff --git a/sound/vox_fem/put.ogg b/sound/announcer/vox_fem/put.ogg similarity index 100% rename from sound/vox_fem/put.ogg rename to sound/announcer/vox_fem/put.ogg diff --git a/sound/vox_fem/q.ogg b/sound/announcer/vox_fem/q.ogg similarity index 100% rename from sound/vox_fem/q.ogg rename to sound/announcer/vox_fem/q.ogg diff --git a/sound/vox_fem/quantum.ogg b/sound/announcer/vox_fem/quantum.ogg similarity index 100% rename from sound/vox_fem/quantum.ogg rename to sound/announcer/vox_fem/quantum.ogg diff --git a/sound/vox_fem/quarantine.ogg b/sound/announcer/vox_fem/quarantine.ogg similarity index 100% rename from sound/vox_fem/quarantine.ogg rename to sound/announcer/vox_fem/quarantine.ogg diff --git a/sound/vox_fem/quartermaster.ogg b/sound/announcer/vox_fem/quartermaster.ogg similarity index 100% rename from sound/vox_fem/quartermaster.ogg rename to sound/announcer/vox_fem/quartermaster.ogg diff --git a/sound/vox_fem/quebec.ogg b/sound/announcer/vox_fem/quebec.ogg similarity index 100% rename from sound/vox_fem/quebec.ogg rename to sound/announcer/vox_fem/quebec.ogg diff --git a/sound/vox_fem/queen.ogg b/sound/announcer/vox_fem/queen.ogg similarity index 100% rename from sound/vox_fem/queen.ogg rename to sound/announcer/vox_fem/queen.ogg diff --git a/sound/vox_fem/question.ogg b/sound/announcer/vox_fem/question.ogg similarity index 100% rename from sound/vox_fem/question.ogg rename to sound/announcer/vox_fem/question.ogg diff --git a/sound/vox_fem/questionable.ogg b/sound/announcer/vox_fem/questionable.ogg similarity index 100% rename from sound/vox_fem/questionable.ogg rename to sound/announcer/vox_fem/questionable.ogg diff --git a/sound/vox_fem/questioning.ogg b/sound/announcer/vox_fem/questioning.ogg similarity index 100% rename from sound/vox_fem/questioning.ogg rename to sound/announcer/vox_fem/questioning.ogg diff --git a/sound/vox_fem/quick.ogg b/sound/announcer/vox_fem/quick.ogg similarity index 100% rename from sound/vox_fem/quick.ogg rename to sound/announcer/vox_fem/quick.ogg diff --git a/sound/vox_fem/quit.ogg b/sound/announcer/vox_fem/quit.ogg similarity index 100% rename from sound/vox_fem/quit.ogg rename to sound/announcer/vox_fem/quit.ogg diff --git a/sound/vox_fem/r.ogg b/sound/announcer/vox_fem/r.ogg similarity index 100% rename from sound/vox_fem/r.ogg rename to sound/announcer/vox_fem/r.ogg diff --git a/sound/vox_fem/radiation.ogg b/sound/announcer/vox_fem/radiation.ogg similarity index 100% rename from sound/vox_fem/radiation.ogg rename to sound/announcer/vox_fem/radiation.ogg diff --git a/sound/vox_fem/radioactive.ogg b/sound/announcer/vox_fem/radioactive.ogg similarity index 100% rename from sound/vox_fem/radioactive.ogg rename to sound/announcer/vox_fem/radioactive.ogg diff --git a/sound/vox_fem/rads.ogg b/sound/announcer/vox_fem/rads.ogg similarity index 100% rename from sound/vox_fem/rads.ogg rename to sound/announcer/vox_fem/rads.ogg diff --git a/sound/vox_fem/raider.ogg b/sound/announcer/vox_fem/raider.ogg similarity index 100% rename from sound/vox_fem/raider.ogg rename to sound/announcer/vox_fem/raider.ogg diff --git a/sound/vox_fem/raiders.ogg b/sound/announcer/vox_fem/raiders.ogg similarity index 100% rename from sound/vox_fem/raiders.ogg rename to sound/announcer/vox_fem/raiders.ogg diff --git a/sound/vox_fem/rapid.ogg b/sound/announcer/vox_fem/rapid.ogg similarity index 100% rename from sound/vox_fem/rapid.ogg rename to sound/announcer/vox_fem/rapid.ogg diff --git a/sound/vox_fem/reach.ogg b/sound/announcer/vox_fem/reach.ogg similarity index 100% rename from sound/vox_fem/reach.ogg rename to sound/announcer/vox_fem/reach.ogg diff --git a/sound/vox_fem/reached.ogg b/sound/announcer/vox_fem/reached.ogg similarity index 100% rename from sound/vox_fem/reached.ogg rename to sound/announcer/vox_fem/reached.ogg diff --git a/sound/vox_fem/reactor.ogg b/sound/announcer/vox_fem/reactor.ogg similarity index 100% rename from sound/vox_fem/reactor.ogg rename to sound/announcer/vox_fem/reactor.ogg diff --git a/sound/vox_fem/red.ogg b/sound/announcer/vox_fem/red.ogg similarity index 100% rename from sound/vox_fem/red.ogg rename to sound/announcer/vox_fem/red.ogg diff --git a/sound/vox_fem/relay.ogg b/sound/announcer/vox_fem/relay.ogg similarity index 100% rename from sound/vox_fem/relay.ogg rename to sound/announcer/vox_fem/relay.ogg diff --git a/sound/vox_fem/release.ogg b/sound/announcer/vox_fem/release.ogg similarity index 100% rename from sound/vox_fem/release.ogg rename to sound/announcer/vox_fem/release.ogg diff --git a/sound/vox_fem/released.ogg b/sound/announcer/vox_fem/released.ogg similarity index 100% rename from sound/vox_fem/released.ogg rename to sound/announcer/vox_fem/released.ogg diff --git a/sound/vox_fem/releasing.ogg b/sound/announcer/vox_fem/releasing.ogg similarity index 100% rename from sound/vox_fem/releasing.ogg rename to sound/announcer/vox_fem/releasing.ogg diff --git a/sound/vox_fem/remaining.ogg b/sound/announcer/vox_fem/remaining.ogg similarity index 100% rename from sound/vox_fem/remaining.ogg rename to sound/announcer/vox_fem/remaining.ogg diff --git a/sound/vox_fem/removal.ogg b/sound/announcer/vox_fem/removal.ogg similarity index 100% rename from sound/vox_fem/removal.ogg rename to sound/announcer/vox_fem/removal.ogg diff --git a/sound/vox_fem/remove.ogg b/sound/announcer/vox_fem/remove.ogg similarity index 100% rename from sound/vox_fem/remove.ogg rename to sound/announcer/vox_fem/remove.ogg diff --git a/sound/vox_fem/removed.ogg b/sound/announcer/vox_fem/removed.ogg similarity index 100% rename from sound/vox_fem/removed.ogg rename to sound/announcer/vox_fem/removed.ogg diff --git a/sound/vox_fem/removing.ogg b/sound/announcer/vox_fem/removing.ogg similarity index 100% rename from sound/vox_fem/removing.ogg rename to sound/announcer/vox_fem/removing.ogg diff --git a/sound/vox_fem/renegade.ogg b/sound/announcer/vox_fem/renegade.ogg similarity index 100% rename from sound/vox_fem/renegade.ogg rename to sound/announcer/vox_fem/renegade.ogg diff --git a/sound/vox_fem/repair.ogg b/sound/announcer/vox_fem/repair.ogg similarity index 100% rename from sound/vox_fem/repair.ogg rename to sound/announcer/vox_fem/repair.ogg diff --git a/sound/vox_fem/report.ogg b/sound/announcer/vox_fem/report.ogg similarity index 100% rename from sound/vox_fem/report.ogg rename to sound/announcer/vox_fem/report.ogg diff --git a/sound/vox_fem/reports.ogg b/sound/announcer/vox_fem/reports.ogg similarity index 100% rename from sound/vox_fem/reports.ogg rename to sound/announcer/vox_fem/reports.ogg diff --git a/sound/vox_fem/request.ogg b/sound/announcer/vox_fem/request.ogg similarity index 100% rename from sound/vox_fem/request.ogg rename to sound/announcer/vox_fem/request.ogg diff --git a/sound/vox_fem/requested.ogg b/sound/announcer/vox_fem/requested.ogg similarity index 100% rename from sound/vox_fem/requested.ogg rename to sound/announcer/vox_fem/requested.ogg diff --git a/sound/vox_fem/requesting.ogg b/sound/announcer/vox_fem/requesting.ogg similarity index 100% rename from sound/vox_fem/requesting.ogg rename to sound/announcer/vox_fem/requesting.ogg diff --git a/sound/vox_fem/require.ogg b/sound/announcer/vox_fem/require.ogg similarity index 100% rename from sound/vox_fem/require.ogg rename to sound/announcer/vox_fem/require.ogg diff --git a/sound/vox_fem/required.ogg b/sound/announcer/vox_fem/required.ogg similarity index 100% rename from sound/vox_fem/required.ogg rename to sound/announcer/vox_fem/required.ogg diff --git a/sound/vox_fem/research.ogg b/sound/announcer/vox_fem/research.ogg similarity index 100% rename from sound/vox_fem/research.ogg rename to sound/announcer/vox_fem/research.ogg diff --git a/sound/vox_fem/resevoir.ogg b/sound/announcer/vox_fem/resevoir.ogg similarity index 100% rename from sound/vox_fem/resevoir.ogg rename to sound/announcer/vox_fem/resevoir.ogg diff --git a/sound/vox_fem/resistance.ogg b/sound/announcer/vox_fem/resistance.ogg similarity index 100% rename from sound/vox_fem/resistance.ogg rename to sound/announcer/vox_fem/resistance.ogg diff --git a/sound/vox_fem/resistant.ogg b/sound/announcer/vox_fem/resistant.ogg similarity index 100% rename from sound/vox_fem/resistant.ogg rename to sound/announcer/vox_fem/resistant.ogg diff --git a/sound/vox_fem/resisting.ogg b/sound/announcer/vox_fem/resisting.ogg similarity index 100% rename from sound/vox_fem/resisting.ogg rename to sound/announcer/vox_fem/resisting.ogg diff --git a/sound/vox_fem/resonance.ogg b/sound/announcer/vox_fem/resonance.ogg similarity index 100% rename from sound/vox_fem/resonance.ogg rename to sound/announcer/vox_fem/resonance.ogg diff --git a/sound/vox_fem/rest.ogg b/sound/announcer/vox_fem/rest.ogg similarity index 100% rename from sound/vox_fem/rest.ogg rename to sound/announcer/vox_fem/rest.ogg diff --git a/sound/vox_fem/restoration.ogg b/sound/announcer/vox_fem/restoration.ogg similarity index 100% rename from sound/vox_fem/restoration.ogg rename to sound/announcer/vox_fem/restoration.ogg diff --git a/sound/vox_fem/revolution.ogg b/sound/announcer/vox_fem/revolution.ogg similarity index 100% rename from sound/vox_fem/revolution.ogg rename to sound/announcer/vox_fem/revolution.ogg diff --git a/sound/vox_fem/revolutionary.ogg b/sound/announcer/vox_fem/revolutionary.ogg similarity index 100% rename from sound/vox_fem/revolutionary.ogg rename to sound/announcer/vox_fem/revolutionary.ogg diff --git a/sound/vox_fem/right.ogg b/sound/announcer/vox_fem/right.ogg similarity index 100% rename from sound/vox_fem/right.ogg rename to sound/announcer/vox_fem/right.ogg diff --git a/sound/vox_fem/riot.ogg b/sound/announcer/vox_fem/riot.ogg similarity index 100% rename from sound/vox_fem/riot.ogg rename to sound/announcer/vox_fem/riot.ogg diff --git a/sound/vox_fem/roboticist.ogg b/sound/announcer/vox_fem/roboticist.ogg similarity index 100% rename from sound/vox_fem/roboticist.ogg rename to sound/announcer/vox_fem/roboticist.ogg diff --git a/sound/vox_fem/rocket.ogg b/sound/announcer/vox_fem/rocket.ogg similarity index 100% rename from sound/vox_fem/rocket.ogg rename to sound/announcer/vox_fem/rocket.ogg diff --git a/sound/vox_fem/roger.ogg b/sound/announcer/vox_fem/roger.ogg similarity index 100% rename from sound/vox_fem/roger.ogg rename to sound/announcer/vox_fem/roger.ogg diff --git a/sound/vox_fem/rogue.ogg b/sound/announcer/vox_fem/rogue.ogg similarity index 100% rename from sound/vox_fem/rogue.ogg rename to sound/announcer/vox_fem/rogue.ogg diff --git a/sound/vox_fem/romeo.ogg b/sound/announcer/vox_fem/romeo.ogg similarity index 100% rename from sound/vox_fem/romeo.ogg rename to sound/announcer/vox_fem/romeo.ogg diff --git a/sound/vox_fem/room.ogg b/sound/announcer/vox_fem/room.ogg similarity index 100% rename from sound/vox_fem/room.ogg rename to sound/announcer/vox_fem/room.ogg diff --git a/sound/vox_fem/round.ogg b/sound/announcer/vox_fem/round.ogg similarity index 100% rename from sound/vox_fem/round.ogg rename to sound/announcer/vox_fem/round.ogg diff --git a/sound/vox_fem/run.ogg b/sound/announcer/vox_fem/run.ogg similarity index 100% rename from sound/vox_fem/run.ogg rename to sound/announcer/vox_fem/run.ogg diff --git a/sound/vox_fem/rune.ogg b/sound/announcer/vox_fem/rune.ogg similarity index 100% rename from sound/vox_fem/rune.ogg rename to sound/announcer/vox_fem/rune.ogg diff --git a/sound/vox_fem/runtime.ogg b/sound/announcer/vox_fem/runtime.ogg similarity index 100% rename from sound/vox_fem/runtime.ogg rename to sound/announcer/vox_fem/runtime.ogg diff --git a/sound/vox_fem/s.ogg b/sound/announcer/vox_fem/s.ogg similarity index 100% rename from sound/vox_fem/s.ogg rename to sound/announcer/vox_fem/s.ogg diff --git a/sound/vox_fem/sabotage.ogg b/sound/announcer/vox_fem/sabotage.ogg similarity index 100% rename from sound/vox_fem/sabotage.ogg rename to sound/announcer/vox_fem/sabotage.ogg diff --git a/sound/vox_fem/sabotaged.ogg b/sound/announcer/vox_fem/sabotaged.ogg similarity index 100% rename from sound/vox_fem/sabotaged.ogg rename to sound/announcer/vox_fem/sabotaged.ogg diff --git a/sound/vox_fem/sabotaging.ogg b/sound/announcer/vox_fem/sabotaging.ogg similarity index 100% rename from sound/vox_fem/sabotaging.ogg rename to sound/announcer/vox_fem/sabotaging.ogg diff --git a/sound/vox_fem/safe.ogg b/sound/announcer/vox_fem/safe.ogg similarity index 100% rename from sound/vox_fem/safe.ogg rename to sound/announcer/vox_fem/safe.ogg diff --git a/sound/vox_fem/safety.ogg b/sound/announcer/vox_fem/safety.ogg similarity index 100% rename from sound/vox_fem/safety.ogg rename to sound/announcer/vox_fem/safety.ogg diff --git a/sound/vox_fem/sairhorn.ogg b/sound/announcer/vox_fem/sairhorn.ogg similarity index 100% rename from sound/vox_fem/sairhorn.ogg rename to sound/announcer/vox_fem/sairhorn.ogg diff --git a/sound/vox_fem/same.ogg b/sound/announcer/vox_fem/same.ogg similarity index 100% rename from sound/vox_fem/same.ogg rename to sound/announcer/vox_fem/same.ogg diff --git a/sound/vox_fem/sarah.ogg b/sound/announcer/vox_fem/sarah.ogg similarity index 100% rename from sound/vox_fem/sarah.ogg rename to sound/announcer/vox_fem/sarah.ogg diff --git a/sound/vox_fem/sargeant.ogg b/sound/announcer/vox_fem/sargeant.ogg similarity index 100% rename from sound/vox_fem/sargeant.ogg rename to sound/announcer/vox_fem/sargeant.ogg diff --git a/sound/vox_fem/satellite.ogg b/sound/announcer/vox_fem/satellite.ogg similarity index 100% rename from sound/vox_fem/satellite.ogg rename to sound/announcer/vox_fem/satellite.ogg diff --git a/sound/vox_fem/save.ogg b/sound/announcer/vox_fem/save.ogg similarity index 100% rename from sound/vox_fem/save.ogg rename to sound/announcer/vox_fem/save.ogg diff --git a/sound/vox_fem/saw.ogg b/sound/announcer/vox_fem/saw.ogg similarity index 100% rename from sound/vox_fem/saw.ogg rename to sound/announcer/vox_fem/saw.ogg diff --git a/sound/vox_fem/scan.ogg b/sound/announcer/vox_fem/scan.ogg similarity index 100% rename from sound/vox_fem/scan.ogg rename to sound/announcer/vox_fem/scan.ogg diff --git a/sound/vox_fem/scanned.ogg b/sound/announcer/vox_fem/scanned.ogg similarity index 100% rename from sound/vox_fem/scanned.ogg rename to sound/announcer/vox_fem/scanned.ogg diff --git a/sound/vox_fem/scanner.ogg b/sound/announcer/vox_fem/scanner.ogg similarity index 100% rename from sound/vox_fem/scanner.ogg rename to sound/announcer/vox_fem/scanner.ogg diff --git a/sound/vox_fem/scanners.ogg b/sound/announcer/vox_fem/scanners.ogg similarity index 100% rename from sound/vox_fem/scanners.ogg rename to sound/announcer/vox_fem/scanners.ogg diff --git a/sound/vox_fem/scanning.ogg b/sound/announcer/vox_fem/scanning.ogg similarity index 100% rename from sound/vox_fem/scanning.ogg rename to sound/announcer/vox_fem/scanning.ogg diff --git a/sound/vox_fem/scensor.ogg b/sound/announcer/vox_fem/scensor.ogg similarity index 100% rename from sound/vox_fem/scensor.ogg rename to sound/announcer/vox_fem/scensor.ogg diff --git a/sound/vox_fem/science.ogg b/sound/announcer/vox_fem/science.ogg similarity index 100% rename from sound/vox_fem/science.ogg rename to sound/announcer/vox_fem/science.ogg diff --git a/sound/vox_fem/scientist.ogg b/sound/announcer/vox_fem/scientist.ogg similarity index 100% rename from sound/vox_fem/scientist.ogg rename to sound/announcer/vox_fem/scientist.ogg diff --git a/sound/vox_fem/scream.ogg b/sound/announcer/vox_fem/scream.ogg similarity index 100% rename from sound/vox_fem/scream.ogg rename to sound/announcer/vox_fem/scream.ogg diff --git a/sound/vox_fem/screen.ogg b/sound/announcer/vox_fem/screen.ogg similarity index 100% rename from sound/vox_fem/screen.ogg rename to sound/announcer/vox_fem/screen.ogg diff --git a/sound/vox_fem/screw.ogg b/sound/announcer/vox_fem/screw.ogg similarity index 100% rename from sound/vox_fem/screw.ogg rename to sound/announcer/vox_fem/screw.ogg diff --git a/sound/vox_fem/search.ogg b/sound/announcer/vox_fem/search.ogg similarity index 100% rename from sound/vox_fem/search.ogg rename to sound/announcer/vox_fem/search.ogg diff --git a/sound/vox_fem/second.ogg b/sound/announcer/vox_fem/second.ogg similarity index 100% rename from sound/vox_fem/second.ogg rename to sound/announcer/vox_fem/second.ogg diff --git a/sound/vox_fem/secondary.ogg b/sound/announcer/vox_fem/secondary.ogg similarity index 100% rename from sound/vox_fem/secondary.ogg rename to sound/announcer/vox_fem/secondary.ogg diff --git a/sound/vox_fem/seconds.ogg b/sound/announcer/vox_fem/seconds.ogg similarity index 100% rename from sound/vox_fem/seconds.ogg rename to sound/announcer/vox_fem/seconds.ogg diff --git a/sound/vox_fem/section.ogg b/sound/announcer/vox_fem/section.ogg similarity index 100% rename from sound/vox_fem/section.ogg rename to sound/announcer/vox_fem/section.ogg diff --git a/sound/vox_fem/sector.ogg b/sound/announcer/vox_fem/sector.ogg similarity index 100% rename from sound/vox_fem/sector.ogg rename to sound/announcer/vox_fem/sector.ogg diff --git a/sound/vox_fem/secure.ogg b/sound/announcer/vox_fem/secure.ogg similarity index 100% rename from sound/vox_fem/secure.ogg rename to sound/announcer/vox_fem/secure.ogg diff --git a/sound/vox_fem/secured.ogg b/sound/announcer/vox_fem/secured.ogg similarity index 100% rename from sound/vox_fem/secured.ogg rename to sound/announcer/vox_fem/secured.ogg diff --git a/sound/vox_fem/security.ogg b/sound/announcer/vox_fem/security.ogg similarity index 100% rename from sound/vox_fem/security.ogg rename to sound/announcer/vox_fem/security.ogg diff --git a/sound/vox_fem/seen.ogg b/sound/announcer/vox_fem/seen.ogg similarity index 100% rename from sound/vox_fem/seen.ogg rename to sound/announcer/vox_fem/seen.ogg diff --git a/sound/vox_fem/select.ogg b/sound/announcer/vox_fem/select.ogg similarity index 100% rename from sound/vox_fem/select.ogg rename to sound/announcer/vox_fem/select.ogg diff --git a/sound/vox_fem/selected.ogg b/sound/announcer/vox_fem/selected.ogg similarity index 100% rename from sound/vox_fem/selected.ogg rename to sound/announcer/vox_fem/selected.ogg diff --git a/sound/vox_fem/self.ogg b/sound/announcer/vox_fem/self.ogg similarity index 100% rename from sound/vox_fem/self.ogg rename to sound/announcer/vox_fem/self.ogg diff --git a/sound/vox_fem/sensors.ogg b/sound/announcer/vox_fem/sensors.ogg similarity index 100% rename from sound/vox_fem/sensors.ogg rename to sound/announcer/vox_fem/sensors.ogg diff --git a/sound/vox_fem/server.ogg b/sound/announcer/vox_fem/server.ogg similarity index 100% rename from sound/vox_fem/server.ogg rename to sound/announcer/vox_fem/server.ogg diff --git a/sound/vox_fem/service.ogg b/sound/announcer/vox_fem/service.ogg similarity index 100% rename from sound/vox_fem/service.ogg rename to sound/announcer/vox_fem/service.ogg diff --git a/sound/vox_fem/set.ogg b/sound/announcer/vox_fem/set.ogg similarity index 100% rename from sound/vox_fem/set.ogg rename to sound/announcer/vox_fem/set.ogg diff --git a/sound/vox_fem/seven.ogg b/sound/announcer/vox_fem/seven.ogg similarity index 100% rename from sound/vox_fem/seven.ogg rename to sound/announcer/vox_fem/seven.ogg diff --git a/sound/vox_fem/seventeen.ogg b/sound/announcer/vox_fem/seventeen.ogg similarity index 100% rename from sound/vox_fem/seventeen.ogg rename to sound/announcer/vox_fem/seventeen.ogg diff --git a/sound/vox_fem/seventy.ogg b/sound/announcer/vox_fem/seventy.ogg similarity index 100% rename from sound/vox_fem/seventy.ogg rename to sound/announcer/vox_fem/seventy.ogg diff --git a/sound/vox_fem/sever.ogg b/sound/announcer/vox_fem/sever.ogg similarity index 100% rename from sound/vox_fem/sever.ogg rename to sound/announcer/vox_fem/sever.ogg diff --git a/sound/vox_fem/severe.ogg b/sound/announcer/vox_fem/severe.ogg similarity index 100% rename from sound/vox_fem/severe.ogg rename to sound/announcer/vox_fem/severe.ogg diff --git a/sound/vox_fem/severed.ogg b/sound/announcer/vox_fem/severed.ogg similarity index 100% rename from sound/vox_fem/severed.ogg rename to sound/announcer/vox_fem/severed.ogg diff --git a/sound/vox_fem/severing.ogg b/sound/announcer/vox_fem/severing.ogg similarity index 100% rename from sound/vox_fem/severing.ogg rename to sound/announcer/vox_fem/severing.ogg diff --git a/sound/vox_fem/sewage.ogg b/sound/announcer/vox_fem/sewage.ogg similarity index 100% rename from sound/vox_fem/sewage.ogg rename to sound/announcer/vox_fem/sewage.ogg diff --git a/sound/vox_fem/sewer.ogg b/sound/announcer/vox_fem/sewer.ogg similarity index 100% rename from sound/vox_fem/sewer.ogg rename to sound/announcer/vox_fem/sewer.ogg diff --git a/sound/vox_fem/shaft.ogg b/sound/announcer/vox_fem/shaft.ogg similarity index 100% rename from sound/vox_fem/shaft.ogg rename to sound/announcer/vox_fem/shaft.ogg diff --git a/sound/vox_fem/shame.ogg b/sound/announcer/vox_fem/shame.ogg similarity index 100% rename from sound/vox_fem/shame.ogg rename to sound/announcer/vox_fem/shame.ogg diff --git a/sound/vox_fem/shameful.ogg b/sound/announcer/vox_fem/shameful.ogg similarity index 100% rename from sound/vox_fem/shameful.ogg rename to sound/announcer/vox_fem/shameful.ogg diff --git a/sound/vox_fem/shameless.ogg b/sound/announcer/vox_fem/shameless.ogg similarity index 100% rename from sound/vox_fem/shameless.ogg rename to sound/announcer/vox_fem/shameless.ogg diff --git a/sound/vox_fem/shard.ogg b/sound/announcer/vox_fem/shard.ogg similarity index 100% rename from sound/vox_fem/shard.ogg rename to sound/announcer/vox_fem/shard.ogg diff --git a/sound/vox_fem/she.ogg b/sound/announcer/vox_fem/she.ogg similarity index 100% rename from sound/vox_fem/she.ogg rename to sound/announcer/vox_fem/she.ogg diff --git a/sound/vox_fem/shield.ogg b/sound/announcer/vox_fem/shield.ogg similarity index 100% rename from sound/vox_fem/shield.ogg rename to sound/announcer/vox_fem/shield.ogg diff --git a/sound/vox_fem/shift.ogg b/sound/announcer/vox_fem/shift.ogg similarity index 100% rename from sound/vox_fem/shift.ogg rename to sound/announcer/vox_fem/shift.ogg diff --git a/sound/vox_fem/shifts.ogg b/sound/announcer/vox_fem/shifts.ogg similarity index 100% rename from sound/vox_fem/shifts.ogg rename to sound/announcer/vox_fem/shifts.ogg diff --git a/sound/vox_fem/shipment.ogg b/sound/announcer/vox_fem/shipment.ogg similarity index 100% rename from sound/vox_fem/shipment.ogg rename to sound/announcer/vox_fem/shipment.ogg diff --git a/sound/vox_fem/shirt.ogg b/sound/announcer/vox_fem/shirt.ogg similarity index 100% rename from sound/vox_fem/shirt.ogg rename to sound/announcer/vox_fem/shirt.ogg diff --git a/sound/vox_fem/shit.ogg b/sound/announcer/vox_fem/shit.ogg similarity index 100% rename from sound/vox_fem/shit.ogg rename to sound/announcer/vox_fem/shit.ogg diff --git a/sound/vox_fem/shitlord.ogg b/sound/announcer/vox_fem/shitlord.ogg similarity index 100% rename from sound/vox_fem/shitlord.ogg rename to sound/announcer/vox_fem/shitlord.ogg diff --git a/sound/vox_fem/shits.ogg b/sound/announcer/vox_fem/shits.ogg similarity index 100% rename from sound/vox_fem/shits.ogg rename to sound/announcer/vox_fem/shits.ogg diff --git a/sound/vox_fem/shitting.ogg b/sound/announcer/vox_fem/shitting.ogg similarity index 100% rename from sound/vox_fem/shitting.ogg rename to sound/announcer/vox_fem/shitting.ogg diff --git a/sound/vox_fem/shock.ogg b/sound/announcer/vox_fem/shock.ogg similarity index 100% rename from sound/vox_fem/shock.ogg rename to sound/announcer/vox_fem/shock.ogg diff --git a/sound/vox_fem/shonk.ogg b/sound/announcer/vox_fem/shonk.ogg similarity index 100% rename from sound/vox_fem/shonk.ogg rename to sound/announcer/vox_fem/shonk.ogg diff --git a/sound/vox_fem/shoot.ogg b/sound/announcer/vox_fem/shoot.ogg similarity index 100% rename from sound/vox_fem/shoot.ogg rename to sound/announcer/vox_fem/shoot.ogg diff --git a/sound/vox_fem/shower.ogg b/sound/announcer/vox_fem/shower.ogg similarity index 100% rename from sound/vox_fem/shower.ogg rename to sound/announcer/vox_fem/shower.ogg diff --git a/sound/vox_fem/shut.ogg b/sound/announcer/vox_fem/shut.ogg similarity index 100% rename from sound/vox_fem/shut.ogg rename to sound/announcer/vox_fem/shut.ogg diff --git a/sound/vox_fem/shuttle.ogg b/sound/announcer/vox_fem/shuttle.ogg similarity index 100% rename from sound/vox_fem/shuttle.ogg rename to sound/announcer/vox_fem/shuttle.ogg diff --git a/sound/vox_fem/sick.ogg b/sound/announcer/vox_fem/sick.ogg similarity index 100% rename from sound/vox_fem/sick.ogg rename to sound/announcer/vox_fem/sick.ogg diff --git a/sound/vox_fem/side.ogg b/sound/announcer/vox_fem/side.ogg similarity index 100% rename from sound/vox_fem/side.ogg rename to sound/announcer/vox_fem/side.ogg diff --git a/sound/vox_fem/sides.ogg b/sound/announcer/vox_fem/sides.ogg similarity index 100% rename from sound/vox_fem/sides.ogg rename to sound/announcer/vox_fem/sides.ogg diff --git a/sound/vox_fem/sierra.ogg b/sound/announcer/vox_fem/sierra.ogg similarity index 100% rename from sound/vox_fem/sierra.ogg rename to sound/announcer/vox_fem/sierra.ogg diff --git a/sound/vox_fem/sight.ogg b/sound/announcer/vox_fem/sight.ogg similarity index 100% rename from sound/vox_fem/sight.ogg rename to sound/announcer/vox_fem/sight.ogg diff --git a/sound/vox_fem/silicon.ogg b/sound/announcer/vox_fem/silicon.ogg similarity index 100% rename from sound/vox_fem/silicon.ogg rename to sound/announcer/vox_fem/silicon.ogg diff --git a/sound/vox_fem/silo.ogg b/sound/announcer/vox_fem/silo.ogg similarity index 100% rename from sound/vox_fem/silo.ogg rename to sound/announcer/vox_fem/silo.ogg diff --git a/sound/vox_fem/single.ogg b/sound/announcer/vox_fem/single.ogg similarity index 100% rename from sound/vox_fem/single.ogg rename to sound/announcer/vox_fem/single.ogg diff --git a/sound/vox_fem/singularity.ogg b/sound/announcer/vox_fem/singularity.ogg similarity index 100% rename from sound/vox_fem/singularity.ogg rename to sound/announcer/vox_fem/singularity.ogg diff --git a/sound/vox_fem/siphon.ogg b/sound/announcer/vox_fem/siphon.ogg similarity index 100% rename from sound/vox_fem/siphon.ogg rename to sound/announcer/vox_fem/siphon.ogg diff --git a/sound/vox_fem/siphoning.ogg b/sound/announcer/vox_fem/siphoning.ogg similarity index 100% rename from sound/vox_fem/siphoning.ogg rename to sound/announcer/vox_fem/siphoning.ogg diff --git a/sound/vox_fem/six.ogg b/sound/announcer/vox_fem/six.ogg similarity index 100% rename from sound/vox_fem/six.ogg rename to sound/announcer/vox_fem/six.ogg diff --git a/sound/vox_fem/sixteen.ogg b/sound/announcer/vox_fem/sixteen.ogg similarity index 100% rename from sound/vox_fem/sixteen.ogg rename to sound/announcer/vox_fem/sixteen.ogg diff --git a/sound/vox_fem/sixty.ogg b/sound/announcer/vox_fem/sixty.ogg similarity index 100% rename from sound/vox_fem/sixty.ogg rename to sound/announcer/vox_fem/sixty.ogg diff --git a/sound/vox_fem/skeleton.ogg b/sound/announcer/vox_fem/skeleton.ogg similarity index 100% rename from sound/vox_fem/skeleton.ogg rename to sound/announcer/vox_fem/skeleton.ogg diff --git a/sound/vox_fem/slaughter.ogg b/sound/announcer/vox_fem/slaughter.ogg similarity index 100% rename from sound/vox_fem/slaughter.ogg rename to sound/announcer/vox_fem/slaughter.ogg diff --git a/sound/vox_fem/slime.ogg b/sound/announcer/vox_fem/slime.ogg similarity index 100% rename from sound/vox_fem/slime.ogg rename to sound/announcer/vox_fem/slime.ogg diff --git a/sound/vox_fem/slip.ogg b/sound/announcer/vox_fem/slip.ogg similarity index 100% rename from sound/vox_fem/slip.ogg rename to sound/announcer/vox_fem/slip.ogg diff --git a/sound/vox_fem/slippery.ogg b/sound/announcer/vox_fem/slippery.ogg similarity index 100% rename from sound/vox_fem/slippery.ogg rename to sound/announcer/vox_fem/slippery.ogg diff --git a/sound/vox_fem/slow.ogg b/sound/announcer/vox_fem/slow.ogg similarity index 100% rename from sound/vox_fem/slow.ogg rename to sound/announcer/vox_fem/slow.ogg diff --git a/sound/vox_fem/sm.ogg b/sound/announcer/vox_fem/sm.ogg similarity index 100% rename from sound/vox_fem/sm.ogg rename to sound/announcer/vox_fem/sm.ogg diff --git a/sound/vox_fem/small.ogg b/sound/announcer/vox_fem/small.ogg similarity index 100% rename from sound/vox_fem/small.ogg rename to sound/announcer/vox_fem/small.ogg diff --git a/sound/vox_fem/sockmuncher.ogg b/sound/announcer/vox_fem/sockmuncher.ogg similarity index 100% rename from sound/vox_fem/sockmuncher.ogg rename to sound/announcer/vox_fem/sockmuncher.ogg diff --git a/sound/vox_fem/soft.ogg b/sound/announcer/vox_fem/soft.ogg similarity index 100% rename from sound/vox_fem/soft.ogg rename to sound/announcer/vox_fem/soft.ogg diff --git a/sound/vox_fem/solar.ogg b/sound/announcer/vox_fem/solar.ogg similarity index 100% rename from sound/vox_fem/solar.ogg rename to sound/announcer/vox_fem/solar.ogg diff --git a/sound/vox_fem/solars.ogg b/sound/announcer/vox_fem/solars.ogg similarity index 100% rename from sound/vox_fem/solars.ogg rename to sound/announcer/vox_fem/solars.ogg diff --git a/sound/vox_fem/soldier.ogg b/sound/announcer/vox_fem/soldier.ogg similarity index 100% rename from sound/vox_fem/soldier.ogg rename to sound/announcer/vox_fem/soldier.ogg diff --git a/sound/vox_fem/some.ogg b/sound/announcer/vox_fem/some.ogg similarity index 100% rename from sound/vox_fem/some.ogg rename to sound/announcer/vox_fem/some.ogg diff --git a/sound/vox_fem/someone.ogg b/sound/announcer/vox_fem/someone.ogg similarity index 100% rename from sound/vox_fem/someone.ogg rename to sound/announcer/vox_fem/someone.ogg diff --git a/sound/vox_fem/something.ogg b/sound/announcer/vox_fem/something.ogg similarity index 100% rename from sound/vox_fem/something.ogg rename to sound/announcer/vox_fem/something.ogg diff --git a/sound/vox_fem/son.ogg b/sound/announcer/vox_fem/son.ogg similarity index 100% rename from sound/vox_fem/son.ogg rename to sound/announcer/vox_fem/son.ogg diff --git a/sound/vox_fem/sorry.ogg b/sound/announcer/vox_fem/sorry.ogg similarity index 100% rename from sound/vox_fem/sorry.ogg rename to sound/announcer/vox_fem/sorry.ogg diff --git a/sound/vox_fem/source.ogg b/sound/announcer/vox_fem/source.ogg similarity index 100% rename from sound/vox_fem/source.ogg rename to sound/announcer/vox_fem/source.ogg diff --git a/sound/vox_fem/south.ogg b/sound/announcer/vox_fem/south.ogg similarity index 100% rename from sound/vox_fem/south.ogg rename to sound/announcer/vox_fem/south.ogg diff --git a/sound/vox_fem/southeast.ogg b/sound/announcer/vox_fem/southeast.ogg similarity index 100% rename from sound/vox_fem/southeast.ogg rename to sound/announcer/vox_fem/southeast.ogg diff --git a/sound/vox_fem/southwest.ogg b/sound/announcer/vox_fem/southwest.ogg similarity index 100% rename from sound/vox_fem/southwest.ogg rename to sound/announcer/vox_fem/southwest.ogg diff --git a/sound/vox_fem/space.ogg b/sound/announcer/vox_fem/space.ogg similarity index 100% rename from sound/vox_fem/space.ogg rename to sound/announcer/vox_fem/space.ogg diff --git a/sound/vox_fem/special.ogg b/sound/announcer/vox_fem/special.ogg similarity index 100% rename from sound/vox_fem/special.ogg rename to sound/announcer/vox_fem/special.ogg diff --git a/sound/vox_fem/spew.ogg b/sound/announcer/vox_fem/spew.ogg similarity index 100% rename from sound/vox_fem/spew.ogg rename to sound/announcer/vox_fem/spew.ogg diff --git a/sound/vox_fem/squad.ogg b/sound/announcer/vox_fem/squad.ogg similarity index 100% rename from sound/vox_fem/squad.ogg rename to sound/announcer/vox_fem/squad.ogg diff --git a/sound/vox_fem/square.ogg b/sound/announcer/vox_fem/square.ogg similarity index 100% rename from sound/vox_fem/square.ogg rename to sound/announcer/vox_fem/square.ogg diff --git a/sound/vox_fem/ss13.ogg b/sound/announcer/vox_fem/ss13.ogg similarity index 100% rename from sound/vox_fem/ss13.ogg rename to sound/announcer/vox_fem/ss13.ogg diff --git a/sound/vox_fem/stairway.ogg b/sound/announcer/vox_fem/stairway.ogg similarity index 100% rename from sound/vox_fem/stairway.ogg rename to sound/announcer/vox_fem/stairway.ogg diff --git a/sound/vox_fem/starboard.ogg b/sound/announcer/vox_fem/starboard.ogg similarity index 100% rename from sound/vox_fem/starboard.ogg rename to sound/announcer/vox_fem/starboard.ogg diff --git a/sound/vox_fem/start.ogg b/sound/announcer/vox_fem/start.ogg similarity index 100% rename from sound/vox_fem/start.ogg rename to sound/announcer/vox_fem/start.ogg diff --git a/sound/vox_fem/starts.ogg b/sound/announcer/vox_fem/starts.ogg similarity index 100% rename from sound/vox_fem/starts.ogg rename to sound/announcer/vox_fem/starts.ogg diff --git a/sound/vox_fem/station.ogg b/sound/announcer/vox_fem/station.ogg similarity index 100% rename from sound/vox_fem/station.ogg rename to sound/announcer/vox_fem/station.ogg diff --git a/sound/vox_fem/stations.ogg b/sound/announcer/vox_fem/stations.ogg similarity index 100% rename from sound/vox_fem/stations.ogg rename to sound/announcer/vox_fem/stations.ogg diff --git a/sound/vox_fem/stationwide.ogg b/sound/announcer/vox_fem/stationwide.ogg similarity index 100% rename from sound/vox_fem/stationwide.ogg rename to sound/announcer/vox_fem/stationwide.ogg diff --git a/sound/vox_fem/status.ogg b/sound/announcer/vox_fem/status.ogg similarity index 100% rename from sound/vox_fem/status.ogg rename to sound/announcer/vox_fem/status.ogg diff --git a/sound/vox_fem/stay.ogg b/sound/announcer/vox_fem/stay.ogg similarity index 100% rename from sound/vox_fem/stay.ogg rename to sound/announcer/vox_fem/stay.ogg diff --git a/sound/vox_fem/sterile.ogg b/sound/announcer/vox_fem/sterile.ogg similarity index 100% rename from sound/vox_fem/sterile.ogg rename to sound/announcer/vox_fem/sterile.ogg diff --git a/sound/vox_fem/sterilization.ogg b/sound/announcer/vox_fem/sterilization.ogg similarity index 100% rename from sound/vox_fem/sterilization.ogg rename to sound/announcer/vox_fem/sterilization.ogg diff --git a/sound/vox_fem/stop.ogg b/sound/announcer/vox_fem/stop.ogg similarity index 100% rename from sound/vox_fem/stop.ogg rename to sound/announcer/vox_fem/stop.ogg diff --git a/sound/vox_fem/storage.ogg b/sound/announcer/vox_fem/storage.ogg similarity index 100% rename from sound/vox_fem/storage.ogg rename to sound/announcer/vox_fem/storage.ogg diff --git a/sound/vox_fem/strong.ogg b/sound/announcer/vox_fem/strong.ogg similarity index 100% rename from sound/vox_fem/strong.ogg rename to sound/announcer/vox_fem/strong.ogg diff --git a/sound/vox_fem/stuck.ogg b/sound/announcer/vox_fem/stuck.ogg similarity index 100% rename from sound/vox_fem/stuck.ogg rename to sound/announcer/vox_fem/stuck.ogg diff --git a/sound/vox_fem/sub.ogg b/sound/announcer/vox_fem/sub.ogg similarity index 100% rename from sound/vox_fem/sub.ogg rename to sound/announcer/vox_fem/sub.ogg diff --git a/sound/vox_fem/subsurface.ogg b/sound/announcer/vox_fem/subsurface.ogg similarity index 100% rename from sound/vox_fem/subsurface.ogg rename to sound/announcer/vox_fem/subsurface.ogg diff --git a/sound/vox_fem/such.ogg b/sound/announcer/vox_fem/such.ogg similarity index 100% rename from sound/vox_fem/such.ogg rename to sound/announcer/vox_fem/such.ogg diff --git a/sound/vox_fem/sudden.ogg b/sound/announcer/vox_fem/sudden.ogg similarity index 100% rename from sound/vox_fem/sudden.ogg rename to sound/announcer/vox_fem/sudden.ogg diff --git a/sound/vox_fem/suffer.ogg b/sound/announcer/vox_fem/suffer.ogg similarity index 100% rename from sound/vox_fem/suffer.ogg rename to sound/announcer/vox_fem/suffer.ogg diff --git a/sound/vox_fem/suit.ogg b/sound/announcer/vox_fem/suit.ogg similarity index 100% rename from sound/vox_fem/suit.ogg rename to sound/announcer/vox_fem/suit.ogg diff --git a/sound/vox_fem/suited.ogg b/sound/announcer/vox_fem/suited.ogg similarity index 100% rename from sound/vox_fem/suited.ogg rename to sound/announcer/vox_fem/suited.ogg diff --git a/sound/vox_fem/super.ogg b/sound/announcer/vox_fem/super.ogg similarity index 100% rename from sound/vox_fem/super.ogg rename to sound/announcer/vox_fem/super.ogg diff --git a/sound/vox_fem/superconducting.ogg b/sound/announcer/vox_fem/superconducting.ogg similarity index 100% rename from sound/vox_fem/superconducting.ogg rename to sound/announcer/vox_fem/superconducting.ogg diff --git a/sound/vox_fem/supercooled.ogg b/sound/announcer/vox_fem/supercooled.ogg similarity index 100% rename from sound/vox_fem/supercooled.ogg rename to sound/announcer/vox_fem/supercooled.ogg diff --git a/sound/vox_fem/supermatter.ogg b/sound/announcer/vox_fem/supermatter.ogg similarity index 100% rename from sound/vox_fem/supermatter.ogg rename to sound/announcer/vox_fem/supermatter.ogg diff --git a/sound/vox_fem/supply.ogg b/sound/announcer/vox_fem/supply.ogg similarity index 100% rename from sound/vox_fem/supply.ogg rename to sound/announcer/vox_fem/supply.ogg diff --git a/sound/vox_fem/surface.ogg b/sound/announcer/vox_fem/surface.ogg similarity index 100% rename from sound/vox_fem/surface.ogg rename to sound/announcer/vox_fem/surface.ogg diff --git a/sound/vox_fem/surrender.ogg b/sound/announcer/vox_fem/surrender.ogg similarity index 100% rename from sound/vox_fem/surrender.ogg rename to sound/announcer/vox_fem/surrender.ogg diff --git a/sound/vox_fem/surround.ogg b/sound/announcer/vox_fem/surround.ogg similarity index 100% rename from sound/vox_fem/surround.ogg rename to sound/announcer/vox_fem/surround.ogg diff --git a/sound/vox_fem/surrounded.ogg b/sound/announcer/vox_fem/surrounded.ogg similarity index 100% rename from sound/vox_fem/surrounded.ogg rename to sound/announcer/vox_fem/surrounded.ogg diff --git a/sound/vox_fem/sweating.ogg b/sound/announcer/vox_fem/sweating.ogg similarity index 100% rename from sound/vox_fem/sweating.ogg rename to sound/announcer/vox_fem/sweating.ogg diff --git a/sound/vox_fem/swhitenoise.ogg b/sound/announcer/vox_fem/swhitenoise.ogg similarity index 100% rename from sound/vox_fem/swhitenoise.ogg rename to sound/announcer/vox_fem/swhitenoise.ogg diff --git a/sound/vox_fem/switch.ogg b/sound/announcer/vox_fem/switch.ogg similarity index 100% rename from sound/vox_fem/switch.ogg rename to sound/announcer/vox_fem/switch.ogg diff --git a/sound/vox_fem/syndicate.ogg b/sound/announcer/vox_fem/syndicate.ogg similarity index 100% rename from sound/vox_fem/syndicate.ogg rename to sound/announcer/vox_fem/syndicate.ogg diff --git a/sound/vox_fem/system.ogg b/sound/announcer/vox_fem/system.ogg similarity index 100% rename from sound/vox_fem/system.ogg rename to sound/announcer/vox_fem/system.ogg diff --git a/sound/vox_fem/systems.ogg b/sound/announcer/vox_fem/systems.ogg similarity index 100% rename from sound/vox_fem/systems.ogg rename to sound/announcer/vox_fem/systems.ogg diff --git a/sound/vox_fem/t.ogg b/sound/announcer/vox_fem/t.ogg similarity index 100% rename from sound/vox_fem/t.ogg rename to sound/announcer/vox_fem/t.ogg diff --git a/sound/vox_fem/table.ogg b/sound/announcer/vox_fem/table.ogg similarity index 100% rename from sound/vox_fem/table.ogg rename to sound/announcer/vox_fem/table.ogg diff --git a/sound/vox_fem/tactical.ogg b/sound/announcer/vox_fem/tactical.ogg similarity index 100% rename from sound/vox_fem/tactical.ogg rename to sound/announcer/vox_fem/tactical.ogg diff --git a/sound/vox_fem/taildragger.ogg b/sound/announcer/vox_fem/taildragger.ogg similarity index 100% rename from sound/vox_fem/taildragger.ogg rename to sound/announcer/vox_fem/taildragger.ogg diff --git a/sound/vox_fem/take.ogg b/sound/announcer/vox_fem/take.ogg similarity index 100% rename from sound/vox_fem/take.ogg rename to sound/announcer/vox_fem/take.ogg diff --git a/sound/vox_fem/talk.ogg b/sound/announcer/vox_fem/talk.ogg similarity index 100% rename from sound/vox_fem/talk.ogg rename to sound/announcer/vox_fem/talk.ogg diff --git a/sound/vox_fem/tampered.ogg b/sound/announcer/vox_fem/tampered.ogg similarity index 100% rename from sound/vox_fem/tampered.ogg rename to sound/announcer/vox_fem/tampered.ogg diff --git a/sound/vox_fem/tango.ogg b/sound/announcer/vox_fem/tango.ogg similarity index 100% rename from sound/vox_fem/tango.ogg rename to sound/announcer/vox_fem/tango.ogg diff --git a/sound/vox_fem/tank.ogg b/sound/announcer/vox_fem/tank.ogg similarity index 100% rename from sound/vox_fem/tank.ogg rename to sound/announcer/vox_fem/tank.ogg diff --git a/sound/vox_fem/target.ogg b/sound/announcer/vox_fem/target.ogg similarity index 100% rename from sound/vox_fem/target.ogg rename to sound/announcer/vox_fem/target.ogg diff --git a/sound/vox_fem/team.ogg b/sound/announcer/vox_fem/team.ogg similarity index 100% rename from sound/vox_fem/team.ogg rename to sound/announcer/vox_fem/team.ogg diff --git a/sound/vox_fem/tech.ogg b/sound/announcer/vox_fem/tech.ogg similarity index 100% rename from sound/vox_fem/tech.ogg rename to sound/announcer/vox_fem/tech.ogg diff --git a/sound/vox_fem/technician.ogg b/sound/announcer/vox_fem/technician.ogg similarity index 100% rename from sound/vox_fem/technician.ogg rename to sound/announcer/vox_fem/technician.ogg diff --git a/sound/vox_fem/technology.ogg b/sound/announcer/vox_fem/technology.ogg similarity index 100% rename from sound/vox_fem/technology.ogg rename to sound/announcer/vox_fem/technology.ogg diff --git a/sound/vox_fem/teleporter.ogg b/sound/announcer/vox_fem/teleporter.ogg similarity index 100% rename from sound/vox_fem/teleporter.ogg rename to sound/announcer/vox_fem/teleporter.ogg diff --git a/sound/vox_fem/temperature.ogg b/sound/announcer/vox_fem/temperature.ogg similarity index 100% rename from sound/vox_fem/temperature.ogg rename to sound/announcer/vox_fem/temperature.ogg diff --git a/sound/vox_fem/temporal.ogg b/sound/announcer/vox_fem/temporal.ogg similarity index 100% rename from sound/vox_fem/temporal.ogg rename to sound/announcer/vox_fem/temporal.ogg diff --git a/sound/vox_fem/ten.ogg b/sound/announcer/vox_fem/ten.ogg similarity index 100% rename from sound/vox_fem/ten.ogg rename to sound/announcer/vox_fem/ten.ogg diff --git a/sound/vox_fem/terminal.ogg b/sound/announcer/vox_fem/terminal.ogg similarity index 100% rename from sound/vox_fem/terminal.ogg rename to sound/announcer/vox_fem/terminal.ogg diff --git a/sound/vox_fem/terminate.ogg b/sound/announcer/vox_fem/terminate.ogg similarity index 100% rename from sound/vox_fem/terminate.ogg rename to sound/announcer/vox_fem/terminate.ogg diff --git a/sound/vox_fem/terminated.ogg b/sound/announcer/vox_fem/terminated.ogg similarity index 100% rename from sound/vox_fem/terminated.ogg rename to sound/announcer/vox_fem/terminated.ogg diff --git a/sound/vox_fem/termination.ogg b/sound/announcer/vox_fem/termination.ogg similarity index 100% rename from sound/vox_fem/termination.ogg rename to sound/announcer/vox_fem/termination.ogg diff --git a/sound/vox_fem/tesla.ogg b/sound/announcer/vox_fem/tesla.ogg similarity index 100% rename from sound/vox_fem/tesla.ogg rename to sound/announcer/vox_fem/tesla.ogg diff --git a/sound/vox_fem/test.ogg b/sound/announcer/vox_fem/test.ogg similarity index 100% rename from sound/vox_fem/test.ogg rename to sound/announcer/vox_fem/test.ogg diff --git a/sound/vox_fem/text.ogg b/sound/announcer/vox_fem/text.ogg similarity index 100% rename from sound/vox_fem/text.ogg rename to sound/announcer/vox_fem/text.ogg diff --git a/sound/vox_fem/thank.ogg b/sound/announcer/vox_fem/thank.ogg similarity index 100% rename from sound/vox_fem/thank.ogg rename to sound/announcer/vox_fem/thank.ogg diff --git a/sound/vox_fem/thanks.ogg b/sound/announcer/vox_fem/thanks.ogg similarity index 100% rename from sound/vox_fem/thanks.ogg rename to sound/announcer/vox_fem/thanks.ogg diff --git a/sound/vox_fem/that.ogg b/sound/announcer/vox_fem/that.ogg similarity index 100% rename from sound/vox_fem/that.ogg rename to sound/announcer/vox_fem/that.ogg diff --git a/sound/vox_fem/the.ogg b/sound/announcer/vox_fem/the.ogg similarity index 100% rename from sound/vox_fem/the.ogg rename to sound/announcer/vox_fem/the.ogg diff --git a/sound/vox_fem/theater.ogg b/sound/announcer/vox_fem/theater.ogg similarity index 100% rename from sound/vox_fem/theater.ogg rename to sound/announcer/vox_fem/theater.ogg diff --git a/sound/vox_fem/them.ogg b/sound/announcer/vox_fem/them.ogg similarity index 100% rename from sound/vox_fem/them.ogg rename to sound/announcer/vox_fem/them.ogg diff --git a/sound/vox_fem/then.ogg b/sound/announcer/vox_fem/then.ogg similarity index 100% rename from sound/vox_fem/then.ogg rename to sound/announcer/vox_fem/then.ogg diff --git a/sound/vox_fem/there.ogg b/sound/announcer/vox_fem/there.ogg similarity index 100% rename from sound/vox_fem/there.ogg rename to sound/announcer/vox_fem/there.ogg diff --git a/sound/vox_fem/they.ogg b/sound/announcer/vox_fem/they.ogg similarity index 100% rename from sound/vox_fem/they.ogg rename to sound/announcer/vox_fem/they.ogg diff --git a/sound/vox_fem/third.ogg b/sound/announcer/vox_fem/third.ogg similarity index 100% rename from sound/vox_fem/third.ogg rename to sound/announcer/vox_fem/third.ogg diff --git a/sound/vox_fem/thirteen.ogg b/sound/announcer/vox_fem/thirteen.ogg similarity index 100% rename from sound/vox_fem/thirteen.ogg rename to sound/announcer/vox_fem/thirteen.ogg diff --git a/sound/vox_fem/thirty.ogg b/sound/announcer/vox_fem/thirty.ogg similarity index 100% rename from sound/vox_fem/thirty.ogg rename to sound/announcer/vox_fem/thirty.ogg diff --git a/sound/vox_fem/this.ogg b/sound/announcer/vox_fem/this.ogg similarity index 100% rename from sound/vox_fem/this.ogg rename to sound/announcer/vox_fem/this.ogg diff --git a/sound/vox_fem/those.ogg b/sound/announcer/vox_fem/those.ogg similarity index 100% rename from sound/vox_fem/those.ogg rename to sound/announcer/vox_fem/those.ogg diff --git a/sound/vox_fem/thousand.ogg b/sound/announcer/vox_fem/thousand.ogg similarity index 100% rename from sound/vox_fem/thousand.ogg rename to sound/announcer/vox_fem/thousand.ogg diff --git a/sound/vox_fem/threat.ogg b/sound/announcer/vox_fem/threat.ogg similarity index 100% rename from sound/vox_fem/threat.ogg rename to sound/announcer/vox_fem/threat.ogg diff --git a/sound/vox_fem/three.ogg b/sound/announcer/vox_fem/three.ogg similarity index 100% rename from sound/vox_fem/three.ogg rename to sound/announcer/vox_fem/three.ogg diff --git a/sound/vox_fem/through.ogg b/sound/announcer/vox_fem/through.ogg similarity index 100% rename from sound/vox_fem/through.ogg rename to sound/announcer/vox_fem/through.ogg diff --git a/sound/vox_fem/tick.ogg b/sound/announcer/vox_fem/tick.ogg similarity index 100% rename from sound/vox_fem/tick.ogg rename to sound/announcer/vox_fem/tick.ogg diff --git a/sound/vox_fem/tide.ogg b/sound/announcer/vox_fem/tide.ogg similarity index 100% rename from sound/vox_fem/tide.ogg rename to sound/announcer/vox_fem/tide.ogg diff --git a/sound/vox_fem/tile.ogg b/sound/announcer/vox_fem/tile.ogg similarity index 100% rename from sound/vox_fem/tile.ogg rename to sound/announcer/vox_fem/tile.ogg diff --git a/sound/vox_fem/time.ogg b/sound/announcer/vox_fem/time.ogg similarity index 100% rename from sound/vox_fem/time.ogg rename to sound/announcer/vox_fem/time.ogg diff --git a/sound/vox_fem/tiny.ogg b/sound/announcer/vox_fem/tiny.ogg similarity index 100% rename from sound/vox_fem/tiny.ogg rename to sound/announcer/vox_fem/tiny.ogg diff --git a/sound/vox_fem/to.ogg b/sound/announcer/vox_fem/to.ogg similarity index 100% rename from sound/vox_fem/to.ogg rename to sound/announcer/vox_fem/to.ogg diff --git a/sound/vox_fem/top.ogg b/sound/announcer/vox_fem/top.ogg similarity index 100% rename from sound/vox_fem/top.ogg rename to sound/announcer/vox_fem/top.ogg diff --git a/sound/vox_fem/topside.ogg b/sound/announcer/vox_fem/topside.ogg similarity index 100% rename from sound/vox_fem/topside.ogg rename to sound/announcer/vox_fem/topside.ogg diff --git a/sound/vox_fem/touch.ogg b/sound/announcer/vox_fem/touch.ogg similarity index 100% rename from sound/vox_fem/touch.ogg rename to sound/announcer/vox_fem/touch.ogg diff --git a/sound/vox_fem/touched.ogg b/sound/announcer/vox_fem/touched.ogg similarity index 100% rename from sound/vox_fem/touched.ogg rename to sound/announcer/vox_fem/touched.ogg diff --git a/sound/vox_fem/touching.ogg b/sound/announcer/vox_fem/touching.ogg similarity index 100% rename from sound/vox_fem/touching.ogg rename to sound/announcer/vox_fem/touching.ogg diff --git a/sound/vox_fem/towards.ogg b/sound/announcer/vox_fem/towards.ogg similarity index 100% rename from sound/vox_fem/towards.ogg rename to sound/announcer/vox_fem/towards.ogg diff --git a/sound/vox_fem/toxins.ogg b/sound/announcer/vox_fem/toxins.ogg similarity index 100% rename from sound/vox_fem/toxins.ogg rename to sound/announcer/vox_fem/toxins.ogg diff --git a/sound/vox_fem/track.ogg b/sound/announcer/vox_fem/track.ogg similarity index 100% rename from sound/vox_fem/track.ogg rename to sound/announcer/vox_fem/track.ogg diff --git a/sound/vox_fem/train.ogg b/sound/announcer/vox_fem/train.ogg similarity index 100% rename from sound/vox_fem/train.ogg rename to sound/announcer/vox_fem/train.ogg diff --git a/sound/vox_fem/traitor.ogg b/sound/announcer/vox_fem/traitor.ogg similarity index 100% rename from sound/vox_fem/traitor.ogg rename to sound/announcer/vox_fem/traitor.ogg diff --git a/sound/vox_fem/transportation.ogg b/sound/announcer/vox_fem/transportation.ogg similarity index 100% rename from sound/vox_fem/transportation.ogg rename to sound/announcer/vox_fem/transportation.ogg diff --git a/sound/vox_fem/trigger.ogg b/sound/announcer/vox_fem/trigger.ogg similarity index 100% rename from sound/vox_fem/trigger.ogg rename to sound/announcer/vox_fem/trigger.ogg diff --git a/sound/vox_fem/triggered.ogg b/sound/announcer/vox_fem/triggered.ogg similarity index 100% rename from sound/vox_fem/triggered.ogg rename to sound/announcer/vox_fem/triggered.ogg diff --git a/sound/vox_fem/triggering.ogg b/sound/announcer/vox_fem/triggering.ogg similarity index 100% rename from sound/vox_fem/triggering.ogg rename to sound/announcer/vox_fem/triggering.ogg diff --git a/sound/vox_fem/triple.ogg b/sound/announcer/vox_fem/triple.ogg similarity index 100% rename from sound/vox_fem/triple.ogg rename to sound/announcer/vox_fem/triple.ogg diff --git a/sound/vox_fem/tritium.ogg b/sound/announcer/vox_fem/tritium.ogg similarity index 100% rename from sound/vox_fem/tritium.ogg rename to sound/announcer/vox_fem/tritium.ogg diff --git a/sound/vox_fem/truck.ogg b/sound/announcer/vox_fem/truck.ogg similarity index 100% rename from sound/vox_fem/truck.ogg rename to sound/announcer/vox_fem/truck.ogg diff --git a/sound/vox_fem/true.ogg b/sound/announcer/vox_fem/true.ogg similarity index 100% rename from sound/vox_fem/true.ogg rename to sound/announcer/vox_fem/true.ogg diff --git a/sound/vox_fem/tunnel.ogg b/sound/announcer/vox_fem/tunnel.ogg similarity index 100% rename from sound/vox_fem/tunnel.ogg rename to sound/announcer/vox_fem/tunnel.ogg diff --git a/sound/vox_fem/turn.ogg b/sound/announcer/vox_fem/turn.ogg similarity index 100% rename from sound/vox_fem/turn.ogg rename to sound/announcer/vox_fem/turn.ogg diff --git a/sound/vox_fem/turned.ogg b/sound/announcer/vox_fem/turned.ogg similarity index 100% rename from sound/vox_fem/turned.ogg rename to sound/announcer/vox_fem/turned.ogg diff --git a/sound/vox_fem/turret.ogg b/sound/announcer/vox_fem/turret.ogg similarity index 100% rename from sound/vox_fem/turret.ogg rename to sound/announcer/vox_fem/turret.ogg diff --git a/sound/vox_fem/twelve.ogg b/sound/announcer/vox_fem/twelve.ogg similarity index 100% rename from sound/vox_fem/twelve.ogg rename to sound/announcer/vox_fem/twelve.ogg diff --git a/sound/vox_fem/twenty.ogg b/sound/announcer/vox_fem/twenty.ogg similarity index 100% rename from sound/vox_fem/twenty.ogg rename to sound/announcer/vox_fem/twenty.ogg diff --git a/sound/vox_fem/two.ogg b/sound/announcer/vox_fem/two.ogg similarity index 100% rename from sound/vox_fem/two.ogg rename to sound/announcer/vox_fem/two.ogg diff --git a/sound/vox_fem/u.ogg b/sound/announcer/vox_fem/u.ogg similarity index 100% rename from sound/vox_fem/u.ogg rename to sound/announcer/vox_fem/u.ogg diff --git a/sound/vox_fem/ugh.ogg b/sound/announcer/vox_fem/ugh.ogg similarity index 100% rename from sound/vox_fem/ugh.ogg rename to sound/announcer/vox_fem/ugh.ogg diff --git a/sound/vox_fem/ughh.ogg b/sound/announcer/vox_fem/ughh.ogg similarity index 100% rename from sound/vox_fem/ughh.ogg rename to sound/announcer/vox_fem/ughh.ogg diff --git a/sound/vox_fem/unable.ogg b/sound/announcer/vox_fem/unable.ogg similarity index 100% rename from sound/vox_fem/unable.ogg rename to sound/announcer/vox_fem/unable.ogg diff --git a/sound/vox_fem/unauthorized.ogg b/sound/announcer/vox_fem/unauthorized.ogg similarity index 100% rename from sound/vox_fem/unauthorized.ogg rename to sound/announcer/vox_fem/unauthorized.ogg diff --git a/sound/vox_fem/under.ogg b/sound/announcer/vox_fem/under.ogg similarity index 100% rename from sound/vox_fem/under.ogg rename to sound/announcer/vox_fem/under.ogg diff --git a/sound/vox_fem/uniform.ogg b/sound/announcer/vox_fem/uniform.ogg similarity index 100% rename from sound/vox_fem/uniform.ogg rename to sound/announcer/vox_fem/uniform.ogg diff --git a/sound/vox_fem/unique.ogg b/sound/announcer/vox_fem/unique.ogg similarity index 100% rename from sound/vox_fem/unique.ogg rename to sound/announcer/vox_fem/unique.ogg diff --git a/sound/vox_fem/unknown.ogg b/sound/announcer/vox_fem/unknown.ogg similarity index 100% rename from sound/vox_fem/unknown.ogg rename to sound/announcer/vox_fem/unknown.ogg diff --git a/sound/vox_fem/unlocked.ogg b/sound/announcer/vox_fem/unlocked.ogg similarity index 100% rename from sound/vox_fem/unlocked.ogg rename to sound/announcer/vox_fem/unlocked.ogg diff --git a/sound/vox_fem/unsafe.ogg b/sound/announcer/vox_fem/unsafe.ogg similarity index 100% rename from sound/vox_fem/unsafe.ogg rename to sound/announcer/vox_fem/unsafe.ogg diff --git a/sound/vox_fem/until.ogg b/sound/announcer/vox_fem/until.ogg similarity index 100% rename from sound/vox_fem/until.ogg rename to sound/announcer/vox_fem/until.ogg diff --git a/sound/vox_fem/unwrench.ogg b/sound/announcer/vox_fem/unwrench.ogg similarity index 100% rename from sound/vox_fem/unwrench.ogg rename to sound/announcer/vox_fem/unwrench.ogg diff --git a/sound/vox_fem/unwrenching.ogg b/sound/announcer/vox_fem/unwrenching.ogg similarity index 100% rename from sound/vox_fem/unwrenching.ogg rename to sound/announcer/vox_fem/unwrenching.ogg diff --git a/sound/vox_fem/up.ogg b/sound/announcer/vox_fem/up.ogg similarity index 100% rename from sound/vox_fem/up.ogg rename to sound/announcer/vox_fem/up.ogg diff --git a/sound/vox_fem/update.ogg b/sound/announcer/vox_fem/update.ogg similarity index 100% rename from sound/vox_fem/update.ogg rename to sound/announcer/vox_fem/update.ogg diff --git a/sound/vox_fem/updated.ogg b/sound/announcer/vox_fem/updated.ogg similarity index 100% rename from sound/vox_fem/updated.ogg rename to sound/announcer/vox_fem/updated.ogg diff --git a/sound/vox_fem/updating.ogg b/sound/announcer/vox_fem/updating.ogg similarity index 100% rename from sound/vox_fem/updating.ogg rename to sound/announcer/vox_fem/updating.ogg diff --git a/sound/vox_fem/upload.ogg b/sound/announcer/vox_fem/upload.ogg similarity index 100% rename from sound/vox_fem/upload.ogg rename to sound/announcer/vox_fem/upload.ogg diff --git a/sound/vox_fem/upper.ogg b/sound/announcer/vox_fem/upper.ogg similarity index 100% rename from sound/vox_fem/upper.ogg rename to sound/announcer/vox_fem/upper.ogg diff --git a/sound/vox_fem/uranium.ogg b/sound/announcer/vox_fem/uranium.ogg similarity index 100% rename from sound/vox_fem/uranium.ogg rename to sound/announcer/vox_fem/uranium.ogg diff --git a/sound/vox_fem/us.ogg b/sound/announcer/vox_fem/us.ogg similarity index 100% rename from sound/vox_fem/us.ogg rename to sound/announcer/vox_fem/us.ogg diff --git a/sound/vox_fem/usa.ogg b/sound/announcer/vox_fem/usa.ogg similarity index 100% rename from sound/vox_fem/usa.ogg rename to sound/announcer/vox_fem/usa.ogg diff --git a/sound/vox_fem/use.ogg b/sound/announcer/vox_fem/use.ogg similarity index 100% rename from sound/vox_fem/use.ogg rename to sound/announcer/vox_fem/use.ogg diff --git a/sound/vox_fem/used.ogg b/sound/announcer/vox_fem/used.ogg similarity index 100% rename from sound/vox_fem/used.ogg rename to sound/announcer/vox_fem/used.ogg diff --git a/sound/vox_fem/useful.ogg b/sound/announcer/vox_fem/useful.ogg similarity index 100% rename from sound/vox_fem/useful.ogg rename to sound/announcer/vox_fem/useful.ogg diff --git a/sound/vox_fem/useless.ogg b/sound/announcer/vox_fem/useless.ogg similarity index 100% rename from sound/vox_fem/useless.ogg rename to sound/announcer/vox_fem/useless.ogg diff --git a/sound/vox_fem/user.ogg b/sound/announcer/vox_fem/user.ogg similarity index 100% rename from sound/vox_fem/user.ogg rename to sound/announcer/vox_fem/user.ogg diff --git a/sound/vox_fem/v.ogg b/sound/announcer/vox_fem/v.ogg similarity index 100% rename from sound/vox_fem/v.ogg rename to sound/announcer/vox_fem/v.ogg diff --git a/sound/vox_fem/vacate.ogg b/sound/announcer/vox_fem/vacate.ogg similarity index 100% rename from sound/vox_fem/vacate.ogg rename to sound/announcer/vox_fem/vacate.ogg diff --git a/sound/vox_fem/vacuum.ogg b/sound/announcer/vox_fem/vacuum.ogg similarity index 100% rename from sound/vox_fem/vacuum.ogg rename to sound/announcer/vox_fem/vacuum.ogg diff --git a/sound/vox_fem/valid.ogg b/sound/announcer/vox_fem/valid.ogg similarity index 100% rename from sound/vox_fem/valid.ogg rename to sound/announcer/vox_fem/valid.ogg diff --git a/sound/vox_fem/validate.ogg b/sound/announcer/vox_fem/validate.ogg similarity index 100% rename from sound/vox_fem/validate.ogg rename to sound/announcer/vox_fem/validate.ogg diff --git a/sound/vox_fem/vapor.ogg b/sound/announcer/vox_fem/vapor.ogg similarity index 100% rename from sound/vox_fem/vapor.ogg rename to sound/announcer/vox_fem/vapor.ogg diff --git a/sound/vox_fem/vendor.ogg b/sound/announcer/vox_fem/vendor.ogg similarity index 100% rename from sound/vox_fem/vendor.ogg rename to sound/announcer/vox_fem/vendor.ogg diff --git a/sound/vox_fem/vent.ogg b/sound/announcer/vox_fem/vent.ogg similarity index 100% rename from sound/vox_fem/vent.ogg rename to sound/announcer/vox_fem/vent.ogg diff --git a/sound/vox_fem/ventilation.ogg b/sound/announcer/vox_fem/ventilation.ogg similarity index 100% rename from sound/vox_fem/ventilation.ogg rename to sound/announcer/vox_fem/ventilation.ogg diff --git a/sound/vox_fem/very.ogg b/sound/announcer/vox_fem/very.ogg similarity index 100% rename from sound/vox_fem/very.ogg rename to sound/announcer/vox_fem/very.ogg diff --git a/sound/vox_fem/victor.ogg b/sound/announcer/vox_fem/victor.ogg similarity index 100% rename from sound/vox_fem/victor.ogg rename to sound/announcer/vox_fem/victor.ogg diff --git a/sound/vox_fem/violated.ogg b/sound/announcer/vox_fem/violated.ogg similarity index 100% rename from sound/vox_fem/violated.ogg rename to sound/announcer/vox_fem/violated.ogg diff --git a/sound/vox_fem/violation.ogg b/sound/announcer/vox_fem/violation.ogg similarity index 100% rename from sound/vox_fem/violation.ogg rename to sound/announcer/vox_fem/violation.ogg diff --git a/sound/vox_fem/virologist.ogg b/sound/announcer/vox_fem/virologist.ogg similarity index 100% rename from sound/vox_fem/virologist.ogg rename to sound/announcer/vox_fem/virologist.ogg diff --git a/sound/vox_fem/virology.ogg b/sound/announcer/vox_fem/virology.ogg similarity index 100% rename from sound/vox_fem/virology.ogg rename to sound/announcer/vox_fem/virology.ogg diff --git a/sound/vox_fem/virus.ogg b/sound/announcer/vox_fem/virus.ogg similarity index 100% rename from sound/vox_fem/virus.ogg rename to sound/announcer/vox_fem/virus.ogg diff --git a/sound/vox_fem/vitals.ogg b/sound/announcer/vox_fem/vitals.ogg similarity index 100% rename from sound/vox_fem/vitals.ogg rename to sound/announcer/vox_fem/vitals.ogg diff --git a/sound/vox_fem/voltage.ogg b/sound/announcer/vox_fem/voltage.ogg similarity index 100% rename from sound/vox_fem/voltage.ogg rename to sound/announcer/vox_fem/voltage.ogg diff --git a/sound/vox_fem/vox.ogg b/sound/announcer/vox_fem/vox.ogg similarity index 100% rename from sound/vox_fem/vox.ogg rename to sound/announcer/vox_fem/vox.ogg diff --git a/sound/vox_fem/vox_login.ogg b/sound/announcer/vox_fem/vox_login.ogg similarity index 100% rename from sound/vox_fem/vox_login.ogg rename to sound/announcer/vox_fem/vox_login.ogg diff --git a/sound/vox_fem/voxtest.ogg b/sound/announcer/vox_fem/voxtest.ogg similarity index 100% rename from sound/vox_fem/voxtest.ogg rename to sound/announcer/vox_fem/voxtest.ogg diff --git a/sound/vox_fem/w.ogg b/sound/announcer/vox_fem/w.ogg similarity index 100% rename from sound/vox_fem/w.ogg rename to sound/announcer/vox_fem/w.ogg diff --git a/sound/vox_fem/walk.ogg b/sound/announcer/vox_fem/walk.ogg similarity index 100% rename from sound/vox_fem/walk.ogg rename to sound/announcer/vox_fem/walk.ogg diff --git a/sound/vox_fem/wall.ogg b/sound/announcer/vox_fem/wall.ogg similarity index 100% rename from sound/vox_fem/wall.ogg rename to sound/announcer/vox_fem/wall.ogg diff --git a/sound/vox_fem/wanker.ogg b/sound/announcer/vox_fem/wanker.ogg similarity index 100% rename from sound/vox_fem/wanker.ogg rename to sound/announcer/vox_fem/wanker.ogg diff --git a/sound/vox_fem/want.ogg b/sound/announcer/vox_fem/want.ogg similarity index 100% rename from sound/vox_fem/want.ogg rename to sound/announcer/vox_fem/want.ogg diff --git a/sound/vox_fem/wanted.ogg b/sound/announcer/vox_fem/wanted.ogg similarity index 100% rename from sound/vox_fem/wanted.ogg rename to sound/announcer/vox_fem/wanted.ogg diff --git a/sound/vox_fem/warden.ogg b/sound/announcer/vox_fem/warden.ogg similarity index 100% rename from sound/vox_fem/warden.ogg rename to sound/announcer/vox_fem/warden.ogg diff --git a/sound/vox_fem/warm.ogg b/sound/announcer/vox_fem/warm.ogg similarity index 100% rename from sound/vox_fem/warm.ogg rename to sound/announcer/vox_fem/warm.ogg diff --git a/sound/vox_fem/warn.ogg b/sound/announcer/vox_fem/warn.ogg similarity index 100% rename from sound/vox_fem/warn.ogg rename to sound/announcer/vox_fem/warn.ogg diff --git a/sound/vox_fem/warning.ogg b/sound/announcer/vox_fem/warning.ogg similarity index 100% rename from sound/vox_fem/warning.ogg rename to sound/announcer/vox_fem/warning.ogg diff --git a/sound/vox_fem/was.ogg b/sound/announcer/vox_fem/was.ogg similarity index 100% rename from sound/vox_fem/was.ogg rename to sound/announcer/vox_fem/was.ogg diff --git a/sound/vox_fem/waste.ogg b/sound/announcer/vox_fem/waste.ogg similarity index 100% rename from sound/vox_fem/waste.ogg rename to sound/announcer/vox_fem/waste.ogg diff --git a/sound/vox_fem/water.ogg b/sound/announcer/vox_fem/water.ogg similarity index 100% rename from sound/vox_fem/water.ogg rename to sound/announcer/vox_fem/water.ogg diff --git a/sound/vox_fem/way.ogg b/sound/announcer/vox_fem/way.ogg similarity index 100% rename from sound/vox_fem/way.ogg rename to sound/announcer/vox_fem/way.ogg diff --git a/sound/vox_fem/ways.ogg b/sound/announcer/vox_fem/ways.ogg similarity index 100% rename from sound/vox_fem/ways.ogg rename to sound/announcer/vox_fem/ways.ogg diff --git a/sound/vox_fem/we.ogg b/sound/announcer/vox_fem/we.ogg similarity index 100% rename from sound/vox_fem/we.ogg rename to sound/announcer/vox_fem/we.ogg diff --git a/sound/vox_fem/weak.ogg b/sound/announcer/vox_fem/weak.ogg similarity index 100% rename from sound/vox_fem/weak.ogg rename to sound/announcer/vox_fem/weak.ogg diff --git a/sound/vox_fem/weapon.ogg b/sound/announcer/vox_fem/weapon.ogg similarity index 100% rename from sound/vox_fem/weapon.ogg rename to sound/announcer/vox_fem/weapon.ogg diff --git a/sound/vox_fem/welcome.ogg b/sound/announcer/vox_fem/welcome.ogg similarity index 100% rename from sound/vox_fem/welcome.ogg rename to sound/announcer/vox_fem/welcome.ogg diff --git a/sound/vox_fem/weld.ogg b/sound/announcer/vox_fem/weld.ogg similarity index 100% rename from sound/vox_fem/weld.ogg rename to sound/announcer/vox_fem/weld.ogg diff --git a/sound/vox_fem/west.ogg b/sound/announcer/vox_fem/west.ogg similarity index 100% rename from sound/vox_fem/west.ogg rename to sound/announcer/vox_fem/west.ogg diff --git a/sound/vox_fem/wew.ogg b/sound/announcer/vox_fem/wew.ogg similarity index 100% rename from sound/vox_fem/wew.ogg rename to sound/announcer/vox_fem/wew.ogg diff --git a/sound/vox_fem/what.ogg b/sound/announcer/vox_fem/what.ogg similarity index 100% rename from sound/vox_fem/what.ogg rename to sound/announcer/vox_fem/what.ogg diff --git a/sound/vox_fem/when.ogg b/sound/announcer/vox_fem/when.ogg similarity index 100% rename from sound/vox_fem/when.ogg rename to sound/announcer/vox_fem/when.ogg diff --git a/sound/vox_fem/where.ogg b/sound/announcer/vox_fem/where.ogg similarity index 100% rename from sound/vox_fem/where.ogg rename to sound/announcer/vox_fem/where.ogg diff --git a/sound/vox_fem/which.ogg b/sound/announcer/vox_fem/which.ogg similarity index 100% rename from sound/vox_fem/which.ogg rename to sound/announcer/vox_fem/which.ogg diff --git a/sound/vox_fem/while.ogg b/sound/announcer/vox_fem/while.ogg similarity index 100% rename from sound/vox_fem/while.ogg rename to sound/announcer/vox_fem/while.ogg diff --git a/sound/vox_fem/whiskey.ogg b/sound/announcer/vox_fem/whiskey.ogg similarity index 100% rename from sound/vox_fem/whiskey.ogg rename to sound/announcer/vox_fem/whiskey.ogg diff --git a/sound/vox_fem/white.ogg b/sound/announcer/vox_fem/white.ogg similarity index 100% rename from sound/vox_fem/white.ogg rename to sound/announcer/vox_fem/white.ogg diff --git a/sound/vox_fem/why.ogg b/sound/announcer/vox_fem/why.ogg similarity index 100% rename from sound/vox_fem/why.ogg rename to sound/announcer/vox_fem/why.ogg diff --git a/sound/vox_fem/wilco.ogg b/sound/announcer/vox_fem/wilco.ogg similarity index 100% rename from sound/vox_fem/wilco.ogg rename to sound/announcer/vox_fem/wilco.ogg diff --git a/sound/vox_fem/will.ogg b/sound/announcer/vox_fem/will.ogg similarity index 100% rename from sound/vox_fem/will.ogg rename to sound/announcer/vox_fem/will.ogg diff --git a/sound/vox_fem/wing.ogg b/sound/announcer/vox_fem/wing.ogg similarity index 100% rename from sound/vox_fem/wing.ogg rename to sound/announcer/vox_fem/wing.ogg diff --git a/sound/vox_fem/wire.ogg b/sound/announcer/vox_fem/wire.ogg similarity index 100% rename from sound/vox_fem/wire.ogg rename to sound/announcer/vox_fem/wire.ogg diff --git a/sound/vox_fem/with.ogg b/sound/announcer/vox_fem/with.ogg similarity index 100% rename from sound/vox_fem/with.ogg rename to sound/announcer/vox_fem/with.ogg diff --git a/sound/vox_fem/without.ogg b/sound/announcer/vox_fem/without.ogg similarity index 100% rename from sound/vox_fem/without.ogg rename to sound/announcer/vox_fem/without.ogg diff --git a/sound/vox_fem/wizard.ogg b/sound/announcer/vox_fem/wizard.ogg similarity index 100% rename from sound/vox_fem/wizard.ogg rename to sound/announcer/vox_fem/wizard.ogg diff --git a/sound/vox_fem/wood.ogg b/sound/announcer/vox_fem/wood.ogg similarity index 100% rename from sound/vox_fem/wood.ogg rename to sound/announcer/vox_fem/wood.ogg diff --git a/sound/vox_fem/woody.ogg b/sound/announcer/vox_fem/woody.ogg similarity index 100% rename from sound/vox_fem/woody.ogg rename to sound/announcer/vox_fem/woody.ogg diff --git a/sound/vox_fem/woop.ogg b/sound/announcer/vox_fem/woop.ogg similarity index 100% rename from sound/vox_fem/woop.ogg rename to sound/announcer/vox_fem/woop.ogg diff --git a/sound/vox_fem/work.ogg b/sound/announcer/vox_fem/work.ogg similarity index 100% rename from sound/vox_fem/work.ogg rename to sound/announcer/vox_fem/work.ogg diff --git a/sound/vox_fem/worked.ogg b/sound/announcer/vox_fem/worked.ogg similarity index 100% rename from sound/vox_fem/worked.ogg rename to sound/announcer/vox_fem/worked.ogg diff --git a/sound/vox_fem/working.ogg b/sound/announcer/vox_fem/working.ogg similarity index 100% rename from sound/vox_fem/working.ogg rename to sound/announcer/vox_fem/working.ogg diff --git a/sound/vox_fem/works.ogg b/sound/announcer/vox_fem/works.ogg similarity index 100% rename from sound/vox_fem/works.ogg rename to sound/announcer/vox_fem/works.ogg diff --git a/sound/vox_fem/would.ogg b/sound/announcer/vox_fem/would.ogg similarity index 100% rename from sound/vox_fem/would.ogg rename to sound/announcer/vox_fem/would.ogg diff --git a/sound/vox_fem/wouldnt.ogg b/sound/announcer/vox_fem/wouldnt.ogg similarity index 100% rename from sound/vox_fem/wouldnt.ogg rename to sound/announcer/vox_fem/wouldnt.ogg diff --git a/sound/vox_fem/wow.ogg b/sound/announcer/vox_fem/wow.ogg similarity index 100% rename from sound/vox_fem/wow.ogg rename to sound/announcer/vox_fem/wow.ogg diff --git a/sound/vox_fem/wrench.ogg b/sound/announcer/vox_fem/wrench.ogg similarity index 100% rename from sound/vox_fem/wrench.ogg rename to sound/announcer/vox_fem/wrench.ogg diff --git a/sound/vox_fem/wrenching.ogg b/sound/announcer/vox_fem/wrenching.ogg similarity index 100% rename from sound/vox_fem/wrenching.ogg rename to sound/announcer/vox_fem/wrenching.ogg diff --git a/sound/vox_fem/x.ogg b/sound/announcer/vox_fem/x.ogg similarity index 100% rename from sound/vox_fem/x.ogg rename to sound/announcer/vox_fem/x.ogg diff --git a/sound/vox_fem/xeno.ogg b/sound/announcer/vox_fem/xeno.ogg similarity index 100% rename from sound/vox_fem/xeno.ogg rename to sound/announcer/vox_fem/xeno.ogg diff --git a/sound/vox_fem/xenobiology.ogg b/sound/announcer/vox_fem/xenobiology.ogg similarity index 100% rename from sound/vox_fem/xenobiology.ogg rename to sound/announcer/vox_fem/xenobiology.ogg diff --git a/sound/vox_fem/xenomorph.ogg b/sound/announcer/vox_fem/xenomorph.ogg similarity index 100% rename from sound/vox_fem/xenomorph.ogg rename to sound/announcer/vox_fem/xenomorph.ogg diff --git a/sound/vox_fem/xenomorphs.ogg b/sound/announcer/vox_fem/xenomorphs.ogg similarity index 100% rename from sound/vox_fem/xenomorphs.ogg rename to sound/announcer/vox_fem/xenomorphs.ogg diff --git a/sound/vox_fem/y.ogg b/sound/announcer/vox_fem/y.ogg similarity index 100% rename from sound/vox_fem/y.ogg rename to sound/announcer/vox_fem/y.ogg diff --git a/sound/vox_fem/yankee.ogg b/sound/announcer/vox_fem/yankee.ogg similarity index 100% rename from sound/vox_fem/yankee.ogg rename to sound/announcer/vox_fem/yankee.ogg diff --git a/sound/vox_fem/yards.ogg b/sound/announcer/vox_fem/yards.ogg similarity index 100% rename from sound/vox_fem/yards.ogg rename to sound/announcer/vox_fem/yards.ogg diff --git a/sound/vox_fem/year.ogg b/sound/announcer/vox_fem/year.ogg similarity index 100% rename from sound/vox_fem/year.ogg rename to sound/announcer/vox_fem/year.ogg diff --git a/sound/vox_fem/yellow.ogg b/sound/announcer/vox_fem/yellow.ogg similarity index 100% rename from sound/vox_fem/yellow.ogg rename to sound/announcer/vox_fem/yellow.ogg diff --git a/sound/vox_fem/yes.ogg b/sound/announcer/vox_fem/yes.ogg similarity index 100% rename from sound/vox_fem/yes.ogg rename to sound/announcer/vox_fem/yes.ogg diff --git a/sound/vox_fem/you.ogg b/sound/announcer/vox_fem/you.ogg similarity index 100% rename from sound/vox_fem/you.ogg rename to sound/announcer/vox_fem/you.ogg diff --git a/sound/vox_fem/your.ogg b/sound/announcer/vox_fem/your.ogg similarity index 100% rename from sound/vox_fem/your.ogg rename to sound/announcer/vox_fem/your.ogg diff --git a/sound/vox_fem/yourself.ogg b/sound/announcer/vox_fem/yourself.ogg similarity index 100% rename from sound/vox_fem/yourself.ogg rename to sound/announcer/vox_fem/yourself.ogg diff --git a/sound/vox_fem/z.ogg b/sound/announcer/vox_fem/z.ogg similarity index 100% rename from sound/vox_fem/z.ogg rename to sound/announcer/vox_fem/z.ogg diff --git a/sound/vox_fem/zap.ogg b/sound/announcer/vox_fem/zap.ogg similarity index 100% rename from sound/vox_fem/zap.ogg rename to sound/announcer/vox_fem/zap.ogg diff --git a/sound/vox_fem/zauker.ogg b/sound/announcer/vox_fem/zauker.ogg similarity index 100% rename from sound/vox_fem/zauker.ogg rename to sound/announcer/vox_fem/zauker.ogg diff --git a/sound/vox_fem/zero.ogg b/sound/announcer/vox_fem/zero.ogg similarity index 100% rename from sound/vox_fem/zero.ogg rename to sound/announcer/vox_fem/zero.ogg diff --git a/sound/vox_fem/zombie.ogg b/sound/announcer/vox_fem/zombie.ogg similarity index 100% rename from sound/vox_fem/zombie.ogg rename to sound/announcer/vox_fem/zombie.ogg diff --git a/sound/vox_fem/zone.ogg b/sound/announcer/vox_fem/zone.ogg similarity index 100% rename from sound/vox_fem/zone.ogg rename to sound/announcer/vox_fem/zone.ogg diff --git a/sound/vox_fem/zulu.ogg b/sound/announcer/vox_fem/zulu.ogg similarity index 100% rename from sound/vox_fem/zulu.ogg rename to sound/announcer/vox_fem/zulu.ogg diff --git a/sound/attributions.txt b/sound/attributions.txt index aa3cd0bf37fae..dab6cedf7eb62 100644 --- a/sound/attributions.txt +++ b/sound/attributions.txt @@ -28,7 +28,7 @@ splatter.ogg adapted from https://freesound.org/people/Rocktopus/sounds/233418/ hohoho.ogg and hehe.ogg are cut from a recording by Nanakisan on freesound: https://freesound.org/people/Nanakisan/sounds/253534/ mbox_full.ogg and mbox_end.ogg make use of The Ragtime Drummer by James Lent, in the public domain -growl1.ogg and growl2.ogg in /sound/creatures/dog are adapted from Glitchedtones's Freesound shih-tzu uploads https://freesound.org/people/Glitchedtones/ +growl1.ogg and growl2.ogg in /sound/mobs/non-humanoids/dog are adapted from Glitchedtones's Freesound shih-tzu uploads https://freesound.org/people/Glitchedtones/ eject.ogg is by magedu, adapted from https://freesound.org/people/magedu/sounds/267832/ @@ -181,15 +181,7 @@ https://freesound.org/people/shw489/sounds/234389/ soup_boil1.ogg through soup_boil5.ogg and soup_boil_end.ogg are taken from Boiling Soup from Freesoung.org (CC4) and converted to OGG / split apart (but is otherwise unchanged): https://freesound.org/people/jorickhoofd/sounds/632783/ -compressed_air1.ogg is taken from Freesound and converted to ogg: -https://freesound.org/people/Geoff-Bremner-Audio/sounds/682952/ -compressed_air2.ogg is taken from Freesound and converted to ogg: -https://freesound.org/people/Geoff-Bremner-Audio/sounds/682816/ -tank_insert_clunky.ogg was created by mixing compressed_air1 and clunk sound from Freesound: -https://freesound.org/people/BinaryMonkFlint/sounds/333296/ -tank_remove_thunk.ogg was made by mixing two sound tracks from Freesound: -https://freesound.org/people/lowdjinn/sounds/533885/ and; -https://freesound.org/people/BMacZero/sounds/96137/ + valve_opening.ogg was made by mixing water flowing samples from: https://freesound.org/people/scriotxstudios/sounds/349111/?attribution=1 and squeaky scrape sound from: @@ -215,3 +207,5 @@ place glass object.wav by milpower -- https://freesound.org/s/353105/ -- License glass_reverse.ogg is adapted from a combination of: https://freesound.org/people/C_Rogers/sounds/203368/ -- glass-shattering-hit_01.ogg by C_Rogers on freesound.org (CC0) https://freesound.org/people/Czarcazas/sounds/330800/ -- Audio reversal/fading of Shattering Glass (Small) by Czarcazas -- https://freesound.org/s/330800/ -- License: Attribution 3.0 + +sound/effects/bonk.ogg - recorded by oranges on a coke zero bottle, edited by ninjanomnom, released to public domain diff --git a/sound/effects/beeps_jingle.ogg b/sound/effects/achievement/beeps_jingle.ogg similarity index 100% rename from sound/effects/beeps_jingle.ogg rename to sound/effects/achievement/beeps_jingle.ogg diff --git a/sound/effects/glockenspiel_ping.ogg b/sound/effects/achievement/glockenspiel_ping.ogg similarity index 100% rename from sound/effects/glockenspiel_ping.ogg rename to sound/effects/achievement/glockenspiel_ping.ogg diff --git a/sound/effects/tada_fanfare.ogg b/sound/effects/achievement/tada_fanfare.ogg similarity index 100% rename from sound/effects/tada_fanfare.ogg rename to sound/effects/achievement/tada_fanfare.ogg diff --git a/sound/effects/bin_close.ogg b/sound/effects/bin/bin_close.ogg similarity index 100% rename from sound/effects/bin_close.ogg rename to sound/effects/bin/bin_close.ogg diff --git a/sound/effects/bin_open.ogg b/sound/effects/bin/bin_open.ogg similarity index 100% rename from sound/effects/bin_open.ogg rename to sound/effects/bin/bin_open.ogg diff --git a/sound/effects/attackblob.ogg b/sound/effects/blob/attackblob.ogg similarity index 100% rename from sound/effects/attackblob.ogg rename to sound/effects/blob/attackblob.ogg diff --git a/sound/effects/blobattack.ogg b/sound/effects/blob/blobattack.ogg similarity index 100% rename from sound/effects/blobattack.ogg rename to sound/effects/blob/blobattack.ogg diff --git a/sound/effects/bodyfall1.ogg b/sound/effects/bodyfall/bodyfall1.ogg similarity index 100% rename from sound/effects/bodyfall1.ogg rename to sound/effects/bodyfall/bodyfall1.ogg diff --git a/sound/effects/bodyfall2.ogg b/sound/effects/bodyfall/bodyfall2.ogg similarity index 100% rename from sound/effects/bodyfall2.ogg rename to sound/effects/bodyfall/bodyfall2.ogg diff --git a/sound/effects/bodyfall3.ogg b/sound/effects/bodyfall/bodyfall3.ogg similarity index 100% rename from sound/effects/bodyfall3.ogg rename to sound/effects/bodyfall/bodyfall3.ogg diff --git a/sound/effects/bodyfall4.ogg b/sound/effects/bodyfall/bodyfall4.ogg similarity index 100% rename from sound/effects/bodyfall4.ogg rename to sound/effects/bodyfall/bodyfall4.ogg diff --git a/sound/effects/bonk.ogg b/sound/effects/bonk.ogg new file mode 100644 index 0000000000000..709078c1efb47 Binary files /dev/null and b/sound/effects/bonk.ogg differ diff --git a/sound/effects/bubbles.ogg b/sound/effects/bubbles/bubbles.ogg similarity index 100% rename from sound/effects/bubbles.ogg rename to sound/effects/bubbles/bubbles.ogg diff --git a/sound/effects/bubbles2.ogg b/sound/effects/bubbles/bubbles2.ogg similarity index 100% rename from sound/effects/bubbles2.ogg rename to sound/effects/bubbles/bubbles2.ogg diff --git a/sound/effects/crunchybushwhack1.ogg b/sound/effects/bush/crunchybushwhack1.ogg similarity index 100% rename from sound/effects/crunchybushwhack1.ogg rename to sound/effects/bush/crunchybushwhack1.ogg diff --git a/sound/effects/crunchybushwhack2.ogg b/sound/effects/bush/crunchybushwhack2.ogg similarity index 100% rename from sound/effects/crunchybushwhack2.ogg rename to sound/effects/bush/crunchybushwhack2.ogg diff --git a/sound/effects/crunchybushwhack3.ogg b/sound/effects/bush/crunchybushwhack3.ogg similarity index 100% rename from sound/effects/crunchybushwhack3.ogg rename to sound/effects/bush/crunchybushwhack3.ogg diff --git a/sound/effects/can_open1.ogg b/sound/effects/can/can_open1.ogg similarity index 100% rename from sound/effects/can_open1.ogg rename to sound/effects/can/can_open1.ogg diff --git a/sound/effects/can_open2.ogg b/sound/effects/can/can_open2.ogg similarity index 100% rename from sound/effects/can_open2.ogg rename to sound/effects/can/can_open2.ogg diff --git a/sound/effects/can_open3.ogg b/sound/effects/can/can_open3.ogg similarity index 100% rename from sound/effects/can_open3.ogg rename to sound/effects/can/can_open3.ogg diff --git a/sound/effects/can_pop.ogg b/sound/effects/can/can_pop.ogg similarity index 100% rename from sound/effects/can_pop.ogg rename to sound/effects/can/can_pop.ogg diff --git a/sound/effects/can_shake.ogg b/sound/effects/can/can_shake.ogg similarity index 100% rename from sound/effects/can_shake.ogg rename to sound/effects/can/can_shake.ogg diff --git a/sound/effects/cartoon_pop.ogg b/sound/effects/cartoon_sfx/cartoon_pop.ogg similarity index 100% rename from sound/effects/cartoon_pop.ogg rename to sound/effects/cartoon_sfx/cartoon_pop.ogg diff --git a/sound/effects/cartoon_splat.ogg b/sound/effects/cartoon_sfx/cartoon_splat.ogg similarity index 100% rename from sound/effects/cartoon_splat.ogg rename to sound/effects/cartoon_sfx/cartoon_splat.ogg diff --git a/sound/chemistry/SoundSources.txt b/sound/effects/chemistry/SoundSources.txt similarity index 100% rename from sound/chemistry/SoundSources.txt rename to sound/effects/chemistry/SoundSources.txt diff --git a/sound/chemistry/ahaha.ogg b/sound/effects/chemistry/ahaha.ogg similarity index 100% rename from sound/chemistry/ahaha.ogg rename to sound/effects/chemistry/ahaha.ogg diff --git a/sound/chemistry/bluespace.ogg b/sound/effects/chemistry/bluespace.ogg similarity index 100% rename from sound/chemistry/bluespace.ogg rename to sound/effects/chemistry/bluespace.ogg diff --git a/sound/chemistry/bufferadd.ogg b/sound/effects/chemistry/bufferadd.ogg similarity index 100% rename from sound/chemistry/bufferadd.ogg rename to sound/effects/chemistry/bufferadd.ogg diff --git a/sound/chemistry/catalyst.ogg b/sound/effects/chemistry/catalyst.ogg similarity index 100% rename from sound/chemistry/catalyst.ogg rename to sound/effects/chemistry/catalyst.ogg diff --git a/sound/chemistry/heatdam.ogg b/sound/effects/chemistry/heatdam.ogg similarity index 100% rename from sound/chemistry/heatdam.ogg rename to sound/effects/chemistry/heatdam.ogg diff --git a/sound/chemistry/saturnx_fade.ogg b/sound/effects/chemistry/saturnx_fade.ogg similarity index 100% rename from sound/chemistry/saturnx_fade.ogg rename to sound/effects/chemistry/saturnx_fade.ogg diff --git a/sound/chemistry/shockwave_explosion.ogg b/sound/effects/chemistry/shockwave_explosion.ogg similarity index 100% rename from sound/chemistry/shockwave_explosion.ogg rename to sound/effects/chemistry/shockwave_explosion.ogg diff --git a/sound/effects/compressed_air/attribution.txt b/sound/effects/compressed_air/attribution.txt new file mode 100644 index 0000000000000..1eff1ab751225 --- /dev/null +++ b/sound/effects/compressed_air/attribution.txt @@ -0,0 +1,9 @@ +compressed_air1.ogg is taken from Freesound and converted to ogg: +https://freesound.org/people/Geoff-Bremner-Audio/sounds/682952/ +compressed_air2.ogg is taken from Freesound and converted to ogg: +https://freesound.org/people/Geoff-Bremner-Audio/sounds/682816/ +tank_insert_clunky.ogg was created by mixing compressed_air1 and clunk sound from Freesound: +https://freesound.org/people/BinaryMonkFlint/sounds/333296/ +tank_remove_thunk.ogg was made by mixing two sound tracks from Freesound: +https://freesound.org/people/lowdjinn/sounds/533885/ and; +https://freesound.org/people/BMacZero/sounds/96137/ diff --git a/sound/effects/compressed_air1.ogg b/sound/effects/compressed_air/compressed_air1.ogg similarity index 100% rename from sound/effects/compressed_air1.ogg rename to sound/effects/compressed_air/compressed_air1.ogg diff --git a/sound/effects/compressed_air2.ogg b/sound/effects/compressed_air/compressed_air2.ogg similarity index 100% rename from sound/effects/compressed_air2.ogg rename to sound/effects/compressed_air/compressed_air2.ogg diff --git a/sound/effects/tank_insert_clunky.ogg b/sound/effects/compressed_air/tank_insert_clunky.ogg similarity index 100% rename from sound/effects/tank_insert_clunky.ogg rename to sound/effects/compressed_air/tank_insert_clunky.ogg diff --git a/sound/effects/tank_remove_thunk.ogg b/sound/effects/compressed_air/tank_remove_thunk.ogg similarity index 100% rename from sound/effects/tank_remove_thunk.ogg rename to sound/effects/compressed_air/tank_remove_thunk.ogg diff --git a/sound/effects/creak1.ogg b/sound/effects/creak/creak1.ogg similarity index 100% rename from sound/effects/creak1.ogg rename to sound/effects/creak/creak1.ogg diff --git a/sound/effects/creak2.ogg b/sound/effects/creak/creak2.ogg similarity index 100% rename from sound/effects/creak2.ogg rename to sound/effects/creak/creak2.ogg diff --git a/sound/effects/creak3.ogg b/sound/effects/creak/creak3.ogg similarity index 100% rename from sound/effects/creak3.ogg rename to sound/effects/creak/creak3.ogg diff --git a/sound/effects/curse1.ogg b/sound/effects/curse/curse1.ogg similarity index 100% rename from sound/effects/curse1.ogg rename to sound/effects/curse/curse1.ogg diff --git a/sound/effects/curse2.ogg b/sound/effects/curse/curse2.ogg similarity index 100% rename from sound/effects/curse2.ogg rename to sound/effects/curse/curse2.ogg diff --git a/sound/effects/curse3.ogg b/sound/effects/curse/curse3.ogg similarity index 100% rename from sound/effects/curse3.ogg rename to sound/effects/curse/curse3.ogg diff --git a/sound/effects/curse4.ogg b/sound/effects/curse/curse4.ogg similarity index 100% rename from sound/effects/curse4.ogg rename to sound/effects/curse/curse4.ogg diff --git a/sound/effects/curse5.ogg b/sound/effects/curse/curse5.ogg similarity index 100% rename from sound/effects/curse5.ogg rename to sound/effects/curse/curse5.ogg diff --git a/sound/effects/curse6.ogg b/sound/effects/curse/curse6.ogg similarity index 100% rename from sound/effects/curse6.ogg rename to sound/effects/curse/curse6.ogg diff --git a/sound/effects/curseattack.ogg b/sound/effects/curse/curseattack.ogg similarity index 100% rename from sound/effects/curseattack.ogg rename to sound/effects/curse/curseattack.ogg diff --git a/sound/misc/desecration-01.ogg b/sound/effects/desecration/desecration-01.ogg similarity index 100% rename from sound/misc/desecration-01.ogg rename to sound/effects/desecration/desecration-01.ogg diff --git a/sound/misc/desecration-02.ogg b/sound/effects/desecration/desecration-02.ogg similarity index 100% rename from sound/misc/desecration-02.ogg rename to sound/effects/desecration/desecration-02.ogg diff --git a/sound/misc/desecration-03.ogg b/sound/effects/desecration/desecration-03.ogg similarity index 100% rename from sound/misc/desecration-03.ogg rename to sound/effects/desecration/desecration-03.ogg diff --git a/sound/effects/assslap.ogg b/sound/effects/emotes/assslap.ogg similarity index 100% rename from sound/effects/assslap.ogg rename to sound/effects/emotes/assslap.ogg diff --git a/sound/effects/kiss.ogg b/sound/effects/emotes/kiss.ogg similarity index 100% rename from sound/effects/kiss.ogg rename to sound/effects/emotes/kiss.ogg diff --git a/sound/effects/explosion1.ogg b/sound/effects/explosion/explosion1.ogg similarity index 100% rename from sound/effects/explosion1.ogg rename to sound/effects/explosion/explosion1.ogg diff --git a/sound/effects/explosion2.ogg b/sound/effects/explosion/explosion2.ogg similarity index 100% rename from sound/effects/explosion2.ogg rename to sound/effects/explosion/explosion2.ogg diff --git a/sound/effects/explosion3.ogg b/sound/effects/explosion/explosion3.ogg similarity index 100% rename from sound/effects/explosion3.ogg rename to sound/effects/explosion/explosion3.ogg diff --git a/sound/effects/explosion_distant.ogg b/sound/effects/explosion/explosion_distant.ogg similarity index 100% rename from sound/effects/explosion_distant.ogg rename to sound/effects/explosion/explosion_distant.ogg diff --git a/sound/effects/explosioncreak1.ogg b/sound/effects/explosion/explosioncreak1.ogg similarity index 100% rename from sound/effects/explosioncreak1.ogg rename to sound/effects/explosion/explosioncreak1.ogg diff --git a/sound/effects/explosioncreak2.ogg b/sound/effects/explosion/explosioncreak2.ogg similarity index 100% rename from sound/effects/explosioncreak2.ogg rename to sound/effects/explosion/explosioncreak2.ogg diff --git a/sound/effects/explosionfar.ogg b/sound/effects/explosion/explosionfar.ogg similarity index 100% rename from sound/effects/explosionfar.ogg rename to sound/effects/explosion/explosionfar.ogg diff --git a/sound/effects/water1.ogg b/sound/effects/footstep/water/water1.ogg similarity index 100% rename from sound/effects/water1.ogg rename to sound/effects/footstep/water/water1.ogg diff --git a/sound/effects/water2.ogg b/sound/effects/footstep/water/water2.ogg similarity index 100% rename from sound/effects/water2.ogg rename to sound/effects/footstep/water/water2.ogg diff --git a/sound/effects/water3.ogg b/sound/effects/footstep/water/water3.ogg similarity index 100% rename from sound/effects/water3.ogg rename to sound/effects/footstep/water/water3.ogg diff --git a/sound/effects/water4.ogg b/sound/effects/footstep/water/water4.ogg similarity index 100% rename from sound/effects/water4.ogg rename to sound/effects/footstep/water/water4.ogg diff --git a/sound/effects/glass_reverse.ogg b/sound/effects/glass/glass_reverse.ogg similarity index 100% rename from sound/effects/glass_reverse.ogg rename to sound/effects/glass/glass_reverse.ogg diff --git a/sound/effects/glassbash.ogg b/sound/effects/glass/glassbash.ogg similarity index 100% rename from sound/effects/glassbash.ogg rename to sound/effects/glass/glassbash.ogg diff --git a/sound/effects/glassbr1.ogg b/sound/effects/glass/glassbr1.ogg similarity index 100% rename from sound/effects/glassbr1.ogg rename to sound/effects/glass/glassbr1.ogg diff --git a/sound/effects/glassbr2.ogg b/sound/effects/glass/glassbr2.ogg similarity index 100% rename from sound/effects/glassbr2.ogg rename to sound/effects/glass/glassbr2.ogg diff --git a/sound/effects/glassbr3.ogg b/sound/effects/glass/glassbr3.ogg similarity index 100% rename from sound/effects/glassbr3.ogg rename to sound/effects/glass/glassbr3.ogg diff --git a/sound/effects/glasshit.ogg b/sound/effects/glass/glasshit.ogg similarity index 100% rename from sound/effects/glasshit.ogg rename to sound/effects/glass/glasshit.ogg diff --git a/sound/effects/glassknock.ogg b/sound/effects/glass/glassknock.ogg similarity index 100% rename from sound/effects/glassknock.ogg rename to sound/effects/glass/glassknock.ogg diff --git a/sound/hallucinations/behind_you1.ogg b/sound/effects/hallucinations/behind_you1.ogg similarity index 100% rename from sound/hallucinations/behind_you1.ogg rename to sound/effects/hallucinations/behind_you1.ogg diff --git a/sound/hallucinations/behind_you2.ogg b/sound/effects/hallucinations/behind_you2.ogg similarity index 100% rename from sound/hallucinations/behind_you2.ogg rename to sound/effects/hallucinations/behind_you2.ogg diff --git a/sound/hallucinations/far_noise.ogg b/sound/effects/hallucinations/far_noise.ogg similarity index 100% rename from sound/hallucinations/far_noise.ogg rename to sound/effects/hallucinations/far_noise.ogg diff --git a/sound/hallucinations/growl1.ogg b/sound/effects/hallucinations/growl1.ogg similarity index 100% rename from sound/hallucinations/growl1.ogg rename to sound/effects/hallucinations/growl1.ogg diff --git a/sound/hallucinations/growl2.ogg b/sound/effects/hallucinations/growl2.ogg similarity index 100% rename from sound/hallucinations/growl2.ogg rename to sound/effects/hallucinations/growl2.ogg diff --git a/sound/hallucinations/growl3.ogg b/sound/effects/hallucinations/growl3.ogg similarity index 100% rename from sound/hallucinations/growl3.ogg rename to sound/effects/hallucinations/growl3.ogg diff --git a/sound/hallucinations/i_see_you1.ogg b/sound/effects/hallucinations/i_see_you1.ogg similarity index 100% rename from sound/hallucinations/i_see_you1.ogg rename to sound/effects/hallucinations/i_see_you1.ogg diff --git a/sound/hallucinations/i_see_you2.ogg b/sound/effects/hallucinations/i_see_you2.ogg similarity index 100% rename from sound/hallucinations/i_see_you2.ogg rename to sound/effects/hallucinations/i_see_you2.ogg diff --git a/sound/hallucinations/im_here1.ogg b/sound/effects/hallucinations/im_here1.ogg similarity index 100% rename from sound/hallucinations/im_here1.ogg rename to sound/effects/hallucinations/im_here1.ogg diff --git a/sound/hallucinations/im_here2.ogg b/sound/effects/hallucinations/im_here2.ogg similarity index 100% rename from sound/hallucinations/im_here2.ogg rename to sound/effects/hallucinations/im_here2.ogg diff --git a/sound/hallucinations/look_up1.ogg b/sound/effects/hallucinations/look_up1.ogg similarity index 100% rename from sound/hallucinations/look_up1.ogg rename to sound/effects/hallucinations/look_up1.ogg diff --git a/sound/hallucinations/look_up2.ogg b/sound/effects/hallucinations/look_up2.ogg similarity index 100% rename from sound/hallucinations/look_up2.ogg rename to sound/effects/hallucinations/look_up2.ogg diff --git a/sound/hallucinations/over_here1.ogg b/sound/effects/hallucinations/over_here1.ogg similarity index 100% rename from sound/hallucinations/over_here1.ogg rename to sound/effects/hallucinations/over_here1.ogg diff --git a/sound/hallucinations/over_here2.ogg b/sound/effects/hallucinations/over_here2.ogg similarity index 100% rename from sound/hallucinations/over_here2.ogg rename to sound/effects/hallucinations/over_here2.ogg diff --git a/sound/hallucinations/over_here3.ogg b/sound/effects/hallucinations/over_here3.ogg similarity index 100% rename from sound/hallucinations/over_here3.ogg rename to sound/effects/hallucinations/over_here3.ogg diff --git a/sound/hallucinations/radio_static.ogg b/sound/effects/hallucinations/radio_static.ogg similarity index 100% rename from sound/hallucinations/radio_static.ogg rename to sound/effects/hallucinations/radio_static.ogg diff --git a/sound/hallucinations/turn_around1.ogg b/sound/effects/hallucinations/turn_around1.ogg similarity index 100% rename from sound/hallucinations/turn_around1.ogg rename to sound/effects/hallucinations/turn_around1.ogg diff --git a/sound/hallucinations/turn_around2.ogg b/sound/effects/hallucinations/turn_around2.ogg similarity index 100% rename from sound/hallucinations/turn_around2.ogg rename to sound/effects/hallucinations/turn_around2.ogg diff --git a/sound/hallucinations/veryfar_noise.ogg b/sound/effects/hallucinations/veryfar_noise.ogg similarity index 100% rename from sound/hallucinations/veryfar_noise.ogg rename to sound/effects/hallucinations/veryfar_noise.ogg diff --git a/sound/hallucinations/wail.ogg b/sound/effects/hallucinations/wail.ogg similarity index 100% rename from sound/hallucinations/wail.ogg rename to sound/effects/hallucinations/wail.ogg diff --git a/sound/health/fastbeat.ogg b/sound/effects/health/fastbeat.ogg similarity index 100% rename from sound/health/fastbeat.ogg rename to sound/effects/health/fastbeat.ogg diff --git a/sound/health/slowbeat.ogg b/sound/effects/health/slowbeat.ogg similarity index 100% rename from sound/health/slowbeat.ogg rename to sound/effects/health/slowbeat.ogg diff --git a/sound/effects/his_grace_ascend.ogg b/sound/effects/his_grace/his_grace_ascend.ogg similarity index 100% rename from sound/effects/his_grace_ascend.ogg rename to sound/effects/his_grace/his_grace_ascend.ogg diff --git a/sound/effects/his_grace_awaken.ogg b/sound/effects/his_grace/his_grace_awaken.ogg similarity index 100% rename from sound/effects/his_grace_awaken.ogg rename to sound/effects/his_grace/his_grace_awaken.ogg diff --git a/sound/effects/liquid_pour1.ogg b/sound/effects/liquid_pour/liquid_pour1.ogg similarity index 100% rename from sound/effects/liquid_pour1.ogg rename to sound/effects/liquid_pour/liquid_pour1.ogg diff --git a/sound/effects/liquid_pour2.ogg b/sound/effects/liquid_pour/liquid_pour2.ogg similarity index 100% rename from sound/effects/liquid_pour2.ogg rename to sound/effects/liquid_pour/liquid_pour2.ogg diff --git a/sound/effects/liquid_pour3.ogg b/sound/effects/liquid_pour/liquid_pour3.ogg similarity index 100% rename from sound/effects/liquid_pour3.ogg rename to sound/effects/liquid_pour/liquid_pour3.ogg diff --git a/sound/magic/RATTLEMEBONES.ogg b/sound/effects/magic/RATTLEMEBONES.ogg similarity index 100% rename from sound/magic/RATTLEMEBONES.ogg rename to sound/effects/magic/RATTLEMEBONES.ogg diff --git a/sound/magic/RATTLEMEBONES2.ogg b/sound/effects/magic/RATTLEMEBONES2.ogg similarity index 100% rename from sound/magic/RATTLEMEBONES2.ogg rename to sound/effects/magic/RATTLEMEBONES2.ogg diff --git a/sound/magic/VoidDeflect01.ogg b/sound/effects/magic/VoidDeflect01.ogg similarity index 100% rename from sound/magic/VoidDeflect01.ogg rename to sound/effects/magic/VoidDeflect01.ogg diff --git a/sound/magic/VoidDeflect02.ogg b/sound/effects/magic/VoidDeflect02.ogg similarity index 100% rename from sound/magic/VoidDeflect02.ogg rename to sound/effects/magic/VoidDeflect02.ogg diff --git a/sound/magic/VoidDeflect03.ogg b/sound/effects/magic/VoidDeflect03.ogg similarity index 100% rename from sound/magic/VoidDeflect03.ogg rename to sound/effects/magic/VoidDeflect03.ogg diff --git a/sound/magic/blind.ogg b/sound/effects/magic/blind.ogg similarity index 100% rename from sound/magic/blind.ogg rename to sound/effects/magic/blind.ogg diff --git a/sound/magic/blink.ogg b/sound/effects/magic/blink.ogg similarity index 100% rename from sound/magic/blink.ogg rename to sound/effects/magic/blink.ogg diff --git a/sound/magic/castsummon.ogg b/sound/effects/magic/castsummon.ogg similarity index 100% rename from sound/magic/castsummon.ogg rename to sound/effects/magic/castsummon.ogg diff --git a/sound/magic/charge.ogg b/sound/effects/magic/charge.ogg similarity index 100% rename from sound/magic/charge.ogg rename to sound/effects/magic/charge.ogg diff --git a/sound/magic/clockwork/anima_fragment_attack.ogg b/sound/effects/magic/clockwork/anima_fragment_attack.ogg similarity index 100% rename from sound/magic/clockwork/anima_fragment_attack.ogg rename to sound/effects/magic/clockwork/anima_fragment_attack.ogg diff --git a/sound/magic/clockwork/anima_fragment_death.ogg b/sound/effects/magic/clockwork/anima_fragment_death.ogg similarity index 100% rename from sound/magic/clockwork/anima_fragment_death.ogg rename to sound/effects/magic/clockwork/anima_fragment_death.ogg diff --git a/sound/magic/clockwork/ark_activation.ogg b/sound/effects/magic/clockwork/ark_activation.ogg similarity index 100% rename from sound/magic/clockwork/ark_activation.ogg rename to sound/effects/magic/clockwork/ark_activation.ogg diff --git a/sound/magic/clockwork/ark_activation_sequence.ogg b/sound/effects/magic/clockwork/ark_activation_sequence.ogg similarity index 100% rename from sound/magic/clockwork/ark_activation_sequence.ogg rename to sound/effects/magic/clockwork/ark_activation_sequence.ogg diff --git a/sound/magic/clockwork/credit.txt b/sound/effects/magic/clockwork/credit.txt similarity index 100% rename from sound/magic/clockwork/credit.txt rename to sound/effects/magic/clockwork/credit.txt diff --git a/sound/magic/clockwork/fellowship_armory.ogg b/sound/effects/magic/clockwork/fellowship_armory.ogg similarity index 100% rename from sound/magic/clockwork/fellowship_armory.ogg rename to sound/effects/magic/clockwork/fellowship_armory.ogg diff --git a/sound/magic/clockwork/invoke_general.ogg b/sound/effects/magic/clockwork/invoke_general.ogg similarity index 100% rename from sound/magic/clockwork/invoke_general.ogg rename to sound/effects/magic/clockwork/invoke_general.ogg diff --git a/sound/magic/clockwork/narsie_attack.ogg b/sound/effects/magic/clockwork/narsie_attack.ogg similarity index 100% rename from sound/magic/clockwork/narsie_attack.ogg rename to sound/effects/magic/clockwork/narsie_attack.ogg diff --git a/sound/magic/clockwork/ratvar_attack.ogg b/sound/effects/magic/clockwork/ratvar_attack.ogg similarity index 100% rename from sound/magic/clockwork/ratvar_attack.ogg rename to sound/effects/magic/clockwork/ratvar_attack.ogg diff --git a/sound/magic/cosmic_energy.ogg b/sound/effects/magic/cosmic_energy.ogg similarity index 100% rename from sound/magic/cosmic_energy.ogg rename to sound/effects/magic/cosmic_energy.ogg diff --git a/sound/magic/cosmic_expansion.ogg b/sound/effects/magic/cosmic_expansion.ogg similarity index 100% rename from sound/magic/cosmic_expansion.ogg rename to sound/effects/magic/cosmic_expansion.ogg diff --git a/sound/magic/cowhead_curse.ogg b/sound/effects/magic/cowhead_curse.ogg similarity index 100% rename from sound/magic/cowhead_curse.ogg rename to sound/effects/magic/cowhead_curse.ogg diff --git a/sound/magic/curse.ogg b/sound/effects/magic/curse.ogg similarity index 100% rename from sound/magic/curse.ogg rename to sound/effects/magic/curse.ogg diff --git a/sound/magic/demon_attack1.ogg b/sound/effects/magic/demon_attack1.ogg similarity index 100% rename from sound/magic/demon_attack1.ogg rename to sound/effects/magic/demon_attack1.ogg diff --git a/sound/magic/demon_consume.ogg b/sound/effects/magic/demon_consume.ogg similarity index 100% rename from sound/magic/demon_consume.ogg rename to sound/effects/magic/demon_consume.ogg diff --git a/sound/magic/demon_dies.ogg b/sound/effects/magic/demon_dies.ogg similarity index 100% rename from sound/magic/demon_dies.ogg rename to sound/effects/magic/demon_dies.ogg diff --git a/sound/magic/disable_tech.ogg b/sound/effects/magic/disable_tech.ogg similarity index 100% rename from sound/magic/disable_tech.ogg rename to sound/effects/magic/disable_tech.ogg diff --git a/sound/magic/disintegrate.ogg b/sound/effects/magic/disintegrate.ogg similarity index 100% rename from sound/magic/disintegrate.ogg rename to sound/effects/magic/disintegrate.ogg diff --git a/sound/magic/enter_blood.ogg b/sound/effects/magic/enter_blood.ogg similarity index 100% rename from sound/magic/enter_blood.ogg rename to sound/effects/magic/enter_blood.ogg diff --git a/sound/magic/ethereal_enter.ogg b/sound/effects/magic/ethereal_enter.ogg similarity index 100% rename from sound/magic/ethereal_enter.ogg rename to sound/effects/magic/ethereal_enter.ogg diff --git a/sound/magic/ethereal_exit.ogg b/sound/effects/magic/ethereal_exit.ogg similarity index 100% rename from sound/magic/ethereal_exit.ogg rename to sound/effects/magic/ethereal_exit.ogg diff --git a/sound/magic/exit_blood.ogg b/sound/effects/magic/exit_blood.ogg similarity index 100% rename from sound/magic/exit_blood.ogg rename to sound/effects/magic/exit_blood.ogg diff --git a/sound/magic/fireball.ogg b/sound/effects/magic/fireball.ogg similarity index 100% rename from sound/magic/fireball.ogg rename to sound/effects/magic/fireball.ogg diff --git a/sound/magic/fleshtostone.ogg b/sound/effects/magic/fleshtostone.ogg similarity index 100% rename from sound/magic/fleshtostone.ogg rename to sound/effects/magic/fleshtostone.ogg diff --git a/sound/magic/forcewall.ogg b/sound/effects/magic/forcewall.ogg similarity index 100% rename from sound/magic/forcewall.ogg rename to sound/effects/magic/forcewall.ogg diff --git a/sound/magic/hereticknock.ogg b/sound/effects/magic/hereticknock.ogg similarity index 100% rename from sound/magic/hereticknock.ogg rename to sound/effects/magic/hereticknock.ogg diff --git a/sound/magic/horsehead_curse.ogg b/sound/effects/magic/horsehead_curse.ogg similarity index 100% rename from sound/magic/horsehead_curse.ogg rename to sound/effects/magic/horsehead_curse.ogg diff --git a/sound/magic/knock.ogg b/sound/effects/magic/knock.ogg similarity index 100% rename from sound/magic/knock.ogg rename to sound/effects/magic/knock.ogg diff --git a/sound/magic/lightning_chargeup.ogg b/sound/effects/magic/lightning_chargeup.ogg similarity index 100% rename from sound/magic/lightning_chargeup.ogg rename to sound/effects/magic/lightning_chargeup.ogg diff --git a/sound/magic/lightningbolt.ogg b/sound/effects/magic/lightningbolt.ogg similarity index 100% rename from sound/magic/lightningbolt.ogg rename to sound/effects/magic/lightningbolt.ogg diff --git a/sound/magic/lightningshock.ogg b/sound/effects/magic/lightningshock.ogg similarity index 100% rename from sound/magic/lightningshock.ogg rename to sound/effects/magic/lightningshock.ogg diff --git a/sound/magic/magic_block.ogg b/sound/effects/magic/magic_block.ogg similarity index 100% rename from sound/magic/magic_block.ogg rename to sound/effects/magic/magic_block.ogg diff --git a/sound/magic/magic_block_holy.ogg b/sound/effects/magic/magic_block_holy.ogg similarity index 100% rename from sound/magic/magic_block_holy.ogg rename to sound/effects/magic/magic_block_holy.ogg diff --git a/sound/magic/magic_block_mind.ogg b/sound/effects/magic/magic_block_mind.ogg similarity index 100% rename from sound/magic/magic_block_mind.ogg rename to sound/effects/magic/magic_block_mind.ogg diff --git a/sound/magic/magic_missile.ogg b/sound/effects/magic/magic_missile.ogg similarity index 100% rename from sound/magic/magic_missile.ogg rename to sound/effects/magic/magic_missile.ogg diff --git a/sound/magic/mandswap.ogg b/sound/effects/magic/mandswap.ogg similarity index 100% rename from sound/magic/mandswap.ogg rename to sound/effects/magic/mandswap.ogg diff --git a/sound/magic/mm_hit.ogg b/sound/effects/magic/mm_hit.ogg similarity index 100% rename from sound/magic/mm_hit.ogg rename to sound/effects/magic/mm_hit.ogg diff --git a/sound/magic/mutate.ogg b/sound/effects/magic/mutate.ogg similarity index 100% rename from sound/magic/mutate.ogg rename to sound/effects/magic/mutate.ogg diff --git a/sound/magic/pantsaltar.ogg b/sound/effects/magic/pantsaltar.ogg similarity index 100% rename from sound/magic/pantsaltar.ogg rename to sound/effects/magic/pantsaltar.ogg diff --git a/sound/magic/pighead_curse.ogg b/sound/effects/magic/pighead_curse.ogg similarity index 100% rename from sound/magic/pighead_curse.ogg rename to sound/effects/magic/pighead_curse.ogg diff --git a/sound/magic/repulse.ogg b/sound/effects/magic/repulse.ogg similarity index 100% rename from sound/magic/repulse.ogg rename to sound/effects/magic/repulse.ogg diff --git a/sound/magic/smoke.ogg b/sound/effects/magic/smoke.ogg similarity index 100% rename from sound/magic/smoke.ogg rename to sound/effects/magic/smoke.ogg diff --git a/sound/magic/staff_animation.ogg b/sound/effects/magic/staff_animation.ogg similarity index 100% rename from sound/magic/staff_animation.ogg rename to sound/effects/magic/staff_animation.ogg diff --git a/sound/magic/staff_change.ogg b/sound/effects/magic/staff_change.ogg similarity index 100% rename from sound/magic/staff_change.ogg rename to sound/effects/magic/staff_change.ogg diff --git a/sound/magic/staff_chaos.ogg b/sound/effects/magic/staff_chaos.ogg similarity index 100% rename from sound/magic/staff_chaos.ogg rename to sound/effects/magic/staff_chaos.ogg diff --git a/sound/magic/staff_door.ogg b/sound/effects/magic/staff_door.ogg similarity index 100% rename from sound/magic/staff_door.ogg rename to sound/effects/magic/staff_door.ogg diff --git a/sound/magic/staff_healing.ogg b/sound/effects/magic/staff_healing.ogg similarity index 100% rename from sound/magic/staff_healing.ogg rename to sound/effects/magic/staff_healing.ogg diff --git a/sound/magic/staff_shrink.ogg b/sound/effects/magic/staff_shrink.ogg similarity index 100% rename from sound/magic/staff_shrink.ogg rename to sound/effects/magic/staff_shrink.ogg diff --git a/sound/magic/summon_guns.ogg b/sound/effects/magic/summon_guns.ogg similarity index 100% rename from sound/magic/summon_guns.ogg rename to sound/effects/magic/summon_guns.ogg diff --git a/sound/magic/summon_karp.ogg b/sound/effects/magic/summon_karp.ogg similarity index 100% rename from sound/magic/summon_karp.ogg rename to sound/effects/magic/summon_karp.ogg diff --git a/sound/magic/summon_magic.ogg b/sound/effects/magic/summon_magic.ogg similarity index 100% rename from sound/magic/summon_magic.ogg rename to sound/effects/magic/summon_magic.ogg diff --git a/sound/magic/summonitems_generic.ogg b/sound/effects/magic/summonitems_generic.ogg similarity index 100% rename from sound/magic/summonitems_generic.ogg rename to sound/effects/magic/summonitems_generic.ogg diff --git a/sound/magic/swap.ogg b/sound/effects/magic/swap.ogg similarity index 100% rename from sound/magic/swap.ogg rename to sound/effects/magic/swap.ogg diff --git a/sound/magic/tail_swing.ogg b/sound/effects/magic/tail_swing.ogg similarity index 100% rename from sound/magic/tail_swing.ogg rename to sound/effects/magic/tail_swing.ogg diff --git a/sound/magic/teleport_app.ogg b/sound/effects/magic/teleport_app.ogg similarity index 100% rename from sound/magic/teleport_app.ogg rename to sound/effects/magic/teleport_app.ogg diff --git a/sound/magic/teleport_diss.ogg b/sound/effects/magic/teleport_diss.ogg similarity index 100% rename from sound/magic/teleport_diss.ogg rename to sound/effects/magic/teleport_diss.ogg diff --git a/sound/magic/timeparadox2.ogg b/sound/effects/magic/timeparadox2.ogg similarity index 100% rename from sound/magic/timeparadox2.ogg rename to sound/effects/magic/timeparadox2.ogg diff --git a/sound/magic/voidblink.ogg b/sound/effects/magic/voidblink.ogg similarity index 100% rename from sound/magic/voidblink.ogg rename to sound/effects/magic/voidblink.ogg diff --git a/sound/magic/wand_teleport.ogg b/sound/effects/magic/wand_teleport.ogg similarity index 100% rename from sound/magic/wand_teleport.ogg rename to sound/effects/magic/wand_teleport.ogg diff --git a/sound/magic/wandodeath.ogg b/sound/effects/magic/wandodeath.ogg similarity index 100% rename from sound/magic/wandodeath.ogg rename to sound/effects/magic/wandodeath.ogg diff --git a/sound/magic/warpwhistle.ogg b/sound/effects/magic/warpwhistle.ogg similarity index 100% rename from sound/magic/warpwhistle.ogg rename to sound/effects/magic/warpwhistle.ogg diff --git a/sound/effects/pageturn1.ogg b/sound/effects/page_turn/pageturn1.ogg similarity index 100% rename from sound/effects/pageturn1.ogg rename to sound/effects/page_turn/pageturn1.ogg diff --git a/sound/effects/pageturn2.ogg b/sound/effects/page_turn/pageturn2.ogg similarity index 100% rename from sound/effects/pageturn2.ogg rename to sound/effects/page_turn/pageturn2.ogg diff --git a/sound/effects/pageturn3.ogg b/sound/effects/page_turn/pageturn3.ogg similarity index 100% rename from sound/effects/pageturn3.ogg rename to sound/effects/page_turn/pageturn3.ogg diff --git a/sound/effects/picaxe1.ogg b/sound/effects/pickaxe/picaxe1.ogg similarity index 100% rename from sound/effects/picaxe1.ogg rename to sound/effects/pickaxe/picaxe1.ogg diff --git a/sound/effects/picaxe2.ogg b/sound/effects/pickaxe/picaxe2.ogg similarity index 100% rename from sound/effects/picaxe2.ogg rename to sound/effects/pickaxe/picaxe2.ogg diff --git a/sound/effects/picaxe3.ogg b/sound/effects/pickaxe/picaxe3.ogg similarity index 100% rename from sound/effects/picaxe3.ogg rename to sound/effects/pickaxe/picaxe3.ogg diff --git a/sound/effects/portal_close.ogg b/sound/effects/portal/portal_close.ogg similarity index 100% rename from sound/effects/portal_close.ogg rename to sound/effects/portal/portal_close.ogg diff --git a/sound/effects/portal_open_1.ogg b/sound/effects/portal/portal_open_1.ogg similarity index 100% rename from sound/effects/portal_open_1.ogg rename to sound/effects/portal/portal_open_1.ogg diff --git a/sound/effects/portal_open_2.ogg b/sound/effects/portal/portal_open_2.ogg similarity index 100% rename from sound/effects/portal_open_2.ogg rename to sound/effects/portal/portal_open_2.ogg diff --git a/sound/effects/portal_open_3.ogg b/sound/effects/portal/portal_open_3.ogg similarity index 100% rename from sound/effects/portal_open_3.ogg rename to sound/effects/portal/portal_open_3.ogg diff --git a/sound/effects/portal_travel.ogg b/sound/effects/portal/portal_travel.ogg similarity index 100% rename from sound/effects/portal_travel.ogg rename to sound/effects/portal/portal_travel.ogg diff --git a/sound/effects/rock_break.ogg b/sound/effects/rock/rock_break.ogg similarity index 100% rename from sound/effects/rock_break.ogg rename to sound/effects/rock/rock_break.ogg diff --git a/sound/effects/rocktap1.ogg b/sound/effects/rock/rocktap1.ogg similarity index 100% rename from sound/effects/rocktap1.ogg rename to sound/effects/rock/rocktap1.ogg diff --git a/sound/effects/rocktap2.ogg b/sound/effects/rock/rocktap2.ogg similarity index 100% rename from sound/effects/rocktap2.ogg rename to sound/effects/rock/rocktap2.ogg diff --git a/sound/effects/rocktap3.ogg b/sound/effects/rock/rocktap3.ogg similarity index 100% rename from sound/effects/rocktap3.ogg rename to sound/effects/rock/rocktap3.ogg diff --git a/sound/effects/rustle1.ogg b/sound/effects/rustle/rustle1.ogg similarity index 100% rename from sound/effects/rustle1.ogg rename to sound/effects/rustle/rustle1.ogg diff --git a/sound/effects/rustle2.ogg b/sound/effects/rustle/rustle2.ogg similarity index 100% rename from sound/effects/rustle2.ogg rename to sound/effects/rustle/rustle2.ogg diff --git a/sound/effects/rustle3.ogg b/sound/effects/rustle/rustle3.ogg similarity index 100% rename from sound/effects/rustle3.ogg rename to sound/effects/rustle/rustle3.ogg diff --git a/sound/effects/rustle4.ogg b/sound/effects/rustle/rustle4.ogg similarity index 100% rename from sound/effects/rustle4.ogg rename to sound/effects/rustle/rustle4.ogg diff --git a/sound/effects/rustle5.ogg b/sound/effects/rustle/rustle5.ogg similarity index 100% rename from sound/effects/rustle5.ogg rename to sound/effects/rustle/rustle5.ogg diff --git a/sound/effects/screech.ogg b/sound/effects/screech.ogg index b90f612621e7b..f4adab5e01fd9 100644 Binary files a/sound/effects/screech.ogg and b/sound/effects/screech.ogg differ diff --git a/sound/effects/soup_boil1.ogg b/sound/effects/soup_boil/soup_boil1.ogg similarity index 100% rename from sound/effects/soup_boil1.ogg rename to sound/effects/soup_boil/soup_boil1.ogg diff --git a/sound/effects/soup_boil2.ogg b/sound/effects/soup_boil/soup_boil2.ogg similarity index 100% rename from sound/effects/soup_boil2.ogg rename to sound/effects/soup_boil/soup_boil2.ogg diff --git a/sound/effects/soup_boil3.ogg b/sound/effects/soup_boil/soup_boil3.ogg similarity index 100% rename from sound/effects/soup_boil3.ogg rename to sound/effects/soup_boil/soup_boil3.ogg diff --git a/sound/effects/soup_boil4.ogg b/sound/effects/soup_boil/soup_boil4.ogg similarity index 100% rename from sound/effects/soup_boil4.ogg rename to sound/effects/soup_boil/soup_boil4.ogg diff --git a/sound/effects/soup_boil5.ogg b/sound/effects/soup_boil/soup_boil5.ogg similarity index 100% rename from sound/effects/soup_boil5.ogg rename to sound/effects/soup_boil/soup_boil5.ogg diff --git a/sound/effects/soup_boil_end.ogg b/sound/effects/soup_boil/soup_boil_end.ogg similarity index 100% rename from sound/effects/soup_boil_end.ogg rename to sound/effects/soup_boil/soup_boil_end.ogg diff --git a/sound/effects/sparks1.ogg b/sound/effects/sparks/sparks1.ogg similarity index 100% rename from sound/effects/sparks1.ogg rename to sound/effects/sparks/sparks1.ogg diff --git a/sound/effects/sparks2.ogg b/sound/effects/sparks/sparks2.ogg similarity index 100% rename from sound/effects/sparks2.ogg rename to sound/effects/sparks/sparks2.ogg diff --git a/sound/effects/sparks3.ogg b/sound/effects/sparks/sparks3.ogg similarity index 100% rename from sound/effects/sparks3.ogg rename to sound/effects/sparks/sparks3.ogg diff --git a/sound/effects/sparks4.ogg b/sound/effects/sparks/sparks4.ogg similarity index 100% rename from sound/effects/sparks4.ogg rename to sound/effects/sparks/sparks4.ogg diff --git a/sound/effects/treechop1.ogg b/sound/effects/treechop/treechop1.ogg similarity index 100% rename from sound/effects/treechop1.ogg rename to sound/effects/treechop/treechop1.ogg diff --git a/sound/effects/treechop2.ogg b/sound/effects/treechop/treechop2.ogg similarity index 100% rename from sound/effects/treechop2.ogg rename to sound/effects/treechop/treechop2.ogg diff --git a/sound/effects/treechop3.ogg b/sound/effects/treechop/treechop3.ogg similarity index 100% rename from sound/effects/treechop3.ogg rename to sound/effects/treechop/treechop3.ogg diff --git a/sound/items/airhorn.ogg b/sound/items/airhorn/airhorn.ogg similarity index 100% rename from sound/items/airhorn.ogg rename to sound/items/airhorn/airhorn.ogg diff --git a/sound/items/airhorn2.ogg b/sound/items/airhorn/airhorn2.ogg similarity index 100% rename from sound/items/airhorn2.ogg rename to sound/items/airhorn/airhorn2.ogg diff --git a/sound/items/attributions.txt b/sound/items/attributions.txt index a9fa969808060..7f1dcaabcc467 100644 --- a/sound/items/attributions.txt +++ b/sound/items/attributions.txt @@ -1,13 +1,3 @@ - -{ -cig_light.ogg -cig_snuff.ogg -lighter_on.ogg -lighter_off.ogg -zippo_onn.ogg -zippo_off.ogg -} - Taken from https://github.com/BeeStation/BeeStation-Hornet/pull/29 - pen_click.ogg from https://freesound.org/people/LexzachGames/sounds/431492/ , license: CC0 night_vision_on.ogg by Syna-Max -- https://freesound.org/s/60345/ -- License: Attribution NonCommercial 4.0 diff --git a/sound/items/cardflip.ogg b/sound/items/cards/cardflip.ogg similarity index 100% rename from sound/items/cardflip.ogg rename to sound/items/cards/cardflip.ogg diff --git a/sound/items/cardshuffle.ogg b/sound/items/cards/cardshuffle.ogg similarity index 100% rename from sound/items/cardshuffle.ogg rename to sound/items/cards/cardshuffle.ogg diff --git a/sound/items/duct_tape_rip.ogg b/sound/items/duct_tape/duct_tape_rip.ogg similarity index 100% rename from sound/items/duct_tape_rip.ogg rename to sound/items/duct_tape/duct_tape_rip.ogg diff --git a/sound/items/duct_tape_snap.ogg b/sound/items/duct_tape/duct_tape_snap.ogg similarity index 100% rename from sound/items/duct_tape_snap.ogg rename to sound/items/duct_tape/duct_tape_snap.ogg diff --git a/sound/items/fultext_deploy.ogg b/sound/items/fulton/fultext_deploy.ogg similarity index 100% rename from sound/items/fultext_deploy.ogg rename to sound/items/fulton/fultext_deploy.ogg diff --git a/sound/items/fultext_launch.ogg b/sound/items/fulton/fultext_launch.ogg similarity index 100% rename from sound/items/fultext_launch.ogg rename to sound/items/fulton/fultext_launch.ogg diff --git a/sound/items/cardboard_box_open.ogg b/sound/items/handling/cardboard_box/cardboard_box_open.ogg similarity index 100% rename from sound/items/cardboard_box_open.ogg rename to sound/items/handling/cardboard_box/cardboard_box_open.ogg diff --git a/sound/items/cardboard_box_rustle.ogg b/sound/items/handling/cardboard_box/cardboard_box_rustle.ogg similarity index 100% rename from sound/items/cardboard_box_rustle.ogg rename to sound/items/handling/cardboard_box/cardboard_box_rustle.ogg diff --git a/sound/items/handling/cardboardbox_drop.ogg b/sound/items/handling/cardboard_box/cardboardbox_drop.ogg similarity index 100% rename from sound/items/handling/cardboardbox_drop.ogg rename to sound/items/handling/cardboard_box/cardboardbox_drop.ogg diff --git a/sound/items/handling/cardboardbox_pickup.ogg b/sound/items/handling/cardboard_box/cardboardbox_pickup.ogg similarity index 100% rename from sound/items/handling/cardboardbox_pickup.ogg rename to sound/items/handling/cardboard_box/cardboardbox_pickup.ogg diff --git a/sound/items/gas_tank_drop.ogg b/sound/items/handling/gas_tank/gas_tank_drop.ogg similarity index 100% rename from sound/items/gas_tank_drop.ogg rename to sound/items/handling/gas_tank/gas_tank_drop.ogg diff --git a/sound/items/gas_tank_pick_up.ogg b/sound/items/handling/gas_tank/gas_tank_pick_up.ogg similarity index 100% rename from sound/items/gas_tank_pick_up.ogg rename to sound/items/handling/gas_tank/gas_tank_pick_up.ogg diff --git a/sound/items/grenade_drop.ogg b/sound/items/handling/grenade/grenade_drop.ogg similarity index 100% rename from sound/items/grenade_drop.ogg rename to sound/items/handling/grenade/grenade_drop.ogg diff --git a/sound/items/grenade_pick_up.ogg b/sound/items/handling/grenade/grenade_pick_up.ogg similarity index 100% rename from sound/items/grenade_pick_up.ogg rename to sound/items/handling/grenade/grenade_pick_up.ogg diff --git a/sound/items/gun_drop.ogg b/sound/items/handling/gun/gun_drop.ogg similarity index 100% rename from sound/items/gun_drop.ogg rename to sound/items/handling/gun/gun_drop.ogg diff --git a/sound/items/gun_pick_up.ogg b/sound/items/handling/gun/gun_pick_up.ogg similarity index 100% rename from sound/items/gun_pick_up.ogg rename to sound/items/handling/gun/gun_pick_up.ogg diff --git a/sound/items/handcuffs_drop.ogg b/sound/items/handling/handcuffs/handcuffs_drop.ogg similarity index 100% rename from sound/items/handcuffs_drop.ogg rename to sound/items/handling/handcuffs/handcuffs_drop.ogg diff --git a/sound/items/handcuffs_pick_up.ogg b/sound/items/handling/handcuffs/handcuffs_pick_up.ogg similarity index 100% rename from sound/items/handcuffs_pick_up.ogg rename to sound/items/handling/handcuffs/handcuffs_pick_up.ogg diff --git a/sound/items/holster.ogg b/sound/items/handling/holster_open.ogg similarity index 100% rename from sound/items/holster.ogg rename to sound/items/handling/holster_open.ogg diff --git a/sound/items/handling/lead_pipe/lead_pipe_drop.ogg b/sound/items/handling/lead_pipe/lead_pipe_drop.ogg new file mode 100644 index 0000000000000..63561fc2f950c Binary files /dev/null and b/sound/items/handling/lead_pipe/lead_pipe_drop.ogg differ diff --git a/sound/items/lead_pipe_pickup.ogg b/sound/items/handling/lead_pipe/lead_pipe_pickup.ogg similarity index 100% rename from sound/items/lead_pipe_pickup.ogg rename to sound/items/handling/lead_pipe/lead_pipe_pickup.ogg diff --git a/sound/items/cardboard_drop.ogg b/sound/items/handling/materials/cardboard_drop.ogg similarity index 100% rename from sound/items/cardboard_drop.ogg rename to sound/items/handling/materials/cardboard_drop.ogg diff --git a/sound/items/cardboard_pick_up.ogg b/sound/items/handling/materials/cardboard_pick_up.ogg similarity index 100% rename from sound/items/cardboard_pick_up.ogg rename to sound/items/handling/materials/cardboard_pick_up.ogg diff --git a/sound/items/glass_drop.ogg b/sound/items/handling/materials/glass_drop.ogg similarity index 100% rename from sound/items/glass_drop.ogg rename to sound/items/handling/materials/glass_drop.ogg diff --git a/sound/items/glass_pick_up.ogg b/sound/items/handling/materials/glass_pick_up.ogg similarity index 100% rename from sound/items/glass_pick_up.ogg rename to sound/items/handling/materials/glass_pick_up.ogg diff --git a/sound/items/iron_rod_pick_up.ogg b/sound/items/handling/materials/iron_rod_pick_up.ogg similarity index 100% rename from sound/items/iron_rod_pick_up.ogg rename to sound/items/handling/materials/iron_rod_pick_up.ogg diff --git a/sound/items/metal_drop.ogg b/sound/items/handling/materials/metal_drop.ogg similarity index 100% rename from sound/items/metal_drop.ogg rename to sound/items/handling/materials/metal_drop.ogg diff --git a/sound/items/metal_pick_up.ogg b/sound/items/handling/materials/metal_pick_up.ogg similarity index 100% rename from sound/items/metal_pick_up.ogg rename to sound/items/handling/materials/metal_pick_up.ogg diff --git a/sound/items/plastic_drop.ogg b/sound/items/handling/materials/plastic_drop.ogg similarity index 100% rename from sound/items/plastic_drop.ogg rename to sound/items/handling/materials/plastic_drop.ogg diff --git a/sound/items/plastic_pick_up.ogg b/sound/items/handling/materials/plastic_pick_up.ogg similarity index 100% rename from sound/items/plastic_pick_up.ogg rename to sound/items/handling/materials/plastic_pick_up.ogg diff --git a/sound/items/skin_drop.ogg b/sound/items/handling/materials/skin_drop.ogg similarity index 100% rename from sound/items/skin_drop.ogg rename to sound/items/handling/materials/skin_drop.ogg diff --git a/sound/items/skin_pick_up.ogg b/sound/items/handling/materials/skin_pick_up.ogg similarity index 100% rename from sound/items/skin_pick_up.ogg rename to sound/items/handling/materials/skin_pick_up.ogg diff --git a/sound/items/wood_drop.ogg b/sound/items/handling/materials/wood_drop.ogg similarity index 100% rename from sound/items/wood_drop.ogg rename to sound/items/handling/materials/wood_drop.ogg diff --git a/sound/items/wood_pick_up.ogg b/sound/items/handling/materials/wood_pick_up.ogg similarity index 100% rename from sound/items/wood_pick_up.ogg rename to sound/items/handling/materials/wood_pick_up.ogg diff --git a/sound/items/medkit_drop.ogg b/sound/items/handling/medkit/medkit_drop.ogg similarity index 100% rename from sound/items/medkit_drop.ogg rename to sound/items/handling/medkit/medkit_drop.ogg diff --git a/sound/items/medkit_open.ogg b/sound/items/handling/medkit/medkit_open.ogg similarity index 100% rename from sound/items/medkit_open.ogg rename to sound/items/handling/medkit/medkit_open.ogg diff --git a/sound/items/medkit_pick_up.ogg b/sound/items/handling/medkit/medkit_pick_up.ogg similarity index 100% rename from sound/items/medkit_pick_up.ogg rename to sound/items/handling/medkit/medkit_pick_up.ogg diff --git a/sound/items/medkit_rustle.ogg b/sound/items/handling/medkit/medkit_rustle.ogg similarity index 100% rename from sound/items/medkit_rustle.ogg rename to sound/items/handling/medkit/medkit_rustle.ogg diff --git a/sound/items/pepper_spray_drop.ogg b/sound/items/handling/pepper_spray/pepper_spray_drop.ogg similarity index 100% rename from sound/items/pepper_spray_drop.ogg rename to sound/items/handling/pepper_spray/pepper_spray_drop.ogg diff --git a/sound/items/pepper_spray_pick_up.ogg b/sound/items/handling/pepper_spray/pepper_spray_pick_up.ogg similarity index 100% rename from sound/items/pepper_spray_pick_up.ogg rename to sound/items/handling/pepper_spray/pepper_spray_pick_up.ogg diff --git a/sound/items/handling/readme.txt b/sound/items/handling/readme.txt new file mode 100644 index 0000000000000..699c3a684bcde --- /dev/null +++ b/sound/items/handling/readme.txt @@ -0,0 +1,7 @@ +handling in this case is: +- picking up an item +- dropping an item +- storage item rustle sounds +- storage item open sounds + +please keep it organised! diff --git a/sound/items/plastic_shield_drop.ogg b/sound/items/handling/shield/plastic_shield_drop.ogg similarity index 100% rename from sound/items/plastic_shield_drop.ogg rename to sound/items/handling/shield/plastic_shield_drop.ogg diff --git a/sound/items/plastic_shield_pick_up.ogg b/sound/items/handling/shield/plastic_shield_pick_up.ogg similarity index 100% rename from sound/items/plastic_shield_pick_up.ogg rename to sound/items/handling/shield/plastic_shield_pick_up.ogg diff --git a/sound/surgery/cautery1.ogg b/sound/items/handling/surgery/cautery1.ogg similarity index 100% rename from sound/surgery/cautery1.ogg rename to sound/items/handling/surgery/cautery1.ogg diff --git a/sound/surgery/cautery2.ogg b/sound/items/handling/surgery/cautery2.ogg similarity index 100% rename from sound/surgery/cautery2.ogg rename to sound/items/handling/surgery/cautery2.ogg diff --git a/sound/surgery/hemostat1.ogg b/sound/items/handling/surgery/hemostat1.ogg similarity index 100% rename from sound/surgery/hemostat1.ogg rename to sound/items/handling/surgery/hemostat1.ogg diff --git a/sound/surgery/organ1.ogg b/sound/items/handling/surgery/organ1.ogg similarity index 100% rename from sound/surgery/organ1.ogg rename to sound/items/handling/surgery/organ1.ogg diff --git a/sound/surgery/organ2.ogg b/sound/items/handling/surgery/organ2.ogg similarity index 100% rename from sound/surgery/organ2.ogg rename to sound/items/handling/surgery/organ2.ogg diff --git a/sound/surgery/retractor1.ogg b/sound/items/handling/surgery/retractor1.ogg similarity index 100% rename from sound/surgery/retractor1.ogg rename to sound/items/handling/surgery/retractor1.ogg diff --git a/sound/surgery/retractor2.ogg b/sound/items/handling/surgery/retractor2.ogg similarity index 100% rename from sound/surgery/retractor2.ogg rename to sound/items/handling/surgery/retractor2.ogg diff --git a/sound/surgery/saw.ogg b/sound/items/handling/surgery/saw.ogg similarity index 100% rename from sound/surgery/saw.ogg rename to sound/items/handling/surgery/saw.ogg diff --git a/sound/surgery/scalpel1.ogg b/sound/items/handling/surgery/scalpel1.ogg similarity index 100% rename from sound/surgery/scalpel1.ogg rename to sound/items/handling/surgery/scalpel1.ogg diff --git a/sound/surgery/scalpel2.ogg b/sound/items/handling/surgery/scalpel2.ogg similarity index 100% rename from sound/surgery/scalpel2.ogg rename to sound/items/handling/surgery/scalpel2.ogg diff --git a/sound/items/handling/toolbox_drop.ogg b/sound/items/handling/toolbox/toolbox_drop.ogg similarity index 100% rename from sound/items/handling/toolbox_drop.ogg rename to sound/items/handling/toolbox/toolbox_drop.ogg diff --git a/sound/items/toolbox_open.ogg b/sound/items/handling/toolbox/toolbox_open.ogg similarity index 100% rename from sound/items/toolbox_open.ogg rename to sound/items/handling/toolbox/toolbox_open.ogg diff --git a/sound/items/handling/toolbox_pickup.ogg b/sound/items/handling/toolbox/toolbox_pickup.ogg similarity index 100% rename from sound/items/handling/toolbox_pickup.ogg rename to sound/items/handling/toolbox/toolbox_pickup.ogg diff --git a/sound/items/toolbox_rustle.ogg b/sound/items/handling/toolbox/toolbox_rustle.ogg similarity index 100% rename from sound/items/toolbox_rustle.ogg rename to sound/items/handling/toolbox/toolbox_rustle.ogg diff --git a/sound/items/handling/crowbar_drop.ogg b/sound/items/handling/tools/crowbar_drop.ogg similarity index 100% rename from sound/items/handling/crowbar_drop.ogg rename to sound/items/handling/tools/crowbar_drop.ogg diff --git a/sound/items/handling/crowbar_pickup.ogg b/sound/items/handling/tools/crowbar_pickup.ogg similarity index 100% rename from sound/items/handling/crowbar_pickup.ogg rename to sound/items/handling/tools/crowbar_pickup.ogg diff --git a/sound/items/handling/multitool_drop.ogg b/sound/items/handling/tools/multitool_drop.ogg similarity index 100% rename from sound/items/handling/multitool_drop.ogg rename to sound/items/handling/tools/multitool_drop.ogg diff --git a/sound/items/handling/multitool_pickup.ogg b/sound/items/handling/tools/multitool_pickup.ogg similarity index 100% rename from sound/items/handling/multitool_pickup.ogg rename to sound/items/handling/tools/multitool_pickup.ogg diff --git a/sound/items/handling/rcd_drop.ogg b/sound/items/handling/tools/rcd_drop.ogg similarity index 100% rename from sound/items/handling/rcd_drop.ogg rename to sound/items/handling/tools/rcd_drop.ogg diff --git a/sound/items/handling/rcd_pickup.ogg b/sound/items/handling/tools/rcd_pickup.ogg similarity index 100% rename from sound/items/handling/rcd_pickup.ogg rename to sound/items/handling/tools/rcd_pickup.ogg diff --git a/sound/items/handling/rpd_drop.ogg b/sound/items/handling/tools/rpd_drop.ogg similarity index 100% rename from sound/items/handling/rpd_drop.ogg rename to sound/items/handling/tools/rpd_drop.ogg diff --git a/sound/items/handling/rpd_pickup.ogg b/sound/items/handling/tools/rpd_pickup.ogg similarity index 100% rename from sound/items/handling/rpd_pickup.ogg rename to sound/items/handling/tools/rpd_pickup.ogg diff --git a/sound/items/handling/screwdriver_drop.ogg b/sound/items/handling/tools/screwdriver_drop.ogg similarity index 100% rename from sound/items/handling/screwdriver_drop.ogg rename to sound/items/handling/tools/screwdriver_drop.ogg diff --git a/sound/items/handling/screwdriver_pickup.ogg b/sound/items/handling/tools/screwdriver_pickup.ogg similarity index 100% rename from sound/items/handling/screwdriver_pickup.ogg rename to sound/items/handling/tools/screwdriver_pickup.ogg diff --git a/sound/items/handling/weldingtool_drop.ogg b/sound/items/handling/tools/weldingtool_drop.ogg similarity index 100% rename from sound/items/handling/weldingtool_drop.ogg rename to sound/items/handling/tools/weldingtool_drop.ogg diff --git a/sound/items/handling/weldingtool_pickup.ogg b/sound/items/handling/tools/weldingtool_pickup.ogg similarity index 100% rename from sound/items/handling/weldingtool_pickup.ogg rename to sound/items/handling/tools/weldingtool_pickup.ogg diff --git a/sound/items/handling/wirecutter_drop.ogg b/sound/items/handling/tools/wirecutter_drop.ogg similarity index 100% rename from sound/items/handling/wirecutter_drop.ogg rename to sound/items/handling/tools/wirecutter_drop.ogg diff --git a/sound/items/handling/wirecutter_pickup.ogg b/sound/items/handling/tools/wirecutter_pickup.ogg similarity index 100% rename from sound/items/handling/wirecutter_pickup.ogg rename to sound/items/handling/tools/wirecutter_pickup.ogg diff --git a/sound/items/handling/wrench_drop.ogg b/sound/items/handling/tools/wrench_drop.ogg similarity index 100% rename from sound/items/handling/wrench_drop.ogg rename to sound/items/handling/tools/wrench_drop.ogg diff --git a/sound/items/handling/wrench_pickup.ogg b/sound/items/handling/tools/wrench_pickup.ogg similarity index 100% rename from sound/items/handling/wrench_pickup.ogg rename to sound/items/handling/tools/wrench_pickup.ogg diff --git a/sound/items/internals_off.ogg b/sound/items/internals/internals_off.ogg similarity index 100% rename from sound/items/internals_off.ogg rename to sound/items/internals/internals_off.ogg diff --git a/sound/items/internals_on.ogg b/sound/items/internals/internals_on.ogg similarity index 100% rename from sound/items/internals_on.ogg rename to sound/items/internals/internals_on.ogg diff --git a/sound/items/knell1.ogg b/sound/items/knell/knell1.ogg similarity index 100% rename from sound/items/knell1.ogg rename to sound/items/knell/knell1.ogg diff --git a/sound/items/knell2.ogg b/sound/items/knell/knell2.ogg similarity index 100% rename from sound/items/knell2.ogg rename to sound/items/knell/knell2.ogg diff --git a/sound/items/knell3.ogg b/sound/items/knell/knell3.ogg similarity index 100% rename from sound/items/knell3.ogg rename to sound/items/knell/knell3.ogg diff --git a/sound/items/knell4.ogg b/sound/items/knell/knell4.ogg similarity index 100% rename from sound/items/knell4.ogg rename to sound/items/knell/knell4.ogg diff --git a/sound/items/lead_pipe_drop.ogg b/sound/items/lead_pipe_drop.ogg deleted file mode 100644 index 144d24ca94c7a..0000000000000 Binary files a/sound/items/lead_pipe_drop.ogg and /dev/null differ diff --git a/sound/items/lighter/attribution.txt b/sound/items/lighter/attribution.txt new file mode 100644 index 0000000000000..7ded54c464141 --- /dev/null +++ b/sound/items/lighter/attribution.txt @@ -0,0 +1,8 @@ +{ +cig_light.ogg +cig_snuff.ogg +lighter_on.ogg +lighter_off.ogg +zippo_onn.ogg +zippo_off.ogg +} - Taken from https://github.com/BeeStation/BeeStation-Hornet/pull/29 diff --git a/sound/items/cig_light.ogg b/sound/items/lighter/cig_light.ogg similarity index 100% rename from sound/items/cig_light.ogg rename to sound/items/lighter/cig_light.ogg diff --git a/sound/items/cig_snuff.ogg b/sound/items/lighter/cig_snuff.ogg similarity index 100% rename from sound/items/cig_snuff.ogg rename to sound/items/lighter/cig_snuff.ogg diff --git a/sound/items/lighter_off.ogg b/sound/items/lighter/lighter_off.ogg similarity index 100% rename from sound/items/lighter_off.ogg rename to sound/items/lighter/lighter_off.ogg diff --git a/sound/items/lighter_on.ogg b/sound/items/lighter/lighter_on.ogg similarity index 100% rename from sound/items/lighter_on.ogg rename to sound/items/lighter/lighter_on.ogg diff --git a/sound/items/zippo_off.ogg b/sound/items/lighter/zippo_off.ogg similarity index 100% rename from sound/items/zippo_off.ogg rename to sound/items/lighter/zippo_off.ogg diff --git a/sound/items/zippo_on.ogg b/sound/items/lighter/zippo_on.ogg similarity index 100% rename from sound/items/zippo_on.ogg rename to sound/items/lighter/zippo_on.ogg diff --git a/sound/items/pillow_hit.ogg b/sound/items/pillow/pillow_hit.ogg similarity index 100% rename from sound/items/pillow_hit.ogg rename to sound/items/pillow/pillow_hit.ogg diff --git a/sound/items/pillow_hit2.ogg b/sound/items/pillow/pillow_hit2.ogg similarity index 100% rename from sound/items/pillow_hit2.ogg rename to sound/items/pillow/pillow_hit2.ogg diff --git a/sound/items/polaroid1.ogg b/sound/items/polaroid/polaroid1.ogg similarity index 100% rename from sound/items/polaroid1.ogg rename to sound/items/polaroid/polaroid1.ogg diff --git a/sound/items/polaroid2.ogg b/sound/items/polaroid/polaroid2.ogg similarity index 100% rename from sound/items/polaroid2.ogg rename to sound/items/polaroid/polaroid2.ogg diff --git a/sound/items/poster_being_created.ogg b/sound/items/poster/poster_being_created.ogg similarity index 100% rename from sound/items/poster_being_created.ogg rename to sound/items/poster/poster_being_created.ogg diff --git a/sound/items/poster_ripped.ogg b/sound/items/poster/poster_ripped.ogg similarity index 100% rename from sound/items/poster_ripped.ogg rename to sound/items/poster/poster_ripped.ogg diff --git a/sound/items/pshoom.ogg b/sound/items/pshoom/pshoom.ogg similarity index 100% rename from sound/items/pshoom.ogg rename to sound/items/pshoom/pshoom.ogg diff --git a/sound/items/pshoom_2.ogg b/sound/items/pshoom/pshoom_2.ogg similarity index 100% rename from sound/items/pshoom_2.ogg rename to sound/items/pshoom/pshoom_2.ogg diff --git a/sound/items/radio/attribution.txt b/sound/items/radio/attribution.txt new file mode 100644 index 0000000000000..2f15af96c820b --- /dev/null +++ b/sound/items/radio/attribution.txt @@ -0,0 +1,8 @@ +radio_talk.ogg by cs2975871. Shortened and cut. +https://freesound.org/people/cs2975871/sounds/514185/ + +radio_important.ogg by morganpurkis. +https://freesound.org/people/morganpurkis/sounds/392972/ + +radio_receive.ogg by JovianSounds. Shortened and cut. +https://freesound.org/people/JovianSounds/sounds/524205/ diff --git a/sound/misc/radio_important.ogg b/sound/items/radio/radio_important.ogg similarity index 100% rename from sound/misc/radio_important.ogg rename to sound/items/radio/radio_important.ogg diff --git a/sound/misc/radio_receive.ogg b/sound/items/radio/radio_receive.ogg similarity index 100% rename from sound/misc/radio_receive.ogg rename to sound/items/radio/radio_receive.ogg diff --git a/sound/misc/radio_talk.ogg b/sound/items/radio/radio_talk.ogg similarity index 100% rename from sound/misc/radio_talk.ogg rename to sound/items/radio/radio_talk.ogg diff --git a/sound/items/rattle1.ogg b/sound/items/rattle/rattle1.ogg similarity index 100% rename from sound/items/rattle1.ogg rename to sound/items/rattle/rattle1.ogg diff --git a/sound/items/rattle2.ogg b/sound/items/rattle/rattle2.ogg similarity index 100% rename from sound/items/rattle2.ogg rename to sound/items/rattle/rattle2.ogg diff --git a/sound/items/rattle3.ogg b/sound/items/rattle/rattle3.ogg similarity index 100% rename from sound/items/rattle3.ogg rename to sound/items/rattle/rattle3.ogg diff --git a/sound/items/reel/reel1.ogg b/sound/items/reel/reel1.ogg new file mode 100644 index 0000000000000..2e946f3d5de20 Binary files /dev/null and b/sound/items/reel/reel1.ogg differ diff --git a/sound/items/reel/reel2.ogg b/sound/items/reel/reel2.ogg new file mode 100644 index 0000000000000..574ac3c89b01c Binary files /dev/null and b/sound/items/reel/reel2.ogg differ diff --git a/sound/items/reel/reel3.ogg b/sound/items/reel/reel3.ogg new file mode 100644 index 0000000000000..e1bec8e4b5506 Binary files /dev/null and b/sound/items/reel/reel3.ogg differ diff --git a/sound/items/reel/reel4.ogg b/sound/items/reel/reel4.ogg new file mode 100644 index 0000000000000..64d69620cd85f Binary files /dev/null and b/sound/items/reel/reel4.ogg differ diff --git a/sound/items/reel/reel5.ogg b/sound/items/reel/reel5.ogg new file mode 100644 index 0000000000000..66635bf28d0a8 Binary files /dev/null and b/sound/items/reel/reel5.ogg differ diff --git a/sound/items/reel1.ogg b/sound/items/reel1.ogg deleted file mode 100644 index 0bd2cda89b973..0000000000000 Binary files a/sound/items/reel1.ogg and /dev/null differ diff --git a/sound/items/reel2.ogg b/sound/items/reel2.ogg deleted file mode 100644 index 64d2bc1adb494..0000000000000 Binary files a/sound/items/reel2.ogg and /dev/null differ diff --git a/sound/items/reel3.ogg b/sound/items/reel3.ogg deleted file mode 100644 index a1d89779ec11f..0000000000000 Binary files a/sound/items/reel3.ogg and /dev/null differ diff --git a/sound/items/reel4.ogg b/sound/items/reel4.ogg deleted file mode 100644 index ae9bdb2f5e373..0000000000000 Binary files a/sound/items/reel4.ogg and /dev/null differ diff --git a/sound/items/reel5.ogg b/sound/items/reel5.ogg deleted file mode 100644 index 6c979754a5f86..0000000000000 Binary files a/sound/items/reel5.ogg and /dev/null differ diff --git a/sound/voice/sec_death.ogg b/sound/items/sec_hailer/sec_death.ogg similarity index 100% rename from sound/voice/sec_death.ogg rename to sound/items/sec_hailer/sec_death.ogg diff --git a/sound/items/SitcomLaugh1.ogg b/sound/items/sitcom_laugh/SitcomLaugh1.ogg similarity index 100% rename from sound/items/SitcomLaugh1.ogg rename to sound/items/sitcom_laugh/SitcomLaugh1.ogg diff --git a/sound/items/SitcomLaugh2.ogg b/sound/items/sitcom_laugh/SitcomLaugh2.ogg similarity index 100% rename from sound/items/SitcomLaugh2.ogg rename to sound/items/sitcom_laugh/SitcomLaugh2.ogg diff --git a/sound/items/SitcomLaugh3.ogg b/sound/items/sitcom_laugh/SitcomLaugh3.ogg similarity index 100% rename from sound/items/SitcomLaugh3.ogg rename to sound/items/sitcom_laugh/SitcomLaugh3.ogg diff --git a/sound/items/change_drill.ogg b/sound/items/tools/change_drill.ogg similarity index 100% rename from sound/items/change_drill.ogg rename to sound/items/tools/change_drill.ogg diff --git a/sound/items/change_jaws.ogg b/sound/items/tools/change_jaws.ogg similarity index 100% rename from sound/items/change_jaws.ogg rename to sound/items/tools/change_jaws.ogg diff --git a/sound/items/crowbar.ogg b/sound/items/tools/crowbar.ogg similarity index 100% rename from sound/items/crowbar.ogg rename to sound/items/tools/crowbar.ogg diff --git a/sound/items/crowbar_prying.ogg b/sound/items/tools/crowbar_prying.ogg similarity index 100% rename from sound/items/crowbar_prying.ogg rename to sound/items/tools/crowbar_prying.ogg diff --git a/sound/items/drill_hit.ogg b/sound/items/tools/drill_hit.ogg similarity index 100% rename from sound/items/drill_hit.ogg rename to sound/items/tools/drill_hit.ogg diff --git a/sound/items/drill_use.ogg b/sound/items/tools/drill_use.ogg similarity index 100% rename from sound/items/drill_use.ogg rename to sound/items/tools/drill_use.ogg diff --git a/sound/items/jaws_cut.ogg b/sound/items/tools/jaws_cut.ogg similarity index 100% rename from sound/items/jaws_cut.ogg rename to sound/items/tools/jaws_cut.ogg diff --git a/sound/items/jaws_pry.ogg b/sound/items/tools/jaws_pry.ogg similarity index 100% rename from sound/items/jaws_pry.ogg rename to sound/items/tools/jaws_pry.ogg diff --git a/sound/items/ratchet.ogg b/sound/items/tools/ratchet.ogg similarity index 100% rename from sound/items/ratchet.ogg rename to sound/items/tools/ratchet.ogg diff --git a/sound/items/ratchet_fast.ogg b/sound/items/tools/ratchet_fast.ogg similarity index 100% rename from sound/items/ratchet_fast.ogg rename to sound/items/tools/ratchet_fast.ogg diff --git a/sound/items/ratchet_slow.ogg b/sound/items/tools/ratchet_slow.ogg similarity index 100% rename from sound/items/ratchet_slow.ogg rename to sound/items/tools/ratchet_slow.ogg diff --git a/sound/items/rcdscan.ogg b/sound/items/tools/rcdscan.ogg similarity index 100% rename from sound/items/rcdscan.ogg rename to sound/items/tools/rcdscan.ogg diff --git a/sound/items/rped.ogg b/sound/items/tools/rped.ogg similarity index 100% rename from sound/items/rped.ogg rename to sound/items/tools/rped.ogg diff --git a/sound/items/screwdriver.ogg b/sound/items/tools/screwdriver.ogg similarity index 100% rename from sound/items/screwdriver.ogg rename to sound/items/tools/screwdriver.ogg diff --git a/sound/items/screwdriver2.ogg b/sound/items/tools/screwdriver2.ogg similarity index 100% rename from sound/items/screwdriver2.ogg rename to sound/items/tools/screwdriver2.ogg diff --git a/sound/items/screwdriver_operating.ogg b/sound/items/tools/screwdriver_operating.ogg similarity index 100% rename from sound/items/screwdriver_operating.ogg rename to sound/items/tools/screwdriver_operating.ogg diff --git a/sound/items/handling/tool_switch.ogg b/sound/items/tools/tool_switch.ogg similarity index 100% rename from sound/items/handling/tool_switch.ogg rename to sound/items/tools/tool_switch.ogg diff --git a/sound/items/welder.ogg b/sound/items/tools/welder.ogg similarity index 100% rename from sound/items/welder.ogg rename to sound/items/tools/welder.ogg diff --git a/sound/items/welder2.ogg b/sound/items/tools/welder2.ogg similarity index 100% rename from sound/items/welder2.ogg rename to sound/items/tools/welder2.ogg diff --git a/sound/items/welderactivate.ogg b/sound/items/tools/welderactivate.ogg similarity index 100% rename from sound/items/welderactivate.ogg rename to sound/items/tools/welderactivate.ogg diff --git a/sound/items/welderdeactivate.ogg b/sound/items/tools/welderdeactivate.ogg similarity index 100% rename from sound/items/welderdeactivate.ogg rename to sound/items/tools/welderdeactivate.ogg diff --git a/sound/items/wirecutter.ogg b/sound/items/tools/wirecutter.ogg similarity index 100% rename from sound/items/wirecutter.ogg rename to sound/items/tools/wirecutter.ogg diff --git a/sound/items/wirecutter_cut.ogg b/sound/items/tools/wirecutter_cut.ogg similarity index 100% rename from sound/items/wirecutter_cut.ogg rename to sound/items/tools/wirecutter_cut.ogg diff --git a/sound/items/toysqueak1.ogg b/sound/items/toy_squeak/toysqueak1.ogg similarity index 100% rename from sound/items/toysqueak1.ogg rename to sound/items/toy_squeak/toysqueak1.ogg diff --git a/sound/items/toysqueak2.ogg b/sound/items/toy_squeak/toysqueak2.ogg similarity index 100% rename from sound/items/toysqueak2.ogg rename to sound/items/toy_squeak/toysqueak2.ogg diff --git a/sound/items/toysqueak3.ogg b/sound/items/toy_squeak/toysqueak3.ogg similarity index 100% rename from sound/items/toysqueak3.ogg rename to sound/items/toy_squeak/toysqueak3.ogg diff --git a/sound/items/trayhit1.ogg b/sound/items/trayhit/trayhit1.ogg similarity index 100% rename from sound/items/trayhit1.ogg rename to sound/items/trayhit/trayhit1.ogg diff --git a/sound/items/trayhit2.ogg b/sound/items/trayhit/trayhit2.ogg similarity index 100% rename from sound/items/trayhit2.ogg rename to sound/items/trayhit/trayhit2.ogg diff --git a/sound/weapons/armbomb.ogg b/sound/items/weapons/armbomb.ogg similarity index 100% rename from sound/weapons/armbomb.ogg rename to sound/items/weapons/armbomb.ogg diff --git a/sound/weapons/autoguninsert.ogg b/sound/items/weapons/autoguninsert.ogg similarity index 100% rename from sound/weapons/autoguninsert.ogg rename to sound/items/weapons/autoguninsert.ogg diff --git a/sound/weapons/banjoslap.ogg b/sound/items/weapons/banjoslap.ogg similarity index 100% rename from sound/weapons/banjoslap.ogg rename to sound/items/weapons/banjoslap.ogg diff --git a/sound/weapons/barragespellhit.ogg b/sound/items/weapons/barragespellhit.ogg similarity index 100% rename from sound/weapons/barragespellhit.ogg rename to sound/items/weapons/barragespellhit.ogg diff --git a/sound/weapons/batonextend.ogg b/sound/items/weapons/batonextend.ogg similarity index 100% rename from sound/weapons/batonextend.ogg rename to sound/items/weapons/batonextend.ogg diff --git a/sound/weapons/beam_sniper.ogg b/sound/items/weapons/beam_sniper.ogg similarity index 100% rename from sound/weapons/beam_sniper.ogg rename to sound/items/weapons/beam_sniper.ogg diff --git a/sound/weapons/beesmoke.ogg b/sound/items/weapons/beesmoke.ogg similarity index 100% rename from sound/weapons/beesmoke.ogg rename to sound/items/weapons/beesmoke.ogg diff --git a/sound/weapons/bite.ogg b/sound/items/weapons/bite.ogg similarity index 100% rename from sound/weapons/bite.ogg rename to sound/items/weapons/bite.ogg diff --git a/sound/weapons/blade1.ogg b/sound/items/weapons/blade1.ogg similarity index 100% rename from sound/weapons/blade1.ogg rename to sound/items/weapons/blade1.ogg diff --git a/sound/weapons/bladeslice.ogg b/sound/items/weapons/bladeslice.ogg similarity index 100% rename from sound/weapons/bladeslice.ogg rename to sound/items/weapons/bladeslice.ogg diff --git a/sound/weapons/blastcannon.ogg b/sound/items/weapons/blastcannon.ogg similarity index 100% rename from sound/weapons/blastcannon.ogg rename to sound/items/weapons/blastcannon.ogg diff --git a/sound/weapons/blaster.ogg b/sound/items/weapons/blaster.ogg similarity index 100% rename from sound/weapons/blaster.ogg rename to sound/items/weapons/blaster.ogg diff --git a/sound/weapons/block_blade.ogg b/sound/items/weapons/block_blade.ogg similarity index 100% rename from sound/weapons/block_blade.ogg rename to sound/items/weapons/block_blade.ogg diff --git a/sound/weapons/block_shield.ogg b/sound/items/weapons/block_shield.ogg similarity index 100% rename from sound/weapons/block_shield.ogg rename to sound/items/weapons/block_shield.ogg diff --git a/sound/weapons/bolathrow.ogg b/sound/items/weapons/bolathrow.ogg similarity index 100% rename from sound/weapons/bolathrow.ogg rename to sound/items/weapons/bolathrow.ogg diff --git a/sound/weapons/bulletflyby.ogg b/sound/items/weapons/bulletflyby.ogg similarity index 100% rename from sound/weapons/bulletflyby.ogg rename to sound/items/weapons/bulletflyby.ogg diff --git a/sound/weapons/bulletflyby2.ogg b/sound/items/weapons/bulletflyby2.ogg similarity index 100% rename from sound/weapons/bulletflyby2.ogg rename to sound/items/weapons/bulletflyby2.ogg diff --git a/sound/weapons/bulletflyby3.ogg b/sound/items/weapons/bulletflyby3.ogg similarity index 100% rename from sound/weapons/bulletflyby3.ogg rename to sound/items/weapons/bulletflyby3.ogg diff --git a/sound/weapons/cablecuff.ogg b/sound/items/weapons/cablecuff.ogg similarity index 100% rename from sound/weapons/cablecuff.ogg rename to sound/items/weapons/cablecuff.ogg diff --git a/sound/weapons/chainhit.ogg b/sound/items/weapons/chainhit.ogg similarity index 100% rename from sound/weapons/chainhit.ogg rename to sound/items/weapons/chainhit.ogg diff --git a/sound/weapons/chainsaw_loop.ogg b/sound/items/weapons/chainsaw_loop.ogg similarity index 100% rename from sound/weapons/chainsaw_loop.ogg rename to sound/items/weapons/chainsaw_loop.ogg diff --git a/sound/weapons/chainsaw_start.ogg b/sound/items/weapons/chainsaw_start.ogg similarity index 100% rename from sound/weapons/chainsaw_start.ogg rename to sound/items/weapons/chainsaw_start.ogg diff --git a/sound/weapons/chainsaw_stop.ogg b/sound/items/weapons/chainsaw_stop.ogg similarity index 100% rename from sound/weapons/chainsaw_stop.ogg rename to sound/items/weapons/chainsaw_stop.ogg diff --git a/sound/weapons/chainsawhit.ogg b/sound/items/weapons/chainsawhit.ogg similarity index 100% rename from sound/weapons/chainsawhit.ogg rename to sound/items/weapons/chainsawhit.ogg diff --git a/sound/weapons/circsawhit.ogg b/sound/items/weapons/circsawhit.ogg similarity index 100% rename from sound/weapons/circsawhit.ogg rename to sound/items/weapons/circsawhit.ogg diff --git a/sound/effects/contractorbatonhit.ogg b/sound/items/weapons/contractor_baton/contractorbatonhit.ogg similarity index 100% rename from sound/effects/contractorbatonhit.ogg rename to sound/items/weapons/contractor_baton/contractorbatonhit.ogg diff --git a/sound/weapons/contractorbatonextend.ogg b/sound/items/weapons/contractorbatonextend.ogg similarity index 100% rename from sound/weapons/contractorbatonextend.ogg rename to sound/items/weapons/contractorbatonextend.ogg diff --git a/sound/weapons/cqchit1.ogg b/sound/items/weapons/cqchit1.ogg similarity index 100% rename from sound/weapons/cqchit1.ogg rename to sound/items/weapons/cqchit1.ogg diff --git a/sound/weapons/cqchit2.ogg b/sound/items/weapons/cqchit2.ogg similarity index 100% rename from sound/weapons/cqchit2.ogg rename to sound/items/weapons/cqchit2.ogg diff --git a/sound/weapons/draw_bow.ogg b/sound/items/weapons/draw_bow.ogg similarity index 100% rename from sound/weapons/draw_bow.ogg rename to sound/items/weapons/draw_bow.ogg diff --git a/sound/weapons/draw_bow2.ogg b/sound/items/weapons/draw_bow2.ogg similarity index 100% rename from sound/weapons/draw_bow2.ogg rename to sound/items/weapons/draw_bow2.ogg diff --git a/sound/weapons/drill.ogg b/sound/items/weapons/drill.ogg similarity index 100% rename from sound/weapons/drill.ogg rename to sound/items/weapons/drill.ogg diff --git a/sound/weapons/effects/batreflect.ogg b/sound/items/weapons/effects/batreflect.ogg similarity index 100% rename from sound/weapons/effects/batreflect.ogg rename to sound/items/weapons/effects/batreflect.ogg diff --git a/sound/weapons/effects/ric1.ogg b/sound/items/weapons/effects/ric1.ogg similarity index 100% rename from sound/weapons/effects/ric1.ogg rename to sound/items/weapons/effects/ric1.ogg diff --git a/sound/weapons/effects/ric2.ogg b/sound/items/weapons/effects/ric2.ogg similarity index 100% rename from sound/weapons/effects/ric2.ogg rename to sound/items/weapons/effects/ric2.ogg diff --git a/sound/weapons/effects/ric3.ogg b/sound/items/weapons/effects/ric3.ogg similarity index 100% rename from sound/weapons/effects/ric3.ogg rename to sound/items/weapons/effects/ric3.ogg diff --git a/sound/weapons/effects/ric4.ogg b/sound/items/weapons/effects/ric4.ogg similarity index 100% rename from sound/weapons/effects/ric4.ogg rename to sound/items/weapons/effects/ric4.ogg diff --git a/sound/weapons/effects/ric5.ogg b/sound/items/weapons/effects/ric5.ogg similarity index 100% rename from sound/weapons/effects/ric5.ogg rename to sound/items/weapons/effects/ric5.ogg diff --git a/sound/weapons/effects/searwall.ogg b/sound/items/weapons/effects/searwall.ogg similarity index 100% rename from sound/weapons/effects/searwall.ogg rename to sound/items/weapons/effects/searwall.ogg diff --git a/sound/weapons/egloves.ogg b/sound/items/weapons/egloves.ogg similarity index 100% rename from sound/weapons/egloves.ogg rename to sound/items/weapons/egloves.ogg diff --git a/sound/weapons/emitter.ogg b/sound/items/weapons/emitter.ogg similarity index 100% rename from sound/weapons/emitter.ogg rename to sound/items/weapons/emitter.ogg diff --git a/sound/weapons/emitter2.ogg b/sound/items/weapons/emitter2.ogg similarity index 100% rename from sound/weapons/emitter2.ogg rename to sound/items/weapons/emitter2.ogg diff --git a/sound/weapons/empty.ogg b/sound/items/weapons/empty.ogg similarity index 100% rename from sound/weapons/empty.ogg rename to sound/items/weapons/empty.ogg diff --git a/sound/weapons/etherealhit.ogg b/sound/items/weapons/etherealhit.ogg similarity index 100% rename from sound/weapons/etherealhit.ogg rename to sound/items/weapons/etherealhit.ogg diff --git a/sound/weapons/etherealmiss.ogg b/sound/items/weapons/etherealmiss.ogg similarity index 100% rename from sound/weapons/etherealmiss.ogg rename to sound/items/weapons/etherealmiss.ogg diff --git a/sound/weapons/flash.ogg b/sound/items/weapons/flash.ogg similarity index 100% rename from sound/weapons/flash.ogg rename to sound/items/weapons/flash.ogg diff --git a/sound/weapons/flash_ring.ogg b/sound/items/weapons/flash_ring.ogg similarity index 100% rename from sound/weapons/flash_ring.ogg rename to sound/items/weapons/flash_ring.ogg diff --git a/sound/weapons/flashbang.ogg b/sound/items/weapons/flashbang.ogg similarity index 100% rename from sound/weapons/flashbang.ogg rename to sound/items/weapons/flashbang.ogg diff --git a/sound/weapons/fwoosh.ogg b/sound/items/weapons/fwoosh.ogg similarity index 100% rename from sound/weapons/fwoosh.ogg rename to sound/items/weapons/fwoosh.ogg diff --git a/sound/weapons/genhit.ogg b/sound/items/weapons/genhit.ogg similarity index 100% rename from sound/weapons/genhit.ogg rename to sound/items/weapons/genhit.ogg diff --git a/sound/weapons/genhit1.ogg b/sound/items/weapons/genhit1.ogg similarity index 100% rename from sound/weapons/genhit1.ogg rename to sound/items/weapons/genhit1.ogg diff --git a/sound/weapons/genhit2.ogg b/sound/items/weapons/genhit2.ogg similarity index 100% rename from sound/weapons/genhit2.ogg rename to sound/items/weapons/genhit2.ogg diff --git a/sound/weapons/genhit3.ogg b/sound/items/weapons/genhit3.ogg similarity index 100% rename from sound/weapons/genhit3.ogg rename to sound/items/weapons/genhit3.ogg diff --git a/sound/weapons/guillotine.ogg b/sound/items/weapons/guillotine.ogg similarity index 100% rename from sound/weapons/guillotine.ogg rename to sound/items/weapons/guillotine.ogg diff --git a/sound/weapons/gun/bow/attribution.txt b/sound/items/weapons/gun/bow/attribution.txt similarity index 100% rename from sound/weapons/gun/bow/attribution.txt rename to sound/items/weapons/gun/bow/attribution.txt diff --git a/sound/weapons/gun/bow/bow_draw.ogg b/sound/items/weapons/gun/bow/bow_draw.ogg similarity index 100% rename from sound/weapons/gun/bow/bow_draw.ogg rename to sound/items/weapons/gun/bow/bow_draw.ogg diff --git a/sound/weapons/gun/bow/bow_fire.ogg b/sound/items/weapons/gun/bow/bow_fire.ogg similarity index 100% rename from sound/weapons/gun/bow/bow_fire.ogg rename to sound/items/weapons/gun/bow/bow_fire.ogg diff --git a/sound/weapons/gun/general/ballistic_click.ogg b/sound/items/weapons/gun/general/ballistic_click.ogg similarity index 100% rename from sound/weapons/gun/general/ballistic_click.ogg rename to sound/items/weapons/gun/general/ballistic_click.ogg diff --git a/sound/weapons/gun/general/bolt_drop.ogg b/sound/items/weapons/gun/general/bolt_drop.ogg similarity index 100% rename from sound/weapons/gun/general/bolt_drop.ogg rename to sound/items/weapons/gun/general/bolt_drop.ogg diff --git a/sound/weapons/gun/general/bolt_rack.ogg b/sound/items/weapons/gun/general/bolt_rack.ogg similarity index 100% rename from sound/weapons/gun/general/bolt_rack.ogg rename to sound/items/weapons/gun/general/bolt_rack.ogg diff --git a/sound/weapons/gun/general/cannon.ogg b/sound/items/weapons/gun/general/cannon.ogg similarity index 100% rename from sound/weapons/gun/general/cannon.ogg rename to sound/items/weapons/gun/general/cannon.ogg diff --git a/sound/weapons/gun/general/chunkyrack.ogg b/sound/items/weapons/gun/general/chunkyrack.ogg similarity index 100% rename from sound/weapons/gun/general/chunkyrack.ogg rename to sound/items/weapons/gun/general/chunkyrack.ogg diff --git a/sound/weapons/gun/general/dry_fire.ogg b/sound/items/weapons/gun/general/dry_fire.ogg similarity index 100% rename from sound/weapons/gun/general/dry_fire.ogg rename to sound/items/weapons/gun/general/dry_fire.ogg diff --git a/sound/weapons/gun/general/empty_alarm.ogg b/sound/items/weapons/gun/general/empty_alarm.ogg similarity index 100% rename from sound/weapons/gun/general/empty_alarm.ogg rename to sound/items/weapons/gun/general/empty_alarm.ogg diff --git a/sound/weapons/gun/general/grenade_launch.ogg b/sound/items/weapons/gun/general/grenade_launch.ogg similarity index 100% rename from sound/weapons/gun/general/grenade_launch.ogg rename to sound/items/weapons/gun/general/grenade_launch.ogg diff --git a/sound/weapons/gun/general/heavy_shot_suppressed.ogg b/sound/items/weapons/gun/general/heavy_shot_suppressed.ogg similarity index 100% rename from sound/weapons/gun/general/heavy_shot_suppressed.ogg rename to sound/items/weapons/gun/general/heavy_shot_suppressed.ogg diff --git a/sound/weapons/gun/general/mag_bullet_insert.ogg b/sound/items/weapons/gun/general/mag_bullet_insert.ogg similarity index 100% rename from sound/weapons/gun/general/mag_bullet_insert.ogg rename to sound/items/weapons/gun/general/mag_bullet_insert.ogg diff --git a/sound/weapons/gun/general/mag_bullet_remove.ogg b/sound/items/weapons/gun/general/mag_bullet_remove.ogg similarity index 100% rename from sound/weapons/gun/general/mag_bullet_remove.ogg rename to sound/items/weapons/gun/general/mag_bullet_remove.ogg diff --git a/sound/weapons/gun/general/magazine_insert_empty.ogg b/sound/items/weapons/gun/general/magazine_insert_empty.ogg similarity index 100% rename from sound/weapons/gun/general/magazine_insert_empty.ogg rename to sound/items/weapons/gun/general/magazine_insert_empty.ogg diff --git a/sound/weapons/gun/general/magazine_insert_full.ogg b/sound/items/weapons/gun/general/magazine_insert_full.ogg similarity index 100% rename from sound/weapons/gun/general/magazine_insert_full.ogg rename to sound/items/weapons/gun/general/magazine_insert_full.ogg diff --git a/sound/weapons/gun/general/magazine_remove_empty.ogg b/sound/items/weapons/gun/general/magazine_remove_empty.ogg similarity index 100% rename from sound/weapons/gun/general/magazine_remove_empty.ogg rename to sound/items/weapons/gun/general/magazine_remove_empty.ogg diff --git a/sound/weapons/gun/general/magazine_remove_full.ogg b/sound/items/weapons/gun/general/magazine_remove_full.ogg similarity index 100% rename from sound/weapons/gun/general/magazine_remove_full.ogg rename to sound/items/weapons/gun/general/magazine_remove_full.ogg diff --git a/sound/weapons/gun/general/mountedgun.ogg b/sound/items/weapons/gun/general/mountedgun.ogg similarity index 100% rename from sound/weapons/gun/general/mountedgun.ogg rename to sound/items/weapons/gun/general/mountedgun.ogg diff --git a/sound/weapons/gun/general/mountedgunend.ogg b/sound/items/weapons/gun/general/mountedgunend.ogg similarity index 100% rename from sound/weapons/gun/general/mountedgunend.ogg rename to sound/items/weapons/gun/general/mountedgunend.ogg diff --git a/sound/weapons/gun/general/rocket_launch.ogg b/sound/items/weapons/gun/general/rocket_launch.ogg similarity index 100% rename from sound/weapons/gun/general/rocket_launch.ogg rename to sound/items/weapons/gun/general/rocket_launch.ogg diff --git a/sound/weapons/gun/general/slide_lock_1.ogg b/sound/items/weapons/gun/general/slide_lock_1.ogg similarity index 100% rename from sound/weapons/gun/general/slide_lock_1.ogg rename to sound/items/weapons/gun/general/slide_lock_1.ogg diff --git a/sound/weapons/gun/hmg/hmg.ogg b/sound/items/weapons/gun/hmg/hmg.ogg similarity index 100% rename from sound/weapons/gun/hmg/hmg.ogg rename to sound/items/weapons/gun/hmg/hmg.ogg diff --git a/sound/weapons/gun/l6/l6_door.ogg b/sound/items/weapons/gun/l6/l6_door.ogg similarity index 100% rename from sound/weapons/gun/l6/l6_door.ogg rename to sound/items/weapons/gun/l6/l6_door.ogg diff --git a/sound/weapons/gun/l6/l6_rack.ogg b/sound/items/weapons/gun/l6/l6_rack.ogg similarity index 100% rename from sound/weapons/gun/l6/l6_rack.ogg rename to sound/items/weapons/gun/l6/l6_rack.ogg diff --git a/sound/weapons/gun/l6/shot.ogg b/sound/items/weapons/gun/l6/shot.ogg similarity index 100% rename from sound/weapons/gun/l6/shot.ogg rename to sound/items/weapons/gun/l6/shot.ogg diff --git a/sound/weapons/gun/pistol/drop_small.ogg b/sound/items/weapons/gun/pistol/drop_small.ogg similarity index 100% rename from sound/weapons/gun/pistol/drop_small.ogg rename to sound/items/weapons/gun/pistol/drop_small.ogg diff --git a/sound/weapons/gun/pistol/dry_fire.ogg b/sound/items/weapons/gun/pistol/dry_fire.ogg similarity index 100% rename from sound/weapons/gun/pistol/dry_fire.ogg rename to sound/items/weapons/gun/pistol/dry_fire.ogg diff --git a/sound/weapons/gun/pistol/lock_small.ogg b/sound/items/weapons/gun/pistol/lock_small.ogg similarity index 100% rename from sound/weapons/gun/pistol/lock_small.ogg rename to sound/items/weapons/gun/pistol/lock_small.ogg diff --git a/sound/weapons/gun/pistol/mag_insert.ogg b/sound/items/weapons/gun/pistol/mag_insert.ogg similarity index 100% rename from sound/weapons/gun/pistol/mag_insert.ogg rename to sound/items/weapons/gun/pistol/mag_insert.ogg diff --git a/sound/weapons/gun/pistol/mag_release.ogg b/sound/items/weapons/gun/pistol/mag_release.ogg similarity index 100% rename from sound/weapons/gun/pistol/mag_release.ogg rename to sound/items/weapons/gun/pistol/mag_release.ogg diff --git a/sound/weapons/gun/pistol/rack.ogg b/sound/items/weapons/gun/pistol/rack.ogg similarity index 100% rename from sound/weapons/gun/pistol/rack.ogg rename to sound/items/weapons/gun/pistol/rack.ogg diff --git a/sound/weapons/gun/pistol/rack_small.ogg b/sound/items/weapons/gun/pistol/rack_small.ogg similarity index 100% rename from sound/weapons/gun/pistol/rack_small.ogg rename to sound/items/weapons/gun/pistol/rack_small.ogg diff --git a/sound/weapons/gun/pistol/shot.ogg b/sound/items/weapons/gun/pistol/shot.ogg similarity index 100% rename from sound/weapons/gun/pistol/shot.ogg rename to sound/items/weapons/gun/pistol/shot.ogg diff --git a/sound/weapons/gun/pistol/shot_alt.ogg b/sound/items/weapons/gun/pistol/shot_alt.ogg similarity index 100% rename from sound/weapons/gun/pistol/shot_alt.ogg rename to sound/items/weapons/gun/pistol/shot_alt.ogg diff --git a/sound/weapons/gun/pistol/shot_suppressed.ogg b/sound/items/weapons/gun/pistol/shot_suppressed.ogg similarity index 100% rename from sound/weapons/gun/pistol/shot_suppressed.ogg rename to sound/items/weapons/gun/pistol/shot_suppressed.ogg diff --git a/sound/weapons/gun/pistol/slide_drop.ogg b/sound/items/weapons/gun/pistol/slide_drop.ogg similarity index 100% rename from sound/weapons/gun/pistol/slide_drop.ogg rename to sound/items/weapons/gun/pistol/slide_drop.ogg diff --git a/sound/weapons/gun/pistol/slide_lock.ogg b/sound/items/weapons/gun/pistol/slide_lock.ogg similarity index 100% rename from sound/weapons/gun/pistol/slide_lock.ogg rename to sound/items/weapons/gun/pistol/slide_lock.ogg diff --git a/sound/weapons/gun/revolver/dry_fire.ogg b/sound/items/weapons/gun/revolver/dry_fire.ogg similarity index 100% rename from sound/weapons/gun/revolver/dry_fire.ogg rename to sound/items/weapons/gun/revolver/dry_fire.ogg diff --git a/sound/weapons/gun/revolver/empty.ogg b/sound/items/weapons/gun/revolver/empty.ogg similarity index 100% rename from sound/weapons/gun/revolver/empty.ogg rename to sound/items/weapons/gun/revolver/empty.ogg diff --git a/sound/weapons/gun/revolver/load_bullet.ogg b/sound/items/weapons/gun/revolver/load_bullet.ogg similarity index 100% rename from sound/weapons/gun/revolver/load_bullet.ogg rename to sound/items/weapons/gun/revolver/load_bullet.ogg diff --git a/sound/weapons/gun/revolver/shot.ogg b/sound/items/weapons/gun/revolver/shot.ogg similarity index 100% rename from sound/weapons/gun/revolver/shot.ogg rename to sound/items/weapons/gun/revolver/shot.ogg diff --git a/sound/weapons/gun/revolver/shot_alt.ogg b/sound/items/weapons/gun/revolver/shot_alt.ogg similarity index 100% rename from sound/weapons/gun/revolver/shot_alt.ogg rename to sound/items/weapons/gun/revolver/shot_alt.ogg diff --git a/sound/weapons/gun/revolver/spin1.ogg b/sound/items/weapons/gun/revolver/spin1.ogg similarity index 100% rename from sound/weapons/gun/revolver/spin1.ogg rename to sound/items/weapons/gun/revolver/spin1.ogg diff --git a/sound/weapons/gun/revolver/spin2.ogg b/sound/items/weapons/gun/revolver/spin2.ogg similarity index 100% rename from sound/weapons/gun/revolver/spin2.ogg rename to sound/items/weapons/gun/revolver/spin2.ogg diff --git a/sound/weapons/gun/revolver/spin3.ogg b/sound/items/weapons/gun/revolver/spin3.ogg similarity index 100% rename from sound/weapons/gun/revolver/spin3.ogg rename to sound/items/weapons/gun/revolver/spin3.ogg diff --git a/sound/weapons/gun/rifle/bolt_in.ogg b/sound/items/weapons/gun/rifle/bolt_in.ogg similarity index 100% rename from sound/weapons/gun/rifle/bolt_in.ogg rename to sound/items/weapons/gun/rifle/bolt_in.ogg diff --git a/sound/weapons/gun/rifle/bolt_out.ogg b/sound/items/weapons/gun/rifle/bolt_out.ogg similarity index 100% rename from sound/weapons/gun/rifle/bolt_out.ogg rename to sound/items/weapons/gun/rifle/bolt_out.ogg diff --git a/sound/weapons/gun/rifle/shot.ogg b/sound/items/weapons/gun/rifle/shot.ogg similarity index 100% rename from sound/weapons/gun/rifle/shot.ogg rename to sound/items/weapons/gun/rifle/shot.ogg diff --git a/sound/weapons/gun/rifle/shot_heavy.ogg b/sound/items/weapons/gun/rifle/shot_heavy.ogg similarity index 100% rename from sound/weapons/gun/rifle/shot_heavy.ogg rename to sound/items/weapons/gun/rifle/shot_heavy.ogg diff --git a/sound/weapons/gun/shotgun/insert_shell.ogg b/sound/items/weapons/gun/shotgun/insert_shell.ogg similarity index 100% rename from sound/weapons/gun/shotgun/insert_shell.ogg rename to sound/items/weapons/gun/shotgun/insert_shell.ogg diff --git a/sound/weapons/gun/shotgun/rack.ogg b/sound/items/weapons/gun/shotgun/rack.ogg similarity index 100% rename from sound/weapons/gun/shotgun/rack.ogg rename to sound/items/weapons/gun/shotgun/rack.ogg diff --git a/sound/weapons/gun/shotgun/shot.ogg b/sound/items/weapons/gun/shotgun/shot.ogg similarity index 100% rename from sound/weapons/gun/shotgun/shot.ogg rename to sound/items/weapons/gun/shotgun/shot.ogg diff --git a/sound/weapons/gun/shotgun/shot_alt.ogg b/sound/items/weapons/gun/shotgun/shot_alt.ogg similarity index 100% rename from sound/weapons/gun/shotgun/shot_alt.ogg rename to sound/items/weapons/gun/shotgun/shot_alt.ogg diff --git a/sound/weapons/gun/smartgun/smartgun_shoot_1.ogg b/sound/items/weapons/gun/smartgun/smartgun_shoot_1.ogg similarity index 100% rename from sound/weapons/gun/smartgun/smartgun_shoot_1.ogg rename to sound/items/weapons/gun/smartgun/smartgun_shoot_1.ogg diff --git a/sound/weapons/gun/smartgun/smartgun_shoot_2.ogg b/sound/items/weapons/gun/smartgun/smartgun_shoot_2.ogg similarity index 100% rename from sound/weapons/gun/smartgun/smartgun_shoot_2.ogg rename to sound/items/weapons/gun/smartgun/smartgun_shoot_2.ogg diff --git a/sound/weapons/gun/smartgun/smartgun_shoot_3.ogg b/sound/items/weapons/gun/smartgun/smartgun_shoot_3.ogg similarity index 100% rename from sound/weapons/gun/smartgun/smartgun_shoot_3.ogg rename to sound/items/weapons/gun/smartgun/smartgun_shoot_3.ogg diff --git a/sound/weapons/gun/smg/shot.ogg b/sound/items/weapons/gun/smg/shot.ogg similarity index 100% rename from sound/weapons/gun/smg/shot.ogg rename to sound/items/weapons/gun/smg/shot.ogg diff --git a/sound/weapons/gun/smg/shot_alt.ogg b/sound/items/weapons/gun/smg/shot_alt.ogg similarity index 100% rename from sound/weapons/gun/smg/shot_alt.ogg rename to sound/items/weapons/gun/smg/shot_alt.ogg diff --git a/sound/weapons/gun/smg/shot_suppressed.ogg b/sound/items/weapons/gun/smg/shot_suppressed.ogg similarity index 100% rename from sound/weapons/gun/smg/shot_suppressed.ogg rename to sound/items/weapons/gun/smg/shot_suppressed.ogg diff --git a/sound/weapons/gun/smg/smgrack.ogg b/sound/items/weapons/gun/smg/smgrack.ogg similarity index 100% rename from sound/weapons/gun/smg/smgrack.ogg rename to sound/items/weapons/gun/smg/smgrack.ogg diff --git a/sound/weapons/gun/sniper/mag_insert.ogg b/sound/items/weapons/gun/sniper/mag_insert.ogg similarity index 100% rename from sound/weapons/gun/sniper/mag_insert.ogg rename to sound/items/weapons/gun/sniper/mag_insert.ogg diff --git a/sound/weapons/gun/sniper/rack.ogg b/sound/items/weapons/gun/sniper/rack.ogg similarity index 100% rename from sound/weapons/gun/sniper/rack.ogg rename to sound/items/weapons/gun/sniper/rack.ogg diff --git a/sound/weapons/gun/sniper/shot.ogg b/sound/items/weapons/gun/sniper/shot.ogg similarity index 100% rename from sound/weapons/gun/sniper/shot.ogg rename to sound/items/weapons/gun/sniper/shot.ogg diff --git a/sound/weapons/handcuffs.ogg b/sound/items/weapons/handcuffs.ogg similarity index 100% rename from sound/weapons/handcuffs.ogg rename to sound/items/weapons/handcuffs.ogg diff --git a/sound/weapons/homerun.ogg b/sound/items/weapons/homerun.ogg similarity index 100% rename from sound/weapons/homerun.ogg rename to sound/items/weapons/homerun.ogg diff --git a/sound/weapons/ionrifle.ogg b/sound/items/weapons/ionrifle.ogg similarity index 100% rename from sound/weapons/ionrifle.ogg rename to sound/items/weapons/ionrifle.ogg diff --git a/sound/weapons/jammed.ogg b/sound/items/weapons/jammed.ogg similarity index 100% rename from sound/weapons/jammed.ogg rename to sound/items/weapons/jammed.ogg diff --git a/sound/weapons/kinetic_accel.ogg b/sound/items/weapons/kinetic_accel.ogg similarity index 100% rename from sound/weapons/kinetic_accel.ogg rename to sound/items/weapons/kinetic_accel.ogg diff --git a/sound/weapons/kinetic_reload.ogg b/sound/items/weapons/kinetic_reload.ogg similarity index 100% rename from sound/weapons/kinetic_reload.ogg rename to sound/items/weapons/kinetic_reload.ogg diff --git a/sound/weapons/laser.ogg b/sound/items/weapons/laser.ogg similarity index 100% rename from sound/weapons/laser.ogg rename to sound/items/weapons/laser.ogg diff --git a/sound/weapons/laser2.ogg b/sound/items/weapons/laser2.ogg similarity index 100% rename from sound/weapons/laser2.ogg rename to sound/items/weapons/laser2.ogg diff --git a/sound/weapons/laser3.ogg b/sound/items/weapons/laser3.ogg similarity index 100% rename from sound/weapons/laser3.ogg rename to sound/items/weapons/laser3.ogg diff --git a/sound/weapons/laser_crank.ogg b/sound/items/weapons/laser_crank.ogg similarity index 100% rename from sound/weapons/laser_crank.ogg rename to sound/items/weapons/laser_crank.ogg diff --git a/sound/weapons/lasercannonfire.ogg b/sound/items/weapons/lasercannonfire.ogg similarity index 100% rename from sound/weapons/lasercannonfire.ogg rename to sound/items/weapons/lasercannonfire.ogg diff --git a/sound/weapons/magin.ogg b/sound/items/weapons/magin.ogg similarity index 100% rename from sound/weapons/magin.ogg rename to sound/items/weapons/magin.ogg diff --git a/sound/weapons/magout.ogg b/sound/items/weapons/magout.ogg similarity index 100% rename from sound/weapons/magout.ogg rename to sound/items/weapons/magout.ogg diff --git a/sound/weapons/marauder.ogg b/sound/items/weapons/marauder.ogg similarity index 100% rename from sound/weapons/marauder.ogg rename to sound/items/weapons/marauder.ogg diff --git a/sound/weapons/minebot_rocket.ogg b/sound/items/weapons/minebot_rocket.ogg similarity index 100% rename from sound/weapons/minebot_rocket.ogg rename to sound/items/weapons/minebot_rocket.ogg diff --git a/sound/weapons/mortar_long_whistle.ogg b/sound/items/weapons/mortar_long_whistle.ogg similarity index 100% rename from sound/weapons/mortar_long_whistle.ogg rename to sound/items/weapons/mortar_long_whistle.ogg diff --git a/sound/weapons/mortar_whistle.ogg b/sound/items/weapons/mortar_whistle.ogg similarity index 100% rename from sound/weapons/mortar_whistle.ogg rename to sound/items/weapons/mortar_whistle.ogg diff --git a/sound/weapons/parry.ogg b/sound/items/weapons/parry.ogg similarity index 100% rename from sound/weapons/parry.ogg rename to sound/items/weapons/parry.ogg diff --git a/sound/weapons/pierce.ogg b/sound/items/weapons/pierce.ogg similarity index 100% rename from sound/weapons/pierce.ogg rename to sound/items/weapons/pierce.ogg diff --git a/sound/weapons/pierce_slow.ogg b/sound/items/weapons/pierce_slow.ogg similarity index 100% rename from sound/weapons/pierce_slow.ogg rename to sound/items/weapons/pierce_slow.ogg diff --git a/sound/weapons/plasma_cutter.ogg b/sound/items/weapons/plasma_cutter.ogg similarity index 100% rename from sound/weapons/plasma_cutter.ogg rename to sound/items/weapons/plasma_cutter.ogg diff --git a/sound/weapons/pulse.ogg b/sound/items/weapons/pulse.ogg similarity index 100% rename from sound/weapons/pulse.ogg rename to sound/items/weapons/pulse.ogg diff --git a/sound/weapons/pulse2.ogg b/sound/items/weapons/pulse2.ogg similarity index 100% rename from sound/weapons/pulse2.ogg rename to sound/items/weapons/pulse2.ogg diff --git a/sound/weapons/pulse3.ogg b/sound/items/weapons/pulse3.ogg similarity index 100% rename from sound/weapons/pulse3.ogg rename to sound/items/weapons/pulse3.ogg diff --git a/sound/weapons/punch1.ogg b/sound/items/weapons/punch1.ogg similarity index 100% rename from sound/weapons/punch1.ogg rename to sound/items/weapons/punch1.ogg diff --git a/sound/weapons/punch2.ogg b/sound/items/weapons/punch2.ogg similarity index 100% rename from sound/weapons/punch2.ogg rename to sound/items/weapons/punch2.ogg diff --git a/sound/weapons/punch3.ogg b/sound/items/weapons/punch3.ogg similarity index 100% rename from sound/weapons/punch3.ogg rename to sound/items/weapons/punch3.ogg diff --git a/sound/weapons/punch4.ogg b/sound/items/weapons/punch4.ogg similarity index 100% rename from sound/weapons/punch4.ogg rename to sound/items/weapons/punch4.ogg diff --git a/sound/weapons/punchmiss.ogg b/sound/items/weapons/punchmiss.ogg similarity index 100% rename from sound/weapons/punchmiss.ogg rename to sound/items/weapons/punchmiss.ogg diff --git a/sound/weapons/rapierhit.ogg b/sound/items/weapons/rapierhit.ogg similarity index 100% rename from sound/weapons/rapierhit.ogg rename to sound/items/weapons/rapierhit.ogg diff --git a/sound/weapons/resonator_blast.ogg b/sound/items/weapons/resonator_blast.ogg similarity index 100% rename from sound/weapons/resonator_blast.ogg rename to sound/items/weapons/resonator_blast.ogg diff --git a/sound/weapons/resonator_fire.ogg b/sound/items/weapons/resonator_fire.ogg similarity index 100% rename from sound/weapons/resonator_fire.ogg rename to sound/items/weapons/resonator_fire.ogg diff --git a/sound/weapons/ring.ogg b/sound/items/weapons/ring.ogg similarity index 100% rename from sound/weapons/ring.ogg rename to sound/items/weapons/ring.ogg diff --git a/sound/weapons/saberoff.ogg b/sound/items/weapons/saberoff.ogg similarity index 100% rename from sound/weapons/saberoff.ogg rename to sound/items/weapons/saberoff.ogg diff --git a/sound/weapons/saberon.ogg b/sound/items/weapons/saberon.ogg similarity index 100% rename from sound/weapons/saberon.ogg rename to sound/items/weapons/saberon.ogg diff --git a/sound/weapons/scope.ogg b/sound/items/weapons/scope.ogg similarity index 100% rename from sound/weapons/scope.ogg rename to sound/items/weapons/scope.ogg diff --git a/sound/weapons/sear.ogg b/sound/items/weapons/sear.ogg similarity index 100% rename from sound/weapons/sear.ogg rename to sound/items/weapons/sear.ogg diff --git a/sound/weapons/sear_disabler.ogg b/sound/items/weapons/sear_disabler.ogg similarity index 100% rename from sound/weapons/sear_disabler.ogg rename to sound/items/weapons/sear_disabler.ogg diff --git a/sound/weapons/shove.ogg b/sound/items/weapons/shove.ogg similarity index 100% rename from sound/weapons/shove.ogg rename to sound/items/weapons/shove.ogg diff --git a/sound/weapons/shrink_hit.ogg b/sound/items/weapons/shrink_hit.ogg similarity index 100% rename from sound/weapons/shrink_hit.ogg rename to sound/items/weapons/shrink_hit.ogg diff --git a/sound/weapons/slam.ogg b/sound/items/weapons/slam.ogg similarity index 100% rename from sound/weapons/slam.ogg rename to sound/items/weapons/slam.ogg diff --git a/sound/weapons/slap.ogg b/sound/items/weapons/slap.ogg similarity index 100% rename from sound/weapons/slap.ogg rename to sound/items/weapons/slap.ogg diff --git a/sound/weapons/slash.ogg b/sound/items/weapons/slash.ogg similarity index 100% rename from sound/weapons/slash.ogg rename to sound/items/weapons/slash.ogg diff --git a/sound/weapons/slashmiss.ogg b/sound/items/weapons/slashmiss.ogg similarity index 100% rename from sound/weapons/slashmiss.ogg rename to sound/items/weapons/slashmiss.ogg diff --git a/sound/weapons/slice.ogg b/sound/items/weapons/slice.ogg similarity index 100% rename from sound/weapons/slice.ogg rename to sound/items/weapons/slice.ogg diff --git a/sound/weapons/smash.ogg b/sound/items/weapons/smash.ogg similarity index 100% rename from sound/weapons/smash.ogg rename to sound/items/weapons/smash.ogg diff --git a/sound/weapons/solarflare.ogg b/sound/items/weapons/solarflare.ogg similarity index 100% rename from sound/weapons/solarflare.ogg rename to sound/items/weapons/solarflare.ogg diff --git a/sound/weapons/sonic_jackhammer.ogg b/sound/items/weapons/sonic_jackhammer.ogg similarity index 100% rename from sound/weapons/sonic_jackhammer.ogg rename to sound/items/weapons/sonic_jackhammer.ogg diff --git a/sound/weapons/stringsmash.ogg b/sound/items/weapons/stringsmash.ogg similarity index 100% rename from sound/weapons/stringsmash.ogg rename to sound/items/weapons/stringsmash.ogg diff --git a/sound/weapons/tap.ogg b/sound/items/weapons/tap.ogg similarity index 100% rename from sound/weapons/tap.ogg rename to sound/items/weapons/tap.ogg diff --git a/sound/weapons/taser.ogg b/sound/items/weapons/taser.ogg similarity index 100% rename from sound/weapons/taser.ogg rename to sound/items/weapons/taser.ogg diff --git a/sound/weapons/taser2.ogg b/sound/items/weapons/taser2.ogg similarity index 100% rename from sound/weapons/taser2.ogg rename to sound/items/weapons/taser2.ogg diff --git a/sound/weapons/taser3.ogg b/sound/items/weapons/taser3.ogg similarity index 100% rename from sound/weapons/taser3.ogg rename to sound/items/weapons/taser3.ogg diff --git a/sound/weapons/taserhit.ogg b/sound/items/weapons/taserhit.ogg similarity index 100% rename from sound/weapons/taserhit.ogg rename to sound/items/weapons/taserhit.ogg diff --git a/sound/weapons/thermalpistol.ogg b/sound/items/weapons/thermalpistol.ogg similarity index 100% rename from sound/weapons/thermalpistol.ogg rename to sound/items/weapons/thermalpistol.ogg diff --git a/sound/weapons/throw.ogg b/sound/items/weapons/throw.ogg similarity index 100% rename from sound/weapons/throw.ogg rename to sound/items/weapons/throw.ogg diff --git a/sound/weapons/throwhard.ogg b/sound/items/weapons/throwhard.ogg similarity index 100% rename from sound/weapons/throwhard.ogg rename to sound/items/weapons/throwhard.ogg diff --git a/sound/weapons/throwsoft.ogg b/sound/items/weapons/throwsoft.ogg similarity index 100% rename from sound/weapons/throwsoft.ogg rename to sound/items/weapons/throwsoft.ogg diff --git a/sound/weapons/throwtap.ogg b/sound/items/weapons/throwtap.ogg similarity index 100% rename from sound/weapons/throwtap.ogg rename to sound/items/weapons/throwtap.ogg diff --git a/sound/weapons/thudswoosh.ogg b/sound/items/weapons/thudswoosh.ogg similarity index 100% rename from sound/weapons/thudswoosh.ogg rename to sound/items/weapons/thudswoosh.ogg diff --git a/sound/weapons/wave.ogg b/sound/items/weapons/wave.ogg similarity index 100% rename from sound/weapons/wave.ogg rename to sound/items/weapons/wave.ogg diff --git a/sound/weapons/whip.ogg b/sound/items/weapons/whip.ogg similarity index 100% rename from sound/weapons/whip.ogg rename to sound/items/weapons/whip.ogg diff --git a/sound/weapons/whipgrab.ogg b/sound/items/weapons/whipgrab.ogg similarity index 100% rename from sound/weapons/whipgrab.ogg rename to sound/items/weapons/whipgrab.ogg diff --git a/sound/weapons/zapbang.ogg b/sound/items/weapons/zapbang.ogg similarity index 100% rename from sound/weapons/zapbang.ogg rename to sound/items/weapons/zapbang.ogg diff --git a/sound/weapons/zipline_fire.ogg b/sound/items/weapons/zipline_fire.ogg similarity index 100% rename from sound/weapons/zipline_fire.ogg rename to sound/items/weapons/zipline_fire.ogg diff --git a/sound/weapons/zipline_hit.ogg b/sound/items/weapons/zipline_hit.ogg similarity index 100% rename from sound/weapons/zipline_hit.ogg rename to sound/items/weapons/zipline_hit.ogg diff --git a/sound/weapons/zipline_mid.ogg b/sound/items/weapons/zipline_mid.ogg similarity index 100% rename from sound/weapons/zipline_mid.ogg rename to sound/items/weapons/zipline_mid.ogg diff --git a/sound/misc/whistle.ogg b/sound/items/whistle/whistle.ogg similarity index 100% rename from sound/misc/whistle.ogg rename to sound/items/whistle/whistle.ogg diff --git a/sound/items/un_zip.ogg b/sound/items/zip/un_zip.ogg similarity index 100% rename from sound/items/un_zip.ogg rename to sound/items/zip/un_zip.ogg diff --git a/sound/items/zip.ogg b/sound/items/zip/zip.ogg similarity index 100% rename from sound/items/zip.ogg rename to sound/items/zip/zip.ogg diff --git a/sound/items/zip_up.ogg b/sound/items/zip/zip_up.ogg similarity index 100% rename from sound/items/zip_up.ogg rename to sound/items/zip/zip_up.ogg diff --git a/sound/machines/airlock.ogg b/sound/machines/airlock/airlock.ogg similarity index 100% rename from sound/machines/airlock.ogg rename to sound/machines/airlock/airlock.ogg diff --git a/sound/machines/airlock_alien_prying.ogg b/sound/machines/airlock/airlock_alien_prying.ogg similarity index 100% rename from sound/machines/airlock_alien_prying.ogg rename to sound/machines/airlock/airlock_alien_prying.ogg diff --git a/sound/machines/airlockclose.ogg b/sound/machines/airlock/airlockclose.ogg similarity index 100% rename from sound/machines/airlockclose.ogg rename to sound/machines/airlock/airlockclose.ogg diff --git a/sound/machines/airlockforced.ogg b/sound/machines/airlock/airlockforced.ogg similarity index 100% rename from sound/machines/airlockforced.ogg rename to sound/machines/airlock/airlockforced.ogg diff --git a/sound/machines/airlockopen.ogg b/sound/machines/airlock/airlockopen.ogg similarity index 100% rename from sound/machines/airlockopen.ogg rename to sound/machines/airlock/airlockopen.ogg diff --git a/sound/machines/boltsdown.ogg b/sound/machines/airlock/boltsdown.ogg similarity index 100% rename from sound/machines/boltsdown.ogg rename to sound/machines/airlock/boltsdown.ogg diff --git a/sound/machines/boltsup.ogg b/sound/machines/airlock/boltsup.ogg similarity index 100% rename from sound/machines/boltsup.ogg rename to sound/machines/airlock/boltsup.ogg diff --git a/sound/machines/doorclick.ogg b/sound/machines/airlock/doorclick.ogg similarity index 100% rename from sound/machines/doorclick.ogg rename to sound/machines/airlock/doorclick.ogg diff --git a/sound/arcade/boom.ogg b/sound/machines/arcade/boom.ogg similarity index 100% rename from sound/arcade/boom.ogg rename to sound/machines/arcade/boom.ogg diff --git a/sound/arcade/heal.ogg b/sound/machines/arcade/heal.ogg similarity index 100% rename from sound/arcade/heal.ogg rename to sound/machines/arcade/heal.ogg diff --git a/sound/arcade/hit.ogg b/sound/machines/arcade/hit.ogg similarity index 100% rename from sound/arcade/hit.ogg rename to sound/machines/arcade/hit.ogg diff --git a/sound/arcade/lose.ogg b/sound/machines/arcade/lose.ogg similarity index 100% rename from sound/arcade/lose.ogg rename to sound/machines/arcade/lose.ogg diff --git a/sound/arcade/mana.ogg b/sound/machines/arcade/mana.ogg similarity index 100% rename from sound/arcade/mana.ogg rename to sound/machines/arcade/mana.ogg diff --git a/sound/arcade/steal.ogg b/sound/machines/arcade/steal.ogg similarity index 100% rename from sound/arcade/steal.ogg rename to sound/machines/arcade/steal.ogg diff --git a/sound/arcade/win.ogg b/sound/machines/arcade/win.ogg similarity index 100% rename from sound/arcade/win.ogg rename to sound/machines/arcade/win.ogg diff --git a/sound/machines/beep.ogg b/sound/machines/beep/beep.ogg similarity index 100% rename from sound/machines/beep.ogg rename to sound/machines/beep/beep.ogg diff --git a/sound/machines/deniedbeep.ogg b/sound/machines/beep/deniedbeep.ogg similarity index 100% rename from sound/machines/deniedbeep.ogg rename to sound/machines/beep/deniedbeep.ogg diff --git a/sound/machines/triple_beep.ogg b/sound/machines/beep/triple_beep.ogg similarity index 100% rename from sound/machines/triple_beep.ogg rename to sound/machines/beep/triple_beep.ogg diff --git a/sound/machines/twobeep.ogg b/sound/machines/beep/twobeep.ogg similarity index 100% rename from sound/machines/twobeep.ogg rename to sound/machines/beep/twobeep.ogg diff --git a/sound/machines/twobeep_high.ogg b/sound/machines/beep/twobeep_high.ogg similarity index 100% rename from sound/machines/twobeep_high.ogg rename to sound/machines/beep/twobeep_high.ogg diff --git a/sound/machines/twobeep_voice1.ogg b/sound/machines/beep/twobeep_voice1.ogg similarity index 100% rename from sound/machines/twobeep_voice1.ogg rename to sound/machines/beep/twobeep_voice1.ogg diff --git a/sound/machines/twobeep_voice2.ogg b/sound/machines/beep/twobeep_voice2.ogg similarity index 100% rename from sound/machines/twobeep_voice2.ogg rename to sound/machines/beep/twobeep_voice2.ogg diff --git a/sound/machines/buzz-sigh.ogg b/sound/machines/buzz/buzz-sigh.ogg similarity index 100% rename from sound/machines/buzz-sigh.ogg rename to sound/machines/buzz/buzz-sigh.ogg diff --git a/sound/machines/buzz-two.ogg b/sound/machines/buzz/buzz-two.ogg similarity index 100% rename from sound/machines/buzz-two.ogg rename to sound/machines/buzz/buzz-two.ogg diff --git a/sound/machines/click.ogg b/sound/machines/click.ogg index b3947c86e040a..3b4914a487d37 100644 Binary files a/sound/machines/click.ogg and b/sound/machines/click.ogg differ diff --git a/sound/machines/closet_close.ogg b/sound/machines/closet/closet_close.ogg similarity index 100% rename from sound/machines/closet_close.ogg rename to sound/machines/closet/closet_close.ogg diff --git a/sound/machines/closet_open.ogg b/sound/machines/closet/closet_open.ogg similarity index 100% rename from sound/machines/closet_open.ogg rename to sound/machines/closet/closet_open.ogg diff --git a/sound/machines/wooden_closet_close.ogg b/sound/machines/closet/wooden_closet_close.ogg similarity index 100% rename from sound/machines/wooden_closet_close.ogg rename to sound/machines/closet/wooden_closet_close.ogg diff --git a/sound/machines/wooden_closet_open.ogg b/sound/machines/closet/wooden_closet_open.ogg similarity index 100% rename from sound/machines/wooden_closet_open.ogg rename to sound/machines/closet/wooden_closet_open.ogg diff --git a/sound/misc/compiler-failure.ogg b/sound/machines/compiler/compiler-failure.ogg similarity index 100% rename from sound/misc/compiler-failure.ogg rename to sound/machines/compiler/compiler-failure.ogg diff --git a/sound/misc/compiler-stage1.ogg b/sound/machines/compiler/compiler-stage1.ogg similarity index 100% rename from sound/misc/compiler-stage1.ogg rename to sound/machines/compiler/compiler-stage1.ogg diff --git a/sound/misc/compiler-stage2.ogg b/sound/machines/compiler/compiler-stage2.ogg similarity index 100% rename from sound/misc/compiler-stage2.ogg rename to sound/machines/compiler/compiler-stage2.ogg diff --git a/sound/machines/crate/attribution.txt b/sound/machines/crate/attribution.txt new file mode 100644 index 0000000000000..740d711971d88 --- /dev/null +++ b/sound/machines/crate/attribution.txt @@ -0,0 +1,3 @@ +crate_close.ogg and crate_open.ogg are made by lawnjelly +(https://freesound.org/people/lawnjelly/sounds/156892/) +They have been licensed under CC-BY 3.0, which can be found at http://creativecommons.org/licenses/by/3.0/ diff --git a/sound/machines/crate_close.ogg b/sound/machines/crate/crate_close.ogg similarity index 100% rename from sound/machines/crate_close.ogg rename to sound/machines/crate/crate_close.ogg diff --git a/sound/machines/crate_open.ogg b/sound/machines/crate/crate_open.ogg similarity index 100% rename from sound/machines/crate_open.ogg rename to sound/machines/crate/crate_open.ogg diff --git a/sound/machines/defib_SaftyOn.ogg b/sound/machines/defib/defib_SaftyOn.ogg similarity index 100% rename from sound/machines/defib_SaftyOn.ogg rename to sound/machines/defib/defib_SaftyOn.ogg diff --git a/sound/machines/defib_charge.ogg b/sound/machines/defib/defib_charge.ogg similarity index 100% rename from sound/machines/defib_charge.ogg rename to sound/machines/defib/defib_charge.ogg diff --git a/sound/machines/defib_failed.ogg b/sound/machines/defib/defib_failed.ogg similarity index 100% rename from sound/machines/defib_failed.ogg rename to sound/machines/defib/defib_failed.ogg diff --git a/sound/machines/defib_ready.ogg b/sound/machines/defib/defib_ready.ogg similarity index 100% rename from sound/machines/defib_ready.ogg rename to sound/machines/defib/defib_ready.ogg diff --git a/sound/machines/defib_saftyOff.ogg b/sound/machines/defib/defib_saftyOff.ogg similarity index 100% rename from sound/machines/defib_saftyOff.ogg rename to sound/machines/defib/defib_saftyOff.ogg diff --git a/sound/machines/defib_success.ogg b/sound/machines/defib/defib_success.ogg similarity index 100% rename from sound/machines/defib_success.ogg rename to sound/machines/defib/defib_success.ogg diff --git a/sound/machines/defib_zap.ogg b/sound/machines/defib/defib_zap.ogg similarity index 100% rename from sound/machines/defib_zap.ogg rename to sound/machines/defib/defib_zap.ogg diff --git a/sound/machines/door_close.ogg b/sound/machines/door/door_close.ogg similarity index 100% rename from sound/machines/door_close.ogg rename to sound/machines/door/door_close.ogg diff --git a/sound/machines/door_locked.ogg b/sound/machines/door/door_locked.ogg similarity index 100% rename from sound/machines/door_locked.ogg rename to sound/machines/door/door_locked.ogg diff --git a/sound/machines/door_open.ogg b/sound/machines/door/door_open.ogg similarity index 100% rename from sound/machines/door_open.ogg rename to sound/machines/door/door_open.ogg diff --git a/sound/machines/engine_alert1.ogg b/sound/machines/engine_alert/engine_alert1.ogg similarity index 100% rename from sound/machines/engine_alert1.ogg rename to sound/machines/engine_alert/engine_alert1.ogg diff --git a/sound/machines/engine_alert2.ogg b/sound/machines/engine_alert/engine_alert2.ogg similarity index 100% rename from sound/machines/engine_alert2.ogg rename to sound/machines/engine_alert/engine_alert2.ogg diff --git a/sound/machines/engine_alert3.ogg b/sound/machines/engine_alert/engine_alert3.ogg similarity index 100% rename from sound/machines/engine_alert3.ogg rename to sound/machines/engine_alert/engine_alert3.ogg diff --git a/sound/machines/fan_break.ogg b/sound/machines/fan/fan_break.ogg similarity index 100% rename from sound/machines/fan_break.ogg rename to sound/machines/fan/fan_break.ogg diff --git a/sound/machines/fan_loop.ogg b/sound/machines/fan/fan_loop.ogg similarity index 100% rename from sound/machines/fan_loop.ogg rename to sound/machines/fan/fan_loop.ogg diff --git a/sound/machines/fan_start.ogg b/sound/machines/fan/fan_start.ogg similarity index 100% rename from sound/machines/fan_start.ogg rename to sound/machines/fan/fan_start.ogg diff --git a/sound/machines/fan_stop.ogg b/sound/machines/fan/fan_stop.ogg similarity index 100% rename from sound/machines/fan_stop.ogg rename to sound/machines/fan/fan_stop.ogg diff --git a/sound/machines/FireAlarm1.ogg b/sound/machines/fire_alarm/FireAlarm1.ogg similarity index 100% rename from sound/machines/FireAlarm1.ogg rename to sound/machines/fire_alarm/FireAlarm1.ogg diff --git a/sound/machines/FireAlarm2.ogg b/sound/machines/fire_alarm/FireAlarm2.ogg similarity index 100% rename from sound/machines/FireAlarm2.ogg rename to sound/machines/fire_alarm/FireAlarm2.ogg diff --git a/sound/machines/FireAlarm3.ogg b/sound/machines/fire_alarm/FireAlarm3.ogg similarity index 100% rename from sound/machines/FireAlarm3.ogg rename to sound/machines/fire_alarm/FireAlarm3.ogg diff --git a/sound/machines/FireAlarm4.ogg b/sound/machines/fire_alarm/FireAlarm4.ogg similarity index 100% rename from sound/machines/FireAlarm4.ogg rename to sound/machines/fire_alarm/FireAlarm4.ogg diff --git a/sound/effects/gateway_calibrated.ogg b/sound/machines/gateway/gateway_calibrated.ogg similarity index 100% rename from sound/effects/gateway_calibrated.ogg rename to sound/machines/gateway/gateway_calibrated.ogg diff --git a/sound/effects/gateway_calibrating.ogg b/sound/machines/gateway/gateway_calibrating.ogg similarity index 100% rename from sound/effects/gateway_calibrating.ogg rename to sound/machines/gateway/gateway_calibrating.ogg diff --git a/sound/effects/gateway_close.ogg b/sound/machines/gateway/gateway_close.ogg similarity index 100% rename from sound/effects/gateway_close.ogg rename to sound/machines/gateway/gateway_close.ogg diff --git a/sound/effects/gateway_open.ogg b/sound/machines/gateway/gateway_open.ogg similarity index 100% rename from sound/effects/gateway_open.ogg rename to sound/machines/gateway/gateway_open.ogg diff --git a/sound/effects/gateway_travel.ogg b/sound/machines/gateway/gateway_travel.ogg similarity index 100% rename from sound/effects/gateway_travel.ogg rename to sound/machines/gateway/gateway_travel.ogg diff --git a/sound/machines/attributions.txt b/sound/machines/lathe/attributions.txt similarity index 100% rename from sound/machines/attributions.txt rename to sound/machines/lathe/attributions.txt diff --git a/sound/lavaland/cursed_slot_machine.ogg b/sound/machines/lavaland/cursed_slot_machine.ogg similarity index 100% rename from sound/lavaland/cursed_slot_machine.ogg rename to sound/machines/lavaland/cursed_slot_machine.ogg diff --git a/sound/lavaland/cursed_slot_machine_jackpot.ogg b/sound/machines/lavaland/cursed_slot_machine_jackpot.ogg similarity index 100% rename from sound/lavaland/cursed_slot_machine_jackpot.ogg rename to sound/machines/lavaland/cursed_slot_machine_jackpot.ogg diff --git a/sound/machines/lever/attribution.txt b/sound/machines/lever/attribution.txt new file mode 100644 index 0000000000000..ef86e6ca5c5ac --- /dev/null +++ b/sound/machines/lever/attribution.txt @@ -0,0 +1,3 @@ +lever_start.ogg and lever_stop.ogg are made by A_Kuha on FreeSound +https://freesound.org/people/A_Kuha/sounds/676412 +This is licensed under CC-0, found at https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/sound/machines/lever_start.ogg b/sound/machines/lever/lever_start.ogg similarity index 100% rename from sound/machines/lever_start.ogg rename to sound/machines/lever/lever_start.ogg diff --git a/sound/machines/lever_stop.ogg b/sound/machines/lever/lever_stop.ogg similarity index 100% rename from sound/machines/lever_stop.ogg rename to sound/machines/lever/lever_stop.ogg diff --git a/sound/machines/license.txt b/sound/machines/license.txt index 0d7de5a5dfa3d..dbccfd7ea096d 100644 --- a/sound/machines/license.txt +++ b/sound/machines/license.txt @@ -1,14 +1,6 @@ -crate_close.ogg and crate_open.ogg are made by lawnjelly -(https://freesound.org/people/lawnjelly/sounds/156892/) -They have been licensed under CC-BY 3.0, which can be found at http://creativecommons.org/licenses/by/3.0/ - coffeemaker_brew.ogg originally made by Adriana Lopez (Acekat13X31), edited to reduce length and added fade (https://freesound.org/people/Acekat13X31/sounds/515685/) This is licensed under CC-BY 4.0, found at https://creativecommons.org/licenses/by/4.0/ shutter.ogg adapted from Joseph Sardin on BigSoundBank https://bigsoundbank.com/detail-2475-manual-roller-shutter-closing-out-2.html - -lever_start.ogg and lever_stop.ogg are made by A_Kuha on FreeSound -https://freesound.org/people/A_Kuha/sounds/676412 -This is licensed under CC-0, found at https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/sound/machines/pda_button1.ogg b/sound/machines/pda_button/pda_button1.ogg similarity index 100% rename from sound/machines/pda_button1.ogg rename to sound/machines/pda_button/pda_button1.ogg diff --git a/sound/machines/pda_button2.ogg b/sound/machines/pda_button/pda_button2.ogg similarity index 100% rename from sound/machines/pda_button2.ogg rename to sound/machines/pda_button/pda_button2.ogg diff --git a/sound/machines/piston_lower.ogg b/sound/machines/piston/piston_lower.ogg similarity index 100% rename from sound/machines/piston_lower.ogg rename to sound/machines/piston/piston_lower.ogg diff --git a/sound/machines/piston_raise.ogg b/sound/machines/piston/piston_raise.ogg similarity index 100% rename from sound/machines/piston_raise.ogg rename to sound/machines/piston/piston_raise.ogg diff --git a/sound/machines/roulettejackpot.ogg b/sound/machines/roulette/roulettejackpot.ogg similarity index 100% rename from sound/machines/roulettejackpot.ogg rename to sound/machines/roulette/roulettejackpot.ogg diff --git a/sound/machines/roulettewheel.ogg b/sound/machines/roulette/roulettewheel.ogg similarity index 100% rename from sound/machines/roulettewheel.ogg rename to sound/machines/roulette/roulettewheel.ogg diff --git a/sound/machines/scanbuzz.ogg b/sound/machines/scanner/scanbuzz.ogg similarity index 100% rename from sound/machines/scanbuzz.ogg rename to sound/machines/scanner/scanbuzz.ogg diff --git a/sound/machines/scanner.ogg b/sound/machines/scanner/scanner.ogg similarity index 100% rename from sound/machines/scanner.ogg rename to sound/machines/scanner/scanner.ogg diff --git a/sound/machines/synth_no.ogg b/sound/machines/synth/synth_no.ogg similarity index 100% rename from sound/machines/synth_no.ogg rename to sound/machines/synth/synth_no.ogg diff --git a/sound/machines/synth_yes.ogg b/sound/machines/synth/synth_yes.ogg similarity index 100% rename from sound/machines/synth_yes.ogg rename to sound/machines/synth/synth_yes.ogg diff --git a/sound/machines/terminal_alert.ogg b/sound/machines/terminal/terminal_alert.ogg similarity index 100% rename from sound/machines/terminal_alert.ogg rename to sound/machines/terminal/terminal_alert.ogg diff --git a/sound/machines/terminal_button01.ogg b/sound/machines/terminal/terminal_button01.ogg similarity index 100% rename from sound/machines/terminal_button01.ogg rename to sound/machines/terminal/terminal_button01.ogg diff --git a/sound/machines/terminal_button02.ogg b/sound/machines/terminal/terminal_button02.ogg similarity index 100% rename from sound/machines/terminal_button02.ogg rename to sound/machines/terminal/terminal_button02.ogg diff --git a/sound/machines/terminal_button03.ogg b/sound/machines/terminal/terminal_button03.ogg similarity index 100% rename from sound/machines/terminal_button03.ogg rename to sound/machines/terminal/terminal_button03.ogg diff --git a/sound/machines/terminal_button04.ogg b/sound/machines/terminal/terminal_button04.ogg similarity index 100% rename from sound/machines/terminal_button04.ogg rename to sound/machines/terminal/terminal_button04.ogg diff --git a/sound/machines/terminal_button05.ogg b/sound/machines/terminal/terminal_button05.ogg similarity index 100% rename from sound/machines/terminal_button05.ogg rename to sound/machines/terminal/terminal_button05.ogg diff --git a/sound/machines/terminal_button06.ogg b/sound/machines/terminal/terminal_button06.ogg similarity index 100% rename from sound/machines/terminal_button06.ogg rename to sound/machines/terminal/terminal_button06.ogg diff --git a/sound/machines/terminal_button07.ogg b/sound/machines/terminal/terminal_button07.ogg similarity index 100% rename from sound/machines/terminal_button07.ogg rename to sound/machines/terminal/terminal_button07.ogg diff --git a/sound/machines/terminal_button08.ogg b/sound/machines/terminal/terminal_button08.ogg similarity index 100% rename from sound/machines/terminal_button08.ogg rename to sound/machines/terminal/terminal_button08.ogg diff --git a/sound/machines/terminal_eject.ogg b/sound/machines/terminal/terminal_eject.ogg similarity index 100% rename from sound/machines/terminal_eject.ogg rename to sound/machines/terminal/terminal_eject.ogg diff --git a/sound/machines/terminal_error.ogg b/sound/machines/terminal/terminal_error.ogg similarity index 100% rename from sound/machines/terminal_error.ogg rename to sound/machines/terminal/terminal_error.ogg diff --git a/sound/machines/terminal_insert_disc.ogg b/sound/machines/terminal/terminal_insert_disc.ogg similarity index 100% rename from sound/machines/terminal_insert_disc.ogg rename to sound/machines/terminal/terminal_insert_disc.ogg diff --git a/sound/machines/terminal_off.ogg b/sound/machines/terminal/terminal_off.ogg similarity index 100% rename from sound/machines/terminal_off.ogg rename to sound/machines/terminal/terminal_off.ogg diff --git a/sound/machines/terminal_on.ogg b/sound/machines/terminal/terminal_on.ogg similarity index 100% rename from sound/machines/terminal_on.ogg rename to sound/machines/terminal/terminal_on.ogg diff --git a/sound/machines/terminal_processing.ogg b/sound/machines/terminal/terminal_processing.ogg similarity index 100% rename from sound/machines/terminal_processing.ogg rename to sound/machines/terminal/terminal_processing.ogg diff --git a/sound/machines/terminal_prompt.ogg b/sound/machines/terminal/terminal_prompt.ogg similarity index 100% rename from sound/machines/terminal_prompt.ogg rename to sound/machines/terminal/terminal_prompt.ogg diff --git a/sound/machines/terminal_prompt_confirm.ogg b/sound/machines/terminal/terminal_prompt_confirm.ogg similarity index 100% rename from sound/machines/terminal_prompt_confirm.ogg rename to sound/machines/terminal/terminal_prompt_confirm.ogg diff --git a/sound/machines/terminal_prompt_deny.ogg b/sound/machines/terminal/terminal_prompt_deny.ogg similarity index 100% rename from sound/machines/terminal_prompt_deny.ogg rename to sound/machines/terminal/terminal_prompt_deny.ogg diff --git a/sound/machines/terminal_select.ogg b/sound/machines/terminal/terminal_select.ogg similarity index 100% rename from sound/machines/terminal_select.ogg rename to sound/machines/terminal/terminal_select.ogg diff --git a/sound/machines/terminal_success.ogg b/sound/machines/terminal/terminal_success.ogg similarity index 100% rename from sound/machines/terminal_success.ogg rename to sound/machines/terminal/terminal_success.ogg diff --git a/sound/machines/tramclose.ogg b/sound/machines/tram/tramclose.ogg similarity index 100% rename from sound/machines/tramclose.ogg rename to sound/machines/tram/tramclose.ogg diff --git a/sound/machines/tramopen.ogg b/sound/machines/tram/tramopen.ogg similarity index 100% rename from sound/machines/tramopen.ogg rename to sound/machines/tram/tramopen.ogg diff --git a/sound/machines/uplinkerror.ogg b/sound/machines/uplink/uplinkerror.ogg similarity index 100% rename from sound/machines/uplinkerror.ogg rename to sound/machines/uplink/uplinkerror.ogg diff --git a/sound/machines/uplinkpurchase.ogg b/sound/machines/uplink/uplinkpurchase.ogg similarity index 100% rename from sound/machines/uplinkpurchase.ogg rename to sound/machines/uplink/uplinkpurchase.ogg diff --git a/sound/misc/Yeehaw.ogg b/sound/misc/Yeehaw.ogg deleted file mode 100644 index 05bec20b9c120..0000000000000 Binary files a/sound/misc/Yeehaw.ogg and /dev/null differ diff --git a/sound/voice/insane_low_laugh.ogg b/sound/misc/insane_low_laugh.ogg similarity index 100% rename from sound/voice/insane_low_laugh.ogg rename to sound/misc/insane_low_laugh.ogg diff --git a/sound/misc/license.txt b/sound/misc/license.txt index 761a031d19081..2e596a4e128e3 100644 --- a/sound/misc/license.txt +++ b/sound/misc/license.txt @@ -1,17 +1,2 @@ -bloop.ogg by my man Tim Khan +bloop.ogg by my man Tim Khan (https://freesound.org/people/tim.kahn/sounds/130377/) - -knuckles.ogg by CGEffex. Shortened and cut. -https://freesound.org/people/CGEffex/sounds/93981/ - -airraid.ogg by Jwade722. Shortened and cut. -https://freesound.org/people/Jwade722/sounds/534550/ - -radio_talk.ogg by cs2975871. Shortened and cut. -https://freesound.org/people/cs2975871/sounds/514185/ - -radio_important.ogg by morganpurkis. -https://freesound.org/people/morganpurkis/sounds/392972/ - -radio_receive.ogg by JovianSounds. Shortened and cut. -https://freesound.org/people/JovianSounds/sounds/524205/ \ No newline at end of file diff --git a/sound/misc/null.ogg b/sound/misc/null.ogg deleted file mode 100644 index 698709398a3c2..0000000000000 Binary files a/sound/misc/null.ogg and /dev/null differ diff --git a/sound/voice/roleplay.ogg b/sound/misc/roleplay.ogg similarity index 100% rename from sound/voice/roleplay.ogg rename to sound/misc/roleplay.ogg diff --git a/sound/voice/breathing/attribution.txt b/sound/mobs/humanoids/breathing/attribution.txt similarity index 100% rename from sound/voice/breathing/attribution.txt rename to sound/mobs/humanoids/breathing/attribution.txt diff --git a/sound/voice/breathing/internals_breathing1.ogg b/sound/mobs/humanoids/breathing/internals_breathing1.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing1.ogg rename to sound/mobs/humanoids/breathing/internals_breathing1.ogg diff --git a/sound/voice/breathing/internals_breathing2.ogg b/sound/mobs/humanoids/breathing/internals_breathing2.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing2.ogg rename to sound/mobs/humanoids/breathing/internals_breathing2.ogg diff --git a/sound/voice/breathing/internals_breathing3.ogg b/sound/mobs/humanoids/breathing/internals_breathing3.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing3.ogg rename to sound/mobs/humanoids/breathing/internals_breathing3.ogg diff --git a/sound/voice/breathing/internals_breathing4.ogg b/sound/mobs/humanoids/breathing/internals_breathing4.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing4.ogg rename to sound/mobs/humanoids/breathing/internals_breathing4.ogg diff --git a/sound/voice/breathing/internals_breathing5.ogg b/sound/mobs/humanoids/breathing/internals_breathing5.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing5.ogg rename to sound/mobs/humanoids/breathing/internals_breathing5.ogg diff --git a/sound/voice/breathing/internals_breathing6.ogg b/sound/mobs/humanoids/breathing/internals_breathing6.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing6.ogg rename to sound/mobs/humanoids/breathing/internals_breathing6.ogg diff --git a/sound/voice/breathing/internals_breathing7.ogg b/sound/mobs/humanoids/breathing/internals_breathing7.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing7.ogg rename to sound/mobs/humanoids/breathing/internals_breathing7.ogg diff --git a/sound/voice/breathing/internals_breathing8.ogg b/sound/mobs/humanoids/breathing/internals_breathing8.ogg similarity index 100% rename from sound/voice/breathing/internals_breathing8.ogg rename to sound/mobs/humanoids/breathing/internals_breathing8.ogg diff --git a/sound/effects/ethereal_crystalization.ogg b/sound/mobs/humanoids/ethereal/ethereal_crystalization.ogg similarity index 100% rename from sound/effects/ethereal_crystalization.ogg rename to sound/mobs/humanoids/ethereal/ethereal_crystalization.ogg diff --git a/sound/effects/ethereal_revive.ogg b/sound/mobs/humanoids/ethereal/ethereal_revive.ogg similarity index 100% rename from sound/effects/ethereal_revive.ogg rename to sound/mobs/humanoids/ethereal/ethereal_revive.ogg diff --git a/sound/effects/ethereal_revive_fail.ogg b/sound/mobs/humanoids/ethereal/ethereal_revive_fail.ogg similarity index 100% rename from sound/effects/ethereal_revive_fail.ogg rename to sound/mobs/humanoids/ethereal/ethereal_revive_fail.ogg diff --git a/sound/voice/ethereal/ethereal_scream_1.ogg b/sound/mobs/humanoids/ethereal/ethereal_scream_1.ogg similarity index 100% rename from sound/voice/ethereal/ethereal_scream_1.ogg rename to sound/mobs/humanoids/ethereal/ethereal_scream_1.ogg diff --git a/sound/voice/ethereal/ethereal_scream_2.ogg b/sound/mobs/humanoids/ethereal/ethereal_scream_2.ogg similarity index 100% rename from sound/voice/ethereal/ethereal_scream_2.ogg rename to sound/mobs/humanoids/ethereal/ethereal_scream_2.ogg diff --git a/sound/voice/ethereal/ethereal_scream_3.ogg b/sound/mobs/humanoids/ethereal/ethereal_scream_3.ogg similarity index 100% rename from sound/voice/ethereal/ethereal_scream_3.ogg rename to sound/mobs/humanoids/ethereal/ethereal_scream_3.ogg diff --git a/sound/voice/ethereal/lustrous_scream_1.ogg b/sound/mobs/humanoids/ethereal/lustrous_scream_1.ogg similarity index 100% rename from sound/voice/ethereal/lustrous_scream_1.ogg rename to sound/mobs/humanoids/ethereal/lustrous_scream_1.ogg diff --git a/sound/voice/ethereal/lustrous_scream_2.ogg b/sound/mobs/humanoids/ethereal/lustrous_scream_2.ogg similarity index 100% rename from sound/voice/ethereal/lustrous_scream_2.ogg rename to sound/mobs/humanoids/ethereal/lustrous_scream_2.ogg diff --git a/sound/voice/ethereal/lustrous_scream_3.ogg b/sound/mobs/humanoids/ethereal/lustrous_scream_3.ogg similarity index 100% rename from sound/voice/ethereal/lustrous_scream_3.ogg rename to sound/mobs/humanoids/ethereal/lustrous_scream_3.ogg diff --git a/sound/mobs/humanoids/human/attribution.txt b/sound/mobs/humanoids/human/attribution.txt new file mode 100644 index 0000000000000..254e7a7b3aede --- /dev/null +++ b/sound/mobs/humanoids/human/attribution.txt @@ -0,0 +1,8 @@ +The male sharp gasps are from https://freesound.org/people/bacruz666/sounds/341908/ and https://freesound.org/people/nettoi/sounds/677540/, the female sharp gasps are from https://freesound.org/people/drotzruhn/sounds/405203/ + +{ +male_sniff.ogg - https://freesound.org/people/Fluffayfish/sounds/327799/ , License: CC BY-NC 3.0 +male_sigh.ogg - https://freesound.org/people/giddster/sounds/336540/ , License: CC0 +female_sniff.ogg - https://freesound.org/people/SpliceSound/sounds/218307/ , License: CC0 +female_sigh.ogg - https://freesound.org/people/biawinter/sounds/408090/ , License: CC BY-NC 4.0 +} modified by grungussuss diff --git a/sound/misc/clap1.ogg b/sound/mobs/humanoids/human/clap/clap1.ogg similarity index 100% rename from sound/misc/clap1.ogg rename to sound/mobs/humanoids/human/clap/clap1.ogg diff --git a/sound/misc/clap2.ogg b/sound/mobs/humanoids/human/clap/clap2.ogg similarity index 100% rename from sound/misc/clap2.ogg rename to sound/mobs/humanoids/human/clap/clap2.ogg diff --git a/sound/misc/clap3.ogg b/sound/mobs/humanoids/human/clap/clap3.ogg similarity index 100% rename from sound/misc/clap3.ogg rename to sound/mobs/humanoids/human/clap/clap3.ogg diff --git a/sound/misc/clap4.ogg b/sound/mobs/humanoids/human/clap/clap4.ogg similarity index 100% rename from sound/misc/clap4.ogg rename to sound/mobs/humanoids/human/clap/clap4.ogg diff --git a/sound/voice/human/female_cough1.ogg b/sound/mobs/humanoids/human/cough/female_cough1.ogg similarity index 100% rename from sound/voice/human/female_cough1.ogg rename to sound/mobs/humanoids/human/cough/female_cough1.ogg diff --git a/sound/voice/human/female_cough2.ogg b/sound/mobs/humanoids/human/cough/female_cough2.ogg similarity index 100% rename from sound/voice/human/female_cough2.ogg rename to sound/mobs/humanoids/human/cough/female_cough2.ogg diff --git a/sound/voice/human/female_cough3.ogg b/sound/mobs/humanoids/human/cough/female_cough3.ogg similarity index 100% rename from sound/voice/human/female_cough3.ogg rename to sound/mobs/humanoids/human/cough/female_cough3.ogg diff --git a/sound/voice/human/female_cough4.ogg b/sound/mobs/humanoids/human/cough/female_cough4.ogg similarity index 100% rename from sound/voice/human/female_cough4.ogg rename to sound/mobs/humanoids/human/cough/female_cough4.ogg diff --git a/sound/voice/human/female_cough5.ogg b/sound/mobs/humanoids/human/cough/female_cough5.ogg similarity index 100% rename from sound/voice/human/female_cough5.ogg rename to sound/mobs/humanoids/human/cough/female_cough5.ogg diff --git a/sound/voice/human/female_cough6.ogg b/sound/mobs/humanoids/human/cough/female_cough6.ogg similarity index 100% rename from sound/voice/human/female_cough6.ogg rename to sound/mobs/humanoids/human/cough/female_cough6.ogg diff --git a/sound/voice/human/male_cough1.ogg b/sound/mobs/humanoids/human/cough/male_cough1.ogg similarity index 100% rename from sound/voice/human/male_cough1.ogg rename to sound/mobs/humanoids/human/cough/male_cough1.ogg diff --git a/sound/voice/human/male_cough2.ogg b/sound/mobs/humanoids/human/cough/male_cough2.ogg similarity index 100% rename from sound/voice/human/male_cough2.ogg rename to sound/mobs/humanoids/human/cough/male_cough2.ogg diff --git a/sound/voice/human/male_cough3.ogg b/sound/mobs/humanoids/human/cough/male_cough3.ogg similarity index 100% rename from sound/voice/human/male_cough3.ogg rename to sound/mobs/humanoids/human/cough/male_cough3.ogg diff --git a/sound/voice/human/male_cough4.ogg b/sound/mobs/humanoids/human/cough/male_cough4.ogg similarity index 100% rename from sound/voice/human/male_cough4.ogg rename to sound/mobs/humanoids/human/cough/male_cough4.ogg diff --git a/sound/voice/human/male_cough5.ogg b/sound/mobs/humanoids/human/cough/male_cough5.ogg similarity index 100% rename from sound/voice/human/male_cough5.ogg rename to sound/mobs/humanoids/human/cough/male_cough5.ogg diff --git a/sound/voice/human/male_cough6.ogg b/sound/mobs/humanoids/human/cough/male_cough6.ogg similarity index 100% rename from sound/voice/human/male_cough6.ogg rename to sound/mobs/humanoids/human/cough/male_cough6.ogg diff --git a/sound/voice/human/female_cry1.ogg b/sound/mobs/humanoids/human/cry/female_cry1.ogg similarity index 100% rename from sound/voice/human/female_cry1.ogg rename to sound/mobs/humanoids/human/cry/female_cry1.ogg diff --git a/sound/voice/human/female_cry2.ogg b/sound/mobs/humanoids/human/cry/female_cry2.ogg similarity index 100% rename from sound/voice/human/female_cry2.ogg rename to sound/mobs/humanoids/human/cry/female_cry2.ogg diff --git a/sound/voice/human/male_cry1.ogg b/sound/mobs/humanoids/human/cry/male_cry1.ogg similarity index 100% rename from sound/voice/human/male_cry1.ogg rename to sound/mobs/humanoids/human/cry/male_cry1.ogg diff --git a/sound/voice/human/male_cry2.ogg b/sound/mobs/humanoids/human/cry/male_cry2.ogg similarity index 100% rename from sound/voice/human/male_cry2.ogg rename to sound/mobs/humanoids/human/cry/male_cry2.ogg diff --git a/sound/voice/human/male_cry3.ogg b/sound/mobs/humanoids/human/cry/male_cry3.ogg similarity index 100% rename from sound/voice/human/male_cry3.ogg rename to sound/mobs/humanoids/human/cry/male_cry3.ogg diff --git a/sound/creatures/crack_vomit.ogg b/sound/mobs/humanoids/human/gag_vomit/crack_vomit.ogg similarity index 100% rename from sound/creatures/crack_vomit.ogg rename to sound/mobs/humanoids/human/gag_vomit/crack_vomit.ogg diff --git a/sound/creatures/gag1.ogg b/sound/mobs/humanoids/human/gag_vomit/gag1.ogg similarity index 100% rename from sound/creatures/gag1.ogg rename to sound/mobs/humanoids/human/gag_vomit/gag1.ogg diff --git a/sound/creatures/gag2.ogg b/sound/mobs/humanoids/human/gag_vomit/gag2.ogg similarity index 100% rename from sound/creatures/gag2.ogg rename to sound/mobs/humanoids/human/gag_vomit/gag2.ogg diff --git a/sound/creatures/gag3.ogg b/sound/mobs/humanoids/human/gag_vomit/gag3.ogg similarity index 100% rename from sound/creatures/gag3.ogg rename to sound/mobs/humanoids/human/gag_vomit/gag3.ogg diff --git a/sound/creatures/gag4.ogg b/sound/mobs/humanoids/human/gag_vomit/gag4.ogg similarity index 100% rename from sound/creatures/gag4.ogg rename to sound/mobs/humanoids/human/gag_vomit/gag4.ogg diff --git a/sound/creatures/gag5.ogg b/sound/mobs/humanoids/human/gag_vomit/gag5.ogg similarity index 100% rename from sound/creatures/gag5.ogg rename to sound/mobs/humanoids/human/gag_vomit/gag5.ogg diff --git a/sound/voice/human/gasp_female1.ogg b/sound/mobs/humanoids/human/gasp/gasp_female1.ogg similarity index 100% rename from sound/voice/human/gasp_female1.ogg rename to sound/mobs/humanoids/human/gasp/gasp_female1.ogg diff --git a/sound/voice/human/gasp_female2.ogg b/sound/mobs/humanoids/human/gasp/gasp_female2.ogg similarity index 100% rename from sound/voice/human/gasp_female2.ogg rename to sound/mobs/humanoids/human/gasp/gasp_female2.ogg diff --git a/sound/voice/human/gasp_female3.ogg b/sound/mobs/humanoids/human/gasp/gasp_female3.ogg similarity index 100% rename from sound/voice/human/gasp_female3.ogg rename to sound/mobs/humanoids/human/gasp/gasp_female3.ogg diff --git a/sound/voice/human/gasp_male1.ogg b/sound/mobs/humanoids/human/gasp/gasp_male1.ogg similarity index 100% rename from sound/voice/human/gasp_male1.ogg rename to sound/mobs/humanoids/human/gasp/gasp_male1.ogg diff --git a/sound/voice/human/gasp_male2.ogg b/sound/mobs/humanoids/human/gasp/gasp_male2.ogg similarity index 100% rename from sound/voice/human/gasp_male2.ogg rename to sound/mobs/humanoids/human/gasp/gasp_male2.ogg diff --git a/sound/effects/sf_hiccup_male_01.ogg b/sound/mobs/humanoids/human/hiccup/sf_hiccup_male_01.ogg similarity index 100% rename from sound/effects/sf_hiccup_male_01.ogg rename to sound/mobs/humanoids/human/hiccup/sf_hiccup_male_01.ogg diff --git a/sound/mobs/humanoids/human/knuckle_crack/attribution.txt b/sound/mobs/humanoids/human/knuckle_crack/attribution.txt new file mode 100644 index 0000000000000..da2f5afadb414 --- /dev/null +++ b/sound/mobs/humanoids/human/knuckle_crack/attribution.txt @@ -0,0 +1,2 @@ +knuckles.ogg by CGEffex. Shortened and cut. +https://freesound.org/people/CGEffex/sounds/93981/ diff --git a/sound/misc/knuckles.ogg b/sound/mobs/humanoids/human/knuckle_crack/knuckles.ogg similarity index 100% rename from sound/misc/knuckles.ogg rename to sound/mobs/humanoids/human/knuckle_crack/knuckles.ogg diff --git a/sound/voice/human/manlaugh1.ogg b/sound/mobs/humanoids/human/laugh/manlaugh1.ogg similarity index 100% rename from sound/voice/human/manlaugh1.ogg rename to sound/mobs/humanoids/human/laugh/manlaugh1.ogg diff --git a/sound/voice/human/manlaugh2.ogg b/sound/mobs/humanoids/human/laugh/manlaugh2.ogg similarity index 100% rename from sound/voice/human/manlaugh2.ogg rename to sound/mobs/humanoids/human/laugh/manlaugh2.ogg diff --git a/sound/voice/human/womanlaugh.ogg b/sound/mobs/humanoids/human/laugh/womanlaugh.ogg similarity index 100% rename from sound/voice/human/womanlaugh.ogg rename to sound/mobs/humanoids/human/laugh/womanlaugh.ogg diff --git a/sound/misc/salute.ogg b/sound/mobs/humanoids/human/salute/salute.ogg similarity index 100% rename from sound/misc/salute.ogg rename to sound/mobs/humanoids/human/salute/salute.ogg diff --git a/sound/voice/human/femalescream_1.ogg b/sound/mobs/humanoids/human/scream/femalescream_1.ogg similarity index 100% rename from sound/voice/human/femalescream_1.ogg rename to sound/mobs/humanoids/human/scream/femalescream_1.ogg diff --git a/sound/voice/human/femalescream_2.ogg b/sound/mobs/humanoids/human/scream/femalescream_2.ogg similarity index 100% rename from sound/voice/human/femalescream_2.ogg rename to sound/mobs/humanoids/human/scream/femalescream_2.ogg diff --git a/sound/voice/human/femalescream_3.ogg b/sound/mobs/humanoids/human/scream/femalescream_3.ogg similarity index 100% rename from sound/voice/human/femalescream_3.ogg rename to sound/mobs/humanoids/human/scream/femalescream_3.ogg diff --git a/sound/voice/human/femalescream_4.ogg b/sound/mobs/humanoids/human/scream/femalescream_4.ogg similarity index 100% rename from sound/voice/human/femalescream_4.ogg rename to sound/mobs/humanoids/human/scream/femalescream_4.ogg diff --git a/sound/voice/human/femalescream_5.ogg b/sound/mobs/humanoids/human/scream/femalescream_5.ogg similarity index 100% rename from sound/voice/human/femalescream_5.ogg rename to sound/mobs/humanoids/human/scream/femalescream_5.ogg diff --git a/sound/voice/human/malescream_1.ogg b/sound/mobs/humanoids/human/scream/malescream_1.ogg similarity index 100% rename from sound/voice/human/malescream_1.ogg rename to sound/mobs/humanoids/human/scream/malescream_1.ogg diff --git a/sound/voice/human/malescream_2.ogg b/sound/mobs/humanoids/human/scream/malescream_2.ogg similarity index 100% rename from sound/voice/human/malescream_2.ogg rename to sound/mobs/humanoids/human/scream/malescream_2.ogg diff --git a/sound/voice/human/malescream_3.ogg b/sound/mobs/humanoids/human/scream/malescream_3.ogg similarity index 100% rename from sound/voice/human/malescream_3.ogg rename to sound/mobs/humanoids/human/scream/malescream_3.ogg diff --git a/sound/voice/human/malescream_4.ogg b/sound/mobs/humanoids/human/scream/malescream_4.ogg similarity index 100% rename from sound/voice/human/malescream_4.ogg rename to sound/mobs/humanoids/human/scream/malescream_4.ogg diff --git a/sound/voice/human/malescream_5.ogg b/sound/mobs/humanoids/human/scream/malescream_5.ogg similarity index 100% rename from sound/voice/human/malescream_5.ogg rename to sound/mobs/humanoids/human/scream/malescream_5.ogg diff --git a/sound/voice/human/malescream_6.ogg b/sound/mobs/humanoids/human/scream/malescream_6.ogg similarity index 100% rename from sound/voice/human/malescream_6.ogg rename to sound/mobs/humanoids/human/scream/malescream_6.ogg diff --git a/sound/voice/human/wilhelm_scream.ogg b/sound/mobs/humanoids/human/scream/wilhelm_scream.ogg similarity index 100% rename from sound/voice/human/wilhelm_scream.ogg rename to sound/mobs/humanoids/human/scream/wilhelm_scream.ogg diff --git a/sound/voice/human/female_sigh.ogg b/sound/mobs/humanoids/human/sigh/female_sigh.ogg similarity index 100% rename from sound/voice/human/female_sigh.ogg rename to sound/mobs/humanoids/human/sigh/female_sigh.ogg diff --git a/sound/voice/human/male_sigh.ogg b/sound/mobs/humanoids/human/sigh/male_sigh.ogg similarity index 100% rename from sound/voice/human/male_sigh.ogg rename to sound/mobs/humanoids/human/sigh/male_sigh.ogg diff --git a/sound/misc/fingersnap1.ogg b/sound/mobs/humanoids/human/snap/fingersnap1.ogg similarity index 100% rename from sound/misc/fingersnap1.ogg rename to sound/mobs/humanoids/human/snap/fingersnap1.ogg diff --git a/sound/misc/fingersnap2.ogg b/sound/mobs/humanoids/human/snap/fingersnap2.ogg similarity index 100% rename from sound/misc/fingersnap2.ogg rename to sound/mobs/humanoids/human/snap/fingersnap2.ogg diff --git a/sound/voice/human/female_sneeze1.ogg b/sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg similarity index 100% rename from sound/voice/human/female_sneeze1.ogg rename to sound/mobs/humanoids/human/sneeze/female_sneeze1.ogg diff --git a/sound/voice/human/male_sneeze1.ogg b/sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg similarity index 100% rename from sound/voice/human/male_sneeze1.ogg rename to sound/mobs/humanoids/human/sneeze/male_sneeze1.ogg diff --git a/sound/voice/human/female_sniff.ogg b/sound/mobs/humanoids/human/sniff/female_sniff.ogg similarity index 100% rename from sound/voice/human/female_sniff.ogg rename to sound/mobs/humanoids/human/sniff/female_sniff.ogg diff --git a/sound/voice/human/male_sniff.ogg b/sound/mobs/humanoids/human/sniff/male_sniff.ogg similarity index 100% rename from sound/voice/human/male_sniff.ogg rename to sound/mobs/humanoids/human/sniff/male_sniff.ogg diff --git a/sound/voice/human/whistle1.ogg b/sound/mobs/humanoids/human/whistle/whistle1.ogg similarity index 100% rename from sound/voice/human/whistle1.ogg rename to sound/mobs/humanoids/human/whistle/whistle1.ogg diff --git a/sound/voice/lizard/credits.txt b/sound/mobs/humanoids/lizard/credits.txt similarity index 100% rename from sound/voice/lizard/credits.txt rename to sound/mobs/humanoids/lizard/credits.txt diff --git a/sound/voice/lizard/deathsound.ogg b/sound/mobs/humanoids/lizard/deathsound.ogg similarity index 100% rename from sound/voice/lizard/deathsound.ogg rename to sound/mobs/humanoids/lizard/deathsound.ogg diff --git a/sound/voice/lizard/lizard_laugh1.ogg b/sound/mobs/humanoids/lizard/lizard_laugh1.ogg similarity index 100% rename from sound/voice/lizard/lizard_laugh1.ogg rename to sound/mobs/humanoids/lizard/lizard_laugh1.ogg diff --git a/sound/voice/lizard/lizard_scream_1.ogg b/sound/mobs/humanoids/lizard/lizard_scream_1.ogg similarity index 100% rename from sound/voice/lizard/lizard_scream_1.ogg rename to sound/mobs/humanoids/lizard/lizard_scream_1.ogg diff --git a/sound/voice/lizard/lizard_scream_2.ogg b/sound/mobs/humanoids/lizard/lizard_scream_2.ogg similarity index 100% rename from sound/voice/lizard/lizard_scream_2.ogg rename to sound/mobs/humanoids/lizard/lizard_scream_2.ogg diff --git a/sound/voice/lizard/lizard_scream_3.ogg b/sound/mobs/humanoids/lizard/lizard_scream_3.ogg similarity index 100% rename from sound/voice/lizard/lizard_scream_3.ogg rename to sound/mobs/humanoids/lizard/lizard_scream_3.ogg diff --git a/sound/voice/moth/credit.txt b/sound/mobs/humanoids/moth/credit.txt similarity index 100% rename from sound/voice/moth/credit.txt rename to sound/mobs/humanoids/moth/credit.txt diff --git a/sound/voice/moth/moth_death.ogg b/sound/mobs/humanoids/moth/moth_death.ogg similarity index 100% rename from sound/voice/moth/moth_death.ogg rename to sound/mobs/humanoids/moth/moth_death.ogg diff --git a/sound/voice/moth/moth_flutter.ogg b/sound/mobs/humanoids/moth/moth_flutter.ogg similarity index 100% rename from sound/voice/moth/moth_flutter.ogg rename to sound/mobs/humanoids/moth/moth_flutter.ogg diff --git a/sound/voice/moth/moth_laugh1.ogg b/sound/mobs/humanoids/moth/moth_laugh1.ogg similarity index 100% rename from sound/voice/moth/moth_laugh1.ogg rename to sound/mobs/humanoids/moth/moth_laugh1.ogg diff --git a/sound/voice/moth/scream_moth.ogg b/sound/mobs/humanoids/moth/scream_moth.ogg similarity index 100% rename from sound/voice/moth/scream_moth.ogg rename to sound/mobs/humanoids/moth/scream_moth.ogg diff --git a/sound/voice/plasmaman/plasmeme_scream_1.ogg b/sound/mobs/humanoids/plasmaman/plasmeme_scream_1.ogg similarity index 100% rename from sound/voice/plasmaman/plasmeme_scream_1.ogg rename to sound/mobs/humanoids/plasmaman/plasmeme_scream_1.ogg diff --git a/sound/voice/plasmaman/plasmeme_scream_2.ogg b/sound/mobs/humanoids/plasmaman/plasmeme_scream_2.ogg similarity index 100% rename from sound/voice/plasmaman/plasmeme_scream_2.ogg rename to sound/mobs/humanoids/plasmaman/plasmeme_scream_2.ogg diff --git a/sound/voice/plasmaman/plasmeme_scream_3.ogg b/sound/mobs/humanoids/plasmaman/plasmeme_scream_3.ogg similarity index 100% rename from sound/voice/plasmaman/plasmeme_scream_3.ogg rename to sound/mobs/humanoids/plasmaman/plasmeme_scream_3.ogg diff --git a/sound/creatures/alien_eat.ogg b/sound/mobs/non-humanoids/alien/alien_eat.ogg similarity index 100% rename from sound/creatures/alien_eat.ogg rename to sound/mobs/non-humanoids/alien/alien_eat.ogg diff --git a/sound/creatures/alien_explode.ogg b/sound/mobs/non-humanoids/alien/alien_explode.ogg similarity index 100% rename from sound/creatures/alien_explode.ogg rename to sound/mobs/non-humanoids/alien/alien_explode.ogg diff --git a/sound/creatures/alien_organ_cut.ogg b/sound/mobs/non-humanoids/alien/alien_organ_cut.ogg similarity index 100% rename from sound/creatures/alien_organ_cut.ogg rename to sound/mobs/non-humanoids/alien/alien_organ_cut.ogg diff --git a/sound/creatures/alien_york.ogg b/sound/mobs/non-humanoids/alien/alien_york.ogg similarity index 100% rename from sound/creatures/alien_york.ogg rename to sound/mobs/non-humanoids/alien/alien_york.ogg diff --git a/sound/creatures/attribution.txt b/sound/mobs/non-humanoids/attribution.txt similarity index 100% rename from sound/creatures/attribution.txt rename to sound/mobs/non-humanoids/attribution.txt diff --git a/sound/creatures/bee.ogg b/sound/mobs/non-humanoids/bee/bee.ogg similarity index 100% rename from sound/creatures/bee.ogg rename to sound/mobs/non-humanoids/bee/bee.ogg diff --git a/sound/creatures/bee_swarm.ogg b/sound/mobs/non-humanoids/bee/bee_swarm.ogg similarity index 100% rename from sound/creatures/bee_swarm.ogg rename to sound/mobs/non-humanoids/bee/bee_swarm.ogg diff --git a/sound/effects/beepskyspinsabre.ogg b/sound/mobs/non-humanoids/beepsky/beepskyspinsabre.ogg similarity index 100% rename from sound/effects/beepskyspinsabre.ogg rename to sound/mobs/non-humanoids/beepsky/beepskyspinsabre.ogg diff --git a/sound/voice/beepsky/creep.ogg b/sound/mobs/non-humanoids/beepsky/creep.ogg similarity index 100% rename from sound/voice/beepsky/creep.ogg rename to sound/mobs/non-humanoids/beepsky/creep.ogg diff --git a/sound/voice/beepsky/criminal.ogg b/sound/mobs/non-humanoids/beepsky/criminal.ogg similarity index 100% rename from sound/voice/beepsky/criminal.ogg rename to sound/mobs/non-humanoids/beepsky/criminal.ogg diff --git a/sound/voice/beepsky/freeze.ogg b/sound/mobs/non-humanoids/beepsky/freeze.ogg similarity index 100% rename from sound/voice/beepsky/freeze.ogg rename to sound/mobs/non-humanoids/beepsky/freeze.ogg diff --git a/sound/voice/beepsky/god.ogg b/sound/mobs/non-humanoids/beepsky/god.ogg similarity index 100% rename from sound/voice/beepsky/god.ogg rename to sound/mobs/non-humanoids/beepsky/god.ogg diff --git a/sound/voice/beepsky/iamthelaw.ogg b/sound/mobs/non-humanoids/beepsky/iamthelaw.ogg similarity index 100% rename from sound/voice/beepsky/iamthelaw.ogg rename to sound/mobs/non-humanoids/beepsky/iamthelaw.ogg diff --git a/sound/voice/beepsky/insult.ogg b/sound/mobs/non-humanoids/beepsky/insult.ogg similarity index 100% rename from sound/voice/beepsky/insult.ogg rename to sound/mobs/non-humanoids/beepsky/insult.ogg diff --git a/sound/voice/beepsky/justice.ogg b/sound/mobs/non-humanoids/beepsky/justice.ogg similarity index 100% rename from sound/voice/beepsky/justice.ogg rename to sound/mobs/non-humanoids/beepsky/justice.ogg diff --git a/sound/voice/beepsky/radio.ogg b/sound/mobs/non-humanoids/beepsky/radio.ogg similarity index 100% rename from sound/voice/beepsky/radio.ogg rename to sound/mobs/non-humanoids/beepsky/radio.ogg diff --git a/sound/voice/beepsky/secureday.ogg b/sound/mobs/non-humanoids/beepsky/secureday.ogg similarity index 100% rename from sound/voice/beepsky/secureday.ogg rename to sound/mobs/non-humanoids/beepsky/secureday.ogg diff --git a/sound/creatures/bileworm/bileworm_spit.ogg b/sound/mobs/non-humanoids/bileworm/bileworm_spit.ogg similarity index 100% rename from sound/creatures/bileworm/bileworm_spit.ogg rename to sound/mobs/non-humanoids/bileworm/bileworm_spit.ogg diff --git a/sound/creatures/brimdemon.ogg b/sound/mobs/non-humanoids/brimdemon/brimdemon.ogg similarity index 100% rename from sound/creatures/brimdemon.ogg rename to sound/mobs/non-humanoids/brimdemon/brimdemon.ogg diff --git a/sound/lavaland/brimdemon_crush.ogg b/sound/mobs/non-humanoids/brimdemon/brimdemon_crush.ogg similarity index 100% rename from sound/lavaland/brimdemon_crush.ogg rename to sound/mobs/non-humanoids/brimdemon/brimdemon_crush.ogg diff --git a/sound/creatures/bagawk.ogg b/sound/mobs/non-humanoids/chicken/bagawk.ogg similarity index 100% rename from sound/creatures/bagawk.ogg rename to sound/mobs/non-humanoids/chicken/bagawk.ogg diff --git a/sound/creatures/chick_peep.ogg b/sound/mobs/non-humanoids/chicken/chick_peep.ogg similarity index 100% rename from sound/creatures/chick_peep.ogg rename to sound/mobs/non-humanoids/chicken/chick_peep.ogg diff --git a/sound/creatures/clucks.ogg b/sound/mobs/non-humanoids/chicken/clucks.ogg similarity index 100% rename from sound/creatures/clucks.ogg rename to sound/mobs/non-humanoids/chicken/clucks.ogg diff --git a/sound/creatures/clown/clownana_rustle.ogg b/sound/mobs/non-humanoids/clown/clownana_rustle.ogg similarity index 100% rename from sound/creatures/clown/clownana_rustle.ogg rename to sound/mobs/non-humanoids/clown/clownana_rustle.ogg diff --git a/sound/creatures/clown/hehe.ogg b/sound/mobs/non-humanoids/clown/hehe.ogg similarity index 100% rename from sound/creatures/clown/hehe.ogg rename to sound/mobs/non-humanoids/clown/hehe.ogg diff --git a/sound/creatures/clown/hohoho.ogg b/sound/mobs/non-humanoids/clown/hohoho.ogg similarity index 100% rename from sound/creatures/clown/hohoho.ogg rename to sound/mobs/non-humanoids/clown/hohoho.ogg diff --git a/sound/creatures/cow.ogg b/sound/mobs/non-humanoids/cow/cow.ogg similarity index 100% rename from sound/creatures/cow.ogg rename to sound/mobs/non-humanoids/cow/cow.ogg diff --git a/sound/creatures/claw_click.ogg b/sound/mobs/non-humanoids/crab/claw_click.ogg similarity index 100% rename from sound/creatures/claw_click.ogg rename to sound/mobs/non-humanoids/crab/claw_click.ogg diff --git a/sound/mobs/non-humanoids/cyborg/attribution.txt b/sound/mobs/non-humanoids/cyborg/attribution.txt new file mode 100644 index 0000000000000..f0fc73043589b --- /dev/null +++ b/sound/mobs/non-humanoids/cyborg/attribution.txt @@ -0,0 +1 @@ +borg_deathsound.ogg is spliced from two clips, both of which are under the CC Attribution license. The sound at https://freesound.org/people/simmfoc/sounds/28477/ was pitched down, sped up, and repeated a few times. https://freesound.org/people/nicStage/sounds/1522/ is then attached with a fadeout effect and lowered volume. diff --git a/sound/voice/borg_deathsound.ogg b/sound/mobs/non-humanoids/cyborg/borg_deathsound.ogg similarity index 100% rename from sound/voice/borg_deathsound.ogg rename to sound/mobs/non-humanoids/cyborg/borg_deathsound.ogg diff --git a/sound/ai/harmalarm.ogg b/sound/mobs/non-humanoids/cyborg/harmalarm.ogg similarity index 100% rename from sound/ai/harmalarm.ogg rename to sound/mobs/non-humanoids/cyborg/harmalarm.ogg diff --git a/sound/voice/liveagain.ogg b/sound/mobs/non-humanoids/cyborg/liveagain.ogg similarity index 100% rename from sound/voice/liveagain.ogg rename to sound/mobs/non-humanoids/cyborg/liveagain.ogg diff --git a/sound/creatures/cyborg/wash1.ogg b/sound/mobs/non-humanoids/cyborg/wash1.ogg similarity index 100% rename from sound/creatures/cyborg/wash1.ogg rename to sound/mobs/non-humanoids/cyborg/wash1.ogg diff --git a/sound/creatures/cyborg/wash2.ogg b/sound/mobs/non-humanoids/cyborg/wash2.ogg similarity index 100% rename from sound/creatures/cyborg/wash2.ogg rename to sound/mobs/non-humanoids/cyborg/wash2.ogg diff --git a/sound/creatures/cyborg/wash_end.ogg b/sound/mobs/non-humanoids/cyborg/wash_end.ogg similarity index 100% rename from sound/creatures/cyborg/wash_end.ogg rename to sound/mobs/non-humanoids/cyborg/wash_end.ogg diff --git a/sound/creatures/cyborg/wash_start.ogg b/sound/mobs/non-humanoids/cyborg/wash_start.ogg similarity index 100% rename from sound/creatures/cyborg/wash_start.ogg rename to sound/mobs/non-humanoids/cyborg/wash_start.ogg diff --git a/sound/creatures/dog/growl1.ogg b/sound/mobs/non-humanoids/dog/growl1.ogg similarity index 100% rename from sound/creatures/dog/growl1.ogg rename to sound/mobs/non-humanoids/dog/growl1.ogg diff --git a/sound/creatures/dog/growl2.ogg b/sound/mobs/non-humanoids/dog/growl2.ogg similarity index 100% rename from sound/creatures/dog/growl2.ogg rename to sound/mobs/non-humanoids/dog/growl2.ogg diff --git a/sound/voice/ed209_20sec.ogg b/sound/mobs/non-humanoids/ed209/ed209_20sec.ogg similarity index 100% rename from sound/voice/ed209_20sec.ogg rename to sound/mobs/non-humanoids/ed209/ed209_20sec.ogg diff --git a/sound/voice/edplaceholder.ogg b/sound/mobs/non-humanoids/ed209/edplaceholder.ogg similarity index 100% rename from sound/voice/edplaceholder.ogg rename to sound/mobs/non-humanoids/ed209/edplaceholder.ogg diff --git a/sound/voice/firebot/candle_tip.ogg b/sound/mobs/non-humanoids/firebot/candle_tip.ogg similarity index 100% rename from sound/voice/firebot/candle_tip.ogg rename to sound/mobs/non-humanoids/firebot/candle_tip.ogg diff --git a/sound/voice/firebot/detected.ogg b/sound/mobs/non-humanoids/firebot/detected.ogg similarity index 100% rename from sound/voice/firebot/detected.ogg rename to sound/mobs/non-humanoids/firebot/detected.ogg diff --git a/sound/voice/firebot/electric_fire_tip.ogg b/sound/mobs/non-humanoids/firebot/electric_fire_tip.ogg similarity index 100% rename from sound/voice/firebot/electric_fire_tip.ogg rename to sound/mobs/non-humanoids/firebot/electric_fire_tip.ogg diff --git a/sound/voice/firebot/extinguishing.ogg b/sound/mobs/non-humanoids/firebot/extinguishing.ogg similarity index 100% rename from sound/voice/firebot/extinguishing.ogg rename to sound/mobs/non-humanoids/firebot/extinguishing.ogg diff --git a/sound/voice/firebot/gasoline_tip.ogg b/sound/mobs/non-humanoids/firebot/gasoline_tip.ogg similarity index 100% rename from sound/voice/firebot/gasoline_tip.ogg rename to sound/mobs/non-humanoids/firebot/gasoline_tip.ogg diff --git a/sound/voice/firebot/keepitcool.ogg b/sound/mobs/non-humanoids/firebot/keepitcool.ogg similarity index 100% rename from sound/voice/firebot/keepitcool.ogg rename to sound/mobs/non-humanoids/firebot/keepitcool.ogg diff --git a/sound/voice/firebot/nofires.ogg b/sound/mobs/non-humanoids/firebot/nofires.ogg similarity index 100% rename from sound/voice/firebot/nofires.ogg rename to sound/mobs/non-humanoids/firebot/nofires.ogg diff --git a/sound/voice/firebot/onlyyou.ogg b/sound/mobs/non-humanoids/firebot/onlyyou.ogg similarity index 100% rename from sound/voice/firebot/onlyyou.ogg rename to sound/mobs/non-humanoids/firebot/onlyyou.ogg diff --git a/sound/voice/firebot/stopdropnroll.ogg b/sound/mobs/non-humanoids/firebot/stopdropnroll.ogg similarity index 100% rename from sound/voice/firebot/stopdropnroll.ogg rename to sound/mobs/non-humanoids/firebot/stopdropnroll.ogg diff --git a/sound/voice/firebot/tempnominal.ogg b/sound/mobs/non-humanoids/firebot/tempnominal.ogg similarity index 100% rename from sound/voice/firebot/tempnominal.ogg rename to sound/mobs/non-humanoids/firebot/tempnominal.ogg diff --git a/sound/creatures/fish/attritbution.txt b/sound/mobs/non-humanoids/fish/attritbution.txt similarity index 100% rename from sound/creatures/fish/attritbution.txt rename to sound/mobs/non-humanoids/fish/attritbution.txt diff --git a/sound/creatures/fish/fish_drop1.ogg b/sound/mobs/non-humanoids/fish/fish_drop1.ogg similarity index 100% rename from sound/creatures/fish/fish_drop1.ogg rename to sound/mobs/non-humanoids/fish/fish_drop1.ogg diff --git a/sound/creatures/fish/fish_pickup1.ogg b/sound/mobs/non-humanoids/fish/fish_pickup1.ogg similarity index 100% rename from sound/creatures/fish/fish_pickup1.ogg rename to sound/mobs/non-humanoids/fish/fish_pickup1.ogg diff --git a/sound/creatures/fish/fish_pickup2.ogg b/sound/mobs/non-humanoids/fish/fish_pickup2.ogg similarity index 100% rename from sound/creatures/fish/fish_pickup2.ogg rename to sound/mobs/non-humanoids/fish/fish_pickup2.ogg diff --git a/sound/creatures/fish/fish_slap1.ogg b/sound/mobs/non-humanoids/fish/fish_slap1.ogg similarity index 100% rename from sound/creatures/fish/fish_slap1.ogg rename to sound/mobs/non-humanoids/fish/fish_slap1.ogg diff --git a/sound/creatures/fish/fish_slap2.ogg b/sound/mobs/non-humanoids/fish/fish_slap2.ogg similarity index 100% rename from sound/creatures/fish/fish_slap2.ogg rename to sound/mobs/non-humanoids/fish/fish_slap2.ogg diff --git a/sound/effects/whistlereset.ogg b/sound/mobs/non-humanoids/floorbot/whistlereset.ogg similarity index 100% rename from sound/effects/whistlereset.ogg rename to sound/mobs/non-humanoids/floorbot/whistlereset.ogg diff --git a/sound/effects/huuu.ogg b/sound/mobs/non-humanoids/frog/huuu.ogg similarity index 100% rename from sound/effects/huuu.ogg rename to sound/mobs/non-humanoids/frog/huuu.ogg diff --git a/sound/effects/reee.ogg b/sound/mobs/non-humanoids/frog/reee.ogg similarity index 100% rename from sound/effects/reee.ogg rename to sound/mobs/non-humanoids/frog/reee.ogg diff --git a/sound/creatures/goose1.ogg b/sound/mobs/non-humanoids/goose/goose1.ogg similarity index 100% rename from sound/creatures/goose1.ogg rename to sound/mobs/non-humanoids/goose/goose1.ogg diff --git a/sound/creatures/goose2.ogg b/sound/mobs/non-humanoids/goose/goose2.ogg similarity index 100% rename from sound/creatures/goose2.ogg rename to sound/mobs/non-humanoids/goose/goose2.ogg diff --git a/sound/creatures/goose3.ogg b/sound/mobs/non-humanoids/goose/goose3.ogg similarity index 100% rename from sound/creatures/goose3.ogg rename to sound/mobs/non-humanoids/goose/goose3.ogg diff --git a/sound/creatures/goose4.ogg b/sound/mobs/non-humanoids/goose/goose4.ogg similarity index 100% rename from sound/creatures/goose4.ogg rename to sound/mobs/non-humanoids/goose/goose4.ogg diff --git a/sound/creatures/gorilla.ogg b/sound/mobs/non-humanoids/gorilla/gorilla.ogg similarity index 100% rename from sound/creatures/gorilla.ogg rename to sound/mobs/non-humanoids/gorilla/gorilla.ogg diff --git a/sound/voice/hiss1.ogg b/sound/mobs/non-humanoids/hiss/hiss1.ogg similarity index 100% rename from sound/voice/hiss1.ogg rename to sound/mobs/non-humanoids/hiss/hiss1.ogg diff --git a/sound/voice/hiss2.ogg b/sound/mobs/non-humanoids/hiss/hiss2.ogg similarity index 100% rename from sound/voice/hiss2.ogg rename to sound/mobs/non-humanoids/hiss/hiss2.ogg diff --git a/sound/voice/hiss3.ogg b/sound/mobs/non-humanoids/hiss/hiss3.ogg similarity index 100% rename from sound/voice/hiss3.ogg rename to sound/mobs/non-humanoids/hiss/hiss3.ogg diff --git a/sound/voice/hiss4.ogg b/sound/mobs/non-humanoids/hiss/hiss4.ogg similarity index 100% rename from sound/voice/hiss4.ogg rename to sound/mobs/non-humanoids/hiss/hiss4.ogg diff --git a/sound/voice/hiss5.ogg b/sound/mobs/non-humanoids/hiss/hiss5.ogg similarity index 100% rename from sound/voice/hiss5.ogg rename to sound/mobs/non-humanoids/hiss/hiss5.ogg diff --git a/sound/voice/hiss6.ogg b/sound/mobs/non-humanoids/hiss/hiss6.ogg similarity index 100% rename from sound/voice/hiss6.ogg rename to sound/mobs/non-humanoids/hiss/hiss6.ogg diff --git a/sound/voice/lowHiss1.ogg b/sound/mobs/non-humanoids/hiss/lowHiss1.ogg similarity index 100% rename from sound/voice/lowHiss1.ogg rename to sound/mobs/non-humanoids/hiss/lowHiss1.ogg diff --git a/sound/voice/lowHiss2.ogg b/sound/mobs/non-humanoids/hiss/lowHiss2.ogg similarity index 100% rename from sound/voice/lowHiss2.ogg rename to sound/mobs/non-humanoids/hiss/lowHiss2.ogg diff --git a/sound/voice/lowHiss3.ogg b/sound/mobs/non-humanoids/hiss/lowHiss3.ogg similarity index 100% rename from sound/voice/lowHiss3.ogg rename to sound/mobs/non-humanoids/hiss/lowHiss3.ogg diff --git a/sound/voice/lowHiss4.ogg b/sound/mobs/non-humanoids/hiss/lowHiss4.ogg similarity index 100% rename from sound/voice/lowHiss4.ogg rename to sound/mobs/non-humanoids/hiss/lowHiss4.ogg diff --git a/sound/machines/honkbot_evil_laugh.ogg b/sound/mobs/non-humanoids/honkbot/honkbot_evil_laugh.ogg similarity index 100% rename from sound/machines/honkbot_evil_laugh.ogg rename to sound/mobs/non-humanoids/honkbot/honkbot_evil_laugh.ogg diff --git a/sound/voice/hygienebot/cleanandtidy.ogg b/sound/mobs/non-humanoids/hygienebot/cleanandtidy.ogg similarity index 100% rename from sound/voice/hygienebot/cleanandtidy.ogg rename to sound/mobs/non-humanoids/hygienebot/cleanandtidy.ogg diff --git a/sound/voice/hygienebot/cutarteries.ogg b/sound/mobs/non-humanoids/hygienebot/cutarteries.ogg similarity index 100% rename from sound/voice/hygienebot/cutarteries.ogg rename to sound/mobs/non-humanoids/hygienebot/cutarteries.ogg diff --git a/sound/voice/hygienebot/degenerate.ogg b/sound/mobs/non-humanoids/hygienebot/degenerate.ogg similarity index 100% rename from sound/voice/hygienebot/degenerate.ogg rename to sound/mobs/non-humanoids/hygienebot/degenerate.ogg diff --git a/sound/voice/hygienebot/dragyouout.ogg b/sound/mobs/non-humanoids/hygienebot/dragyouout.ogg similarity index 100% rename from sound/voice/hygienebot/dragyouout.ogg rename to sound/mobs/non-humanoids/hygienebot/dragyouout.ogg diff --git a/sound/voice/hygienebot/finally.ogg b/sound/mobs/non-humanoids/hygienebot/finally.ogg similarity index 100% rename from sound/voice/hygienebot/finally.ogg rename to sound/mobs/non-humanoids/hygienebot/finally.ogg diff --git a/sound/voice/hygienebot/foulsmelling.ogg b/sound/mobs/non-humanoids/hygienebot/foulsmelling.ogg similarity index 100% rename from sound/voice/hygienebot/foulsmelling.ogg rename to sound/mobs/non-humanoids/hygienebot/foulsmelling.ogg diff --git a/sound/voice/hygienebot/greencloud.ogg b/sound/mobs/non-humanoids/hygienebot/greencloud.ogg similarity index 100% rename from sound/voice/hygienebot/greencloud.ogg rename to sound/mobs/non-humanoids/hygienebot/greencloud.ogg diff --git a/sound/voice/hygienebot/letmeclean.ogg b/sound/mobs/non-humanoids/hygienebot/letmeclean.ogg similarity index 100% rename from sound/voice/hygienebot/letmeclean.ogg rename to sound/mobs/non-humanoids/hygienebot/letmeclean.ogg diff --git a/sound/voice/hygienebot/stoprunning.ogg b/sound/mobs/non-humanoids/hygienebot/stoprunning.ogg similarity index 100% rename from sound/voice/hygienebot/stoprunning.ogg rename to sound/mobs/non-humanoids/hygienebot/stoprunning.ogg diff --git a/sound/voice/hygienebot/thankgod.ogg b/sound/mobs/non-humanoids/hygienebot/thankgod.ogg similarity index 100% rename from sound/voice/hygienebot/thankgod.ogg rename to sound/mobs/non-humanoids/hygienebot/thankgod.ogg diff --git a/sound/voice/hygienebot/troglodyte.ogg b/sound/mobs/non-humanoids/hygienebot/troglodyte.ogg similarity index 100% rename from sound/voice/hygienebot/troglodyte.ogg rename to sound/mobs/non-humanoids/hygienebot/troglodyte.ogg diff --git a/sound/voice/hygienebot/unhygienicclient.ogg b/sound/mobs/non-humanoids/hygienebot/unhygienicclient.ogg similarity index 100% rename from sound/voice/hygienebot/unhygienicclient.ogg rename to sound/mobs/non-humanoids/hygienebot/unhygienicclient.ogg diff --git a/sound/creatures/chitter.ogg b/sound/mobs/non-humanoids/insect/chitter.ogg similarity index 100% rename from sound/creatures/chitter.ogg rename to sound/mobs/non-humanoids/insect/chitter.ogg diff --git a/sound/creatures/legion_spawn.ogg b/sound/mobs/non-humanoids/legion/legion_spawn.ogg similarity index 100% rename from sound/creatures/legion_spawn.ogg rename to sound/mobs/non-humanoids/legion/legion_spawn.ogg diff --git a/sound/voice/medbot/apple.ogg b/sound/mobs/non-humanoids/medbot/apple.ogg similarity index 100% rename from sound/voice/medbot/apple.ogg rename to sound/mobs/non-humanoids/medbot/apple.ogg diff --git a/sound/voice/medbot/catch.ogg b/sound/mobs/non-humanoids/medbot/catch.ogg similarity index 100% rename from sound/voice/medbot/catch.ogg rename to sound/mobs/non-humanoids/medbot/catch.ogg diff --git a/sound/voice/medbot/close.ogg b/sound/mobs/non-humanoids/medbot/close.ogg similarity index 100% rename from sound/voice/medbot/close.ogg rename to sound/mobs/non-humanoids/medbot/close.ogg diff --git a/sound/voice/medbot/coming.ogg b/sound/mobs/non-humanoids/medbot/coming.ogg similarity index 100% rename from sound/voice/medbot/coming.ogg rename to sound/mobs/non-humanoids/medbot/coming.ogg diff --git a/sound/voice/medbot/delicious.ogg b/sound/mobs/non-humanoids/medbot/delicious.ogg similarity index 100% rename from sound/voice/medbot/delicious.ogg rename to sound/mobs/non-humanoids/medbot/delicious.ogg diff --git a/sound/voice/medbot/dont_like.ogg b/sound/mobs/non-humanoids/medbot/dont_like.ogg similarity index 100% rename from sound/voice/medbot/dont_like.ogg rename to sound/mobs/non-humanoids/medbot/dont_like.ogg diff --git a/sound/voice/medbot/feelbetter.ogg b/sound/mobs/non-humanoids/medbot/feelbetter.ogg similarity index 100% rename from sound/voice/medbot/feelbetter.ogg rename to sound/mobs/non-humanoids/medbot/feelbetter.ogg diff --git a/sound/voice/medbot/flies.ogg b/sound/mobs/non-humanoids/medbot/flies.ogg similarity index 100% rename from sound/voice/medbot/flies.ogg rename to sound/mobs/non-humanoids/medbot/flies.ogg diff --git a/sound/voice/medbot/forgive.ogg b/sound/mobs/non-humanoids/medbot/forgive.ogg similarity index 100% rename from sound/voice/medbot/forgive.ogg rename to sound/mobs/non-humanoids/medbot/forgive.ogg diff --git a/sound/voice/medbot/fuck_you.ogg b/sound/mobs/non-humanoids/medbot/fuck_you.ogg similarity index 100% rename from sound/voice/medbot/fuck_you.ogg rename to sound/mobs/non-humanoids/medbot/fuck_you.ogg diff --git a/sound/voice/medbot/help.ogg b/sound/mobs/non-humanoids/medbot/help.ogg similarity index 100% rename from sound/voice/medbot/help.ogg rename to sound/mobs/non-humanoids/medbot/help.ogg diff --git a/sound/voice/medbot/hey_wait.ogg b/sound/mobs/non-humanoids/medbot/hey_wait.ogg similarity index 100% rename from sound/voice/medbot/hey_wait.ogg rename to sound/mobs/non-humanoids/medbot/hey_wait.ogg diff --git a/sound/voice/medbot/i_am_chicken.ogg b/sound/mobs/non-humanoids/medbot/i_am_chicken.ogg similarity index 100% rename from sound/voice/medbot/i_am_chicken.ogg rename to sound/mobs/non-humanoids/medbot/i_am_chicken.ogg diff --git a/sound/voice/medbot/i_require_asst.ogg b/sound/mobs/non-humanoids/medbot/i_require_asst.ogg similarity index 100% rename from sound/voice/medbot/i_require_asst.ogg rename to sound/mobs/non-humanoids/medbot/i_require_asst.ogg diff --git a/sound/voice/medbot/i_trusted_you.ogg b/sound/mobs/non-humanoids/medbot/i_trusted_you.ogg similarity index 100% rename from sound/voice/medbot/i_trusted_you.ogg rename to sound/mobs/non-humanoids/medbot/i_trusted_you.ogg diff --git a/sound/voice/medbot/im_different.ogg b/sound/mobs/non-humanoids/medbot/im_different.ogg similarity index 100% rename from sound/voice/medbot/im_different.ogg rename to sound/mobs/non-humanoids/medbot/im_different.ogg diff --git a/sound/voice/medbot/injured.ogg b/sound/mobs/non-humanoids/medbot/injured.ogg similarity index 100% rename from sound/voice/medbot/injured.ogg rename to sound/mobs/non-humanoids/medbot/injured.ogg diff --git a/sound/voice/medbot/insult.ogg b/sound/mobs/non-humanoids/medbot/insult.ogg similarity index 100% rename from sound/voice/medbot/insult.ogg rename to sound/mobs/non-humanoids/medbot/insult.ogg diff --git a/sound/voice/medbot/is_this_the_end.ogg b/sound/mobs/non-humanoids/medbot/is_this_the_end.ogg similarity index 100% rename from sound/voice/medbot/is_this_the_end.ogg rename to sound/mobs/non-humanoids/medbot/is_this_the_end.ogg diff --git a/sound/voice/medbot/live.ogg b/sound/mobs/non-humanoids/medbot/live.ogg similarity index 100% rename from sound/voice/medbot/live.ogg rename to sound/mobs/non-humanoids/medbot/live.ogg diff --git a/sound/voice/medbot/lost.ogg b/sound/mobs/non-humanoids/medbot/lost.ogg similarity index 100% rename from sound/voice/medbot/lost.ogg rename to sound/mobs/non-humanoids/medbot/lost.ogg diff --git a/sound/voice/medbot/no.ogg b/sound/mobs/non-humanoids/medbot/no.ogg similarity index 100% rename from sound/voice/medbot/no.ogg rename to sound/mobs/non-humanoids/medbot/no.ogg diff --git a/sound/voice/medbot/nooo.ogg b/sound/mobs/non-humanoids/medbot/nooo.ogg similarity index 100% rename from sound/voice/medbot/nooo.ogg rename to sound/mobs/non-humanoids/medbot/nooo.ogg diff --git a/sound/voice/medbot/oh_fuck.ogg b/sound/mobs/non-humanoids/medbot/oh_fuck.ogg similarity index 100% rename from sound/voice/medbot/oh_fuck.ogg rename to sound/mobs/non-humanoids/medbot/oh_fuck.ogg diff --git a/sound/voice/medbot/pain_is_real.ogg b/sound/mobs/non-humanoids/medbot/pain_is_real.ogg similarity index 100% rename from sound/voice/medbot/pain_is_real.ogg rename to sound/mobs/non-humanoids/medbot/pain_is_real.ogg diff --git a/sound/voice/medbot/patchedup.ogg b/sound/mobs/non-humanoids/medbot/patchedup.ogg similarity index 100% rename from sound/voice/medbot/patchedup.ogg rename to sound/mobs/non-humanoids/medbot/patchedup.ogg diff --git a/sound/voice/medbot/please_dont.ogg b/sound/mobs/non-humanoids/medbot/please_dont.ogg similarity index 100% rename from sound/voice/medbot/please_dont.ogg rename to sound/mobs/non-humanoids/medbot/please_dont.ogg diff --git a/sound/voice/medbot/please_im_scared.ogg b/sound/mobs/non-humanoids/medbot/please_im_scared.ogg similarity index 100% rename from sound/voice/medbot/please_im_scared.ogg rename to sound/mobs/non-humanoids/medbot/please_im_scared.ogg diff --git a/sound/voice/medbot/please_put_me_back.ogg b/sound/mobs/non-humanoids/medbot/please_put_me_back.ogg similarity index 100% rename from sound/voice/medbot/please_put_me_back.ogg rename to sound/mobs/non-humanoids/medbot/please_put_me_back.ogg diff --git a/sound/voice/medbot/radar.ogg b/sound/mobs/non-humanoids/medbot/radar.ogg similarity index 100% rename from sound/voice/medbot/radar.ogg rename to sound/mobs/non-humanoids/medbot/radar.ogg diff --git a/sound/voice/medbot/reported.ogg b/sound/mobs/non-humanoids/medbot/reported.ogg similarity index 100% rename from sound/voice/medbot/reported.ogg rename to sound/mobs/non-humanoids/medbot/reported.ogg diff --git a/sound/voice/medbot/shindemashou.ogg b/sound/mobs/non-humanoids/medbot/shindemashou.ogg similarity index 100% rename from sound/voice/medbot/shindemashou.ogg rename to sound/mobs/non-humanoids/medbot/shindemashou.ogg diff --git a/sound/voice/medbot/surgeon.ogg b/sound/mobs/non-humanoids/medbot/surgeon.ogg similarity index 100% rename from sound/voice/medbot/surgeon.ogg rename to sound/mobs/non-humanoids/medbot/surgeon.ogg diff --git a/sound/voice/medbot/thank_you.ogg b/sound/mobs/non-humanoids/medbot/thank_you.ogg similarity index 100% rename from sound/voice/medbot/thank_you.ogg rename to sound/mobs/non-humanoids/medbot/thank_you.ogg diff --git a/sound/voice/medbot/turn_off.ogg b/sound/mobs/non-humanoids/medbot/turn_off.ogg similarity index 100% rename from sound/voice/medbot/turn_off.ogg rename to sound/mobs/non-humanoids/medbot/turn_off.ogg diff --git a/sound/voice/medbot/why.ogg b/sound/mobs/non-humanoids/medbot/why.ogg similarity index 100% rename from sound/voice/medbot/why.ogg rename to sound/mobs/non-humanoids/medbot/why.ogg diff --git a/sound/voice/medbot/youre_good.ogg b/sound/mobs/non-humanoids/medbot/youre_good.ogg similarity index 100% rename from sound/voice/medbot/youre_good.ogg rename to sound/mobs/non-humanoids/medbot/youre_good.ogg diff --git a/sound/creatures/monkey/monkey_screech_1.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_1.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_1.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_1.ogg diff --git a/sound/creatures/monkey/monkey_screech_2.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_2.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_2.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_2.ogg diff --git a/sound/creatures/monkey/monkey_screech_3.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_3.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_3.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_3.ogg diff --git a/sound/creatures/monkey/monkey_screech_4.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_4.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_4.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_4.ogg diff --git a/sound/creatures/monkey/monkey_screech_5.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_5.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_5.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_5.ogg diff --git a/sound/creatures/monkey/monkey_screech_6.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_6.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_6.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_6.ogg diff --git a/sound/creatures/monkey/monkey_screech_7.ogg b/sound/mobs/non-humanoids/monkey/monkey_screech_7.ogg similarity index 100% rename from sound/creatures/monkey/monkey_screech_7.ogg rename to sound/mobs/non-humanoids/monkey/monkey_screech_7.ogg diff --git a/sound/voice/mook_death.ogg b/sound/mobs/non-humanoids/mook/mook_death.ogg similarity index 100% rename from sound/voice/mook_death.ogg rename to sound/mobs/non-humanoids/mook/mook_death.ogg diff --git a/sound/voice/mook_leap_yell.ogg b/sound/mobs/non-humanoids/mook/mook_leap_yell.ogg similarity index 100% rename from sound/voice/mook_leap_yell.ogg rename to sound/mobs/non-humanoids/mook/mook_leap_yell.ogg diff --git a/sound/creatures/mousesqueek.ogg b/sound/mobs/non-humanoids/mouse/mousesqueek.ogg similarity index 100% rename from sound/creatures/mousesqueek.ogg rename to sound/mobs/non-humanoids/mouse/mousesqueek.ogg diff --git a/sound/items/orbie_level_up.ogg b/sound/mobs/non-humanoids/orbie/orbie_level_up.ogg similarity index 100% rename from sound/items/orbie_level_up.ogg rename to sound/mobs/non-humanoids/orbie/orbie_level_up.ogg diff --git a/sound/items/orbie_notification_sound.ogg b/sound/mobs/non-humanoids/orbie/orbie_notification_sound.ogg similarity index 100% rename from sound/items/orbie_notification_sound.ogg rename to sound/mobs/non-humanoids/orbie/orbie_notification_sound.ogg diff --git a/sound/items/orbie_send_out.ogg b/sound/mobs/non-humanoids/orbie/orbie_send_out.ogg similarity index 100% rename from sound/items/orbie_send_out.ogg rename to sound/mobs/non-humanoids/orbie/orbie_send_out.ogg diff --git a/sound/items/orbie_trick_learned.ogg b/sound/mobs/non-humanoids/orbie/orbie_trick_learned.ogg similarity index 100% rename from sound/items/orbie_trick_learned.ogg rename to sound/mobs/non-humanoids/orbie/orbie_trick_learned.ogg diff --git a/sound/creatures/pig1.ogg b/sound/mobs/non-humanoids/pig/pig1.ogg similarity index 100% rename from sound/creatures/pig1.ogg rename to sound/mobs/non-humanoids/pig/pig1.ogg diff --git a/sound/creatures/pig2.ogg b/sound/mobs/non-humanoids/pig/pig2.ogg similarity index 100% rename from sound/creatures/pig2.ogg rename to sound/mobs/non-humanoids/pig/pig2.ogg diff --git a/sound/creatures/pony/clown_gallup.ogg b/sound/mobs/non-humanoids/pony/clown_gallup.ogg similarity index 100% rename from sound/creatures/pony/clown_gallup.ogg rename to sound/mobs/non-humanoids/pony/clown_gallup.ogg diff --git a/sound/creatures/pony/snort.ogg b/sound/mobs/non-humanoids/pony/snort.ogg similarity index 100% rename from sound/creatures/pony/snort.ogg rename to sound/mobs/non-humanoids/pony/snort.ogg diff --git a/sound/creatures/pony/whinny01.ogg b/sound/mobs/non-humanoids/pony/whinny01.ogg similarity index 100% rename from sound/creatures/pony/whinny01.ogg rename to sound/mobs/non-humanoids/pony/whinny01.ogg diff --git a/sound/creatures/pony/whinny02.ogg b/sound/mobs/non-humanoids/pony/whinny02.ogg similarity index 100% rename from sound/creatures/pony/whinny02.ogg rename to sound/mobs/non-humanoids/pony/whinny02.ogg diff --git a/sound/creatures/pony/whinny03.ogg b/sound/mobs/non-humanoids/pony/whinny03.ogg similarity index 100% rename from sound/creatures/pony/whinny03.ogg rename to sound/mobs/non-humanoids/pony/whinny03.ogg diff --git a/sound/creatures/raptor_1.ogg b/sound/mobs/non-humanoids/raptor/raptor_1.ogg similarity index 100% rename from sound/creatures/raptor_1.ogg rename to sound/mobs/non-humanoids/raptor/raptor_1.ogg diff --git a/sound/creatures/raptor_2.ogg b/sound/mobs/non-humanoids/raptor/raptor_2.ogg similarity index 100% rename from sound/creatures/raptor_2.ogg rename to sound/mobs/non-humanoids/raptor/raptor_2.ogg diff --git a/sound/creatures/raptor_3.ogg b/sound/mobs/non-humanoids/raptor/raptor_3.ogg similarity index 100% rename from sound/creatures/raptor_3.ogg rename to sound/mobs/non-humanoids/raptor/raptor_3.ogg diff --git a/sound/creatures/raptor_4.ogg b/sound/mobs/non-humanoids/raptor/raptor_4.ogg similarity index 100% rename from sound/creatures/raptor_4.ogg rename to sound/mobs/non-humanoids/raptor/raptor_4.ogg diff --git a/sound/creatures/raptor_5.ogg b/sound/mobs/non-humanoids/raptor/raptor_5.ogg similarity index 100% rename from sound/creatures/raptor_5.ogg rename to sound/mobs/non-humanoids/raptor/raptor_5.ogg diff --git a/sound/creatures/sheep1.ogg b/sound/mobs/non-humanoids/sheep/sheep1.ogg similarity index 100% rename from sound/creatures/sheep1.ogg rename to sound/mobs/non-humanoids/sheep/sheep1.ogg diff --git a/sound/creatures/sheep2.ogg b/sound/mobs/non-humanoids/sheep/sheep2.ogg similarity index 100% rename from sound/creatures/sheep2.ogg rename to sound/mobs/non-humanoids/sheep/sheep2.ogg diff --git a/sound/creatures/sheep3.ogg b/sound/mobs/non-humanoids/sheep/sheep3.ogg similarity index 100% rename from sound/creatures/sheep3.ogg rename to sound/mobs/non-humanoids/sheep/sheep3.ogg diff --git a/sound/creatures/snake_hissing1.ogg b/sound/mobs/non-humanoids/snake/snake_hissing1.ogg similarity index 100% rename from sound/creatures/snake_hissing1.ogg rename to sound/mobs/non-humanoids/snake/snake_hissing1.ogg diff --git a/sound/creatures/snake_hissing2.ogg b/sound/mobs/non-humanoids/snake/snake_hissing2.ogg similarity index 100% rename from sound/creatures/snake_hissing2.ogg rename to sound/mobs/non-humanoids/snake/snake_hissing2.ogg diff --git a/sound/creatures/space_dragon_roar.ogg b/sound/mobs/non-humanoids/space_dragon/space_dragon_roar.ogg similarity index 100% rename from sound/creatures/space_dragon_roar.ogg rename to sound/mobs/non-humanoids/space_dragon/space_dragon_roar.ogg diff --git a/sound/creatures/tourist/tourist_talk.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk.ogg diff --git a/sound/creatures/tourist/tourist_talk_british.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk_british.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk_british.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk_british.ogg diff --git a/sound/creatures/tourist/tourist_talk_french.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk_french.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk_french.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk_french.ogg diff --git a/sound/creatures/tourist/tourist_talk_japanese1.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk_japanese1.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk_japanese1.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk_japanese1.ogg diff --git a/sound/creatures/tourist/tourist_talk_japanese2.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk_japanese2.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk_japanese2.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk_japanese2.ogg diff --git a/sound/creatures/tourist/tourist_talk_mexican.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk_mexican.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk_mexican.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk_mexican.ogg diff --git a/sound/creatures/tourist/tourist_talk_moth.ogg b/sound/mobs/non-humanoids/tourist/tourist_talk_moth.ogg similarity index 100% rename from sound/creatures/tourist/tourist_talk_moth.ogg rename to sound/mobs/non-humanoids/tourist/tourist_talk_moth.ogg diff --git a/sound/creatures/venus_trap_death.ogg b/sound/mobs/non-humanoids/venus_trap/venus_trap_death.ogg similarity index 100% rename from sound/creatures/venus_trap_death.ogg rename to sound/mobs/non-humanoids/venus_trap/venus_trap_death.ogg diff --git a/sound/creatures/venus_trap_hit.ogg b/sound/mobs/non-humanoids/venus_trap/venus_trap_hit.ogg similarity index 100% rename from sound/creatures/venus_trap_hit.ogg rename to sound/mobs/non-humanoids/venus_trap/venus_trap_hit.ogg diff --git a/sound/creatures/venus_trap_hurt.ogg b/sound/mobs/non-humanoids/venus_trap/venus_trap_hurt.ogg similarity index 100% rename from sound/creatures/venus_trap_hurt.ogg rename to sound/mobs/non-humanoids/venus_trap/venus_trap_hurt.ogg diff --git a/sound/ambience/antag/abductee.ogg b/sound/music/antag/abductee.ogg similarity index 100% rename from sound/ambience/antag/abductee.ogg rename to sound/music/antag/abductee.ogg diff --git a/sound/music/antag/attribution.txt b/sound/music/antag/attribution.txt new file mode 100644 index 0000000000000..6ae7cecc51970 --- /dev/null +++ b/sound/music/antag/attribution.txt @@ -0,0 +1,11 @@ +sound/instrumental/antag/abductee.ogg is from "Warp SFX" https://freesound.org/people/Breviceps/sounds/453391 (CC0) +sound/instrumental/antag/brainwash.ogg is from "nog.wav" https://freesound.org/people/_NOMINAL_/sounds/124602 (CC-BY 3.0) +sound/instrumental/antag/hypnosis.ogg is from "Flashback.wav" https://freesound.org/people/Sclolex/sounds/342103 (CC0) + +{ +ambimaint8.ogg +ambimaint9.ogg +ambimaint10.ogg +ambimaint11.ogg +ambimaint12.ogg +} made by Kayozz , license: CC-by-SA diff --git a/sound/ambience/antag/ayylien.ogg b/sound/music/antag/ayylien.ogg similarity index 100% rename from sound/ambience/antag/ayylien.ogg rename to sound/music/antag/ayylien.ogg diff --git a/sound/ambience/antag/blobalert.ogg b/sound/music/antag/blobalert.ogg similarity index 100% rename from sound/ambience/antag/blobalert.ogg rename to sound/music/antag/blobalert.ogg diff --git a/sound/ambience/antag/bloodcult/bloodcult_eyes.ogg b/sound/music/antag/bloodcult/bloodcult_eyes.ogg similarity index 100% rename from sound/ambience/antag/bloodcult/bloodcult_eyes.ogg rename to sound/music/antag/bloodcult/bloodcult_eyes.ogg diff --git a/sound/ambience/antag/bloodcult/bloodcult_gain.ogg b/sound/music/antag/bloodcult/bloodcult_gain.ogg similarity index 100% rename from sound/ambience/antag/bloodcult/bloodcult_gain.ogg rename to sound/music/antag/bloodcult/bloodcult_gain.ogg diff --git a/sound/ambience/antag/bloodcult/bloodcult_halos.ogg b/sound/music/antag/bloodcult/bloodcult_halos.ogg similarity index 100% rename from sound/ambience/antag/bloodcult/bloodcult_halos.ogg rename to sound/music/antag/bloodcult/bloodcult_halos.ogg diff --git a/sound/ambience/antag/bloodcult/bloodcult_scribe.ogg b/sound/music/antag/bloodcult/bloodcult_scribe.ogg similarity index 100% rename from sound/ambience/antag/bloodcult/bloodcult_scribe.ogg rename to sound/music/antag/bloodcult/bloodcult_scribe.ogg diff --git a/sound/voice/ghost_whisper.ogg b/sound/music/antag/bloodcult/ghost_whisper.ogg similarity index 100% rename from sound/voice/ghost_whisper.ogg rename to sound/music/antag/bloodcult/ghost_whisper.ogg diff --git a/sound/misc/ghosty_wind.ogg b/sound/music/antag/bloodcult/ghosty_wind.ogg similarity index 100% rename from sound/misc/ghosty_wind.ogg rename to sound/music/antag/bloodcult/ghosty_wind.ogg diff --git a/sound/creatures/narsie_rises.ogg b/sound/music/antag/bloodcult/narsie_rises.ogg similarity index 100% rename from sound/creatures/narsie_rises.ogg rename to sound/music/antag/bloodcult/narsie_rises.ogg diff --git a/sound/ambience/antag/brainwashed.ogg b/sound/music/antag/brainwashed.ogg similarity index 100% rename from sound/ambience/antag/brainwashed.ogg rename to sound/music/antag/brainwashed.ogg diff --git a/sound/ambience/antag/clockcultalr.ogg b/sound/music/antag/clockcultalr.ogg similarity index 100% rename from sound/ambience/antag/clockcultalr.ogg rename to sound/music/antag/clockcultalr.ogg diff --git a/sound/effects/contractstartup.ogg b/sound/music/antag/contractstartup.ogg similarity index 100% rename from sound/effects/contractstartup.ogg rename to sound/music/antag/contractstartup.ogg diff --git a/sound/ambience/antag/creepalert.ogg b/sound/music/antag/creepalert.ogg similarity index 100% rename from sound/ambience/antag/creepalert.ogg rename to sound/music/antag/creepalert.ogg diff --git a/sound/ambience/VoidsEmbrace.ogg b/sound/music/antag/heretic/VoidsEmbrace.ogg similarity index 100% rename from sound/ambience/VoidsEmbrace.ogg rename to sound/music/antag/heretic/VoidsEmbrace.ogg diff --git a/sound/ambience/antag/heretic/ascend_ash.ogg b/sound/music/antag/heretic/ascend_ash.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_ash.ogg rename to sound/music/antag/heretic/ascend_ash.ogg diff --git a/sound/ambience/antag/heretic/ascend_blade.ogg b/sound/music/antag/heretic/ascend_blade.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_blade.ogg rename to sound/music/antag/heretic/ascend_blade.ogg diff --git a/sound/ambience/antag/heretic/ascend_cosmic.ogg b/sound/music/antag/heretic/ascend_cosmic.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_cosmic.ogg rename to sound/music/antag/heretic/ascend_cosmic.ogg diff --git a/sound/ambience/antag/heretic/ascend_flesh.ogg b/sound/music/antag/heretic/ascend_flesh.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_flesh.ogg rename to sound/music/antag/heretic/ascend_flesh.ogg diff --git a/sound/ambience/antag/heretic/ascend_knock.ogg b/sound/music/antag/heretic/ascend_knock.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_knock.ogg rename to sound/music/antag/heretic/ascend_knock.ogg diff --git a/sound/ambience/antag/heretic/ascend_moon.ogg b/sound/music/antag/heretic/ascend_moon.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_moon.ogg rename to sound/music/antag/heretic/ascend_moon.ogg diff --git a/sound/ambience/antag/heretic/ascend_rust.ogg b/sound/music/antag/heretic/ascend_rust.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_rust.ogg rename to sound/music/antag/heretic/ascend_rust.ogg diff --git a/sound/ambience/antag/heretic/ascend_void.ogg b/sound/music/antag/heretic/ascend_void.ogg similarity index 100% rename from sound/ambience/antag/heretic/ascend_void.ogg rename to sound/music/antag/heretic/ascend_void.ogg diff --git a/sound/music/antag/heretic/attribution.txt b/sound/music/antag/heretic/attribution.txt new file mode 100644 index 0000000000000..eb17caca63e6a --- /dev/null +++ b/sound/music/antag/heretic/attribution.txt @@ -0,0 +1,3 @@ +heretic_sacrifice.ogg - made by sadboysusss, License: CC-by-SA + +VoidsEmbrace.ogg is Chopin - Waltz in C Sharp Minor (Op. 64 No. 2). It is in public domain. diff --git a/sound/ambience/antag/heretic/heretic_gain.ogg b/sound/music/antag/heretic/heretic_gain.ogg similarity index 100% rename from sound/ambience/antag/heretic/heretic_gain.ogg rename to sound/music/antag/heretic/heretic_gain.ogg diff --git a/sound/ambience/antag/heretic/heretic_gain_intense.ogg b/sound/music/antag/heretic/heretic_gain_intense.ogg similarity index 100% rename from sound/ambience/antag/heretic/heretic_gain_intense.ogg rename to sound/music/antag/heretic/heretic_gain_intense.ogg diff --git a/sound/ambience/antag/heretic/heretic_sacrifice.ogg b/sound/music/antag/heretic/heretic_sacrifice.ogg similarity index 100% rename from sound/ambience/antag/heretic/heretic_sacrifice.ogg rename to sound/music/antag/heretic/heretic_sacrifice.ogg diff --git a/sound/ambience/antag/hypnotized.ogg b/sound/music/antag/hypnotized.ogg similarity index 100% rename from sound/ambience/antag/hypnotized.ogg rename to sound/music/antag/hypnotized.ogg diff --git a/sound/ambience/antag/ling_alert.ogg b/sound/music/antag/ling_alert.ogg similarity index 100% rename from sound/ambience/antag/ling_alert.ogg rename to sound/music/antag/ling_alert.ogg diff --git a/sound/ambience/antag/malf.ogg b/sound/music/antag/malf.ogg similarity index 100% rename from sound/ambience/antag/malf.ogg rename to sound/music/antag/malf.ogg diff --git a/sound/ambience/antag/monkey.ogg b/sound/music/antag/monkey.ogg similarity index 100% rename from sound/ambience/antag/monkey.ogg rename to sound/music/antag/monkey.ogg diff --git a/sound/effects/ninja_greeting.ogg b/sound/music/antag/ninja_greeting.ogg similarity index 100% rename from sound/effects/ninja_greeting.ogg rename to sound/music/antag/ninja_greeting.ogg diff --git a/sound/ambience/antag/ops.ogg b/sound/music/antag/ops.ogg similarity index 100% rename from sound/ambience/antag/ops.ogg rename to sound/music/antag/ops.ogg diff --git a/sound/ambience/antag/ragesmages.ogg b/sound/music/antag/ragesmages.ogg similarity index 100% rename from sound/ambience/antag/ragesmages.ogg rename to sound/music/antag/ragesmages.ogg diff --git a/sound/ambience/antag/revolutionary_tide.ogg b/sound/music/antag/revolutionary_tide.ogg similarity index 100% rename from sound/ambience/antag/revolutionary_tide.ogg rename to sound/music/antag/revolutionary_tide.ogg diff --git a/sound/ambience/antag/spy.ogg b/sound/music/antag/spy.ogg similarity index 100% rename from sound/ambience/antag/spy.ogg rename to sound/music/antag/spy.ogg diff --git a/sound/ambience/antag/thatshowfamiliesworks.ogg b/sound/music/antag/thatshowfamiliesworks.ogg similarity index 100% rename from sound/ambience/antag/thatshowfamiliesworks.ogg rename to sound/music/antag/thatshowfamiliesworks.ogg diff --git a/sound/traitor/final_objective.ogg b/sound/music/antag/traitor/final_objective.ogg similarity index 100% rename from sound/traitor/final_objective.ogg rename to sound/music/antag/traitor/final_objective.ogg diff --git a/sound/traitor/objective_failed.ogg b/sound/music/antag/traitor/objective_failed.ogg similarity index 100% rename from sound/traitor/objective_failed.ogg rename to sound/music/antag/traitor/objective_failed.ogg diff --git a/sound/traitor/objective_success.ogg b/sound/music/antag/traitor/objective_success.ogg similarity index 100% rename from sound/traitor/objective_success.ogg rename to sound/music/antag/traitor/objective_success.ogg diff --git a/sound/traitor/objective_taken.ogg b/sound/music/antag/traitor/objective_taken.ogg similarity index 100% rename from sound/traitor/objective_taken.ogg rename to sound/music/antag/traitor/objective_taken.ogg diff --git a/sound/ambience/antag/tatoralert.ogg b/sound/music/antag/traitor/tatoralert.ogg similarity index 100% rename from sound/ambience/antag/tatoralert.ogg rename to sound/music/antag/traitor/tatoralert.ogg diff --git a/sound/lavaland/bdm_boss.ogg b/sound/music/boss/bdm_boss.ogg similarity index 100% rename from sound/lavaland/bdm_boss.ogg rename to sound/music/boss/bdm_boss.ogg diff --git a/sound/lavaland/hiero_boss.ogg b/sound/music/boss/hiero_boss.ogg similarity index 100% rename from sound/lavaland/hiero_boss.ogg rename to sound/music/boss/hiero_boss.ogg diff --git a/sound/ambience/music/elevator/robocop-short.ogg b/sound/music/elevator/robocop-short.ogg similarity index 100% rename from sound/ambience/music/elevator/robocop-short.ogg rename to sound/music/elevator/robocop-short.ogg diff --git a/sound/ambience/clown.ogg b/sound/music/lobby_music/clown.ogg similarity index 100% rename from sound/ambience/clown.ogg rename to sound/music/lobby_music/clown.ogg diff --git a/sound/music/lobby_music/license.txt b/sound/music/lobby_music/license.txt new file mode 100644 index 0000000000000..be7e890e52789 --- /dev/null +++ b/sound/music/lobby_music/license.txt @@ -0,0 +1,4 @@ +title0.ogg is Endless Space by Solus. It has been licensed under CC-BY 3.0 license. Source file downloaded from https://www.newgrounds.com/audio/listen/74946 +title1.mod is Flip-Flap created by Jakub "AceMan" SzelÄ…g and taken from http://aminet.net/package/mods/xceed/Flipflap +title2.ogg is Robocop Theme (gameboy) remixed by Eric Schumacker +title3.ogg is Tintin On The Moon remixed by Cuboos https://tgstation13.org/phpBB/viewtopic.php?f=10&t=2157 (assumed CC under allowing it to be submitted to the github, see thread) diff --git a/sound/ambience/title0.ogg b/sound/music/lobby_music/title0.ogg similarity index 100% rename from sound/ambience/title0.ogg rename to sound/music/lobby_music/title0.ogg diff --git a/sound/ambience/title1.mod b/sound/music/lobby_music/title1.mod similarity index 100% rename from sound/ambience/title1.mod rename to sound/music/lobby_music/title1.mod diff --git a/sound/ambience/title2.ogg b/sound/music/lobby_music/title2.ogg similarity index 100% rename from sound/ambience/title2.ogg rename to sound/music/lobby_music/title2.ogg diff --git a/sound/ambience/title3.ogg b/sound/music/lobby_music/title3.ogg similarity index 100% rename from sound/ambience/title3.ogg rename to sound/music/lobby_music/title3.ogg diff --git a/sound/ambience/music/sisyphus/sisyphus.ogg b/sound/music/sisyphus/sisyphus.ogg similarity index 100% rename from sound/ambience/music/sisyphus/sisyphus.ogg rename to sound/music/sisyphus/sisyphus.ogg diff --git a/sound/runtime/complionator/attribution.txt b/sound/runtime/complionator/attribution.txt new file mode 100644 index 0000000000000..c9229ef22b52a --- /dev/null +++ b/sound/runtime/complionator/attribution.txt @@ -0,0 +1 @@ +all complianator sounds are licensed under CC-BY-SA by Michael Haugh (supermichael) diff --git a/sound/mecha/critdestr.ogg b/sound/vehicles/mecha/critdestr.ogg similarity index 100% rename from sound/mecha/critdestr.ogg rename to sound/vehicles/mecha/critdestr.ogg diff --git a/sound/mecha/hydraulic.ogg b/sound/vehicles/mecha/hydraulic.ogg similarity index 100% rename from sound/mecha/hydraulic.ogg rename to sound/vehicles/mecha/hydraulic.ogg diff --git a/sound/mecha/imag_enh.ogg b/sound/vehicles/mecha/imag_enh.ogg similarity index 100% rename from sound/mecha/imag_enh.ogg rename to sound/vehicles/mecha/imag_enh.ogg diff --git a/sound/mecha/mech_blade_attack.ogg b/sound/vehicles/mecha/mech_blade_attack.ogg similarity index 100% rename from sound/mecha/mech_blade_attack.ogg rename to sound/vehicles/mecha/mech_blade_attack.ogg diff --git a/sound/mecha/mech_blade_break_wall.ogg b/sound/vehicles/mecha/mech_blade_break_wall.ogg similarity index 100% rename from sound/mecha/mech_blade_break_wall.ogg rename to sound/vehicles/mecha/mech_blade_break_wall.ogg diff --git a/sound/mecha/mech_blade_safty.ogg b/sound/vehicles/mecha/mech_blade_safty.ogg similarity index 100% rename from sound/mecha/mech_blade_safty.ogg rename to sound/vehicles/mecha/mech_blade_safty.ogg diff --git a/sound/mecha/mech_charge_attack.ogg b/sound/vehicles/mecha/mech_charge_attack.ogg similarity index 100% rename from sound/mecha/mech_charge_attack.ogg rename to sound/vehicles/mecha/mech_charge_attack.ogg diff --git a/sound/mecha/mech_shield_deflect.ogg b/sound/vehicles/mecha/mech_shield_deflect.ogg similarity index 100% rename from sound/mecha/mech_shield_deflect.ogg rename to sound/vehicles/mecha/mech_shield_deflect.ogg diff --git a/sound/mecha/mech_shield_drop.ogg b/sound/vehicles/mecha/mech_shield_drop.ogg similarity index 100% rename from sound/mecha/mech_shield_drop.ogg rename to sound/vehicles/mecha/mech_shield_drop.ogg diff --git a/sound/mecha/mech_shield_raise.ogg b/sound/vehicles/mecha/mech_shield_raise.ogg similarity index 100% rename from sound/mecha/mech_shield_raise.ogg rename to sound/vehicles/mecha/mech_shield_raise.ogg diff --git a/sound/mecha/mech_stealth_attack.ogg b/sound/vehicles/mecha/mech_stealth_attack.ogg similarity index 100% rename from sound/mecha/mech_stealth_attack.ogg rename to sound/vehicles/mecha/mech_stealth_attack.ogg diff --git a/sound/mecha/mech_stealth_effect.ogg b/sound/vehicles/mecha/mech_stealth_effect.ogg similarity index 100% rename from sound/mecha/mech_stealth_effect.ogg rename to sound/vehicles/mecha/mech_stealth_effect.ogg diff --git a/sound/mecha/mech_stealth_pre_attack.ogg b/sound/vehicles/mecha/mech_stealth_pre_attack.ogg similarity index 100% rename from sound/mecha/mech_stealth_pre_attack.ogg rename to sound/vehicles/mecha/mech_stealth_pre_attack.ogg diff --git a/sound/mecha/mechmove01.ogg b/sound/vehicles/mecha/mechmove01.ogg similarity index 100% rename from sound/mecha/mechmove01.ogg rename to sound/vehicles/mecha/mechmove01.ogg diff --git a/sound/mecha/mechmove03.ogg b/sound/vehicles/mecha/mechmove03.ogg similarity index 100% rename from sound/mecha/mechmove03.ogg rename to sound/vehicles/mecha/mechmove03.ogg diff --git a/sound/mecha/mechmove04.ogg b/sound/vehicles/mecha/mechmove04.ogg similarity index 100% rename from sound/mecha/mechmove04.ogg rename to sound/vehicles/mecha/mechmove04.ogg diff --git a/sound/mecha/mechstep.ogg b/sound/vehicles/mecha/mechstep.ogg similarity index 100% rename from sound/mecha/mechstep.ogg rename to sound/vehicles/mecha/mechstep.ogg diff --git a/sound/mecha/mechturn.ogg b/sound/vehicles/mecha/mechturn.ogg similarity index 100% rename from sound/mecha/mechturn.ogg rename to sound/vehicles/mecha/mechturn.ogg diff --git a/sound/mecha/nominal.ogg b/sound/vehicles/mecha/nominal.ogg similarity index 100% rename from sound/mecha/nominal.ogg rename to sound/vehicles/mecha/nominal.ogg diff --git a/sound/mecha/powerloader_step.ogg b/sound/vehicles/mecha/powerloader_step.ogg similarity index 100% rename from sound/mecha/powerloader_step.ogg rename to sound/vehicles/mecha/powerloader_step.ogg diff --git a/sound/mecha/powerloader_turn2.ogg b/sound/vehicles/mecha/powerloader_turn2.ogg similarity index 100% rename from sound/mecha/powerloader_turn2.ogg rename to sound/vehicles/mecha/powerloader_turn2.ogg diff --git a/sound/mecha/skyfall_power_up.ogg b/sound/vehicles/mecha/skyfall_power_up.ogg similarity index 100% rename from sound/mecha/skyfall_power_up.ogg rename to sound/vehicles/mecha/skyfall_power_up.ogg diff --git a/sound/mecha/weapdestr.ogg b/sound/vehicles/mecha/weapdestr.ogg similarity index 100% rename from sound/mecha/weapdestr.ogg rename to sound/vehicles/mecha/weapdestr.ogg diff --git a/sound/voice/attribution.txt b/sound/voice/attribution.txt deleted file mode 100644 index 7bfe5c4a9ce14..0000000000000 --- a/sound/voice/attribution.txt +++ /dev/null @@ -1,12 +0,0 @@ -borg_deathsound.ogg is spliced from two clips, both of which are under the CC Attribution license. The sound at https://freesound.org/people/simmfoc/sounds/28477/ was pitched down, sped up, and repeated a few times. https://freesound.org/people/nicStage/sounds/1522/ is then attached with a fadeout effect and lowered volume. - -all complianator sounds are licensed under CC-BY-SA by Michael Haugh (supermichael) - -The male sharp gasps in /sound/voice/human/ are from https://freesound.org/people/bacruz666/sounds/341908/ and https://freesound.org/people/nettoi/sounds/677540/, the female sharp gasps are from https://freesound.org/people/drotzruhn/sounds/405203/ - -{ -human/male_sniff.ogg - https://freesound.org/people/Fluffayfish/sounds/327799/ , License: CC BY-NC 3.0 -human/male_sigh.ogg - https://freesound.org/people/giddster/sounds/336540/ , License: CC0 -human/female_sniff.ogg - https://freesound.org/people/SpliceSound/sounds/218307/ , License: CC0 -human/female_sigh.ogg - https://freesound.org/people/biawinter/sounds/408090/ , License: CC BY-NC 4.0 -} modified by grungussuss \ No newline at end of file diff --git a/strings/round_start_sounds.txt b/strings/round_start_sounds.txt index c4428dc8c5def..9981097c30850 100644 --- a/strings/round_start_sounds.txt +++ b/strings/round_start_sounds.txt @@ -1,4 +1,4 @@ -sound/ambience/title1.mod -sound/ambience/title2.ogg -sound/ambience/title3.ogg -sound/ambience/clown.ogg +sound/music/lobby_music/title1.mod +sound/music/lobby_music/title2.ogg +sound/music/lobby_music/title3.ogg +sound/music/lobby_music/clown.ogg diff --git a/tgstation.dme b/tgstation.dme index ebe0449eb715d..221a28d96d74d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -487,6 +487,7 @@ #include "code\__HELPERS\memory_helpers.dm" #include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\mouse_control.dm" +#include "code\__HELPERS\movement.dm" #include "code\__HELPERS\nameof.dm" #include "code\__HELPERS\names.dm" #include "code\__HELPERS\piping_colors_lists.dm" @@ -781,7 +782,7 @@ #include "code\controllers\subsystem\movement\hyperspace_drift.dm" #include "code\controllers\subsystem\movement\movement.dm" #include "code\controllers\subsystem\movement\movement_types.dm" -#include "code\controllers\subsystem\movement\spacedrift.dm" +#include "code\controllers\subsystem\movement\newtonian_movement.dm" #include "code\controllers\subsystem\persistence\_persistence.dm" #include "code\controllers\subsystem\persistence\counter_delamination.dm" #include "code\controllers\subsystem\persistence\counter_tram_hits.dm" @@ -832,6 +833,7 @@ #include "code\datums\datumvars.dm" #include "code\datums\dna.dm" #include "code\datums\dog_fashion.dm" +#include "code\datums\drift_handler.dm" #include "code\datums\ductnet.dm" #include "code\datums\eigenstate.dm" #include "code\datums\embed_data.dm" @@ -1143,7 +1145,6 @@ #include "code\datums\components\dejavu.dm" #include "code\datums\components\deployable.dm" #include "code\datums\components\direct_explosive_trap.dm" -#include "code\datums\components\drift.dm" #include "code\datums\components\earprotection.dm" #include "code\datums\components\echolocation.dm" #include "code\datums\components\edit_complainer.dm" diff --git a/tgui/packages/tgui/interfaces/Aquarium.tsx b/tgui/packages/tgui/interfaces/Aquarium.tsx index 90030afbfb42f..f527bee09ea0b 100644 --- a/tgui/packages/tgui/interfaces/Aquarium.tsx +++ b/tgui/packages/tgui/interfaces/Aquarium.tsx @@ -319,7 +319,7 @@ const Settings = (props) => {
      - + { const { act, data } = useBackend(); - const { amount, purity, beaker } = data; + const { amount, temp, purity, beaker } = data; return ( @@ -35,6 +36,19 @@ export const ChemDebugSynthesizer = (props) => { }) } /> + + act('temp', { + amount: value, + }) + } + /> { const { config, suspended } = useBackend(); const { debugLayout = false } = useDebug(); + const [isReadyToRender, setIsReadyToRender] = useState(false); + + // We need to set the window to be invisible before we can set its geometry + // Otherwise, we get a flicker effect when the window is first rendered + useLayoutEffect(() => { + Byond.winset(Byond.windowId, { + 'is-visible': false, + }); + setIsReadyToRender(true); + }, []); useEffect(() => { - if (!suspended) { + if (!suspended && isReadyToRender) { const updateGeometry = () => { const options = { ...config.window, @@ -67,6 +83,10 @@ export const Window = (props: Props) => { setWindowKey(config.window.key); } recallWindowGeometry(options); + Byond.winset(Byond.windowId, { + 'is-visible': true, + }); + logger.log('set to visible'); }; Byond.winset(Byond.windowId, { @@ -79,7 +99,7 @@ export const Window = (props: Props) => { logger.log('unmounting'); }; } - }, [width, height]); + }, [isReadyToRender, width, height]); const dispatch = globalStore.dispatch; const fancy = config.window?.fancy; diff --git a/tools/tgs_test/Program.cs b/tools/tgs_test/Program.cs index 9b018be951676..8bc77e9e8e111 100644 --- a/tools/tgs_test/Program.cs +++ b/tools/tgs_test/Program.cs @@ -1,6 +1,6 @@ // Simple app meant to test tgstation's TGS integration given a fresh TGS install with the default account // -// Args: Repository Owner/Name, TGS instance path, TGS API port, Pushed commit hash (For .tgs.yml access), GitHub Token, (OPTIONAL) PR Number +// Args: Repository Owner/Name, TGS instance path, TGS API port, Pushed commit hash (For .tgs.yml access), GitHub Token, (OPTIONAL) PR Number using System.Reflection; using System.Text; @@ -197,8 +197,6 @@ { Origin = new Uri($"http://github.com/{repoSlug}"), UpdateSubmodules = true, - AccessUser = "Testing", - AccessToken = gitHubToken }, default);