Esempio n. 1
0
        /// <summary>
        /// 通过API获取英雄的三围成长信息并存到本地
        /// (更新数据的话直接调用这个方法就可以了)
        /// </summary>
        /// <returns></returns>
        public static async Task <bool> DownloadHeroAttributesDataAsync()
        {
            //string url = String.Format("https://www.dota2.com/jsfeed/heropediadata?feeds=herodata");
            string url = "https://api.opendota.com/api/heroStats";

            Windows.Web.Http.HttpClient http = new Windows.Web.Http.HttpClient();
            string jsonMessage;

            try
            {
                var response = await http.GetAsync(new Uri(url));

                jsonMessage = await response.Content.ReadAsStringAsync();

                if (jsonMessage.Length < 256)
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }

            //然后把这一长串字符串存到本地
            try
            {
                if (jsonMessage.Length < 256)
                {
                    return(false);
                }
                DotaHeroHelper._data = jsonMessage;
                DotaHeroHelper.SaveToFile();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 显示英雄榜
        /// </summary>
        private async void ShowPlayersBoard()
        {
            rankPlayers = await DotaHeroHelper.GetHeroPlayersAsync(Array.IndexOf(ConstantsHelper.HeroID, SelectedHero.ID).ToString());

            if (rankPlayers == null)
            {
                FailedTextBlock.Visibility         = Visibility.Visible;
                PlayersIndexGridView.SelectedIndex = -1;
                PlayersIndexGridView.IsEnabled     = false;
                LeftHyperlinkButton.IsEnabled      = false;
                RightHyperlinkButton.IsEnabled     = false;
                return;
            }
            HeroPlayerProgressRing.IsActive   = false;
            HeroPlayerProgressRing.Visibility = Visibility.Collapsed;
            for (int i = 0; i < 10; i++)
            {
                rankPlayers[i].Rank = i + 1;
                rankPlayersObservableCollection.Add(rankPlayers[i]);
            }
            PlayersListView.ItemsSource        = rankPlayersObservableCollection;
            PlayersIndexGridView.SelectedIndex = 0;
        }
Esempio n. 3
0
        /// <summary>
        /// 显示英雄三围属性成长
        /// </summary>
        private async void ShowTheHeroAttr()
        {
            heroAttr = await DotaHeroHelper.GetHeroAttr(Array.IndexOf(ConstantsHelper.HeroID, SelectedHero.ID).ToString());

            if (heroAttr == null)
            {
                ShowDialog("抱歉,获取英雄三围数据时出现问题,请联系开发人员[email protected]");
                return;
            }
            //初始属性
            StrTextBlock.Text = heroAttr.Base_str;
            AgiTextBlock.Text = heroAttr.Base_agi;
            IntTextBlock.Text = heroAttr.Base_int;

            HealthTextBlock.Text      = (200 + ConvertString2Double(heroAttr.Base_str) * 20).ToString("f0");
            ManaTextBlock.Text        = (75 + ConvertString2Double(heroAttr.Base_int) * 12).ToString("f0");
            MsTextBlock.Text          = (ConvertString2Double(heroAttr.Move_speed) * (1 + ConvertString2Double(heroAttr.Base_agi) * 0.0005)).ToString("f0");
            ArmorTextBlock.Text       = (ConvertString2Double(heroAttr.Base_armor) + ConvertString2Double(heroAttr.Base_agi) * 0.16).ToString("f1");
            HealthRegenTextBlock.Text = (ConvertString2Double(heroAttr.Base_health_regen) + 0.09 * ConvertString2Double(heroAttr.Base_str)).ToString("f1");
            ManaRegenTextBlock.Text   = (ConvertString2Double(heroAttr.Base_mana_regen) + 0.05 * ConvertString2Double(heroAttr.Base_int)).ToString("f1");

            double DmgAddition = 0;

            switch (HeroesPage.selectedHeroPA)
            {
            case 1:
                DmgAddition             = ConvertString2Double(heroAttr.Base_str);
                StrTextBlock.FontWeight = Windows.UI.Text.FontWeights.Bold;
                StrEllipse.Visibility   = Visibility.Visible;
                break;

            case 2:
                DmgAddition             = ConvertString2Double(heroAttr.Base_agi);
                AgiTextBlock.FontWeight = Windows.UI.Text.FontWeights.Bold;
                AgiEllipse.Visibility   = Visibility.Visible;
                break;

            case 3:
                DmgAddition             = ConvertString2Double(heroAttr.Base_int);
                IntTextBlock.FontWeight = Windows.UI.Text.FontWeights.Bold;
                IntEllipse.Visibility   = Visibility.Visible;
                break;

            default:
                break;
            }
            DmgTextBlock.Text             = (ConvertString2Double(heroAttr.Base_attack_min) + DmgAddition) + " - " + (ConvertString2Double(heroAttr.Base_attack_max) + DmgAddition);
            AttackRangeTextBlock.Text     = heroAttr.Attack_range;
            AttkRateTextBlock.Text        = heroAttr.Attack_rate;
            TurnRateTextBlock.Text        = heroAttr.Turn_rate;
            ProjectileSpeedTextBlock.Text = heroAttr.Projectile_speed;
            CMModeTextBlock.Text          = heroAttr.Cm_enabled == "true" ? "是" : "否";

            double[] pick  = new double[] { ConvertString2Double(heroAttr._1_pick), ConvertString2Double(heroAttr._2_pick), ConvertString2Double(heroAttr._3_pick), ConvertString2Double(heroAttr._4_pick), ConvertString2Double(heroAttr._5_pick), ConvertString2Double(heroAttr._6_pick), ConvertString2Double(heroAttr._7_pick), ConvertString2Double(heroAttr._8_pick) };
            double[] win   = new double[] { ConvertString2Double(heroAttr._1_win), ConvertString2Double(heroAttr._2_win), ConvertString2Double(heroAttr._3_win), ConvertString2Double(heroAttr._4_win), ConvertString2Double(heroAttr._5_win), ConvertString2Double(heroAttr._6_win), ConvertString2Double(heroAttr._7_win), ConvertString2Double(heroAttr._8_win) };
            double   max   = pick.Max();
            double   ratio = 328.0 / max;

            Pick_1Rectangle.Width = ConvertString2Double(heroAttr._1_pick) * ratio;
            Pick_2Rectangle.Width = ConvertString2Double(heroAttr._2_pick) * ratio;
            Pick_3Rectangle.Width = ConvertString2Double(heroAttr._3_pick) * ratio;
            Pick_4Rectangle.Width = ConvertString2Double(heroAttr._4_pick) * ratio;
            Pick_5Rectangle.Width = ConvertString2Double(heroAttr._5_pick) * ratio;
            Pick_6Rectangle.Width = ConvertString2Double(heroAttr._6_pick) * ratio;
            Pick_7Rectangle.Width = ConvertString2Double(heroAttr._7_pick) * ratio;
            Pick_8Rectangle.Width = ConvertString2Double(heroAttr._8_pick) * ratio;

            Win_1Rectangle.Width = ConvertString2Double(heroAttr._1_win) * ratio;
            Win_2Rectangle.Width = ConvertString2Double(heroAttr._2_win) * ratio;
            Win_3Rectangle.Width = ConvertString2Double(heroAttr._3_win) * ratio;
            Win_4Rectangle.Width = ConvertString2Double(heroAttr._4_win) * ratio;
            Win_5Rectangle.Width = ConvertString2Double(heroAttr._5_win) * ratio;
            Win_6Rectangle.Width = ConvertString2Double(heroAttr._6_win) * ratio;
            Win_7Rectangle.Width = ConvertString2Double(heroAttr._7_win) * ratio;
            Win_8Rectangle.Width = ConvertString2Double(heroAttr._8_win) * ratio;

            Win_1TextBlock.Text  = heroAttr._1_win;
            Pick_1TextBlock.Text = heroAttr._1_pick;
            Rate_1TextBlock.Text = (100 * ConvertString2Double(heroAttr._1_win) / ConvertString2Double(heroAttr._1_pick)).ToString("f1") + "%";
            Win_2TextBlock.Text  = heroAttr._2_win;
            Pick_2TextBlock.Text = heroAttr._2_pick;
            Rate_2TextBlock.Text = (100 * ConvertString2Double(heroAttr._2_win) / ConvertString2Double(heroAttr._2_pick)).ToString("f1") + "%";
            Win_3TextBlock.Text  = heroAttr._3_win;
            Pick_3TextBlock.Text = heroAttr._3_pick;
            Rate_3TextBlock.Text = (100 * ConvertString2Double(heroAttr._3_win) / ConvertString2Double(heroAttr._3_pick)).ToString("f1") + "%";
            Win_4TextBlock.Text  = heroAttr._4_win;
            Pick_4TextBlock.Text = heroAttr._4_pick;
            Rate_4TextBlock.Text = (100 * ConvertString2Double(heroAttr._4_win) / ConvertString2Double(heroAttr._4_pick)).ToString("f1") + "%";
            Win_5TextBlock.Text  = heroAttr._5_win;
            Pick_5TextBlock.Text = heroAttr._5_pick;
            Rate_5TextBlock.Text = (100 * ConvertString2Double(heroAttr._5_win) / ConvertString2Double(heroAttr._5_pick)).ToString("f1") + "%";
            Win_6TextBlock.Text  = heroAttr._6_win;
            Pick_6TextBlock.Text = heroAttr._6_pick;
            Rate_6TextBlock.Text = (100 * ConvertString2Double(heroAttr._6_win) / ConvertString2Double(heroAttr._6_pick)).ToString("f1") + "%";
            Win_7TextBlock.Text  = heroAttr._7_win;
            Pick_7TextBlock.Text = heroAttr._7_pick;
            Rate_7TextBlock.Text = (100 * ConvertString2Double(heroAttr._7_win) / ConvertString2Double(heroAttr._7_pick)).ToString("f1") + "%";
            Win_8TextBlock.Text  = heroAttr._8_win;
            Pick_8TextBlock.Text = heroAttr._8_pick;
            Rate_8TextBlock.Text = (100 * ConvertString2Double(heroAttr._8_win) / ConvertString2Double(heroAttr._8_pick)).ToString("f1") + "%";
        }
Esempio n. 4
0
        /// <summary>
        /// 使用正则表达式获取指定英雄的属性
        /// </summary>
        /// <returns></returns>
        public static async Task <HeroAttr> GetHeroAttr(string id)
        {
            if (_data.Length < 256)
            {
                await DotaHeroHelper.GetHeroAttributesDataAsync();
            }
            HeroAttr result = null;

            try
            {
                Match  match    = Regex.Match(_data, "{\\\"id\\\":" + id + ",[\\d\\D]*?}");
                string jsonPart = match.Groups[0].Value
                                  .Replace("1_pick", "_1_pick")
                                  .Replace("2_pick", "_2_pick")
                                  .Replace("3_pick", "_3_pick")
                                  .Replace("4_pick", "_4_pick")
                                  .Replace("5_pick", "_5_pick")
                                  .Replace("6_pick", "_6_pick")
                                  .Replace("7_pick", "_7_pick")
                                  .Replace("8_pick", "_8_pick")
                                  .Replace("1_win", "_1_win")
                                  .Replace("2_win", "_2_win")
                                  .Replace("3_win", "_3_win")
                                  .Replace("4_win", "_4_win")
                                  .Replace("5_win", "_5_win")
                                  .Replace("6_win", "_6_win")
                                  .Replace("7_win", "_7_win")
                                  .Replace("8_win", "_8_win");
                result = JsonConvert.DeserializeObject <HeroAttr>(jsonPart);
            }
            catch
            {
                return(null);
            }
            return(result);
            //Match matchAttr = Regex.Match(_data, "\\\"id\\\":" + id + ",[\\d\\D]*?\\\"base_health\\\":([\\d\\D]*?)," +
            //    "\\\"base_health_regen\\\":([\\d\\D]*?),\\\"base_mana\\\":([\\d\\D]*?),\\\"base_mana_regen\\\":" +
            //    "([\\d\\D]*?),\\\"base_armor\\\":([\\d\\D]*?),\\\"[\\d\\D]*?,\\\"base_attack_min\\\":([\\d\\D]*?)," +
            //    "\\\"base_attack_max\\\":([\\d\\D]*?),\\\"base_str\\\":([\\d\\D]*?),\\\"base_agi\\\":([\\d\\D]*?)," +
            //    "\\\"base_int\\\":([\\d\\D]*?),\\\"str_gain\\\":([\\d\\D]*?),\\\"agi_gain\\\":([\\d\\D]*?)," +
            //    "\\\"int_gain\\\":([\\d\\D]*?),\\\"attack_range\\\":([\\d\\D]*?)," +
            //    "\\\"projectile_speed\\\":([\\d\\D]*?),\\\"attack_rate\\\":([\\d\\D]*?)," +
            //    "\\\"move_speed\\\":([\\d\\D]*?),\\\"turn_rate\\\":([\\d\\D]*?)," +
            //    "\\\"cm_enabled\\\":([\\d\\D]*?),\\\"[\\d\\D]*?\\\"pro_ban\\\":[\\d\\D]*?,([\\d\\D]*?)}");
            //HeroAttr hero = new HeroAttr();
            //hero.Base_health = matchAttr.Groups[1].Value;
            //hero.Base_health_regen = matchAttr.Groups[2].Value;
            //hero.Base_mana = matchAttr.Groups[3].Value;
            //hero.Base_mana_regen = matchAttr.Groups[4].Value;
            //hero.Base_armor = matchAttr.Groups[5].Value;
            //hero.Base_attack_min = matchAttr.Groups[6].Value;
            //hero.Base_attack_max = matchAttr.Groups[7].Value;
            //hero.Base_str = matchAttr.Groups[8].Value;
            //hero.Base_agi = matchAttr.Groups[9].Value;
            //hero.Base_int = matchAttr.Groups[10].Value;
            //hero.Str_gain = matchAttr.Groups[11].Value;
            //hero.Agi_gain = matchAttr.Groups[12].Value;
            //hero.Int_gain = matchAttr.Groups[13].Value;
            //hero.Attack_range = matchAttr.Groups[14].Value;
            //hero.Projectile_speed = matchAttr.Groups[15].Value;
            //hero.Attack_rate = matchAttr.Groups[16].Value;
            //hero.Move_speed = matchAttr.Groups[17].Value;
            //hero.Turn_rate = matchAttr.Groups[18].Value;
            //hero.Cm_enabled = matchAttr.Groups[19].Value;

            //string pick_win = matchAttr.Groups[20].Value;
            //Match pick1Match = Regex.Match(pick_win, "\\\"1_pick\\\":([\\d\\D]*?)");
            //Match pick2Match = Regex.Match(pick_win, "\\\"2_pick\\\":([\\d\\D]*?)");
            //Match pick3Match = Regex.Match(pick_win, "\\\"3_pick\\\":([\\d\\D]*?)");
            //Match pick4Match = Regex.Match(pick_win, "\\\"4_pick\\\":([\\d\\D]*?)");
            //Match pick5Match = Regex.Match(pick_win, "\\\"5_pick\\\":([\\d\\D]*?)");
            //Match pick6Match = Regex.Match(pick_win, "\\\"6_pick\\\":([\\d\\D]*?)");
            //Match pick7Match = Regex.Match(pick_win, "\\\"7_pick\\\":([\\d\\D]*?)");
            //Match win1Match = Regex.Match(pick_win, "\\\"1_win\\\":([\\d\\D]*?)");
            //Match win2Match = Regex.Match(pick_win, "\\\"2_win\\\":([\\d\\D]*?)");
            //Match win3Match = Regex.Match(pick_win, "\\\"3_win\\\":([\\d\\D]*?)");
            //Match win4Match = Regex.Match(pick_win, "\\\"4_win\\\":([\\d\\D]*?)");
            //Match win5Match = Regex.Match(pick_win, "\\\"5_win\\\":([\\d\\D]*?)");
            //Match win6Match = Regex.Match(pick_win, "\\\"6_win\\\":([\\d\\D]*?)");
            //Match win7Match = Regex.Match(pick_win, "\\\"7_win\\\":([\\d\\D]*?)");

            //hero._1_pick = pick1Match.Groups[1].Value;
            //hero._2_pick = pick2Match.Groups[1].Value;
            //hero._3_pick = pick3Match.Groups[1].Value;
            //hero._4_pick = pick4Match.Groups[1].Value;
            //hero._5_pick = pick5Match.Groups[1].Value;
            //hero._6_pick = pick6Match.Groups[1].Value;
            //hero._7_pick = pick7Match.Groups[1].Value;
            //hero._1_win = win1Match.Groups[1].Value;
            //hero._2_win = win2Match.Groups[1].Value;
            //hero._3_win = win3Match.Groups[1].Value;
            //hero._4_win = win4Match.Groups[1].Value;
            //hero._5_win = win5Match.Groups[1].Value;
            //hero._6_win = win6Match.Groups[1].Value;
            //hero._7_win = win7Match.Groups[1].Value;
        }
Esempio n. 5
0
 /// <summary>
 /// 读取本地存储的三围成长信息
 /// </summary>
 /// <returns></returns>
 public static async Task <string> GetHeroAttributesDataAsync()
 {
     return(await DotaHeroHelper.Getdata());
 }
Esempio n. 6
0
        /// <summary>
        /// 添加所有的英雄到字典里,以及添加指定的英雄到列表中
        /// </summary>
        private async void LoadAllHeroesList()
        {
            WaitStackPanel.Visibility = Visibility.Visible;
            WaitProgressRing.IsActive = true;

            // 下载属性三围数据
            if (DotaHeroHelper._data.Length < 256)
            {
                await DotaHeroHelper.DownloadHeroAttributesDataAsync();
            }

            if (!ConstantsHelper.dotaHerosDictionary.ContainsKey("grimstroke"))
            {
                // 添加字典
                ConstantsHelper.dotaHerosDictionary.Clear();
                #region
                ConstantsHelper.dotaHerosDictionary.Add("axe", new DotaHeroes("斧王", "axe", "斧王二十连斩!"));
                //ConstantsHelper.dotaHerosDictionary["axe"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.axe.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("earthshaker", new DotaHeroes("撼地者", "earthshaker", "土地在我脚下移动。"));
                //ConstantsHelper.dotaHerosDictionary["earthshaker"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.earthshaker.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("pudge", new DotaHeroes("帕吉", "pudge", "嘴巴里再塞个苹果就能当火鸡了!"));
                //ConstantsHelper.dotaHerosDictionary["pudge"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.pudge.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("sand_king", new DotaHeroes("沙王", "sand_king", "国王一言,八马难追。"));
                //ConstantsHelper.dotaHerosDictionary["sand_king"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.sand_king.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("sven", new DotaHeroes("斯温", "sven", "流浪剑客又杀一个。"));
                //ConstantsHelper.dotaHerosDictionary["sven"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.sven.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("tiny", new DotaHeroes("小小", "tiny", "目标,采石场!"));
                //ConstantsHelper.dotaHerosDictionary["tiny"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.tiny.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("kunkka", new DotaHeroes("昆卡", "kunkka", "船员们,前方惊涛骇浪,等我发号施令!"));
                //ConstantsHelper.dotaHerosDictionary["kunkka"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.kunkka.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("slardar", new DotaHeroes("斯拉达", "slardar", "深埋于海底深渊里的宝藏由我来保护。"));
                //ConstantsHelper.dotaHerosDictionary["slardar"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.slardar.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("tidehunter", new DotaHeroes("潮汐猎人", "tidehunter", "鲜血染红了海水,到用餐的时间了!"));
                //ConstantsHelper.dotaHerosDictionary["tidehunter"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.tidehunter.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("beastmaster", new DotaHeroes("兽王", "beastmaster", "即使兵临城下,我们也不会灭绝。"));
                //ConstantsHelper.dotaHerosDictionary["beastmaster"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.beastmaster.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("wraith_king", new DotaHeroes("冥魂大帝", "wraith_king", "skeleton_king", "就算我是吓唬人又如何?"));
                //ConstantsHelper.dotaHerosDictionary["wraith_king"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.skeleton_king.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("dragon_knight", new DotaHeroes("龙骑士", "dragon_knight", "打仗靠武器,战争靠金钱。"));
                //ConstantsHelper.dotaHerosDictionary["dragon_knight"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.dragon_knight.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("clockwerk", new DotaHeroes("发条技师", "clockwerk", "rattletrap", "我运行起来就像时钟一样规律。"));
                //ConstantsHelper.dotaHerosDictionary["clockwerk"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.rattletrap.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("lifestealer", new DotaHeroes("噬魂鬼", "lifestealer", "life_stealer", "拿走你的钱,我要的是你的命。"));
                //ConstantsHelper.dotaHerosDictionary["lifestealer"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.life_stealer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("omniknight", new DotaHeroes("全能骑士", "omniknight", "平静之人,方能行走自如。"));
                //ConstantsHelper.dotaHerosDictionary["omniknight"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.omniknight.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("huskar", new DotaHeroes("哈斯卡", "huskar", "你不适合这个版本。"));
                //ConstantsHelper.dotaHerosDictionary["huskar"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.huskar.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("night_stalker", new DotaHeroes("暗夜魔王", "night_stalker", "白昼行僵,暗夜魔王。"));
                //ConstantsHelper.dotaHerosDictionary["night_stalker"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.night_stalker.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("doom", new DotaHeroes("末日使者", "doom", "doom_bringer", "和我作对的结果就是死于我的双角之下。"));
                //ConstantsHelper.dotaHerosDictionary["doom"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.doom_bringer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("spirit_breaker", new DotaHeroes("裂魂人", "spirit_breaker", "条条大路通战场。"));
                //ConstantsHelper.dotaHerosDictionary["spirit_breaker"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.spirit_breaker.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("alchemist", new DotaHeroes("炼金术士", "alchemist", "当初真应该去当个调酒师!"));
                //ConstantsHelper.dotaHerosDictionary["alchemist"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.alchemist.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("lycan", new DotaHeroes("狼人", "lycan", "防火防盗防狼人。"));
                //ConstantsHelper.dotaHerosDictionary["lycan"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.lycan.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("brewmaster", new DotaHeroes("酒仙", "brewmaster", "烈酒,是我前进的动力。"));
                //ConstantsHelper.dotaHerosDictionary["brewmaster"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.brewmaster.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("chaos_knight", new DotaHeroes("混沌骑士", "chaos_knight", "饥渴和宝剑,促使我前行。"));
                //ConstantsHelper.dotaHerosDictionary["chaos_knight"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.chaos_knight.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("treant_protector", new DotaHeroes("树精卫士", "treant_protector", "treant", "我最想找一个地方把自己种下,那里阳光明媚,旁边清泉流过。"));
                //ConstantsHelper.dotaHerosDictionary["treant_protector"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.treant.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("undying", new DotaHeroes("不朽尸王", "undying", "一次又一次,我在生死之间轮回。"));
                //ConstantsHelper.dotaHerosDictionary["undying"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.undying.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("Io", new DotaHeroes("艾欧", "Io", "wisp", "♫~"));
                //ConstantsHelper.dotaHerosDictionary["Io"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.wisp.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("centaur_warrunner", new DotaHeroes("半人马战行者", "centaur_warrunner", "centaur", "鲜血遍洒大地。"));
                //ConstantsHelper.dotaHerosDictionary["centaur_warrunner"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.centaur.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("magnus", new DotaHeroes("马格纳斯", "magnus", "magnataur", "兽蹄快如闪电。"));
                //ConstantsHelper.dotaHerosDictionary["magnus"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.magnataur.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("timbersaw", new DotaHeroes("伐木机", "timbersaw", "shredder", "那棵树看起来生气了。"));
                //ConstantsHelper.dotaHerosDictionary["timbersaw"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.shredder.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("bristleback", new DotaHeroes("钢背兽", "bristleback", "你被刺得眼睛都闭不上了,不是吗?"));
                //ConstantsHelper.dotaHerosDictionary["bristleback"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.bristleback.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("tusk", new DotaHeroes("巨牙海民", "tusk", "所到之处,皆是北方。"));
                //ConstantsHelper.dotaHerosDictionary["tusk"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.tusk.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("abaddon", new DotaHeroes("亚巴顿", "abaddon", "你的痛苦.. 将会载入史册。"));
                //ConstantsHelper.dotaHerosDictionary["abaddon"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.abaddon.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("elder_titan", new DotaHeroes("上古巨神", "elder_titan", "战斗如同破碎世界的碎片一般连结起来。"));
                //ConstantsHelper.dotaHerosDictionary["elder_titan"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.elder_titan.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("legion_commander", new DotaHeroes("军团指挥官", "legion_commander", "把敌人赶尽杀绝,不惜一切代价!"));
                //ConstantsHelper.dotaHerosDictionary["legion_commander"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.legion_commander.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("earth_spirit", new DotaHeroes("大地之灵", "earth_spirit", "眼睛会撒谎,但是灵气不虚。"));
                //ConstantsHelper.dotaHerosDictionary["earth_spirit"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.earth_spirit.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("abyssal_underlord", new DotaHeroes("孽主", "abyssal_underlord", "黑暗随我前进。"));
                //ConstantsHelper.dotaHerosDictionary["abyssal_underlord"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.abyssal_underlord.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("phoenix", new DotaHeroes("凤凰", "phoenix", "♫~"));
                //ConstantsHelper.dotaHerosDictionary["phoenix"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.phoenix.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("mars", new DotaHeroes("玛尔斯", "mars", "战矛所到之处,就是战场!"));
                //ConstantsHelper.dotaHerosDictionary["abyssal_underlord"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.abyssal_underlord.attribs;

                ConstantsHelper.dotaHerosDictionary.Add("anti_mage", new DotaHeroes("敌法师", "anti_mage", "antimage", "魔法之血债,汝之性命来偿还!"));
                //ConstantsHelper.dotaHerosDictionary["anti_mage"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.antimage.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("bloodseeker", new DotaHeroes("嗜血狂魔", "bloodseeker", "我闻到了血腥味。"));
                //ConstantsHelper.dotaHerosDictionary["bloodseeker"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.bloodseeker.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("drow_ranger", new DotaHeroes("卓尔游侠", "drow_ranger", "很多东西你都看不到了,比如说,明天。"));
                //ConstantsHelper.dotaHerosDictionary["drow_ranger"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.drow_ranger.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("juggernaut", new DotaHeroes("主宰", "juggernaut", "勤练,带来力量。"));
                //ConstantsHelper.dotaHerosDictionary["juggernaut"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.juggernaut.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("mirana", new DotaHeroes("米拉娜", "mirana", "我已经给他们机会逃跑了。"));
                //ConstantsHelper.dotaHerosDictionary["mirana"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.mirana.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("morphling", new DotaHeroes("变体精灵", "morphling", "开始涨潮了。"));
                //ConstantsHelper.dotaHerosDictionary["morphling"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.morphling.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("shadow_fiend", new DotaHeroes("影魔", "shadow_fiend", "nevermore", "你的灵魂是我的。"));
                //ConstantsHelper.dotaHerosDictionary["shadow_fiend"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.nevermore.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("phantom_lancer", new DotaHeroes("幻影长矛手", "phantom_lancer", "我们人数比你多。我们人数比你们全队都多!"));
                //ConstantsHelper.dotaHerosDictionary["phantom_lancer"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.phantom_lancer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("razor", new DotaHeroes("剃刀", "razor", "金子,是优良的导体!"));
                //ConstantsHelper.dotaHerosDictionary["razor"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.razor.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("vengeful_spirit", new DotaHeroes("复仇之魂", "vengeful_spirit", "vengefulspirit", "复仇永在我左右。"));
                //ConstantsHelper.dotaHerosDictionary["vengeful_spirit"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.vengefulspirit.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("riki", new DotaHeroes("力丸", "riki", "我的招式并不复杂,但是足以致命。"));
                //ConstantsHelper.dotaHerosDictionary["riki"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.riki.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("sniper", new DotaHeroes("狙击手", "sniper", "锁定,死定"));
                //ConstantsHelper.dotaHerosDictionary["sniper"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.sniper.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("venomancer", new DotaHeroes("剧毒术士", "venomancer", "带着毒药,充满活力。"));
                //ConstantsHelper.dotaHerosDictionary["venomancer"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.venomancer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("faceless_void", new DotaHeroes("虚空假面", "faceless_void", "我已经看到了未来,可是你不在其中。"));
                //ConstantsHelper.dotaHerosDictionary["faceless_void"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.faceless_void.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("phantom_assassin", new DotaHeroes("幻影刺客", "phantom_assassin", "我的暗杀名单上有五个名字。"));
                //ConstantsHelper.dotaHerosDictionary["phantom_assassin"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.phantom_assassin.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("templar_assassin", new DotaHeroes("圣堂刺客", "templar_assassin", "邪教异端,圣堂格杀勿论。"));
                //ConstantsHelper.dotaHerosDictionary["templar_assassin"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.templar_assassin.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("viper", new DotaHeroes("冥界亚龙", "viper", "没人会忘记蝮蛇之噬。"));
                //ConstantsHelper.dotaHerosDictionary["viper"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.viper.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("luna", new DotaHeroes("露娜", "luna", "月有盈亏,我的仁慈亦然。"));
                //ConstantsHelper.dotaHerosDictionary["luna"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.luna.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("clinkz", new DotaHeroes("克林克兹", "clinkz", "与其感慨路难行,不如马上出发。"));
                //ConstantsHelper.dotaHerosDictionary["clinkz"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.clinkz.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("broodmother", new DotaHeroes("育母蜘蛛", "broodmother", "在我的网中,你的眼睛背叛了你。"));
                //ConstantsHelper.dotaHerosDictionary["broodmother"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.broodmother.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("bounty_hunter", new DotaHeroes("赏金猎人", "bounty_hunter", "不嫌生意难做,不嫌赏金太多。"));
                //ConstantsHelper.dotaHerosDictionary["bounty_hunter"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.bounty_hunter.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("weaver", new DotaHeroes("编织者", "weaver", "命运的梭线,由我来编织。"));
                //ConstantsHelper.dotaHerosDictionary["weaver"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.weaver.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("spectre", new DotaHeroes("幽鬼", "spectre", "来自世外之地。来自世外之时。"));
                //ConstantsHelper.dotaHerosDictionary["spectre"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.spectre.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("ursa", new DotaHeroes("熊战士", "ursa", "金子,还有甜点。"));
                //ConstantsHelper.dotaHerosDictionary["ursa"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.ursa.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("gyrocopter", new DotaHeroes("矮人直升机", "gyrocopter", "我是属于天空的,而你只能呆在地面。"));
                //ConstantsHelper.dotaHerosDictionary["gyrocopter"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.gyrocopter.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("lone_druid", new DotaHeroes("德鲁伊", "lone_druid", "兵贵神速。"));
                //ConstantsHelper.dotaHerosDictionary["lone_druid"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.lone_druid.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("meepo", new DotaHeroes("米波", "meepo", "两只爪总有先后。"));
                //ConstantsHelper.dotaHerosDictionary["meepo"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.meepo.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("nyx_assassin", new DotaHeroes("司夜刺客", "nyx_assassin", "我的话语将穿透你的耳膜,直达你的思维。"));
                //ConstantsHelper.dotaHerosDictionary["nyx_assassin"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.nyx_assassin.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("naga_siren", new DotaHeroes("娜迦海妖", "naga_siren", "鱼人不能失败。"));
                //ConstantsHelper.dotaHerosDictionary["naga_siren"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.naga_siren.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("slark", new DotaHeroes("斯拉克", "slark", "你的身体是个牢笼,我只不过是解放了你。"));
                //ConstantsHelper.dotaHerosDictionary["slark"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.slark.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("medusa", new DotaHeroes("美杜莎", "medusa", "注视我的双眼。"));
                //ConstantsHelper.dotaHerosDictionary["medusa"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.medusa.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("troll_warlord", new DotaHeroes("巨魔战将", "troll_warlord", "我的大斧已经饥渴难耐了。"));
                //ConstantsHelper.dotaHerosDictionary["troll_warlord"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.troll_warlord.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("ember_spirit", new DotaHeroes("灰烬之灵", "ember_spirit", "学到了吗?"));
                //ConstantsHelper.dotaHerosDictionary["ember_spirit"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.ember_spirit.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("terrorblade", new DotaHeroes("恐怖利刃", "terrorblade", "聪明人见到我早逃走了。"));
                //ConstantsHelper.dotaHerosDictionary["terrorblade"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.terrorblade.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("arc_warden", new DotaHeroes("天穹守望者", "arc_warden", "本尊,终于驾临此地。"));
                //ConstantsHelper.dotaHerosDictionary["arc_warden"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.arc_warden.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("monkey_king", new DotaHeroes("齐天大圣", "monkey_king", "哪儿有架,哪儿就有俺!"));
                //ConstantsHelper.dotaHerosDictionary["monkey_king"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.monkey_king.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("pangolier", new DotaHeroes("石鳞剑士", "pangolier", "在你之前求战的可多了,都失败了。"));
                //ConstantsHelper.dotaHerosDictionary["pangolier"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.pangolier.attribs;

                ConstantsHelper.dotaHerosDictionary.Add("bane", new DotaHeroes("祸乱之源", "bane", "快闭上双眼梦见我。"));
                //ConstantsHelper.dotaHerosDictionary["bane"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.bane.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("crystal_maiden", new DotaHeroes("水晶室女", "crystal_maiden", "你可以燃烧我的躯体,但你永远无法解冻我的灵魂。"));
                //ConstantsHelper.dotaHerosDictionary["crystal_maiden"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.crystal_maiden.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("puck", new DotaHeroes("帕克", "puck", "莫名其妙的我就被牵扯进这一场奇怪的活动里来了。"));
                //ConstantsHelper.dotaHerosDictionary["puck"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.puck.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("storm_spirit", new DotaHeroes("风暴之灵", "storm_spirit", "都告诉你了,风暴要来。"));
                //ConstantsHelper.dotaHerosDictionary["storm_spirit"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.storm_spirit.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("windranger", new DotaHeroes("风行者", "windranger", "windrunner", "历经艰苦的失败,非我所爱。"));
                //ConstantsHelper.dotaHerosDictionary["windranger"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.windrunner.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("zeus", new DotaHeroes("宙斯", "zeus", "zuus", "你将希望我从没屈尊去关注你。"));
                //ConstantsHelper.dotaHerosDictionary["zeus"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.zuus.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("lina", new DotaHeroes("莉娜", "lina", "你脸发烫不是因为很热,是因为感到了耻辱。"));
                //ConstantsHelper.dotaHerosDictionary["lina"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.lina.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("lion", new DotaHeroes("莱恩", "lion", "我不怕地狱,地狱害怕我。"));
                //ConstantsHelper.dotaHerosDictionary["lion"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.lion.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("shadow_shaman", new DotaHeroes("暗影萨满", "shadow_shaman", "我刚得到暗影的指示,我们的敌人被判死刑了。"));
                //ConstantsHelper.dotaHerosDictionary["shadow_shaman"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.shadow_shaman.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("witch_doctor", new DotaHeroes("巫医", "witch_doctor", "我的骨骼精奇。"));
                //ConstantsHelper.dotaHerosDictionary["witch_doctor"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.witch_doctor.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("lich", new DotaHeroes("巫妖", "lich", "我朋友间的那一小团冰霜是什么?"));
                //ConstantsHelper.dotaHerosDictionary["lich"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.lich.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("enigma", new DotaHeroes("谜团", "enigma", "在我视野内,万物无所遁形。"));
                //ConstantsHelper.dotaHerosDictionary["enigma"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.enigma.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("tinker", new DotaHeroes("修补匠", "tinker", "思想的每一次碰撞,都会产生一个废物!"));
                //ConstantsHelper.dotaHerosDictionary["tinker"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.tinker.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("necrophos", new DotaHeroes("瘟疫法师", "necrophos", "necrolyte", "你的经脉已经枯萎。"));
                //ConstantsHelper.dotaHerosDictionary["necrolyte"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.necrolyte.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("warlock", new DotaHeroes("术士", "warlock", "死亡与毁灭与我同行!"));
                //ConstantsHelper.dotaHerosDictionary["warlock"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.warlock.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("queen_of_pain", new DotaHeroes("痛苦女王", "queen_of_pain", "queenofpain", "你的痛苦就是我的收获。"));
                //ConstantsHelper.dotaHerosDictionary["queen_of_pain"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.queenofpain.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("death_prophet", new DotaHeroes("死亡先知", "death_prophet", "活着的时候你没有仔细品尝生命,现在好好品尝死亡的滋味!"));
                //ConstantsHelper.dotaHerosDictionary["death_prophet"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.death_prophet.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("pugna", new DotaHeroes("帕格纳", "pugna", "我总是能想出办法让糟糕的事情变得更糟。"));
                //ConstantsHelper.dotaHerosDictionary["pugna"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.pugna.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("dazzle", new DotaHeroes("戴泽", "dazzle", "我会把你的灵魂带到虚无之境。"));
                //ConstantsHelper.dotaHerosDictionary["dazzle"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.dazzle.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("leshrac", new DotaHeroes("拉席克", "leshrac", "你和这世界一样,终会被毁灭。"));
                //ConstantsHelper.dotaHerosDictionary["leshrac"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.leshrac.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("natures_prophet", new DotaHeroes("先知", "natures_prophet", "furion", "拔起树根然后出发吧!"));
                //ConstantsHelper.dotaHerosDictionary["natures_prophet"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.furion.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("dark_seer", new DotaHeroes("黑暗贤者", "dark_seer", "我的敌人们已尽力,但也不过如此。"));
                //ConstantsHelper.dotaHerosDictionary["dark_seer"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.dark_seer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("enchantress", new DotaHeroes("魅惑魔女", "enchantress", "噢,其实我还挺喜欢他们的。"));
                //ConstantsHelper.dotaHerosDictionary["enchantress"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.enchantress.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("jakiro", new DotaHeroes("杰奇洛", "jakiro", "举双头赞成。"));
                //ConstantsHelper.dotaHerosDictionary["jakiro"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.jakiro.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("batrider", new DotaHeroes("蝙蝠骑士", "batrider", "圣堂裙下死,做鬼也风流!"));
                //ConstantsHelper.dotaHerosDictionary["batrider"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.batrider.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("chen", new DotaHeroes("陈", "chen", "我将黑暗的过去抛弃,在奥比莱斯的光耀下前进。"));
                //ConstantsHelper.dotaHerosDictionary["chen"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.chen.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("ancient_apparition", new DotaHeroes("远古冰魄", "ancient_apparition", "总有一天,冰雪会覆盖这片土地,犹如战争从未发生。"));
                //ConstantsHelper.dotaHerosDictionary["ancient_apparition"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.ancient_apparition.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("invoker", new DotaHeroes("祈求者", "invoker", "吾已现世,普天同庆!"));
                //ConstantsHelper.dotaHerosDictionary["invoker"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.invoker.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("silencer", new DotaHeroes("沉默术士", "silencer", "轻轻的步伐..."));
                //ConstantsHelper.dotaHerosDictionary["silencer"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.silencer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("Outworld_Devourer", new DotaHeroes("殁境神蚀者", "Outworld_Devourer", "obsidian_destroyer", "我将粉碎他们的意志,破坏他们的征服美梦。"));
                //ConstantsHelper.dotaHerosDictionary["Outworld_Devourer"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.obsidian_destroyer.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("shadow_demon", new DotaHeroes("暗影恶魔", "shadow_demon", "你的暗影落下,我的暗影升起。"));
                //ConstantsHelper.dotaHerosDictionary["shadow_demon"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.shadow_demon.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("ogre_magi", new DotaHeroes("食人魔魔法师", "ogre_magi", "— 好主意! — 因为这是我想的!"));
                //ConstantsHelper.dotaHerosDictionary["ogre_magi"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.ogre_magi.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("rubick", new DotaHeroes("拉比克", "rubick", "读书人的事情,怎能算偷,这是借。"));
                //ConstantsHelper.dotaHerosDictionary["rubick"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.rubick.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("disruptor", new DotaHeroes("干扰者", "disruptor", "我奔腾而来。"));
                //ConstantsHelper.dotaHerosDictionary["disruptor"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.disruptor.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("keeper_of_the_light", new DotaHeroes("光之守卫", "keeper_of_the_light", "我离目标的距离没有更近,但我的决心更坚定了。"));
                //ConstantsHelper.dotaHerosDictionary["keeper_of_the_light"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.keeper_of_the_light.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("visage", new DotaHeroes("维萨吉", "visage", "凡人一旦穿过了幕帘,就永远也无法返回。"));
                //ConstantsHelper.dotaHerosDictionary["visage"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.visage.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("Skywrath_Mage", new DotaHeroes("天怒法师", "Skywrath_Mage", "skywrath_mage", "我鞠躬尽瘁,天地可鉴。"));
                //ConstantsHelper.dotaHerosDictionary["Skywrath_Mage"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.skywrath_mage.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("techies", new DotaHeroes("工程师", "techies", "Off we go!"));
                //ConstantsHelper.dotaHerosDictionary["techies"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.techies.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("oracle", new DotaHeroes("神谕者", "oracle", "就像承诺一样,你就是用来背弃的!"));
                //ConstantsHelper.dotaHerosDictionary["oracle"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.oracle.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("winter_wyvern", new DotaHeroes("寒冬飞龙", "winter_wyvern", "我不会把朋友丢在没有冬天的世界里。"));
                //ConstantsHelper.dotaHerosDictionary["winter_wyvern"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.winter_wyvern.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("dark_willow", new DotaHeroes("邪影芳灵", "dark_willow", "杰克斯,我们去找下手的人,再挖出他们的双眼,你觉得怎么样?"));
                //ConstantsHelper.dotaHerosDictionary["dark_willow"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.dark_willow.attribs;
                ConstantsHelper.dotaHerosDictionary.Add("grimstroke", new DotaHeroes("天涯墨客", "grimstroke", "你的命运尽在我的笔下!"));
                //ConstantsHelper.dotaHerosDictionary["grimstroke"].HeroInfo.attribs = AllHeroesAttibutesData.herodata.grimstroke.attribs;
                #endregion
            }

            // 根据选择的英雄类型加载指定的英雄列表
            switch (selectedHeroPA)
            {
            case 0:
            case 1:
                ShowStrHero();
                break;

            case 2:
                ShowAgiHero();
                break;

            case 3:
                ShowIntHero();
                break;

            default:
                ShowStrHero();
                break;
            }

            WaitStackPanel.Visibility = Visibility.Collapsed;
            WaitProgressRing.IsActive = false;
        }