private void SetUpSoupSections() { m_sectionsList = new List <SoupSection>(); float areaSize = 360.0f / m_numSections; float angle = 0.0f; float radius = m_soupSprite.bounds.size.x / 2; SoupItem.ItemType previousType = SoupItem.ItemType.Broccoli; SoupItem.ItemType firstType = previousType; for (int i = 0; i < m_numSections; ++i) { SoupItem.ItemType currentType = (SoupItem.ItemType)Random.Range((int)SoupItem.ItemType.Broccoli, (int)SoupItem.ItemType.Shrimp + 1); while (currentType == previousType || (i == m_numSections - 1 && currentType == firstType)) { currentType = (SoupItem.ItemType)Random.Range((int)SoupItem.ItemType.Broccoli, (int)SoupItem.ItemType.Shrimp); } if (i == 0) { firstType = currentType; } previousType = currentType; m_sectionsList.Add(new SoupSection(areaSize, i, angle, radius, currentType)); angle += areaSize; } }
public void Swirl(SoupItem.ItemType newType) { m_isSwirling = true; m_distanceToMove = m_endAngle - m_startAngle; m_itemType = newType; //for (int i = 0; i < m_items.Count; ++i) //{ // m_items[i].transform.RotateAround(Soup.Instance.transform.position, Vector3.forward, m_endAngle - m_startAngle); //} }
public SoupSection(float area, int index, float start, float radius, SoupItem.ItemType type) { m_area = area; m_index = index; m_startAngle = start; m_endAngle = start + area; m_radius = radius; //m_itemType = (SoupItem.ItemType)Random.Range((int)SoupItem.ItemType.Broccoli, (int)SoupItem.ItemType.Shrimp); m_itemType = type; }
public void Swirl() { List <SoupItem> lastList = m_sectionsList[0].m_items; SoupItem.ItemType lastType = m_sectionsList[0].m_itemType; if (Random.Range(0.0f, 1.0f) <= m_swirlChance) { AudioManager.Instance.SFXplayerSwirl(); } for (int i = 0; i < m_numSections - 1; ++i) { m_sectionsList[i].m_items = m_sectionsList[i + 1].m_items; m_sectionsList[i].Swirl(m_sectionsList[i + 1].m_itemType); } // swirl last m_sectionsList[m_numSections - 1].m_items = lastList; //m_sectionsList[0].m_itemType = lastType; m_sectionsList[m_numSections - 1].Swirl(lastType); }