Example #1
0
        public override bool TakeAction()
        {
            PlayerHeroLogic playerHero = new PlayerHeroLogic();

            playerHero.SetUser(m_UserId).SetHero(m_RequestPacket.HeroType);
            if (!playerHero.DataCheck())
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "wrong HeroId";
                return(false);
            }
            if (playerHero.GetHeroInfo().HeroStarLevel < GameConsts.Hero.MaxStarLevel)
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "Star level not enough";
                return(false);
            }
            Hero myHero = playerHero.GetHeroInfo();
            DTHeroConsciousnessBase heroConsciousness = CacheSet.HeroConsciousnessBaseTable.GetData(myHero.ConsciousnessLevel);

            if (heroConsciousness.LevelUpItemId == -1)
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "reached max level";
                return(false);
            }
            PlayerLogic p = new PlayerLogic();

            p.SetUser(m_UserId);
            if (!p.DeductSpirit(heroConsciousness.LevelUpItemCount))
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "Spirit not enough";
                return(false);
            }
            playerHero.ConsciousnessLevelUp();
            myHero = playerHero.GetHeroInfo();
            m_ResponsePacket.LobbyHeroInfo = new PBLobbyHeroInfo()
            {
                Type = myHero.HeroType,
                ConsciousnessLevel = myHero.ConsciousnessLevel,
                Might = myHero.Might,
            };
            m_ResponsePacket.PlayerInfo = new PBPlayerInfo()
            {
                Id = p.MyPlayer.Id, Spirit = p.MyPlayer.Spirit
            };
            return(true);
        }
Example #2
0
        private void HeroLevelUp(int heroId, int addLevel)
        {
            PlayerHeroLogic ph = new PlayerHeroLogic();

            ph.SetUser(m_UserId).SetHero(heroId);
            if (!ph.DataCheck())
            {
                return;
            }
            ph.AddLevel(addLevel);
            m_ResponsePacket.LobbyHeroInfo = new PBLobbyHeroInfo()
            {
                Type  = heroId,
                Level = ph.MyHeros.Heros[heroId].HeroLv,
                Exp   = ph.MyHeros.Heros[heroId].HeroExp
            };
        }
Example #3
0
        public override bool TakeAction()
        {
            DTHero          heroData   = CacheSet.HeroTable.GetData(m_RequestPacket.HeroType);
            PlayerHeroLogic playerHero = new PlayerHeroLogic();

            playerHero.SetUser(m_UserId).SetHero(m_RequestPacket.HeroType);
            if (!playerHero.DataCheck())
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "wrong HeroId";
                return(false);
            }

            Hero myHero = playerHero.GetHeroInfo();
            PlayerPackageLogic package = new PlayerPackageLogic();

            package.SetUser(m_UserId);
            ItemListItem item = new ItemListItem();

            item.Id    = heroData.StarLevelUpItemId;
            item.Count = heroData.StarLevelUpItemCount[myHero.HeroStarLevel];
            if (!package.DeductInventory(item))
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "not enough piece";
                return(false);
            }
            playerHero.StarLevelUp();
            myHero = playerHero.GetHeroInfo();
            m_ResponsePacket.LobbyHeroInfo = new PBLobbyHeroInfo()
            {
                Type      = m_RequestPacket.HeroType,
                StarLevel = myHero.HeroStarLevel,
                Might     = myHero.Might,
            };
            m_ResponsePacket.ItemInfo = new PBItemInfo()
            {
                Type  = item.Id,
                Count = package.MyPackage.Inventories[item.Id]
            };
            return(true);
        }
Example #4
0
        public override bool TakeAction()
        {
            PlayerHeroLogic playerHero = new PlayerHeroLogic();

            playerHero.SetUser(m_UserId).SetHero(m_RequestPacket.HeroType);
            if (!playerHero.DataCheck())
            {
                ErrorCode = (int)ErrorType.CannotOpenChance;
                ErrorInfo = "wrong HeroId";
                return(false);
            }

            PlayerPackageLogic package = new PlayerPackageLogic();

            package.SetUser(m_UserId);
            Hero myHero = playerHero.GetHeroInfo();
            DTHeroElevationBase heroElevationData = CacheSet.HeroElevationBaseTable.GetData(myHero.ElevationLevel);

            if (heroElevationData.LevelUpItemId == -1)
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "reached max level";
                return(false);
            }

            ItemListItem item = new ItemListItem()
            {
                Id    = heroElevationData.LevelUpItemId,
                Count = heroElevationData.LevelUpItemCount
            };

            if (!package.DeductInventory(item))
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "not enough piece";
                return(false);
            }
            for (int i = 0; i < GameConsts.Hero.ElevationLevelUpGearCount; i++)
            {
                if (heroElevationData.LevelUpGearType[i] == -1 || heroElevationData.LevelUpGearMinQuality[i] == -1)
                {
                    break;
                }
                int gearTypeId = 0;
                if (package.MyPackage.Gears.ContainsKey(m_RequestPacket.GearId[i]))
                {
                    gearTypeId = package.MyPackage.Gears[m_RequestPacket.GearId[i]];
                }
                else
                {
                    ErrorCode = (int)ErrorType.RequireNotMet;
                    ErrorInfo = "do not have this gear";
                    return(false);
                }
                DTGear gear = CacheSet.GearTable.GetData(gearTypeId);
                if (gear.Type == heroElevationData.LevelUpGearType[i] && gear.Quality >= heroElevationData.LevelUpGearMinQuality[i])
                {
                    package.DeductGear(m_RequestPacket.GearId[i]);
                }
                else
                {
                    ErrorCode = (int)ErrorType.CannotOpenChance;
                    ErrorInfo = "gear" + i.ToString() + " do not match this slot";
                    return(false);
                }
            }
            playerHero.ElevationLevelUp();
            var heroInfo = playerHero.GetHeroInfo();

            m_ResponsePacket.LobbyHeroInfo = new PBLobbyHeroInfo()
            {
                Type           = heroInfo.HeroType,
                ElevationLevel = heroInfo.ElevationLevel,
                Might          = heroInfo.Might,
            };
            m_ResponsePacket.RemovedGears.AddRange(m_RequestPacket.GearId);
            m_ResponsePacket.ItemInfo = new PBItemInfo()
            {
                Type = item.Id, Count = package.MyPackage.Inventories[item.Id]
            };
            return(true);
        }