Ejemplo n.º 1
0
        public override List <PBKeyValuePair> Process(List <PBKeyValuePair> Params, out PBReceivedItems receivedItems, out PBPlayerInfo playerInfo, out List <PBLobbyHeroInfo> heroInfos)
        {
            receivedItems = null;
            playerInfo    = null;
            heroInfos     = null;
            if (m_SevenDayCheckIn == null)
            {
                return(null);
            }
            string op = Params.Find(p => p.Key == "Op").Value;
            List <PBKeyValuePair> retval = null;

            switch (op)
            {
            case "GetData":
                retval = ProcessGetData(Params, out receivedItems, out playerInfo, out heroInfos);
                break;

            case "ClaimReward":
                retval = ProcessClaimReward(Params, out receivedItems, out playerInfo, out heroInfos);
                break;

            default:
                return(null);
            }
            return(retval);
        }
Ejemplo n.º 2
0
        private List <PBKeyValuePair> ProcessGetData(List <PBKeyValuePair> Params, out PBReceivedItems receivedItems, out PBPlayerInfo playerInfo, out List <PBLobbyHeroInfo> heroInfos)
        {
            receivedItems = null;
            playerInfo    = null;
            heroInfos     = null;
            List <PBKeyValuePair> retval = new List <PBKeyValuePair>();

            retval.AddRange(Params);
            int dayCnt = CacheSet.OperationActivitySevenDayTable.Count;

            retval.Add(new PBKeyValuePair()
            {
                Key = "DayCnt", Value = dayCnt.ToString()
            });
            retval.Add(new PBKeyValuePair()
            {
                Key = "ClaimedCnt", Value = m_SevenDayCheckIn.ClaimedCount.ToString()
            });
            string hasClaimed = (new DateTime(m_SevenDayCheckIn.LastClaimedTime).Date == DateTime.UtcNow.Date).ToString();

            retval.Add(new PBKeyValuePair()
            {
                Key = "HasClaimed", Value = hasClaimed
            });
            for (int i = 0; i < dayCnt; i++)
            {
                var data = CacheSet.OperationActivitySevenDayTable.GetData(i + 1);
                retval.Add(new PBKeyValuePair()
                {
                    Key = "Reward." + i.ToString() + ".ItemId", Value = data.RewardId.ToString()
                });
                retval.Add(new PBKeyValuePair()
                {
                    Key = "Reward." + i.ToString() + ".ItemCnt", Value = data.RewardCount.ToString()
                });
            }
            return(retval);
        }
Ejemplo n.º 3
0
 public abstract List <PBKeyValuePair> Process(List <PBKeyValuePair> Params, out PBReceivedItems ri, out PBPlayerInfo p, out List <PBLobbyHeroInfo> h);
Ejemplo n.º 4
0
 public void GetItems(IDictionary<int, int> gotItems, ReceiveItemMethodType method, out PBReceivedItems receivedItems)
 {
     GearLogic gear = new GearLogic();
     SoulLogic soul = new SoulLogic();
     Dictionary<int, int> itemDict = new Dictionary<int, int>();
     receivedItems = new PBReceivedItems();
     foreach (var reward in gotItems)
     {
         if (IsGear(reward.Key))
         {
             for (int i = 0; i < reward.Value; i++)
             {
                 int gearId = gear.AddNewGear(reward.Key, m_UserId, method);
                 AddGear(gearId, reward.Key);
                 receivedItems.GearInfo.Add(new PBGearInfo() { Id = gearId, Type = reward.Key, Level = 1 });
             }
         }
         else if (IsItem(reward.Key))
         {
             AddInventory(new ItemListItem() { Id = reward.Key, Count = reward.Value });
             GameUtils.MergeItem(itemDict, reward.Key, reward.Value);
         }
         else if (IsSoul(reward.Key))
         {
             for (int i = 0; i < reward.Value; i++)
             {
                 int soulId = soul.AddNewSoul(reward.Key);
                 AddSoul(soulId, reward.Key);
                 receivedItems.SoulInfo.Add(new PBSoulInfo() { Id = soulId, Type = reward.Key });
             }
         }
         else if (IsEpigraph(reward.Key))
         {
             for (int i = 0; i < reward.Value; i++)
             {
                 ItemListItem item;
                 if (GetNewEpigraph(reward.Key, out item))
                 {
                     receivedItems.EpigraphInfo.Add(new PBEpigraphInfo() { Type = reward.Key, Level = m_Package.Epigraphs[reward.Key] });
                 }
                 else
                 {
                     GameUtils.MergeItem(itemDict, item.Id, item.Count);
                 }
             }
         }
         else
         {
             PlayerLogic p = new PlayerLogic();
             p.SetUser(m_UserId);
             switch ((GiftItemType)reward.Key)
             {
                 case GiftItemType.Coin:
                     p.AddCoin(reward.Value);
                     break;
                 case GiftItemType.Money:
                     p.AddMoney(reward.Value);
                     break;
                 case GiftItemType.Energy:
                     long nextRecoverTime;
                     p.AddEnergy(reward.Value, out nextRecoverTime);
                     break;
                 case GiftItemType.MeridianEnergy:
                     p.AddStarEnergy(reward.Value);
                     break;
                 case GiftItemType.Spirit:
                     p.AddSpirit(reward.Value);
                     break;
                 case GiftItemType.DragonStripeToken:
                     p.AddDragonStripeToken(reward.Value);
                     break;
             }
         }
     }
     foreach (var item in itemDict)
     {
         receivedItems.ItemInfo.Add(new PBItemInfo() { Type = item.Key, Count = m_Package.Inventories[item.Key] });
     }
 }
Ejemplo n.º 5
0
        private List <PBKeyValuePair> ProcessClaimReward(List <PBKeyValuePair> Params, out PBReceivedItems receivedItems, out PBPlayerInfo playerInfo, out List <PBLobbyHeroInfo> heroInfos)
        {
            receivedItems = null;
            playerInfo    = null;
            heroInfos     = null;
            int dayCnt = CacheSet.OperationActivitySevenDayTable.Count;

            if (DateTime.UtcNow.Date == new DateTime(m_SevenDayCheckIn.LastClaimedTime).Date || m_SevenDayCheckIn.ClaimedCount >= dayCnt)
            {
                return(null);
            }
            List <PBKeyValuePair> retval = new List <PBKeyValuePair>();

            retval.AddRange(Params);
            PlayerPackageLogic pp = new PlayerPackageLogic();

            pp.SetUser(m_SevenDayCheckIn.UserId);
            var reward = CacheSet.OperationActivitySevenDayTable.GetData(m_SevenDayCheckIn.ClaimedCount + 1);

            pp.GetItems(new Dictionary <int, int>()
            {
                { reward.RewardId, reward.RewardCount }
            }, ReceiveItemMethodType.None, out receivedItems);
            m_SevenDayCheckIn.ClaimedCount   += 1;
            m_SevenDayCheckIn.LastClaimedTime = DateTime.UtcNow.Ticks;
            retval.Add(new PBKeyValuePair()
            {
                Key = "ClaimedCnt", Value = m_SevenDayCheckIn.ClaimedCount.ToString()
            });
            retval.Add(new PBKeyValuePair()
            {
                Key = "HasClaimed", Value = "true"
            });
            return(retval);
        }