public override bool TakeAction() { var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(debrisId); if (itemcfg == null || itemcfg.ItemType != ItemType.Debris) { return(false); } ItemData gemData = GetPackage.FindItem(debrisId); int needNumber = ConfigEnvSet.GetInt("Elf.CompoundCardNeedNumber"); if (gemData == null || gemData.Num < needNumber) { return(false); } GetPackage.RemoveItem(debrisId, needNumber); //GetPackage.AddItem(gemcfg.GemID, 1); UserHelper.RewardsItem(Current.UserId, itemcfg.ResourceNum.ToInt(), 1); receipt = true; return(true); }
public static async Task <GrpcPackage> GetPackageById(GrpcString grpcRequest) { try { var id = GrpcStringAdapter.GetFrom(grpcRequest); var package = await GetPackage.Execute(id); return(PackagePresenter.PresentePackage(package)); } catch (Exception e) { throw e; } }
public override bool TakeAction() { receipt = UsedItemResult.Successfully; var itemconfig = new ShareCacheStruct <Config_Item>().FindKey(itemId); if (itemconfig == null) { new BaseLog().SaveLog(string.Format("No found item config. ID={0}", itemId)); return(false); } var itemdata = GetPackage.FindItem(itemId); if (itemdata == null) { receipt = UsedItemResult.NoItem; return(true); } if (itemdata.Num < useNum) { receipt = UsedItemResult.ItemNumError; return(true); } BigInteger sellgold = BigInteger.Parse(itemconfig.SellGold); if (sellgold == 0) { receipt = UsedItemResult.Unavailable; return(true); } BigInteger resourceNum = BigInteger.Parse(itemconfig.SellGold); UserHelper.RewardsGold(Current.UserId, resourceNum * useNum, UpdateCoinOperate.UserItemReward); //receipt.GainGold = resourceNum; GetPackage.RemoveItem(itemId, useNum); return(true); }
public override bool TakeAction() { ItemData gemData = GetPackage.FindItem(gemID); if (gemData == null) { receipt = UsedItemResult.NoItem; return(true); } var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(gemID); var gemcfg = new ShareCacheStruct <Config_Gem>().Find(t => (t.ItemID == gemID)); if (itemcfg == null || gemcfg == null || itemcfg.ItemType != ItemType.Gem) { return(false); } var nextItemcfg = new ShareCacheStruct <Config_Item>().Find(t => ( t.ItemType == ItemType.Gem && t.Species == itemcfg.Species && (t.ItemGrade == itemcfg.ItemGrade + 1)) ); if (nextItemcfg == null) { return(false); } int compoundNum = gemData.Num / gemcfg.Number; int needNum = compoundNum * gemcfg.Number; if (gemData.Num < needNum) { receipt = UsedItemResult.ItemNumError; return(true); } UserHelper.RewardsItem(Current.UserId, nextItemcfg.ItemID, compoundNum); receipt = UsedItemResult.Successfully; GetPackage.RemoveItem(gemID, needNum); return(true); }
public override bool TakeAction() { ItemData gemData = GetPackage.FindItem(gemID); if (gemData == null) { receipt = UsedItemResult.NoItem; return(true); } if (gemData.Num < gemNum) { receipt = UsedItemResult.ItemNumError; return(true); } var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(gemID); var gemcfg = new ShareCacheStruct <Config_Gem>().Find(t => (t.ItemID == gemID)); if (itemcfg == null || gemcfg == null || itemcfg.ItemType != ItemType.Gem) { return(false); } float fprob = gemNum.ToFloat() / gemcfg.Number; if (random.Next(1000) <= fprob * 1000) { //GetPackage.AddItem(gemcfg.GemID, 1); UserHelper.RewardsItem(Current.UserId, gemcfg.GemID, 1); receipt = UsedItemResult.Successfully; } else { receipt = UsedItemResult.GemFailed; } GetPackage.RemoveItem(gemID, gemNum); return(true); }
public override bool TakeAction() { EquipData equip = GetEquips.FindEquipData(equipID); GetPackage.AddItem(equip.AtkGem, 1); GetPackage.AddItem(equip.DefGem, 1); GetPackage.AddItem(equip.HpGem, 1); GetPackage.AddItem(equip.CritGem, 1); GetPackage.AddItem(equip.HitGem, 1); GetPackage.AddItem(equip.DodgeGem, 1); GetPackage.AddItem(equip.TenacityGem, 1); equip.AtkGem = 0; equip.DefGem = 0; equip.HpGem = 0; equip.CritGem = 0; equip.HitGem = 0; equip.DodgeGem = 0; equip.TenacityGem = 0; UserHelper.RefreshUserFightValue(Current.UserId); receipt = true; return(true); }
public override bool TakeAction() { EquipData equip = GetEquips.FindEquipData(equipID); switch (gemType) { case GemType.Attack: { if (equip.AtkGem != 0) { GetPackage.AddItem(equip.AtkGem, 1); equip.AtkGem = 0; } } break; case GemType.Defense: { if (equip.DefGem != 0) { GetPackage.AddItem(equip.DefGem, 1); equip.DefGem = 0; } } break; case GemType.Hp: { if (equip.HpGem != 0) { GetPackage.AddItem(equip.HpGem, 1); equip.HpGem = 0; } } break; case GemType.Crit: { if (equip.CritGem != 0) { GetPackage.AddItem(equip.CritGem, 1); equip.CritGem = 0; } } break; case GemType.Hit: { if (equip.HitGem != 0) { GetPackage.AddItem(equip.HitGem, 1); equip.HitGem = 0; } } break; case GemType.Dodge: { if (equip.DodgeGem != 0) { GetPackage.AddItem(equip.DodgeGem, 1); equip.DodgeGem = 0; } } break; case GemType.Tenacity: { if (equip.TenacityGem != 0) { GetPackage.AddItem(equip.TenacityGem, 1); equip.TenacityGem = 0; } } break; } UserHelper.RefreshUserFightValue(Current.UserId); receipt = true; return(true); }
public override bool TakeAction() { EquipData equip = GetEquips.FindEquipData(equipID); List <int> gemList = new List <int>(); if (atkGem != 0) { gemList.Add(atkGem); } if (defGem != 0) { gemList.Add(defGem); } if (hpGem != 0) { gemList.Add(hpGem); } if (critGem != 0) { gemList.Add(critGem); } if (hitGem != 0) { gemList.Add(hitGem); } if (dodgeGem != 0) { gemList.Add(dodgeGem); } if (tenacityGem != 0) { gemList.Add(tenacityGem); } foreach (var v in gemList) { if (GetPackage.FindItem(v) == null) { receipt = UsedItemResult.NoItem; return(true); } } foreach (var v in gemList) { var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(v); if (itemcfg.ItemType != ItemType.Gem) { return(false); } switch ((GemType)itemcfg.Species) { case GemType.Attack: { if (equip.AtkGem != 0) { return(false); } equip.AtkGem = v; } break; case GemType.Defense: { if (equip.DefGem != 0) { return(false); } equip.DefGem = v; } break; case GemType.Hp: { if (equip.HpGem != 0) { return(false); } equip.HpGem = v; } break; case GemType.Crit: { if (equip.CritGem != 0) { return(false); } equip.CritGem = v; } break; case GemType.Hit: { if (equip.HitGem != 0) { return(false); } equip.HitGem = v; } break; case GemType.Dodge: { if (equip.DodgeGem != 0) { return(false); } equip.DodgeGem = v; } break; case GemType.Tenacity: { if (equip.TenacityGem != 0) { return(false); } equip.TenacityGem = v; } break; } GetPackage.RemoveItem(v, 1); } UserHelper.RefreshUserFightValue(Current.UserId); receipt = UsedItemResult.Successfully; return(true); }
public override bool TakeAction() { if (GetPackage.FindItem(gemID) == null) { receipt = UsedItemResult.NoItem; return(true); } var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(gemID); if (itemcfg.ItemType != ItemType.Gem) { return(false); } EquipData equip = GetEquips.FindEquipData(equipID); switch ((GemType)itemcfg.Species) { case GemType.Attack: { if (equip.AtkGem != 0) { return(false); } equip.AtkGem = gemID; } break; case GemType.Defense: { if (equip.DefGem != 0) { return(false); } equip.DefGem = gemID; } break; case GemType.Hp: { if (equip.HpGem != 0) { return(false); } equip.HpGem = gemID; } break; case GemType.Crit: { if (equip.CritGem != 0) { return(false); } equip.CritGem = gemID; } break; case GemType.Hit: { if (equip.HitGem != 0) { return(false); } equip.HitGem = gemID; } break; case GemType.Dodge: { if (equip.DodgeGem != 0) { return(false); } equip.DodgeGem = gemID; } break; case GemType.Tenacity: { if (equip.TenacityGem != 0) { return(false); } equip.TenacityGem = gemID; } break; } GetPackage.RemoveItem(gemID, 1); UserHelper.RefreshUserFightValue(Current.UserId); receipt = UsedItemResult.Successfully; return(true); }
public override bool TakeAction() { receipt = new SendTransferItemReceipt(); if (GetTransfer.SendCount >= 3) { receipt.Result = TransferItemResult.SendCountOut; return(true); } var itemdata = GetPackage.FindItem(itemId); if (itemdata == null || itemdata.Num < itemNum) { return(false); } var dest = UserHelper.FindUserBasis(destId); if (dest == null) { return(false); } var destTransfer = UserHelper.FindUserTransfer(destId); string newId = Guid.NewGuid().ToString("N"); ReceiveTransferItemData receiveData = new ReceiveTransferItemData() { ID = newId, Sender = Current.UserId, SenderName = GetBasis.NickName, SenderProfession = GetBasis.Profession, SenderAvatar = GetBasis.AvatarUrl, Date = DateTime.Now, IsReceived = false, }; receiveData.AppendItem.ID = itemId; receiveData.AppendItem.Num = itemNum; receipt.Data = new SendTransferItemData() { ID = newId, Receiver = dest.UserID, ReceiverName = dest.NickName, ReceiverProfession = dest.Profession, ReceiverAvatar = dest.AvatarUrl, Date = DateTime.Now, IsReceived = false, }; receipt.Data.Password = Util.GetRandom4Pwd(); receipt.Data.AppendItem.ID = itemId; receipt.Data.AppendItem.Num = itemNum; GetPackage.RemoveItem(itemId, itemNum); destTransfer.ReceiveList.Add(receiveData); PushMessageHelper.NewReceiveTransferItemNotification(GameSession.Get(destId), newId); GetTransfer.SendList.Add(receipt.Data); GetTransfer.SendCount++; receipt.Result = TransferItemResult.Successfully; return(true); }
public override bool TakeAction() { receipt = UsedItemResult.Successfully; var itemconfig = new ShareCacheStruct <Config_Item>().FindKey(itemId); if (itemconfig == null) { new BaseLog().SaveLog(string.Format("No found item config. ID={0}", itemId)); return(false); } var itemdata = GetPackage.FindItem(itemId); if (itemdata == null) { receipt = UsedItemResult.NoItem; return(true); } if (itemdata.Num < useNum) { receipt = UsedItemResult.ItemNumError; return(true); } switch (itemconfig.ResourceType) { case ResourceType.Gold: { BigInteger resourceNum = BigInteger.Parse(itemconfig.ResourceNum); BigInteger value = Math.Ceiling(GetBasis.UserLv / 50.0).ToInt() * resourceNum; UserHelper.RewardsGold(Current.UserId, value * useNum, UpdateCoinOperate.UserItemReward); //receipt.GainGold = resourceNum; } break; case ResourceType.Diamond: { UserHelper.RewardsDiamond(Current.UserId, itemconfig.ResourceNum.ToInt() * useNum, UpdateCoinOperate.UseItem); //receipt.GainDiamond = resourceNum * useNum; } break; case ResourceType.Gift: { var giftconfig = new ShareCacheStruct <Config_Giftbag>().Find(t => t.ItemID == itemconfig.ItemID); if (giftconfig == null) { new BaseLog().SaveLog(string.Format("No found gift config. ID={0}", itemconfig.ItemID)); return(false); } //receipt.GainItem = giftconfig.GetRewardsItem(); var list = giftconfig.GetRewardsItem(); foreach (var v in list) { v.Num *= useNum; } UserHelper.RewardsItems(Current.UserId, list); } break; case ResourceType.Elf: { var elfconfig = new ShareCacheStruct <Config_Elves>().Find(t => t.ElvesID == itemconfig.ResourceNum.ToInt()); if (elfconfig == null) { new BaseLog().SaveLog(string.Format("No found elf config. ID={0}", itemconfig.ResourceNum)); return(false); } if (itemconfig.ItemType == ItemType.Elf) { UserHelper.RewardsElf(Current.UserId, elfconfig.ElvesID); } else if (itemconfig.ItemType == ItemType.ElfExperienceCard) { long experienceTimeMin = itemconfig.ItemGrade * 60 * 24; UserHelper.RewardsElf(Current.UserId, elfconfig.ElvesID, true, experienceTimeMin); } } break; case ResourceType.Vit: { UserHelper.RewardsVit(Current.UserId, itemconfig.ResourceNum.ToInt() * useNum); //receipt.GainDiamond = resourceNum * useNum; } break; default: { receipt = UsedItemResult.Cannot; return(true); } } GetPackage.RemoveItem(itemId, useNum); return(true); }