public void Execute(CommodityVO reward) { InventoryModel inventory = AmbitionApp.GetModel <InventoryModel>(); ItemVO item = inventory.Instantiate(reward.ID); if (item == null) { ItemConfig config = Resources.Load <ItemConfig>(Filepath.Items + reward.ID); inventory.Import(config); item = inventory.Instantiate(reward.ID); } if (item != null) { if (reward.Value > 0) { item.Price = reward.Value; } item.Created = AmbitionApp.GetModel <CalendarModel>().Today; inventory.Inventory.Add(item); inventory.Broadcast(); } #if DEBUG else { Debug.LogWarningFormat("No inventory template matches reward ID '{0}'; synthesizing one", reward.ID); } #endif }
public void Execute(ItemVO item) { InventoryModel inventory = AmbitionApp.Inventory; int livre = AmbitionApp.Game.Livre; if (item != null && livre + item.Price >= 0 && inventory.Inventory.Remove(item)) { CommodityVO profit = new CommodityVO(CommodityType.Livre, item.Price); AmbitionApp.SendMessage(profit); // Seller will markup the used price. item.Price = (int)(item.Price / inventory.SellbackMultiplier); inventory.Market?.Add(item); inventory.Broadcast(); } }
public void Execute(ItemVO item) { InventoryModel inventory = AmbitionApp.Inventory; if (item != null && AmbitionApp.Game.Livre >= item.Price && inventory.Market != null && inventory.Market.Remove(item)) { CommodityVO cost = new CommodityVO(CommodityType.Livre, -item.Price); AmbitionApp.SendMessage(cost); if (item.Created == default) { item.Created = AmbitionApp.GetModel <CalendarModel>().Today; } item.Price = (int)(item.Price * inventory.SellbackMultiplier); inventory.Inventory.Add(item); inventory.Broadcast(); } }