Beispiel #1
0
        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);
        }
Beispiel #2
0
        private void Start()
        {
            player  = Player.Instance;
            gravity = player.GetComponent <PlayerGravity>();
            body    = player.GetComponent <Rigidbody2D>();

            BoostChanged?.Invoke(boostAvailable / MaxBoost);
        }
Beispiel #3
0
 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();
 }