Skip to content
Snippets Groups Projects
managers.rst 2.99 KiB
Newer Older
  • Learn to ignore specific revisions
  • David Bergström's avatar
    David Bergström committed
    Managers
    ========
    
    
    .. TODO: Rename *Manager to BaseLocation
    
    
    David Bergström's avatar
    David Bergström committed
    The original `CommandCenter`_ bot uses managers to do everything, having 
    managers manage workers, building, controlling military etc. In this API we 
    have removed all the control related managers and only kept the managers 
    related to helping process input information, leaving the decision-making to 
    the user of the API.
    
    .. _CommandCenter: https://github.com/davechurchill/commandcenter 
    
    David Bergström's avatar
    David Bergström committed
    
    Here is a full list of all managers:
    
    * :class:`library.BaseLocationManager`
    * :class:`library.TechTree`
    
    * :class:`library.MapTools`
    * :class:`library.BuildingPlacer`
    
    David Bergström's avatar
    David Bergström committed
    
    
    David Bergström's avatar
    David Bergström committed
    The rest of this page contains a brief description of each manager.
    
    David Bergström's avatar
    David Bergström committed
    
    BaseLocationManager
    -------------------
    
    .. class:: library.BaseLocationManager
    
       .. attribute:: library.BaseLocationManager.base_locations
    
          A list of all :class:`library.BaseLocation` on the current map
    
       .. attribute:: library.BaseLocationManager.starting_base_locations
    
          A list of all :class:`library.BaseLocation` on the current map which a player
          started at, indexed by Player constant
    
       .. automethod:: library.BaseLocationManager.get_occupied_base_locations
    
       .. automethod:: library.BaseLocationManager.get_player_starting_base_location
    
       .. automethod:: library.BaseLocationManager.get_next_expansion
    
    
    David Bergström's avatar
    David Bergström committed
    .. class:: library.BaseLocation
    
       Closely related to BaseLocationManager. This is the datastructure used by
       the BaseLocationManager to keep track of all base locations and related
       information.
    
       .. attribute:: library.BaseLocation.position
    
          The position of the center of the BaseLocation, defined as a :class:`library.Point2D`.
    
          This is the position used if you want to build a Command Center at the
          base location.
    
    David Bergström's avatar
    David Bergström committed
    
       .. attribute:: library.BaseLocation.depot_position
    
          A suitable position for building a town hall, defined as a :class:`library.Point2DI`.
    
    TechTree
    --------
    
    .. class:: library.TechTree
    
       This class contains all information about units and what is required to
       build a certain unit and what builds it. It only has one method, which is
       used to look-up unit types properties:
    
       .. method:: get_data(argument) -> library.TypeData
    
          Argument is either an instance of the class :class:`library.UnitType` or
          an instance of the class :class:`library.CCUpgrade`, depending on what
          information is wanted.
    
    
    David Bergström's avatar
    David Bergström committed
    .. autoclass:: library.TypeData
       :members:
    
       :undoc-members:
    
    .. TODO: Types for all fields would be nice, is required_units List[UnitType] or List[UNIT_TYPEID]?
    
    David Bergström's avatar
    David Bergström committed
    
    MapTools
    --------
    
    .. autoclass:: library.MapTools
       :members:
    
       :undoc-members:
    
    Color
    ~~~~~
    
    David Bergström's avatar
    David Bergström committed
    
    
    David Bergström's avatar
    David Bergström committed
    .. autoclass:: library.Color 	
       :members:
       :undoc-members:
    
    
       .. automethod:: __init__
    
    DistanceMap
    ~~~~~~~~~~~
    
    .. autoclass:: library.DistanceMap
       :members:
       :undoc-members:
    
    BuildingPlacer
    --------------
    
    
    .. TODO: get_refinery_position should work on all bases
    
    
    .. autoclass:: library.BuildingPlacer 	
       :members:
       :undoc-members: