private void Start()
    {
        playerChecker = this.GetComponent <PlayerChecker>();

        PlayerChecker.PlayerChecked
        .Where(x => x == true)
        .Subscribe(_ => ResultCheck())
        .AddTo(this);
    }
Пример #2
0
    private void Start()
    {
        playerChecker = this.GetComponent <PlayerChecker>();

        PlayerChecker.PlayerChecked
        .Where(x => x == true)
        .Subscribe(_ =>
        {
            ExsistPlayerPresent(exsistplayer1UI, playerChecker.ExsistPlayer1);
            ExsistPlayerPresent(exsistplayer2UI, playerChecker.ExsistPlayer2);
        })
        .AddTo(this);
    }
Пример #3
0
    /// <summary>
    /// If previous player is player1, then change the state to Player2Turn, vice versa.
    /// </summary>
    /// <param name="previousPlayer"></param>
    private void ToggleGameState(Player previousPlayer)
    {
        if (!PlayerChecker.GetVictoryPlayer())
        {
            switch (previousPlayer.playerIndex)
            {
            case 1:
                gameTurnState = GameTurnState.Player2Turn;
                break;

            case 2:
                gameTurnState = GameTurnState.Player3Turn;
                break;

            case 3:
                gameTurnState = GameTurnState.Player4Turn;
                break;

            case 4:
                gameTurnState = GameTurnState.Player1Turn;
                break;
            }
        }
        else     // There is a player winning
        {
            gameState = GameState.GameOver;
            if (PlayerChecker.IsPlayerWin(players[0]))
            {
                print("Player 1 won");
            }
            if (PlayerChecker.IsPlayerWin(players[1]))
            {
                print("Player 2 won");
            }

            if (PlayerChecker.IsPlayerWin(players[2]))
            {
                print("Player 3 won");
            }

            if (PlayerChecker.IsPlayerWin(players[3]))
            {
                print("Player 4 won");
            }
        }
    }
Пример #4
0
    public bool ProcessSpecialTiles()
    {
        Snake    snakeTile  = PlayerChecker.isPlayerOnSnakeHeadTile(this);
        Ladder   ladderTile = PlayerChecker.isPlayerOnLadderBottomTile(this);
        GameTile gameTile   = PlayerChecker.isPlayerOnGameTile(this);

        if (snakeTile)
        {
            StartCoroutine(Fall(transform, snakeTile.endIndex, 2));
        }
        else if (ladderTile)
        {
            StartCoroutine(Climb(transform, ladderTile.endIndex, 2));
        }
        else
        {
            playerState = PlayerState.Idle; // Player doesn't need to move temporarily
            if (gameTile)
            {
                if (PlayerChecker.PlayerIsAi(this))
                {
                    float chance = Random.Range(0f, 1.0f);
                    if (chance > gameTile.successRate)
                    {
                        print($"Ai loses the mini game, moves backwards for " + gameTile.tileNum + " tiles");
                        StartCoroutine(WaitBeforeMove(-gameTile.tileNum, 2));
                    }
                    else
                    {
                        print($"Ai wins the mini game, moves forwards for " + gameTile.tileNum + " tiles");
                        StartCoroutine(WaitBeforeMove(gameTile.tileNum, 2));
                    }
                }
                else
                {
                    SaveSystem.SaveMiniGameData((int)MiniGameState.Pending, playerIndex, gameTile.tileNum);
                    SaveSystem.SaveMainGameData();
                    LevelLoader.Instance.LoadScene(gameTile.gameSceneIndex);
                }
            }
        }

        return(snakeTile || ladderTile || gameTile);
    }