예제 #1
0
 public void ShowPawnPromotionModalBox(ChessGameplayManager game)
 {
     isPromotionModalBoxOpen = true;
     CreatePawnPromotionModalBox();
     justBeenPromoted = true;
     myGame           = game;
     myGame.SetPromotionInProcess();
 }
예제 #2
0
    // Start is called before the first frame update
    void Start()
    {
        LoadGlobalData();

        string[] playerNames = new string[2] {
            currentPlayers.players[0].playerName, currentPlayers.players[1].playerName
        };

        SetSquareColorSet(gameData.boardThemeColors[0], gameData.boardThemeColors[1]);
        chessBoard = FindObjectOfType <ChessBoard>();
        chessBoard.CreateNewBoard(squareColors);

        CreateChessPlayers(gameData.playerColorTags, playerNames, gameData.timeControl, gameData.incrementValue, gameData.gameType);
        CreateChessSets(gameData.pieceSetColors, gameData.pieceSpriteSet);

        game = FindObjectOfType <ChessGameplayManager>();
        game.InitializeGame(chessSets, chessBoard, chessPlayers);
    }
예제 #3
0
 public void SetMyGame(ChessGameplayManager theGame)
 {
     myGame = theGame;
 }
예제 #4
0
    // Update is called once per frame
    void Update()
    {
        if (myGame.HasGameEnded())
        {
            return;
        }
        if (mySetColorTag == "Light" && !hasGameStarted)
        {
            return;
        }
        if (tag != "Active")
        {
            return;
        }
        if (myGameType == "Unlimited")
        {
            return;
        }

        remainingTime -= Time.deltaTime;
        if (remainingTime <= 0.0f && myEnemy.tag == "Waiting")
        {
            hasGameStarted = false;
            remainingTime  = 0.0f;

            bool isADraw = IsItADrawByTimeoutVsInsufficientMaterial();

            if (isADraw)
            {
                tag         = "Remi";
                myEnemy.tag = "Remi";
                Debug.Log($"Game over: {mySetColorTag} colored player flagged! But it is a draw by timeout vs insufficient material!");
            }
            else
            {
                tag         = "Lost";
                myEnemy.tag = "Won";

                ChessGameplayManager manager = FindObjectOfType <ChessGameplayManager>();
                manager.terminationString = "won on time";
                Debug.Log($"Game over: {mySetColorTag} colored player flagged! {myEnemy.GetMyChosenColor()} colored player won!");
            }

            myChessClockAndPlayerTextObject.transform.GetChild(0).transform.GetChild(0).gameObject.GetComponent <Text>().color = flagedColor;

            string winner = (isADraw) ? "None" : myEnemy.GetMyChosenColor();
            myGame.SetFlaggingEndScore(winner, isADraw);
        }

        TimeSpan currentTime = TimeSpan.FromSeconds(remainingTime);

        if (remainingTime <= 5.0f)
        {
            myChessClockAndPlayerTextObject.transform.GetChild(0).transform.GetChild(0).gameObject.GetComponent <Text>().text = currentTime.ToString("mm':'ss'.'fff");
        }
        else if (remainingTime <= 20.0f)
        {
            myChessClockAndPlayerTextObject.transform.GetChild(0).transform.GetChild(0).gameObject.GetComponent <Text>().text = currentTime.ToString("mm':'ss'.'ff");
        }
        else
        {
            myChessClockAndPlayerTextObject.transform.GetChild(0).transform.GetChild(0).gameObject.GetComponent <Text>().text = currentTime.ToString("mm':'ss");
        }
    }