Banner Image

Module Tasking.Task_Cargo

Tasking -- Base class to model tasks for players to transport cargo.

Features:


Test Missions:

Test missions can be located on the main GITHUB site.

FlightControl-Master/MOOSE_MISSIONS/TAD - Task Dispatching/CGO - Cargo Dispatching/


Tasking system.

If you are not yet aware what the MOOSE tasking system is about, read FIRST the explanation on the Tasking.Task module.


Context of cargo tasking.

The Moose framework provides various CARGO classes that allow DCS physical or logical objects to be transported or sling loaded by Carriers. The CARGO_ classes, as part of the MOOSE core, are able to Board, Load, UnBoard and UnLoad cargo between Carrier units.

The TASK_CARGO class is not meant to use within your missions as a mission designer. It is a base class, and other classes are derived from it.

The following TASK_CARGO_ classes are important, as they implement the CONCRETE tasks:

However! The menu system and basic usage of the TASK_CARGO classes is explained in the #TASK_CARGO class description. So please browse further below to understand how to use it from a player perspective!


Cargo tasking from a player perspective.

A human player can join the battle field in a client airborne slot or a ground vehicle within the CA module (ALT-J). The player needs to accept the task from the task overview list within the mission, using the menus.

Once the task is assigned to the player and accepted by the player, the player will obtain an extra Cargo (Radio) Menu that contains the CARGO objects that need to be transported.

Each Cargo.Cargo object has a certain state:

  • UnLoaded: The cargo is located within the battlefield. It may still need to be transported.
  • Loaded: The cargo is loaded within a Carrier. This can be your air unit, or another air unit, or even a vehicle.
  • Boarding: The cargo is running or moving towards your Carrier for loading.
  • UnBoarding: The cargo is driving or jumping out of your Carrier and moves to a location in the Deployment Zone.

Cargo must be transported towards different Deployment Core.Zones.

The Cargo Menu system allows to execute various actions to transport the cargo. In the menu, you'll find for each CARGO, that is part of the scope of the task, various actions that can be completed. Depending on the location of your Carrier unit, the menu options will vary.

Joining a Cargo Transport Task

Once you've joined a task, using the Join Planned Task Menu, you can Pickup cargo from a pickup location and Deploy cargo in deployment zones, using the Task Action Menu.

Task Action Menu.

When a player has joined a CARGO task (type), for that player only, it's Task Action Menu will show an additional menu options.

From within this menu, you will be able to route to a cargo location, deploy zone, and load/unload cargo.

Pickup cargo by Boarding, Loading and Sling Loading.

There are three different ways how cargo can be picked up:

  • Boarding: Moveable cargo (like infantry or vehicles), can be boarded, that means, the cargo will move towards your carrier to board. However, it can only execute the boarding actions if it is within the foreseen Reporting Range. Therefore, it is important that you steer your Carrier within the Reporting Range around the cargo, so that boarding actions can be executed on the cargo. The reporting range is set by the mission designer. Fortunately, the cargo is reporting to you when it is within reporting range.

  • Loading: Stationary cargo (like crates), which are heavy, can only be loaded or sling loaded, meaning, your carrier must be close enough to the cargo to be able to load the cargo within the carrier bays. Moose provides you with an additional menu system to load stationary cargo into your carrier bays using the menu. These menu options will become available, when the carrier is within loading range. The Moose cargo will report to the carrier when the range is close enough. The load range is set by the mission designer.

  • Sling Loading: Stationary cargo (like crates), which are heavy, can only be loaded or sling loaded, meaning, your carrier must be close enough to the cargo to be able to load the cargo within the carrier bays. Sling loading cargo is done using the default DCS menu system. However, Moose cargo will report to the carrier that it is within sling loading range.

In order to be able to pickup cargo, you'll need to know where the cargo is located, right?

Fortunately, if your Carrier is not within the reporting range of the cargo, the HQ can help to route you to the locations of cargo.

Task_Types

Use the task action menu to receive HQ help for this.

Task_Types

Depending on the location within the battlefield, the task action menu will contain Route options that can be selected to start the HQ sending you routing messages. The route options will vary, depending on the position of your carrier, and the location of the cargo and the deploy zones. Note that the route options will only be created for cargo that is in scope of your cargo transportation task, so there may be other cargo objects within the DCS simulation, but if those belong to other cargo transportations tasks, then no routing options will be shown for these cargo. This is done to ensure that different teams have a defined scope for defined cargo, and that multiple teams can join multiple tasks, transporting cargo simultaneously in a cooperation.

In this example, there is a menu option to Route to pickup cargo.... Use this menu to route towards cargo locations for pickup into your carrier.

Task_Types

When you select this menu, you'll see a new menu listing the different cargo types that are out there in the dcs simulator. These cargo types are symbolic names that are assigned by the mission designer, like oil, liquid, engineers, food, workers etc. MOOSE has introduced this concept to allow mission designers to make different cargo types for different purposes. Only the creativity of the mission designer limits now the things that can be done with cargo ... Okay, let's continue ..., and let's select Oil ...

When selected, the HQ will send you routing messages.

Task_Types

An example of routing in BR mode.

Note that the coordinate display format in the message can be switched between LL DMS, LL DDM, MGRS and BR.

Task_Types

Use the Core.Settings menu to change your display format preferences.

Task_Types

There you can change the display format to another format that suits your need. Because cargo transportation is Air 2 Ground oriented, you need to select the A2G coordinate format display options. Note that the main settings menu contains much more options to control your display formats, like switch to metric and imperial, or change the duration of the display messages.

Task_Types

Here I changed the routing display format to LL DMS.

One important thing to know, is that the routing messages will flash at regular time intervals. When using BR coordinate display format, the distance and angle will change accordingly from your carrier position and the location of the cargo.

Another important note is the routing towards deploy zones. These routing options will only be shown, when your carrier bays have cargo loaded. So, only when there is something to be deployed from your carrier, the deploy options will be shown.

Pickup Cargo.

In order to pickup cargo, use the task action menu to route to a specific cargo. When a cargo route is selected, the HQ will send you routing messages indicating the location of the cargo.

Upon arrival at the cargo, and when the cargo is within reporting range, the cargo will contact you and further instructions will be given.

  • When your Carrier is airborne, you will receive instructions to land your Carrier. The action will not be completed until you've landed your Carrier.

  • For ground carriers, you can just drive to the optimal cargo board or load position.

It takes a bit of skill to land a helicopter near a cargo to be loaded, but that is part of the game, isn't it? Expecially when you are landing in a "hot" zone, so when cargo is under immediate threat of fire.

