using Unity.Entities; namespace ProjectM.Simulation { /// /// Server-only lit-fuse marker on an EXPLOSIVE clutter barrel (BlightClutter.Variant==3) that has been /// popped: the pop sites zero the barrel's replicated Remaining (the client's unambiguous fuse cue — /// a still-alive barrel with Remaining==0 can only mean "about to blow"; a room-teardown despawn still /// carries Remaining>0, so the client's boom-vs-puff choice at despawn cannot misfire) and add this /// component instead of destroying. HazardExplosionSystem detonates when /// elapses: radius damage to LIVING enemies AND players (friendly fire = the bait mechanic), then the /// single DestroyEntity. Never replicated; the fuse rides the RoomTag'd barrel, so room teardown / the /// Staging sweep clean lit barrels for free (no orphaned-event lifecycle). /// public struct BarrelFuse : IComponentData { /// Server tick the barrel detonates (via TickUtil.NonZero — 0 never means "ready"). public uint ExplodeTick; } }