* Format job requirements as hours and minutes
* Use TimeSpan.ToString for playtime instead of custom method
* wehflicts
---------
Co-authored-by: jmcb <joelsgp@protonmail.com>
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
* Make APC UI work correctly with multiple users
* Check access only on client, when constructing UI
* Do TODO (Thanks, Robust 236.1)
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Avoid rebuilding all buttons on action state change
Allows for drag events to continue when actions change
* Remove excess action buttons
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Fix borg hands showing up in stripping menu
Borgs can't drop their items anyways, and the amount of hands borgs have causes the UI to just bug out.
* Add more checks
* Boom! Emergency access!
* Emergency access sound
* locale
* Updated sounds
* bleh
* Door electrify base
* feat: popups on attempt to activate AI action when wires cut
* refactor: use SharedApcPowerReceiverComponent to check if AI can interact with door
* refactor: added icon and sound for door overcharge
* meta.json should use tabs not spaces
* refactor: extracted sounds for airlock overcharge to static field in system
* refactor: cleanup, ScarKy0 mentions for resources
* refactor: removed unused textures
* feat: now notification is displayed when AI attempting to interact with door which have wire cut
* StationAiWhitelistComponent is properly gating BUI OnMessageAttempt, SharedPowerReceiverSystem.IsPowered is now used to check if device powered
* refactor: use PlayLocal to play electrify sound only for AI player
* refactor: SetBoltsDown now uses TrySetBoltDown, checks for power.
* bolts now check for power using SharedPowerReceiverSystem
* electrify localization and louder electrify sounds
* extracted ShowDeviceNotRespondingPopup, reverted airlocks not opening/closing when ai wire was cut
* refactor: cleanup
* New sprites and fixes
* Copyright
* even more sprite changes
* refactore: cleanup, rename overcharge => electrify
---------
Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* initial commit
* adds astronav cartridge to QM locker
* changes requested in review
* fix merge conflicts
* fixes the statuscontrol disappearing if you eject the cartridge but still have it installed
* fix notificationsenabled on salv pda proto
* fixes lingering statuscontrol on eject while held
---------
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
* Don't add newlines (fixes#32357)
* Improve UI around max paper length (Fixes#32344)
* Display a "fill progress" indicator so users know how close they are to filling it
* Don't allow users to save a paper which went over the limit, to avoid them losing data they want to keep.
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added directory to station maps
* Add null checks to map directory sorting/filtering
* Reworked station map directory to be more readable and responsive
* hide spriteview from health analyzer while inactive
* add out of range indicator if analyzer becomes inactive
* hide out of range icon if there is no patient data
* WantedListCartridge has been added
* WantedListCartridge user interface works
* WantedListCartridge is added as standard in some PDAs
* The CriminalRecordsSystem can now also take into account who created the record
* Added offense history table
* Fix of missing loaderUid for a cartridge without installing the program
* Added personalized information about the target
* The crime history has been finalized
* Added StatusList
* The officer's name has been added to the automatic history
* WantedListCartridge has been added to the HOS locker
* WantedListCartridge has been removed from brigmedic's preset programs
* The StealConditionSystem now takes into account whether a cartridge is inserted or installed
* Added target to thief on WantedListCartridge
* Merge fix
* Removing copypaste
* Fix merge 2
* The sprite of WantedListCartridge has been changed
* Update pda.yml
* Fix scrollbar in the history table
* Upstream localization fix
* `StatusList` has been replaced by `ListContainer` with `TextureRect`
* Margin fix
* Filter Set Outfit menu to exclude loadout sets
* Apply loadouts to job outfits
* Use appropriate species for Urists
* squishy
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Back in the saddle again! <(8o)
* if you like my STYLE you should see my SHEETS ;-)
* stylesheet change works for ItemStatusNotHeld but broken for ItemStatus. Just using xaml for now.
* teehee
* beeg
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* adds coord label beneath iff label
* fixed wrong coordinate system being used
* changes the clamping on the label UI to instead normalise the UI's distance vector from the centre of the screen, fixes corner-hugging
* cleaned up if-statement by moving the calc ahead of it
* fixed clamping, fixed parenting issue, added draw cull on coord label
---------
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
* move component to shared
* add fake systems
* update server explosion system and remove duplicate transform query
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* let FlashArea be called from shared
* untroll
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Set PDA uplink and music default visibility to false
#27376 seems to be the PDA receiving state before first PDA UI open
* Log error on PDA state received before first open
* Fix logging
* Fix error message
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
If an error occurs while loading a replay, it's *supposed* to show a popup "hey do you wanna continue with error tolerance", and it does do this. But because of spaghetti in the replay state code, it also immediately tries to reload the replay without input, as a consequence of trying to reset to the game's default state.
Now the replay load system has a proper game state for "replay load failed", with nice presentation and explicit formatting and 10% less italian cuisine.
* First clumsy implementation of guidebook protodata
* Support for Properties, format strings
* Better null
* Rename file
* Documentation and some cleanup
* Handle errors better
* Added note about client-side components
* A couple of examples
* DataFields
* Use attributes like a sane person
* Outdated doc
* string.Empty
* No IComponent?
* No casting
* Use EntityManager.ComponentFactory
* Use FrozenDictionary
* Cache tagged component fields
* Iterate components and check if they're tagged