* Fix grids and docks being culled from display prematurely
* Fix inconsistent disabling of "Undock" buttons
* Add a radar icon to indicate where the controlling console is
* Tidy up math
Remove lots of sketchy transforms-of-transforms, which should have been
as single matrix multiply. Assign proper names to matrices. Remove some
redundant calculations.
* Feedback
* Fix admin ghosts not being able to see items in pouches or interact with them
* fix
* oops
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
This should be the primary changes for the future-proof "Modern HWID" system implemented into Robust and the auth server.
HWIDs in the database have been given an additional column representing their version, legacy or modern. This is implemented via an EF Core owned entity. By manually setting the column name of the main value column, we can keep DB compatibility and the migration is just adding some type columns.
This new HWID type has to be plumbed through everywhere, resulting in some breaking changes for the DB layer and such.
New bans and player records are placed with the new modern HWID. Old bans are still checked against legacy HWIDs.
Modern HWIDs are presented with a "V2-" prefix to admins, to allow distinguishing them. This is also integrated into the parsing logic for placing new bans.
There's also some code cleanup to reduce copy pasting around the place from my changes.
Requires latest engine to support ImmutableArray<byte> in NetSerializer.
* Borg type switching.
This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.
New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.
These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.
The modules that each borg type starts with:
* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning
Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.
Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.
The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.
Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.
The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.
There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.
* Fix sandbox failure due to collection expression.
* Module tweak
Fix salvage borg modules still having research/lathe recipes
Engie borg has regular tool module, not advanced.
* Fix inventory system breakage
* Fix migrations
Some things were missing
* Guidebook rewordings & review
* MinWidth on confirm selection button
* cant disguise to thing in a container
* copy cigarette visualiser
* prevent aghost throwing an error
* make disguises die in space
* fuck it rewrite it to not use polymorph
* fix action troll
* oop
* add vebr
* add access to the components
* 2/3
* fix
* relay damage from disguise to user
* fix integrity
* :trollface:
* :trollface:
* m
* kill integrity
* fix a bug
* review
* remove them from component
* relay flash effect to the disguise
* fix icon being weird
* change method since multiple systems cant handle same network event
* :trollface:
* actually network Disguise real
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Make ghost roles collapsible
* Save `BodyVisible` state of each `Collapsible` box
* Make ghost role collapsible only when group has more than 1 role
* Make it a little prettier
* Make only ghost role buttons collapsible
* Apply requested changes
* Typo
* Small cleanup
* Store in list, instead of iterating
* Make unique ids more unique
* Move it out of the cycle
* Make _collapsibleBoxes into dictionary and use key instead of Collapsible boxes names
Added TODO. So after the problem will be fixed in `GhostRolesEui`, it should be mirrored and fixed here too.
* Put TODO in GhostRolesEui. I guess Issue must be made for this
* Use HashSet instead of Dictionary as suggested. Invert the HashSet, so being present means it uncollapsed
I decided to invert HashSet to _uncollapsedStates, because players surely will have more collapsed buttons than opened, so we optimise memory usage a little bit.
* Remove extra space from ghost roles window
* Add buttons stretching. Size 3:1
* disable interaction for telegnomes, add access for the components
* make client and server systems extend shared system
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Fix multiplying colors of differing nullabilities (#32991)
* revert the temporary hack
* Make atmos alert computer colors private variables (#32992)
* Add flash reaction effect (#32377)
add flash reaction effect
* Automatic changelog update
* Fix loneop spawnrate by reverting it to not use the shuttle event system. (#32942)
Fix loneop spawnrate by reverting it to not use the custom shuttle event system.
* Automatic changelog update
* add atmosia to devmap (#32460)
change
* bowls now make drinking sounds (#32819)
* Automatic changelog update
* Add health analyzer unrevivability warning (#32636)
* Add health analyzer unrevivability warning
* Remove errornous comment
* Automatic changelog update
* Removed the name "Hujsak" (#32998)
removed hujsak
* fix pie throwing sound not playing (#33017)
* Automatic changelog update
* Fix TestSuicideByHeldItem and TestSuicideByHeldItemSpreadDamage (#33030)
* make ai speak robotically (#33025)
* Automatic changelog update
* Extends the minimum round time for meteor swarm events (#32876)
* adjusted minimum timers in meteorswarms.yml
* Updated timer minimum from 20 to 15 minutes
* Reduced minimum timer to 10 minutes as a result of other meteor changes
---------
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
* Automatic changelog update
* add StartDelay bool to actions (#33026)
* add StartDelay bool to actions
* forgot summary
* Updated an incorrect sprite in the smite menu (#33043)
changed the synth sprite used in the icon for the instrumentify smite out for the more accurate supersynth sprite
* fix lava expeds (#33042)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Automatic changelog update
* Fix separated game screen bumping (#33046)
I don't really understand why RecordedSplitContainer exists but removing it looks identical and fixes the panel bumping occasionally.
* Automatic changelog update
* Fix: Make Plushie Damage Unexaminable (#33061)
Set hidden to true
* fix chameleon projector bot whitelist (#33055)
fix
* Various Vaugely Connected Sprite Updates™: Encryption Keys, Station Map, Brig Timer (#32786)
* various resprites (encryption keys + signal screens + station map)
* brig timer update
* fixes n shit
* Give proto-kinetic crushers, glaives, and daggers better inhands. Update the crusher and glaive icons. (#32212)
* inhands
* better inhands
* indent
* Automatic changelog update
* Make the security belt contain more useful items by default (#32291)
* replace tear gas and flashbang with holobarrier and sec radio
* holobarrier-belt-fix
* revert changes of 32291
* Automatic changelog update
* Add 3 bottle boxes to nanomed plus (#33018)
three bottle boxes in nanomed plus
* Automatic changelog update
* Nukie med bundle now costs 24 tc and contains a unique defibrillator (#32720)
* a-few-injectors
* comment
* defib-ops-when
* Automatic changelog update
* Pill Bottles can only store pills now (#33074)
* no longer absurd
* Update Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Add a spare bible to PietyVend (#32363)
Update chapel.yml
* Automatic changelog update
* [#28722 fix] Add notification for dependent wearables being dropped (#33078)
* add notification for dependent wearables being dropped
* fix dropped item popup redundancy
- did a check to see if any item was dropped, instead of making a notification for each item being dropped.
* change popup to client-only variant
* fix redundant messages, add plural locale string
* fix conventions, fix locale input to be more intuitive
---------
Co-authored-by: Justin <justinbrick1@gmail.com>
* Automatic changelog update
* More pda space (#32601)
* Rebalance the max programs that a PDA can hold
* Give Caps PDA more programs too.
* Make the max programs a static 8
* I forgor sec and med
* CaseCase
* Empty commit to re-run checks
* The final change, I hope.
* Automatic changelog update
* Fixed spelling mistake in water blaster description. (#33087)
Fixed minor spelling mistake
* [#20285 fix] Carp Plush and Rehydratables can now be put into mop bucket (#33079)
* Make shark plush janitor-bucketable
* fix bucketed grey shark texture
* Make sprites less shiny and adapt copyright notice
* Made shark way way less shiny
* Allow carp plush and rehydratables in mop bucket.
* Remove old mop bucket shark sprites
* Fix post-merge bugs
* Fix errors
* Move ReactiveContainer stuff to shared
That should mean it is now predicted.
* Custom eject verb for the mop bucket
* Fixes OnSolutionChange, removes pop-up as there already is one.
* .ftl is not necessary as the custom pop-up was removed
* Review fixes
* Update Content.Shared/Chemistry/Components/ReactiveContainerComponent.cs
* Update Content.Shared/Chemistry/EntitySystems/ReactiveContainerSystem.cs
---------
Co-authored-by: Psychpsyo <psychpsyo@gmail.com>
Co-authored-by: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* remove now duplicated nyano PlushieCarp tag
* Fixes tailthump breaking positional audio by making it mono (#33092)
* Automatic changelog update
* ExaminableDamage now puts its message at the bottom and in color (#32820)
* the examineableDamage component now puts its messages at the bottom, and in color
* god help us if something is priority -100 :godo:
* Automatic changelog update
* Lower in-round votekick requirements (#32953)
Initial commit
* Allow votekicks to be initiated in the lobby (#32528)
Initial commit
* Automatic changelog update
* Fixes bolt lights of previously unpowered bolted doors (#33063)
fix
* Automatic changelog update
* Muffins (#29318)
* Update meta.json
* Add files via upload
* Update misc.yml
* Update meal_recipes.yml
* Update meta.json
* Add files via upload
* Update plate.yml
* Update food_baked_single.yml
* Update dinnerware.yml
* Update cooking.yml
* Update misc.yml
* Add files via upload
* Delete Resources/Textures/Objects/Consumable/Food/Baked/misc.rsi/muffin-cherry.png
* Add files via upload
* Update meta.json
* Update misc.yml
* Update meal_recipes.yml
* Update meta.json
* Fix meta.json
* Fix meta.json again
* Update misc.yml
* Update misc.yml
* Update misc.yml
* Update misc.yml
* Update meta.json
* Update meta.json
* Update misc.yml
* Update meal_recipes.yml
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/misc.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update dinnerware.yml
* Delete cherry
* Add files via upload
* Delete banana
* Add banana
* Delete chocolate
* Add chocolate
* lathe recipe fix
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Automatic changelog update
* Borgs can no longer see mindshield + AI can no longer toggle off seeing job icons (#33069)
* :(
* Removed the sprite + updated RSI
* Automatic changelog update
* Add CanLoad for biomes (#33050)
CPUJob to come later.
* Remove CargoPallet component from the cargo pallet (#33022)
* Change cargo shuttle pallets to catwalks.
* Remove CargoPallet component from the cargo pallet.
* Undo cargo shuttle changes.
* Automatic changelog update
* Minor antagonist guidebook changes (#32824)
* took a two month nap. accidentally pushed too many buttons. let's try this again. added thieves to antagonists.xml
* even after that nap, i don't feel well-rested at all.
* please don't kill me for using webedit
* capitalization, typo
* Apply suggestions from code review (more period moving)
Thanks Evan, very cool
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* guess you could say im not pro-proper noun
* typo
* Update Resources/ServerInfo/Guidebook/Antagonist/Nuclear Operatives.xml
* ok
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Give Nukies a Hand Labeler (#33053)
* Add hand-labeler to nukie planet
* Rearrange nukie chem table
* Fix `ItemSlotSystem` popup Logic (#28856)
* move popup call out of `CanInsert` into `OnInteractUsing`
* im stupid and `reason` is completely unnecessary
Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>
* return early when `itemSlots.Slots.Count == 0`
* tweak logic for triggering popups
* change popup logic again
* Consolidate whitelist check
* Get any popup message not just last failed slot
* Apply suggestions from code review
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* yoink
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
---------
Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Add cvars to votekick to customize requirements for the initiator. (#32490)
* Automatic changelog update
* Add on-call functionality for adminning (#30443)
* Add on-call functionality for adminning
The first time an ahelp gets SOS it gets relayed to the specified channel with the specified ping. Every time after that it doesn't until it gets a non-SOS response received.
* Remove redundant name
Pretty sure this already gets chucked on the name of the msg itself I think it just didn't show in screenshot because they were subsequent.
* Update Content.Server/Administration/Systems/BwoinkSystem.cs
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
---------
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: deathride58 <deathride58@users.noreply.github.com>
* Automatic changelog update
* Pills are explosion resistant (partially reverts #15851) (#32458)
* idk how to revert a pr so I just deleted some lines
* pill destructible with explosion resistance
* comment for explosion resist
* "and" to "but"
---------
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Automatic changelog update
* Hasten handcraft gauze recipe & decrease techfab gauze cost (#32744)
* med lathe gauze price reduction
* gauze craft doafter time
* 3 second doafter craft
* Automatic changelog update
* Service workers antagonist fix. (#31359)
* add
* Revert "add"
This reverts commit 25da34b0fead5812fe5800c9bf5dd7b10ef48d7d.
* antagonism allowed™️
* Automatic changelog update
* Adds a new AME sound effect! (#33097)
* Changes the AME sound effect to not be the default MetalThud.
* Was told on discord to make a minor change to autorerun the tests due to the Build & Test Debug failing!
* Attribution and licensing, as requsted by deathride58
* Fixes the high-pitched squeak audible to some people!
* Audio file tweaked by SlamBamActionMan to eliminate a weird squeak they were still able to hear. Thanks!
* Automatic changelog update
* Allow for the ai's laws to be changed from its core and eye (#32461)
* Allow for the ai's laws to be changed from its core and eye
* Address reviews
* Automatic changelog update
* clean up tools lathe recipes (#31521)
* clean up tools lathe recipes
* add medical and cooking tools
* add result
* add result to others
* review
* engine
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Automatic changelog update
* Intercoms and Radios both pick up proximate speech (#32737)
* Deduping of recent messages should consider the channel it's being sent to
* rerun actions
* Automatic changelog update
* Adds headphones to loadouts (#33067)
added headphones to trinkets
* Automatic changelog update
* Cardboard Box Capacity 4 -> 5 (#32743)
* capacity upgrade
* comment update
* remove our duplicate pill whitelist
* fix
* remove broken crew monitor from dev map, how did it even get there
---------
Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: BramvanZijp <56019239+BramvanZijp@users.noreply.github.com>
Co-authored-by: Ilya246 <57039557+Ilya246@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: Saphire Lattice <lattice@saphi.re>
Co-authored-by: FluffMe <1780586+FluffMe@users.noreply.github.com>
Co-authored-by: Theodore Lukin <66275205+pheenty@users.noreply.github.com>
Co-authored-by: August Sun <45527070+august-sun@users.noreply.github.com>
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Preston Smith <92108534+thetolbean@users.noreply.github.com>
Co-authored-by: Milon <plmilonpl@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: Jarmer123 <148848017+Jarmer123@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Justin <justinbrick1@gmail.com>
Co-authored-by: SpaceLizard <the.justice.league.of.canada@gmail.com>
Co-authored-by: Psychpsyo <psychpsyo@gmail.com>
Co-authored-by: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
Co-authored-by: deathride58 <deathride58@users.noreply.github.com>
Co-authored-by: PopGamer46 <yt1popgamer@gmail.com>
Co-authored-by: RumiTiger <154005209+RumiTiger@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: Minemoder5000 <minemoder50000@gmail.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Brandon Li <48413902+aspiringLich@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: AftrLite <61218133+AftrLite@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Centronias <me@centronias.com>
Co-authored-by: joshepvodka <86210200+joshepvodka@users.noreply.github.com>
Co-authored-by: Scribbles0 <91828755+Scribbles0@users.noreply.github.com>
* sort of works
* fix
* oh right
* admin abuse
* buy/sell events
* price history, better error handling
* joke
* buying and selling
* access handling
* IT'S FINALLY REAL
* fixes
* AAAAAAAAAAAAAAAAA
* i keep fucking forgetting things
* FUCKING
* move company structs out of the comp
* ok im going to sleep
* Revert "oh right"
This reverts commit 8681e5a07b.
* Revert "fix"
This reverts commit 3992ec99fd.
* address reviews
* OMG FINALLY FIXED THIS JANKY SHIT
* oh
* no structure, zero fucks given
* this also
* trolled
* shitcode v2
* FUCK
* what was i even fucking thinking???
* remove unused codeanalysis import
Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
---------
Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
* Atmospheric alerts computer
* Moved components, restricted access to them
* Minor tweaks
* The screen will now turn off when the computer is not powered
* Bug fix
* Adjusted label
* Updated to latest master version
* Initial commit
* Tidy up
* Add firelocks to the nav map
* Add nav map regions to atmos alerts computer
* Added support for multiple region overlay sets per grid
* Fixed issue where console values were not updating correctly
* Fixing merge conflict
* Fixing merge conflicts
* Finished all major features
* Removed station map regions (to be re-added in a separate PR)
* Improved clarity
* Adjusted the color saturation of the regions displayed on the atmos alerts computer
* Change the window titlebar to show the joined server
Requires https://github.com/space-wizards/RobustToolbox/pull/5475/
* Totally not a webedit
* Can you tell what cvar I copied?
* And this kids is why we don't webedit
* Reviews
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* 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
* uncomment and update guidebook
* update loot pool to use entity table and dont hardcode bluespace
* add sacraficing to altars
* :trollface:
* :trollface:
* :trollface:
* 2 lines of sec
* rename files
* replace gamer loot with fake wizard outfit or a normality crystal
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>