private void QuickHost(string mode, bool isranked)
        {
            var ran = new Random();
            var form = new Host(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();
            string server = string.Empty;
            if (matchedRooms.Count > 0)
            {
                var selectroom = ran.Next(matchedRooms.Count);
                form.GameName = matchedRooms[selectroom].roomName;
                server = matchedRooms[selectroom].server;
            }

            if (string.IsNullOrEmpty(server))
            {
                LauncherHelper.GenerateConfig(GetServer(), form.GenerateURI(isranked));
                LauncherHelper.RunGame("-j");
            }
            else
            {
                LauncherHelper.GenerateConfig(Program.ServerList[server], form.GenerateURI(isranked));
                LauncherHelper.RunGame("-j");
            }

        }
        private void HostGame()
        {
            var form = new Host(false);

            if (form.ShowDialog() == DialogResult.OK)
            {
                if (m_rooms.ContainsKey(form.PasswordInput.Text))
                {
                    MessageBox.Show(Program.LanguageManager.Translation.GamePasswordExsists);
                    return;
                }
                if (Program.ServerList.Count == 0)
                {
                    MessageBox.Show(Program.LanguageManager.Translation.GameNoServers);
                    return;
                }

                LauncherHelper.GenerateConfig(GetServer(), form.GenerateURI(false));
                LauncherHelper.RunGame("-j");
                Program.ChatServer.SendPacket(DevServerPackets.HostDuel);
            }
        }
示例#3
0
        private void RequestDuel(object sender, EventArgs e)
        {
            ListBox list = (UserListTabs.SelectedTab.Name == ChannelTab.Name ? ChannelList : UserList);
            if (list.SelectedItem == null)
            {
                return;
            }

            if ((list.SelectedItem is string ? list.SelectedItem.ToString() : ((UserData)list.SelectedItem).username) == Program.UserInfo.username)
            {
                WriteMessage(new ChatMessage(MessageType.System, CommandType.None, null, "You cannot duel request your self."));
            }
            else
            {
                var form = new Host();
                ServerInfo server = Program.MainForm.GameWindow.GetServer(false);
                if (server == null)
                {
                    MessageBox.Show("No Server Available.");
                    return;
                }

                Program.ChatServer.SendPacket(DevServerPackets.RequestDuel,
                    JsonSerializer.SerializeToString(
                    new DuelRequest
                    {
                        username = list.SelectedItem is string ? list.SelectedItem.ToString() : ((UserData)list.SelectedItem).username,
                        duelformatstring = form.GenerateURI(false),
                        server = server.serverName
                    }));
                WriteMessage(new ChatMessage(MessageType.System, CommandType.None, null, "Duel request sent to " + (list.SelectedItem is string ? list.SelectedItem.ToString() : ((UserData)list.SelectedItem).username) + "."));
            }
        }
示例#4
0
        private void HostGame(object sender, EventArgs e)
        {
            var button = (ToolStripMenuItem)sender;
            var form = new Host(false, (button.Name == "Ranked"));
            if (button.Name == "Ranked")
            {
                form.Mode.Items.Clear();
                form.Mode.Items.AddRange(new object[] { "Single", "Match", "Tag" });
                form.Mode.SelectedItem = "Match";
                if (form.BanList.Items.Count > 0)
                    form.BanList.SelectedIndex = 0;
                form.CardRules.SelectedIndexChanged += form.FormatChanged;
                form.BanList.Enabled = false;
                form.Priority.Enabled = false;
                form.ShuffleDeck.Enabled = false;
                form.CheckDeck.Enabled = false;
                form.LifePoints.Enabled = false;
                form.CardRules.Items.Clear();
                form.CardRules.Items.AddRange(new object[] { "TCG", "OCG" });
                form.CardRules.SelectedItem = "TCG";
            }

            if (form.ShowDialog() == DialogResult.OK)
            {

                if (m_rooms.ContainsKey(form.PasswordInput.Text))
                {
                    MessageBox.Show(Program.LanguageManager.Translation.GamePasswordExsists);
                    return;
                }
                if (Program.ServerList.Count == 0)
                {
                    MessageBox.Show(Program.LanguageManager.Translation.GameNoServers);
                    return;
                }

                LauncherHelper.GenerateConfig(GetServer(), form.GenerateURI((button.Name == "Ranked")));
                LauncherHelper.RunGame("-j");
            }
        }
        private void HostGame()
        {
            var form = new Host(false);

            if (form.ShowDialog() == DialogResult.OK)
            {
                if (m_rooms.ContainsKey(form.PasswordInput.Text))
                {
                    MessageBox.Show(Program.LanguageManager.Translation.GamePasswordExsists);
                    return;
                }

                ServerInfo server = form.CardRules.Text == "2099" ? GetServer(Program.Config.Server2099) : GetServer(false);

                if (server != null)
                {
                    LauncherHelper.GenerateConfig(server, form.GenerateURI(false));
                    LauncherHelper.RunGame("-j");
                    Program.ChatServer.SendPacket(DevServerPackets.HostDuel);
                }
                else
                {
                    MessageBox.Show(Program.LanguageManager.Translation.GameNoServers);
                    return;
                }
            }
        }