* 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>
Oops
In #26217 I re-organized the logic for the calculation. Part of that was moving the logic for GetFeltLowPressure and GetFeltHighPressure to be done before we actually check the hazard thresholds. What I didn't realize is that, with how our pressure protection is set up, these functions can return values so extreme they rebound into the other category.
For example, according to the math, when you're wearing a hardsuit in a low-pressure environment you have "felt" pressure of 1000 kPa. Yeah that's not right.
Now these functions clamp their result to OneAtmosphere, in the appropriate direction (101.3 kPa).
Fixes#26234
The math for our pressure damage (barotrauma) system is directly taken from TG. The constants are the same and the math is almost the same. However there are two errors.
1. Pressure damage started being applied within the WARNING bounds, rather than the HAZARD bounds. This means you started taking low pressure damage at 50 kPa instead of the intended 20 kPa, and also the HUD icon didn't show "danger" like it should even if you were already taking damage.
2. The calculations for high pressure damage were wrong. These are supposed to be linearly scaled, but the function was wrong so the scaling didn't actually work properly (especially when considering the fixed bounds above). This appears to be the case because the function was taken from an incorrect comment in the original source, rather than the real math.
Both of these issues are now fixed to match the TG behavior. Note that this somewhat nerfs pressure damage in non-extreme circumstances. e.g. a room at 40 kPa now gives NO pressure damage, whereas previously it would do full space damage.
The description of the pressure alerts is wrong for "low" severity, but I can't be arsed to fix that right now. Alerts don't have a way to change the description depending on severity...
* Refactors the entirety of the AtmosphereSystem public-facing API to allow for multiple atmos backends.
* actually compiles
* Remove commented out code
* funny bracket
* Move archived moles, temperature from GasMixture to TileAtmosphere.
* WIP customizable map default mixture
still VERY buggy
* broken mess
aaaaaaaaaaaaa
* Fix lattice, etc not being considered space
* visualization for "IsSpace"
* help
* Update Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Holy SHIT it compiles AGAIN
* Fix AtmosDeviceSystem crash at shutdown
* Fix immutable tiles on map blueprints not being fixed by fixgridatmos/revalidate.
* Use space instead of gasmixture immutable for heat capacity calculations
* Remove all LINDA-specific code from GasMixture, move it to TileAtmosphere/AtmosphereSystem instead.
* Fix roundstart tiles not processing
* Update Content.Server/Atmos/Commands/SetTemperatureCommand.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs
Changed Files tab is so large I can't commit both suggestions at once mfw
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Make fires do less damage
* Severely nerf fires and severely buff temperature protection
* fuck it, i'll nerf it so hard and we can buff it later if we decide
* new scaling func
* fix
* unused
* reviews + balance metabolism heat + reduce atmos air temp transfer efficiency
* little more balance
* just a wee bit more
* slight adjustment