Exemplo n.º 1
0
 public int AddNewGear(int gearTypeId, int userId, ReceiveItemMethodType method)
 {
     m_Gear                 = new Gears();
     m_Gear.Id              = (int)CacheSet.GearCache.GetNextNo();
     m_Gear.TypeId          = gearTypeId;
     m_Gear.Level           = 1;
     m_Gear.StrengthenLevel = 0;
     CacheSet.GearCache.Add(m_Gear);
     PlayerAchievementLogic.GetInstance(userId).UpdateAchievement(AchievementType.GearQuality, m_Gear.Quality);
     AnnouncementLogic.PushReceiveGearAnnouncement(userId, method, m_Gear.TypeId);
     return(m_Gear.Id);
 }
Exemplo n.º 2
0
        private void SetHeroInfo()
        {
            PlayerHeroLogic playerHeros = new PlayerHeroLogic();

            playerHeros.SetUser(m_UserId);
            CacheDictionary <int, Hero> heros = playerHeros.GetHeroList();

            foreach (var hero in heros)
            {
                PBLobbyHeroInfo heroInfo = new PBLobbyHeroInfo();
                heroInfo.Type               = hero.Key;
                heroInfo.Level              = hero.Value.HeroLv;
                heroInfo.Exp                = hero.Value.HeroExp;
                heroInfo.StarLevel          = hero.Value.HeroStarLevel;
                heroInfo.ConsciousnessLevel = hero.Value.ConsciousnessLevel;
                heroInfo.ElevationLevel     = hero.Value.ElevationLevel;
                heroInfo.SkillLevels.AddRange(hero.Value.SkillLevels);
                heroInfo.SkillExps.AddRange(hero.Value.SkillExps);
                heroInfo.Might = hero.Value.Might;
                foreach (var gear in hero.Value.Gears)
                {
                    if (gear.Value == 0)
                    {
                        continue;
                    }
                    PBGearInfo gearInfo = new PBGearInfo();
                    gearInfo.Id = gear.Value;
                    Gears gearData = CacheSet.GearCache.FindKey(gear.Value);
                    gearInfo.Level           = gearData.Level;
                    gearInfo.StrengthenLevel = gearData.StrengthenLevel;
                    gearInfo.Type            = gearData.TypeId;
                    heroInfo.GearInfo.Add(gearInfo);
                }
                foreach (var soul in hero.Value.Souls)
                {
                    if (soul.Value == 0)
                    {
                        continue;
                    }
                    PBSoulInfo soulInfo = new PBSoulInfo();
                    soulInfo.Id = soul.Value;
                    Souls soulData = CacheSet.SoulCache.FindKey(soul.Value);
                    soulInfo.Type = soulData.TypeId;
                    heroInfo.SoulInfo.Add(soulInfo);
                }
                m_ResponsePacket.LobbyHeroInfo.Add(heroInfo);
            }
        }
Exemplo n.º 3
0
 private void SetGearInfo(PlayerPackageLogic package)
 {
     foreach (var gear in package.MyPackage.Gears)
     {
         PBGearInfo gearInfo = new PBGearInfo();
         gearInfo.Id = gear.Key;
         Gears gearData = CacheSet.GearCache.FindKey(gear.Key);
         if (gearData == null)
         {
             package.DeductGear(gear.Key);
             continue;
         }
         gearInfo.Level           = gearData.Level;
         gearInfo.Type            = gearData.TypeId;
         gearInfo.StrengthenLevel = gearData.StrengthenLevel;
         m_ResponsePacket.GearInfo.Add(gearInfo);
     }
 }
Exemplo n.º 4
0
 public GearLogic()
 {
     m_Gear = null;
 }
Exemplo n.º 5
0
 public void SetGear(int gearId)
 {
     m_Gear = CacheSet.GearCache.FindKey(gearId);
 }
