Reworked damage absorption logic to apply before vanilla HP reduction:
Shield now temporarily buffers HP by the absorbed amount and spends Eitr up-front, so the vanilla damage application results in the correct final HP in a single pass.
This removes the need for a secondary “forced kill” hit and prevents duplicate damage numbers.
Fixed
Removed visible “huge damage” (e.g. 999999 / 1,000,000) on deaths caused by the shield system.
Greatly reduced/avoided false kill-feed triggers in PvP kill-feed mods (e.g. PvP Tweaks) that react to HP hitting 0 during the damage event, since HP no longer dips to 0 when Eitr should save the player.
Kept /die command behavior vanilla: shield never absorbs /die damage in any mode.
0.3.18
Added/Changed
Initial attempt of “no second hit” architecture using pre-buffering approach.
Began removing next-frame kill invocation and artificial hit values.
Fixed
Improved stability around lethal scenarios by relying less on post-damage HP restoration and more on single-pass outcomes.
0.3.17
Changed
Improved death attribution for kill-feed mods by prioritizing a real Damage(HitData) path (with attacker info) before fallback death invocation, to preserve “last attacker” tracking.
0.3.16
Fixed
Corrected regression introduced by HP clamping (HP not allowed to hit 0 during shield processing):
Added explicit “clamp happened” tracking so lethal-hit detection remained accurate even when HP was forced to stay above 0.
Improved consistency of lethal damage handling so players can die properly when HP + Eitr < incomingDamage.
0.3.15
Fixed
Addressed immortality edge cases where lethal hits were incorrectly survived.
Added safeguards around lethal damage application:
Ensured lethal outcomes invoke death correctly (instead of leaving player at 1 HP permanently).
Ensured players respawn with proper base HP instead of staying stuck at 1 HP after death/respawn in some cases.
Reduced false kill reports from mods that detect “HP hits 0” by preventing HP from briefly dropping to 0 during shield math.
0.3.14 (baseline reference)
Working Eitr shield absorption with optional “recharge” behavior:
Shield activates when Eitr reaches its current max.
Shield deactivates when Eitr is drained to ~0 and only reactivates after full recharge.