public override void StateFixedUpdate(Player player) { if (!Charge.InputCheckFunc()) { Charge.InputReleased = true; } else { Charge.ChargeFraction = ScaledCurrentFrame / Duration; Charge.ChangePlayerChargeColor(player); currentState.StateFixedUpdate(player); if (changeAttackDirection && InputBuffer.Instance.CompareAxisBuffered(player.InputGenerator, "Vertical", axis => axis < -0.5f, DownAttackBuffer)) { player.DownAttack(); //unscaledCurrentFrame + 1 to account for the fact that the value of unscaledCurrentFrame is incremented //after StateFixedUpdate is called player.State.Advance(player, numFrames: (unscaledCurrentFrame + 1)); } } }