void InteractableCheck() { int counter = 0; foreach (GameObject container in containerList) { if (player.transform.position.x > container.transform.position.x - distance && player.transform.position.x < container.transform.position.x + distance && player.transform.position.z > container.transform.position.z - distance && player.transform.position.z < container.transform.position.z + distance) { containerNear = true; //set closest if (closest == null) { closest = container; } else if (closest != null || closest != container) { //if this item is closer if (Vector3.Distance(player.transform.position, container.transform.position) < Vector3.Distance(player.transform.position, closest.transform.position)) { closest = container; } } } else { counter++; } } //if none of the items were near, don't bring up the option if (counter == containerList.Count) { containerNear = false; collectedEvidence = false; collectedItem = false; } //if the player is near an item, let them pick it up if (containerNear) { ContainerScript containerScript = closest.GetComponent <ContainerScript>(); visited = containerScript.visited; if (Input.GetKeyDown(KeyCode.E)) { containerScript.visited = true; //change the container's state to being open //change boolean state from open to closed or vice versa if (containerScript.open) { containerScript.open = false; } else if (!containerScript.open) { containerScript.open = true; } if (containerScript.requiredItem.Length == 0 || containerScript.requiredItem[0] == "") { if (!containerScript.playerHasRequiredItem && containerScript.requiredItem[0] != "") // if there is a required item for this container, check if the player has it { foreach (string j in inventory) { if (j == containerScript.requiredItem[0]) { containerScript.playerHasRequiredItem = true; // Attempting to remove the sprite from the inventory once the required item is used. //inventory.Remove(containerScript.requiredItem); //inventorySprites.Remove(containerScript.requiredItem); } } } if (containerScript.containsEvidence && containerScript.playerHasRequiredItem) //if the container held an item, add it to the inventory { //inventory.Remove(containerScript.requiredItem[0]); //inventorySprites.Remove(containerScript.requiredItem[0]); evidenceCollected.Add(containerScript.item); inventory.Add(containerScript.item); inventorySprites.Add(containerScript.item, containerScript.image); containerScript.item = "Empty"; containerScript.contains = false; containerScript.containsEvidence = false; collectedEvidence = true; } else if (containerScript.contains && containerScript.playerHasRequiredItem) { //inventory.Remove(containerScript.requiredItem[0]); //inventorySprites.Remove(containerScript.requiredItem[0]); inventory.Add(containerScript.item); inventorySprites.Add(containerScript.item, containerScript.image); containerScript.item = "Empty"; containerScript.contains = false; collectedItem = true; } } else { for (int i = 0; i < containerScript.requiredItem.Length; i++) { if (!containerScript.playerHasRequiredItem && containerScript.requiredItem[i] != "") // if there is a required item for this container, check if the player has it { int check = 0; foreach (string j in inventory) { if (j == containerScript.requiredItem[i]) { if (j == "BrokenVase" || j == "SaucyNovel" || j == "Photo") { check++; if (check == containerScript.requiredItem.Length) { containerScript.playerHasRequiredItem = true; } } else { containerScript.playerHasRequiredItem = true; } // Attempting to remove the sprite from the inventory once the required item is used. //inventory.Remove(containerScript.requiredItem); //inventorySprites.Remove(containerScript.requiredItem); } } } if (containerScript.containsEvidence && containerScript.playerHasRequiredItem) //if the container held an item, add it to the inventory { inventory.Remove(containerScript.requiredItem[i]); inventorySprites.Remove(containerScript.requiredItem[i]); evidenceCollected.Add(containerScript.item); inventory.Add(containerScript.item); inventorySprites.Add(containerScript.item, containerScript.image); containerScript.item = "Empty"; containerScript.contains = false; containerScript.containsEvidence = false; collectedEvidence = true; } else if (containerScript.contains && containerScript.playerHasRequiredItem) { inventory.Remove(containerScript.requiredItem[i]); inventorySprites.Remove(containerScript.requiredItem[i]); inventory.Add(containerScript.item); inventorySprites.Add(containerScript.item, containerScript.image); containerScript.item = "Empty"; containerScript.contains = false; collectedItem = true; } } } if (inventory.Contains("Photo") && inventory.Contains("Cocktail")) { if (inventory.Contains("Money_1") || inventory.Contains("Money_2")) { if (inventory.Contains("Money_1")) { inventory.Remove("Money_1"); } else if (inventory.Contains("Money_2")) { inventory.Remove("Money_2"); } } } } } }
private void Update() { if (!this.Occupied) { if (this.Prompt.HideButton[0]) { if (this.Yandere.Armed) { this.UpdatePrompt(); } } else if (this.Prompt.Circle[0].fillAmount == 0f) { this.Prompt.Circle[0].fillAmount = 1f; if (this.Yandere.PickUp != null) { this.Item = this.Yandere.PickUp.gameObject; this.Yandere.MyController.radius = 0.5f; this.Yandere.EmptyHands(); } else { this.Item = this.Yandere.EquippedWeapon.gameObject; this.Yandere.DropTimer[this.Yandere.Equipped] = 0.5f; this.Yandere.DropWeapon(this.Yandere.Equipped); this.Weapon = true; } this.Item.transform.parent = this.TrashPosition; this.Item.GetComponent <Rigidbody>().useGravity = false; this.Item.GetComponent <Collider>().enabled = false; this.Item.GetComponent <PromptScript>().Hide(); this.Item.GetComponent <PromptScript>().enabled = false; this.Occupied = true; this.UpdatePrompt(); } } else if (this.Prompt.Circle[0].fillAmount == 0f) { this.Prompt.Circle[0].fillAmount = 1f; this.Item.GetComponent <PromptScript>().Circle[3].fillAmount = -1f; this.Item.GetComponent <PromptScript>().enabled = true; this.Item = null; this.Occupied = false; this.Weapon = false; this.UpdatePrompt(); } if (this.Item != null) { if (this.Weapon) { this.Item.transform.localPosition = new Vector3(0f, 0.29f, 0f); this.Item.transform.localEulerAngles = new Vector3(90f, 0f, 0f); if (this.Item.transform.parent != this.TrashPosition) { this.Item = null; this.Weapon = false; } } else { this.Item.transform.localPosition = new Vector3(0f, 0f, -0.021f); this.Item.transform.localEulerAngles = Vector3.zero; } } if (this.Wearable && this.Prompt.Circle[3].fillAmount == 0f) { this.Prompt.Circle[3].fillAmount = 1f; base.transform.parent = this.Prompt.Yandere.Backpack; base.transform.localPosition = Vector3.zero; base.transform.localEulerAngles = new Vector3(90f, -154f, 0f); this.Prompt.Yandere.Container = this.Container; this.Prompt.Yandere.WeaponMenu.UpdateSprites(); this.Prompt.Yandere.ObstacleDetector.gameObject.SetActive(true); this.Prompt.MyCollider.enabled = false; this.Prompt.Hide(); this.Prompt.enabled = false; Rigidbody component = base.GetComponent <Rigidbody>(); component.isKinematic = true; component.useGravity = false; } }