示例#1
0
 private void HandleGameOver(GameController.GameResult hasPlayerWon)
 {
     if (poolUser != null)
     {
         poolUser.Despawn();
     }
     else
     {
         Destroy(this.gameObject);
     }
 }
示例#2
0
    private void processGameEnd(GameController.GameResult result)
    {
        switch (result)
        {
        case GameController.GameResult.Won:
            //findChildGameObjectBy(name: "Winner").SetActive(true);
            gameWon = true;
            findChildGameObjectBy(name: "Stats").SetActive(false);
            findChildGameObjectBy(name: "LevelSummary").SetActive(true);
            break;

        case GameController.GameResult.Lost:
            findChildGameObjectBy(name: "GameOver").SetActive(true);
            break;
        }
    }
示例#3
0
    private IEnumerator GameOverRoutine(GameController.GameResult playerHasWon)
    {
        var gc = ManagerLocator.TryGet <GameController>();

        gc.PauseGame(true);

        if (playerHasWon != GameController.GameResult.PlayerQuit)
        {
            var playerWon = playerHasWon == GameController.GameResult.PlayerWon;
            var context   = new ConfirmationContext();
            gameOverPopup.Show(playerWon, context);

            while (!context.IsFinished)
            {
                yield return(null);
            }
        }

        gc.AbortGameServices();

        ShowMainMenu();
    }
示例#4
0
    private bool CheckGameOver()
    {
        GameController.GameResult result = CheckWin(Field);

        if (result == GameController.GameResult.Win)
        {
            GameController.Instance.UserWin();
            return(true);
        }
        if (result == GameController.GameResult.Lose)
        {
            GameController.Instance.UserLose();
            return(true);
        }

        if (result == GameController.GameResult.Draw)
        {
            GameController.Instance.DrawGame();
            return(true);
        }

        return(false);
    }
示例#5
0
    public int NextStep(Cell[] field, Cell start, GameController.GameFigure figeru)
    {
        field[start.X * 3 + start.Y].Figure = figeru;

        GameController.GameResult result = CheckWin(field);
        switch (result)
        {
        case GameController.GameResult.Win:
            return(-10);

        case GameController.GameResult.Draw:
            return(5);

        case GameController.GameResult.Lose:
            return(10);

        case GameController.GameResult.None:
            GameController.GameFigure enemyFigure = figeru == GameController.GameFigure.Circle ? GameController.GameFigure.Cross : GameController.GameFigure.Circle;
            List <Cell> openPos = GetOpenPositions(field);
            int[]       scores  = new int[openPos.Count];

            for (int i = 1; i < openPos.Count; i++)
            {
                scores[i] = NextStep(Cell.DeepClone(field), openPos[i], enemyFigure);
            }

            int sumScore = 0;
            foreach (int score in scores)
            {
                sumScore += score;
            }

            return(sumScore);

        default: return(0);
        }
    }
示例#6
0
    private void SetTexts(GameController.GameResult userResult)
    {
        switch (userResult)
        {
        case GameController.GameResult.Draw:
            Status.text  = "DRAW";
            Status.color = Color.red;
            break;

        case GameController.GameResult.Win:
            Status.text  = "WIN";
            Status.color = Color.green;
            Owner.text   = "User";
            break;

        case GameController.GameResult.Lose:
            Status.text  = "WIN";
            Status.color = Color.red;
            Owner.text   = "AI";
            break;
        }

        gameObject.SetActive(true);
    }
示例#7
0
 private void HandleGameOver(GameController.GameResult hasPlayerWon)
 {
     _shakeCancelToken = true;
     _isActive         = false;
 }
示例#8
0
 public void EndRoundState(GameController.GameResult userResult)
 {
     SetState(State.EndRound);
     EndRoundStart.Invoke(userResult);
 }
示例#9
0
 private void HandleGameOver(GameController.GameResult gameResult)
 {
     StartCoroutine(GameOverRoutine(gameResult));
 }
示例#10
0
 public void OnScoreChange(GameController.GameResult result)
 {
     WinCounter.text  = GameController.Instance.Win.ToString();
     LoseCounter.text = GameController.Instance.Lose.ToString();
     DrawCounter.text = GameController.Instance.Draw.ToString();
 }
示例#11
0
 private void HandleGameOver(GameController.GameResult hasPlayerWon)
 {
     _isActive = false;
 }