Skip to content
Snippets Groups Projects
Commit d5c2af86 authored by Hannes Jämtner's avatar Hannes Jämtner
Browse files

Checked files for up to date and updated docs

parent 556236b7
No related branches found
No related tags found
1 merge request!7Uppdaterat API
......@@ -62,6 +62,9 @@ BaseLocation
.. autoattribute:: geysers
.. automethod:: get_ground_distance
This function uses BFS and moves in a vertical and horizontal position. Because of this,
the distance might overshoot compared to calculating it with Pythagoras' theorem.
.. automethod:: is_occupied_by_player
......
......@@ -61,11 +61,11 @@ IDABot
.. method:: IDABot.has_creep(self, Point2D) -> Boolean
Returns if the position has a creep.
Returns if the position has a creep
.. method:: IDABot.move_camera(self, Point2DI)
Move the camera to the position.
Move the camera to the position
Attributes:
......@@ -88,63 +88,63 @@ The debug-methods are a great tool for speeding up the process.
.. method:: IDABot.debug_create_unit(self, UnitTypeID, Point2D, Player Constant, Int)
This method creates the nr (INT) of units on the position of the Point2D, the unit
belongs to the Player Constant.
belongs to the Player Constant
.. method:: IDABot.debug_kill_unit(self, Unit)
Kills the unit.
Kills the unit
.. method:: IDABot.debug_show_map(self)
Make the entire map visible.
Make the entire map visible
.. method:: IDABot.debug_fast_build(self)
Set the build time in game to 1.
Set the build time in game to 1
.. method:: IDABot.debug_enemy_control(self)
Gives the player full control over the enemy.
Gives the player full control over the enemy
.. method:: IDABot.debug_fast_build(self)
Set the build time in game to 1.
Set the build time in game to 1
.. method:: IDABot.debug_ignore_food(self)
Ignore food in game.
Ignore food in game
.. method:: IDABot.debug_ignore_resource_cost(self)
Ignore the resource cost in game. Everything cost 0 resources.
Ignore the resource cost in game. Everything cost 0 resources
.. method:: IDABot.debug_give_all_resources(self)
Set the mineral and vespene gas to 5000.
Set the mineral and vespene gas to 5000
.. method:: IDABot.debug_god_mode(self)
Give yourself god mode in the game.
Give yourself god mode in the game
.. method:: IDABot.debug_ignore_mineral(self)
Ignore the mineral cost in the game.
Ignore the mineral cost in the game
.. method:: IDABot.debug_no_cooldowns(self)
Deactivate cooldowns (Basically setting them to 0).
Deactivate cooldowns (Basically setting them to 0)
.. method:: IDABot.debug_give_all_tech(self)
Give yourself all tech.
Give yourself all tech
.. method:: IDABot.debug_give_all_upgrades(self)
Give yourself all upgrades.
Give yourself all upgrades
.. method:: IDABot.debug_set_score(self, Float)
Set the player score in game.
Set the player score in game
.. method:: IDABot.debug_end_game(self, Boolean)
......@@ -153,13 +153,13 @@ The debug-methods are a great tool for speeding up the process.
.. method:: IDABot.debug_set_energy(self, Float, Unit)
Set the amount (Float) of energy to the unit.
Set the amount (Float) of energy to the unit
.. method:: IDABot.debug_set_life(self, Float, Unit)
Set the amount (Float) of life to the unit.
Set the amount (Float) of life to the unit
.. method:: IDABot.debug_set_shields(self, Float, Unit)
Set the amount (Float) of shield to the unit.
Set the amount (Float) of shield to the unit
......@@ -9,6 +9,10 @@ For a full list of all abilities and upgrades, see :class:`library.ABILITY_ID`
, :class:`library.UPGRADE_ID` and :class:`library.EFFECT_ID` respectively. Note that these does not have any
wrapper classes for them.
If any of the ID's doesn't respond with the game. Before contacting the labassistent, check the game version
and the compatibility through Liquipedia. Some ID's might be left after a patch and is not available in
the game anymore.
UnitType
--------
......
......@@ -36,7 +36,7 @@ Unit
.. autoattribute:: is_alive
.. autoattribute:: is_blip
Returns true if unit is a "blip" - a ping on the map.
Returns true if unit is a "blip" - a ping on the map
.. autoattribute:: is_being_constructed
......@@ -56,7 +56,7 @@ Unit
.. attribute:: Unit.player
Returns the constant corresponding to player which this unit belongs to.
See :ref:`playerconstants` for more information.
See :ref:`playerconstants` for more information
.. autoattribute:: position
.. autoattribute:: current_ability_id
......@@ -83,30 +83,30 @@ Unit
.. attribute:: Unit.target
Returns target if unit has one, otherwise will fail the assertion (make sure not to call this unless certain that the unit has a target!).
Returns target if unit has one, otherwise will fail the assertion (make sure not to call this unless certain that the unit has a target!)
.. autoattribute:: gas_left_in_refinery
This is used on the geyser.
Returns the amount of gas left in refinery.
Returns the amount of gas left in refinery
.. autoattribute:: minerals_left_in_mineralfield
Returns the amount of minerals left in mineralfield.
Returns the amount of minerals left in mineralfield
.. autoattribute:: owner
Returns the Player ID, the owner of the unit.
Returns the Player ID, the owner of the unit
Methods:
.. automethod:: ability
Call an ability directly, different abilities has different targets. Some target the unit itself (no argument), target a point (Point2D as argument) and some target a Unit (instance of Unit as argument).
Call an ability directly, different abilities has different targets. Some target the unit itself (no argument), target a point (Point2D as argument) and some target a Unit (instance of Unit as argument)
.. method:: Unit.is_constructing(self, unit_type: library.UnitType)
Returns true if the unit is currently constructing another unit of type `unit_type`. Note that `unit_type` needs to be an instance of :class:`library.UnitType`.
Returns true if the unit is currently constructing another unit of type `unit_type`. Note that `unit_type` needs to be an instance of :class:`library.UnitType`
.. automethod:: stop
.. automethod:: attack_unit
......@@ -124,7 +124,7 @@ Unit
.. automethod:: morph
.. method:: Unit.has_target
Returns True if the target has a valid target and False otherwise.
Returns True if the target has a valid target and False otherwise
.. automethod:: hold_position
.. automethod:: stop_dance
......
......@@ -6,8 +6,8 @@ void define_building_placer(py::module & m)
{
py::class_<BuildingPlacer>(m, "BuildingPlacer")
.def("can_build_here", &BuildingPlacer::canBuildHere, "x"_a, "y"_a, "unit_type"_a)
.def("can_build_here_with_spaces", &BuildingPlacer::canBuildHereWithSpace, "x"_a, "y"_a, "unit_type"_a, "build_distance"_a)
.def("get_build_location_near", &BuildingPlacer::getBuildLocationNear, "point2di"_a, "unit_type"_a, "build_distance"_a = 2, "search_count"_a = 1000)
.def("reserve_tiles", &BuildingPlacer::reserveTiles, "x"_a, "y"_a, "width"_a, "height"_a)
.def("free_tiles", &BuildingPlacer::freeTiles, "x"_a, "y"_a, "width"_a, "height"_a);
.def("can_build_here_with_spaces", &BuildingPlacer::canBuildHereWithSpace, "Creates a square with the help of x, y, distance_to_building and the size of the unit_type. Good approach if we later gonna make a addon to the building.", "x"_a, "y"_a, "unit_type"_a, "distance_to_building"_a)
.def("get_build_location_near", &BuildingPlacer::getBuildLocationNear, "The search_count is how many building we should check (nearby buildings, instead of i < size, we can switch size to search_count). distance_to_building is the distance to the closest building.", "point2di"_a, "unit_type"_a, "distance_to_building"_a = 2, "search_count"_a = 1000)
.def("reserve_tiles", &BuildingPlacer::reserveTiles, "It's possible to reserve tiles, which makes it impossible to build at the position given by x and y.", "x"_a, "y"_a, "width"_a, "height"_a)
.def("free_tiles", &BuildingPlacer::freeTiles,"Free the tile (x, y) from reservation", "x"_a, "y"_a, "width"_a, "height"_a);
}
\ No newline at end of file
......@@ -233,6 +233,9 @@ CCTilePosition BuildingPlacer::getRefineryPosition()
for (auto & unit : m_bot.GetAllUnits())
{
UnitType & refinery = Util::GetRefinery(m_bot.GetPlayerRace(Players::Self), m_bot);
if (!unit.getType().isGeyser())
{
continue;
......@@ -240,6 +243,13 @@ CCTilePosition BuildingPlacer::getRefineryPosition()
CCPosition geyserPos(unit.getPosition());
// can't build a refinery on top of another
if (!m_bot.Map().canBuildTypeAtPosition((int)geyserPos.x, (int)geyserPos.y, refinery))
{
continue;
}
// check to see if it's next to one of our depots
bool nearDepot = false;
for (auto & unit : m_bot.UnitInfo().getUnits(Players::Self))
......
......@@ -164,6 +164,8 @@ bool UnitType::isMineral() const
case sc2::UNIT_TYPEID::NEUTRAL_MINERALFIELD750 : return true;
case sc2::UNIT_TYPEID::NEUTRAL_RICHMINERALFIELD : return true;
case sc2::UNIT_TYPEID::NEUTRAL_RICHMINERALFIELD750 : return true;
case sc2::UNIT_TYPEID::NEUTRAL_LABMINERALFIELD : return true;
case sc2::UNIT_TYPEID::NEUTRAL_LABMINERALFIELD750 : return true;
default: return false;
}
#else
......@@ -366,7 +368,7 @@ bool UnitType::isMorphedBuilding() const
}
#else
return m_type == BWAPI::UnitTypes::Zerg_Sunken_Colony ||
m_type == BWAPI::UnitTypes::Zerg_Spore_Colony ||
m_type == BWAPI::UnitTypes::Zerg_Spore_Colony ||w
m_type == BWAPI::UnitTypes::Zerg_Lair ||
m_type == BWAPI::UnitTypes::Zerg_Hive ||
m_type == BWAPI::UnitTypes::Zerg_Greater_Spire;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment