* Changes how weather sends sound to players, reduces sound loop overtime (#59284)
* Converts looping sounds from a list of play locations to just the one
* Updates all uses of looping sounds to match the new arg
* Adds an area based sound manager that hooks into looping sounds to drive the actual audio. I'll be using this to redo how weather effects handle sound
* Some structrual stuff to make everything else smoother
Timers now properly return the time left for client based timers
Weather sends global signals when it starts/stops
Looping sounds now use their timerid var for all their sound related timers, not just the main loop
* This is the painful part
Adds an area sound manager component, it handles the logic of moving into new areas potentially creating new
sound loops. We do some extra work to prevent stacking sound loops.
Adds an ash storm listener element that adds a tailored area sound manager to clients on the lavaland z level.
It's removed on logout.
Adds the ash_storm_sounds assoc list, a reference to this is passed into area sound managers, and it's modified
in a manner that doesn't break the reference in ash_storm (This is what I hate)
* Hooks ash storm listener into cliented mobs and possessed objects
* Documents the odd ref stuff, adds an ignore start var to looping sounds, fixes some errors and lint issues
* Applies kyler's review
banging
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Cleans up some var names, reduces the amount of looping we do in some areas
* Makes the code compile, redoes the movement listener to be more general
* fuck
* We don't need to detach on del if we're just removing signals on detach
* Should? work
* if(direct) memes
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Changes how weather sends sound to players, reduces sound loop overtime
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Fixes sound loops not well, stopping. They were being removed from the wrong subsystem (#59138)
* Fixes sound loops not well, stopping.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Makes timer subsystems available as a new subsystem type (#59073)
* Makes timer subsystems available as a new subsystem type
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Further tape and universal recorder improvements (#56023)
- Makes it so warning for time happens based on the time and not when the tape recorder hears something
- Makes stopping work correctly when we try to record with a full tape or when recording stops because of a full tape
- Uses the SECONDS and MINUTES defines instead of a mixture of undefined deciseconds and seconds that are multiplied by 10 (while having to divide by 10 in a couple of places)
- Cannot print a transcript for a blank tape
- Tweaks transcript name setting to be better formatted
- No longer update_icon() after stop() under play() (it's in the stop() proc)
- Reorders stopping to be consistent between playing and recording and logical (which probably makes no noticeable difference)
- Play/record hiss sound loop (mediocre due to lack of options in sound loops to cut and not fade in/out)
- Drop and pick up sounds
- 0→2 throwforce (like it was when Uhangi added them, before Hornygranny made it 0 for some reason)
- Cleans up radial image() usage
- Clarifies radial icon var
- Clarifies tape unspooling and respooling vars
- Random 3 char hexademical on tape names
- Tape can spawn on either side
- Adds greyscale tapes and randomised colouration
* Further tape and universal recorder improvements
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* [READY] Kitchen Rework part 1: I just want to griddle! (#55319)
This PR essentialy moves away from the extremely microwave dependent cooking we have for meat right now, and making it a bit more sensical by making you use a grill to grill meat. The grill takes a different time (with variation) for different grilled things. Once finished it will turn that food into something else.
Yes, this does mean creating burgers takes longer, but in return you can make more patties at once, and you are not required to stay at the grill while its going. This lets you cook as much as you want at once, just make sure your meat doesn't burn!
In the future, I hope to move more things like this to machines similar to this (Pasta boiling, putting eggs on the griddle, soup making, etcetera) to create for a more interesting cooking experience.
* [READY] Kitchen Rework part 1: I just want to griddle!
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Adds a bunch of looping audio to computers, grav-gen and telecomms. (#54324)
* Adds a bunch of looping audio to computers, gravegen and telecomms.
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Makes acid levels a component.
Merges the acid effect object into the component.
Reworks acids decay rates slightly.
Rebalances xenos acid spit so that they can still melt through walls.
Misc. associated changes:
Adds defines for a lot of the acid associated constants.
Documents clean types and adds CLEAN_TYPE_ACID
Adds and implements a return bitflag for COMSIG_COMPONENT_CLEAN_ACT
Adds a looping sound for acid.
Makes /atom/proc/acid_act return a boolean.
Fixes waterclosets creating a new reagent holder datum every time they are used.
Removes waterclosets regenerating reagents on-use and restricts their reaction volume to 5 units.
Adds and implements a couple reagent signals.
Renames a few vars so Rohesie can stop telling me to rename more vars.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR (#51459)
Instruments and sound channels refactor.
* Baystruments - I had two tgstation forks for some reason and had to delete one and that nuked the last PR
* Fixes dme dupe
* Fixes dme dupe (#52954)
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* a
* GRILL GANG
* sipp
* sip
* seep
* grug
* FSAIUGANOHNHOE
* bru
* a
* finish him
* compilies ^w^
* WOOO
* holy crap
* woo
* a
* h
* woo
* woo
* woo
* awoo
* aa
* aw shet
* heck you floyd
* at ath
* awo
* we like compiling code
* awo
* coal mat
* awoo
* aasdga
* a
* nice
* awoo
* awwoooooooooooooooooooooooo
* awoo
* spaceport bars
* grill gang
* aw
* awooo
* yee
* aw
* flod
* awoo
* awoo
* yesyesyyes
* a
* awoo
* holy sht
* h
* awoo
* awo
* aaaaaaaaa
* awoooooooooo
* awoo
* aw man
* honk
* well boys we did it
* oh mama mia
* ok cobby flushed
* awoo
* removes fun
* yeep
* i just said something
* vruh obama
* ye
* awoo
* awooooooo
About The Pull Request
fixes some accidents with the sm sound pr that snuck in:
extra range actually works as well as boosted falloff
extra range parameter on looping sounds actually works correctly
I'm intentionally leaving the unintentional pitch variation in as it actually sounds really cool though
Why It's Good For The Game
fixes bugs
Changelog
cl
fix: fixeds a couple issues with the SM sounds
/cl
About The Pull Request
Replaces supermatter sounds with a new sound system for it.
Works based on having a constant drone that randomly plays accent noises over it.
https://www.youtube.com/watch?v=k5kKc5mpl-A&feature=youtu.be
I've barely tested this
Why It's Good For The Game
the old sounds are terrible
Changelog
cl
soundadd: New supermatter sound system
/cl
About The Pull Request
Was fairly shocked to find out hiveminds never took tinfoil hat protection in account, so decided to implement the factor in the game mode. Might have overdone it and probably erroneously changed a couple logics while getting rid of some really indented passages that could easily early return.
So what's said on the tin, this is lot more preferable than clunky is_type() checks on headwear anyway.
Also expanded tinfoil protection to hivemind and (non-revenant) telepathy.
Why It's Good For The Game
Let us remember the "purpose" of tinfoil hats.
Changelog
cl
code: Merged tinfoil hat kind of protection into the anti_magic component.
add: Tinfoil hats can also be warped up from excessive dampening of mindray/though control/psicotronic anomalies, or by simply being microwaved in an oven, and become useless.
add: Immortality Talisman and Paranormal Hardsuit helmets now come with tinfoil protection too (minus the paranoia and limited charges).
balance: Rebalanced many hivemind effects to be dampened/delayed by tinfoil shielding. Bruteforced Assimilate Vessel, One mind and Awake Vessel abilities will consume more tinfoil charges compared to others.
balance: Genetics/Slime/Alien Telepathy and Slime Link are now stopped by tinfoil protection.
/cl
cl Floyd
del: removed beauty / dirtyness
balance: Mood no longer gives you hallucinations, instead makes you go into crit sooner
/cl
oranges requested these changes, i havn't coded in DM for a while so I might have made some mistakes
cl Floyd / Qustinnus
del: Removes short-term effects of mood
add; Adds long-term effects of mood by implementing sanity which goes up with good mood, down with bad mood, but takes time to change. Your sanity can be seen as your average mood in the recent past. All effects of moods are now covered by this system
add: Beauty component, currently only attached to cleanables, but you could attach it to any atom/movable and make them pretty/ugly, affecting mood of anyone in the room.
refactor: Removes the original way of adding mood events, uses signals properly instead.
fix: Cleanables "giving" area's free beauty during initialization
fix: Fixes some events not clearing properly
/cl
Fixes#36444
From now on mood no longer affects you directly, instead it decides whether your sanity goes up or down, when your sanity gets too low you will get the effects of what mood did before.
This means getting hit with bad moods due to being attacked while not mean you are doomed anymore, and you get a large timeframe to get away and just fix your mood later.
I also added the beauty component, you could add this to any object and it would either make a room prettier or uglier, comparable to DF or Rimworld. You could add traits to make certain people ugly, for example.
* noisy
* Adds sounds to modular computers
* Adds range modifier var to sound loops
* finetunes computer sound range
* maybe fixes stuff
* changes some of the sound lengths
* borgs and some small changes
* sanity
* gravgen makes noise too
(reverted from commit ea523084c2)
While I was messing with vitamins and nutrients, I decided to touch up on deep fryers as a separate project. A demo of sounds can be found here, using the looping sound framework added recently. Also, sound quality in the video is kind of terrible; it sounds much nicer in-game.
Fryers themselves now use the cooking oil reagent, which is new and can be obtained by grinding soybeans (for vegetable oil) or meat (for oil derived from fats.) This does include synthmeat, which you can also use for meat anyway! By default it takes about 1.2 units of oil to fry one object.
Also adds oil_use and fry_speed vars that determine how well the fryer does its job. These values start at ~0.04 and 1 respectively, and can be brought to 0.01 and 4 with max-tier parts (each fryer uses one micro laser.)
Cooking oil itself can be heated to 450 K to bring out its latent frying powers. When splashed on object, it will fry them instantly (albeit inefficiently)... and can also fry humans and other creatures rather painfully.
* noisy
* Adds sounds to modular computers
* Adds range modifier var to sound loops
* finetunes computer sound range
* maybe fixes stuff
* changes some of the sound lengths
* borgs and some small changes
* sanity
* gravgen makes noise too