public GameState PlayMonopoly(Resource resource)
{
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.PlayMonopoly(player, resource);
}