public GameState PlayRoadBuilding(Edge firstEdge, Edge secondEdge)
{
if (!valid) throw new IllegalActionException("Tried to perform an action on an invalid GameAction");
if (hasPlayedDevCard)
throw new IllegalActionException("Max one development card can be played each turn");
hasPlayedDevCard = true;
return controller.PlayRoadBuilding(player, firstEdge, secondEdge);
}