예제 #1
0
    public void Execute(GameObject button)
    {
        int x = button.GetComponent <ButtonScript>().X;
        int y = button.GetComponent <ButtonScript>().Y;

        if (modelScr.IfCanMove(x, y))
        {
            button.GetComponent <ButtonScript>().Move(tab[modelScr.EmptyIndexX, modelScr.EmptyIndexY], tab);
            Move(x, y);
            modelScr.Move(x, y);
            if (modelScr.IsEnd())
            {
                foreach (GameObject go in tab)
                {
                    Destroy(go, 0.6f);
                }
                StartCoroutine(guiScr.ShowWinner(gameObject, spr));
            }
        }
    }
    private IEnumerator PlayCoroutine(int x)
    {
        canPlay = false;
        int y = model.Play(x, player);

        view.ActiveHen(x, true);
        yield return(new WaitForSeconds(0.2f));

        view.PlayMove(x, y, DataScript.instance.GetPanelX(), DataScript.instance.GetColsCount(),
                      DataScript.instance.GetPanelY(), DataScript.instance.GetRowsCount(),
                      DataScript.instance.GetColors()[player], DataScript.instance.eggImage);
        soundScr.PlaySound(DataScript.instance.playSound);
        end = model.IsEnd();
        yield return(new WaitForSeconds(0.5f));

        view.ActiveHen(x, false);
        if (end)
        {
            view.HighlightWinner(model.GetWinningList());
            view.ShowEndMenu(canvas, DataScript.instance.GetEndMenuX(), DataScript.instance.GetEndMenuY(),
                             DataScript.instance.panelImage, DataScript.instance.GetEndMenuButtonSize(),
                             DataScript.instance.GetEndMenuOffset(), DataScript.instance.retryImage, DataScript.instance.menuImage);
        }
        else
        {
            player = (player + 1) % 2;
            view.ColorPlayerPointer(DataScript.instance.GetColors()[player]);

            if (enemyAI && player == 1)
            {
                yield return(new WaitForSeconds(1f));

                StartCoroutine(PlayCoroutine(model.EnemyChoice()));
            }
            else
            {
                canPlay = true;
            }
        }
    }