Piercing damage now ignores an amount of protection equal to the piercing damage value.
Crushing damage now does poise damage equal to the amount of mitigated damage.
When poise damage is dealt while in a poise state, poise damage is instead converted to damage.
Damage from a given individual or group only counts towards a kill for 10 minutes since that individual or group's last damage to the entity - after this period their damage contribution is removed. This avoids the list of damage contributors growing excessively large for an entity that does a lot of combat but never dies.
EXP sharing within groups is unchanged - the difference is simply that the input to this calculation may be less than 100% of the base EXP reward for the kill if other individuals or groups contributed damage.
calc_z_limit doesn't use an Opyion anymore, construct_spacial_grid also doesn't check for beams or shockwaves, collider_other in apply_pushback is also required now and resolve_e2e_pushback also doesn't use Options anymore.
- Rename Collider::get_radius to bounding_radius
- Check origin difference in CapsulePrism with EPSILON * 10.0 instead of
magic 0.00001
- Add comments for closest_points, hardnened expression against NaNs
- Add comments to try_e2e_collision function, renamed to
resolve_e2e_collision, make it return whether collision was triggered.
- Remove Collider::Box (it is Cylinder, which is subset of CapsulePrism
with p0=p1=Vec2::zero())
- Make cylinder-like capsules prisms work without NaN in origin offsets.
Just return p0 as both origins instead of getting NaN by further
normalizing required because of how we rotate offsets.
- Fix pushback direction.
Make sure that pushback is calculated as our_pos - their_pos (and not
other way around).
- Fix colliding boundary detection.
Calculate center as Vec3::new(0, 0, height) and
not as `Vec3::new(0, height, 0)`.
+ Add some hopefully helpful comments
+ Extract colliding tries to separate function
+ Move to Capsule + Cylinder collider combination instead of Capsule +
Capsule.