* 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
* 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>
* 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
* 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.
* Replace obsolete whitelist is valid with whitelist system
* Consistency
* Fix logic
* Bork
* I figured out how to get whitelists on the client lol
* test fail
* woops
* HELP ME FUNCTIONS
* Fix errors
* simplify
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Make anomaly, artifact and gifts events announcement sound optional
* Requested changes + Added new "GameRuleAfterAddedEvent" for StationEventSystem
We need to call "Add" in "StationEventSystem" after others GameRule's in case if we need to change StationEventComponent variables.
* Fix margins
* Makes use of GameRuleComponent.Delay and remove station system handling of delays plus small cleanup
* Fix merge
---------
Co-authored-by: AJCM <AJCM@tutanota.com>
* Change BanExemption command to AdminFlags.Ban permissions
* Change LOOC to check for Moderator permission
* Change ListVerbs from Admin to Debug AdminFlags
* Change RunVerbAs from Admin to Fun AdminFlags
* More permission changes
* Change GhostKick to Moderator perm
* Clean up command perms
* fuck
---------
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
* Adds option to disable character names in chat/speechbubbles
* Moved the coloring of names to clientside
* Move string functions to SharedChatSystem to avoid duplicate code in SpeechBubble.cs
* Changed to be put under Accessibility section
* Cache CVar
* Implemented electricity speech verb masking
* Handle speech verb override elsewhere in the system, even though we're not using it
* Fix that protoId business
* No nullable component fields
* Use ProtoId, and try going back to a nullable.
Specifiy DataFields on VoiceMaskComponent.
A few bugs have popped up where (legal) string formatting tags
have been duplicated out into whisper and local.
Using the RemoveMarkup static we can sanitize attempted
speech to remove markup.
* Borgs can speak while crit, also radio bug fix
* Revert "Borgs can speak while crit, also radio bug fix"
This reverts commit e1136ad781229cf5fc3cadcf70742168fc73d961.
* Borgs can speak in crit + radio bug fix
* Tied to a new generic component on SpeechComponent
* Ignoring Speech Block via Component uses an event!
* Remove debug logs and bypass if already true
* added more slang to the sanitization manager
* idk why this file is here
* Added new sanitization accent
* No longer is an acccent, instead is a dictionary
* Reverted back to a system similar to before, added the new netspeak from the dictionary
* Added some new words to the chat san
* Added (wdym --> what do you mean) to the chatsan
* merge conflict
* removed boolvalue
* remove space
* Upcoming
* Added MF and ETC to chatsan :))
* upcoming
* added FYI and WYD to speech-chatsan.ftl
* Made the chatsan accent string a const string with [ValidatePrototypeId<AccentPrototype>]
* forgot the ';' :(((
* fixed error throw [AccentPrototype] --> [ReplacementAccentPrototype]