void PlayerManager_RequestUpdateInfo(NetworkPlayer _requestor, string _playerInfoSerial) { PlayerInfo _player; NetworkSerializer.Deserialize(_playerInfoSerial, out _player); var _playerLocal = Get(_player.guid); if (_playerLocal == null) { _playerLocal = _player; _playerLocal.connected = false; Add(_playerLocal); Connect(_playerLocal); } else { Copy(_playerLocal, _player); if (!_playerLocal.connected) { Connect(_playerLocal); } } if (postInfoChanged != null) { postInfoChanged(_player); } if (Global.Server().server == Network.player.guid) { networkView.RPC("PlayerManager_ResponseUpdateInfo", _requestor); } }
void TransitionManager_RequestStartGame(string _transitionSerial) { var _transition = new GameTransition(); NetworkSerializer.Deserialize(_transitionSerial, out _transition); StartGameLocal(_transition); }
void PlayerManager_InformPlayerInfoChanged(string _playerInfoSerial) { PlayerInfo _playerInfo; NetworkSerializer.Deserialize(_playerInfoSerial, out _playerInfo); InformPlayerInfoChangedLocal(_playerInfo); }
public static AttackData Deserialize(string _serial) { Vector2 _velocity; _serial = _serial.Substring(0, Serializer.deserialize(_serial, out _velocity)); AttackData _attackData; NetworkSerializer.Deserialize(_serial, out _attackData); _attackData.velocity = _velocity; return(_attackData); }
void PlayerManager_ResponseRefreshPlayerInfo(string _playerInfosStr) { var _newPlayerInfos = new Dictionary <string, PlayerInfo>(); NetworkSerializer.Deserialize(_playerInfosStr, out _newPlayerInfos); foreach (var _playerKV in players) { if (Network.player.guid == _playerKV.Key) { continue; } if (!_newPlayerInfos.ContainsKey(_playerKV.Key)) { if (postConnected != null) { postConnected(_playerKV.Value, false); } _playerKV.Value.postChanged -= ListenInfoChanged; players.Remove(_playerKV.Key); } } foreach (var _newPlayerKV in _newPlayerInfos) { if (Network.player.guid == _newPlayerKV.Value.guid) { continue; } var _player = players.ContainsKey(_newPlayerKV.Key) ? players[_newPlayerKV.Key] : null; if (_player == null) { _player = _newPlayerKV.Value; _player.postChanged = ListenInfoChanged; players.Add(_player.guid, _player); if (postConnected != null) { postConnected(_player, true); } } else { _player.name = _newPlayerKV.Value.name; } } }
void PlayerManager_ResponseRefreshPlayerInfo(string _playerInfoStr) { PlayerInfo _newPlayerInfo; NetworkSerializer.Deserialize(_playerInfoStr, out _newPlayerInfo); if (_newPlayerInfo.guid == Network.player.guid) { Debug.LogWarning("Trying to refresh self. Ignore."); return; } PlayerInfo _player; if (!players.TryGetValue(_newPlayerInfo.guid, out _player)) { _player = _newPlayerInfo; players.Add(_player.guid, _player); if (_player.connected) { _player.connected = false; Connect(_player); } } else { Copy(_player, _newPlayerInfo); if (_player.connected != _newPlayerInfo.connected) { if (_newPlayerInfo.connected) { Connect(_player); } else { Disconnect(_player); } } } if (postSetuped != null) { postSetuped(_player); } }
private void GameResult_Propagate(int _gameID, string _resultsSerial) { if (gameID != _gameID) { Debug.LogError("Received result of wrong game id. Ignore."); results = null; return; } results = new Dictionary <string, PlayerResult> (); NetworkSerializer.Deserialize(_resultsSerial, out results); if (postPropagated != null) { postPropagated(); } }
private void GameResult_Propagate(int _gameID, string _resultsSerial) { results = new Dictionary <string, PlayerResult> (); if (m_GameID != _gameID) { Debug.LogError("Received result of wrong game id. Ignore."); return; } NetworkSerializer.Deserialize(_resultsSerial, out results); foreach (var _result in results.Where(_result => !CheckResult(_result.Key, _result.Value))) { Debug.LogError("Result of player " + _result.Key + " is not valid. Continue anyway."); } if (postPropagated != null) { postPropagated(); } }
private void ReadyManager_PollReadyInfoResponse(string _readyInfoStr) { CancelInvoke("AbortPoll"); m_IsPolling = false; var _oldReadyInfo = m_ReadyInfo; var _newReadyInfo = new List <string>(); NetworkSerializer.Deserialize(_readyInfoStr, out _newReadyInfo); m_ReadyInfo = new HashSet <string>(_newReadyInfo); if (postPoll != null) { postPoll(); } if (postReady != null) { var _oldExclusiveReadyInfo = new HashSet <string>(_oldReadyInfo); _oldExclusiveReadyInfo.ExceptWith(m_ReadyInfo); var _newExclusiveReadyInfo = new HashSet <string>(m_ReadyInfo); _newExclusiveReadyInfo.ExceptWith(_oldReadyInfo); foreach (var _readyInfo in _oldExclusiveReadyInfo) { postReady(_readyInfo, false); } foreach (var _readyInfo in _newExclusiveReadyInfo) { postReady(_readyInfo, true); } } }