parameters: (empire, empire_name, home_system, starting_species, player_name)
return_statement: return True
docstring: Sets up various aspects of an empire, like empire name, homeworld, etc.
docstring_summary: Sets up various aspects of an empire, like empire name, homeworld, etc.
docstring_tokens: Sets up various aspects of an empire like empire name homeworld etc .
function: def setup_empire(empire, empire_name, home_system, starting_species, player_name):
      """
      Sets up various aspects of an empire, like empire name, homeworld, etc.
      """
  
      # set empire name, if no one is given, pick one randomly
      if not empire_name:
          print("No empire name set for player", player_name, ", picking one randomly")
          empire_name = next(empire_name_generator)
      fo.empire_set_name(empire, empire_name)
      print("Empire name for player", player_name, "is", empire_name)
  
      # check starting species, if no one is given, pick one randomly
      if starting_species == "RANDOM" or not starting_species:
          print("Picking random starting species for player", player_name)
          starting_species = next(starting_species_pool)
      print("Starting species for player", player_name, "is", starting_species)
      universe_statistics.empire_species[starting_species] += 1
  
      # pick a planet from the specified home system as homeworld
      planet_list = fo.sys_get_planets(home_system)
      # if the system is empty, report an error and return false, indicating failure
      if not planet_list:
          report_error("Python setup_empire: got home system with no planets")
          return False
      homeworld = random.choice(planet_list)
  
      # set selected planet as empire homeworld with selected starting species
      fo.empire_set_homeworld(empire, homeworld, starting_species)
  
      # set homeworld focus
      # check if the preferred focus for the starting species is among
      # the foci available on the homeworld planet
      available_foci = fo.planet_available_foci(homeworld)
      preferred_focus = fo.species_preferred_focus(starting_species)
      if preferred_focus in available_foci:
          # if yes, set the homeworld focus to the preferred focus
          print("Player", player_name, ": setting preferred focus", preferred_focus, "on homeworld")
          fo.planet_set_focus(homeworld, preferred_focus)
      elif len(available_foci) > 0:
          # if no, and there is at least one available focus,
          # just take the first of the list
          if preferred_focus == "":
              print(
                  "Player",
                  player_name,
                  ": starting species",
                  starting_species,
                  "has no preferred focus, using",
                  available_foci[0],
                  "instead",
              )
          else:
              print(
                  "Player",
                  player_name,
                  ": preferred focus",
                  preferred_focus,
                  "for starting species",
                  starting_species,
                  "not available on homeworld, using",
                  available_foci[0],
                  "instead",
              )
          fo.planet_set_focus(homeworld, available_foci[0])
      else:
          # if no focus is available on the homeworld, don't set any focus
          print("Player", player_name, ": no available foci on homeworld for starting species", starting_species)
  
      # give homeworld starting buildings
      print("Player", player_name, ": add starting buildings to homeworld")
      for item in fo.load_starting_buildings():
          fo.create_building(item.name, homeworld, empire)
  
      # unlock starting techs, buildings, hulls, ship parts, etc.
      # use default content file
      print("Player", player_name, ": add unlocked items")
      for item in fo.load_unlockable_item_list():
          fo.empire_unlock_item(empire, item.type, item.name)
  
      # add premade ship designs to empire
      print("Player", player_name, ": add premade ship designs")
      for ship_design in fo.design_get_premade_list():
          fo.empire_add_ship_design(empire, ship_design)
  
      # add starting fleets to empire
      # use default content file
      print("Player", player_name, ": add starting fleets")
      fleet_plans = fo.load_fleet_plan_list()
      for fleet_plan in fleet_plans:
          # should fleet be aggressive? check if any ships are armed.
          should_be_aggressive = False
          for ship_design in fleet_plan.ship_designs():
              design = fo.getPredefinedShipDesign(ship_design)
              if design is None:
                  report_error("Looked up null design with name %s", ship_design)
              elif design.isArmed:
                  should_be_aggressive = True
                  break
  
          # first, create the fleet
          fleet = fo.create_fleet(fleet_plan.name(), home_system, empire, should_be_aggressive)
          # if the fleet couldn't be created, report an error and try to continue with the next fleet plan
          if fleet == fo.invalid_object():
              report_error("Python setup empire: couldn't create fleet %s" % fleet_plan.name())
              continue
  
          # second, iterate over the list of ship design names in the fleet plan
          for ship_design in fleet_plan.ship_designs():
              # create a ship in the fleet
              # if the ship couldn't be created, report an error and try to continue with the next ship design
              if fo.create_ship("", ship_design, starting_species, fleet) == fo.invalid_object():
                  report_error(
                      "Python setup empire: couldn't create ship of design %s for fleet %s"
                      % (ship_design, fleet_plan.name())
                  )
  
      # starting resource stockpiles
      print("Player", player_name, ": add starting resource stockpiles")
      fo.empire_set_stockpile(empire, fo.resourceType.influence, 20.0)
  
      return True
