Esempio n. 1
0
    public virtual void Kick(CustomLobbyMember member) {
      if (!IsCaptain) return;

      RiotServices.GameInvitationService.Kick(member.SummonerID);

      OnMemberLeft(member);
    }
Esempio n. 2
0
        public virtual void Kick(CustomLobbyMember member)
        {
            if (!IsCaptain)
            {
                return;
            }

            RiotServices.GameInvitationService.Kick(member.SummonerID);

            OnMemberLeft(member);
        }
Esempio n. 3
0
        public virtual void GiveInvitePowers(CustomLobbyMember member, bool canInvite)
        {
            if (!IsCaptain)
            {
                return;
            }

            if (canInvite)
            {
                RiotServices.GameInvitationService.RevokeInvitePrivileges(member.SummonerID);
            }
            else
            {
                RiotServices.GameInvitationService.GrantInvitePrivileges(member.SummonerID);
            }

            var raw = lobbyStatus.Members.FirstOrDefault(m => m.SummonerId == member.SummonerID);

            raw.HasInvitePower = canInvite;
        }
Esempio n. 4
0
        internal void Update(CustomLobbyMember now)
        {
            Team = now.Team;

            if (now.IsBot && IsBot)
            {
                bot = now.bot;
            }
            else if (now.IsPlayer && IsPlayer)
            {
                player = now.player;
            }
            else if (now.IsObserver && IsObserver)
            {
                observer = now.observer;
            }
            else
            {
                throw new Exception("Cant update");
            }

            OnChange();
        }
Esempio n. 5
0
        protected virtual void GotGameData(GameDTO game)
        {
            Data = game;

            if (ChatLobby == null)
            {
                ChatLobby = new GroupChat(RiotChat.GetCustomRoom(game.RoomName, game.Id, game.RoomPassword), game.RoomPassword);
            }

            var participants = game.TeamOne.Concat(game.TeamTwo);
            var left         = new List <CustomLobbyMember>(AllMembers);

            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;
                }

                CustomLobbyMember now;

                if (player != null)
                {
                    now = new CustomLobbyMember(player, team, this);
                }
                else if (bot != null)
                {
                    now = new CustomLobbyMember(bot, team, this);
                }
                else
                {
                    throw new Exception("Unknown participant " + thing);
                }

                CustomLobbyMember old = AllMembers.SingleOrDefault(m => m.SummonerID == now.SummonerID);
                if (old != null)
                {
                    TeamOne.Remove(old);
                    TeamTwo.Remove(old);
                    Observers.Remove(old);

                    bool diff = old.Team != now.Team;
                    old.Update(now);
                    if (team == 0)
                    {
                        TeamOne.Add(old);
                    }
                    else
                    {
                        TeamTwo.Add(old);
                    }

                    if (diff)
                    {
                        OnMemberChangeTeam(old);
                    }
                    left.Remove(old);
                }
                else
                {
                    if (team == 0)
                    {
                        TeamOne.Add(now);
                    }
                    else
                    {
                        TeamTwo.Add(now);
                    }

                    OnMemberJoined(now);
                }
            }

            foreach (var thing in game.Observers)
            {
                var now = new CustomLobbyMember(thing, this);

                CustomLobbyMember old = AllMembers.SingleOrDefault(m => m.SummonerID == thing.SummonerId);

                if (old != null)
                {
                    TeamOne.Remove(old);
                    TeamTwo.Remove(old);
                    Observers.Remove(old);

                    bool diff = old.Team != now.Team;
                    old.Update(now);
                    Observers.Add(old);

                    if (diff)
                    {
                        OnMemberChangeTeam(old);
                    }
                    left.Remove(old);
                }
                else
                {
                    Observers.Add(now);

                    OnMemberJoined(now);
                }
            }

            foreach (var member in left)
            {
                TeamOne.Remove(member);
                TeamTwo.Remove(member);
                OnMemberLeft(member);
            }

            if (game.GameState.Contains("CHAMP_SELECT"))
            {
                var champSelect = GameLobby.EnterChampSelect(game);
                OnGameStart(champSelect);
            }

            OnUpdate(game);
            if (!loaded)
            {
                OnLoaded();
            }
        }
Esempio n. 6
0
 public virtual bool HasInvitePowers(CustomLobbyMember member)
 {
     return(members[member.SummonerID].HasInvitePower);
 }
Esempio n. 7
0
    public virtual void GiveInvitePowers(CustomLobbyMember member, bool canInvite) {
      if (!IsCaptain) return;

      if (canInvite) RiotServices.GameInvitationService.RevokeInvitePrivileges(member.SummonerID);
      else RiotServices.GameInvitationService.GrantInvitePrivileges(member.SummonerID);

      var raw = lobbyStatus.Members.FirstOrDefault(m => m.SummonerId == member.SummonerID);
      raw.HasInvitePower = canInvite;
    }
Esempio n. 8
0
 public virtual bool HasInvitePowers(CustomLobbyMember member) {
   return members[member.SummonerID].HasInvitePower;
 }
Esempio n. 9
0
    internal void Update(CustomLobbyMember now) {
      Team = now.Team;

      if (now.IsBot && IsBot) bot = now.bot;
      else if (now.IsPlayer && IsPlayer) player = now.player;
      else if (now.IsObserver && IsObserver) observer = now.observer;
      else throw new Exception("Cant update");

      OnChange();
    }
Esempio n. 10
0
    protected virtual void GotGameData(GameDTO game) {
      Data = game;

      if (ChatLobby == null) {
        ChatLobby = new GroupChat(RiotChat.GetCustomRoom(game.RoomName, game.Id, game.RoomPassword), game.RoomPassword);
      }

      var participants = game.TeamOne.Concat(game.TeamTwo);
      var left = new List<CustomLobbyMember>(AllMembers);

      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;

        CustomLobbyMember now;

        if (player != null) {
          now = new CustomLobbyMember(player, team, this);
        } else if (bot != null) {
          now = new CustomLobbyMember(bot, team, this);
        } else throw new Exception("Unknown participant " + thing);

        CustomLobbyMember old = AllMembers.SingleOrDefault(m => m.SummonerID == now.SummonerID);
        if (old != null) {
          TeamOne.Remove(old);
          TeamTwo.Remove(old);
          Observers.Remove(old);

          bool diff = old.Team != now.Team;
          old.Update(now);
          if (team == 0) TeamOne.Add(old);
          else TeamTwo.Add(old);

          if (diff) OnMemberChangeTeam(old);
          left.Remove(old);
        } else {
          if (team == 0) TeamOne.Add(now);
          else TeamTwo.Add(now);

          OnMemberJoined(now);
        }
      }

      foreach (var thing in game.Observers) {
        var now = new CustomLobbyMember(thing, this);

        CustomLobbyMember old = AllMembers.SingleOrDefault(m => m.SummonerID == thing.SummonerId);

        if (old != null) {
          TeamOne.Remove(old);
          TeamTwo.Remove(old);
          Observers.Remove(old);

          bool diff = old.Team != now.Team;
          old.Update(now);
          Observers.Add(old);

          if (diff) OnMemberChangeTeam(old);
          left.Remove(old);
        } else {
          Observers.Add(now);

          OnMemberJoined(now);
        }
      }

      foreach (var member in left) {
        TeamOne.Remove(member);
        TeamTwo.Remove(member);
        OnMemberLeft(member);
      }

      if (game.GameState.Contains("CHAMP_SELECT")) {
        var champSelect = GameLobby.EnterChampSelect(game);
        OnGameStart(champSelect);
      }

      OnUpdate(game);
      if (!loaded) OnLoaded();
    }