using Unity.Entities;
namespace ProjectM.Simulation
{
///
/// SERVER-ONLY homing reel on a Husk hit by a Reel-flagged (HookPull) projectile — the Harpooner's signature
/// verb. A sibling of / (NOT a [GhostField]: the
/// reeled position replicates via the stock LocalTransform variant, so it adds no replicated surface). Unlike
/// the frozen-Dir pull flag, this HOMES: ReelSystem re-aims the Husk's
/// toward the caster's CURRENT position every server tick until the target is within release range or
/// elapses — EnemyAISystem stays the SOLE Position writer (it drives the
/// re-aimed knockback; ReelSystem only writes the Dir/Speed/UntilTick). Baked inert on Husk variants
/// (EnemyAuthoring). Stores the caster's (not an Entity) so ReelSystem
/// resolves the live caster position via a per-tick player-by-NetworkId gather. Ticks via
/// ; compared with only.
///
public struct ReelState : IComponentData
{
/// NetworkId of the reeling caster; ReelSystem homes toward this player's live position.
public int CasterNetworkId;
/// Reel pull speed (world units/sec) written into KnockbackState.Speed each tick.
public float Speed;
/// Raw tick the reel leash ends (NonZero). 0 = not reeling; active while .IsNewerThan(serverTick).
public uint ExpireTick;
}
}