using Mirror; using System; using UnityEngine; namespace Characters { public abstract class Pawn : NetworkBehaviour { public event Action OnDamage; public event Action OnLiveState; public bool Alive = true; [SyncVar] public float _speedMul = 1f; public virtual void TakeDamage() {} [Command] public void CmdDie() { RpcDie(); } [ClientRpc] public void RpcDie() { Die(); } public void Die() { Alive = false; OnLiveState?.Invoke(this, Alive); // spectator } public void Live() { Alive = true; OnLiveState?.Invoke(this, Alive); } public void SetSpeedMul(float mul) { _speedMul = mul; } } }