public void DailyOperation(ItemForSale item) { if (item.IsLegendary) { return; } item.DecreaseSellIn(); if (item.CanExpire && item.IsPastSellDate) { item.ResetItemQuality(); return; } if (item.IncreasesIncrementallyBetterTowardsSellIn) { item.HandleIncrementalQualityIncrease(); } if (item.GetsBetterWithAge) { item.UpdateIncreasedItemQuality(); } else { item.UpdateDecreasedItemQuality(); } }
float CalculateSellPrice(ItemForSale item) { float price; ItemForSale existingItem = itemsPurchasableHere.Find(x => x.item.id == item.item.id); if (existingItem != null) { price = existingItem.price * itemForPurchaseSellPriceFactor; } else { float priceTest1 = Random.Range(item.item.minValue, item.item.maxValue); float priceTest2 = Random.Range(item.item.minValue, item.item.maxValue); if (priceTest1 > priceTest2) { price = priceTest1; } else { price = priceTest2; } } price = Mathf.Round(price); return(price); }
// commented since it is simply List.Add /* public bool addItemForSale(ItemForSale itemForSale) { itemsForSale.Add(itemForSale); } */ // can not check the input item since it is an instance // use a newly created enum class ItemForSale /* public bool buyItemForSale(Hero hero, Item item) { if (hero != null && item != null && itemsForSale.ContainsKey(item)) { int price = itemsForSale[item]; if(hero.getGold() >= price) { itemsForSale.Remove(item); hero.setGold(hero.getGold() - price); hero.addItem(item); return true; } } return false; } */ public bool buyItemForSale(Hero hero, ItemForSale item) { if (hero != null && itemsForSale.Contains(item)) { int price = 2; if (isMine && hero.getHeroKind() == HeroKind.Dwarf && item == ItemForSale.SP) price = 1; // dwarf get a discount if (hero.getGold() >= price) { Item newItem=new Item(ItemWeight.Light); //ItemWeight.Light as placehoder for initialization if (item== ItemForSale.SP) { hero.setGold(hero.getGold() - price); hero.setStrengthPoints(hero.getStrengthPoints() + 1); return true; } else { if (item == ItemForSale.Wineskin) newItem = new Wineskin(ItemWeight.Light); if (item == ItemForSale.Falcon) newItem = new Falcon(ItemWeight.Heavy); if (item == ItemForSale.Telescope) newItem = new Telescope(ItemWeight.Light); if (item == ItemForSale.Helm) newItem = new Helm(ItemWeight.Light); if (item == ItemForSale.Shield) newItem = new Shield(ItemWeight.Heavy); if (item == ItemForSale.Bow) newItem = new Bow(ItemWeight.Heavy); } hero.setGold(hero.getGold() - price); hero.addItem(newItem); return true; } } return false; }
public void ConfirmItem(ItemForSale item, Item.TYPE itemType, string iTemName, int iTemPrice) { itemTypeToConfirm = itemType; itemNameToConfirm = iTemName; price = iTemPrice; selectedItem = item; }
float getSoldChance(ItemForSale item, BusinessData data, ref string message) { if (!data.workersAssigned.Contains(HireeType.Sales) && playerAtStall != data.name) { message = ("You should assign a sales assistant to your " + data.name + " so it can operate while you are busy."); return(0); } float soldChance = 0.6f; foreach (HireeType hireeData in data.workersAssigned) { if (hireeData == HireeType.Promoter) { soldChance *= 1.7f; } if (hireeData == HireeType.Sales) { soldChance *= 1.2f; } } soldChance *= item.item.baseValue / item.cost; return(soldChance); }
private static void SubtractItemQuality(this ItemForSale item) { item.Quality--; if (item.IsConjured) { item.Quality--; } }
public ItemForSaleDTO(ItemForSale item) { this.Id = item.Id; this.Title = item.Title; this.Description = item.Description; this.Price = item.Price; this.SellerName = item.Seller.Username; this.DateCreated = item.DateCreated; }
public static void UpdateIncreasedItemQuality(this ItemForSale item) { AddItemQuality(item); if (item.IsPastSellDate) { AddItemQuality(item); } AssureItemQualityMinMax(item); }
void SetupItemsForPurchase() { itemsPurchasableHere = new List <ItemForSale>(); foreach (InventoryItem item in inventoryItemsPurchasableHere) { ItemForSale newItem = new ItemForSale(); newItem.item = item; newItem.price = CalculatePurchasePrice(item.minValue, item.maxValue, item.baseValue); itemsPurchasableHere.Add(newItem); } }
public static void HandleIncrementalQualityIncrease(this ItemForSale item) { if (item.SellIn < 10) { AddItemQuality(item); } if (item.SellIn < 5) { AddItemQuality(item); } }
private static void AssureItemQualityMinMax(this ItemForSale item) { if (item.Quality > ItemForSale.MAX_QUALITY) { item.Quality = ItemForSale.MAX_QUALITY; } if (item.Quality < ItemForSale.MIN_QUALITY) { item.Quality = ItemForSale.MIN_QUALITY; } }
void SetUpBuyList() { itemsSellPricesHere = new List <ItemForSale>(); foreach (InventoryItem item in inventoryItemController.itemTypes) { ItemForSale newItem = new ItemForSale(); newItem.item = item; newItem.price = CalculateSellPrice(newItem); itemsSellPricesHere.Add(newItem); } }
public void PlayerSellItem() { ItemForSale itemForSale = currentPort.GetComponent <PortInventory>().itemsSellPricesHere.Find(x => x.item == shipInventory.selectedSlot.GetComponent <InventorySlot>().item); if (itemForSale == null) { Debug.LogError("ItemforSale not found!"); } shipInventory.GainDucats((int)itemForSale.price); shipInventory.selectedSlot.GetComponent <InventorySlot>().RemoveItem(); UpdateItemSaleView(); }
public async Task <IActionResult> OnPost(ItemForSale itemObj) { if (ModelState.IsValid) { await _db.ItemForSale.AddAsync(ItemForSale); await _db.SaveChangesAsync(); return(RedirectToPage("Index")); } else { return(Page()); } }
public void UpdateItemSaleView() { if (shipInventory.selectedSlot != null && shipInventory.selectedSlot.GetComponent <InventorySlot>().item != null) { ItemForSale itemForSale = currentPort.GetComponent <PortInventory>().itemsSellPricesHere.Find(x => x.item == shipInventory.selectedSlot.GetComponent <InventorySlot>().item); itemBeingSoldName.text = itemForSale.item.itemName; itemBeingSoldCost.text = itemForSale.price.ToString(); playerSellButton.SetActive(true); } else { itemBeingSoldName.text = "No item selected"; itemBeingSoldCost.text = ""; playerSellButton.SetActive(false); } }
public bool Create(string title, string description, decimal price, int sellerId) { using (var db = new ArtStoreDbContext()) { var item = new ItemForSale { Title = title, Description = description, Price = price, SellerId = sellerId, DateCreated = DateTime.Now }; db.Add(item); db.SaveChanges(); } return(true); }
public async Task CreateAsync(CreateItemInputModel input, string userId, string imagePath) { var item = new ItemForSale() { Name = input.Name, Description = input.Description, Price = input.Price, UserId = userId, }; var category = this.categoryRepository.All().FirstOrDefault(x => x.Id == input.CategoryId); item.Category = category; Directory.CreateDirectory($"{imagePath}/itemsForSale/"); foreach (var image in input.Images) { var extension = Path.GetExtension(image.FileName).TrimStart('.'); if (!this.allowedExtensions.Any(x => extension.EndsWith(x))) { throw new Exception($"Invalid image extension {extension}"); } var dbImage = new Image { Extension = extension, UserId = userId, }; item.Images.Add(dbImage); var physicalPath = $"{imagePath}/itemsForSale/{dbImage.Id}.{extension}"; using Stream fileStream = new FileStream(physicalPath, FileMode.Create); await image.CopyToAsync(fileStream); } await this.itemsRepository.AddAsync(item); await this.itemsRepository.SaveChangesAsync(); }
public ActionResult CreateItem([Bind(Include = "ID,ItemName,Price")] ItemForSale itemForSale) { try { if (ModelState.IsValid) { //User would be the user who is logged in itemForSale.User = "******"; itemForSale.Date = DateTime.Now; // TODO: Add insert logic here (usually to db) ModelCollections.ItemsForSaleList.Add(itemForSale); return(RedirectToAction("Index", "Items")); } return(View(itemForSale)); } catch (Exception ex) { ModelState.AddModelError(String.Empty, "An Error occurred: " + ex.Message); //ex.Message is usually written to log, not displayed to users return(View()); } }
public async Task OnGet(int id) { ItemForSale = await _db.ItemForSale.FindAsync(id); }
public static void ResetItemQuality(this ItemForSale item) { item.Quality = ItemForSale.MIN_QUALITY; }
private static void AddItemQuality(this ItemForSale item) { item.Quality++; }
public static void DecreaseSellIn(this ItemForSale item) { item.SellIn--; }