Skip to content
Snippets Groups Projects
managers.rst 2.72 KiB
Newer Older
David Bergström's avatar
David Bergström committed
Managers
========

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

.. 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`.

   .. 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.

.. 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

.. TODO: Not all members have docstrings attached to them

MapTools
--------

.. autoclass:: library.MapTools
   :members:

David Bergström's avatar
David Bergström committed
.. autoclass:: library.Color 	
   :members:
   :undoc-members:

.. TODO: Only include the constructor and the color constants


BuildingPlacer
--------------

.. autoclass:: library.BuildingPlacer 	
   :members:
   :undoc-members: