private void PlaceDownOffering() { if (_gravesCollider.GravesInCollider.Count > 0) { List <Gravestone> nearGraves = _gravesCollider.GravesInCollider; float Distance = Vector2.Distance(playerRB.position, nearGraves[0].transform.position); Gravestone closestGrave = nearGraves[0]; foreach (Gravestone grave in nearGraves) { if (!grave.currentOffering) { if (Vector2.Distance(playerRB.position, grave.transform.position) < Distance) { Distance = Vector2.Distance(playerRB.position, grave.transform.position); closestGrave = grave; } } } if (!closestGrave.currentOffering) { Offering offering = collectedOfferings[0]; //take the first offering off our list offering.gameObject.SetActive(true); //reenable this offering offering.transform.position = closestGrave.OfferingPos.transform.position; //and move it our graves offering position _placeDownSound.Play(); closestGrave.RaiseHappiness(offering.HealAmount); //heal our grave offering.FadeAway(closestGrave); //slowly fade it away collectedOfferings.RemoveAt(0); //remove the offering from our list Events.current.PlaceDownOffering(offering); LevelSceneManager.instance.timeSinceLastMiscPrompt = 0f; } } }