public IEnumerator RevealCards(RevealCardsCallback callback) { yield return(hand.HideHand()); while (true) { if (DrawStack.Count == 0) { if (rubbishStack.Count == 0) { break; } rubbishStack.MoveAllCardsToStack(DrawStack, false); yield return(DrawStack.Shuffle()); yield return(new WaitForSeconds(DrawStack.audio.clip.length)); } Card card = DrawStack.Pop(); iTween.MoveTo(card.gameObject, new Vector3(-37, 72.57f, -495.44f), 0.5f); iTween.RotateTo(card.gameObject, new Vector3(320.0f, 180.0f, 180.0f), 0.5f); yield return(new WaitForSeconds(0.5f)); if (callback(card, this)) { yield return(new WaitForSeconds(1)); break; } yield return(new WaitForSeconds(1)); } yield return(hand.ShowHand()); }