internal virtual void Update(GameMember now) { Team = now.Team; if (now.IsPlayer && IsPlayer) { player = now.player; } else if (now.IsBot && IsBot) { bot = now.bot; } else { throw new Exception("Cant update"); } OnChange(); }
protected virtual void GotGameData(GameDTO game) { Data = game; if (ChatLobby == null) { ChatLobby = new GroupChat(new agsXMPP.Jid(game.RoomName.ToLower() + ".pvp.net"), game.RoomPassword); } var participants = game.TeamOne.Concat(game.TeamTwo); foreach (var thing in participants) { var player = thing as PlayerParticipant; var bot = thing as BotParticipant; int team; if (game.TeamOne.Contains(thing)) { team = 0; } else { team = 1; } GameMember now; if (player != null) { now = new GameMember(player, team, this); } else if (bot != null) { now = new GameMember(bot, team, this); } else { throw new Exception("Unknown participant " + thing); } GameMember old = AllMembers.SingleOrDefault(m => m.SummonerID == now.SummonerID); if (old != null) { old.Update(now); } else { if (team == 0) { TeamOne.Add(now); } else { TeamTwo.Add(now); } OnMemberJoined(now); } } if (game.GameState == "TEAM_SELECT") { Dispose(); Session.Current.CurrentLobby = teamSelect; OnGameCancel(teamSelect); } OnUpdate(game); if (!loaded) { OnLoaded(); } }
protected virtual void OnMemberChangeTeam(GameMember member) { MemberChangedTeam?.Invoke(this, new MemberEventArgs(member)); }
protected virtual void GotGameData(GameDTO game) { Data = game; if (ChatLobby == null) { ChatLobby = new GroupChat(new agsXMPP.Jid(game.RoomName.ToLower() + ".pvp.net"), game.RoomPassword); } var participants = game.TeamOne.Concat(game.TeamTwo); foreach (var thing in participants) { var player = thing as PlayerParticipant; var bot = thing as BotParticipant; int team; if (game.TeamOne.Contains(thing)) team = 0; else team = 1; GameMember now; if (player != null) { now = new GameMember(player, team, this); } else if (bot != null) { now = new GameMember(bot, team, this); } else throw new Exception("Unknown participant " + thing); GameMember old = AllMembers.SingleOrDefault(m => m.SummonerID == now.SummonerID); if (old != null) { old.Update(now); } else { if (team == 0) TeamOne.Add(now); else TeamTwo.Add(now); OnMemberJoined(now); } } if (game.GameState == "TEAM_SELECT") { Dispose(); Session.Current.CurrentLobby = teamSelect; OnGameCancel(teamSelect); } OnUpdate(game); if (!loaded) OnLoaded(); }
internal virtual void Update(GameMember now) { Team = now.Team; if (now.IsPlayer && IsPlayer) player = now.player; else if (now.IsBot && IsBot) bot = now.bot; else throw new Exception("Cant update"); OnChange(); }