* Add collision to disposal unit and pipes
Make disposal unit and pipes pullable
Implement proper handling of collisions in disposals
* Implement IsExiting
Move DisposalSystem to shared
* Change SharedDisosalUnitComponent to call manager.ContainsEntity directly
* Update saltern.yml
Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
* Add NPC faction tags
Some stuff isn't easy to represent by the existence of components so tags are intended to provide that functionality for AI usage.
I was 50/50 on having all tags in the 1 component or splitting it into 2. I'm leaning towards 2. This would be for stuff like say "CanMimic" so the mimic knows it's allowed to look like a specific prototype, or something like "smg" on a gun so it can say smg-specific barks for instance (as currently smgs and pistols look the same from a component perspective).
This also means combat behaviors aren't hardcoded per faction, plus it makes it easy to update faction relations during events.
* Factions command
Update faction relationships via commands.
* Remove command TODO
* Woops
Forgot to commit these items
* Serializer writing and parsing
* linq me up fam
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Add test that puts all components on an entity and checks for no exceptions
Also fix all the exceptions that happened because of this
* Add comments to the test
* Fix nullable errors
* Fix more nullable errors
* More nullable error fixes
* Unignore basic actor component
* Fix more nullable errors
* NULLABLE ERROR
* Add string interpolation
* Merge if checks
* Remove redundant pragma warning disable 649
* Address reviews
* Remove null wrappers around TryGetComponent
* Merge conflict fixes
* APC battery component error fix
* Fix power test
* Fix atmos mapgrid usages
* AI pickup changes
Eating and drinking isn't spammed anymore.
AI can do InRangeUnobstructed checks for item pickups.
AI can open drink cans.
AI littering to be coded.
* #nullable enable
* github's nullable fails are actively shortening my lifespan
* Use a const instead
So it's easier to find given the performance implications.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Initial commit
* Climbing uses its own controller now
* Missed a check
* Get rid of hands check
* Cleanup
* Get rid of speciescomponent stuff
* Remove unneeded check, add separate case for moving other players.
* Add DoAfter
* IClientDraggable added to ClimbingComponent
* Added some basic integration tests. Renamed ClimbMode to Climbing.
* oops
* Minor fixes
* ffff
* Table fix
* Revamped system so its more predicted, uses proper logic for de-climbing. Get hype!!!
* Flag check fix
* Distance check and reset numticksblocked
* get rid
* Add art assets for cloning
* Added a 'Scan DNA' button to the medical scanner
* Made the UI update unconditional for the medical scanner until checks for power changes are in place
* Update Medical scanner to reflect powered status and fix#1774
* added a 'scan dna' button the the medical scanner that will add the contained bodies Uid to a list in CloningSystem, fixed an issue with the menu not populating if the scanner starts in an unpowered state
* Add disabling logic to 'Scan DNA' button on medical scanner
* Removed un-used libraries
* changed scan dna button to Scan and Save DNA
* Random events cannot run in lobby and round ending forces events to end.
* Thanks p4merge
* Get rid of unused
* Apply suggestions from code review
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* added a lantern
* Add A Lantern with radiating light
* Added a GasVapor system and made a base for extinguisher spray.
* switched to using solution component for fire extinguisher
* made it so fire extinguisher's can run out of water vapor
* Added actual Gas to Gas Vapor, now getting atmosphere for touched tiles.
* Made it so gasVapor reacts and dissapates on reacting
* GasVapor now dissapates exponentially while traveling
* Added in-hands for fire extinguisher
* Added Spraysound to gasSprayer and to fire extinguisher prototype
* parameterized GasSprayer and GasVapor
* removed un-used imports in gasSprayer and gasVapor components and systems
* removed accidential threading import into gasmixturecomponent
* add a shared extinguisher component for extinguisher spray rotation instead of piggy-backing on RogueArrow
* paremeterized fuelCost and fuel name in GasSprayerComponent
* Paremeterized gasAmount, removed un-used code from gasVaporComponent
* Removed BaseItem Parent from Extinguisher_spray
* added GasVapor and GasSprayer to Ingored Components list
* reduced offset of spawned extinguisher vapor from player
* Update IgnoredComponents.cs
* renamed SharedExtinguisherComponent to SharedGasSprayerComponent and removed reference to RoguePointingArrow
* renamed shareExtinguisherComponent to SharedGasSprayerComponent
* Update Content.Server/Atmos/GasSprayerComponent.cs
Added check for solution component on GasSprayer.
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Server/Atmos/GasSprayerComponent.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* AI sleeping
AI no longer update when dead.
* It was easier to merge master and re-apply it.
* Update AiControllerComponent.cs
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Make IInteractUsing async, make tools use DoAfter.
* Disable warning 1998 in Content.Server
* Update Content.Server/GameObjects/Components/AnchorableComponent.cs
* Things and stuff with grids, unfinished w/ code debug changes.
* Updated submodule and also lost some progress cause I fucked it up xd
* First unfinished draft of the BodySystem. Doesn't compile.
* More changes to make it compile, but still just a framework. Doesn't do anything at the moment.
* Many cleanup changes.
* Revert "Merge branch 'master' of https://github.com/GlassEclipse/space-station-14 into body_system"
This reverts commit ddd4aebbc76cf2a0b7b102f72b93d55a0816c88c, reversing
changes made to 12d0dd752706bdda8879393bd8191a1199a0c978.
* Commit human.yml
* Updated a lot of things to be more classy, more progress overall, etc. etc.
* Latest update with many changes
* Minor changes
* Fixed Travis build bug
* Adds first draft of Body Scanner console, apparently I also forgot to tie Mechanisms into body parts so now a heart just sits in the Torso like a good boy :)
* Commit rest of stuff
* Latest changes
* Latest changes again
* 14 naked cowboys
* Yay!
* Latest changes (probably doesnt compile)
* Surgery!!!!!!!!!~1116y
* Cleaned some stuff up
* More cleanup
* Refactoring of code. Basic surgery path now done.
* Removed readme, has been added to HackMD
* Fixes typo (and thus test errors)
* WIP changes, committing so I can pull latest master changes
* Still working on that god awful merge
* Latest changes
* Latest changes!!
* Beginning of refactor to BoundUserInterface
* Surgery!
* Latest changes - fixes pr change requests and random fixes
* oops
* Fixes bodypart recursion
* Beginning of work on revamping the damage system.
* More latest changes
* Latest changes
* Finished merge
* Commit before removing old healthcode
* Almost done with removing speciescomponent...
* It compiles!!!
* yahoo more work
* Fixes to make it work
* Merge conflict fixes
* Deleting species visualizer was a mistake
* IDE warnings are VERBOTEN
* makes the server not kill itself on startup, some cleanup (#1)
* Namespaces, comments and exception fixes
* Fix conveyor and conveyor switch serialization
SS14 in reactive when
* Move damage, acts and body to shared
Damage cleanup
Comment cleanup
* Rename SpeciesComponent to RotationComponent and cleanup
Damage cleanup
Comment cleanup
* Fix nullable warnings
* Address old reviews
Fix off welder suicide damage type, deathmatch and suspicion
* Fix new test fail with units being able to accept items when unpowered
* Remove RotationComponent, change references to IBodyManagerComponent
* Add a bloodstream to humans
* More cleanups
* Add body conduits, connections, connectors substances and valves
* Revert "Add body conduits, connections, connectors substances and valves"
This reverts commit 9ab0b50e6b15fe98852d7b0836c0cdbf4bd76d20.
* Implement the heart mechanism behavior with the circulatory network
* Added network property to mechanism behaviors
* Changed human organ sprites and added missing ones
* Fix tests
* Add individual body part sprite rendering
* Fix error where dropped mechanisms are not initialized
* Implement client/server body damage
* Make DamageContainer take care of raising events
* Reimplement medical scanner with the new body system
* Improve the medical scanner ui
* Merge conflict fixes
* Fix crash when colliding with something
* Fix microwave suicides and eyes sprite rendering
* Fix nullable reference error
* Fix up surgery client side
* Fix missing using from merge conflict
* Add breathing
*inhale
* Merge conflict fixes
* Fix accumulatedframetime being reset to 0 instead of decreased by the threshold
https://github.com/space-wizards/space-station-14/pull/1617
* Use and add to the new AtmosHelpers
* Fix feet
* Add proper coloring to dropped body parts
* Fix Urist's lungs being too strong
* Merge conflict fixes
* Merge conflict fixes
* Merge conflict fixes
Co-authored-by: GlassEclipse <tsymall5@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* 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>
* Server EntitySystem cleanup
I went after low-hanging fruit systems.
* Add / change to internal access modifiers to systems
* Use EntityQuery to get components instead
* Add sealed modifier to systems
* Remove unused imports
* Add jetbrains annotation for unused classes
* Removed some pragmas for dependencies
This should also fix a decent chunk of the server build warnings, at least the ones that matter.
* Also disposals
* Update Content.Server/GameObjects/EntitySystems/GravitySystem.cs
* Fix build
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* AI preset curves and expandable optimisation
Added preset curves for considerations to use just to avoid repeating the same variables all over the shop.
Moved common considerations for expanded actions onto the expandable action e.g. you need a free hand to be able to PickUpGloves so we'll just check it the once rather than for each action.
* FIX PRAGMA
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* -Started Gas Analyzer
-TemperatureHelpers
* Formatting
* Adds PopupTooltip to NotifyManager
* Revert Tooltip fuckery
* Gas Analyzer gives proper error messages
* Localization
* Added a very wip gas analyzer ui
* UI works, doesn't look good but hey
* Safety checks
* Fancy WIP gas mix bar
* Gas Color
* Gas Amount shows only 2 decimal places
* -Made bar full width
-Moved gas list into a table
-Some gas bar things
* IDropped something
* Description
* -Percentage
-Padding
* ItemStatus
* -Proper Danger Warnings
-Added Warning danger state
* Pressure unit
Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
* do_after
Ports (most of) do_after from SS13.
Callers are expected to await the DoAfter task from the DoAfterSystem.
I had a dummy component for in-game testing which I removed for the PR so nothing in game uses do_after at the moment.
Currently only the movement cancellation is predicted client-side.
* Minor do_after doc cleanup
* do_the_shuffle
Fix nullable build errors.
* The last nullable
* Implement NeedHand
Thanks zum.
* nullable dereference
* Adjust the system query
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>