public int PlayerPiecesCount() { return(PlayerPieces.CountBits()); }
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; } } }
public override int GetHashCode() { // return PlayerPieces.GetHashCode() | OpponentPieces.GetHashCode();//same speed return(PlayerPieces.GetHashCode() ^ (int)(OpponentPieces >> 33)); }