public void PickupOrDropItemFromTrader(TraderPopupMessage _input) { int charIdx = (int)_input.traderIdx; int resIdx = (int)_input.resourceIdx; if (_input.pickupOrDrop == "pickup") { if (m_playerCarrying.Count < 4) { if (m_inventory[charIdx][resIdx].amount >= 1.0f) { m_playerCarrying.Add(resIdx); m_inventory[charIdx][resIdx].amount--; m_traderPopup.GetComponent <AudioSource>().clip = m_traderPopup.m_pickupItem; m_traderPopup.GetComponent <AudioSource>().Play(); } } } else { if (m_playerCarrying.Count > 0) { for (int idxItem = 0; idxItem < m_playerCarrying.Count; idxItem++) { if (m_playerCarrying[idxItem] == resIdx) { if (m_director.m_needs[charIdx].Count > 0 && m_director.m_needs[charIdx][0].idx == resIdx) { m_director.DropNeed(charIdx, idxItem); } m_inventory[charIdx][resIdx].amount++; m_playerCarrying.RemoveAt(idxItem); m_traderPopup.GetComponent <AudioSource>().clip = m_traderPopup.m_dropItem; m_traderPopup.GetComponent <AudioSource>().Play(); return; } } } } }
public void OnPointerClick(PointerEventData eventData) { TraderPopupMessage message = new TraderPopupMessage(); message.resourceIdx = m_resourceIdx; message.traderIdx = m_traderPopup.m_currIdx; if (eventData.button == PointerEventData.InputButton.Left) { message.pickupOrDrop = "pickup"; } else if (eventData.button == PointerEventData.InputButton.Right) { message.pickupOrDrop = "drop"; } else { return; } m_brain.SendMessage("PickupOrDropItemFromTrader", message); }