Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    public void Scoop(int index)
    {
        if (isScooping || isSwirling)
        {
            return;
        }
        goingUp    = true;
        isScooping = true;
        SoupItem item = Soup.Instance.RemoveItem(index);

        OnScoop(item);
    }
Beispiel #4
0
    void Eat(SoupItem item)
    {
        if (item == null)
        {
            //Debug.Log ("broth");
        }
        else
        {
            //Debug.Log (item.m_itemType);
            tally [item.m_itemType]++;
            Destroy(item.gameObject);
        }

        mouthfuls++;
    }
Beispiel #5
0
    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);
        }
    }
Beispiel #6
0
 public void DestroyItem(SoupItem item)
 {
     Destroy(item);
 }