FireControl.Apply now switches on the frozen shot.Fuse: a null fuse keeps 12.3's lane path (ApplyDirectHit), a proximity fuse detonates at arrival with no roll, and a contact or delayed fuse detonates only on a committed hit (ApplyBlastHit), locating P through Lane and the new Reach owner (moved verbatim from Apply's own inline penetration clip; the delayed fuse point reads the identical rule). Step has no damage branch left. Detonate (FireControl.cs) is the one owner of blast damage: candidates by centre-plus-half-diagonal, exact circle/cell overlap shares computed once, every blast's shield decided live per Q12-9 = A (including the host of a contact/delayed blast -- Commit now gates its own shield decision on shot.Fuse == null), armour absorbed per cell, and each item's covered cells pooled into one ItemAbsorb call. Entity.Absorb and FireControl.Splash are deleted; Entity gains ToSchematicPoint/ToWorldPoint for the point conversion Detonate and the delayed fuse point need. Mine.Explode now calls Detonate. Existing Splash/Absorb-era tests across Cut4/5/6/11/123 are rewritten or retargeted to the new public owners; behavioural coverage for the blast model itself lands separately. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
792 B
C#
18 lines
792 B
C#
using UnityEngine;
|
|
using CultMath.UnityBridge;
|
|
|
|
// Cut 4 (docs/fire-control-cut.md): Hit, Splash, SendHit and SendSplash are deleted -- their last callers
|
|
// (ConstantLaser, ConstantLightning, ConstantParticleWeapon, HitscanEffect, Mine) are gone too (see those
|
|
// files and FireControl.Detonate, 12.4(b)'s renamed Splash). Nothing decides or applies damage through a Unity
|
|
// collider any more (R8):
|
|
// this component is now purely a physics surface for ship-on-ship collision impulse and Mine's own proximity
|
|
// arming query (Q7), neither of which is hit detection.
|
|
public class HullCollider : MonoBehaviour
|
|
{
|
|
public Entity Entity { get; set; }
|
|
|
|
private void OnCollisionEnter(Collision other)
|
|
{
|
|
Entity.Velocity += other.impulse.ToCultMath().xz / Time.deltaTime;
|
|
}
|
|
}
|