Exemplo n.º 1
0
    private void StartAtCheckPoint()
    {
        PlayerMovement player = FindObjectOfType <PlayerMovement>();
        NavMeshAgent   agent  = player.GetComponent <NavMeshAgent>();

        //Move the player
        agent.enabled             = false;
        player.transform.position = transform.position + new Vector3(0, 2, 0.5f);
        agent.enabled             = true;
        FindObjectOfType <PlayerMovement>().GetComponent <Keybearer>().posessedKey = PlayerPrefs.GetInt("PlayerKey");
        //Move Companion
        if (PlayerPrefs.HasKey("CompanionPresent"))
        {
            mCompanion         = GameObject.Find(PlayerPrefs.GetString("CompanionPresent")).GetComponent <CompanionAI>();
            player.myCompanion = mCompanion;
            agent         = mCompanion.GetComponent <NavMeshAgent>();
            agent.enabled = false;
            if (PlayerPrefs.HasKey("DropOffLocation"))
            {
                mCompanion.transform.position = GameObject.Find(PlayerPrefs.GetString("DropOffLocation")).transform.position + new Vector3(0, 2, -0.5f);
            }
            else if (PlayerPrefs.HasKey("CompanionX"))
            {
                mCompanion.transform.position = new Vector3(PlayerPrefs.GetFloat("CompanionX"), PlayerPrefs.GetFloat("CompanionY") + 2, PlayerPrefs.GetFloat("CompanionZ") - 0.5f);
            }
            else
            {
                mCompanion.transform.position = transform.position + new Vector3(0, 2, -0.5f);
            }

            agent.enabled = true;
        }
    }
Exemplo n.º 2
0
    private void OnTriggerExit(Collider other)
    {
        CompanionAI ai = other.GetComponent <CompanionAI>();

        if (ai != null)
        {
            ai.RemoveStressZone(this);
        }
    }
Exemplo n.º 3
0
    private void LevelWasLoaded(Scene _scene, LoadSceneMode _mode)
    {
        m_Hansel = GameObject.Find("Hansel");
        m_Gretel = GameObject.Find("Gretel");

        if (m_IsStartScreen)
        {
            m_MenuBGEventInstance.start();
            return;
        }

        m_MenuBGEventInstance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);

        if (m_PlayerIsHans)
        {
            m_Player    = m_Hansel;
            m_Companion = m_Gretel;
        }
        else
        {
            m_Player    = m_Gretel;
            m_Companion = m_Hansel;
        }

        m_Player.GetComponent <CompanionAI>().enabled      = false;
        m_Player.GetComponentInChildren <Camera>().enabled = true;
        Player         = m_Player.GetComponent <Playercontroller>();
        Player.enabled = true;

        m_Companion.GetComponent <Playercontroller>().enabled = false;
        m_Companion.GetComponentInChildren <Camera>().enabled = false;
        Companion         = m_Companion.GetComponent <CompanionAI>();
        Companion.enabled = true;

        Terrain   t     = FindObjectOfType <Terrain>();
        Transform goal  = t.transform.Find("Goal");
        Transform start = t.transform.Find("Start");

        if (goal == null || start == null)
        {
            Debug.LogError("you forgot to define 'goal' and 'start' as positions in your terrain children");
        }
        else
        {
            m_LastSafePlace = start.position;
            m_GoalPosition  = goal.position;
            GoToSafePlace(m_LastSafePlace);
        }

        m_SpeechBubble = FindObjectOfType <SpeechBubble>();
        if (!m_ToldAboutHoldHands)
        {
            m_ToldAboutHoldHands = true;
            m_SpeechBubble.SetBubble(SpeechBubble.Icon.NotHands, SpeechBubble.Icon.hands, m_Companion.transform);
        }
    }
Exemplo n.º 4
0
    private void SaveValues(Keybearer player)
    {
        PlayerPrefs.SetInt("PlayerKey", player.posessedKey);
        PlayerPrefs.SetString("Name", CheckpointName);
        PlayerPrefs.SetInt("CheckPointReached", 1);
        PlayerPrefs.SetString("CheckPointName", CheckpointName);
        //CompanionAI[] Companions = FindObjectsOfType<CompanionAI>();
        mCompanion = player.GetComponent <PlayerMovement>().myCompanion;

        //If the player has a companion following him
        if (mCompanion != null)
        {
            //If it is actvely following and within range
            if ((mCompanion.activeFollow && Vector3.Distance(mCompanion.gameObject.transform.position, gameObject.transform.position) < 20))
            {
                PlayerPrefs.SetString("CompanionPresent", mCompanion.name);
            }
            //If the companion is at a dropoff and shouldn't be left behind
            else if (mCompanion.atDropOff && !mCompanion.LeaveBehind && mCompanion.DropOff != null)
            {
                PlayerPrefs.SetString("CompanionPresent", mCompanion.name);
                PlayerPrefs.SetString("DropOffLocation", mCompanion.DropOff.name);
            }
            //If we just tell that companion to spawn at their last location
            else if (mCompanion.SpawnAtLastLocation)
            {
                PlayerPrefs.SetString("CompanionPresent", mCompanion.name);
                PlayerPrefs.SetFloat("CompanionX", mCompanion.transform.position.x);
                PlayerPrefs.SetFloat("CompanionY", mCompanion.transform.position.y);
                PlayerPrefs.SetFloat("CompanionZ", mCompanion.transform.position.z);
            }
        }
        else
        {
            PlayerPrefs.DeleteKey("CompanionPresent");
            PlayerPrefs.DeleteKey("DropOffLocation");
            PlayerPrefs.DeleteKey("CompanionX");
            PlayerPrefs.DeleteKey("CompanionY");
            PlayerPrefs.DeleteKey("CompanionZ");
        }
    }