Files
Bubberstation/code/modules/reagents/reagent_containers/cups/soda.dm
grungussuss 58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00

338 lines
13 KiB
Plaintext

//////////////////////////soda_cans//
//These are in their own group to be used as IED's in /obj/item/grenade/ghettobomb.dm
/// How much fizziness is added to the can of soda by throwing it, in percentage points
#define SODA_FIZZINESS_THROWN 15
/// How much fizziness is added to the can of soda by shaking it, in percentage points
#define SODA_FIZZINESS_SHAKE 5
/obj/item/reagent_containers/cup/soda_cans
name = "soda can"
icon = 'icons/obj/drinks/soda.dmi'
icon_state = "cola"
icon_state_preview = "cola"
reagent_flags = NONE
spillable = FALSE
custom_price = PAYCHECK_CREW * 0.9
obj_flags = CAN_BE_HIT
possible_transfer_amounts = list(5, 10, 15, 25, 30)
volume = 30
throwforce = 12 // set to 0 upon being opened. Have you ever been domed by a soda can? Those things fucking hurt
/// If the can hasn't been opened yet, this is the measure of how fizzed up it is from being shaken or thrown around. When opened, this is rolled as a percentage chance to burst
var/fizziness = 0
/obj/item/reagent_containers/cup/soda_cans/Initialize(mapload, vol)
. = ..()
AddElement(/datum/element/slapcrafting, string_list(list(/datum/crafting_recipe/improv_explosive)))
/obj/item/reagent_containers/cup/soda_cans/random/Initialize(mapload)
..()
var/T = pick(subtypesof(/obj/item/reagent_containers/cup/soda_cans) - /obj/item/reagent_containers/cup/soda_cans/random)
new T(loc)
return INITIALIZE_HINT_QDEL
/obj/item/reagent_containers/cup/soda_cans/suicide_act(mob/living/carbon/human/H)
if(!reagents.total_volume)
H.visible_message(span_warning("[H] is trying to take a big sip from [src]... The can is empty!"))
return SHAME
if(!is_drainable())
open_soda()
sleep(1 SECONDS)
H.visible_message(span_suicide("[H] takes a big sip from [src]! It looks like [H.p_theyre()] trying to commit suicide!"))
playsound(H,'sound/items/drink.ogg', 80, TRUE)
reagents.trans_to(H, src.reagents.total_volume, transferred_by = H) //a big sip
sleep(0.5 SECONDS)
H.say(pick(
"Now, Outbomb Cuban Pete, THAT was a game.",
"All these new fangled arcade games are too slow. I prefer the classics.",
"They don't make 'em like Orion Trail anymore.",
"You know what they say. Worst day of spess carp fishing is better than the best day at work.",
"They don't make 'em like good old-fashioned singularity engines anymore.",
))
if(H.age >= 30)
H.Stun(50)
sleep(5 SECONDS)
playsound(H,'sound/items/drink.ogg', 80, TRUE)
H.say(pick(
"Another day, another dollar.",
"I wonder if I should hold?",
"Diversifying is for young'ns.",
"Yeap, times were good back then.",
))
return MANUAL_SUICIDE_NONLETHAL
sleep(2 SECONDS) //dramatic pause
return TOXLOSS
/obj/item/reagent_containers/cup/soda_cans/attack(mob/M, mob/living/user)
if(iscarbon(M) && !reagents.total_volume && user.combat_mode && user.zone_selected == BODY_ZONE_HEAD)
if(M == user)
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/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)
return TRUE
return ..()
/obj/item/reagent_containers/cup/soda_cans/bullet_act(obj/projectile/P)
. = ..()
if(QDELETED(src))
return
if(P.damage > 0 && P.damage_type == BRUTE)
var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(src.loc)
crushed_can.icon_state = icon_state
var/atom/throw_target = get_edge_target_turf(crushed_can, pick(GLOB.alldirs))
crushed_can.throw_at(throw_target, rand(1,2), 7)
qdel(src)
return
/obj/item/reagent_containers/cup/soda_cans/proc/open_soda(mob/user)
if(prob(fizziness))
user.visible_message(span_danger("[user] opens [src], and is suddenly sprayed by the fizzing contents!"), span_danger("You pull back the tab of [src], and are suddenly sprayed with a torrent of liquid! Ahhh!!"))
burst_soda(user)
return
to_chat(user, "You pull back the tab of [src] with a satisfying pop.") //Ahhhhhhhh
reagents.flags |= OPENCONTAINER
playsound(src, SFX_CAN_OPEN, 50, TRUE)
spillable = TRUE
throwforce = 0
/**
* Burst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it.
*
* Arguments:
* * target - Who's getting covered in soda
* * hide_message - Stops the generic fizzing message, so you can do your own
*/
/obj/item/reagent_containers/cup/soda_cans/proc/burst_soda(atom/target, hide_message = FALSE)
if(!target)
return
if(ismob(target))
var/mob/living/target_mob = target
target_mob.add_mood_event("soda_spill", /datum/mood_event/soda_spill, src)
for(var/mob/living/iter_mob in view(src, 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/can_pop.ogg', 80, TRUE)
if(!hide_message)
visible_message(span_danger("[src] spills over, fizzing its contents all over [target]!"))
spillable = TRUE
reagents.flags |= OPENCONTAINER
reagents.expose(target, TOUCH)
reagents.clear_reagents()
throwforce = 0
/obj/item/reagent_containers/cup/soda_cans/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
. = ..()
if(. || spillable || !reagents.total_volume) // if it was caught, already opened, or has nothing in it
return
fizziness += SODA_FIZZINESS_THROWN
if(!prob(fizziness))
return
burst_soda(hit_atom, hide_message = TRUE)
visible_message(span_danger("[src]'s impact with [hit_atom] causes it to rupture, spilling everywhere!"))
var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(src.loc)
crushed_can.icon_state = icon_state
moveToNullspace()
QDEL_IN(src, 1 SECONDS) // give it a second so it can still be logged for the throw impact
/obj/item/reagent_containers/cup/soda_cans/attack_self(mob/user)
if(!is_drainable())
open_soda(user)
return
return ..()
/obj/item/reagent_containers/cup/soda_cans/attack_self_secondary(mob/user)
if(!is_drainable())
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
return ..()
/obj/item/reagent_containers/cup/soda_cans/examine_more(mob/user)
. = ..()
if(!in_range(user, src))
return
if(fizziness > 30 && prob(fizziness * 2))
. += span_notice("<i>You examine [src] closer, and note the following...</i>")
. += "\t[span_warning("You get a menacing aura of fizziness from it...")]"
#undef SODA_FIZZINESS_THROWN
#undef SODA_FIZZINESS_SHAKE
/obj/item/reagent_containers/cup/soda_cans/cola
name = "Space Cola"
desc = "Cola. in space."
icon_state = "cola"
list_reagents = list(/datum/reagent/consumable/space_cola = 30)
drink_type = SUGAR
/obj/item/reagent_containers/cup/soda_cans/tonic
name = "T-Borg's tonic water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
volume = 50
list_reagents = list(/datum/reagent/consumable/tonic = 50)
drink_type = ALCOHOL
/obj/item/reagent_containers/cup/soda_cans/sodawater
name = "soda water"
desc = "A can of soda water. Why not make a scotch and soda?"
icon_state = "sodawater"
volume = 50
list_reagents = list(/datum/reagent/consumable/sodawater = 50)
/obj/item/reagent_containers/cup/soda_cans/lemon_lime
name = "orange soda"
desc = "You wanted ORANGE. It gave you Lemon Lime."
icon_state = "lemon-lime"
list_reagents = list(/datum/reagent/consumable/lemon_lime = 30)
drink_type = FRUIT
/obj/item/reagent_containers/cup/soda_cans/lemon_lime/Initialize(mapload)
. = ..()
name = "lemon-lime soda"
/obj/item/reagent_containers/cup/soda_cans/sol_dry
name = "Sol Dry"
desc = "Maybe this will help your tummy feel better. Maybe not."
icon_state = "sol_dry"
list_reagents = list(/datum/reagent/consumable/sol_dry = 30)
drink_type = SUGAR
/obj/item/reagent_containers/cup/soda_cans/space_up
name = "Space-Up!"
desc = "Tastes like a hull breach in your mouth."
icon_state = "space-up"
list_reagents = list(/datum/reagent/consumable/space_up = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/starkist
name = "Star-kist"
desc = "The taste of a star in liquid form. And, a bit of tuna...?"
icon_state = "starkist"
list_reagents = list(/datum/reagent/consumable/space_cola = 15, /datum/reagent/consumable/orangejuice = 15)
drink_type = SUGAR | FRUIT | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind
name = "Space Mountain Wind"
desc = "Blows right through you like a space wind."
icon_state = "space_mountain_wind"
list_reagents = list(/datum/reagent/consumable/spacemountainwind = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/thirteenloko
name = "Thirteen Loko"
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkenness, or even death. Please Drink Responsibly."
icon_state = "thirteen_loko"
list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/dr_gibb
name = "Dr. Gibb"
desc = "A delicious mixture of 42 different flavors."
icon_state = "dr_gibb"
list_reagents = list(/datum/reagent/consumable/dr_gibb = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/pwr_game
name = "Pwr Game"
desc = "The only drink with the PWR that true gamers crave. When a gamer talks about gamerfuel, this is what they're literally referring to."
icon_state = "purple_can"
list_reagents = list(/datum/reagent/consumable/pwr_game = 30)
/obj/item/reagent_containers/cup/soda_cans/shamblers
name = "Shambler's juice"
desc = "~Shake me up some of that Shambler's Juice!~"
icon_state = "shamblers"
list_reagents = list(/datum/reagent/consumable/shamblers = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/shamblers/eldritch
name = "Shambler's juice Eldritch Energy!"
desc = "~J'I'CE!~"
icon_state = "shamblerseldritch"
volume = 40
list_reagents = list(/datum/reagent/consumable/shamblers = 30, /datum/reagent/eldritch = 5)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/wellcheers
name = "Wellcheers Juice"
desc = "A strange purple drink, smelling of saltwater. Somewhere in the distance, you hear seagulls."
icon_state = "wellcheers"
list_reagents = list(/datum/reagent/consumable/wellcheers = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/grey_bull
name = "Grey Bull"
desc = "Grey Bull, it gives you gloves!"
icon_state = "energy_drink"
list_reagents = list(/datum/reagent/consumable/grey_bull = 20)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/monkey_energy
name = "Monkey Energy"
desc = "Unleash the ape!"
icon_state = "monkey_energy"
inhand_icon_state = "monkey_energy"
volume = 50
list_reagents = list(/datum/reagent/consumable/monkey_energy = 50)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/volt_energy
name = "24-Volt Energy"
desc = "Recharge, with 24-Volt Energy!"
icon_state = "volt_energy"
list_reagents = list(/datum/reagent/consumable/volt_energy = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/melon_soda
name = "Kansumi Melon Soda"
desc = "Japan's favourite melon soda, now available in can form!"
icon_state = "melon_soda"
list_reagents = list(/datum/reagent/consumable/melon_soda = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/air
name = "canned air"
desc = "There is no air shortage. Do not drink."
icon_state = "air"
list_reagents = list(/datum/reagent/nitrogen = 24, /datum/reagent/oxygen = 6)
/obj/item/reagent_containers/cup/soda_cans/beer
name = "space beer"
desc = "Canned beer. In space."
icon_state = "space_beer"
volume = 40
list_reagents = list(/datum/reagent/consumable/ethanol/beer = 40)
drink_type = GRAIN
/obj/item/reagent_containers/cup/soda_cans/beer/rice
name = "rice beer"
desc = "A light, rice-based lagered beer popular on Mars. Considered a hate crime against Bavarians under the Reinheitsgebot Act of 1516."
icon_state = "ebisu"
list_reagents = list(/datum/reagent/consumable/ethanol/rice_beer = 40)
/obj/item/reagent_containers/cup/soda_cans/beer/rice/Initialize(mapload)
. = ..()
var/brand = pick("Ebisu Super Dry", "Shimauma Ichiban", "Moonlabor Malt's")
name = "[brand]"
switch(brand)
if("Ebisu Super Dry")
icon_state = "ebisu"
desc = "Mars' favourite rice beer brand, 200 years running."
if("Shimauma Ichiban")
icon_state = "shimauma"
desc = "Mars' most middling rice beer brand. Not as popular as Ebisu, but it's comfortable in second place."
if("Moonlabor Malt's")
icon_state = "moonlabor"
desc = "Mars' underdog rice beer brand. Popular amongst the Yakuza, for reasons unknown."