Exemple #1
0
        private void dg_games_DClick(object sender, RoutedEventArgs e)
        {
            List <dsplayer>          temp    = new List <dsplayer>();
            Dictionary <string, int> units   = new Dictionary <string, int>();
            List <rxunit>            rxunits = new List <rxunit>();
            dsplayer pltemp = new dsplayer();

            foreach (var dataItem in dg_games.SelectedItems)
            {
                //myGame game = dataItem as myGame;
                dsreplay game = dataItem as dsreplay;
                pltemp.RACE = game.REPLAY;
                temp.Add(pltemp);
                foreach (dsplayer pl in game.PLAYERS)
                {
                    temp.Add(pl);
                    if (pl.UNITS.ContainsKey("ALL"))
                    {
                        foreach (string unit in pl.UNITS["ALL"].Keys)
                        {
                            if (units.ContainsKey(unit))
                            {
                                units[unit] += pl.UNITS["ALL"][unit];
                            }
                            else
                            {
                                units.Add(unit, pl.UNITS["ALL"][unit]);
                            }
                        }
                    }
                }
            }
            foreach (string unit in units.Keys)
            {
                rxunits.Add(new rxunit(unit, units[unit]));
            }

            dg_units.ItemsSource = rxunits.OrderByDescending(o => o.COUNT);

            if (temp.Count > 300)
            {
                pltemp.RACE = "Visibility limit is 300. Sorry.";
                List <dsplayer> bab = new List <dsplayer>();
                bab.Add(pltemp);

                dg_player.ItemsSource = bab;
            }
            else
            {
                dg_player.ItemsSource = temp;
            }

            if (temp.Count < 120)
            {
                dg_player.EnableRowVirtualization = false;

                Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle, new Action(ProcessRows_player));
            }
            //ProcessRows_player();
        }
 public void bt_send_Click(object sender, RoutedEventArgs e)
 {
     foreach (var dataItem in dg_games.SelectedItems)
     {
         dsreplay game = dataItem as dsreplay;
         game.MMID = tb_rep_mmid.Text;
         if (int.Parse(game.MMID) > 0)
         {
             SendRep(game);
         }
         else
         {
             MessageBox.Show("No MMID found - you might want to enter it manually in the MMID Textbox)", "sc2dsmm");
         }
     }
 }
        private void dg_games_DClick(object sender, RoutedEventArgs e)
        {
            List <dsplayer> temp   = new List <dsplayer>();
            dsplayer        pltemp = new dsplayer();

            foreach (var dataItem in dg_games.SelectedItems)
            {
                //myGame game = dataItem as myGame;
                dsreplay game = dataItem as dsreplay;
                pltemp.RACE = game.REPLAY;
                temp.Add(pltemp);
                foreach (dsplayer pl in game.PLAYERS)
                {
                    temp.Add(pl);
                }
            }

            if (temp.Count > 300)
            {
                pltemp.RACE = "Visibility ilmit is 300. Sorry.";
                List <dsplayer> bab = new List <dsplayer>();
                bab.Add(pltemp);

                dg_player.ItemsSource = bab;
            }
            else
            {
                dg_player.ItemsSource = temp;
            }

            if (temp.Count < 120)
            {
                dg_player.EnableRowVirtualization = false;

                Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle, new Action(ProcessRows_player));
            }
            //ProcessRows_player();
        }
        public void SendRep(dsreplay game)
        {
            string result1 = "";
            string result2 = "";
            string result  = "unknown";

            if (game != null)
            {
                if (game.REPORTED == 0)
                {
                    int mmid = 0;
                    try
                    {
                        mmid = int.Parse(tb_rep_mmid.Text);
                    } catch { }


                    if (mmid > 0 && WM.MMIDS.Count > 0)
                    {
                        if (WM.MMIDS.ContainsKey(mmid) == true)
                        {
                        }
                        else
                        {
                            dsmmid id = new dsmmid();
                            id.MMID = mmid;
                            WM.MMIDS.Add(mmid, id);
                        }
                    }
                    else
                    {
                        dsmmid id = new dsmmid();
                        id.MMID = mmid;
                        WM.MMIDS.Add(mmid, id);
                    }

                    foreach (dsplayer player in game.PLAYERS)
                    {
                        if (player.POS <= game.PLAYERCOUNT / 2)
                        {
                            result1 += "(" + player.NAME + ", " + player.RACE + ", " + player.KILLSUM + ")";
                            if (player.POS != 3)
                            {
                                result1 += ", ";
                            }
                        }
                        else if (player.POS > game.PLAYERCOUNT / 2)
                        {
                            result2 += "(" + player.NAME + ", " + player.RACE + ", " + player.KILLSUM + ")";
                            if (player.POS != 6)
                            {
                                result2 += ", ";
                            }
                        }

                        dsplayer        plid  = new dsplayer();
                        List <dsplayer> ltemp = new List <dsplayer>(WM.MMIDS[mmid].REPORTS.Where(x => x.NAME == player.NAME).ToList());
                        if (ltemp.Count > 0)
                        {
                            plid           = ltemp.ElementAt(0);
                            plid.ARMY      = player.ARMY;
                            plid.INCOME    = player.INCOME;
                            plid.PDURATION = player.PDURATION;
                            plid.POS       = player.POS;
                            //plid.WINNER = player.WINNER;
                        }
                        else
                        {
                            WM.MMIDS[mmid].REPORTS.Add(player);
                        }
                    }
                    if (game.WINNER == 0)
                    {
                        result = result1 + " vs " + result2;
                    }
                    else if (game.WINNER == 1)
                    {
                        result = result2 + " vs " + result1;
                    }
                    result1 = "";
                    result2 = "";

                    WM.MMIDS[mmid].REPLAY   = game;
                    WM.MMIDS[mmid].DURATION = game.DURATION;

                    string smmid = game.MMID;
                    if (smmid == "0")
                    {
                        smmid = tb_rep_mmid.Text;
                    }
                    string response = WM.SendResult("mmid: " + mmid + "; result: " + result, game);
                    if (response == "sc2dsmm: Result: 0")
                    {
                    }
                    else
                    {
                        this.Close();
                    }
                }
            }
        }