Esempio n. 1
0
 public void OnRoomCreate(RoomInfos room)
 {
     if (!m_rooms.ContainsKey(room.GetRoomName()))
     {
         Invoke(new Action <RoomInfos>(InternalRoomCreated), room);
     }
 }
Esempio n. 2
0
        private void InternalRoomCreated(RoomInfos room)
        {
            string roomname = room.GetRoomName();

            if (m_rooms.ContainsKey(roomname))
            {
                return;
            }
            m_rooms.Add(roomname, room);
            ListBox rooms = (room.isRanked ? RankedList : UnrankedList);

            if (FilterActive.Checked)
            {
                if (!m_rooms[roomname].hasStarted)
                {
                    if (m_rooms[roomname].Contains(FilterTextBox.Text.ToLower()) ||
                        m_rooms[roomname].roomName.ToLower().Contains(FilterTextBox.Text.ToLower()) ||
                        FilterTextBox.Text == "Search" || FilterTextBox.Text == "")
                    {
                        rooms.Items.Add(roomname);
                    }
                }
            }
            else
            {
                if (m_rooms[roomname].Contains(FilterTextBox.Text.ToLower()) ||
                    m_rooms[roomname].roomName.ToLower().Contains(FilterTextBox.Text.ToLower()) ||
                    FilterTextBox.Text == "Search" || FilterTextBox.Text == "")
                {
                    rooms.Items.Add(roomname);
                }
            }

            UpdateServerInfo();
        }
Esempio n. 3
0
        private void InternalRoomCreated(RoomInfos room)
        {
            string roomname = room.GetRoomName();

            if (m_rooms.ContainsKey(roomname))
            {
                return;
            }
            m_rooms.Add(roomname, room);
            ListBox rooms = (room.isRanked ? RankedList : UnrankedList);

            rooms.Items.Add(roomname);
        }
        private void QuickHost(string mode, bool isranked)
        {
            var ran  = new Random();
            var form = new Host(false, false)
            {
                CardRules   = { Text = Program.Config.CardRules },
                Mode        = { Text = mode },
                Priority    = { Checked = Program.Config.EnablePrority },
                CheckDeck   = { Checked = Program.Config.DisableCheckDeck },
                ShuffleDeck = { Checked = Program.Config.DisableShuffleDeck },
                LifePoints  = { Text = Program.Config.Lifepoints },
                GameName    = LauncherHelper.GenerateString().Substring(0, 5),
                BanList     = { SelectedItem = Program.Config.BanList },
                TimeLimit   = { SelectedItem = Program.Config.TimeLimit }
            };

            ListBox list = (isranked) ? RankedList : UnrankedList;

            if (isranked)
            {
                form.BanList.SelectedIndex   = 0;
                form.CheckDeck.Checked       = false;
                form.ShuffleDeck.Checked     = false;
                form.Priority.Checked        = false;
                form.CardRules.SelectedIndex = 2;
                form.LifePoints.Text         = form.Mode.Text == "Tag" ? "16000" : "8000";
            }
            else
            {
                if (Program.Config.Lifepoints != ((mode == "Tag") ? "16000":"8000"))
                {
                    if (MessageBox.Show(Program.LanguageManager.Translation.GameLPChange, Program.LanguageManager.Translation.hostLifep, MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        form.LifePoints.Text = mode == "Tag" ? "16000" : "8000";
                    }
                }
            }

            RoomInfos userinfo = RoomInfos.FromName(form.GenerateURI(isranked));

            var matchedRooms = (from object room in list.Items where m_rooms.ContainsKey(room.ToString()) select m_rooms[room.ToString()] into info where RoomInfos.CompareRoomInfo(userinfo, info) select info).ToList();

            if (matchedRooms.Count > 0)
            {
                var selectroom = ran.Next(matchedRooms.Count);
                form.GameName = matchedRooms[selectroom].roomName;
            }

            LauncherHelper.GenerateConfig(Program.Server, form.GenerateURI(isranked));
            LauncherHelper.RunGame("-j");
        }
Esempio n. 5
0
        public void LoadRoom(object sender, EventArgs e)
        {
            var rooms = (ListBox)sender;

            if (rooms.SelectedIndex == -1)
            {
                return;
            }
            if (!m_rooms.ContainsKey(rooms.SelectedItem.ToString()))
            {
                return;
            }

            RoomInfos item = m_rooms[rooms.SelectedItem.ToString()];

            if (item.isRanked && !item.hasStarted)
            {
                MessageBox.Show("Cannot manually join a ranked game.");
                return;
            }

            if (item.isLocked)
            {
                var form = new InputFrm(string.Empty, Program.LanguageManager.Translation.GameEnterPassword, Program.LanguageManager.Translation.QuickHostBtn, Program.LanguageManager.Translation.optionBtnCancel)
                {
                    InputBox = { MaxLength = 4 }
                };
                if (!item.hasStarted)
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        if (form.InputBox.Text != item.roomName)
                        {
                            MessageBox.Show(Program.LanguageManager.Translation.GameWrongPassword);
                            return;
                        }
                    }
                    else
                    {
                        return;
                    }
                }
            }

            if (Program.ServerList.ContainsKey(item.server))
            {
                LauncherHelper.GenerateConfig(Program.ServerList[item.server], item.ToName());
                LauncherHelper.RunGame("-j");
            }
        }
