public SoupItem RemoveItem(int index) { if (m_sectionsList [index].m_items.Count == 0) { RemoveSoup(m_brothValue); if (Random.Range(0.0f, 1.0f) <= m_slurpChance) { AudioManager.Instance.SFXplayerSlurp(); } return(null); } SoupItem item = m_sectionsList [index].m_items[0]; m_sectionsList [index].m_items.RemoveAt(0); if (Random.Range(0.0f, 1.0f) <= m_eatChance) { if (Random.Range(0, 2) == 0) { AudioManager.Instance.SFXplayerEat(); } else { AudioManager.Instance.SFXplayerHappy(); } } RemoveSoup(item.m_soupValue); return(item); }
public void SpawnItem() { if (m_isSwirling) { return; } // this is a non equal distribution of points // first pick a random angle float randAngle = Random.Range(m_startAngle * 1.1f, m_endAngle * 0.9f); // Then a random distance float randDistance = Random.Range(m_radius / 3.0f, m_radius * 0.9f); // and a random rotation float randRotation = Random.Range(0.0f, 360.0f); // calculate the final point for the item float x = Soup.Instance.transform.position.x + randDistance * Mathf.Cos(randAngle * (Mathf.PI / 180)); float y = Soup.Instance.transform.position.y + randDistance * Mathf.Sin(randAngle * (Mathf.PI / 180)); Vector2 spawnPoint = new Vector2(x, y); SoupItem spawned = Soup.Instance.InstantiateSoupItem(spawnPoint, new Quaternion(Quaternion.identity.x, Quaternion.identity.y, randRotation, Quaternion.identity.w), (int)m_itemType); spawned.transform.SetParent(Soup.Instance.transform); spawned.transform.position = spawnPoint; spawned.m_rotationSpeed = Random.Range(-15.0f, 15.0f); m_items.Add(spawned); }
public void Scoop(int index) { if (isScooping || isSwirling) { return; } goingUp = true; isScooping = true; SoupItem item = Soup.Instance.RemoveItem(index); OnScoop(item); }
void Eat(SoupItem item) { if (item == null) { //Debug.Log ("broth"); } else { //Debug.Log (item.m_itemType); tally [item.m_itemType]++; Destroy(item.gameObject); } mouthfuls++; }
public bool IsInSoup(SoupItem item) { float distance = Mathf.Abs(Vector3.Distance(item.transform.position, Soup.Instance.transform.position)); float soupDistance = (Soup.Instance.m_soupSprite.bounds.size.x / 2) * Soup.Instance.m_soupPercentage; soupDistance += 1.0f; if (distance < soupDistance) { return(true); } else { return(false); } }
public void DestroyItem(SoupItem item) { Destroy(item); }