Skip to content

MoveTiming

namespace Griff.Modules.Fighting;
public struct MoveTiming

How a move plays: its startup, active and recovery in steps, and the clip they’re shown with (how many frames it has, at what speed, and which of them have hitboxes).

public int Active { get; init; }

Steps it can hit for.

public bool ActiveFromClip { get; init; }

True if its active steps are its clip’s own.

public int FirstHit { get; init; }

Its clip’s first frame with a hitbox, or -1.

public int FrameCount { get; init; }

How many frames its clip has (0 with no clip).

public float FramesPerSecond { get; init; }

How fast its clip plays by itself.

public bool HasClip { get; init; }

True if the fighter’s animation has its clip.

public int LastHit { get; init; }

Its clip’s last frame with a hitbox, or -1.

public int Recovery { get; init; }

Steps after, before the fighter is free.

public bool RecoveryFromClip { get; init; }

True if its recovery is its clip’s own.

public int Startup { get; init; }

Steps before it can hit.

public bool StartupFromClip { get; init; }

True if its startup is its clip’s own (the move gives none).

public int Total { get; }

Steps it takes, start to end.

public void Deconstruct(out int Startup, out int Active, out int Recovery, out int FrameCount, out float FramesPerSecond, out int FirstHit, out int LastHit, out bool HasClip, out bool StartupFromClip, out bool ActiveFromClip, out bool RecoveryFromClip)
public override bool Equals(object obj)
public bool Equals(MoveTiming other)
public int FrameAt(int step)

Which of its clip’s frames shows at step step: its frames before its hitboxes spread over its startup, those with hitboxes over its active steps and the rest over its recovery (a clip with no hitboxes over the whole move).

public override int GetHashCode()
public MovePhase PhaseAt(int step)

Which part of it step step (from 0) is in.

public override string ToString()