EnableSwap() 공개 메소드

public EnableSwap ( ) : void
리턴 void
예제 #1
0
    IEnumerator Tutorial()
    {
        TutorialText tText = GameObject.Find("TutorialText").GetComponentInChildren <TutorialText> ();

        gridPlaces[60].hexaCube.SlowSpawn(Constants.ChooseColor(2));
        gridPlaces[59].hexaCube.SlowSpawn(Constants.ChooseColor(2));
        gridPlaces[58].hexaCube.SlowSpawn(Constants.ChooseColor(0));
        gridPlaces[57].hexaCube.SlowSpawn(Constants.ChooseColor(2));
        gridPlaces[56].hexaCube.SlowSpawn(Constants.ChooseColor(0));
        gridPlaces[55].hexaCube.SlowSpawn(Constants.ChooseColor(0));
        gridPlaces[54].hexaCube.SlowSpawn(Constants.ChooseColor(0));

        colorSelector.Init(0, 3);
        colorSelector.DisableSwap();

        startScore  = 0;
        targetScore = 4000;

        bool passed    = false;
        int  failcount = 0;

        canFlood   = true;
        canDestroy = false;

        yield return(StartCoroutine(ShowWaitTap(tText, "welcome to hexciter", "(tap to continue)")));

        while (!passed)
        {
            flooded   = false;
            destroyed = false;

            yield return(StartCoroutine(tText.Show("press and hold the center hex", "")));

            yield return(StartCoroutine(WaitForCenterSelect()));

            yield return(StartCoroutine(tText.Hide()));

            colorSelector.GetComponentInChildren <TutorialArrow> ().FadeIn();
            yield return(StartCoroutine(tText.Show("swipe left to flood", "this uses the color shown here")));

            yield return(StartCoroutine(WaitForMoveCenter()));

            colorSelector.GetComponentInChildren <TutorialArrow> ().FadeOut();
            disabled = true;

            //Check if they're purposefully failing
            if (failcount > 4)
            {
                break;
            }

            if (!flooded)
            {
                //did the wrong move
                if (destroyed)
                {
                    failcount++;
                }

                yield return(StartCoroutine(tText.Hide()));

                continue;
            }

            //Player flooded
            passed = true;
        }
        if (!passed)
        {
            StartCoroutine(FailInstructions());
            yield break;
        }
        yield return(StartCoroutine(tText.Hide()));

        yield return(StartCoroutine(ShowWaitTap(tText, "well done!", "the hexes changed color")));

        colorSelector.GetComponentInChildren <TutorialArrow> ().FadeIn();
        yield return(StartCoroutine(ShowWaitTap(tText, "you'll always flood using this color", "(tap to continue)")));

        yield return(StartCoroutine(tText.Show("tap the palette to swap colors", "")));

        colorSelector.EnableSwap();
        yield return(StartCoroutine(WaitForSwap()));

        colorSelector.DisableSwap();
        yield return(StartCoroutine(tText.Hide()));

        colorSelector.GetComponentInChildren <TutorialArrow> ().FadeOut();

        passed     = false;
        canFlood   = false;
        canDestroy = true;

        while (!passed)
        {
            flooded   = false;
            destroyed = false;

            yield return(StartCoroutine(tText.Show("press and hold the center hex", "")));

            yield return(StartCoroutine(WaitForCenterSelect()));

            yield return(StartCoroutine(tText.Hide()));

            yield return(StartCoroutine(tText.Show("swipe right to destroy!", "")));

            yield return(StartCoroutine(WaitForMoveCenter()));

            disabled = true;

            //Check if they're purposefully failing
            if (failcount > 4)
            {
                break;
            }

            if (!destroyed)
            {
                //did the wrong move
                if (flooded)
                {
                    failcount++;
                }

                yield return(StartCoroutine(tText.Hide()));

                continue;
            }

            //Player destroyed
            passed = true;
        }
        if (!passed)
        {
            StartCoroutine(FailInstructions());
            yield break;
        }

        yield return(StartCoroutine(tText.Hide()));

        yield return(StartCoroutine(ShowWaitTap(tText, "destroying hexes earns points", "match the color palette to earn bonus points!")));

        GameObject.Find("GUICamera/MiddleRight").GetComponentInChildren <TutorialArrow> ().FadeIn();
        yield return(StartCoroutine(ShowWaitTap(tText, "as you earn points, this bar fills", "(tap to continue)")));

        GameObject.Find("GUICamera/MiddleRight").GetComponentInChildren <TutorialArrow> ().FadeOut();
        GameObject.Find("GUICamera/MoveProgress/tutorialArrow1").GetComponent <TutorialArrow> ().FadeIn();
        yield return(StartCoroutine(ShowWaitTap(tText, "each turn uses a grey hex", "(tap to continue)")));

        yield return(StartCoroutine(ShowWaitTap(tText, "fill the bar before you use them all!", "(tap to continue)")));

        GameObject.Find("GUICamera/MoveProgress/tutorialArrow1").GetComponent <TutorialArrow> ().FadeOut();

        for (int i = 0; i < 54; i++)
        {
            gridPlaces[i].hexaCube.SlowSpawn(Constants.RandomColor());
        }

        for (int i = 0; i < 6; i++)
        {
            moves.DoMove();
        }

        //GameObject.Find ("GUICamera/MoveProgress/tutorialArrow2").GetComponent<TutorialArrow> ().FadeIn ();

        yield return(StartCoroutine(tText.Show("try making a move yourself", "you have one turn left")));

        disabled  = false;
        flooded   = false;
        destroyed = false;
        colorSelector.EnableSwap();
        targetScore = 8000;
        yield return(StartCoroutine(WaitForMove()));

        //GameObject.Find ("GUICamera/MoveProgress/tutorialArrow2").GetComponent<TutorialArrow> ().FadeOut ();
        while (GridBusy())
        {
            yield return(new WaitForSeconds(0.1f));
        }
        StartCoroutine(NextLevel());
        while (GridBusy())
        {
            yield return(new WaitForSeconds(0.1f));
        }
        yield return(StartCoroutine(tText.Hide()));

        disabled = true;
        colorSelector.DisableSwap();

        yield return(StartCoroutine(ShowWaitTap(tText, "you ran out of turns", "before the score bar was filled")));

        yield return(StartCoroutine(ShowWaitTap(tText, "when the board is empty...", "it's gameover!")));

        yield return(StartCoroutine(ShowWaitTap(tText, "now you're ready to play!", "(tap to start the game)")));

        SocialManager.Instance.UnlockAchievement("hello world");

        FadeCam.Instance.FadeOut(() => { Application.LoadLevel("game"); });
    }