48 lines
903 B
C#

using Mirror;
using System;
using UnityEngine;
namespace Characters
{
public abstract class Pawn : NetworkBehaviour
{
public event Action<Pawn> OnDamage;
public event Action<Pawn, bool> 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;
}
}
}