public async Task Buy(Lot lot, uint count, Player player) { await using var ctx = new CdClientContext(); var itemComponent = await ctx.ItemComponentTable.FirstAsync( i => i.Id == lot.GetComponentId(ComponentId.ItemComponent) ); if (count == default || itemComponent.BaseValue <= 0) { return; } var cost = (uint)((itemComponent.BaseValue ?? 0) * count); if (cost > player.Currency) { return; } player.Currency -= cost; await player.GetComponent <InventoryManagerComponent>().AddItemAsync(lot, count); player.Message(new VendorTransactionResultMessage { Associate = GameObject, Result = TransactionResult.Success }); await OnBuy.InvokeAsync(lot, count, player); }
public Task <BinaryOptionsResult> BuyBinaryAsync(BuyModel buyModel) { OnBuy?.Invoke(buyModel); return(WsClient?.BuyBinaryAsync( buyModel.Pair, buyModel.Size, buyModel.Direction, buyModel.Expiration, Profile.BalanceId)); }
public void BuildTurretOn(Node node) { if (ps.ModifyMoney() < turretToBuild.cost) { Debug.Log("Not enough money"); return; } OnBuy?.Invoke(ps.ModifyMoney()); GameObject turret = Instantiate(turretToBuild.prefab, node.GetBuildPosition(), Quaternion.identity); node.turret = turret; Debug.Log("turret build, money left: " + ps.ModifyMoney()); }
public async Task Buy(Lot lot, uint count, Player player) { var componentId = lot.GetComponentId(ComponentId.ItemComponent); var itemComponent = await ClientCache.FindAsync <ItemComponent>(componentId); if (count == default || itemComponent.BaseValue <= 0) { return; } var character = player.GetComponent <CharacterComponent>(); var cost = (uint)((itemComponent.BaseValue ?? 0) * count); if (cost > character.Currency) { return; } // If we have to buy this with an alternative currency if (itemComponent.CurrencyLOT != null) { var alternativeCurrencyLot = (Lot)itemComponent.CurrencyLOT; var alternativeCurrencyCost = itemComponent.AltCurrencyCost ?? 0; var inventory = player.GetComponent <InventoryManagerComponent>(); if (alternativeCurrencyCost > inventory.FindItems(alternativeCurrencyLot) .Select(i => (int)i.Count).Sum()) { return; } await inventory.RemoveLotAsync(alternativeCurrencyLot, (uint)alternativeCurrencyCost); } character.Currency -= cost; await player.GetComponent <InventoryManagerComponent>().AddLotAsync(lot, count, lootType: LootType.Vendor); player.Message(new VendorTransactionResultMessage { Associate = GameObject, Result = TransactionResult.Success }); await OnBuy.InvokeAsync(lot, count, player); }
public void BuyTicket(Passenger passenger) { String finishPoint; Console.Write("\nВведите пункт назначения: "); finishPoint = Console.ReadLine(); Console.Write("\nВам подойдут следующие рейсы: "); for (int i = 0; i < _ticketBase.Count; i++) { if (_ticketBase[i].FindSuitable(finishPoint)) { Console.Write("\nНомер билета: " + i); Console.WriteLine(_ticketBase[i].Info()); _suitable++; } } if (_suitable == 0) { Console.Write("\nСожалеем, но подходящих рейсов не найдено."); return; } int indexTic; do { Console.Write("Ваш выбор: "); }while (!int.TryParse(Console.ReadLine(), out indexTic)); if (indexTic < _ticketBase.Count && indexTic >= 0) { Ticket temp = _ticketBase[indexTic]; passenger.InPropertyTicket.Add(temp); OnBuy?.Invoke(); return; } Console.Write("\nТакого билета нет в базе."); }
public void BuyTicket(Passenger passenger) { String finishPoint; Console.Write("\nВведите пункт назначения: "); finishPoint = Console.ReadLine(); Console.Write("\nВам подойдут следующие рейсы: "); for (int i = 1; i <= _ticketBase.Count; i++) { if (_ticketBase[i].FindSuitable(finishPoint)) { Console.Write("\nНомер билета: " + i); Console.WriteLine(_ticketBase[i].Info()); _suitable++; } } if (_suitable == 0) { Console.WriteLine("\nСожалеем, но подходящих рейсов не найдено."); return; } Console.Write("\nВаш выбор: "); int indexTic = Convert.ToInt32(Console.ReadLine()); if (indexTic <= _ticketBase.Count) { Ticket temp = _ticketBase[indexTic]; _totalSum += temp.Price; passenger.TotalSum += temp.Price; OnBuy?.Invoke(); return; } Console.Write("\nТакого билета нет в базе."); }
public BuyButton(OnBuy onBuy, Vector2 position, Vector2 size, Menu menu, Map map) : base("Buy", position, size, menu, map) { this.onBuy = onBuy; textBox.UpdateRate = 0; }