* [ADD] changes to be able to identify living downed players
* [FIX] format of tryGetComponent, fixed string
* [CHANGE] PR mind component suggestions
* [CHANGE] trycomp based on qa feedback
* [CHANGE] Condensed mindcomponent as per feedback
Co-authored-by: fishfish458 <fishfish458>
* Adds Administration verb category and AHelp verb.
For more convenient adminin'.
* abbreviate verb category to Admin
* Add explosion verb to admin category
* lord save me
* UI/ChatBox: Use the new `defStyle` param for `RenderMarkup`
The previous iteration didn't work because `AddMessage` can't inherit
its color from the PushColor (since we're not doing actual tag stacks
anymore).
* rebase touchup
* Disable check
* vehicle test
* Make PAI stop instrument when turning off (player leaves/ejected)
* Give pAI an instrument component with a custom soundfont
* Add pAI synth program to custom ss14 soundfont
* Add new PAIMidi action that pAIs use to open their instruments
* Changed instrument component to allow its player to be the actor of its parent item
* Oops. Readds instrumentcomponent.
* ECS Changes
* Changed soundfont to ringtone
* Revert "Disable check"
This reverts commit 86001d8b5e94ee38d0c9504cb19826327b04fb16.
* Remove action parameters from ghost placeholder
* Revert "vehicle test"
This reverts commit 8a8ecf41083e0d5c8d4363ff02981bdab04bcd1c.
* Fixes to whitespace
* Even more fixes to whitespace
* Removed paiSynth sample from spacestation14.sf2
* Yet another indentation touchup
* Revert "Remove atmos archiving."
This reverts commit 7fa10bd17b.
* Explosive Depressurization now brings tiles down to TCMB.
* Tiles now specify heat capacity.
* Do not serialize archived gas mixture values.
* Remove bad idea
* dumb typo
* Space gas mixtures now have a harcoded heat capacity.
This is a bit of a hack, but rooms exposed to space now cool down properly when monstermos is disabled.
Huge thanks to @LemonInTheDark for helping me with this!
* Clean up heat capacity methods
* Better logging based on the original monstermos' logging
* Comment explosive depressurization hack better
* Completely refactor how job spawning works
* Remove remains of old system.
* Squash the final bug, cleanup.
* Attempt to fix tests
* Adjusts packed's round-start crew roster, re-enables a bunch of old roles.
Also adds the Central Command Official as a proper role.
* pretty up ui
* refactor StationSystem into the correct folder & namespace.
* remove a log, make sure the lobby gets updated if a new map is spontaneously added.
* re-add accidentally removed log
* We do a little logging
* we do a little resolving
* we do a little documenting
* Renamed OverflowJob to FallbackOverflowJob
Allows stations to configure their own roundstart overflow job list.
* narrator: it did not compile
* oops
* support having no overflow jobs
* filescope for consistency
* small fixes
* Bumps a few role counts for Packed, namely engis
* log moment
* E
* Update Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Update Content.Server/Maps/GameMapPrototype.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* factored job logic, cleanup.
* e
* Address reviews
* Remove the concept of a "default" grid.
It has no future in our new multi-station world
* why was clickable using that in the first place
* fix bad evil bug that almost slipped through
also adds chemist
* rms obsolete things from chemist
* Adds a sanity fallback
* address reviews
* adds ability to set name
* fuck
* cleanup joingame
* Sending a mob out of a disposals unit shouldn't push them into a wall anymore.
* Something something resolves vs. OnRemove fighting it out
* Disposals yeet reduction: Address reviews and other oddities
* Refactor slip dropping to use throwing
* Update Content.Server/Fluids/EntitySystems/SpillableSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Uncringe
* Update Content.Server/Fluids/EntitySystems/SpillableSystem.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Transfer most Instrument UI logic to a new component, ActivatableUIComponent
* Move more ActivatableUIComponent stuff to ECS
* ActivatableUI component ignore on client
* ActivatableUI: Get rid of component interfaces where possible
* Add in adminOnly attribute for activatable UIs
This is so that porting #4926 to this will be easier
* Transition Solar Control Computer to ActivatableUI
* Move communications console to ActivatableUI
* Move cargo console to ActivatableUI
* Move ID card console to ActivatableUI
* ActivatableUI: Make things more amiable to entity tests adding components weirdly
* ActivatableUI: Use handling or lack thereof of events properly
* ActivatableUI: component dependency issue resolution stuffs
* ActivatableUISystem: Fix#5258
* More fixes because master did stuffo
* Check for HandDeselectedEvent again because otherwise active-hand check doesn't work
* Move just a bit more code into the system, introduce a workaround for #5258
* Purge the player status detection stuff
* Oh and some obsolete stuff too
* Add a way to disable voting for maximum authoritarianism
* Allow disabling specific vote types via cvars
* Migrate standard-vote-to-cvar dictionary to being static
* add sprite and basic entity, no reagent or testing
* actually implement epinephrine and add it to the box
* allow creating it
* add it to nanomed
* fig
* Add admin logging, models, migrations
* Add logging damage changes
* Add Log admin flag, LogFilter, Logs admin menu tab, message
Refactor admin logging API
* Change admin log get method names
* Fix the name again
* Minute amount of reorganization
* Reset Postgres db snapshot
* Reset Sqlite db snapshot
* Make AdminLog have a composite primary key of round, id
* Minute cleanup
* Change admin system to do a type check instead of index check
* Make admin logs use C# 10 interpolated string handlers
* Implement UI on its own window
Custom controls
Searching
Add admin log converters
* Implement limits into the query
* Change logs to be put into an OutputPanel instead for text wrapping
* Add log <-> player m2m relationship back
* UI improvements, make text wrap, add separators
* Remove entity prefix from damaged log
* Add explicit m2m model, fix any players filter
* Add debug command to test bulk adding logs
* Admin logs now just kinda go
* Add histogram for database update time
* Make admin log system update run every 5 seconds
* Add a cap to the log queue and a metric for how many times it has been reached
* Add metric for logs sent in a round
* Make cvars out of admin logs queue send delay and cap
* Merge fixes
* Reset some changes
* Add test for adding and getting a single log
* Add tests for bulk adding logs
* Add test for querying logs
* Add CallerArgumentExpression to LogStringHandler methods and test
* Improve UI, fix SQLite, add searching by round
* Add entities to admin logs
* Move distinct after orderby
* Add migrations
* ef core eat my ass
* Add cvar for client logs batch size
* Sort logs from newest to oldest by default
* Merge fixes
* Reorganize tests and add one for date ordering
* Add note to log types to not change their numeric values
* Add impacts to logs, better UI filtering
* Make log add callable from shared for convenience
* Get current round id directly from game ticker
* Revert namespace change for DamageableSystem
* Food and Utensil to ECS, Made utensil less restrictive, no more soup eating with a knife...
* AltVerb "can eat" check
* removed HasFlag calls
* AltActionVerb -> InteractionVerb
* "required utensil" filed
* pass 1
* a little more reagent effect for breakfast
* move lots of stuff around
* implements all medicines
* implement all cleaning & elements
* implement toxins/pyrotechnic
* p
* linter fixies
* fixes + narcotic balancing
* fix and standardize
* reviews
* things
* Makes map vote and roundstart smart about player count.
No more Saltern with 30 players, or Knight Ship with 50.
* a typo
* Address reviews.
* Localized.
* Make fires do less damage
* Severely nerf fires and severely buff temperature protection
* fuck it, i'll nerf it so hard and we can buff it later if we decide
* new scaling func
* fix
* unused
* reviews + balance metabolism heat + reduce atmos air temp transfer efficiency
* little more balance
* just a wee bit more
* slight adjustment
* Rewrite solar panel update scheduling
* Use predicate to filter out non-anchored entities from solar raytrace
* Remove unused dependency
* Cache physics system
Co-authored-by: Tomeno <tomeno@lulzsec.co.uk>
* Ghost roles now get new Minds
* Some round start/end button stuff
* Mind tracking for better round end reports
* Make traitor kill objectives use mind CharacterName rather than actual occupied entity ("kill brain" prevention)
* Transition over to EntityUid for mind stuff because that's the only way to do it
* BrainSystem fix for PR rebase
* Doors no longer permanently glow orange + logic tweak
* Fix server-side order of operations for deny animation timer
* Delay between deny >= deny length to allow animation to reset
* Fix airlock assets to use the correct deny animation name
Co-authored-by: T <tomeno@lulzsec.co.uk>
* Convert StomachBehavior to a component/system + rejig body namespaces
* test
* slightly more namespace changes
* remove
* Hello?????
* fuck you github test runner
* reviews
* oobsy!
Co-authored-by: E F R <602406+Efruit@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: ike709 <ike709@github.com>
* Soft player cap that lets in only admins.
* Update Content.Server/Connection/ConnectionManager.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Update Content.Server/Connection/ConnectionManager.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* basic system + convert all plantmetabolism
* stragglers
* convert all old metabolisms over
* fix YAML errors + dumb serialization issue
* remove unused thingy
* reimplement
* add organ type condition
* organtype condition but real
* cleanups + test fix
* metabolismtype -> metabolizertype
* solution resilience
* fixes
* serializer + use entityuid + hashset
* this is apparently an entirely different thing
* turns out it just works
* oops
* Remove IHandsComponent and ISharedHandsComponent
* Copy the documentation from the interfaces
* Revert "Copy the documentation from the interfaces"
This reverts commit 7638a2d4817743d487c7b255ba3e56add77dca86.
* Perform a minute amount of cleanup
* Pulling: Piano door stuck prevention (pulling angle-snap) and getting rid of a condition causing oddities with pull-to-location
* Pulling: Implement Newton's Third Law in regards to puller/pullee physics
Weightless condition was determined not to be necessary
* Fix pull-to-position on actively rotating/moving grids + fixes for rebase
* Add test pooling
* WIP test pooling changes
* Fix Destructible tests
* Don't pool unpooled or dummy ticker instances
* Change ServerPathfindingDebugSystem to replace existing entries
* Fix SaveLoadSaveTest comment
* Don't pool StartTest
* Comment out global setup
* Fix puddle tests
* Move SolarPanelComponent initialize to PowerSolarSystem OnMapInit
* Update RobustToolbox
* Finish fixing tests, make test threads background threads
* Bring back pooling
* Fix nullable
* Update RobustToolbox
* Set cvars on server return
* Un-pool tests with custom cvars
* Update RobustToolbox
* Update RobustToolbox
* Change where the main tile coordinates are
* Remove DisposalUnitTest grid check
* Fix test pooling being a fickle bitch
* Fix EntitySystemExtensionsTest
* Update RobustToolbox
* Update RobustToolbox
* Make nullable pool settings true
* Update RobustToolbox
* Wait other way around
* We are unitystation now
* Update RobustToolbox
* Create global setup
* Pool some more tests
* Fix not properly disconnecting clients before restarting the round
* Give more info on ran tests
* Standardize default test cvars
* Update RobustToolbox
* Update RobustToolbox
* Pool clients
* Fix test order issue
* Fix cvars in character creation test not being set properly
* Update RobustToolbox
* Update RobustToolbox
* Rider shut
* Update RobustToolbox
* Format tests ran better
* Update RobustToolbox
* Reset RobustToolbox
* Reset RobustToolbox harder
* Fix one instance of test order causing destructible tests to fail
* Stop pAIs from being able to wipe each other/do other odd things they shouldn't
* pAI: device changes name to indicate owner
* Make PAIComponent networked (just in case)
It'll be needed in future anyway
* Add pinpointer sprites
* Start working on pinpointer
* Updated pinpointer
* Working on visuals
* Working on a pinpointer and eye rotation
* Add client/server pinpointers systems
* Minor cleanup
* Add distance support
* Add nuke tag
* Remove redundant flag and add pinpointer to caps locker
* Disable rotation of pinpointer
* Fixed distance
Co-authored-by: Alexander Evgrashin <evgrashin.adl@gmail.com>
* basics & visuals
* pneumatic cannon works perf
* loc + popups
* gas tank does stuff + queue changes
* updates
* b
* forcefeeding
* inhand
* crafting!
* pie cannon now is a pneumatic cannon
* oopy
* fix for entman + verbs
* pie
* change for tools
* actual
* combat mode + better sounds
* reviews
* door drawdepth toggle
* git mv
* dooooors
* drawdepth adjustments
* fix door and missed projectiles
* firelock depth tweak
* Get sprite only when needed
* single letter typo
* forgot to include closing in _activeDoors.
* Make humans move based on their last grid's angle
* Fix ghost movement, fix weightless grid parenting
* Make sure to init the last grid angle without needing to move
* Adds a UI for gas filters
* Address reviews
* Update Content.Client/Atmos/UI/GasFilterBoundUserInterface.cs
* Update Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs
* Fix build
Co-authored-by: ike709 <ike709@github.com>
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
The latter is very useful for any special machine cleanup that needs to happen when a machine is deconstructed.
The former will be useful for so many things!
* AMEPartComponent: Switch to ToolSystem.HasQuality because this bugs me.
* Multitool can read power when you examine a cable with the multitool held.
* Multitool power reading: Condense storage information
* power-sensing multitool: Fix ToolSystem ref.
* Power-reading multitools: Fix misuse of GetComponent
* Move entity solution entity systems to shared
* Move SolutionComponents to Server
* Fix namespaces
* Remove Networked Component.
* Fixes
* Add components to ignore list
* drain all batteries / drain battery command for saner eventing
* Reverts the part of the previous commit where drainallbatteries skips items, despite my better judgement
* setbatterypercent now takes the place of battery drainage commands
A more forall-oriented approach
* Uplink menu has icons now
* Add item icons
* Add few descriptions
* Better withdraw window
* Finished with withdraw window
* Refactored withdraw ui and fix some bugs
* Basic withdraw
* Quick fixes
* Removed uplink listing for TCs
* Move slider to separate control
* Final touches
* A bit more
* Not again...
* Fixed names
* Address review
* Fixed robust
* Non necessary check
* Some sanity checks on disposals movement, fix the interpolator
* Technically fix disposal routing, but I'm not done here yet
* Remove disposals reliance on implicit direction sensing entirely.
* XAML verb menu
* fix ghost FOV
* spacing
* rename missed "ContextMenu"->"EntityMenu" instances
* move visibility checks to verb system
* update comment
* Remove CanSeeContainerCheck
* use ScrollContainer measure option
* MaxWidth / texxt line wrapping
* verb category default
Now when you click on a verb category, it should default to running the first member of that category.
This makes it much more convenient to eject/insert when there is only a single option
* only apply style to first verb category entry
* Use new visibility flags
* FoV -> Fov
* Revert "only apply style to first verb category entry"
This reverts commit 9a6a17dba600e3ae0421caed59fcab145c260c99.
* make all entity menu visibility checks clientside
* Fix empty unbuckle category
* fix merge
* Brrrr ECS
* Create lit on powered system
* Light bulb ECS
* Finishing porting to ECS
* Minor touches
* Removed events
* Removed old comments
* Fixed test
* To popup system
- Completely rewrited the `ConstructionComponent` logic to be ECS, *without* looking too much at the original implementation.
- The original implementation was dirty and unmaintainable, whereas this new implementation is much cleaner, well-organized and maintainable. I've made sure to leave many comments around, explaining what everything does.
- Construction now has a framework for handling events other than `InteractUsing`.
- This means that you can now have CGL steps for things other than inserting items, using tools...
- Construction no longer uses `async` everywhere for `DoAfter`s. Instead it uses events.
- Construction event handling occurs in the `ConstructionSystem` update tick, instead of on event handlers.
- This ensures we can delete/modify entities without worrying about "collection modified while enumerating" exceptions.
- This also means the construction update tick is where all the fun happens, meaning it'll show up on our metrics and give us an idea of how expensive it is/how much tick time is spent in construction.
- `IGraphCondition` and `IGraphAction` have been refactored to take in `EntityUid`, `IEntityManager`, and to not be async.
- Removes nested steps, as they made maintainability significantly worse, and nothing used them yet.
- This fixes#4892 and fixes#4857
Please note, this leaves many things unchanged, as my idea is to split this into multiple PRs. Some unchanged things:
- Initial construction code is the same. In the future, it'll probably use dummy entities.
- Client-side guided steps are the same. In the future, the server will generate the guided steps and send them to clients as needed, caching these in both the server and client to save cycles and bandwidth.
- No new construction graph steps... Yet! 👀
* Rotate DefaultGrid on round start
Not ideal long-term but good for bugspotting short-term.
* Fix buckle test
Because gridtraversal was being triggered the pos was being fucked when moving back
* Fix buckle
* Buckle offset
Adds a "sturdy" tile flag, that in the future could be used by construction/etc to figure out if it's safe to build on a tile. (For example water isn't space, but it's not a sturdy building surface!)
* Remove WireNet node group from cables
Implement extension cable components and system
Remove connection over distance logic from ApcPower... components
* Add extension cable components to prototypes
* Implement ApcNetwork
Implement ApcNetSwitch
* Fix ignoredComponents.cs
* Add friend attribute to new components
* Add construction graph for a light switch
* Address reviews
* Fix broken test
* Move ConnectionType enum to DeviceNetworkComponent
Change netId data definition to use the ConnectionType enum values
Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
* ForAll command!
Implements "Bad Query Language", which has a few specifiers you can use for badminning, namely:
named <regex>
prototyped <prototype name>
with <component name>
tagged <tag name>
parented_to <parent entity uid>
For example: forall prototyped MobHuman parented_to 855 do explode $WX $WY 1 1 1 1; addcomp $ID Item
* oops
* fix a silent parsing bug, make parser louder.
* cleanup
* rename shit