Board Cargo (infantry).

If your Carrier is within the Reporting Range of the cargo, and the cargo is moveable, the cargo can be boarded! This type of cargo will be most of the time be infantry.

A Board cargo... sub menu has appeared, because your carrier is in boarding range of the cargo (infantry). Select the Board cargo... menu.

Any cargo that can be boarded (thus movable cargo), within boarding range of the carrier, will be listed here! In this example, the cargo Engineers can be boarded, by selecting the menu option.

After the menu option to board the cargo has been selected, the boarding process is started. A message from the cargo is communicated to the pilot, that boarding is started.

The pilot must wait at the exact position until all cargo has been boarded!

The moveable cargo will run in formation to your carrier, and will board one by one, depending on the near range set by the mission designer. The near range as added because carriers can be large or small, depending on the object size of the carrier.

Note that multiple units may need to board your Carrier, so it is required to await the full boarding process.

Once the cargo is fully boarded within your Carrier, you will be notified of this.

Remarks:

  • For airborne Carriers, it is required to land first before the Boarding process can be initiated. If during boarding the Carrier gets airborne, the boarding process will be cancelled.
  • The carrier must remain stationary when the boarding sequence has started until further notified.

Load Cargo.

Cargo can be loaded into vehicles or helicopters or airplanes, as long as the carrier is sufficiently near to the cargo object.

If your Carrier is within the Loading Range of the cargo, thus, sufficiently near to the cargo, and the cargo is stationary, the cargo can be loaded, but not boarded!

Select the task action menu and now a Load cargo... sub menu will be listed. Select the Load cargo... sub menu, and a further detailed menu will be shown.

For each non-moveable cargo object (crates etc), within loading range of the carrier, the cargo will be listed and can be loaded into the carrier!

Once the cargo is loaded within your Carrier, you will be notified of this.

Remarks:

  • For airborne Carriers, it is required to land first right near the cargo, before the loading process can be initiated. As stated, this requires some pilot skills :-)

Sling Load Cargo (helicopters only).

If your Carrier is within the Loading Range of the cargo, and the cargo is stationary, the cargo can also be sling loaded! Note that this is only possible for helicopters.

To sling load cargo, there is no task action menu required. Just follow the normal sling loading procedure and the cargo will report. Use the normal DCS sling loading menu system to hook the cargo you the cable attached on your helicopter.

Again note that you may land firstly right next to the cargo, before the loading process can be initiated. As stated, this requires some pilot skills :-)

Deploy cargo by Unboarding, Unloading and Sling Deploying.

Deploying the relevant cargo within deploy zones, will make you achieve cargo transportation tasks!!!

There are two different ways how cargo can be deployed:

  • Unboarding: Moveable cargo (like infantry or vehicles), can be unboarded, that means, the cargo will step out of the carrier and will run to a group location. Moose provides you with an additional menu system to unload stationary cargo from the carrier bays, using the menu. These menu options will become available, when the carrier is within the deploy zone.

  • Unloading: Stationary cargo (like crates), which are heavy, can only be unloaded or sling loaded. Moose provides you with an additional menu system to unload stationary cargo from the carrier bays, using the menu. These menu options will become available, when the carrier is within the deploy zone.

  • Sling Deploying: Stationary cargo (like crates), which are heavy, can also be sling deployed. Once the cargo is within the deploy zone, the cargo can be deployed from the sling onto the ground.

In order to be able to deploy cargo, you'll need to know where the deploy zone is located, right? Fortunately, the HQ can help to route you to the locations of deploy zone. Use the task action menu to receive HQ help for this.

Depending on the location within the battlefield, the task action menu will contain Route options that can be selected to start the HQ sending you routing messages. Also, if the carrier cargo bays contain cargo, then beside Route options there will also be Deploy options listed. These Deploy options are meant to route you to the deploy zone locations.

Depending on the task that you have selected, the deploy zones will be listed. There may be multiple deploy zones within the mission, but only the deploy zones relevant for your task will be available in the menu!

When a routing option is selected, you are sent routing messages in a selected coordinate format. Possible routing coordinate formats are: Bearing Range (BR), Lattitude Longitude (LL) or Military Grid System (MGRS). Note that for LL, there are two sub formats. (See pickup).

When you are within the range of the deploy zone (can be also a polygon!), a message is communicated by HQ that you have arrived within the zone!

The routing messages are formulated in the coordinate format that is currently active as configured in your settings profile.
Task_Types
Use the Settings Menu to select the coordinate format that you would like to use for location determination.

Unboard Cargo.

If your carrier contains cargo, and the cargo is moveable, the cargo can be unboarded! You can only unload cargo if there is cargo within your cargo bays within the carrier.

Select the task action menu and now an Unboard cargo... sub menu will be listed! Again, this option will only be listed if there is a non moveable cargo within your cargo bays.

Now you will see a menu option to unload the non-moveable cargo. In this example, you can unload the Engineers that was loaded within your carrier cargo bays. Depending on the cargo loaded within your cargo bays, you will see other options here! Select the relevant menu option from the cargo unload menu, and the cargo will unloaded from your carrier.

The cargo will step out of your carrier and will move towards a grouping point. When the unboarding process has started, you will be notified by a message to your carrier.

The moveable cargo will unboard one by one, so note that multiple units may need to unboard your Carrier, so it is required to await the full completion of the unboarding process.

Once the cargo is fully unboarded from your carrier, you will be notified of this.

Remarks:

  • For airborne carriers, it is required to land first before the unboarding process can be initiated. If during unboarding the Carrier gets airborne, the unboarding process will be cancelled.
  • Once the moveable cargo is unboarded, they will start moving towards a specified gathering point.
  • The moveable cargo will send a message to your carrier with unboarding status updates.

Deploying a cargo within a deployment zone, may complete a deployment task! So ensure that you deploy the right cargo at the right deployment zone!

Unload Cargo.

If your carrier contains cargo, and the cargo is stationary, the cargo can be unloaded, but not unboarded! You can only unload cargo if there is cargo within your cargo bays within the carrier.

Select the task action menu and now an Unload cargo... sub menu will be listed! Again, this option will only be listed if there is a non moveable cargo within your cargo bays.

Now you will see a menu option to unload the non-moveable cargo. In this example, you can unload the Crate that was loaded within your carrier cargo bays. Depending on the cargo loaded within your cargo bays, you will see other options here! Select the relevant menu option from the cargo unload menu, and the cargo will unloaded from your carrier.

