Fixed some more missed softcrit cases #1008

Merged
EchoOfNothing merged 9 commits from QuillTheCreature/Byrd:entities/crewmon/softcritfix into master 2026-10-11 11:23:25 +00:00
Member

Short description

This PR fixes a couple softcrit related issues where things haven't been upgraded form checking MobState.Critical to MobState.SoftCritical:

  • Crew (and command) monitors showing bad values.
    The monitor hasn't been updated to work with soft crits, so the damage threshold was calculated incorrectly and was set way too high, resulting in the monitor showing "Poor" instead of "Crit".
    This PR adjusts the damage threshold calculation to first check for soft crit and if that doesn't check then it falls back to normal crit values.
    (Yes I'm also aware that when a creature just fell into critical the monitor still shows "Bad" until they get a couple more damage points. This is the same in upstream.)

  • BSOs trackers didn't notify the BSO if someone goes from alive to soft critical.

  • Auto Injectors did not trigger when going from alive to soft critical.

  • Berserker implant now prevents the user from going into soft critical while it is active.

  • Changeling statis now uses soft critical as critical time value.

  • Jumpstart heart now uses soft critical and critical checks.

  • Sprinting system stops sprinting when going into soft crits.

Why we need to add this

Bugfix

Media (Video/Screenshots)

image
image
image

image

Checklist

Ingame Changelog

🆑 Quill

  • fix: Crew and Command monitor now show crews health states properly.
  • fix: BSO tracker now properly notifies about command members who are in soft critical state.
  • fix: Clothing Autoinjectors now properly trigger when the wearer goes into soft critical state.
  • fix: Berserker Implant now properly prevents the user from going into soft critical while it is active.
  • fix: Changling statis now counts it's stasis time based on soft critical.
  • fix: Jumpstart heart now checks for soft critical as well.
  • fix: Sprinting stops when going into soft critical.
<!-- Link definitions, do not edit --> [guidelines]: https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html [ruleset]: https://rules.byrdstation.space/#h.vigrxrnffwji ## Short description This PR fixes a couple softcrit related issues where things haven't been upgraded form checking `MobState.Critical` to `MobState.SoftCritical`: * Crew (and command) monitors showing bad values. The monitor hasn't been updated to work with soft crits, so the damage threshold was calculated incorrectly and was set way too high, resulting in the monitor showing "Poor" instead of "Crit". This PR adjusts the damage threshold calculation to first check for soft crit and if that doesn't check then it falls back to normal crit values. (Yes I'm also aware that when a creature just fell into critical the monitor still shows "Bad" until they get a couple more damage points. This is the same in upstream.) * BSOs trackers didn't notify the BSO if someone goes from alive to soft critical. * Auto Injectors did not trigger when going from alive to soft critical. * Berserker implant now prevents the user from going into soft critical while it is active. * Changeling statis now uses soft critical as critical time value. * Jumpstart heart now uses soft critical and critical checks. * Sprinting system stops sprinting when going into soft crits. ## Why we need to add this Bugfix ## Media (Video/Screenshots) ![image](/attachments/1e1b834e-154f-4e91-9805-214beb26958d) ![image](/attachments/37567315-c090-4f72-b471-7f9d44f8bdd2) ![image](/attachments/c5e98d7f-a295-430d-81fb-69ae73edfc48) ![image](/attachments/d59eadad-dd4a-48ed-b0cc-41cf00cbc218) ## Checklist <!-- Check boxes for faster reviewing of your PR --> - [x] I do not require assistance to complete the PR. - [x] I have verified that the changes work before posting/requesting review of my PR. - [x] I have added screenshots/videos of the changes, or this PR does not change in-game mechanics. - [x] I have read the [Pull Request and Changelog Guidelines][guidelines] and [Byrd Station's Contributor Ruleset][ruleset]. ### Ingame Changelog :cl: Quill - fix: Crew and Command monitor now show crews health states properly. - fix: BSO tracker now properly notifies about command members who are in soft critical state. - fix: Clothing Autoinjectors now properly trigger when the wearer goes into soft critical state. - fix: Berserker Implant now properly prevents the user from going into soft critical while it is active. - fix: Changling statis now counts it's stasis time based on soft critical. - fix: Jumpstart heart now checks for soft critical as well. - fix: Sprinting stops when going into soft critical.
Fixed crew monitors not calculating critical state properly for creatures with soft crit
Some checks failed
Close PRs on master / run (pull_request_target) Has been skipped
Labels: PR / labeler (pull_request_target) Successful in 5s
Labels: Size / size-label (pull_request_target) Failing after 4s
CRLF Check / CRLF Check (pull_request) Successful in 36s
Test Packaging / Test Packaging (pull_request) Successful in 13m24s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 46s
RSI Validator / Validate RSIs (pull_request) Successful in 45s
Map file schema validator / YAML map schema validator (pull_request) Successful in 5m27s
YAML Linter / YAML Linter (pull_request) Successful in 5m24s
0c8310670d
Fixed bso relayed death rattle system not checking for soft crits
Some checks failed
Labels: PR / labeler (pull_request_target) Failing after 10s
Labels: Size / size-label (pull_request_target) Successful in 52s
CRLF Check / CRLF Check (pull_request) Successful in 37s
Test Packaging / Test Packaging (pull_request) Successful in 13m57s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 49s
RSI Validator / Validate RSIs (pull_request) Successful in 45s
Map file schema validator / YAML map schema validator (pull_request) Successful in 5m32s
YAML Linter / YAML Linter (pull_request) Successful in 5m22s
6af1fd2336
QuillTheCreature changed title from Fixed crew monitors not calculating critical state properly for creatures with soft crit to Fixed some more missed softcrit cases 2026-10-10 15:26:25 +00:00
Clothing auto injectors now properly handle soft critical
Some checks failed
Labels: PR / labeler (pull_request_target) Has been cancelled
Labels: Size / size-label (pull_request_target) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
967d4e1bd3
QuillTheCreature force-pushed entities/crewmon/softcritfix from 967d4e1bd3
Some checks failed
Labels: PR / labeler (pull_request_target) Has been cancelled
Labels: Size / size-label (pull_request_target) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
to 3b609a41c2
Some checks failed
Labels: PR / labeler (pull_request_target) Has been cancelled
Labels: Size / size-label (pull_request_target) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
2026-10-10 15:29:09 +00:00
Compare
Berserker implant handles soft critical now
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 7s
Labels: Size / size-label (pull_request_target) Successful in 3s
CRLF Check / CRLF Check (pull_request) Successful in 35s
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
Test Packaging / Test Packaging (pull_request) Has been cancelled
01a289674b
Fixed changling stasis time now using soft critical
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 6s
Labels: Size / size-label (pull_request_target) Successful in 4s
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
96c72fa250
QuillTheCreature force-pushed entities/crewmon/softcritfix from 96c72fa250
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 6s
Labels: Size / size-label (pull_request_target) Successful in 4s
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
to feb932c82e
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 4s
Labels: Size / size-label (pull_request_target) Successful in 3s
CRLF Check / CRLF Check (pull_request) Successful in 34s
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
Test Packaging / Test Packaging (pull_request) Has been cancelled
2026-10-10 16:25:20 +00:00
Compare
Fixed jumpstart heart not triggering because of soft critical check in inject on mob state
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 7s
Labels: Size / size-label (pull_request_target) Successful in 3s
CRLF Check / CRLF Check (pull_request) Successful in 35s
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
Test Packaging / Test Packaging (pull_request) Has been cancelled
c0f5eb835a
Stop sprinting when going into soft crits
All checks were successful
Labels: PR / labeler (pull_request_target) Successful in 4s
Labels: Size / size-label (pull_request_target) Successful in 3s
CRLF Check / CRLF Check (pull_request) Successful in 39s
Test Packaging / Test Packaging (pull_request) Successful in 14m2s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 41s
RSI Validator / Validate RSIs (pull_request) Successful in 45s
Map file schema validator / YAML map schema validator (pull_request) Successful in 5m42s
YAML Linter / YAML Linter (pull_request) Successful in 5m3s
91d48a596c
Fixed heretic nightwatcher ash ability to work with soft and hard critical targets
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 5s
Labels: Size / size-label (pull_request_target) Successful in 3s
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
268833fb3c
QuillTheCreature force-pushed entities/crewmon/softcritfix from 268833fb3c
Some checks failed
Labels: PR / labeler (pull_request_target) Successful in 5s
Labels: Size / size-label (pull_request_target) Successful in 3s
Test Packaging / Test Packaging (pull_request) Has been cancelled
RGA schema validator / YAML RGA schema validator (pull_request) Has been cancelled
RSI Validator / Validate RSIs (pull_request) Has been cancelled
Map file schema validator / YAML map schema validator (pull_request) Has been cancelled
YAML Linter / YAML Linter (pull_request) Has been cancelled
CRLF Check / CRLF Check (pull_request) Has been cancelled
to 91d48a596c
All checks were successful
Labels: PR / labeler (pull_request_target) Successful in 4s
Labels: Size / size-label (pull_request_target) Successful in 3s
CRLF Check / CRLF Check (pull_request) Successful in 39s
Test Packaging / Test Packaging (pull_request) Successful in 14m2s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 41s
RSI Validator / Validate RSIs (pull_request) Successful in 45s
Map file schema validator / YAML map schema validator (pull_request) Successful in 5m42s
YAML Linter / YAML Linter (pull_request) Successful in 5m3s
2026-10-10 17:12:12 +00:00
Compare
@ -71,3 +71,3 @@
private void OnInject(EntityUid uid, ClothingAutoInjectComponent comp, InventoryRelayedEvent<ClothingAutoInjectRelayedEvent> args)
{
if (args.Args.NewState != MobState.Critical
if (args.Args.NewState != MobState.Critical && args.Args.NewState != MobState.SoftCritical // Byrd - Soft critical
Owner

This (and other places) doesn't inject on change to HardCritical on purpose or?

This (and other places) doesn't inject on change to `HardCritical` on purpose or?
Author
Member

Oh I was under the impression that a mob always goes through all states doesn't matter how much damage they receive.

So it'd always go from alive -> soft -> hard -> dead.

But I just tested it and got from alive -> dead via the gib stick so I'll update all of those to also take hard crit into account.

Oh I was under the impression that a mob always goes through all states doesn't matter how much damage they receive. So it'd always go from alive -> soft -> hard -> dead. But I just tested it and got from alive -> dead via the gib stick so I'll update all of those to also take hard crit into account.
QuillTheCreature marked this conversation as resolved
Include checks for hard crit in all of those too
All checks were successful
Labels: PR / labeler (pull_request_target) Successful in 45s
Labels: Size / size-label (pull_request_target) Successful in 3s
CRLF Check / CRLF Check (pull_request) Successful in 33s
Test Packaging / Test Packaging (pull_request) Successful in 13m53s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 45s
RSI Validator / Validate RSIs (pull_request) Successful in 42s
PR Changelogs / changelog (pull_request_target) Successful in 1m9s
Map file schema validator / YAML map schema validator (pull_request) Successful in 5m21s
YAML Linter / YAML Linter (pull_request) Successful in 4m50s
7658d895cc
EchoOfNothing left a comment

LGTM. Thank you for your contribution!

LGTM. Thank you for your contribution!
byrdbot referenced this pull request from a commit 2026-10-11 11:24:36 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Byrd-Station/Byrd!1008
No description provided.