public void Eat() { if (currentHolded == null) { return; } if (currentHolded.getItemName() == PickedUpItemName.DRIED_FISH) { changeHunger(20); changeHealth(10); useItemInHand(); } else if (currentHolded.getItemName() == PickedUpItemName.FRUIT) { changeHunger(10); changeHealth(5); useItemInHand(); } else if (currentHolded.getItemName() == PickedUpItemName.POOPOO) { changeHunger(10); changeHealth(-10); useItemInHand(); } else { return; } }
//Show item in hand(inactive original item's obj, active new item's obj) public void HoldItemInHand(PickedUpItems item) { if (item is Cloth) { if (currentCloth != null) { currentCloth.gameObject.SetActive(false); } item.m_State = PickedUpItems.ItemState.IN_HAND; currentCloth = (Cloth)item; currentCloth.gameObject.SetActive(true); } else { if (currentHolded != null) { currentHolded.gameObject.SetActive(false); } //if (item.m_State == PickedUpItems.ItemState.IN_BAG) //{ //hold in hand(change UI?) item.m_State = PickedUpItems.ItemState.IN_HAND; currentHolded = item; currentHolded.gameObject.SetActive(true); //Debug.Log("Hold Item: "+ item.getItemName()); //string HoldedItemID = item.getItemName().ToString(); //Debug.Log("Hold Item: Item exist."); //photonView.RPC("RpcChangeHoldItemSprite", RpcTarget.AllBuffered, HoldedItemID, m_ID); } //item.transform.SetParent(transform); if (item.getItemName() == PickedUpItemName.LIGHT_BULB || item.getItemName() == PickedUpItemName.LAMP || item.getItemName() == PickedUpItemName.LITTLE_SUN) { item.transform.SetParent(HoldedLightPosition); item.transform.localPosition = Vector3.zero; } else if (item is Cloth) { item.transform.SetParent(ClothPosition); item.transform.localPosition = Vector3.zero; //item.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); } else { item.transform.SetParent(HoldedPosition); item.transform.localPosition = Vector3.zero; //item.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity); } //} }
public void OnPointerClick(PointerEventData eventData) { if (m_State != ItemState.DEFAULT) { return; } Debug.Log("click a plant"); //find local player PlayerComponent m_player = GameManagerForNetwork.Instance.LocalPlayer.GetComponent <PlayerComponent>(); PickedUpItems holdedItem = m_player.GetWhatsInHand(); if (holdedItem != null) { if (holdedItem.getItemName() == GameResources.PickedUpItemName.POOPOO && f_status == FruitStatus.noFruit) { photonView.RPC("Rpcfertilize", RpcTarget.AllBuffered); m_player.useItemInHand(); return; } } if (f_status == FruitStatus.withFruit) { //pick up fruit pickUpFruit(m_player); } else if (f_status == FruitStatus.noFruit) { pickUpPlant(m_player); } }
//this function run on client and for all players public bool PickedUp(PickedUpItems item) { GameResources.PickedUpItemName name = item.getItemName(); Debug.Log("Pick up " + name.ToString()); Debug.Log("Bag full: " + bagFull); //if (currentHolded != null && bagFull) //{ // Debug.Log("Oops, your bug is full! Can not pick up " + name.ToString()); // return false; //} //for self if (photonView.IsMine) { //play sound AudioManager.instance.PlaySound("pickUp"); //put in bag if (myBackpack.AddNewItem(item)) { bagFull = myBackpack.ItemSpaceLeft() <= 0; Debug.Log("Sucessfully put " + item.getItemName().ToString() + " in bag: now space left " + myBackpack.ItemSpaceLeft()); item.gameObject.SetActive(false); } else { Debug.Log("Oops, your bug is full! Can not pick up " + name.ToString()); return(false); } if (currentHolded == null) { HoldItemInHand(item); } } else { //not local player, only check hold in hand if (currentHolded == null) { HoldItemInHand(item); } } item.m_State = PickedUpItems.ItemState.IN_BAG; //item.gameObject.SetActive(false); return(true); }
// public bool AddNewItem(GameResources.PickedUpItemName newItem) // { // int weight = 1; // if (weight > this.CapacityLeft()) // { // return false; // } // int tmpCount; // if (backpack.TryGetValue(newItem, out tmpCount)) // { // backpack[newItem] = tmpCount + 1; // slotList[itemToSlotIndex[newItem]].updateItem(newItem, tmpCount + 1); // } // else // { // if (ItemSpaceLeft() == 0) // { // return false; // } // for (int i = 0; i < 12; i++) // { // if (!slotIndexToItem.ContainsKey(i)) // { // slotIndexToItem[i] = newItem; // itemToSlotIndex[newItem] = i; // slotList[i].updateItem(newItem, 1); // break; // } // } // backpack[newItem] = 1; // } // currentWeight += weight; // return true; // } public bool AddNewItem(PickedUpItems newItem) { GameResources.PickedUpItemName itemName = newItem.getItemName(); int weight = 1; if (weight > this.CapacityLeft()) { return(false); } int tmpCount; if (backpack.TryGetValue(itemName, out tmpCount)) { backpack[itemName] = tmpCount + 1; slotList[itemToSlotIndex[itemName]].updateItem(itemName, tmpCount + 1); } else { if (ItemSpaceLeft() == 0) { return(false); } for (int i = 0; i < 12; i++) { if (!slotIndexToItem.ContainsKey(i)) { slotIndexToItem[i] = itemName; itemToSlotIndex[itemName] = i; slotList[i].updateItem(itemName, 1); break; } } backpack[itemName] = 1; } instanceList.Add(newItem); currentWeight += weight; return(true); }
public bool PopItem(PickedUpItems newItem) { GameResources.PickedUpItemName itemName = newItem.getItemName(); int weight = 1; Debug.Log("POP " + itemName); int tmpCount; instanceList.Remove(newItem); if (backpack.TryGetValue(itemName, out tmpCount)) { int index = itemToSlotIndex[itemName]; if (tmpCount - 1 > 0) { backpack[itemName] = tmpCount - 1; slotList[index].updateItem(itemName, tmpCount - 1); } else { slotList[index].updateItem(GameResources.PickedUpItemName.DEFAULT, 0); backpack.Remove(itemName); slotIndexToItem.Remove(index); itemToSlotIndex.Remove(itemName); myPlayer = GameManagerForNetwork.Instance.LocalPlayer; if (myPlayer.currentHolded == newItem) { myPlayer.DestroyHoldedItem(); } } } else { return(false); } currentWeight -= weight; return(true); }