private IEnumerator CountRoutine() { if (m_PlaceValue.numCreatures == 0) { yield break; } for (m_CreatureIndex = 0; m_CreatureIndex < m_PlaceValue.numCreatures; ++m_CreatureIndex) { m_PlaceValue.SetRealtimeCountColor(m_CreatureIndex, m_PlaceValue.DefaultSeatCountColor); m_PlaceValue.SetRealtimeCountNumber(m_CreatureIndex, (m_CreatureIndex + 1) * m_PlaceValue.value); m_PlaceValue.SetRealtimeCount(m_CreatureIndex); yield return(null); float timeToWait = (m_CreatureIndex == m_PlaceValue.numCreatures - 1) ? LastChickenFadeTime : ChickenFadeTime; bool bProceed = false; while (timeToWait > 0 && !bProceed) { timeToWait -= Time.deltaTime; if (m_Touched) { if (m_CreatureIndex == m_PlaceValue.numCreatures - 1) { m_PlaceValue.SetRealtimeCountColor(m_CreatureIndex, m_PlaceValue.DefaultSeatCountColor); m_PlaceValue.SetRealtimeCountNumber(m_CreatureIndex, (m_CreatureIndex + 1) * m_PlaceValue.value); m_PlaceValue.SetRealtimeCount(m_CreatureIndex); timeToWait = LastChickenFadeTime; } else { bProceed = true; } m_Touched = false; } yield return(null); } if (!bProceed) { break; } } OnFinished(); m_PlaceValue.ClearRealtimeCount(); m_CountRoutine = null; }