public void ActivateButton() { InventoryItem item = activeList[selected]; if (mode == "buying") { if (data.gold >= item.cost * 5) { data.AddToInventory(item.Copy()); data.gold -= item.cost * 5; goldText.text = data.gold.ToString(); // Float cost text GameObject text = Instantiate(textFab, new Vector3(0, 0, 0), Quaternion.identity, gameObject.transform); DmgTextController textCont = text.GetComponent <DmgTextController>(); textCont.Init(goldText.transform.position, "cost", "-" + (item.cost * 5).ToString()); } } else if (mode == "selling") { data.gold += item.cost; goldText.text = data.gold.ToString(); reselectNeeded = data.RemoveFromInventory(selected); // Float cost text GameObject text = Instantiate(textFab, new Vector3(0, 0, 0), Quaternion.identity, gameObject.transform); DmgTextController textCont = text.GetComponent <DmgTextController>(); textCont.Init(goldText.transform.position, "gold", "+" + (item.cost).ToString()); RefreshItems(); } }
public InventoryItem Clone() { InventoryItem New = new InventoryItem(this.GetUId()); //Todo thats not working - how to call specific constructor New.Copy(this); return(New); }
public void AddItem(Character character, InventoryItem item, int quantity, GameClient client, GameClient receiverClient) { _timer = DateTime.Now; UnLockExchangeCases(client, receiverClient); // Update exchange board InventoryItem existItem; if (FirstTrader == character) { existItem = _firstTraderItems.Find( x => x.Character == item.Character && x.ItemPosition == item.ItemPosition && x.ItemInfos == item.ItemInfos && x.Stats == item.Stats); } else { existItem = _secondTraderItems.Find( x => x.Character == item.Character && x.ItemPosition == item.ItemPosition && x.ItemInfos == item.ItemInfos && x.Stats == item.Stats); } if (existItem != null) { existItem.Quantity += quantity; client.SendPackets(string.Format("{0}+{1}|{2}", Packet.ExchangeObjectLocalObjectMove, item.Id, existItem.Quantity)); receiverClient.SendPackets(string.Format("{0}+{1}", Packet.ExchangeObjectDistantObjectMove, item.ToExchangeFormat(existItem.Quantity))); } else { var newItem = item.Copy(quantity: quantity); if (character == FirstTrader) { _firstTraderItems.Add(newItem); } else { _secondTraderItems.Add(newItem); } client.SendPackets(string.Format("{0}+{1}|{2}", Packet.ExchangeObjectLocalObjectMove, item.Id, newItem.Quantity)); receiverClient.SendPackets(string.Format("{0}+{1}", Packet.ExchangeObjectDistantObjectMove, item.ToExchangeFormat(newItem.Quantity))); } }
private void CreateTraderItem(Character trader, InventoryItem existItemTrader, GameClient traderClient, InventoryItem item) { if (existItemTrader != null) { existItemTrader.Quantity += item.Quantity; traderClient.SendPackets(string.Format("{0}{1}|{2}", Packet.ObjectQuantity, existItemTrader.Id, existItemTrader.Quantity)); InventoryItemRepository.Update(existItemTrader); } else { var newItem = item.Copy(quantity: item.Quantity); newItem.Character = trader; traderClient.SendPackets(string.Format("{0}{1}", Packet.ObjectAdd, newItem.ItemInfo())); InventoryItemRepository.Create(newItem, true); } }