Once the cargo is unloaded fom your Carrier, you may be notified of this, when there is a truck near to the cargo. If there is no truck near to the unload area, no message will be sent to your carrier!

Remarks:

  • For airborne Carriers, it is required to land first, before the unloading process can be initiated.
  • A truck must be near the unload area to get messages to your carrier of the unload event!
  • Unloading is only for non-moveable cargo.
  • The non-moveable cargo must be within your cargo bays, or no unload option will be available.

Deploying a cargo within a deployment zone, may complete a deployment task! So ensure that you deploy the right cargo at the right deployment zone!

Sling Deploy Cargo (helicopters only).

If your Carrier is within the deploy zone, and the cargo is stationary, the cargo can also be sling deploying! Note that this is only possible for helicopters.

To sling deploy cargo, there is no task action menu required. Just follow the normal sling deploying procedure.

Deploying a cargo within a deployment zone, may complete a deployment task! So ensure that you deploy the right cargo at the right deployment zone!

Cargo tasking from a mission designer perspective.

Please consult the documentation how to implement the derived classes of SET_CARGO in:


Author: FlightControl

Contributions:


Global(s)

Global TASK_CARGO

Model tasks for players to transport Cargo.

#TASK_CARGO TASK_CARGO

Model tasks for players to transport Cargo.

This models the process of a flexible transporation tasking system of cargo.

1) A flexible tasking system.

The TASK_CARGO classes provide you with a flexible tasking sytem, that allows you to transport cargo of various types between various locations and various dedicated deployment zones.

The cargo in scope of the TASK_CARGO classes must be explicitly given, and is of type SET_CARGO. The SET_CARGO contains a collection of CARGO objects that must be handled by the players in the mission.

2) Cargo Tasking from a mission designer perspective.

A cargo task is governed by a Tasking.Mission object. Tasks are of different types. The #TASK object is used or derived by more detailed tasking classes that will implement the task execution mechanisms and goals.

2.1) Derived cargo task classes.

The following TASK_CARGO classes are derived from #TASK.

 TASK
   TASK_CARGO
     TASK_CARGO_TRANSPORT
     TASK_CARGO_CSAR

2.1.1) Cargo Tasks

2.2) Handle TASK_CARGO Events ...

The TASK_CARGO classes define Cargo transport tasks, based on the tasking capabilities defined in Tasking.Task#TASK.

2.2.1) Boarding events.

Specific Cargo event can be captured, that allow to trigger specific actions!

  • Boarded: Triggered when the Cargo has been Boarded into your Carrier.
  • UnBoarded: Triggered when the cargo has been Unboarded from your Carrier and has arrived at the Deployment Zone.

2.2.2) Loading events.

Specific Cargo event can be captured, that allow to trigger specific actions!

  • Loaded: Triggered when the Cargo has been Loaded into your Carrier.
  • UnLoaded: Triggered when the cargo has been Unloaded from your Carrier and has arrived at the Deployment Zone.

2.2.2) Standard TASK_CARGO Events

The TASK_CARGO is implemented using a Core.Fsm#FSM_TASK, and has the following standard statuses:

  • None: Start of the process.
  • Planned: The cargo task is planned.
  • Assigned: The cargo task is assigned to a Wrapper.Group#GROUP.
  • Success: The cargo task is successfully completed.
  • Failed: The cargo task has failed. This will happen if the player exists the task early, without communicating a possible cancellation to HQ.

Type(s)

Fields and Methods inherited from FSM_PROCESS Description

FSM_PROCESS.Cargo

FSM_PROCESS.DeployZone

TASK_CARGO , extends Tasking.Task#TASK , extends Core.Fsm#FSM_TASK , extends #FSM
Fields and Methods inherited from TASK_CARGO Description

TASK_CARGO:AddDeployZone(DeployZone, TaskUnit)

TASK_CARGO.CargoItemCount

TASK_CARGO.CargoLimit

TASK_CARGO.DeployZones

TASK_CARGO:GetAutoAssignPriority(AutoAssignMethod, TaskGroup)

This function is called from the Tasking.CommandCenter#COMMANDCENTER to determine the method of automatic task selection.

TASK_CARGO:GetCargoSet()

TASK_CARGO:GetDeployZones()

TASK_CARGO:GetGoalTotal()

TASK_CARGO:GetPlannedMenuText()

TASK_CARGO:GetSmokeColor()

TASK_CARGO:GetTargetZone(TaskUnit)

TASK_CARGO:New(Mission, SetGroup, TaskName, SetCargo, TaskType, TaskBriefing)

Instantiates a new TASK_CARGO.

TASK_CARGO:OnAfterCargoDeployed(From, Event, To, TaskUnit, Cargo, DeployZone)

CargoDeployed Handler OnAfter for TASK_CARGO

TASK_CARGO:OnAfterCargoPickedUp(From, Event, To, TaskUnit, Cargo)

CargoPickedUp Handler OnAfter for TASK_CARGO

TASK_CARGO:OnBeforeCargoDeployed(From, Event, To, TaskUnit, Cargo, DeployZone)

CargoDeployed Handler OnBefore for TASK_CARGO

TASK_CARGO:OnBeforeCargoPickedUp(From, Event, To, TaskUnit, Cargo)

CargoPickedUp Handler OnBefore for TASK_CARGO

TASK_CARGO:RemoveDeployZone(DeployZone, TaskUnit)

TASK_CARGO:ReportOrder(ReportGroup)

TASK_CARGO.SetCargo

TASK_CARGO:SetCargoLimit(CargoLimit)

Set a limit on the amount of cargo items that can be loaded into the Carriers.

TASK_CARGO:SetCargoPickup(Cargo, TaskUnit)

TASK_CARGO:SetDeployZone(DeployZone, TaskUnit)

TASK_CARGO:SetDeployZones(DeployZones, TaskUnit)

TASK_CARGO:SetGoalTotal()

TASK_CARGO:SetScoreOnFail(Text, Penalty, TaskUnit)

Set a penalty when the task goals have failed..

TASK_CARGO:SetScoreOnProgress(Text, Score, TaskUnit)

Set a score when progress is made.

TASK_CARGO:SetScoreOnSuccess(Text, Score, TaskUnit)

Set a score when success is achieved.

TASK_CARGO.SetSmokeColor(Color, self, SmokeColor)

TASK_CARGO.SmokeColor

TASK_CARGO.TaskType

TASK_CARGO:UpdateTaskInfo()

Fields and Methods inherited from TASK Description

TASK_CARGO:Abort()

