* Fix superSlippery and stepTrigger values persist
- made values in SpillTileReaction's public so we can query the
prototype
- made the default values for slippery component and
StepTriggerComponent based on default constants
for easier resetting
- added a calculation and check in UpdateSlips to check
if a super slip is present as well as Update
relevant steptrigger and slip values based on the contents of the
solution
* The worlds biggest change
---------
Co-authored-by: Myra <vascreeper@yahoo.com>
* Fix AutoDrain
Per the system comments, AutoDrain is designed to automatically move
puddles into the drain (like a floor drain). Drains without AutoDrain
are still supposed to gradually empty the buffer, but not remove puddles
(like sinks and toilets).
However, a logic error in the original implementation causes drains with
AutoDrain set to false to simply not work. Hence sinks never emptied.
* Update documentation
* Add Firebots
Had to add OnActivateInWorld to the spray system to get the bot to work. Checks for the flammable component and if the onFire boolean is true.
* Make SpraySystem actually use useDelay
got rid of that TODO
* Added firebot speech
Fire detected!
* Optimise drains
If it's still a problem then we do what I did for rmc14 and just dump all the active drains onto a job to getentitiesinrange in parallel.
* Fixes
* Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem
* guap
* More fixes
* Wait you can do that?
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* Added the ability for blood to track DNA using ReagentData; Forensic Scanner now accounts for solution DNA, non-DNA holders have "Unknown DNA"
* Removes touch DNA for puddles, adds DNA to vomit
* DNA now leaves traces in containers and those marked without don't show DNA on scan (except for puddles), gibbed parts have DNA
* Fix stupid metamorphic glass bug grrr
* Removed SpillableComponent since DnaSubstanceTraceComponent is used instead
* Removes data field from maps, adds DNA tracking for some missed items
* Give default value, fix missing values.
* Fixes recipe bug
* Review changes
* Make the Data list into a nullable type
* Revert map changes
* Move gibbed unknown DNA to forensicssystem
* Oh the possibilities
* Merge fixes
* Forgot to remote LavaSystem oops
* Changed EntityEffectArgs to EntityEffectBaseArgs and EntityEffectReagentArgs
* Throw exception for unimplemented effectargs
* Remove Json and overrideable datafields
* Fix test issues
* Actually fix the compiling issue
* Fix comments and remove EntityEffectArgs (no longer used, replaced with EntityEffectBaseArgs)
* BlockSolutionAccessComponent now only blocks one specified solution.
* Significant overhaul
Separated spilling when worn functionality into its own component/system.
Removed BlockSolutionAccessComponent.
Added an event for solution access.
* Upgraded UseDelay to support multiple delays per entity
* Implement secondary delay for bibles.
Also some improvements to make it work nicely.
* Documentation is good
* Reserve the previous change; now Storage uses the special ID and Bible uses the default.
* .0
* Added VV support to UseDelayInfo
* Serialize better
* No register, just setlength
* Added ClothingGotEquipped/ClothingGotUnequipped events
* Better version
* Implemented in a few places
* More implementations
* Add ClothingDidEquipped/ClothingDidUnequipped events
* move SolutionTransfer to shared and predict as much as possible
* fully move OpenableSystem to shared now that SolutionTransfer is
* fix imports for everything
* doc for solution transfer system
* trolling
* add scoopable system
* make ash and foam scoopable
* untroll
* untroll real
* make clickable it work
* troll
* the scooping room
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Merge BreakOnWeightlessMove and BreakOnMove. Provide different theshold for weightless movement.
* Adjust WeightlessMovementThresholds. Put a thing I forgot to put in the doafterargs.
* Make DoAfterArgs only use OnMove to determine whether to check for
movement and MoveThreshold to determine the threshold regardless of
weightlessness. Gave DistanceThreshold a default value which will always
be checked now.
* Fix issue introduced by merge.
* Use interaction system for determining whether a distance is within range
* Fix incorrect doafter args introduced by previous merge.
Forgor to commit these.
* Exorcise ghost.
The execution system should have been deleted when I merged previously.
For a reason I cannot comprehend it came back, but only the execution
system.
* Exorcise ghost Pt. 2
* Allow for movement check to be overriden in zero g and adjust doafter args where needed.
You can now override checking for movement in zero g with the BreakOnWeightlessMove bool. By default it will check.
The following doafters were made to ignore the movement check in zero g:
- Healing yourself with healing items,
- Removing embedded projectiles,
- Using tools like welders and crowbars
* Adjust distance for cuffing/uncuffing to work. Make injections not break on weightless movement.
* Fix evil incorrect and uneeded comments
* Raise `StationPostInitEvent` broadcast
* Basic variation pass handling
* standardize names + rule entities
* why does it work like that?
* add to defaults
* light break variation pass
* ent spawn entry
* move some stationevent utility functions to gamerule + add one for finding random tile on specified station
* forgot how statistics works
* powered light variation pass is good now
* station tile count function
* public method to ensure all solutions (for procedural use before mapinit)
* move gamerulesystem utility funcs to partial
* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit
* trash & puddle variation passes!
* oh yeah
* ehh lets live a little
* std
* utility for game rule check based on comp
* entprotoid the trash spawner oops
* generalize trash variation
* use added instead of started for secret rule
* random cleanup
* generic replacement variation system
* Wall rusting variation rule
* account for modifying while enumerating
* use localaabb
* fix test
* minor tweaks
* reinforced wall replacer + puddletweaker
* Optimise the puddle system to reach an equilibrium quickly.
* Remove use of Linq
Try to be more efficient with Tuples
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Initial prediction
* new group handling
* groups for all examines that use multiple rn
* compile
* why was it doing this??
* handle newlines with sorting properly
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class
* Switches over to the Solutions.Solution Solution
* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions
* Switches over to the Containers.XYZ namespace
* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods
* Start using SolutionSystem for Solution manipulation
* EnumerateSolutions
* Move TryGetMixableSolution
* Move EnsureSolution to Server
* Create Solution Entities
* Stop using obsolete solution system methods
* Fix prototype component tests
* Add using ..Audio.Systems; back
* Wrap solution container slots in ContainerSlots
* Actually add the slot to the solution container map
* Dirty SolutionContainerComponent when ensuring solutions
* Revert namespace changes
* Remerge SolutionSystem and SolutionContainerSystem
* SolutionContainerManagerComponent refactor
* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release
* Readd examine reagent sorting
* Fix errors
* Poke tests
* Fix solution names not being applied
* Fix WoolyComponent including statement
* Fix merge skew
* Fix compile errors
* Make reactions use solntities
* Reindent solution class namespace
* Field attribute changes
* AutoGenerateComponentState for SolutionContainerComponent
* SolutionContainerComponent -> ContainedSolutionComponent
* ref ReactionAttemptEvent
* Denetwork preinit solutions
* Misc 1
* Nullable TryGetSolution out vars
* Cache associated solutions
* Fix merge skew
* Use explicit regions in SharedSolutionContainerSystem.Capabilities
* Add debug assert
* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent
* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName
* SolutionComponent doc comments
* Implicit DataField names and property purge
* ReagentEffect DataField names
* Local variables for readability
* Sort using statements + Entity<T> event handlers
* Fix compile erros
* Fix compile errors
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* blue blood now requires copper instead of iron to cure bloodloss
* arachnid species now needs copper to cure bloodloss and copper pills added to medkits.
* fix puddlesystem proto
* remove the cool
* no longer uses hastag, instead uses custom heart organ and hasorgan.
* fix
* soap reagent and soapy water
* make soapy water recognizable
* Fix tile cleaning bug
CleanDecalsReaction was able to take more than the reactVolume it was given.
* make soapy water an evaporating reagent
* Tile reactions when mopping
* Fix indescribably soap flavor
* Adjust soap flavours
Soap and soapy water now taste clean and syndie soap tastes like punishment.
* Better soap numbers & DeleteOnSolutionEmpty
* Changed TrashOnEmpty to TrashOnSolutionEmpty
* Last TrashOnSolutionEmpty change
* Fix merged code not compiling
* Requested changes.