private void Update() { if (!player.HasTrait(PlayerTraits.Traits.CanBoost)) { return; } if (!isRecharging) { isRecharging = state == States.None && player.CheckState(StateLabels.IsGrounded); } if (isRecharging && boostAvailable < MaxBoost) { boostAvailable += RechargeRate * Time.deltaTime; } if (state == States.Boosting) { boostAvailable -= BoostUsageRate * Time.deltaTime; if (boostAvailable <= 0) { StopBoost(); } } Mathf.Clamp(boostAvailable, 0, MaxBoost); BoostChanged?.Invoke(boostAvailable / MaxBoost); }
private void Start() { player = Player.Instance; gravity = player.GetComponent <PlayerGravity>(); body = player.GetComponent <Rigidbody2D>(); BoostChanged?.Invoke(boostAvailable / MaxBoost); }
private static void CheckFusionBoost(S_ABNORMALITY_END p) { if (FlameFusionIncreaseId == p.AbnormalityId || FrostFusionIncreaseId == p.AbnormalityId || ArcaneFusionIncreaseId == p.AbnormalityId) { Game.SetSorcererElementsBoost(false, false, false); } else { return; } BoostChanged?.Invoke(); }