FSM Abort synchronous event function for TASK.

TASK_CARGO:AbortGroup(PlayerGroup)

A group aborting the task.

TASK_CARGO:AddGroups(GroupSet)

Gets the SET_GROUP assigned to the TASK.

TASK_CARGO:AddProgress(PlayerName, ProgressText, ProgressTime, ProgressPoints)

Add Task Progress for a Player Name

TASK_CARGO:AssignToGroup(TaskGroup)

Assign the Task to a Wrapper.Group.

TASK_CARGO:AssignToUnit(TaskUnit)

Assign the Task to an alive Wrapper.Unit.

TASK_CARGO:Cancel()

FSM Cancel synchronous event function for TASK.

TASK_CARGO:ClearGroupAssignment(TaskGroup)

Clear the Wrapper.Group assignment from the Task.

TASK_CARGO.CommandCenter

TASK_CARGO:CrashGroup(PlayerGroup)

A group crashing and thus aborting from the task.

TASK_CARGO.DetectedItem

TASK_CARGO.Detection

TASK_CARGO.Dispatcher

TASK_CARGO:Fail()

FSM Fail synchronous event function for TASK.

TASK_CARGO:FailProcesses(TaskUnitName)

TASK_CARGO.FlashTaskScheduleID

TASK_CARGO.FlashTaskScheduler

TASK_CARGO.FlashTaskStatus

TASK_CARGO.FsmTemplate

TASK_CARGO:GetBriefing()

Gets the Task briefing.

TASK_CARGO:GetGoal()

Get goal of a task

TASK_CARGO:GetGroups()

Gets the SET_GROUP assigned to the TASK.

TASK_CARGO:GetID()

Gets the ID of the Task

TASK_CARGO:GetMission()

Gets the Mission to where the TASK belongs.

TASK_CARGO:GetName()

Gets the Name of the Task

TASK_CARGO:GetPlayerCount()

Create a count of the players in the Task.

TASK_CARGO:GetPlayerNames()

Create a list of the players in the Task.

TASK_CARGO:GetPlayerProgress(PlayerName)

TASK_CARGO:GetProcessTemplate(ProcessName)

Get the default or currently assigned Process template with key ProcessName.

TASK_CARGO:GetScoring()

Gets the Scoring of the task

TASK_CARGO:GetStateMachine(TaskUnit)

Gets the FiniteStateMachine of Task with key TaskWrapper.Unit

TASK_CARGO:GetStateString()

Gets the Task status.

TASK_CARGO:GetTaskBriefing()

Returns the Task briefing.

TASK_CARGO:GetTaskControlMenu(TaskUnit, TaskName)

Get Task Control Menu

TASK_CARGO:GetTaskIndex()

Gets the Task Index, which is a combination of the Task type, the Task name.

TASK_CARGO:GetTaskName()

Returns the Task name.

TASK_CARGO:GetType()

Gets the Type of the Task

TASK_CARGO:GetUnitProcess(TaskUnit)

Get the Task FSM Process Template

TASK_CARGO:Goal(PlayerUnit, PlayerName)

Goal Trigger for TASK

TASK_CARGO:HasAliveUnits()

Returns if the Task has still alive and assigned Units.

TASK_CARGO:HasGroup(FindGroup)

TASK_CARGO:HasStateMachine(TaskUnit)

Checks if there is a FiniteStateMachine assigned to TaskWrapper.Unit for Task

TASK_CARGO:InitTaskControlMenu(TaskUnit)

Init Task Control Menu

TASK_CARGO:IsGroupAssigned(TaskGroup)

Returns if the Task is assigned to the Group.

TASK_CARGO:IsStateAborted()

Is the Task status Aborted.

TASK_CARGO:IsStateAssigned()

Is the Task status Assigned.

TASK_CARGO:IsStateCancelled()

Is the Task status Cancelled.

TASK_CARGO:IsStateFailed()

Is the Task status Failed.

TASK_CARGO:IsStateHold()

Is the Task status Hold.

TASK_CARGO:IsStatePlanned()

Is the Task status Planned.

TASK_CARGO:IsStateReplanned()

Is the Task status Replanned.

TASK_CARGO:IsStateSuccess()

Is the Task status Success.

TASK_CARGO:JoinUnit(PlayerUnit, PlayerGroup)

Add a PlayerUnit to join the Task.

TASK_CARGO:MenuAssignToGroup(TaskGroup)

TASK_CARGO.MenuAssigned

TASK_CARGO:MenuFlashTaskStatus(TaskGroup, Flash)

Report the task status.

TASK_CARGO:MenuMarkToGroup(TaskGroup)

TASK_CARGO.MenuPlanned

TASK_CARGO:MenuTaskAbort(TaskGroup)

Report the task status.

TASK_CARGO:MenuTaskStatus(TaskGroup)

Report the task status.

TASK_CARGO:MessageToGroups(Message)

Send a message of the Task to the assigned Wrapper.Groups.

TASK_CARGO.Mission

TASK_CARGO:New(Mission, SetGroupAssign, TaskName, TaskType, TaskBriefing)

Instantiates a new TASK.

TASK_CARGO:OnAfterGoal(From, Event, To, PlayerUnit, PlayerName)

Goal Handler OnAfter for TASK

TASK_CARGO:OnAfterPlayerAborted(PlayerUnit, PlayerName)

FSM PlayerAborted event handler prototype for TASK.

TASK_CARGO:OnAfterPlayerCrashed(PlayerUnit, PlayerName)

FSM PlayerCrashed event handler prototype for TASK.

TASK_CARGO:OnAfterPlayerDead(PlayerUnit, PlayerName)

FSM PlayerDead event handler prototype for TASK.

TASK_CARGO:OnBeforeGoal(From, Event, To, PlayerUnit, PlayerName)

Goal Handler OnBefore for TASK

TASK_CARGO:RefreshMenus(TaskGroup, MenuTime)

Remove the menu option of the Task for a Wrapper.Group.

TASK_CARGO:RefreshTaskControlMenu(TaskUnit, MenuTime, MenuTag)

Refresh Task Control Menu

TASK_CARGO:RejectGroup(PlayerGroup)

A group rejecting a planned task.

TASK_CARGO:RemoveAssignedMenuForGroup(TaskGroup, MenuTime)

Remove the assigned menu option of the Task for a Wrapper.Group.

TASK_CARGO:RemoveMenu(MenuTime)

Remove the menu options of the Task to all the groups in the SetGroup.

TASK_CARGO:RemoveStateMachine(TaskUnit)

