* 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>
* 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
* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.
* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!
* Changing Stunbaton system to include the itemToggle system.
* Adapted changes that have come up in the meantime.
* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.
* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.
* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.
* Removed unnecessary usings.
* Small modification to the stun prod.
* Made the integration test use the new method to turn the welders on.
* Fixed a few testing issues, applied a few changes requested by Delta.
* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.
* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.
* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.
* Renamed variables used to make them less generic.
* Simplified the light update code.
* Fixed the unit test to use the itemToggle system for welders now.
* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.
* Fixed some YML issues.
* Added a client side item toggle system just to make the shared code run on local UID's too.
* Fixed some more Yaml.
* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.
* Made the zippi lighter its own in-hand sprites.
* Added a summary for the activated property in itemtoggle component.
* Fixed a typo in the itemToggle Component.
* Fixed a typo.
* Added to the remarks for the ItemToggleComponent.
* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.
* Fixed a bug I introduced accidentally with the humming sound.
* Removed 2 unnecessary events from the ItemToggleSystem and component.
* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.
* Cleaned up some names and functions getting called.
* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.
* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.
* Fixed a typo. Added some comments.
* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.
* Fixed the namespaces for the server components and whatnot.
* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.
* Added the zippo lighter to the detective's trench coat.
* Removed the default hit sound for the double e-sword since it was unnecessary.
* Changed e-sword damage numbers to be in line with the changes made by Emisse.
* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.
* Typo.
* Fixed a bug where the welder would blind you if you used it while it was off.
* Created a single abstract method called when an item has completed its toggle.
* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Fixed a comment.
* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.
* Removed trailing white spaces.
* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.
* Small fixes.
* Removed ForceToggle, just use the toggle method instead.
* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).
* Used ProtoId in the welder component.
* Made damage NetSerializable as well.
* Added networking and data fields to a couple of components.
* Made component variables autonetworked. Added some comments.
* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.
* Made all the component variables readWrite again.
* Added the component get to the WelderStatus.
* Added a predictable bool to the item toggle component.
* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.
* Added a reflect update raise event.
* Removed the Zippo changes. To add in a later PR.
* Removed the zippo from meta.json too.
* Small fix.
* Another small fix.
* Fixed the wieldable system thing in ItemToggle.
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* fuck
* oh boy
* Sorted every chem into guide groups
* WHY ARE YOU NOT ABSTRACT
* removes the target thing in favor of simply generating everything.
* eee
* Add group for med
* Update wiki JSON generation to use System.Text.Json
* Fix error on shutdown during wiki JSON generation
* First pass at automatic wiki workflow
* Add a temporary workaround while the build is continuing to give errors
* Update workflow to reference correct API url, track dependency.
* Compile wiki actions into one job rather than two
* Update page name to reference editable page
* Add other JSON file and parameterize root page path
* A few steps closer to using `System.Text.Json` to serialize properly
* Revert System.Text.Json and return to Newtonsoft.Json.
* Revert the revert. Return to System.Text.Json.
This reverts commit a5ea98dfdcfab3f605ac4d82d3b110f099324308.
* Add and register UniversalJsonConverter class.
* Narrow triggers for update-wiki GitHub action.
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* wielding kinda works
* rough out all the edges, wielding works nicely
* popups + loc
* increase damage & extra damage against whitelist
* small fixes
* forgot to actually do that
* reviews
* reviews + thing
* use resistances and not extradamageagainstwhitelist
* slashy
* make increasedamageonwield and melee hit events work with modifiersets
* Silly individual
* ECS and damage Data
* Comments and newlines
* Added Comments
* Make TryChangeDamageEvent immutable
* Remove SetAllDamage event
Use public SetAllDamage function instead
* Undo destructible mistakes
That was some shit code.
* Rename DamageData to DamageSpecifier
And misc small edits
misc
* Cache trigger prototypes.
* Renaming destructible classes & functions
* Revert "Cache trigger prototypes."
This reverts commit 86bae15ba6616884dba75f552dfdfbe2d1fb6586.
* Replace prototypes with prototype IDs.
* Split damage.yml into individual files
* move get/handle component state to system
* Update HealthChange doc
* Make godmode call Dirty() on damageable component
* Add Initialize() to fix damage test
* Make non-static
* uncache resistance set prototype and trim DamageableComponentState
* Remove unnecessary Dirty() calls during initialization
* RemoveTryChangeDamageEvent
* revert Dirty()
* Fix MobState relying on DamageableComponent.Dirty()
* Fix DisposalUnit Tests.
These were previously failing, but because the async was not await-ed, this never raised the exception.
After I fixed MobState component, this exception stopped happening and instead the assertions started being tested & failing
* Disposal test 2: electric boogaloo
* Fix typos/mistakes
also add comments and fix spacing.
* Use Uids instead of IEntity
* fix merge
* Comments, a merge issue, and making some damage ignore resistances
* Extend DamageSpecifier and use it for DamageableComponent
* fix master merge
* Fix Disposal unit test. Again.
Snapgrids were removed in master
* Execute Exectute