示例#1
0
    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;
        }
    }
示例#2
0
 public void SetupChannels(ChannelManager cm)
 {
     PlayerEventChannel = new PlayerEventChannel(Process, new ReliableStrategy(0.1f, -1));
     cm.RegisterChannel((int)RegisteredChannels.PlayerEventChannel, PlayerEventChannel);
     PlayerEventChannel.SendEvent(PlayerEvent.Connected());
 }