// 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; } } }
/// <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); }