22 lines
1.1 KiB
C#
22 lines
1.1 KiB
C#
using Unity.Collections;
|
|
using Unity.Entities;
|
|
|
|
namespace ProjectM.Simulation
|
|
{
|
|
/// <summary>
|
|
/// Phase 1.7 Blade-Dash bookkeeping — SERVER-ONLY, plain (NOT a <c>[GhostField]</c>, so no ghost-hash impact;
|
|
/// it piggybacks the <see cref="BoonEffects"/> player re-bake). Keys the per-dash "hit once" dedup to
|
|
/// <see cref="DashState.StartTick"/> (which is <c>TickUtil.NonZero(now)</c> on every dash and cannot be relied
|
|
/// upon to reset) rather than to any DashState clear edge: <c>DashTrailDamageSystem</c> clears <see cref="Hit"/>
|
|
/// whenever the current StartTick differs from <see cref="LastStartTick"/>. Server-only (no rollback) so the
|
|
/// accumulator is safe to persist across ticks.
|
|
/// </summary>
|
|
public struct DashTrailState : IComponentData
|
|
{
|
|
/// <summary>The <see cref="DashState.StartTick"/> the <see cref="Hit"/> set currently belongs to.</summary>
|
|
public uint LastStartTick;
|
|
/// <summary>Enemies already struck by the CURRENT dash's trail (one hit per enemy per dash).</summary>
|
|
public FixedList64Bytes<Entity> Hit;
|
|
}
|
|
}
|