* What sitting on code does to a branch + no mo owner v2
* Replacing ViewVariables with AutoNetworkedField + Missed One V2
* Removing Virtual Methods & Renaming ForensicsSystem to SharedForensicsSystem (Also made it abstract) V2
* IProduceWidgets Review Changes & some of my own V2
* Lil Cleanup V2
* Part 1 of Review Changes (Only thing left is the BUI stuff and the constructor) V2
* It now WORKS!!! (Still needs the BUI and constuctor changes, ill figure it out later)
* Test (Removal of ServerSide VomitSystem.cs)
* Ok...
* Moved System BloodstreamSystem.cs to SharedBloodstreamSystem.cs & deleted client BloodStreamSystem.cs to make SharedBloodstreamSystem.cs sealed. (No Unregistered errors)
* Prediction
* Fix?
* No mo log error?
* Revert "No mo log error?"
This reverts commit 50c15a3deab6af9dffd7baed45820bae5558e41f.
* Constructor going up
* No ForensicScannerBoundUserInterface.cs (It doesnt wanna scan anymore but it doesnt crash)
* For Conflicts
* Guh
* Yea
* Organization & no ErrorHell (maybe)
* Dirtying
* Dirtying take 2
* Revert "Dirtying take 2"
This reverts commit 5735012e21f43808db3ae010fce268eac24d0583.
* the dirties dont do much here
* For Conflict
* Readded
* Another Conflict Commit Fix
* Conflict Fix Thrice
* Empty Space
* Keep it simple
* Add it back in
* Move BloodstreamSystem stuff thats causing the error back to system. This'll prob fix the conflict
* Conflict fix?
* Trust the fix
* Looked at other prediction PR's, they had better code.
* To not mix up the system in client
* Removing Conflict
* For conflict
* For the conflic fix, will be removed later
* Scuffed Fix
* Removal & Adding the Decouple
* Took some HEAVY pointers from SirWarocks work. The Roadblock has been CLEARED, DOAFTERS WORK NOW!!
* Cleanup & Optimizing, mostly comps.
* More Optimization, most of this is just imported Warock Code, his QOL included. Did not want to remove SolutionDNA's tho, mostly due to a Log.Debug in OnPrint.
* Forgot that the Print Refreshes, more of Warocks work.
* Removing Loc.GetString
* All of BloodStream to Shared, hopefully no errors.
* Sketchy Dirty Removed
* Removed Timer.Spawn, added FrameUpdate cause anything else only updated when the window opened, & a bit of cleanup.
* No mo Mispredict
* GenerateDnaEvent Predicted
* Forgot the user
* I knew it was real, bloodstutter is REAL and now GONE.
* Cant dirty NewEntityBloodData due to potential stutter, so its safer to put it all back into server. again...
* Clearer
* Thank you leahcat, no more identity leak.
* Routine Maintenance
* sealing the class
* it checks for this now?!
* While im here, FileScope Namespaces & removing unused namespaces
* Update Attribute Type (SirWarock Import), it works and is much easier to read.
* Forever Fixing Conflicts
* Readonly Genocide & Partial Maxing
* LGTM, BloodstreamSystem moved to SharedBloodstreamSystem!
* Sohn
* If OG Github back push this commit
* One Billionth Commit Fix
* Removed client/server stuff
* Made implicit
* NewLine & comment on why AutoGenCompState is true
* Updatin the rest of the Popups to use Entity
* I think that's what they meant? It looks cleaner at least.
* Mass Attribute for LocalEvents that are safe to change.
* Putting it back as abstract
* maybe?
* Guhh, rolling back empty client/server of BloodStream
* Removed Client/Server BloodstreamSystems, changed access modifier from protected to private, & renamed SharedBloodstreamSystem to BloodstreamSystem
* From Protected to Private
* Removed comment & made it explicit on what changed to true
* Guh, hopefully thats all of it...
* Forgot
* Review
* Test Push
* Line 316 in SharedForensicsSystem was causing the errors, better to play it safe
* Review Changes
* Update Content.Shared/Forensics/Events.cs
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
* The only thing SolutionDNAs does is search and clears itself. I see no reason to keep it
* The print.disabled didnt properly disable when cleared. So ill just use the old if check
* Figured out the rest of the SubscribeLocalEvents and networking BloodData cause its fully in Shared
---------
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
* Hope I'm not forgetting anything...
* They call me the sender the way I'm sending it.
* remove commented out YAML
* last of the slop
* fix test fails
* first batch of test fails
* no more test fails
* make cryo pods work again.
* Make cryo work better-er
* I didn't like that a firesuit helmet was so effective on its own so I decided to be a dick about it.
* review.com
* oop
* actually real quick do this
* fix YAML issues
* IHeatContainer my beloved <3
* borger
* not networked :(
* jackets
* burgeewqjfrwjkhaskfjfsahjkfsahjkfsahjkfsajhkfsa
* utter yaml nonsense
* phishing
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Yay
* Do a LOT changes in yml
* and again
* Finale changes
* yml and locale
* locale tweak
* yml and charp cleanup
* fix carpets
* and some-some
* And some
* I want to believe that its last🙏🙏
* 😭
* 😭😭
* clean
* fix
* AAHHAHAHAHAHAH
* fix
* FINAL
* thisguyusa...
* LAST_ONE
* wawa
* merge2
* sdobfjibwdsjaqaksmzxsowaw2edqw84
* aoaoaooaoaao
* this hardcode took 30 minutes of my life
* fix aaaa
* fix test
* FIX BUILD
* oops
* oops
* aaooaoaoa
* fuck
* oops
* refactor: cleanup after merge + use protoId in KitchenSpikeComponent
* refactor: fix butcherable stuff again!~
* fix: now actively checks for EdibleComponent on slicing, predicted items splitting
* fix: changed knife.yaml to use Slicing tool
* fix: no more sounds spam on chop-chop
* refactor: cleanups
* refactor: default time value for slicable
* refactor: whitespaces and extract variables
* fix: slicable no longer prevents InteractUsingEvent by marking handled w/o actually handling
* feat: chopping trees now requires sawing tool, same for slicing logs
* refactor: cleanup after merge
* refactor: fix non-related PR changes
* refactor: rename locid
* refactor: remove unneeded red 'slice' verb name when slicing entities with mob-state.
* refactor: simplify test code changes
* refactor: better readability for test
* refactor: linebreak for unary op
* refactor: xml-doc for SliceableComponent corrected to be more fitting.
* refactor: cleanup SliceableSystem some more
* refactor: use HasComp instead of TryComp in AddSliceVerb
* refactor: extracted methods to improve readability
* refactor: remove unchecked operator - not needed when casting from uint
* refactor: SliceableSystem cleanups, fix logs not being chopped due to solution splitting
* fix: slice verb is now showing up even if disabled, slicing is done even if there is no solution to split, replaced direct dependency for sliceable component to food component with default solution-name
* refactor: comment about RandomPredicted + toy knife now fits into clown shoes
* refactor: remove EdibleComponent dependency from SliceableSystem
* refactor: moved SliceableSystem into ToolRefinableSystem
* refactor: basic renaming for comps
* refactor: cleanup after merge
* refactor: reorder methods, renaming, simplify polymorph related conditions on slicing
* refactor: xml-doc + reorder yaml fields
* refactor: fixing yaml + method renaming, unused usings removed
* refactor: removed unused usings
* refactor: fix typo
* refactor: remove reference for deleted meat proto
* refactor: clean up yaml after merge
* refactor: fix multiple typos from mass replace
* refactor: fix missed field renaming
* refactor: ensure all entities that had ToolRefinable got BaseSlicingRefinable (aftermerge cleanup)
* refactor: undo solution-related changes for animals.yml
* refactor: fix invalid parent set for corgi + fix amount of slices for the rest of pies
* refactor: revert Solution to SolutionContainerManager changes after merge
* refactor: revert Solution to SolutionContainerManager changes after merge
* refactor: fix invalid property name for toolMissingQualityTooltip in yml, fixed missing entity on which AttemptToolRefineEvent is raised
* refactor: remove over-indent for components of BaseSlicingRefinable and for Slicing tool quality
* refactor: remove over-indentation on MobCarpHolo
* empty collection
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: iaada <iaada@users.noreply.github.com>
* initial visual nubody
* oops overlay
* im so pheeming rn
* conversion...
* tests
* comeback of the underwear
* oops eyes
* blabbl
* zeds
* yaml linted
* search and visible count constraints
* reordering
* preserve previously selected markings colors
* fix test
* some ui niceties
* ordering
* make DB changes backwards-compatible/downgrade-friendly
* fix things again
* fix migration
* vulpkanin markings limit increase
* wrapping
* code cleanup and more code cleanup and more code cleanup and more code cleanup and
* fix slop ports
* better sampling API
* make filter work + use the method i made for its intended purpose
* fix test fails real quick
* magic mirror cleanup, remove TODO
* don't 0-init the organ profile data
* remove deltastates
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Nubody
* fix test fails
* gibbing
* lung test returns
* doc comment
* hand organ test
* giblet test
* yaml formatting
* returning
* relocate
* trimming
* re-smite
* oops thusd tweak
* arachnids have slower metabolism i guess
* never mind the old behaviour is bad actually
* rider whyyy
* style changes and allat
* fix collision
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Add CryoPodWindow (placeholder)
* Change HealthAnalyzerWindow: split off reusable HealthAnalyzerControl for cryo pod UI
* Improve CryoPodWindow: add health analyzer
* Improve CryoPodWindow: add eject button
This wasn't requested in the issue but I implemented it as practice with the UI system.
* Rewrote GasAnalyzerWindow, split off reusable gas mix viewer for cryo pod
* Change GasAnalyzerWindow: change back to three columns
With two rows you get a layouting bug when there's a lot of different gases, which looks somewhat bad. I didn't feel like fixing the layouting bug (it's an engine issue) so we're going back to three columns. That way you don't ever get two rows in practice.
* Change GasAnalyzerWindow: simplify by disabling Resizable
I added a lot of complexity to make resizable work nicely with a derived max & min size, but it's not necessary.
* Change GasAnalyzerWindow: file-wide namespace
* Change GasAnalyzerSystem: add GenerateGasMixEntry
* Split HealthAnalyzerUiState from HealthAnalyzerScannedUserMessage
* Rewrote CryoPodWindow, add atmos info
* Improve CryoPodWindow: add loading placeholder
* Improve CryoPodWindow: add internationalization support
* Fix GasAnalyzerControl: add missing translation
* Improve CryoPodWindow: add beaker info, high temperature warning
* Improve CryoPodWindow/System: inject button in window + necessary system changes
* Fix CryoPodWindow: Entering cryopod now closes window
This way you can't heal yourself with a cryopod.
* Change CryoPodWindow: add & update comments
* Change HealthAnalyzerComponent: remove `uiKey` property (no longer necessary)
* Tiny fixes
* Improve CryoPodUiMessage: replace string with enum
* Change GasAnalyzerWindow: simplify Measure code
* Change CryoPodComponent: rename Injecting to InjectionBuffer
* Change CryoPodBUI: tiny code simplification
* Fix HealthAnalyzerComponent: Removed stray import
* Improve CryoPodWindow: Prettier, concise atmos
* Improve CryoPodWindow: Chemicals bar chart
* Improve CryoPodWindow: Add Ruler to reagents
* Change CryoPodWindow: More horizontal layout
* Improve CryoPodWindow: Reduce height jiggling
The health analyzer's height changes a lot, which can be annoying with the buttons (for example when the oxygen damage label is popping in and out)
* Improve CryoPodWindow: Add setup checklist
This is mostly here to fill vertical space in the new horizontal layout.
* Improve CryoPodWindow: Eject beaker button
* Improve CryoPodWindow: Localization
* Improve CryoPodWindow: Add BeakerBarChart
An animated version of the chemicals chart
* Fix CryoPodSystem: Ejecting beaker no longer clears injection buffer
* Improve BeakerBarChart: Not animated on first frame
* Fix CryoPodWindow: Fix broken translation
* Improve CryoPodWindow: Reorder sections
* Fix BeakerBarChart: Tooltips now show up
* Change BeakerBarChart: Reorder functions
* Change CryoPodWindow: Reorder sections, change margins
* Change CryoPodWindow: Edit flavor text
* Revert changes to GasAnalyzerWindow
Since GasAnalyzerControl is no longer used in CryoPodWindow, these changes are no longer relevant to this PR.
* Tidy CryoPodWindow: Remove old workarounds
These are old layouting bug workarounds from the older version of CryoPodWindow that had a ScrollContainer in it. They're no longer necessary. Less ScrollContainers less problems.
* Tidy up: Remove unused imports
* Remove LabelledSplitBar
It was replaced by BeakerBarChart, which is a lot fancier.
* Tidy up: Tiny code style fix
* Change CryoPodSystem: Move code from server to shared
This is still without adding UI prediction
* move a ton of stuff to shared.
* one last thing
* Improve BeakerBarChart: Keep visual entry width when swapping beakers
* Improve BeakerBarChart: Respect beaker order of reagents
* Improve CryoPodWindow: Ensure space for injection buffer
We need to keep space on the chart for the injection buffer after swapping to a full beaker.
* Improve CryoPodWindow: Prettier ejection error
* Improve CryoPodWindow: Add "Cooling patient" status
* BeakerBarChart: Fix UI scale bug
* BeakerBarChart: Fix bluespace beaker ugliness
* BeakerBarChart: Add more pod status strings
* HealthAnalyzerControl: Filewide namespace, sort imports
* Style fix: Replace `bool x = y` with `var x = y`
* CryoPodUiMessage: Split off separate class for inject
* SharedCryoPodSystem: Move message-related code into Subs.BuiEvents
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* merged chemical into bloodstream
* changed injectable to bloodstream
* separated bleeding and direct blood removal
* removed blood gain from protein
* reduced blood gain from saline
* rejuvenating fills to reference volume
* fixed blood regulation
* red mead requires stirring to make
* reverted accidental line deletion
* cleared the skeletons from the closet
* additional routing
* field rename for xeno
* removed mention of chemstream and field rename for asteroid mobs
* minor optimizations
* Revert "reduced blood gain from saline"
This reverts commit de26fd1c0d99f3019fe7dd1451a50230cc90f058.
* Revert "removed blood gain from protein"
This reverts commit 7a1648caf39fe26406db73c2a5afa389b82c612f.
* removed unused component fetch
* dead check mini refactor
* eventized blood exclusion
* quick fix
* Pain
* Commit of doom
* COMMIT
* renamed bloodMaxFactor to MaxVolumeFactor
* addressed floating point error
* returned vomiting chemicals
* blood reagent always skips the flush
* no need to mention blood reagent
* fixed passing blood flush
* adadsafasfasfassfasf
* whoops
* merge fixed injectors
* Revert "adadsafasfasfassfasf"
This reverts commit 0a5313a68dd6484d36d28d08930c76851b72ae38.
* simplify reagent removal
* enabled foreign blood transfusion
* Revert "COMMIT"
This reverts commit 19abd679cd7761ebd47bb242bd644176a3006a42.
* simplified reagent removal when modifying blood level
* removed misleading coment since the changes
* documented MetabolismExclusionEvent
* fixed negative negative modification of blood level
* fixed hypervolemia not normalizing
* constrainted blood modification
* returned bloodpack stop on fully healed
* forgot to stage this
* band aid for diona blood
* swapping GetReagent with GetPrototype
* optimize blood filtering
* multiplicative multi reagent blood level calculation
* removed unused stuff
* optimized blood calculation a tiny bit
* added per reagent blood regulation
* optimized (referenceVolume + bloodReagents) into referenceSolution
* polished coded to proper function
* forgot to stage rootable system change
* clean up, unnecessary GetBloodLevel call
* rename method name to TryAddToBloodstream instead of Chemicals
* placed overfill safety
* cleanup and final touches
* final touch
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Defibs will now also shock anyone still interacting with the target.
* Improvements to test readability
* Apply fixes to other tests
* Refactor the interacting entities query to use an event.
* Include pullers as interacting with the entity they are pulling
* Broadcast event
* Use a constant
* Convert new test to InteractionTest
* Convert existing test
* Add behaviour note
* Revert "Convert existing test"
This reverts commit b8a8f2f68e3733bdb6ec254faf955a42096d47d7.
* Move new test into separate (InteractionTest) test file
* Use ToServer
* Use a constant for prototype id
* Use ToServer
* Add EntProtoId constructor
* Add assertion failure messages
* Manual cleanup of test entities
* Remove obsolete flag
* Add test summaries
* Remove tuple constructor
* Wrap entity deletion in WaitPost
* Extend DoAfter interacting test with an extra mob
* Update DamageableSystem to modern standards
* DamageContainerId -> DamageContainerID with lint flag
* Replace strings with protoids
* Make CVar subscription declarations all consistently whitespaced
* ChangeDamage -> TryChangeDamage, cope with C# jank
* Revert event signature changes
* Restore a comment
* Re-add two queries
* Init the queries
* Use appearanceQuery in DamageChanged
* Use damageableQuery in TryChangeDamage
* Use damageableQuery in SetDamageModifierSetId
* Final cleanup, fix sandboxing
* Rectify ExplosionSystem:::ProcessEntity's call to TryChangeDamage
* Re-organize DamageableSystem
* first big fuck you breaking change.
* THATS A LOT OF DAMAGE!!!
* Fix test fails
* test fixes 2
* push it
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* LOCKED THE FUCK IN
* Forgot this little fella
* Crying
* All entity effects ported, needs cleanup still
* Commit
* HEHEHEHAW
* Shelve for now
* fixe
* Big
* First big chunk of changes
* Big if true
* Commit
* IT BUILDS!!!
* Fix LINTER fails
* Cleanup
* Scale working, cut down on some evil code
* Delete old Entity Effects
* Accidentally breaking shit by fixing bugs
* Fix a bunch of effects not working
* Fix reagent thresholds
* Update damage
* Wait don't change the gas metabolisms A
* Cleanup
* more fixes
* Eh
* Misc fixes and jank
* Remove two things, add bullshit, change condition to inverted
* Remove unused "Shared" system structure
* Namespace fix
* merge conflicts/cleanup
* More fixes
* Guidebook text begins
* Shelve
* Push
* More shit to push
* Fix
* Fix merg conflicts
* BLOOD FOR THE BLOOD GOD!!!
* Mild cleanup and lists
* Fix localization and comments
* Shuffle localization around a bit.
* All done?
* Nearly everything
* Is this the end?
* Whoops forgot to remove that TODO
* Get rid of some warnings for good measure...
* It's done
* Should make those virtual in case we want to override them tbqh...
* Update Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeeds.cs
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
* Fix test fails real
* Add to codeowners
* Documentation to everything
* Forgot to push whoops
* Standardize Condition names
* Fix up metabolism a little as a treat
* review
* add IsServer checks
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
* Predict dumping
- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.
* Fix a bunch of stuff
* nasty merge
* Some reviews
* Some more reviews while I stash
* Fix merge
* Fix merge
* Half of review
* Review
* re(h)f
* lizards
* feexes
* feex
* Include the suit owner’s UID in suit sensor status updates.
* Show a single monitoring entry per crew member
* Rewrite sensor collection using a dictionary
* Various systems warnings cleanup
* Last changes before submitting PR
* Add guard for transform component, fix failing test
* Small corrections
* Audio params to specifiers datafields
* Using audio params on components and configs
* Make UnrevivableComponent shared
- Move UnrevivableComponent to shared
- add reason messages and if the status shows up in a health analyzer
* Update Content.Shared/Traits/Assorted/UnrevivableComponent.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* Make UnrevivableComponent networked
* Update Content.Shared/Traits/Assorted/UnrevivableComponent.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>