private void OnLivePlayerJoined(object sender, GamerJoinedEventArgs e)
{
IdentifiedPlayer identifiedPlayer = null;
if (e.Gamer.IsLocal)
{
var localNetworkGamer = (LocalNetworkGamer) e.Gamer;
IdentifiedPlayer[] localPlayersArray = new IdentifiedPlayer[SessionManager.LocalPlayers.Count];
SessionManager.LocalPlayers.Values.CopyTo(localPlayersArray, 0);
for (int i = 0; i < localPlayersArray.Length; i++)
{
var localPlayer = localPlayersArray[i];
if (localPlayer.UniqueId == e.Gamer.Gamertag)
{
identifiedPlayer = new LiveIdentifiedPlayer(localPlayer.Input, localNetworkGamer);
_localPlayers.Add(identifiedPlayer);
_allPlayers.Add(identifiedPlayer);
break;
}
}
}
else
{
NetworkGamer networkGamer = e.Gamer;
identifiedPlayer = new LiveIdentifiedPlayer(networkGamer);
_remotePlayers.Add(identifiedPlayer);
_allPlayers.Add(identifiedPlayer);
}
OnPlayerJoined(identifiedPlayer);
}