Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uncap oxygenation for asystole mobs #34671

Merged
merged 2 commits into from
Jun 17, 2024
Merged

Conversation

Qlonever
Copy link
Contributor

馃啈
tweak: Increased the effectiveness of chest compressions. Manual compressions can actually be more effective than automatic ones now.
/:cl:

Removes the 30% oxygenation cap for asystole mobs.

Reasoning:

  • Asystole is already considered by get_blood_circulation(), and effectively caps oxygenation at 25% without CPR. It shouldn't need to be capped again.

  • The wiki states that manual CPR is more effective than compression from auto-compressors, and their code indicates that this was clearly the intent. However, capping oxygenation at 30% makes this difference completely useless.

  • The removed conditional caused get_blood_oxygenation() to return before taking respiration/dexalin into account, which is probably undesirable.

If necessary I can adjust the circulation granted by CPR and autocompressors, since masterful compressions grant 80-100% circulation, and automatic compressions grant 60% circulation. (Ignoring other factors like blood loss and respiration) Those values seem like they might be too high.

Shouldn't be merged without #34670 or else manual compressions will grant more than 100% circulation half of the time.

Spookerton
Spookerton previously approved these changes Jun 17, 2024
@Spookerton
Copy link
Member

It's worth keeping in mind that manual CPR gets adjusted by skill and is hugely faster than autos, which run every 15 seconds, where manual CPR ranges from 2.1 to 0.9 seconds. I think the rate contributes a lot already to the effective effectiveness 馃檭 of manual.

In terms of effectiveness autocomps are fixed 0.6 and manual ranges from worst 0.3 to best 1.0. Since we certainly don't want 1.0, changing 0.1*pumping_skill to 0.05* gives us 0.3 to 0.65, which seems plenty high to me. Autocomps can go down to 0.5 and run every 10 seconds in trade, just to see how that plays out.

Qlonever and others added 2 commits June 17, 2024 13:15
auto: 0.6 every 15 => 0.5 every 10
manual: 0.3~1.0 every 2.1~0.9 => 0.3~0.65 every 2.1~0.9
@Spookerton
Copy link
Member

As for the actual change itself, I'm inclined to say CPR should still be ineffective if the recipient literally lacks a heart, since is_asystole() did cover that as well. I'll do that later though.

@Spookerton Spookerton merged commit c8dacc9 into Baystation12:dev Jun 17, 2024
11 checks passed
@Qlonever
Copy link
Contributor Author

Qlonever commented Jun 17, 2024

I'm not sure if you'll see this, but:

It's worth keeping in mind that manual CPR gets adjusted by skill and is hugely faster than autos, which run every 15 seconds, where manual CPR ranges from 2.1 to 0.9 seconds. I think the rate contributes a lot already to the effective effectiveness 馃檭 of manual.

get_blood_circulation() only checks for compressions in the last 20 seconds, so any compressions faster than that are equally effective as each other in terms of speed.

As for the actual change itself, I'm inclined to say CPR should still be ineffective if the recipient literally lacks a heart, since is_asystole() did cover that as well. I'll do that later though.

get_blood_circulation() checks for a heart before anything else, and returns 0.25 * blood volume without factoring in compressions if there isn't one. There might be other things covered by is_asystole() to think about though, like heart organ damage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants