Files
Learning-UnityNGO/Assets/CONTENT/FEATURES/DEV-TEST/Scripts/PitZone.cs
T

34 lines
1.4 KiB
C#

using UnityEngine;
using Unity.Netcode;
public class PitZone : NetworkBehaviour
{
// Индекс ямы. Игрок с таким же индексом — её "хозяин" (защитник).
// Победа засчитывается тому, кто зашёл в ЧУЖУЮ яму (pitIndex != его индекс).
[SerializeField] private int pitIndex;
private void OnTriggerEnter(Collider _other)
{
if (!IsServer) return;
if (RoundManager.Current == null || !RoundManager.Current.IsRoundActive) return;
// Клон — засчитываем вход за его ОРИГИНАЛЬНОГО игрока.
// Проверять надо ДО PlayerHealth: у клона он тоже есть,
// но OwnerClientId клона — это сервер, а не игрок.
GhostPlayer _ghost = _other.GetComponentInParent<GhostPlayer>();
if (_ghost != null)
{
RoundManager.Current.OnPlayerEnteredPit(pitIndex, _ghost.OriginalOwnerId);
_ghost.GetComponent<PlayerHealth>().TakeDamage(999);
return;
}
PlayerHealth _playerHealth = _other.GetComponentInParent<PlayerHealth>();
if (_playerHealth == null) return;
RoundManager.Current.OnPlayerEnteredPit(pitIndex, _playerHealth.OwnerClientId);
_playerHealth.TakeDamage(999);
}
}