예제 #1
0
 public int PlayerPiecesCount()
 {
     return(PlayerPieces.CountBits());
 }
예제 #2
0
    private void Update()
    {
        if (teams.Count > 0)
        {
            if (currentTeamsTurn.turnState == TurnState.WaitingToStart)
            {
                if (currentTeamsTurn.team.teamType == TeamType.PlayerControlled)
                {
                    EnablePlayerControlledTeam(currentTeamsTurn);
                }
                else if (currentTeamsTurn.team.teamType == TeamType.AiControlled)
                {
                    EnableAiControlledTeam(currentTeamsTurn);
                }
                currentTeamsTurn.turnState = TurnState.Choosing;
                nextTeamsTurn.turnState    = TurnState.WaitingToStart;
            }

            if (currentTeamsTurn.turnState == TurnState.TurnEnded)
            {
                currentTeamsTurn = nextTeamsTurn;

                if (turnIndex == teamCount - 1)
                {
                    turnIndex     = 0;
                    nextTeamsTurn = teams[1];
                }
                else
                {
                    nextTeamsTurn = teams[turnIndex];
                    turnIndex    += 1;
                }
            }
        }

        if (playerTeamEnabled)
        {
            if (Input.touchCount > 0 && tInput.startTouchPoint == Vector2.zero)
            {
                PlayerPieces detPiece = GetPieceAtTouchPoint();
                if (detPiece != null)
                {
                    selectedPiece      = detPiece;
                    board.selectedUnit = selectedPiece;
                }
            }

            if (currentTeamsTurn.teamMoveCount == 0 && currentTeamsTurn.turnState != TurnState.TurnEnded)
            {
                selectedPiece                  = null;
                board.selectedUnit             = null;
                currentTeamsTurn.turnState     = TurnState.TurnEnded;
                currentTeamsTurn.teamMoveCount = currentTeamsTurn.team.movesPerTurn;
            }
        }

        if (aiTeamEnabled)
        {
            if (currentTeamsTurn.teamMoveCount == 0)
            {
                if (selePieceIndex < currentTeamsTurn.pieces.Count - 1)
                {
                    selePieceIndex += 1;
                    selectedPiece   = currentTeamsTurn.pieces[selePieceIndex];
                    currentTeamsTurn.teamMoveCount = selectedPiece.piece.defaultMoveRange;
                }
            }

            if (currentTeamsTurn.teamMoveCount == 0 && currentTeamsTurn.turnState != TurnState.TurnEnded && selePieceIndex == currentTeamsTurn.pieces.Count - 1)
            {
                selectedPiece                  = null;
                board.selectedUnit             = null;
                currentTeamsTurn.turnState     = TurnState.TurnEnded;
                currentTeamsTurn.teamMoveCount = currentTeamsTurn.team.movesPerTurn;
                selePieceIndex                 = 0;
            }
        }
    }
예제 #3
0
 public override int GetHashCode()
 {
     // return PlayerPieces.GetHashCode() | OpponentPieces.GetHashCode();//same speed
     return(PlayerPieces.GetHashCode() ^ (int)(OpponentPieces >> 33));
 }