From 0c4b4f7cdbc2d145f041b044e122e3bb45f9c57d Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 7 Aug 2023 13:31:08 -0500 Subject: [PATCH] Add sounds and flashing effects to slot machines (#77390) ## About The Pull Request This adds some sounds and flashing effects to slot machines while they are played. I also added a new creative commons ding sound from: https://freesound.org/people/Natty23/sounds/411747/ ## Why It's Good For The Game Slot machines should not be quiet. ## Changelog :cl: qol: Add sounds and flashing effects to slot machines sound: Add new ding sound to slot machines from https://freesound.org/people/Natty23/sounds/411747/ /:cl: --- code/game/machinery/slotmachine.dm | 21 +++++++++++++++++---- sound/attributions.txt | 7 +++++-- sound/machines/ding_short.ogg | Bin 0 -> 8787 bytes 3 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 sound/machines/ding_short.ogg diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index cc7c270b904..ddfe76f56af 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -35,7 +35,7 @@ var/static/list/coinvalues var/list/reels = list(list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0) var/list/symbols = list(SEVEN = 1, "&" = 2, "@" = 2, "$" = 2, "?" = 2, "#" = 2, "!" = 2, "%" = 2) //if people are winning too much, multiply every number in this list by 2 and see if they are still winning too much. - + var/static/list/ray_filter = list(type = "rays", y = 16, size = 40, density = 4, color = COLOR_RED_LIGHT, factor = 15, flags = FILTER_OVERLAY) /obj/machinery/computer/slot_machine/Initialize(mapload) . = ..() @@ -251,6 +251,8 @@ /obj/machinery/computer/slot_machine/proc/toggle_reel_spin(value, delay = 0) //value is 1 or 0 aka on or off for(var/list/reel in reels) + if(!value) + playsound(src, 'sound/machines/ding_short.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) reels[reel] = value sleep(delay) @@ -264,6 +266,7 @@ /obj/machinery/computer/slot_machine/proc/give_prizes(usrname, mob/user) var/linelength = get_lines() + var/did_player_win = TRUE if(reels[1][2] + reels[2][2] + reels[3][2] + reels[4][2] + reels[5][2] == "[SEVEN][SEVEN][SEVEN][SEVEN][SEVEN]") visible_message("[src] says, 'JACKPOT! You win [money] credits!'") @@ -272,12 +275,14 @@ balance += money - give_payout(JACKPOT) money = 0 if(paymode == HOLOCHIP) - new /obj/item/holochip(loc,JACKPOT) + new /obj/item/holochip(loc, JACKPOT) else for(var/i in 1 to 5) cointype = pick(subtypesof(/obj/item/coin)) - var/obj/item/coin/C = new cointype(loc) - random_step(C, 2, 50) + var/obj/item/coin/payout_coin = new cointype(loc) + random_step(payout_coin, 2, 50) + playsound(src, pick(list('sound/machines/coindrop.ogg', 'sound/machines/coindrop2.ogg')), 50, TRUE) + sleep(REEL_DEACTIVATE_DELAY) else if(linelength == 5) visible_message("[src] says, 'Big Winner! You win a thousand credits!'") @@ -294,6 +299,13 @@ else to_chat(user, span_warning("No luck!")) + 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) /obj/machinery/computer/slot_machine/proc/get_lines() var/amountthesame @@ -354,6 +366,7 @@ else random_step(C, 2, 40) + playsound(src, pick(list('sound/machines/coindrop.ogg', 'sound/machines/coindrop2.ogg')), 50, TRUE) return amount #undef BIG_PRIZE diff --git a/sound/attributions.txt b/sound/attributions.txt index 1b25e90dc40..55b34c5618f 100644 --- a/sound/attributions.txt +++ b/sound/attributions.txt @@ -65,7 +65,7 @@ https://freesound.org/people/uagadugu/sounds/222521/ earth_rumble_distant1, earth_rumble_distant2, earth_rumble_distant3, and earth_rumble_distant4 are adapted from metrostock99's "EARTHQUAKE OR DISTANT SPACE SHUTTLE RUMBLE.WAV" (CC 0) https://freesound.org/people/metrostock99/sounds/203281/ -metal_creak.ogg is adapted from BloodPixelHero's "Metal door creak" under CC Attribution 4.0 +metal_creak.ogg is adapted from BloodPixelHero's "Metal door creak" under CC Attribution 4.0 https://freesound.org/people/BloodPixelHero/sounds/585323/ revolutionary_tide.ogg is adapted from several audio samples: @@ -83,4 +83,7 @@ zip_up.ogg and un_zip.ogg adapted from aboxinghelena's Zip.wav (CC 4) https://freesound.org/people/aboxinghelena/sounds/401139/ car_crash.ogg is adapted from squareal's "Car Crash" (CC 0) -https://freesound.org/people/squareal/sounds/237375/ \ No newline at end of file +https://freesound.org/people/squareal/sounds/237375/ + +ding_short.ogg is from Natty23 (CC 4) +https://freesound.org/people/Natty23/sounds/411747/ diff --git a/sound/machines/ding_short.ogg b/sound/machines/ding_short.ogg new file mode 100644 index 0000000000000000000000000000000000000000..79032ee2a9a7a8219ae3e4c323c7b3605df5ed79 GIT binary patch literal 8787 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 Z)@Cb=F*t4N_UW1H!K=_-k^Lwv_)pgmNu&S( literal 0 HcmV?d00001