Module AI_Designate
AI (Release 2.1) -- Management of target designation.
--
Global(s)
| AI_DESIGNATE |
AI_DESIGNATE class, extends Fsm#FSMAI_DESIGNATE is orchestrating the designation of potential targets executed by a Recce group, and communicates these to a dedicated attacking group of players, so that following a dynamically generated menu system, each detected set of potential targets can be lased or smoked... |
Type AI_DESIGNATE
Global(s)
- #AI_DESIGNATE AI_DESIGNATE
-
AI_DESIGNATE class, extends Fsm#FSM
AI_DESIGNATE is orchestrating the designation of potential targets executed by a Recce group, and communicates these to a dedicated attacking group of players, so that following a dynamically generated menu system, each detected set of potential targets can be lased or smoked...
Targets can be:
- Lased for a period of time.
- Smoked. Artillery or airplanes with Illuminatino ordonance need to be present. (WIP, but early demo ready.)
- Illuminated through an illumination bomb. Artillery or airplanes with Illuminatino ordonance need to be present. (WIP, but early demo ready.
The following terminology is being used throughout this document:
- The DesignateObject is the object of the AI_DESIGNATE class, which is this class explained in the document.
- The DetectionObject is the object of a DETECTION_ class (DETECTIONTYPES, DETECTIONAREAS, DETECTION_UNITS), which is executing the detection and grouping of Targets into DetectionItems.
- DetectionItems is the list of detected target groupings by the DetectionObject. Each DetectionItem contains a TargetSet.
- DetectionItem is one element of the DetectionItems list, and contains a TargetSet.
- The TargetSet is a SET_UNITS collection of Targets, that have been detected by the DetectionObject.
- A Target is a detected UNIT object by the DetectionObject.
- A Threat Level is a number from 0 to 10 that is calculated based on the threat of the Target in an Air to Ground battle scenario.
- The RecceSet is a SET_GROUP collection that contains the RecceGroups.
- A RecceGroup is a GROUP object containing the Recces.
- A Recce is a UNIT object executing the reconnaissance as part the DetectionObject. A Recce can be of any UNIT type.
- An AttackGroup is a GROUP object that contain Players.
- A Player is an active CLIENT object containing a human player.
- A Designate Menu is the menu that is dynamically created during the designation process for each AttackGroup.
The RecceSet is continuously detecting for potential Targets, executing its task as part of the DetectionObject. Once Targets have been detected, the DesignateObject will trigger the Detect Event.
As part of the Detect Event, the DetectionItems list is used by the DesignateObject to provide the Players with:
- The RecceGroups are reporting to each AttackGroup, sending Messages containing the Threat Level and the TargetSet composition.
- Menu options are created and updated for each AttackGroup, containing the Threat Level and the TargetSet composition.
A Player can then select an action from the Designate Menu.
Note that each selected action will be executed for a TargetSet, thus the Target grouping done by the DetectionObject.
Each Menu Option in the Designate Menu has two modes:
- If the TargetSet is not being designated, then the Designate Menu option for the target Set will provide options to Lase or Smoke the targets.
- If the Target Set is being designated, then the Designate Menu option will provide an option to stop or cancel the designation.
While designating, the RecceGroups will report any change in TargetSet composition or Target presence.
The following logic is executed when a TargetSet is selected to be lased from the Designation Menu:
- The RecceSet is searched for any Recce that is within designation distance from a Target in the TargetSet that is currently not being designated.
- If there is a Recce found that is currently no designating a target, and is within designation distance from the Target, then that Target will be designated.
- During designation, any Recce that does not have Line of Sight (LOS) and is not within disignation distance from the Target, will stop designating the Target, and a report is given.
- When a Recce is designating a Target, and that Target is destroyed, then the Recce will stop designating the Target, and will report the event.
- When a Recce is designating a Target, and that Recce is destroyed, then the Recce will be removed from the RecceSet and designation will stop without reporting.
- When all RecceGroups are destroyed from the RecceSet, then the DesignationObject will stop functioning, and nothing will be reported.
In this way, the DesignationObject assists players to designate ground targets for a coordinated attack!
Have FUN!
1. AI_DESIGNATE constructor
- AI_DESIGNATE.New(): Creates a new AI_DESIGNATE object.
2. AI_DESIGNATE is a FSM
2.1 AI_DESIGNATE States
- Designating ( Group ): The process is not started yet.
2.2 AI_DESIGNATE Events
- **AI_DESIGNATE.Detect**: Detect targets.
- **AI_DESIGNATE.LaseOn**: Lase the targets with the specified Index.
- **AI_DESIGNATE.LaseOff**: Stop lasing the targets with the specified Index.
- **AI_DESIGNATE.Smoke**: Smoke the targets with the specified Index.
- **AI_DESIGNATE.Status**: Report designation status.
3. Set laser codes
An array of laser codes can be provided, that will be used by the AI_DESIGNATE when lasing. The laser code is communicated by the Recce when it is lasing a larget. Note that the default laser code is 1113. Working known laser codes are: 1113,1462,1483,1537,1362,1214,1131,1182,1644,1614,1515,1411,1621,1138,1542,1678,1573,1314,1643,1257,1467,1375,1341,1275,1237
Use the method AI_DESIGNATE.SetLaserCodes() to set the possible laser codes to be selected from. One laser code can be given or an sequence of laser codes through an table...
AIDesignate:SetLaserCodes( 1214 )The above sets one laser code with the value 1214.
AIDesignate:SetLaserCodes( { 1214, 1131, 1614, 1138 } )The above sets a collection of possible laser codes that can be assigned. Note the { } notation!
Type AI_Designate
Type AI_DESIGNATE
Field(s)
- AI_DESIGNATE:Detect()
-
Detect Trigger for AI_DESIGNATE
- AI_DESIGNATE:Illuminate()
-
Illuminate Trigger for AI_DESIGNATE
- AI_DESIGNATE:LaseOff()
-
LaseOff Trigger for AI_DESIGNATE
- AI_DESIGNATE:LaseOn()
-
LaseOn Trigger for AI_DESIGNATE
- AI_DESIGNATE:MenuIlluminate(AttackGroup, Index)
-
Parameters
-
AttackGroup: -
Index:
-
- AI_DESIGNATE:MenuLaseOff(AttackGroup, Index, Duration)
-
Parameters
-
AttackGroup: -
Index: -
Duration:
-
- AI_DESIGNATE:MenuLaseOn(AttackGroup, Index, Duration)
-
Parameters
-
AttackGroup: -
Index: -
Duration:
-
- AI_DESIGNATE:MenuSmoke(AttackGroup, Index, Color)
-
Parameters
-
AttackGroup: -
Index: -
Color:
-
- AI_DESIGNATE:New(Detection, GroupSet)
-
AI_DESIGNATE Constructor.
This class is an abstract class and should not be instantiated.
Parameters
-
Functional.Detection#DETECTION_BASE Detection: -
Core.Set#SET_GROUP GroupSet: The set of groups to designate for.
Return value
-
- AI_DESIGNATE:OnAfterDetect(From, Event, To)
-
Detect Handler OnAfter for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
-
- AI_DESIGNATE:OnAfterIlluminate(From, Event, To)
-
Illuminate Handler OnAfter for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
-
- AI_DESIGNATE:OnAfterLaseOff(From, Event, To)
-
LaseOff Handler OnAfter for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
-
- AI_DESIGNATE:OnAfterLaseOn(From, Event, To)
-
LaseOn Handler OnAfter for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
-
- AI_DESIGNATE:OnAfterSmoke(From, Event, To)
-
Smoke Handler OnAfter for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
-
- AI_DESIGNATE:OnAfterStatus(From, Event, To)
-
Status Handler OnAfter for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
-
- AI_DESIGNATE:OnBeforeDetect(From, Event, To)
-
Detect Handler OnBefore for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
Return value
#boolean:
-
- AI_DESIGNATE:OnBeforeIlluminate(From, Event, To)
-
Illuminate Handler OnBefore for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
Return value
#boolean:
-
- AI_DESIGNATE:OnBeforeLaseOff(From, Event, To)
-
LaseOff Handler OnBefore for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
Return value
#boolean:
-
- AI_DESIGNATE:OnBeforeLaseOn(From, Event, To)
-
LaseOn Handler OnBefore for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
Return value
#boolean:
-
- AI_DESIGNATE:OnBeforeSmoke(From, Event, To)
-
Smoke Handler OnBefore for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
Return value
#boolean:
-
- AI_DESIGNATE:OnBeforeStatus(From, Event, To)
-
Status Handler OnBefore for AI_DESIGNATE
Parameters
-
#string From: -
#string Event: -
#string To:
Return value
#boolean:
-
- AI_DESIGNATE:SendStatus()
-
Sends the status to the Attack Groups.
Return value
- AI_DESIGNATE:SetDesignateMenu()
-
Sets the Designate Menu.
Return value
- AI_DESIGNATE:SetLaserCodes(<, LaserCodes)
-
Set an array of possible laser codes.
Each new lase will select a code from this table.
Parameters
-
#list <: number> LaserCodes -
LaserCodes:
Return value
-
- AI_DESIGNATE:Smoke()
-
Smoke Trigger for AI_DESIGNATE
- AI_DESIGNATE:Status()
-
Status Trigger for AI_DESIGNATE
- AI_DESIGNATE:__Detect(Delay)
-
Detect Asynchronous Trigger for AI_DESIGNATE
Parameter
-
#number Delay:
-
- AI_DESIGNATE:__Illuminate(Delay)
-
Illuminate Asynchronous Trigger for AI_DESIGNATE
Parameter
-
#number Delay:
-
- AI_DESIGNATE:__LaseOff(Delay)
-
LaseOff Asynchronous Trigger for AI_DESIGNATE
Parameter
-
#number Delay:
-
- AI_DESIGNATE:__LaseOn(Delay)
-
LaseOn Asynchronous Trigger for AI_DESIGNATE
Parameter
-
#number Delay:
-
- AI_DESIGNATE:__Smoke(Delay)
-
Smoke Asynchronous Trigger for AI_DESIGNATE
Parameter
-
#number Delay:
-
- AI_DESIGNATE:__Status(Delay)
-
Status Asynchronous Trigger for AI_DESIGNATE
Parameter
-
#number Delay:
-
- AI_DESIGNATE:onafterDetect()
-
Return value
- AI_DESIGNATE:onafterDone(From, Event, To, Index)
-
Done
Parameters
-
From: -
Event: -
To: -
Index:
Return value
-
- AI_DESIGNATE:onafterIlluminate(From, Event, To, AttackGroup, Index)
-
Illuminating
Parameters
-
From: -
Event: -
To: -
AttackGroup: -
Index:
Return value
-
- AI_DESIGNATE:onafterLaseOff(From, Event, To, AttackGroup, Index)
-
Parameters
-
From: -
Event: -
To: -
AttackGroup: -
Index:
Return value
-
- AI_DESIGNATE:onafterLaseOn(From, Event, To, AttackGroup, Index, Duration)
-
Parameters
-
From: -
Event: -
To: -
AttackGroup: -
Index: -
Duration:
Return value
-
- AI_DESIGNATE:onafterLasing(From, Event, To, AttackGroup, Index, Duration)
-
Parameters
-
From: -
Event: -
To: -
AttackGroup: -
Index: -
Duration:
Return value
-
- AI_DESIGNATE:onafterSmoke(From, Event, To, AttackGroup, Index, Color)
-
Parameters
-
From: -
Event: -
To: -
AttackGroup: -
Index: -
Color:
Return value
-