Skip to content
This repository has been archived by the owner on Jan 5, 2024. It is now read-only.

Add a settings flag to reenable MOSRotating objects absorbing particles when set toDelete #492

Open
traunts opened this issue Mar 19, 2023 · 1 comment
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@traunts
Copy link
Collaborator

traunts commented Mar 19, 2023

Requires merge of #480.

Followup to #480, relating to this TODO

The old behaviour of MOSRotating objects was to consume all atom collisions through MOSRotating::CollideAtPoint(), regardless of whether or not those collisions would be enough to destroy it (ie: set toDelete) via impulse/gib would limits.

New behaviour introduced in #480 changes this, where if an object is set toDelete == true then this method will break out and return false, allowing the atom to continue its travel and potentially impact other objects.
This vastly increases the damage done by explosions and other clustered damage sources, as a single attachable no longer shields all particles that interact with it in that frame.

Particles that are colliding and penetrating with a MOSR now omit said penetrations if the MOSR has already been flagged for deletion, often due to gibbing. This (sadly) fixes armor attachables acting as grenade fragment sponges, but makes explosives (and other particle spam devices) more efficient

The suggested resolution is to add a settings flag to optionally disable the new behaviour.

@traunts traunts added enhancement New feature or request good first issue Good for newcomers labels Mar 19, 2023
@Causeless
Copy link

I would suggested we make this a MOSRotating INI property, and not a settings flag, so it can be adjusted per-object. I'm assuming that's what you meant, but if this is a good-first-issue better to be explicit.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants