public IActionResult BuyItem(BuyItemRequest buyItemRequest) { var buyItemResult = _shopService.BuyItem(buyItemRequest); if (buyItemResult.Status) { return(SuccessResponse()); } else { return(FailResponse(buyItemResult.Message)); } }
public async Task <L2Response> BuyItem(string accountName, string modelUsername, int modelItemId, int modelItemCount, int modelEnchant, int modelPrice) { var buyItemRequest = new BuyItemRequest { AccountName = accountName, Username = modelUsername, ItemId = modelItemId, ItemCount = modelItemCount, Enchant = modelEnchant, Price = modelPrice }; var responseObject = await buyItemRequest.SendPostRequest <L2Response>(); return(responseObject); }
public async Task <bool> BuyItemAsync(ApiRequestModel apiRequestModel, BuyItemRequest model) { var requestUrl = "store_items/buy"; var requestBody = new { user_id = model.UserId, item_id = model.ItemId }; using (var response = await SendPostRequestAsync(apiRequestModel, requestUrl, requestBody)) { if (!response.IsSuccessStatusCode) { return(false); } return(true); } }
public override async Task BuyItem(BuyItemRequest request, IServerStreamWriter <BuyItemReply> responseStream, ServerCallContext context) { var session = await context.GetSession(); if (session == null) { await responseStream.WriteAsync(new BuyItemReply() { Code = ErrorCode.LostSession }); return; } var reply = new BuyItemReply(); (reply.Code, reply.Item, reply.AccountGoods) = await ShopManager.BuyItem(session, request.ShopItemId, request.ShopId); await responseStream.WriteAsync(reply); }
void Start() { // 释放资源 UIManager.Instance.ClearAll(); ResourcesManager.Instance.ReleaseAll(); // 获取请求 m_InitComplete = GetComponent <InitCompleteRequest>(); m_DamageRequest = GetComponent <DamageRequest>(); m_HeroMoveRequest = GetComponent <HeroMoveRequest>(); m_BuyRequest = GetComponent <BuyItemRequest>(); m_UpgradeSkillRequest = GetComponent <UpgradeSkillRequest>(); m_UseSkillRequest = GetComponent <UseSkillRequest>(); m_EffectEndRequest = GetComponent <EffectEndRequest>(); // 加载资源 ResourcesManager.Instance.Load(Paths.UI_BUY, typeof(AudioClip)); // 发送进入游戏的请求 GetComponent <EnterBattleRequest>().SendRequest(); }
/// <summary> /// 購買物品 /// </summary> /// <param name="buyItemRequest"></param> /// <returns></returns> public ServiceResult BuyItem(BuyItemRequest buyItemRequest) { User userInfo = _context.User.SingleOrDefault(x => x.Id == buyItemRequest.UserId); Product product = _context.Product.SingleOrDefault(y => y.Id == buyItemRequest.ProductId); if (userInfo == null) { return(ServiceResult.Fail("使用者資訊錯誤")); } if (product == null) { return(ServiceResult.Fail("產品錯誤")); } // Data Annoatation已判斷 //if(buyItemRequest.Quantity <= 0) //{ // return ServiceResult.Fail("請選擇數量"); //} if (userInfo.Money < product.Price * buyItemRequest.Quantity) { return(ServiceResult.Fail("金幣不足")); } var userProduct = _context.UserProduct.SingleOrDefault(x => x.ProductId == buyItemRequest.ProductId && x.UserId == buyItemRequest.UserId); //DB操作 if (userProduct == null) { UserProduct insertUserProduct = _mapper.Map <BuyItemRequest, UserProduct>(buyItemRequest); _context.UserProduct.Add(insertUserProduct); } else { userInfo.UserProduct.SingleOrDefault(x => x.ProductId == buyItemRequest.ProductId).Quantity += buyItemRequest.Quantity; } userInfo.Money -= product.Price * buyItemRequest.Quantity; _context.SaveChanges(); return(ServiceResult.Success()); }
public override bool HandlePacket(Peer peer, byte[] data) { var request = new BuyItemRequest(data); var itemTemplate = _itemManager.SafeGetItemType(request.id); if (itemTemplate == null) { return(false); } var champion = _playerManager.GetPeerInfo(peer).Champion; var stats = champion.GetStats(); var inventory = champion.getInventory(); var recipeParts = inventory.GetAvailableItems(itemTemplate.Recipe); var price = itemTemplate.TotalPrice; Item i; short itemSlot = 0; if (recipeParts.Count == 0) { if (stats.Gold < price) { return(true); } i = inventory.AddItem(itemTemplate); if (i == null) { // Slots full return(false); } else { itemSlot = inventory.GetItemSlot(i); } } else { foreach (var instance in recipeParts) { price -= instance.ItemType.TotalPrice; } if (stats.Gold < price) { return(false); } foreach (var instance in recipeParts) { stats.RemoveModifier(instance.ItemType); _game.PacketNotifier.NotifyRemoveItem(champion, inventory.GetItemSlot(instance), 0); inventory.RemoveItem(instance); } i = inventory.AddItem(itemTemplate); itemSlot = inventory.GetItemSlot(i); } short spellSlot = (short)(itemSlot + 6); champion.Spells[spellSlot] = new Spell(champion, i.ItemType.SpellName, (byte)spellSlot); stats.Gold -= price; stats.AddModifier(itemTemplate); _game.PacketNotifier.NotifyItemBought(champion, i); return(true); }