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); }
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); }
public abstract List <PBKeyValuePair> Process(List <PBKeyValuePair> Params, out PBReceivedItems ri, out PBPlayerInfo p, out List <PBLobbyHeroInfo> h);
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] }); } }
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); }