Ejemplo n.º 1
0
        public ItemListItem AddNewHero(int heroId, ReceiveItemMethodType method = ReceiveItemMethodType.None)
        {
            Hero playerHero;
            var  HeroData = CacheSet.HeroTable.GetData(heroId);

            if (m_MyHeros.Heros.TryGetValue(heroId, out playerHero))
            {
                int          itemId = HeroData.StarLevelUpItemId;
                ItemListItem item   = new ItemListItem()
                {
                    Id    = itemId,
                    Count = GameConfigs.GetInt("Hero_Piece_Count_For_Star_Level_" + HeroData.DefaultStarLevel, 10)
                };
                return(item);
            }
            else
            {
                Hero hero = new Hero();
                int  star = HeroData.DefaultStarLevel;//TODO read config
                hero.HeroType           = heroId;
                hero.HeroExp            = 0;
                hero.HeroLv             = 1;
                hero.HeroStarLevel      = star;
                hero.ConsciousnessLevel = 0;
                hero.ElevationLevel     = 0;
                m_HeroId = heroId;
                hero.SkillLevels.AddRange(new int[] { 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 });
                hero.SkillExps.AddRange(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 });
                m_MyHeros.ModifyLocked(() =>
                {
                    m_MyHeros.Heros[heroId] = hero;
                    m_Hero = m_MyHeros.Heros[heroId];
                    RefreshMight();
                });
                PlayerAchievementLogic.GetInstance(m_UserId).UpdateAchievement(AchievementType.HeroCount, MyHeros.Heros.Count);
                AnnouncementLogic.PushReceiveHeroAnnouncement(m_UserId, method, hero.HeroType);
            }
            return(null);
        }