Economy¶
Recipes And Constructions¶
Resources are mined from deposits, or processed from other resources. Producing units and researching upgrades works the same as recipes.
# find closest viable position for miner:
p = uw_world.find_construction_placement(DRILL_CONSTRUCTION_ID, home_position, METAL_RECIPE_ID) # recipe id is optional
if p == INVALID:
return
# place construction:
uw_commands.place_construction(DRILL_CONSTRUCTION_ID, p, 0, METAL_RECIPE_ID, Priority.High) # yaw, recipe, and priority are optional
# recipe and priority can be changed later:
uw_commands.set_recipe(own_id, ANOTHER_RECIPE_ID)
uw_commands.set_priority(own_id, Priority.Normal)
// find closest viable position for miner:
uint p = World.FindConstructionPlacement(DRILL_CONSTRUCTION_ID, homePosition, METAL_RECIPE_ID); // recipe id is optional
if (p == Entity.Invalid):
return;
// place construction:
Commands.PlaceConstruction(DRILL_CONSTRUCTION_ID, p, 0, METAL_RECIPE_ID, UwPriorityEnum.High); // yaw, recipe, and priority are optional
// recipe and priority can be changed later:
Commands.SetRecipe(ownId, ANOTHER_RECIPE_ID)
Commands.SetPriority(ownId, UwPriorityEnum.Normal)
// todo
Destroyed Buildings¶
When a building is destroyed, same construction is automatically placed in its place.
It has disabled priority, you just change it when appropriate.
Its previous recipe is also restored.
Logistics¶
Resources are automatically transported by trucks. They will fulfill tasks by their priority, and on first-come-first-serve basis.
Priorities apply to both constructions and recipes.
# percentage of trucks that are idle:
100.0 * uw_world.my_force_statistics().logisticsUnitsIdle / uw_world.my_force_statistics().logisticsUnitsTotal
// percentage of trucks that are idle:
100.0 * World.MyForceStatistics().logisticsUnitsIdle / World.MyForceStatistics().logisticsUnitsTotal
Expansion Bases¶
Each map contains predefined set of bases positions.
# potential expansion bases:
uw_map.bases_positions()
// potential expansion bases:
Map.BasesPositions();
// todo