Auto assignment of tasks with prioritization of an auto assign method. The default assign method is random, which is set at the command center. Each task type implements a prioritization mechanism which calculates the priotity of the task based on various methods: random, distance or priority. The distance is calculated from the task coordinate from the command center location.

Also fixed in a first try the route bug on Controllables.
This commit is contained in:
FlightControl
2019-03-10 16:41:53 +01:00
parent afc918c5e5
commit 925ce3ad63
7 changed files with 133 additions and 10 deletions

View File

@@ -1381,6 +1381,23 @@ do -- TASK_CARGO
return 0
end
--- This function is called from the @{Tasking.CommandCenter#COMMANDCENTER} to determine the method of automatic task selection.
-- @param #TASK_CARGO self
-- @param #number AutoAssignMethod The method to be applied to the task.
-- @param Wrapper.Group#GROUP TaskGroup The player group.
function TASK_CARGO:GetAutoAssignPriority( AutoAssignMethod, TaskGroup )
if AutoAssignMethod == COMMANDCENTER.AutoAssignMethods.Random then
return math.random( 1, 9 )
elseif AutoAssignMethod == COMMANDCENTER.AutoAssignMethods.Distance then
return 0
elseif AutoAssignMethod == COMMANDCENTER.AutoAssignMethods.Priority then
return 1
end
return 0
end