This code was a mess. Now it's less of a mess and user UserDbDataManager now.
Fixes the following bugs:
* If you connect to a server, restart your client, connect again in the same round, you role bans would not be visible in the client.
* If you role ban somebody who is not connected to the server, then they connect within the round, they will only have the recently-applied ban.
Likely fixes#24781, #27282
* Fix some rounds failing to end due to mind roles
Fixes#32791
This is caused by ShowRoundEndScoreboard running into a bug trying to display antags: some player is showing up as antag with MindIsAntagonist(), but has no antag roles listed in MindGetAllRoleInfo().
This was caused by one of the roles of the player having the Antag boolean set, but having no AntagPrototype set.
The responsible mind role appeared to be MindRoleSubvertedSilicon which is missing a set for the SubvertedSilicon antag prototype.
I also added resilience to the round-end code to make it so that an exception showing the scoreboard (and sending the Discord message) would not cause the round end logic to completely abort from an exception.
I am planning to add an integration test to cover this bug (no prototype in mind roles), but I'll leave that for not-the-immediate-hotfix.
* At least one maintainer approved this tiny PR without reading it, not naming names.
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* minor cleanup
* remove createdTime datafield
* now actually using the event replacement I made for role time tracking
* weh
* I dunno, break shit I guess.
* Actually fix some shit for once.
* test flakey or me flakey?
* Test were not flakey, they just didnt make any sense anymore.
* more stationy tests
* undo abuncha shit I can set in yml instead
* forgor an assert
* unneeded usings
* 1984
* I made github angy
* yoink
* the end is never the end is never the end is never the end is never the end is never the end is never the
* Im going to commit sudoku
* Add NukeOps Test
* Update EvacShuttleTest to also check mapinit
* Update RuleMaxTimeRestartTest
* Fix cvar cleanup
* A
* Revert some changes
* comments
* Add MappingTests
* Finally fix the test
* A
* fix: lobby music volume will be changed on options change without restart (also lobby music not looped anymore)
* refactor: now lobby music is part of ContentAudioSystem. Lobby playlist is used instead of single track. Client now selects next lobby soundtrack after previous finished.
* refactor: incapsulated info on current lobby track in simple record
* refactor: fixed inconsistent naming between song and soundtrack for lobbymusic
* refactor: xml-doc for LobbyPlaylistChangedEvent
* fix: inverted invalid _audio.PlayGlobal check to return only if lobby soundtrack play call failed
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* Save round information into the replay
* Add round end text too
* This is way better
* Get actual job
* oop
* OK THERE
* Fake line endings to make life easier
* I was told this yaml is legal
* I just realised this will make my life easier
* REVIEWS BABY IM A PROGRAMMER MOMMY
* Live pjb reaction
* Live pjb reaction 2
* Reviews 2
* Dont need this
* Please no more have mercy on my soul
* Oh frick
In which I'm a goober and don't clean up after
myself and accientally don't fix the issue I tried
to fix in my last round restart PR.
The audio is now maintained just like music during
restarts (yippee to ContentAudioSystem::OnRoundRestart)
This needs a refactor but at least the defect is fixed now.
* Fix Round Restarted Announcements not playing
Just make the RoundFlow manager play the funny
announcement sound effect, rather than pass it
through to players in an event that doesn't work.
Only three round end announcements probably
isn't enough. Maybe it is time for fresh memes.
* Remove the handling in ClientGameTicker.
* Pass in a specific filepass to broadcast.
* you make one line change in vscode and the linter
goes AH-HAH I CAN HELP YOU LET ME CLEAN
THIS UP and I'm like 😔 and have to revert