* Switched obsolete logger usages to use Sawmill
Fix the majority of obsolete logger usages outside the engine code.
* Fix injection in ChatManager and revert BuildMech changes
* Removed extra manual injection
* Reduced extra static injection and reverted changes to CommandButton as it needs engine changes.
* Removed two more cases of double injection and an extra using
* Reverted changes for Inventory Display
* Moved sawmill setup outside constructor in Table to resolve test failure
* 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
* idk no longer shrugs
* accidentally had this in here!
* this was accidentally in here too!
* fucked up the removal
* fucked it up again this should HOPEFULLY be the last one
turns out it's hard to revert the edit of a file that's just numbers and spaces who woulda thunk?
* Restore SpaceStation14.sln to master
* Restore development.toml
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* 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>
* Properly cache regexes in chat sanitization/accents
Wow I wonder if `new Regex()` has a cost to it *looks at server profile*.
* Avoid lag caused by Tippy command completions
CompletionHelper.PrototypeIDs explicitly says *not* to use it with EntityPrototype. Unsurprisingly, reporting a completion result for every entity prototype in the game is a *bad idea*.
* Add active count metrics to some high-load systems
Mover & NPCs
I suspect the thing that caused the Leviathan round to shit itself on performance is NPC spam in space or something. So let's verify that.
* Enable parallel processing on pow3r again
Originally disabled due to a theory of it causing bugs, it was re-enabled on Vulture, and I'm not aware of it having caused any issues there.
* Replace hashset with bitflags for AtmosMonitor alert types.
Allocating these hashsets was like 20% of the CPU of atmos, somehow.
* Cache HashSet used for space movement collider checks
Turns out this was a ton of server allocations. Huh.
* Component for clothes to suppress scream noise
GaggedComponent + AddGaggedClothingComponent and relevant systems to make them work.
Currently only stifles the scream _action_, not all emotes
because if a mime can silently emote, so can gagged you!
* fix comments
* swap to inventory relay
and make it more general such that specific emotes or emotes of a given category can be blocked
* power gloves shouldn't block snapping
* easy fixes
* blockable emote event
* pr comments, switch to using emote event mostly
* pr comments
add beforeEmoteEvent
add emote blocker name to popup
maybe some other stuff, I forget
* get rid of emoteevent's source because I don't need it anymore
* smol clean
* formatting, style, and one minor thing where having a muzzle in your pocket would gag you
* 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 basic discord client integration with ooc and admin chat support
* Use username instead of global name
WHY IS GLOBAL NAME NOT JUST THE USERNAME??? WHY ARE THERE NO DOC COMMENTS???
* stuff
* Reviews, methinks.
* Reviews
* reviews
* Extracts magic strings from Tag calls
When #36281 gets merged, the `TagSystem` methods will all give warnings. Let's fix those warnings before they even happen!
* Adds missing libraries
* Remove not yet implemented TagSystem changes
* Fix tag spelling error
Genuinely surprised there was only 1!
* Styling and proper type changes
* Styling
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* Rename ChatSanitizationManager to ChatEmoteSanitizationManager
The prior name was kind of confusing as there's a emote one and
then now there's also chat expansion happening in the accent system,
so knowing which I actually need to edit is useful.
So, I just need to keep myself not confused.
* Rename smileyToEmote and remove punctuation duplicates
The name SmileyToEmote is just... Bad.
Plus, I needed to remove the punctuation duplicates as that would
break any kind of regex parsing that I tried.
* Switch to regex from checking end of string
I also changed from System.Globalization to ILocalizationManager.
Writing that regex was definitely an experience.
* Document regex and the manager
* Rename it back
* Simplify regex
The ChatSystem code for re-enabling OOC only ran during PostRound, which gets skipped over when doing restartroundnow. Now it does this on PreRoundLobby too.
* Localize respawn command, allow for it to use userids, and make it use [Dependency] attributes
* Make respawn verb available for offline players
* Make erase available for offline players
A thousand admins rejoice
* Reorder verbs in code
* Add erase command
* Fix localisation for erase command
* Address reviews and add completion to respawn command
* Complete reviews which I forgor
* I should be studying for school but that is sofucking boring, I will pass my class no matter, however getting an A might be a challenge. My gpa is important but is the tourture for 1 point of GPA worth it? The american government says yes but they are responsible for the majority of all genocides that have ever been conducted since the dawn of man
* ugh
* ugh
* melee executions
* fix damage bug
* cleanup
* address reviews hopefully
* resistance bypass mechanic
* component changes
* self executions (not finished yet)
* self execs part two
* ok i fixed things (still not finished)
* finish everything
* review stuff
* nuke if (kind = special)
* more review stuffs
* Make suicide system much less hardcoded and make much more use of events
* Fix a dumb bug I introduced
* self execution popups
* Integration tests
* Why did they even take 0.5 blunt damage?
* More consistent integration tests
* Destructive equals true
* Allow it to dirty-dispose
* IS THIS WHAT YOU WANT?
* FRESH AND CLEAN
* modifier to multiplier
* don't jinx the integration tests
* no file-scoped namespace
* Move the rest of execution to shared, create SuicideGhostEvent
* handled
* Get rid of unused code and add a comment
* ghost before suicide
* stop cat suicides
* popup fix + small suicide change
* make it a bit better
---------
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>