Module AI_Cargo_Dispatcher_Helicopter

AI -- (R2.4) - Models the intelligent transportation of infantry and other cargo using Helicopters.

The #AI_CARGO_DISPATCHER_HELICOPTER classes implements the dynamic dispatching of cargo transportation tasks for helicopters.


Author: FlightControl


Global(s)

AI_CARGO_DISPATCHER_HELICOPTER

AI_CARGO_DISPATCHER_HELICOPTER class, extends AI.AI_Cargo_Dispatcher#AI_CARGO_DISPATCHER

Banner Image


AI_CARGO_DISPATCHER_HELICOPTER brings a dynamic cargo handling capability for AI helicopter groups.

Type AI_CARGO_DISPATCHER_HELICOPTER

AI_CARGO_DISPATCHER_HELICOPTER:AICargo(Helicopter, SetCargo)
AI_CARGO_DISPATCHER_HELICOPTER:New(SetHelicopter, SetCargo, SetDeployZone, SetDeployZones)

Creates a new AICARGODISPATCHER_HELICOPTER object.

Global(s)

#AI_CARGO_DISPATCHER_HELICOPTER AI_CARGO_DISPATCHER_HELICOPTER

AI_CARGO_DISPATCHER_HELICOPTER class, extends AI.AI_Cargo_Dispatcher#AI_CARGO_DISPATCHER

Banner Image


AI_CARGO_DISPATCHER_HELICOPTER brings a dynamic cargo handling capability for AI helicopter groups.

Helicopters can be mobilized to intelligently transport infantry and other cargo within the simulation. The AI_CARGO_DISPATCHER_HELICOPTER module uses the Cargo capabilities within the MOOSE framework. CARGO derived objects must be declared within the mission to make the AI_CARGO_DISPATCHER_HELICOPTER object recognize the cargo. Please consult the Cargo module for more information.


1. AI_CARGO_DISPATCHER_HELICOPTER constructor


2. AI_CARGO_DISPATCHER_HELICOPTER is a FSM

Process

2.1. AI_CARGO_DISPATCHER_HELICOPTER States

  • Monitoring: The process is dispatching.
  • Idle: The process is idle.

2.2. AI_CARGO_DISPATCHER_HELICOPTER Events

  • Monitor: Monitor and take action.
  • Start: Start the transport process.
  • Stop: Stop the transport process.
  • Pickup: Pickup cargo.
  • Load: Load the cargo.
  • Loaded: Flag that the cargo is loaded.
  • Deploy: Deploy cargo to a location.
  • Unload: Unload the cargo.
  • Unloaded: Flag that the cargo is unloaded.
  • Home: A Helicopter is going home.

3. Set the pickup parameters.

Several parameters can be set to pickup cargo:

  • #AI_CARGO_DISPATCHER(): Sets or randomizes the pickup location for the helicopter around the cargo coordinate in a radius defined an outer and optional inner radius.
  • #AI_CARGO_DISPATCHER(): Set the speed or randomizes the speed in km/h to pickup the cargo.

4. Set the deploy parameters.

Several parameters can be set to deploy cargo:

  • #AI_CARGO_DISPATCHER(): Sets or randomizes the deploy location for the helicopter around the cargo coordinate in a radius defined an outer and an optional inner radius.
  • #AI_CARGO_DISPATCHER(): Set the speed or randomizes the speed in km/h to deploy the cargo.

5. Set the home zone when there isn't any more cargo to pickup.

A home zone can be specified to where the Helicopters will move when there isn't any cargo left for pickup. Use #AI_CARGO_DISPATCHER() to specify the home zone.

If no home zone is specified, the helicopters will wait near the deploy zone for a new pickup command.


Type AI_Cargo_Dispatcher_Helicopter

Type AI_CARGO_DISPATCHER_HELICOPTER

Extends AI.AI_Cargo_Dispatcher#AI_CARGO_DISPATCHER

Field(s)

AI_CARGO_DISPATCHER_HELICOPTER:AICargo(Helicopter, SetCargo)

Parameters

  • Helicopter :

  • SetCargo :

AI_CARGO_DISPATCHER_HELICOPTER:New(SetHelicopter, SetCargo, SetDeployZone, SetDeployZones)

Creates a new AICARGODISPATCHER_HELICOPTER object.

Parameters

Return value

#AI_CARGO_DISPATCHER_HELICOPTER:

Usage:


-- Create a new cargo dispatcher
SetHelicopter = SET_GROUP:New():FilterPrefixes( "Helicopter" ):FilterStart()
SetCargo = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
SetDeployZone = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
AICargoDispatcher = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargo )