Beispiel #1
0
        private IEnumerator PerformAbilities(PacketReader packetReader)
        {
            // updating the time of completing from 0 to 1
            _startAbilities = true;
            //timeline.StartTimeline(TimeToCompleteAbility);
            FractionTillComplete = 0.0f;
            for (int fractionID = 0; fractionID < NumOfSlots; fractionID++)
            {
                FractionTillAbilityComplete[fractionID] = 0.0f;
            }
            _currentTime = 0.0f;

            _onSlotID            = 0;
            _slottingMachineSize = packetReader.GetPacketSize();

            for (int slotID = 0; slotID < _slottingMachineSize; slotID++)
            {
                var abilityID = packetReader.GetPackAbilityIDFromIndex(slotID);

                switch (abilityID)
                {
                case (int)ability.delay:
                {
                    _isDucking = false;
/*                            _chipsAnimator.SetBool("IsDucking", _isDucking);*/
                    continue;
                    //break;
                }

                case (int)ability.jump:
                {
                    // Debug.Log("Jump Action");
                    //_chipsAnimator.speed /= TimeToCompleteAbility;
                    //_chipsRigidbody2D.AddForce(new Vector2(0, _forceAmountWithDefaultValues), ForceMode2D.Impulse);
                    //_chipsRigidbody2D.velocity += (Vector2.up * -Physics2D.gravity.y * TimeToCompleteAbility);
                    _isDucking = false;
                    _isJumping = true;
                    _chipsAnimator.SetTrigger("IsJumping");
/*                            _chipsAnimator.SetBool("IsDucking", _isDucking);*/
                    ApplyJumpForce();
                    AudioUtil.PlayOneOff(SFX_Jumping);
                    break;
                }

                case (int)ability.duck:
                {
                    _isDucking = true;
                    AudioUtil.PlayOneOff(SFX_Ducking);
                    /*                            _chipsAnimator.SetBool("IsDucking", _isDucking);*/
                    break;
                }

                default:
                    break;
                }
                _chipsAnimator.SetBool("IsDucking", _isDucking);
                yield return(new WaitForSeconds(TimeToCompleteAbility));

                _isJumping = false;
                _onSlotID++;
            }

            _startAbilities = false;

            if (groundDetector.isGrounded && _isDucking)
            {
                _isDucking = false;
            }

            _chipsAnimator.SetBool("IsDucking", _isDucking);
            _onSlotID            = -1;
            FractionTillComplete = 0.0f;
            for (int fractionID = 0; fractionID < NumOfSlots; fractionID++)
            {
                FractionTillAbilityComplete[fractionID] = 0.0f;
            }

            _packetReader.ClearSlots();
        }