Exemplo n.º 6
0
        public override bool TakeAction()
        {
            Transaction t      = new Transaction();
            PlayerLogic player = new PlayerLogic();

            player.SetUser(m_UserId);
            PlayerPackageLogic package = new PlayerPackageLogic();

            package.SetUser(m_UserId);
            GearLogic gear = new GearLogic();

            gear.SetGear(m_RequestPacket.GearId[0]);
            int quality = CacheSet.GearTable.GetData(gear.MyGear.TypeId).Quality;

            t.DumpEntity(package.MyPackage);
            t.DumpEntity(player.MyPlayer);
            int costCoin = gear.GetComposeCost(quality);

            if (quality == (int)GearQuality.Orange)
            {
                t.RollBack();
                ErrorCode = (int)ErrorType.CannotOpenChance;
                ErrorInfo = "wrong gearId";
                return(false);
            }

            if (!player.DeductCoin(costCoin))
            {
                t.RollBack();
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "You don't have enough Coin";
                return(false);
            }
            foreach (int gearId in m_RequestPacket.GearId)
            {
                gear.SetGear(gearId);
                if (quality != CacheSet.GearTable.GetData(gear.MyGear.TypeId).Quality)
                {
                    t.RollBack();
                    ErrorCode = (int)ErrorType.CannotOpenChance;
                    ErrorInfo = "wrong gearId";
                    return(false);
                }
                if (!package.DeductGear(gearId))
                {
                    t.RollBack();
                    ErrorCode = (int)ErrorType.RequireNotMet;
                    ErrorInfo = "You don't have enough Gear";
                    return(false);
                }
                gear.RemoveGear();
            }
            int position = 0;

            if (m_RequestPacket.HasItemId && m_RequestPacket.ItemId != 0)
            {
                if (!package.DeductInventory(new ItemListItem()
                {
                    Id = m_RequestPacket.ItemId, Count = 1
                }))
                {
                    t.RollBack();
                    ErrorCode = (int)ErrorType.RequireNotMet;
                    ErrorInfo = "You don't have enough Item";
                    return(false);
                }
                position = int.Parse(CacheSet.ItemTable.GetData(m_RequestPacket.ItemId).FunctionParams);
                m_ResponsePacket.ItemInfo = new PBItemInfo()
                {
                    Type = m_RequestPacket.ItemId, Count = package.MyPackage.Inventories[m_RequestPacket.ItemId]
                };
            }
            m_ResponsePacket.PlayerInfo = new PBPlayerInfo()
            {
                Id   = player.MyPlayer.Id,
                Coin = player.MyPlayer.Coin
            };
            m_ResponsePacket.RemovedGears.AddRange(m_RequestPacket.GearId);
            Gears newGear = gear.GetComposeResult(quality, position, m_UserId);

            if (newGear == null)
            {
                return(true);
            }
            package.AddGear(newGear.Id, newGear.TypeId);
            m_ResponsePacket.NewGear = new PBGearInfo()
            {
                Id    = newGear.Id,
                Type  = newGear.TypeId,
                Level = newGear.Level
            };
            return(true);
        }
Exemplo n.º 7
0
        private static PBRoomPlayerInfo GetPlayerRoomData(int playerId)
        {
            PBRoomPlayerInfo retData = new PBRoomPlayerInfo();
            PlayerLogic      p       = new PlayerLogic();

            p.SetUser(playerId);
            retData.PlayerInfo = new PBPlayerInfo()
            {
                Id           = playerId,
                Name         = p.MyPlayer.Name,
                Level        = p.MyPlayer.Level,
                VipLevel     = p.MyPlayer.VIPLevel,
                PortraitType = p.MyPlayer.PortraitType,
                Might        = p.MyPlayer.Might,
            };
            HeroTeamLogic heroTeam = new HeroTeamLogic();

            heroTeam.SetUser(playerId);
            CacheList <int> team = heroTeam.GetTeam();
            PlayerHeroLogic ph   = new PlayerHeroLogic().SetUser(playerId);

            foreach (int heroType in team)
            {
                if (heroType == 0)
                {
                    continue;
                }
                ph.SetHero(heroType);
                var             heroInfo      = ph.GetHeroInfo();
                PBLobbyHeroInfo lobbyHeroInfo = new PBLobbyHeroInfo();
                lobbyHeroInfo.Type               = heroInfo.HeroType;
                lobbyHeroInfo.Level              = heroInfo.HeroLv;
                lobbyHeroInfo.Exp                = heroInfo.HeroExp;
                lobbyHeroInfo.StarLevel          = heroInfo.HeroStarLevel;
                lobbyHeroInfo.ConsciousnessLevel = heroInfo.ConsciousnessLevel;
                lobbyHeroInfo.ElevationLevel     = heroInfo.ElevationLevel;
                lobbyHeroInfo.SkillLevels.AddRange(heroInfo.SkillLevels);
                foreach (var gear in heroInfo.Gears)
                {
                    if (gear.Value == 0)
                    {
                        continue;
                    }
                    PBGearInfo gearInfo = new PBGearInfo();
                    gearInfo.Id = gear.Value;
                    Gears gearData = CacheSet.GearCache.FindKey(gear.Value);
                    gearInfo.Level           = gearData.Level;
                    gearInfo.Type            = gearData.TypeId;
                    gearInfo.StrengthenLevel = gearData.StrengthenLevel;
                    lobbyHeroInfo.GearInfo.Add(gearInfo);
                }
                foreach (var soul in heroInfo.Souls)
                {
                    if (soul.Value == 0)
                    {
                        continue;
                    }
                    PBSoulInfo soulInfo = new PBSoulInfo();
                    soulInfo.Id = soul.Value;
                    Souls soulData = CacheSet.SoulCache.FindKey(soul.Value);
                    soulInfo.Type = soulData.TypeId;
                    lobbyHeroInfo.SoulInfo.Add(soulInfo);
                }
                PBRoomHeroInfo roomHeroInfo = new PBRoomHeroInfo()
                {
                    LobbyHeroInfo = lobbyHeroInfo,
                };
                retData.RoomHeroInfo.Add(roomHeroInfo);
            }
            retData.LobbyServerId = int.Parse(ConfigUtils.GetSetting("Server.Id"));
            PlayerSinglePvpLogic psp = new PlayerSinglePvpLogic();

            psp.SetUser(playerId);
            retData.Score = psp.MyPvp.SinglePvpScore;
            return(retData);
        }