function_tokens: def setup_empire ( empire , empire_name , home_system , starting_species , player_name ) : # set empire name, if no one is given, pick one randomly if not empire_name : print ( "No empire name set for player" , player_name , ", picking one randomly" ) empire_name = next ( empire_name_generator ) fo . empire_set_name ( empire , empire_name ) print ( "Empire name for player" , player_name , "is" , empire_name ) # check starting species, if no one is given, pick one randomly if starting_species == "RANDOM" or not starting_species : print ( "Picking random starting species for player" , player_name ) starting_species = next ( starting_species_pool ) print ( "Starting species for player" , player_name , "is" , starting_species ) universe_statistics . empire_species [ starting_species ] += 1 # pick a planet from the specified home system as homeworld planet_list = fo . sys_get_planets ( home_system ) # if the system is empty, report an error and return false, indicating failure if not planet_list : report_error ( "Python setup_empire: got home system with no planets" ) return False homeworld = random . choice ( planet_list ) # set selected planet as empire homeworld with selected starting species fo . empire_set_homeworld ( empire , homeworld , starting_species ) # set homeworld focus # check if the preferred focus for the starting species is among # the foci available on the homeworld planet available_foci = fo . planet_available_foci ( homeworld ) preferred_focus = fo . species_preferred_focus ( starting_species ) if preferred_focus in available_foci : # if yes, set the homeworld focus to the preferred focus print ( "Player" , player_name , ": setting preferred focus" , preferred_focus , "on homeworld" ) fo . planet_set_focus ( homeworld , preferred_focus ) elif len ( available_foci ) > 0 : # if no, and there is at least one available focus, # just take the first of the list if preferred_focus == "" : print ( "Player" , player_name , ": starting species" , starting_species , "has no preferred focus, using" , available_foci [ 0 ] , "instead" , ) else : print ( "Player" , player_name , ": preferred focus" , preferred_focus , "for starting species" , starting_species , "not available on homeworld, using" , available_foci [ 0 ] , "instead" , ) fo . planet_set_focus ( homeworld , available_foci [ 0 ] ) else : # if no focus is available on the homeworld, don't set any focus print ( "Player" , player_name , ": no available foci on homeworld for starting species" , starting_species ) # give homeworld starting buildings print ( "Player" , player_name , ": add starting buildings to homeworld" ) for item in fo . load_starting_buildings ( ) : fo . create_building ( item . name , homeworld , empire ) # unlock starting techs, buildings, hulls, ship parts, etc. # use default content file print ( "Player" , player_name , ": add unlocked items" ) for item in fo . load_unlockable_item_list ( ) : fo . empire_unlock_item ( empire , item . type , item . name ) # add premade ship designs to empire print ( "Player" , player_name , ": add premade ship designs" ) for ship_design in fo . design_get_premade_list ( ) : fo . empire_add_ship_design ( empire , ship_design ) # add starting fleets to empire # use default content file print ( "Player" , player_name , ": add starting fleets" ) fleet_plans = fo . load_fleet_plan_list ( ) for fleet_plan in fleet_plans : # should fleet be aggressive? check if any ships are armed. should_be_aggressive = False for ship_design in fleet_plan . ship_designs ( ) : design = fo . getPredefinedShipDesign ( ship_design ) if design is None : report_error ( "Looked up null design with name %s" , ship_design ) elif design . isArmed : should_be_aggressive = True break # first, create the fleet fleet = fo . create_fleet ( fleet_plan . name ( ) , home_system , empire , should_be_aggressive ) # if the fleet couldn't be created, report an error and try to continue with the next fleet plan if fleet == fo . invalid_object ( ) : report_error ( "Python setup empire: couldn't create fleet %s" % fleet_plan . name ( ) ) continue # second, iterate over the list of ship design names in the fleet plan for ship_design in fleet_plan . ship_designs ( ) : # create a ship in the fleet # if the ship couldn't be created, report an error and try to continue with the next ship design if fo . create_ship ( "" , ship_design , starting_species , fleet ) == fo . invalid_object ( ) : report_error ( "Python setup empire: couldn't create ship of design %s for fleet %s" % ( ship_design , fleet_plan . name ( ) ) ) # starting resource stockpiles print ( "Player" , player_name , ": add starting resource stockpiles" ) fo . empire_set_stockpile ( empire , fo . resourceType . influence , 20.0 ) return True