Remove FiniteStateMachines from Task with key TaskWrapper.Unit

TASK_CARGO:RemoveTaskControlMenu(TaskUnit)

Remove Task Control Menu

TASK_CARGO:Replan()

FSM Replan synchronous event function for TASK.

TASK_CARGO:ReportDetails(TaskGroup, ReportGroup)

Create a detailed report of the Task.

TASK_CARGO:ReportOverview(ReportGroup)

Create an overiew report of the Task.

TASK_CARGO:ReportSummary(ReportGroup)

Create a summary report of the Task.

TASK_CARGO:SendBriefingToAssignedGroups()

Send the briefng message of the Task to the assigned Wrapper.Groups.

TASK_CARGO:SetAssignMethod(AcceptClass)

TASK_CARGO:SetAssignedMenuForGroup(TaskGroup, MenuTime)

Set the assigned menu options of the Task.

TASK_CARGO:SetBriefing(TaskBriefing)

Sets a Task briefing.

TASK_CARGO:SetDetection(Detection, DetectedItem)

Set detection of a task

TASK_CARGO:SetDispatcher(Dispatcher)

Set dispatcher of a task

TASK_CARGO:SetGoal(Goal)

Set goal of a task

TASK_CARGO.SetGroup

The Set of Groups assigned to the Task

TASK_CARGO:SetGroupAssigned(TaskGroup)

Set Wrapper.Group assigned to the Task.

TASK_CARGO:SetID(TaskID)

Sets the ID of the Task

TASK_CARGO:SetMenu(MenuTime)

Set the menu options of the Task to all the groups in the SetGroup.

TASK_CARGO:SetMenuForGroup(MenuTime, TaskGroup)

Set the Menu for a Group

TASK_CARGO:SetName(TaskName)

Sets the Name of the Task

TASK_CARGO:SetPlannedMenuForGroup(TaskGroup, MenuText, MenuTime)

Set the planned menu option of the Task.

TASK_CARGO:SetScoreOnFail(PlayerName, Penalty, TaskUnit)

Set a penalty when the A2A attack has failed.

TASK_CARGO:SetScoreOnProgress(PlayerName, Score, TaskUnit)

Set a score when progress has been made by the player.

TASK_CARGO:SetScoreOnSuccess(PlayerName, Score, TaskUnit)

Set a score when all the targets in scope of the A2A attack, have been destroyed.

TASK_CARGO:SetStateMachine(TaskUnit, Fsm)

Add a FiniteStateMachine to Task with key TaskWrapper.Unit

TASK_CARGO:SetTimeOut(Timer)

Sets the TimeOut for the Task.

TASK_CARGO:SetType(TaskType)

Sets the Type of the Task

TASK_CARGO:SetUnitProcess(Core, FsmTemplate)

Sets the Task FSM Process Template

TASK_CARGO:StateAborted()

Sets a Task to status Aborted.

TASK_CARGO:StateAssigned()

Sets a Task to status Assigned.

TASK_CARGO:StateCancelled()

Sets a Task to status Cancelled.

TASK_CARGO:StateFailed()

Sets a Task to status Failed.

TASK_CARGO:StateHold()

Sets a Task to status Hold.

TASK_CARGO:StatePlanned()

Sets a Task to status Planned.

TASK_CARGO:StateReplanned()

Sets a Task to status Replanned.

TASK_CARGO:StateSuccess()

Sets a Task to status Success.

TASK_CARGO:Success()

FSM Success synchronous event function for TASK.

TASK_CARGO.TaskBriefing

TASK_CARGO.TaskControlMenu

TASK_CARGO.TaskControlMenuTime

TASK_CARGO.TaskID

TASK_CARGO.TaskInfo

TASK_CARGO.TaskName

TASK_CARGO.TaskProgress

TASK_CARGO.TaskScheduler

TASK_CARGO.TaskType

TASK_CARGO.TimeOut

TASK_CARGO:UnAssignFromGroup(TaskGroup)

UnAssign the Task from a Wrapper.Group.

TASK_CARGO:UnAssignFromGroups()

UnAssign the Task from the Wrapper.Groups.

TASK_CARGO:UnAssignFromUnit(TaskUnit)

UnAssign the Task from an alive Wrapper.Unit.

TASK_CARGO:__Abort()

FSM Abort asynchronous event function for TASK.

TASK_CARGO:__Cancel()

FSM Cancel asynchronous event function for TASK.

TASK_CARGO:__Fail()

FSM Fail asynchronous event function for TASK.

TASK_CARGO:__Goal(Delay, PlayerUnit, PlayerName)

Goal Asynchronous Trigger for TASK

TASK_CARGO:__Replan()

FSM Replan asynchronous event function for TASK.

TASK_CARGO:__Success()

FSM Success asynchronous event function for TASK.

TASK_CARGO:onafterReplan(From, Event, To)

FSM function for a TASK

TASK_CARGO:onbeforeTimeOut(Event, From, To)

FSM function for a TASK

TASK_CARGO:onenterAborted(From, Event, To)

FSM function for a TASK

TASK_CARGO:onenterAssigned(Event, From, To, PlayerUnit, PlayerName)

FSM function for a TASK

TASK_CARGO:onenterCancelled(From, Event, To)

FSM function for a TASK

TASK_CARGO:onenterFailed(From, Event, To)

FSM function for a TASK

TASK_CARGO:onenterPlanned(Event, From, To)

FSM function for a TASK

TASK_CARGO:onenterSuccess(Event, From, To)

FSM function for a TASK

TASK_CARGO:onstatechange(Event, From, To)

FSM function for a TASK

Fields and Methods inherited from FSM_TASK Description

TASK_CARGO:New(TaskName)

Creates a new FSM_TASK object.

TASK_CARGO.Task

TASK_CARGO:_call_handler(step, trigger, params, EventName)

Field(s)

Function(s)

Field(s)

#table TASK_CARGO.CargoItemCount

Map of Carriers having a cargo item count to check the cargo loading limits.

#table TASK_CARGO.DeployZones

setmetatable( {}, { __mode = "v" } ) -- weak table on value

Function(s)

Defined in:

TASK_CARGO

Parameters:

Core.Zone#ZONE DeployZone

Return value:

This function is called from the Tasking.CommandCenter#COMMANDCENTER to determine the method of automatic task selection.

Defined in:

TASK_CARGO

Parameters:

#number AutoAssignMethod

The method to be applied to the task.

The player group.

Defined in:

TASK_CARGO

Return value:

The Cargo Set.

