Пример #1
0
    // OnTriggerEnter is called when the GameObject collides with another GameObject
    private void OnTriggerEnter(Collider other)
    {
        // On trigger enter, heal the player and activate the checkpoint
        if (other.gameObject.HasTag("Player") && !healedPlayers.Contains(other.GetInstanceID()))
        {
            healedPlayers.Add(other.GetInstanceID());

            TDS_Player _player = other.GetComponent <TDS_Player>();
            _player.Heal(999);

            // Call the OnPassCheckpoint event on the player machine
            TDS_RPCManager.Instance?.RPCPhotonView.RPC("CallMethodOnline", _player.photonView.owner, TDS_RPCManager.GetInfo(photonView, GetType(), "CallOnPassCheckpoint"), new object[] { });

            if (!isActivated)
            {
                Activate();
            }

            // If the checkpoint healed all players, just disable its box trigger
            if (healedPlayers.Count == TDS_LevelManager.Instance.AllPlayers.Length)
            {
                trigger.enabled = false;
            }
        }
    }
Пример #2
0
    /// <summary>
    /// Called when a player catch the rabbit
    /// Heal the player and Destroy the rabbit
    /// </summary>
    /// <param name="_player"></param>
    public override void Use(TDS_Player _player)
    {
        if (!PhotonNetwork.isMasterClient)
        {
            TDS_RPCManager.Instance.RPCPhotonView.RPC("CallMethodOnline", PhotonTargets.MasterClient, TDS_RPCManager.GetInfo(photonView, GetType(), "UseOnline"), new object[] { _player.PhotonID });
            return;
        }
        int _healingValue = UnityEngine.Random.Range(healingValueMin, healingValueMax);

        _player.Heal(_healingValue);

        OnUseRabbit?.Invoke();
        TDS_VFXManager.Instance.SpawnEffect(FXType.RabbitPoof, transform.position + Vector3.up);
        PhotonNetwork.Destroy(gameObject);
    }