Ejemplo n.º 1
0
        public override bool TakeAction()
        {
            PlayerMeridianLogic playerMeridian = new PlayerMeridianLogic();

            playerMeridian.SetUser(m_UserId);
            foreach (var meridian in playerMeridian.MyMeridian.UnlockedMeridians)
            {
                PBMeridianInfo meridianInfo = new PBMeridianInfo()
                {
                    Id = meridian.Key
                };
                meridianInfo.UnlockedStars.AddRange(meridian.Value.UnlockedStars);
                m_ResponsePacket.UnlockedMeridians.Add(meridianInfo);
            }
            return(true);
        }
Ejemplo n.º 2
0
        public override bool TakeAction()
        {
            PlayerMeridianLogic playerMeridian = new PlayerMeridianLogic();

            playerMeridian.SetUser(m_UserId);
            PlayerLogic player = new PlayerLogic();

            player.SetUser(m_UserId);
            DTMeridian starData = CacheSet.MeridianTable.GetData(m_RequestPacket.StarId);

            if (starData == null)
            {
                ErrorCode = (int)ErrorType.CannotOpenChance;
                ErrorInfo = "wrong star Id";
                return(false);
            }
            if (!player.DeductStarEnergy(starData.CostMeridianEnergy))
            {
                if (!player.DeductMoney(starData.CostMoney))
                {
                    ErrorCode = (int)ErrorType.RequireNotMet;
                    ErrorInfo = "have not enough energy or money";
                    return(false);
                }
            }
            if (!playerMeridian.OpenStar(m_RequestPacket.StarId, starData.Type))
            {
                ErrorCode = (int)ErrorType.RequireNotMet;
                ErrorInfo = "you can not open this Star yet";
                return(false);
            }
            player.AddCoin(starData.RewardCoin);
            player.AddMoney(starData.RewardMoney);
            m_ResponsePacket.PlayerInfo = new PBPlayerInfo()
            {
                Id = m_UserId, Coin = player.MyPlayer.Coin, Money = player.MyPlayer.Money, MeridianEnergy = player.MyPlayer.StarEnergy
            };
            Dictionary <int, int> dropItem = new Dictionary <int, int>();

            dropItem.Add(starData.RewardId, starData.RewardCount);
            PlayerPackageLogic playerPackage = new PlayerPackageLogic();

            playerPackage.SetUser(m_UserId);
            PBReceivedItems receivedItems;

            playerPackage.GetItems(dropItem, ReceiveItemMethodType.None, out receivedItems);
            foreach (var gear in receivedItems.GearInfo)
            {
                m_ResponsePacket.GearInfo.Add(gear);
            }
            foreach (var inventory in receivedItems.ItemInfo)
            {
                m_ResponsePacket.ItemInfo.Add(inventory);
            }
            foreach (var meridian in playerMeridian.MyMeridian.UnlockedMeridians)
            {
                PBMeridianInfo meridianInfo = new PBMeridianInfo()
                {
                    Id = meridian.Key
                };
                meridianInfo.UnlockedStars.AddRange(meridian.Value.UnlockedStars);
                m_ResponsePacket.MeridianInfo.Add(meridianInfo);
            }
            return(true);
        }