Esempio n. 6
0
        private void InternalRoomStarted(string roomname)
        {
            if (!m_rooms.ContainsKey(roomname))
            {
                return;
            }

            RoomInfos item  = m_rooms[roomname];
            ListBox   rooms = (item.isRanked ? RankedList : UnrankedList);

            item.hasStarted = true;
            if (!ActiveGames.Checked)
            {
                rooms.Items.Remove(roomname);
            }
        }
Esempio n. 7
0
        private void InternalRoomCreated(RoomInfos room)
        {
            string roomname = room.GetRoomName();

            if (m_rooms.ContainsKey(roomname))
            {
                return;
            }
            m_rooms.Add(roomname, room);
            ListBox rooms = (room.isRanked ? RankedList : UnrankedList);

            //Remove DevBot games
            if (!room.playerList[0].Trim().ToLower().Equals("devbot"))
            {
                rooms.Items.Add(roomname);
            }
        }
Esempio n. 8
0
        private void InternalRoomRemoved(string roomname)
        {
            if (!m_rooms.ContainsKey(roomname))
            {
                return;
            }
            RoomInfos room = m_rooms[roomname];

            if (room.isRanked)
            {
                RankedList.Items.Remove(roomname);
            }
            else
            {
                UnrankedList.Items.Remove(roomname);
            }
            m_rooms.Remove(roomname);
        }
Esempio n. 9
0
    // Use this for initialization
    void Start()
    {
        Populate();


        roomInfos = JsonUtility.FromJson <RoomInfos>(JSON("rooms.json"));
        roomInfos.rooms.ToList().ForEach(x =>
        {
            x.Init(x);
            //Debug.Log(x.id);
        });

        tileInfos = JsonUtility.FromJson <TileInfos>(JSON("tiles.json"));
        tileInfos.Tiles.ToList().ForEach(x =>
        {
            //x.Init(x);
            //Debug.Log(x.Name);
        });

        Room(12, 12, 8, 8, "Saloon");
    }
Esempio n. 10
0
        private void InternalRoomPlayersUpdate(string room, string[] data)
        {
            string roomname = room;

            if (!m_rooms.ContainsKey(roomname))
            {
                return;
            }
            RoomInfos item = m_rooms[roomname];

            item.playerList = data;

            if (item.isRanked)
            {
                RankedList.UpdateList();
            }
            else
            {
                UnrankedList.UpdateList();
            }
        }
