示例#1
0
        // Protected implementation of Dispose pattern.
        protected virtual void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }

            if (disposing)
            {
                DownloadTasks.Clear();
                API = null;

                // Free any other managed objects here.
                //
            }

            // Free any unmanaged objects here.
            //
            disposed = true;
        }
        private void metroButton1_Click(object sender, EventArgs e)
        {
            try{
                int gport = 9069;


                SettingsManager.Settings.ApiKey = api.Text;

                SettingsManager.Settings.GameDirectory    = loldir.Text;
                SettingsManager.Settings.RecordIfLate     = ice.Checked;
                SettingsManager.Settings.NetworkInterface = netint.Text;


                SettingsManager.Settings.ProxyUser = proxuser.Text;
                SettingsManager.Settings.ProxyPass = proxpass.Text;
                SettingsManager.Settings.ProxyPort = int.Parse(proxport.Text);
                SettingsManager.Settings.ProxyHost = proxhost.Text;

                SettingsManager.Settings.ApiCacheEnabled     = apicache.Checked;
                SettingsManager.Settings.GhostOverlayEnabled = govcheck.Checked;
                SettingsManager.Settings.HelperEnabled       = helpercheck.Checked;
                SettingsManager.Settings.AutoGameInfo        = autogicheck.Checked;
                SettingsManager.Settings.AutoMoveOld         = automovecheck.Checked;
                SettingsManager.Settings.TopBannerBg         = bannerbgbox.Text;
                SettingsManager.Settings.AnimatorEnabled     = animatorcheck.Checked;
                SettingsManager.Settings.AdvancedGameInfo    = advginfocheck.Checked;
                SettingsManager.Settings.FollowedSummoners   = followedsumtxt.Lines;
                SettingsManager.Settings.AutoRecordGame      = autorecordcheck.Checked;
                SettingsManager.Settings.PortForwarding      = portforwardcheck.Checked;


                if (int.TryParse(gstreamport.Text, out gport))
                {
                    SettingsManager.Settings.GhostStreamPort = gport;
                }
                else
                {
                    SettingsManager.Settings.GhostStreamPort = 9069;
                }


                if (proxyopt.Text == "Network")
                {
                    SettingsManager.Settings.ProxyOption = GhostLib.Network.ProxyType.Network;
                }
                else if (proxyopt.Text == "Proxy")
                {
                    SettingsManager.Settings.ProxyOption = GhostLib.Network.ProxyType.Proxy;
                }
                else
                {
                    SettingsManager.Settings.ProxyOption = GhostLib.Network.ProxyType.None;
                }

                //if (SettingsManager.Settings.Speech != spcheck.Checked && spcheck.Checked && !Speech.Initialized)
                //    Speech.Initialize();
                SettingsManager.Settings.Speech             = spcheck.Checked;
                SettingsManager.Settings.RecordingDirectory = recdir.Text;
                RiotSharp.Region reg = RiotSharp.Region.euw;

                switch (serverbox.Text.ToUpper())
                {
                case "EUNE":
                    reg = RiotSharp.Region.eune;
                    break;

                case "NA":
                    reg = RiotSharp.Region.na;
                    break;

                case "OCE":
                    reg = RiotSharp.Region.oce;
                    break;

                case "RU":
                    reg = RiotSharp.Region.ru;
                    break;

                case "TR":
                    reg = RiotSharp.Region.tr;
                    break;

                case "KR":
                    reg = RiotSharp.Region.kr;
                    break;

                case "LAN":
                    reg = RiotSharp.Region.lan;
                    break;

                case "LAS":
                    reg = RiotSharp.Region.las;
                    break;

                case "BR":
                    reg = RiotSharp.Region.br;
                    break;
                }
                if (API == null && frm != null)
                {
                    frm.API = RiotSharp.RiotApi.GetInstance(api.Text);
                }
                else if (API == null)
                {
                    API = RiotSharp.RiotApi.GetInstance(api.Text);
                }


                // Accounts
                foreach (object item in accidbox.Items)
                {
                    string sitem = item.ToString();
                    if (sitem.Length > 0 && sitem != "Add new summoner")
                    {
                        bool      add   = false;
                        GBAccount gbacc = FindAccount(int.Parse(sitem));
                        if (gbacc == null)
                        {
                            gbacc = new GBAccount();
                            add   = true;
                        }

                        Summoner sum = API.GetSummoner(gbacc.Region, gbacc.SummonerName, false);

                        gbacc.PlayerID = sum.Id;
                        if (add)
                        {
                            gbacc.PbeSummonerName = "";
                            gbacc.PbePlayerID     = 0;
                        }
                        // find player tier
                        gbacc.SummonerTier = GetTier(sum, gbacc.Region);


                        gbacc.SummonerIconId = sum.ProfileIconId;
                        GhostbladeInstance.DataDragonInstance.GetIcon(sum.ProfileIconId);
                        gbacc.SummonerLevel = sum.Level;

                        if (SettingsManager.Settings.Accounts == null)
                        {
                            SettingsManager.Settings.Accounts = new List <GBAccount>();
                        }

                        if (add)
                        {
                            SettingsManager.Settings.Accounts.Insert(0, gbacc);
                        }
                        else
                        {
                            SettingsManager.Settings.Accounts[int.Parse(sitem)] = gbacc;
                        }

                        // make it default
                        if (accidbox.Text == sitem)
                        {
                            SettingsManager.Settings.Accounts.RemoveAt(int.Parse(sitem));
                            SettingsManager.Settings.Accounts.Insert(0, gbacc);
                        }
                    }
                }

                SettingsManager.Save();
                if (frm == null)
                {
                    MessageBox.Show("Settings saved\n You should restart Ghostblade", "Save Settings", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Process.Start(Application.StartupPath + @"\Ghostblade.exe", "-restart");
                    Process.GetCurrentProcess().Kill();
                }
                else
                {
                    MetroMessageBox.Show(frm, "Settings saved", "Save Settings", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    frm.SelectedAccount = SettingsManager.Settings.Accounts[0];
                    frm.MainTopBanner.Switch(frm.SelectedAccount);
                    frm.RefillTheFollowerQueue();
                }
                //File.WriteAllText(Application.StartupPath + @"\API.dat", api.Text);
                NetworkManager.Init();
            }
            catch (Exception ex)

            {
                //Log.LogEx(ex);
                MessageBox.Show(this, ex.Message + "\n" + ex.StackTrace, "Save Settings", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#3
0
        public void LoadGame(RootObject gameinfo, RiotSharp.RiotApi api, RiotSharp.Region reg, long sid)
        {
            try
            {
                BluePanel.BeginInvoke(new MethodInvoker(delegate
                {
                    BluePanel.Controls.Clear();
                    RedPanel.Controls.Clear();
                    ginfo.Text = RiotTool.ToMapString(gameinfo.MapType) + ", " + RiotTool.ToQueueString(gameinfo.gameQueueConfigId) + " - " + RiotTool.PlatformToString(gameinfo.platformId);
                    metroProgressSpinner1.Visible = true;


                    B1.Visible = (gameinfo.bannedChampions.Count != 0);
                    B2.Visible = (gameinfo.bannedChampions.Count != 0);
                    B3.Visible = (gameinfo.bannedChampions.Count != 0);
                    B4.Visible = (gameinfo.bannedChampions.Count != 0);
                    B5.Visible = (gameinfo.bannedChampions.Count != 0);
                    B6.Visible = (gameinfo.bannedChampions.Count != 0);


                    foreach (BannedChampion b in gameinfo.bannedChampions)
                    {
                        Image champ = Image.FromFile(Application.StartupPath + @"\Champions\" + CurrentGame.GetChampion(b.ChampionId) + ".png");
                        switch (b.PickTurn)
                        {
                        case 1:
                            B1.BackgroundImage = champ;
                            break;

                        case 3:
                            B2.BackgroundImage = champ;
                            break;

                        case 5:
                            B3.BackgroundImage = champ;
                            break;

                        case 2:
                            B4.BackgroundImage = champ;
                            break;

                        case 4:
                            B5.BackgroundImage = champ;
                            break;

                        case 6:
                            B6.BackgroundImage = champ;
                            break;
                        }
                    }
                }));
                int c = 0;

                frm.AnimationType = AnimatorNS.AnimationType.Mosaic;
                //foreach (Participant p in gameinfo.participants)
                //{
                ParallelLoopResult pr = Parallel.ForEach(gameinfo.participants, p =>
                {
                    Player pl = new Player(p.TeamId == 200);


                    pl.Dock          = DockStyle.Top;
                    LeaguePlayer pls = new LeaguePlayer();
                    pls.LoadPlayer(reg, api, p, CurrentGame.GetChampion(p.ChampionId));
                    if (pls.SummonerName == "Error occured")
                    {
                        pls.SummonerName = p.Name;
                    }
                    pl.LoadSummonerData(pls);
                    MetroPanel panel = null;
                    if (p.TeamId == 100)
                    {
                        panel = BluePanel;
                    }
                    else
                    {
                        panel = RedPanel;
                    }
                    pls.Dispose();
                    panel.Invoke(new MethodInvoker(delegate
                    {
                        //if (panel == BluePanel && p.TeamId != 100)
                        //    panel = RedPanel;
                        c++;
                        metroProgressSpinner1.Value = (int)((double)((double)c / (double)gameinfo.participants.Count) * 100);

                        panel.Controls.Add(pl);
                        //pl.Visible = false;

                        //frm.Show(pl, Program.MainFormInstance.MainTabControl.SelectedTab == Program.MainFormInstance.GameInfoTab);
                    }));

                    //   }
                });
                while (!pr.IsCompleted)
                {
                    Thread.Sleep(100);
                }

                RedPanel.Invoke(new MethodInvoker(delegate
                {
                    this.RedPanel.Controls.Add(this.RedBan);
                    this.BluePanel.Controls.Add(this.BlueBan);
                    metroProgressSpinner1.Visible = false;
                    metroProgressSpinner1.Value   = 1;
                }));

                Program.MainFormInstance.ShowInfo("Game info", "The current game info are ready to be viewed");
                if (SettingsManager.Settings.Speech)
                {
                    SoundPlayer sp = new SoundPlayer(Application.StartupPath + @"\Data\done.wav");
                    sp.Load();
                    sp.PlaySync();
                    sp.Dispose();
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            catch (Exception ex)
            {
                Logger.Instance.Log.Error("Failed to load game", ex);
            }
        }