Esempio n. 1
0
    private void Awake()
    {
        if (Instance != null)
        {
            Destroy(gameObject);
            return;
        }
        else
        {
            Instance = this;
        }

        dashEnergyList = new List <float>(dashPointAmount);
        for (int i = 0; i < dashPointAmount; i++)
        {
            dashEnergyList.Add(0);
        }
        passedFloorQueue  = new Queue <GameObject>();
        timer             = 0.0f;
        passingBridge     = null;
        deferredJoyConRot = targetJoyConRot;
        State             = MarathonPlayerStatus.WarmingUp;
        rd  = GetComponent <Rigidbody>();
        ani = GetComponent <Animator>();
        dizzyEffectObj.SetActive(false);
        shouldCheckUnstable      = false;
        shouldCountUnstableTimer = false;
        passBridgeBenchmarkQuat  = Quaternion.identity;
        prevFullHoneyCount       = 0;
        frameCount = 0;
        Debug.Assert(unstableRemedyTime < unstableHoldTime);
    }
Esempio n. 2
0
    //=====================================================================================================
    // Public functions
    //=====================================================================================================
    public void SetPlayerState(MarathonPlayerManager.MarathonPlayerStatus newState)
    {
        if (State == MarathonPlayerStatus.ReachGoal)
        {
            return;
        }

        if (negativeStatus.Contains(newState) && negativeStatus.Contains(State))
        {
            return;
        }
        else
        {
            // Old state
            switch (State)
            {
            case MarathonPlayerStatus.Dashing:
                AudioManager.Instance.Stop("Dashing");
                break;

            case MarathonPlayerStatus.Dizzying:
                dizzyEffectObj.SetActive(false);
                break;

            case MarathonPlayerStatus.PassingBridge:
                shouldCheckUnstable = false;
                ani.SetBool("isBridgeUnstable", false);
                break;

            case MarathonPlayerStatus.ReachGoal:
                break;
            }

            // New state
            switch (newState)
            {
            case MarathonPlayerStatus.Dashing:
                AudioManager.Instance.Play("Dashing");
                break;

            case MarathonPlayerStatus.Dizzying:
            {
                AudioManager.Instance.Play("Dizzy");
                rd.velocity = Vector3.zero;
                dizzyEffectObj.SetActive(true);
                var parSystem = dizzyEffectObj.GetComponent <ParticleSystem>();
                if (!parSystem.isPlaying)
                {
                    parSystem.Play();
                }
            }
            break;

            case MarathonPlayerStatus.Falling:
                if (State == MarathonPlayerStatus.Falling)
                {
                    return;
                }
                AudioManager.Instance.Play("Falling");
                break;

            case MarathonPlayerStatus.PassingBridge:
                Invoke("StartCheckUnstable", checkUnstableAfterSec);
                break;
            }

            State = newState;
            timer = 0.0f;
        }
    }