Esempio n. 11
0
        private void GameListBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            var list = (ListBox)sender;

            e.DrawBackground();

            if (e.Index == -1)
            {
                return;
            }
            var index = e.Index;

            var       room     = list.Items[index].ToString();
            var       selected = ((e.State & DrawItemState.Selected) == DrawItemState.Selected);
            var       g        = e.Graphics;
            RoomInfos info     = null;

            if (m_rooms.ContainsKey(room))
            {
                info = m_rooms[room];
            }

            //item info

            string playerstring;

            if (info == null)
            {
                playerstring = "??? vs ???";
            }
            else
            {
                bool     istag   = (info.mode == 2);
                string[] players = info.playerList;

                if (players.Length == 0)
                {
                    playerstring = "??? vs ???";
                }
                else
                {
                    if (istag)
                    {
                        string player1 = players[0].Trim() + " (" + info.eloList[0].ToString() + ")";
                        string player2 = (players.Length > 1) ? players[1].Trim() + " (" + info.eloList[1].ToString() + ")" : "???";
                        string player3 = (players.Length > 2) ? players[2].Trim() + " (" + info.eloList[2].ToString() + ")" : "???";
                        string player4 = (players.Length > 3) ? players[3].Trim() + " (" + info.eloList[3].ToString() + ")" : "???";
                        playerstring = player1 + ", " + player2 + " vs " + player3 + ", " + player4;
                    }
                    else
                    {
                        string player1 = players[0].Trim() + " (" + info.eloList[0].ToString() + ")";
                        string player2 = (players.Length > 1) ? players[1].Trim() + " (" + info.eloList[1].ToString() + ")" : "???";
                        playerstring = player1 + " vs " + player2;
                    }
                }
            }
            var        bounds      = list.GetItemRectangle(index);
            var        rulesize    = e.Graphics.MeasureString((info == null) ? "???" : RoomInfos.GameRule(info.rule), e.Font);
            var        playersSize = e.Graphics.MeasureString(playerstring, e.Font);
            var        lockedsize  = e.Graphics.MeasureString((info == null) ? "???" : (info.isLocked ? Program.LanguageManager.Translation.GameLocked : Program.LanguageManager.Translation.GameOpen), e.Font);
            SolidBrush backgroundcolor;

            var offset = new Size(5, 5);

            if (info == null)
            {
                backgroundcolor = new SolidBrush(Color.Red);
            }
            else
            {
                backgroundcolor = new SolidBrush(info.hasStarted ? Color.LightGray :
                                                 (info.isIllegal ? Color.LightCoral :
                                                  (info.mode == 2 ? Color.LightGreen :
                                                   (info.mode == 1 ? Color.BlanchedAlmond :
                                                    Color.LightBlue))));
            }
            //draw item
            g.FillRectangle(backgroundcolor, e.Bounds);
            g.DrawLines((selected) ? new Pen(Brushes.Purple, 5) : new Pen(Brushes.Black, 5),
                        new[] { new Point(bounds.X, bounds.Y), new Point(bounds.X + bounds.Width, bounds.Y), new Point(bounds.X + bounds.Width, bounds.Y + bounds.Height), new Point(bounds.X, bounds.Y + bounds.Height), new Point(bounds.X, bounds.Y) });
            //toplet
            g.DrawString((info == null) ? "???/???/???" : RoomInfos.GameMode(info.mode) + " / " + LauncherHelper.GetBanListFromInt(info.banListType) + " / " + (info.timer == 0 ? "3 mins" : "5 mins") + (info.rule >= 4 ? "/Prerelease" : ""), e.Font, Brushes.Black,
                         list.GetItemRectangle(index).Location + offset);
            //topright
            g.DrawString((info == null) ? "???" : RoomInfos.GameRule(info.rule), e.Font, Brushes.Black,
                         new Rectangle(bounds.X + (bounds.Width - (int)rulesize.Width) - offset.Width, bounds.Y + offset.Height, bounds.Width, bounds.Height));
            ////bottomright
            g.DrawString((info == null) ? "???" : (info.isLocked ? Program.LanguageManager.Translation.GameLocked : Program.LanguageManager.Translation.GameOpen),
                         e.Font, Brushes.Black,
                         new Rectangle(bounds.X + (bounds.Width - (int)lockedsize.Width) - offset.Width, bounds.Y + (bounds.Height - (int)lockedsize.Height) - offset.Height, bounds.Width, bounds.Height));
            //bottom center
            g.DrawString(playerstring, e.Font, Brushes.Black,
                         new Rectangle(bounds.X + ((bounds.Width / 2) - ((int)playersSize.Width / 2)), bounds.Y + (bounds.Height - (int)playersSize.Height) - offset.Height, bounds.Width, bounds.Height));
            e.DrawFocusRectangle();
        }
 public void OnRoomCreated(RoomInfos[] room)
 {
     Invoke(new Action<RoomInfos>(InternalRoomCreated), room[0]);
 }
 public void OnRoomPlayersUpdate(RoomInfos data)
 {
     if (m_rooms.ContainsKey(data.roomName))
     {
         Invoke(new Action<RoomInfos>(InternalRoomPlayersUpdate), data);
     }
     else
     {
         Invoke(new Action<RoomInfos>(InternalRoomCreated), data);
     }
 }
 public void OnRoomsList(RoomInfos[] rooms)
 {
     Invoke(new Action<RoomInfos[]>(InternalRoomsList), new object[] { rooms });
 }
        private void InternalRoomCreated(RoomInfos room)
        {
            if (m_rooms.ContainsKey(room.roomName))
                return;
            m_rooms.Add(room.roomName, room);
            ListBox rooms = (room.isRanked ? RankedList : UnrankedList);

            if (FilterActive.Checked)
            {
                if (!m_rooms[room.roomName].hasStarted)
                {
                    if (m_rooms[room.roomName].Contains(FilterTextBox.Text.ToLower()) ||
                        m_rooms[room.roomName].roomName.ToLower().Contains(FilterTextBox.Text.ToLower()) ||
                        FilterTextBox.Text == "Search" || FilterTextBox.Text == "")
                    {
                        rooms.Items.Add(m_rooms[room.roomName].roomName);
                    }
                }
            }
            else
            {
                if (m_rooms[room.roomName].Contains(FilterTextBox.Text.ToLower()) ||
                        m_rooms[room.roomName].roomName.ToLower().Contains(FilterTextBox.Text.ToLower()) ||
                        FilterTextBox.Text == "Search" || FilterTextBox.Text == "")
                    {
                        rooms.Items.Add(m_rooms[room.roomName].roomName);
                    }
            }

            UpdateServerInfo();
        }
        private void InternalRoomPlayersUpdate(RoomInfos data)
        {
            if (!m_rooms.ContainsKey(data.roomName)) return;
            RoomInfos item = m_rooms[data.roomName];

            item.playerList = data.playerList;

            if (item.isRanked)
                RankedList.UpdateList();
            else
                UnrankedList.UpdateList();

            UpdateServerInfo();
        }
 private void InternalRoomsList(RoomInfos[] rooms)
 {
     m_rooms.Clear();
     UnrankedList.Items.Clear();
     RankedList.Items.Clear();
     foreach (RoomInfos room in rooms)
     {
         InternalRoomCreated(room);
     }
     UpdateServerInfo();
 }