Defined in:

TASK_CARGO

Return value:

#list<Core.Zone#ZONE\_BASE>:

The Deployment Zones.

Defined in:

TASK_CARGO

Defined in:

TASK_CARGO

@return SmokeColor

Defined in:

TASK_CARGO

Defined in:

TASK_CARGO

Parameter:

Return value:

The Zone object where the Target is located on the map.

Instantiates a new TASK_CARGO.

Defined in:

TASK_CARGO

Parameters:

The set of groups for which the Task can be assigned.

#string TaskName

The name of the Task.

The scope of the cargo to be transported.

#string TaskType

The type of Cargo task.

#string TaskBriefing

The Cargo Task briefing.

Return value:

self

CargoDeployed Handler OnAfter for TASK_CARGO

Defined in:

TASK_CARGO

Parameters:

#string From

#string Event

#string To

The Unit (Client) that Deployed the cargo. You can use this to retrieve the PlayerName etc.

The Cargo that got PickedUp by the TaskUnit. You can use this to check Cargo Status.

Core.Zone#ZONE DeployZone

The zone where the Cargo got Deployed or UnBoarded.

Usage:


  -- Add a Transport task to transport cargo of different types to a Transport Deployment Zone.
 TaskDispatcher = TASK_CARGO_DISPATCHER:New( Mission, TransportGroups )
 
 local CargoSetWorkmaterials = SET_CARGO:New():FilterTypes( "Workmaterials" ):FilterStart()
 local EngineerCargoGroup = CARGO_GROUP:New( GROUP:FindByName( "Engineers" ), "Workmaterials", "Engineers", 250 )
 local ConcreteCargo = CARGO_SLINGLOAD:New( STATIC:FindByName( "Concrete" ), "Workmaterials", "Concrete", 150, 50 )
 local CrateCargo = CARGO_CRATE:New( STATIC:FindByName( "Crate" ), "Workmaterials", "Crate", 150, 50 )
 local EnginesCargo = CARGO_CRATE:New( STATIC:FindByName( "Engines" ), "Workmaterials", "Engines", 150, 50 )
 local MetalCargo = CARGO_CRATE:New( STATIC:FindByName( "Metal" ), "Workmaterials", "Metal", 150, 50 )
 
 -- Here we add the task. We name the task "Build a Workplace".
 -- We provide the CargoSetWorkmaterials, and a briefing as the 2nd and 3rd parameter.
 -- The :AddTransportTask() returns a Tasking.Task_Cargo_Transport#TASK_CARGO_TRANSPORT object, which we keep as a reference for further actions.
 -- The WorkplaceTask holds the created and returned Tasking.Task_Cargo_Transport#TASK_CARGO_TRANSPORT object.
 local WorkplaceTask = TaskDispatcher:AddTransportTask( "Build a Workplace", CargoSetWorkmaterials, "Transport the workers, engineers and the equipment near the Workplace." )
 
 -- Here we set a TransportDeployZone. We use the WorkplaceTask as the reference, and provide a ZONE object.
 TaskDispatcher:SetTransportDeployZone( WorkplaceTask, ZONE:New( "Workplace" ) )
 
 Helos = { SPAWN:New( "Helicopters 1" ), SPAWN:New( "Helicopters 2" ), SPAWN:New( "Helicopters 3" ), SPAWN:New( "Helicopters 4" ), SPAWN:New( "Helicopters 5" ) }
 EnemyHelos = { SPAWN:New( "Enemy Helicopters 1" ), SPAWN:New( "Enemy Helicopters 2" ), SPAWN:New( "Enemy Helicopters 3" ) }
 
 -- This is our worker method! So when a cargo is deployed within a deployment zone, this method will be called.
 -- By example we are spawning here a random friendly helicopter and a random enemy helicopter.
 function WorkplaceTask:OnAfterCargoDeployed( From, Event, To, TaskUnit, Cargo, DeployZone )
   Helos[ math.random(1,#Helos) ]:Spawn()
   EnemyHelos[ math.random(1,#EnemyHelos) ]:Spawn()
 end

CargoPickedUp Handler OnAfter for TASK_CARGO

Defined in:

TASK_CARGO

Parameters:

#string From

#string Event

#string To

The Unit (Client) that PickedUp the cargo. You can use this to retrieve the PlayerName etc.

The Cargo that got PickedUp by the TaskUnit. You can use this to check Cargo Status.

CargoDeployed Handler OnBefore for TASK_CARGO

Defined in:

TASK_CARGO

Parameters:

#string From

#string Event

#string To

The Unit (Client) that Deployed the cargo. You can use this to retrieve the PlayerName etc.

The Cargo that got PickedUp by the TaskUnit. You can use this to check Cargo Status.

Core.Zone#ZONE DeployZone

The zone where the Cargo got Deployed or UnBoarded.

Return value:

#boolean:

CargoPickedUp Handler OnBefore for TASK_CARGO

Defined in:

TASK_CARGO

Parameters:

#string From

#string Event

#string To

The Unit (Client) that PickedUp the cargo. You can use this to retrieve the PlayerName etc.

The Cargo that got PickedUp by the TaskUnit. You can use this to check Cargo Status.

Return value:

#boolean:

Defined in:

TASK_CARGO

Parameters:

Core.Zone#ZONE DeployZone

Return value:

Defined in:

TASK_CARGO

Parameter:

ReportGroup

Set a limit on the amount of cargo items that can be loaded into the Carriers.

Defined in:

TASK_CARGO

Parameter:

CargoLimit

Specifies a number of cargo items that can be loaded in the helicopter.

Return value:

Defined in:

TASK_CARGO

Parameters:

The cargo.

Return value:

Defined in:

TASK_CARGO

Parameters:

Core.Zone#ZONE DeployZone

Return value:

Defined in:

TASK_CARGO

Parameters:

#list<Core.Zone#ZONE> DeployZones

Return value:

Defined in:

TASK_CARGO

Set a penalty when the task goals have failed..

Defined in:

TASK_CARGO

Parameters:

#string Text

The text to display to the player, when the task goals has failed.

#number Penalty

The penalty in points.

Return value:

Set a score when progress is made.

Defined in:

TASK_CARGO

Parameters:

#string Text

The text to display to the player, when there is progress on the task goals.

#number Score

The score in points.

Return value:

Set a score when success is achieved.

Defined in:

TASK_CARGO

Parameters:

#string Text

The text to display to the player, when the task goals have been achieved.

#number Score

The score in points.

Return value:

Defined in:

TASK_CARGO

Parameters:

Color

Might be SMOKECOLOR.Blue, SMOKECOLOR.Red SMOKECOLOR.Orange, SMOKECOLOR.White or SMOKECOLOR.Green

self

SmokeColor

Defined in:

TASK_CARGO

Field(s)

#table TASK_CARGO.CargoItemCount

Map of Carriers having a cargo item count to check the cargo loading limits.

#table TASK_CARGO.DeployZones

setmetatable( {}, { __mode = "v" } ) -- weak table on value

Function(s)

FSM Abort synchronous event function for TASK.

Use this event to Abort the Task.

Defined in:

A group aborting the task.

Defined in:

Parameter:

Wrapper.Group#GROUP PlayerGroup

The group aborting the task.

Return value:

Gets the SET_GROUP assigned to the TASK.

Defined in:

Parameter:

Return value:

Add Task Progress for a Player Name

Defined in:

Parameters:

#string PlayerName

The name of the player.

#string ProgressText

The text that explains the Progress achieved.

#number ProgressTime

The time the progress was achieved.

ProgressPoints

Return value:

Assign the Task to a Wrapper.Group.

Defined in:

Parameter:

Return value:

Assign the Task to an alive Wrapper.Unit.

Defined in:

Parameter:

Return value:

self

FSM Cancel synchronous event function for TASK.

Use this event to Cancel the Task.

Defined in:

Clear the Wrapper.Group assignment from the Task.

Defined in:

Parameter:

Return value:

A group crashing and thus aborting from the task.

Defined in:

Parameter:

Wrapper.Group#GROUP PlayerGroup

The group aborting the task.

Return value:

FSM Fail synchronous event function for TASK.

Use this event to Fail the Task.

Defined in:

TODO: Obscolete? - Fail processes from Task with key Wrapper.Unit @param #TASK self @param #string TaskUnitName @return #TASK self

Defined in:

Parameter:

TaskUnitName

Gets the Task briefing.

Defined in:

Return value:

#string:

The briefing text.

Get goal of a task

Defined in:

Return value:

The Goal

Gets the SET_GROUP assigned to the TASK.

Defined in:

Return value:

Gets the ID of the Task

Defined in:

Return value:

#string:

TaskID

Gets the Mission to where the TASK belongs.

Defined in:

Return value:

Gets the Name of the Task

Defined in:

Return value:

#string:

The Task Name

Create a count of the players in the Task.

Defined in:

Return value:

#number:

The total number of players in the task.

Create a list of the players in the Task.

Defined in:

Return value:

#map<#string,Wrapper.Group#GROUP>:

A map of the players

Get the default or currently assigned Process template with key ProcessName.

Defined in:

Parameter:

#string ProcessName

Return value:

Gets the Scoring of the task

Defined in:

Return value:

Gets the FiniteStateMachine of Task with key TaskWrapper.Unit

Defined in:

Parameter:

Return value:

Gets the Task status.

Defined in:

Returns the Task briefing.

Defined in:

Return value:

#string:

Task briefing.

Get Task Control Menu

Defined in:

Parameters:

The Wrapper.Unit that contains a player.

TaskName

Return value:

TaskControlMenu The Task Control Menu

Gets the Task Index, which is a combination of the Task type, the Task name.

Defined in:

Return value:

#string:

The Task ID

Returns the Task name.

Defined in:

Return value:

#string:

TaskName

Gets the Type of the Task

Defined in:

Return value:

#string:

TaskType

Get the Task FSM Process Template

Defined in:

Parameter:

TaskUnit

Return value:

Goal Trigger for TASK

Defined in:

Parameters:

Wrapper.Unit#UNIT PlayerUnit

The Wrapper.Unit of the player.

#string PlayerName

The name of the player.

Returns if the Task has still alive and assigned Units.

Defined in:

Return value:

#boolean:

Defined in:

Parameter:

Return value:

#boolean:

Checks if there is a FiniteStateMachine assigned to TaskWrapper.Unit for Task

Defined in:

Parameter:

Return value:

self

Init Task Control Menu

Defined in:

Parameter:

The Wrapper.Unit that contains a player.

Return value:

Task Control Menu Refresh ID

Returns if the Task is assigned to the Group.

Defined in:

Parameter:

Return value:

#boolean:

Is the Task status Aborted.

Defined in:

Is the Task status Assigned.

Defined in:

Is the Task status Cancelled.

Defined in:

Is the Task status Failed.

Defined in:

Is the Task status Hold.

Defined in:

Is the Task status Planned.

Defined in:

Is the Task status Replanned.

Defined in:

Is the Task status Success.

Defined in:

Add a PlayerUnit to join the Task.

For each Group within the Task, the Unit is checked if it can join the Task. If the Unit was not part of the Task, false is returned. If the Unit is part of the Task, true is returned.

Defined in:

Parameters:

Wrapper.Unit#UNIT PlayerUnit

The CLIENT or UNIT of the Player joining the Mission.

Wrapper.Group#GROUP PlayerGroup

The GROUP of the player joining the Mission.

Return value:

#boolean:

true if Unit is part of the Task.

Report the task status.

Defined in:

Parameters:

TaskGroup

Flash

Report the task status.

Defined in:

Parameter:

TaskGroup

Report the task status.

Defined in:

Parameter:

Send a message of the Task to the assigned Wrapper.Groups.

Defined in:

Parameter:

Message

Instantiates a new TASK.

Should never be used. Interface Class.

Defined in:

Parameters:

The mission wherein the Task is registered.

Core.Set#SET_GROUP SetGroupAssign

The set of groups for which the Task can be assigned.

#string TaskName

The name of the Task

#string TaskType

The type of the Task

TaskBriefing

Return value:

self

Goal Handler OnAfter for TASK

Defined in:

Parameters:

#string From

#string Event

#string To

Wrapper.Unit#UNIT PlayerUnit

The Wrapper.Unit of the player.

#string PlayerName

The name of the player.

FSM PlayerAborted event handler prototype for TASK.

Defined in:

Parameters:

Wrapper.Unit#UNIT PlayerUnit

The Unit of the Player when he went back to spectators or left the mission.

#string PlayerName

The name of the Player.

FSM PlayerCrashed event handler prototype for TASK.

Defined in:

Parameters:

Wrapper.Unit#UNIT PlayerUnit

The Unit of the Player when he crashed in the mission.

#string PlayerName

The name of the Player.

FSM PlayerDead event handler prototype for TASK.

Defined in:

Parameters:

Wrapper.Unit#UNIT PlayerUnit

The Unit of the Player when he died in the mission.

#string PlayerName

The name of the Player.

Goal Handler OnBefore for TASK

Defined in:

Parameters:

#string From

#string Event

#string To

Wrapper.Unit#UNIT PlayerUnit

The Wrapper.Unit of the player.

#string PlayerName

The name of the player.

Return value:

#boolean:

Remove the menu option of the Task for a Wrapper.Group.

Defined in:

Parameters:

#number MenuTime

Return value:

self

Refresh Task Control Menu

Defined in:

Parameters:

The Wrapper.Unit that contains a player.

MenuTime

The refresh time that was used to refresh the Task Control Menu items.

MenuTag

The tag.

A group rejecting a planned task.

Defined in:

Parameter:

Wrapper.Group#GROUP PlayerGroup

The group rejecting the task.

Return value:

Remove the assigned menu option of the Task for a Wrapper.Group.

Defined in:

Parameters:

#number MenuTime

Return value:

self

Remove the menu options of the Task to all the groups in the SetGroup.

Defined in:

Parameter:

#number MenuTime

Return value:

Remove FiniteStateMachines from Task with key TaskWrapper.Unit

Defined in:

Parameter:

Return value:

self

Remove Task Control Menu

Defined in:

Parameter:

The Wrapper.Unit that contains a player.

FSM Replan synchronous event function for TASK.

Use this event to Replan the Task.

Defined in:

Create a detailed report of the Task.

List the Task Status, and the Players assigned to the Task.

Defined in:

Parameters:

ReportGroup

Return value:

#string:

Create an overiew report of the Task.

List the Task Name and Status

Defined in:

Parameter:

ReportGroup

Return value:

#string:

Create a summary report of the Task.

List the Task Name and Status

Defined in:

Parameter:

Wrapper.Group#GROUP ReportGroup

Return value:

#string:

Send the briefng message of the Task to the assigned Wrapper.Groups.

Defined in:

Set the assigned menu options of the Task.

Defined in:

Parameters:

#number MenuTime

Return value:

self

Sets a Task briefing.

Defined in:

Parameter:

#string TaskBriefing

Return value:

self

Set detection of a task

Defined in:

Parameters:

DetectedItem

Return value:

Set dispatcher of a task

Defined in:

Parameter:

Return value:

Set goal of a task

Defined in:

Parameter:

Return value:

Set Wrapper.Group assigned to the Task.

Defined in:

Parameter:

Return value:

Sets the ID of the Task

Defined in:

Parameter:

#string TaskID

Set the menu options of the Task to all the groups in the SetGroup.

Defined in:

Parameter:

#number MenuTime

Return value:

Set the Menu for a Group

Defined in:

Parameters:

#number MenuTime

TaskGroup

Return value:

Sets the Name of the Task

Defined in:

Parameter:

#string TaskName

Set the planned menu option of the Task.

Defined in:

Parameters:

#string MenuText

The menu text.

#number MenuTime

Return value:

self

Set a penalty when the A2A attack has failed.

Defined in:

Parameters:

#string PlayerName

The name of the player.

#number Penalty

The penalty in points, must be a negative value!

Return value:

Set a score when progress has been made by the player.

Defined in:

Parameters:

#string PlayerName

The name of the player.

#number Score

The score in points to be granted when task process has been achieved.

Return value:

Set a score when all the targets in scope of the A2A attack, have been destroyed.

Defined in:

Parameters:

#string PlayerName

The name of the player.

#number Score

The score in points.

Return value:

Add a FiniteStateMachine to Task with key TaskWrapper.Unit

Defined in:

Parameters:

Return value:

self

Sets the TimeOut for the Task.

If Task stayed planned for longer than TimeOut, it gets into Cancelled status.

Defined in:

Parameter:

#integer Timer

in seconds

Return value:

self

Sets the Type of the Task

Defined in:

Parameter:

#string TaskType

Sets the Task FSM Process Template

Defined in:

Parameters:

Core

Fsm#FSM_PROCESS

FsmTemplate

Sets a Task to status Aborted.

Defined in:

Sets a Task to status Assigned.

Defined in:

Sets a Task to status Cancelled.

Defined in:

Sets a Task to status Failed.

Defined in:

Sets a Task to status Hold.

Defined in:

Sets a Task to status Planned.

Defined in:

Sets a Task to status Replanned.

Defined in:

Sets a Task to status Success.

Defined in:

FSM Success synchronous event function for TASK.

Use this event to make the Task a Success.

Defined in:

UnAssign the Task from an alive Wrapper.Unit.

Defined in:

Parameter:

Return value:

self

FSM Abort asynchronous event function for TASK.

Use this event to Abort the Task.

Defined in:

FSM Cancel asynchronous event function for TASK.

Use this event to Cancel the Task.

Defined in:

FSM Fail asynchronous event function for TASK.

Use this event to Fail the Task.

Defined in:

Goal Asynchronous Trigger for TASK

Defined in:

Parameters:

#number Delay

Wrapper.Unit#UNIT PlayerUnit

The Wrapper.Unit of the player.

#string PlayerName

The name of the player.

FSM Replan asynchronous event function for TASK.

Use this event to Replan the Task.

Defined in:

FSM Success asynchronous event function for TASK.

Use this event to make the Task a Success.

Defined in:

FSM function for a TASK

Defined in:

Parameters:

#string From

#string Event

#string To

FSM function for a TASK

Defined in:

Parameters:

#string Event

#string From

#string To

FSM function for a TASK

Defined in:

Parameters:

#string From

#string Event

#string To

FSM function for a TASK

Defined in:

Parameters:

#string Event

#string From

#string To

PlayerUnit

PlayerName

FSM function for a TASK

Defined in:

Parameters:

#string From

#string Event

#string To

FSM function for a TASK

Defined in:

Parameters:

#string From

#string Event

#string To

FSM function for a TASK

Defined in:

Parameters:

#string Event

#string From

#string To

FSM function for a TASK

Defined in:

Parameters:

#string Event

#string From

#string To

FSM function for a TASK

Defined in:

Parameters:

#string Event

#string From

#string To

Field(s)

#table TASK_CARGO.CargoItemCount

Map of Carriers having a cargo item count to check the cargo loading limits.

#table TASK_CARGO.DeployZones

setmetatable( {}, { __mode = "v" } ) -- weak table on value

Function(s)

Creates a new FSM_TASK object.

Defined in:

Parameter:

#string TaskName

The name of the task.

Return value:

Defined in:

Parameters:

step

trigger

params

EventName