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; } } }