* Ready Indicator in the lobby
* Use SessionID instead of Name
* Don't show ready state when game is already running
* Make Ready List not selectable
* -Remove disconnected sessions from Ready
-Fix showing ReadyStatus when staying in lobby
* Station event system
Adds 2 basic events: (Power) GridCheck and RadiationStorm (based on the goonstation version).
The system itself to choose events is based on tgstation's implementation.
This also adds the event command that can be run to force specific events.
There's still some other TODO items for these to be complete, to my knowledge:
1. There's no worldspace DrawCircle method (though the radstorm could look a lot nicer with a shader).
2. The PlayGlobal power_off / power_on audio seems to cut out halfway-through
3. (I think this is a known issue) lights still emit light until you get closer in a gridcheck so PVS range might need bumping.
* Invariants for event names
* Fix random event shutdown
* Mix stereo announcements to mono
* Address feedback
* Remove redundant client system and use the overlay component instead
* Drop the server prefix
* Fix radiation overlay enum
* use entityquery instead
* zum's feedback
* Use EntityQuery
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Multiple hands in gui first pass
* Remove IHandsComponent interface
* Create hand class and more hand textures
* Refactor ServerHandsComponent to use a single list of hands
* Seal SharedHand
* Fix picked up items not showing on top of the hand buttons
* Remove HandsGui buttons and panels dictionaries
* Fix items in hands rendering
* Fix wrong hand container comparison
* Fix not updating the location of duplicate hands
* Change ClientHandsComponent to use a SortedList instead of a dictionary
* More merge conflict fixes
* Change SortedList to List
* Fix hand button order
* Add item tooltip for more than 2 hands and updating when removing hands
* Add add hand and remove hand command
* Merge conflict fixes
* Remove nullable reference type from ContainerSlot
* Fix texture errors
* Fix error when reaching 0 hands
* Fix error when swapping hands with no hands
* Merged remove hand methods
* Fix item panel texture errors
* Merge conflict fixes
* Fix addhand and removehand command descriptions
* Add properly displaying tooltips for 2 hands
* Make hand indexes and locations consistent across the client and server
* Add dropping held entity if a hand is removed
* Change hand location to be calculated by index
* Made different hand gui updates more consistent
* Remove human body yml testing changes
* Sanitize addhand and removehand commands
* Merge conflict fixes
* Remove testing changes
* Revert body system changes
* Add missing imports
* Remove obsolete hands parameter in yml files
* Fix broken import
* Fix startup error and adding and removing hands on the same tick
* Make hand container id use an uint
In case someone gets more than 2 billion hands
* Rename hand component files
* Make hands state use an array
* Fix client not knowing that the lobby is paused when joining after the pause
Also fixes a client thinking that a lobby is paused when joining a new one after leaving a previously paused one
* Add server announcement to delaying and pausing round start
* Add extendroundstart message to extend lobby start timer
* Rename StartExtend to DelayStart
* Fix delaystart amounts above 59 not working
* Change delaystart seconds type from int to uint
* Change delaystart wrong args amount message
* Add forcegamepreset command
* Rename forcegamepreset to forcepreset and merged start and forcestart preset methods
* Fix index out of bounds exception when forcing suspicion to start
* Change game preset to match regardless of casing
* Add forcepreset unknown preset message
* Add and move in lobby checks
* Remove testing changes
* Change delaystart to pause/resume the timer when no seconds are specified
* Change pause message
* Remove testing code
* Change 0 seconds to not be a valid amount of seconds
* Replace MsgTickerLobbyCountdown Seconds with DateTime instead of uint
* Add one entire dot
* Replace Math.Min + Math.Max with Math.Clamp
Co-authored-by: ComicIronic <comicironic@gmail.com>
Co-authored-by: ComicIronic <comicironic@gmail.com>
Access is now done through a list of access lists, instead of the necessary/sufficient system that was extremely confusing.
Added a "deny" list so you can screw over sec.
Cleaned the API up so it all uses sets and such.
PDA now relays access read-only to fix edge cases.