void Update()
    {
        // The other player may not be available at Start, so do it on update until we can find them
        if (!otherPlayer || !thisPlayer)
        {
            GameObject[] gos;
            gos = GameObject.FindGameObjectsWithTag("Player");

            foreach (GameObject go in gos)
            {
                PlayerIdentity id = go.GetComponent <PlayerIdentity>();
                if (id)
                {
                    if (!id.IsThisPlayer())
                    {
                        otherPlayer = go;
                    }
                    else
                    {
                        thisPlayer = go;
                    }

                    if (id.IsHunter())
                    {
                        hunter = go;
                    }
                    else
                    {
                        seeker = go;
                    }
                }
            }
        }
    }
    public virtual void OnTriggerStay(Collider other)
    {
        if (other.gameObject.tag == "Player" && Input.GetButtonUp("Fire1"))
        {
            PlayerIdentity id = other.gameObject.GetComponent <PlayerIdentity>();

            // Need to make sure that the input only affects the appropriate player
            if (id.IsThisPlayer())
            {
                if (id.IsHunter())
                {
                    this.HunterInteraction(other);
                }
                else
                {
                    this.SeekerInteraction(other);
                }
            }
        }
    }
    void Update()
    {
        if (id.IsHunter() || !id.IsThisPlayer())
        {
            return;
        }

        if (sprintCooldownTimer >= sprintCooldownTime && Input.GetButtonUp("Fire2"))
        {
            sprinting           = true;
            sprintCooldownTimer = 0;
            movement.StartSprint();
            sfxManager.PlaySprint();
        }

        if (sprinting)
        {
            if (sprintTimer < sprintDuration)
            {
                sprintTimer += Time.deltaTime;
            }
            else if (sprintTimer >= sprintDuration)
            {
                movement.StopSprint();
                sprintTimer = 0;
                sprinting   = false;
            }
        }
        else
        {
            if (sprintCooldownTimer < sprintCooldownTime)
            {
                sprintCooldownTimer += Time.deltaTime;
            }
        }

        UIManager.instance.UpdateProgress((sprintCooldownTimer / sprintCooldownTime) * 100);
        ui.SetProgress((sprintCooldownTimer / sprintCooldownTime) * 100);
    }
Exemple #4
0
    // Update is called once per frame
    void Update()
    {
        if (!id.IsHunter() || !id.IsThisPlayer())
        {
            return;
        }

        // May not be available on start, so we'll do it here instead
        if (!hidingManager)
        {
            if (PlayerManager.instance.otherPlayer)
            {
                hidingManager = PlayerManager.instance.otherPlayer.GetComponent <HidingManager>();
            }
        }

        if (echoCooldownTimer >= echoCooldownTime && Input.GetButtonUp("Fire2"))
        {
            UseEcho();
            echoCooldownTimer         = 0;
            echoMovementCooldownTimer = 0;
        }

        if (echoCooldownTimer < echoCooldownTime)
        {
            echoCooldownTimer += Time.deltaTime;
        }

        // Don't let the player move for a short time after using this ability
        if (echoMovementCooldownTimer < echoMovementCooldownTime)
        {
            echoMovementCooldownTimer += Time.deltaTime;
        }

        UIManager.instance.UpdateProgress((echoCooldownTimer / echoCooldownTime) * 100);
        ui.SetProgress((echoCooldownTimer / echoCooldownTime) * 100);
    }
    void Start()
    {
        PlayerIdentity id = GetComponent <PlayerIdentity>();

        thisIsHunter = id.IsHunter() && id.IsThisPlayer();
    }
    bool validateStatus(Collider other)
    {
        if (ReferenceEquals(other, null))
        {
            return(false);
        }

        PlayerIdentity otherId       = other.gameObject.GetComponent <PlayerIdentity>();
        HidingManager  hidingManager = other.gameObject.GetComponent <HidingManager>();

        if (ReferenceEquals(hidingManager, null))
        {
            return(false);
        }

        // If the hunter clicks they can take the seeker out of hiding
        // All of this stuff needs to be synced to the server instead of just hopefully lining up

        // If the current player is the hunter and the collider they've run into is the Seeker and the Seeker isn't in hiding
        return(thisIsHunter && other.gameObject.tag == "Player" && otherId.IsSeeker() && !otherId.IsThisPlayer() && !hidingManager.IsHiding());
    }