# Description
Replaces every instance of station announcements with an announcer
system meant to handle audio and messages for various announcers defined
in prototypes instead of each server replacing the scattered files
inconsistently with whatever singular thing they want to hear announce
messages.
# TODO
- [x] Systems
- [x] CVars
- [x] Sounds
- [x] Client volume slider
- [x] Collections
- [x] Prototypes
- [x] Events
- [x] Commands
- [x] PR media
- [x] Deglobalize
- [x] Passthrough localization parameters to overrides
- [x] Make every announcer follow the template
- [x] Move sounds into subdirectories
- [x] Make announcement IDs camelCased
- [x] Test announcement localizations
- [x] Weighted announcer lists
---
<details><summary><h1>Media</h1></summary>
<p>
https://github.com/Simple-Station/Parkstation-Friendly-Chainsaw/assets/77995199/caf5805d-acb0-4140-b344-875a8f79e5ee
</p>
</details>
---
# Changelog
🆑
- add: Added 4 new announcers that will randomly be selected every shift
* Raise `StationPostInitEvent` broadcast
* Basic variation pass handling
* standardize names + rule entities
* why does it work like that?
* add to defaults
* light break variation pass
* ent spawn entry
* move some stationevent utility functions to gamerule + add one for finding random tile on specified station
* forgot how statistics works
* powered light variation pass is good now
* station tile count function
* public method to ensure all solutions (for procedural use before mapinit)
* move gamerulesystem utility funcs to partial
* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit
* trash & puddle variation passes!
* oh yeah
* ehh lets live a little
* std
* utility for game rule check based on comp
* entprotoid the trash spawner oops
* generalize trash variation
* use added instead of started for secret rule
* random cleanup
* generic replacement variation system
* Wall rusting variation rule
* account for modifying while enumerating
* use localaabb
* fix test
* minor tweaks
* reinforced wall replacer + puddletweaker
(cherry picked from commit cc24ba6a317c4bee84ffa1eda8397c255ca92be9)
* Update StationSpawningSystem.cs
Web-edit to allow feeding in an existing entity.
* Update StationSpawningSystem.cs
value type moment
* Update StationSpawningSystem.cs
* Oh goddamnit this is a refactor now.
* awawawa
* aaaaaaaaaaa
* ee
* forgot records.
* no records? no records.
* What's in a name?
* Sloth forcing me to do the refactor properly smh.
* e
* optional evac in test.
* tests pls work
* awa
---------
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>