private void Process(PlayerEvent pEvent) { switch (pEvent.type) { case PlayerEvent.Type.Hit: Debug.Log("player " + _otherPlayer.id + " hitted " + pEvent.player); OtherPlayersStatesProvider.Instance.DamagePlayer(pEvent.player); break; case PlayerEvent.Type.Shoot: Debug.Log("player " + _otherPlayer.id + " shoted and missed"); break; case PlayerEvent.Type.ThrowGranade: Debug.Log("player " + _otherPlayer.id + "Threw a grenade"); GrenadeStatesProvider.Instance.GenerateGrenade(_otherPlayer.id, pEvent.direction); break; case PlayerEvent.Type.Connect: Debug.Log("Request to connect from " + _otherPlayer.id); PlayerEventChannel.SendEvent(PlayerEvent.Connected()); break; case PlayerEvent.Type.Respawn: Debug.Log("Request to respawn player " + _otherPlayer.id); ServerGameManager.Instance.RespawnPlayer(_otherPlayer.id); break; } }
public void SetupChannels(ChannelManager cm) { PlayerEventChannel = new PlayerEventChannel(Process, new ReliableStrategy(0.1f, -1)); cm.RegisterChannel((int)RegisteredChannels.PlayerEventChannel, PlayerEventChannel); PlayerEventChannel.SendEvent(PlayerEvent.Connected()); }