Exemplo n.º 1
0
        IEnumerator WaitForTurnSetup(int initVal)
        {
            bool       sorted  = false;
            bool       sorting = true;
            GameObject temp    = null;

            yield return(new WaitForSeconds(0.1f));

            while (sorting)
            {
                for (int i = 0; i < combatChars.Count; ++i)
                {
                    if (t1.Count > i && t1.Count > 0 && i != 0 && t1[i].GetComponent <Stats>().Speed() > t1[i - 1].GetComponent <Stats>().Speed() && !t1[i - 1].GetComponent <CharData>().hasActed)
                    {
                        sorted = false;

                        temp      = t1[i];
                        t1[i]     = t1[i - 1];
                        t1[i - 1] = temp;
                    }

                    if (t2.Count > 0 && i != 0 && t2[i].GetComponent <Stats>().NextSpeed(t2[i].GetComponent <CharData>().hasActed) > t2[i - 1].GetComponent <Stats>().NextSpeed(t2[i - 1].GetComponent <CharData>().hasActed))
                    {
                        sorted = false;

                        temp      = t2[i];
                        t2[i]     = t2[i - 1];
                        t2[i - 1] = temp;
                    }
                }

                if (!sorted)
                {
                    sorted = true;
                }

                else
                {
                    sorting = false;
                }
            }

            for (int i = 0; i < t1.Count; ++i)
            {
                t1[i].GetComponent <CharData>().t1Pos = i;
            }

            for (int i = 0; i < t2.Count; ++i)
            {
                t2[i].GetComponent <CharData>().t2Pos = i;
            }

            if (initVal == 0)
            {
                tracker.SetUpTrackers(t1, 1, true);
                tracker.SetUpTrackers(t2, 2, false);
            }
            else if (initVal == 1)
            {
                yield return(new WaitForSeconds(0.2f));

                tracker.ReorderTrackers(false);
            }
            else if (initVal == 2)
            {
                yield return(new WaitForSeconds(0.2f));

                tracker.ReorderTrackers(true);
            }

            yield return(null);
        }