* Offbrand medical
* what if we regrade
* zombies are mostly there thats it thats a wrap xd
* here's changeling
* some bonus gut punches
* start working on the guidebook
* fix rsi and yaml lints
* my agrichem so fits
* we stay rejuvenated
* my china so laked
* debrute
* fix suicide
* fix the suicide tests
* my surgery so requires laying down
* the guidebook continues
* READ KEB PAGES
* keb vascular recoupler
* read keb medicine
* fix yaml lint
* fix the EntityRemoveConstructionGraphStep
* fix overlay init
* scalpels are not a food tool
* return of the programmer art
* my line so nieuw
* boxes deserve veins too
* mrrrp yaml
* what if we redid brain damage alerts
* bloot pressure
* kill mannitol drowsiness
* get licensed
* my read so me
* get feedbacked nerd
* fine-tune the heart stoppage conditions
* cryostasis adjustments, guidebook adjustments, fix negative strain issues
* my surgery so table
* fix heart surgery and guidebook
* medicine & defibrillator pass
* iv bags and stands
* prefills
* janet gets very sidetracked
* mostly finished iv stuff
* what if we fixed the guidebook
* halve decapoid cryostasis
* my medicines so IV
* finetune cryostasis
* less logspam
* metabolism-aware iv stands and cryopods
* give people painkillers
* yaml lint real
* fix blood build
* finish rebase
* tidy up localization
* clean up my yaml beasties...
* soft curve after exceeding maximum damage
* husks/bonedeaths
Grabbag of Offmed fixes & improvements (#3461)
* CPR moment
* Mob AI fix
* Fix brain oxygenation not updating on regeneration
* sorry gamers you cannot resist the pull
* Troll combat abilities more in softcrit
praying rn (#3467)
dont have CPR be 50% (#3468)
Make offbrand murder easier to contend with (#3473)
* e
* disrupt people in softcrit when attacking them
* ok gamers we're gaming
* forgor
Hopefully final pass before Offbrand merge (#3475)
First pass of Offbrand adjustments (#3477)
Swap blood pressure values in health analyzer (#3476)
Systolic over diastolic
Co-authored-by: Kip <32859367+kipdotnet@users.noreply.github.com>
Offbrand pass 2: Mostly bugfixes (#3480)
Fix zeds causing PVS reloads (#3482)
Offbrand pass 3: I hate surgery I hate surgery I hate surgery I (#3481)
* set up surgery ui
* test fail real
Pain/braingasps (#3487)
Offmed bundle 5 - the evil one (#3489)
* Evil cavity surgery
* les borgues
* nicotine moment
* epinephrine RNG
* legalese
* test fail real
* ok jamers cope with c4
Pass 6
* Enable whitelisting specific DNM prototypes per map
* Enable whitelisting directories
* Rename fields
* Use a HashSet instead of an array
* Add check for unused whitelist entries
* Remove whitelisting for meta (warden's rubber stamp was removed)
* Add glob support courtesy of @IProduceWidgets
* Update xmldoc
* Fix usages of TryIndex()
Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)
This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)
This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.
Fixes#39115
Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.
* fix tests
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Add altInteract option to interaction test helper methods
* Add water cooler interaction test
* Oops, that's not a NetEntity
* Is.Not.Empty
* SPlayer
* Assert.Multiple
* Document parameters
* Make yaml gas serialization cleaner
* fix exception
* fix validation code
* rudimentary test & permissive loading
* change it a bit
* Test fixes and adjustments
This PR adds delta-pressure damage. In short, airtight structures can now take damage proportional to the difference in pressures between the sides of the structure.
* Init Commit
* Typos
* Commit 2
* Save Interaction Test Mob from failing
* ssss
* Confident I've gotten all the correct prototypes
* Whoops forgot to edit those
* aaaaa
* Better solution
* Test fail fixes
* Yaml fix
* THE FINAL TEST FIX
* Final fix(?)
* whoops
* Added a WeightlessnessChangedEvent
* Check out this diff
* Wait I'm dumb
* Final optimization and don't duplicate code
* Death to IsWeightless
* File scoped namespaces
* REVIEW
* Fix test fails
* FIX TEST FAILS REAL
* A
* Commit of doom
* borgar
* We don't need to specify on map init apparently
* Fuck it
* LOAD BEARING COMMENT
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Improve and expand `TakeRoleAndReturn` to fail on bug #38292
* fix#38292 and expanded test cases
* use validated EntProtoIds for tests
remove unusued using declarations
* use const strings that match the TestPrototypes
* refactor: move puddle evaporation + absorbents to shared
* refactor: move SolutionRegeneration to shared
* refactor: make AbsorbentSystem visuals clientside
* style: general formatting/cleanup on touched files
- Few logical simplifications
- Add field for hard-coded sparkle effect ent
- Switch stuff to Entity<T>
No actual prediction fixes in this commit (though in
retrospect I should've done this commit last).
* fix: use predicted variants for predicted code
* fix: average out evaporation rates in mixtures
* refactor: move SolutionPurge to shared
* style: Basic SolutionPurgeComponent field cleanup
* fix: general prediction + timing + networking fixes
- Moves client side visuals back to shared because other
players exist
- Don't accumulate CurTime in Purge/RegenerationSystem
- Network the next update field in Purge/RegenerationSystem to
deal with UI mispredictions???
* fix: add udder bug workaround
Not needed for SolutionPurgeSystem which doesn't resolve
solutions (probably fine that SolutionPurgeSystem doesn't
cache since it's much rarer, though it probably should), and
likely not needed for AbsorbentSystem since it only resolves
against puddles which, I don't think can be in containers.
* fix: don't divide by zero for evaporation speed = 0.
* refactor: revert evaporation changes
Will cherry-pick these out in another PR.
Also reverting the evaporation speed bugfix since it's easier
to revert all at once. :)
* fix: component cleanup; autopause fields, use ProtoID
* fix: remove unused AbsorbentComponentState
* fix: ProtoId is not string
* refactor: move PuddleSystem.UpdateAppearance to shared
* style: general PuddleSystem.UpdateAppearance tweaks
- Switch to Entity<T>
- Use ProtoIds
- Minor simplifications
* fix: add udderly silly PVS workaround
* cleanup
* fix
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Convert string literals to protoids in Content.Tests
* Convert string literals to protoids or consts in Content.IntegrationTests
* Fix linter failures
Tricksy static using misled me
* checkpoint
* pt 2
* pt... i forgot
* pt 4
* patch
* More test fixes
* optimization!!!
* the REAL hand system
* fix RetractableItemActionSystem.cs oversight
* the review
* test
* remove test usage of body prototype
* Update Content.IntegrationTests/Tests/Interaction/InteractionTest.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* hellcode
* hellcode 2
* Minor cleanup
* test
* Chasing the last of the bugs
* changes
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* Add interaction test for retractable arm blade
* Update for HandsSystem refactor
* Revert "Update for HandsSystem refactor"
This reverts commit e01bb9a7e318dd916240d57b30f48af9594bff1f.
* Combine WaitAssertion blocks