Banner Image

Module Ops.Chief

Ops - Chief of Staff.

Main Features:

  • Automatic target engagement based on detection network
  • Define multiple border, conflict and attack zones
  • Define strategic "capture" zones
  • Set strategy of chief from passive to agressive
  • Manual target engagement via AUFTRAG and TARGET classes
  • Add AIRWINGS, BRIGADES and FLEETS as resources
  • Seamless air-to-air, air-to-ground, ground-to-ground dispatching

Author: funkyfranky

Global(s)

Global CHIEF

In preparing for battle I have always found that plans are useless, but planning is indispensable -- Dwight D Eisenhower


The CHIEF Concept

The Chief of staff gathers INTEL and assigns missions (AUFTRAG) to the airforce, army and/or navy.

#CHIEF CHIEF

In preparing for battle I have always found that plans are useless, but planning is indispensable -- Dwight D Eisenhower


The CHIEF Concept

The Chief of staff gathers INTEL and assigns missions (AUFTRAG) to the airforce, army and/or navy.

The distinguished feature here is that this class combines all three forces under one hood. Therefore, this class be used as an air-to-air, air-to-ground, ground-to-ground, air-to-sea, sea-to-ground, etc. dispachter.

Territory

The chief class allows you to define boarder zones, conflict zones and attack zones.

Border Zones

Border zones define your own territory. They can be set via the CHIEF.SetBorderZones() function as a set or added zone by zone via the CHIEF.AddBorderZone() function.

Conflict Zones

Conflict zones define areas, which usually are under dispute of different coalitions. They can be set via the CHIEF.SetConflictZones() function as a set or added zone by zone via the CHIEF.AddConflictZone() function.

Attack Zones

Attack zones are zones that usually lie within the enemy territory. They are only enganged with an agressive strategy. They can be set via the CHIEF.SetAttackZones() function as a set or added zone by zone via the CHIEF.AddAttackZone() function.

Defense Condition

The defence condition (DEFCON) depends on enemy activity detected in the different zone types and is set automatically.

  • CHIEF.Defcon.GREEN: No enemy activities detected.
  • CHIEF.Defcon.YELLOW: Enemy activity detected in conflict zones.
  • CHIEF.Defcon.RED: Enemy activity detected in border zones.

The current DEFCON can be retrieved with the @(#CHIEF.GetDefcon)() function.

When the DEFCON changed, an FSM event CHIEF.DefconChange is triggered. Mission designers can hook into this event via the CHIEF.OnAfterDefconChange() function:

--- Function called when the DEFCON changes.
function myChief:OnAfterDefconChange(From, Event, To, Defcon)
  local text=string.format("Changed DEFCON to %s", Defcon)
  MESSAGE:New(text, 120):ToAll()    
end

Strategy

The strategy of the chief determines, in which areas targets are engaged automatically.

  • CHIEF.Strategy.PASSIVE: Chief is completely passive. No targets at all are engaged automatically.
  • CHIEF.Strategy.DEFENSIVE: Chief acts defensively. Only targets in his own territory are engaged.
  • CHIEF.Strategy.OFFENSIVE: Chief behaves offensively. Targets in his own territory and in conflict zones are enganged.
  • CHIEF.Strategy.AGGRESSIVE: Chief is aggressive. Targets in his own territory, in conflict zones and in attack zones are enganged.
  • CHIEF.Strategy.TOTALWAR: Anything anywhere is enganged.

The strategy can be set by the @(#CHIEF.SetStrategy)() and retrieved with the @(#CHIEF.GetStrategy)() function.

When the strategy is changed, the FSM event CHIEF.StrategyChange is triggered and customized code can be added to the CHIEF.OnAfterStrategyChange() function:

--- Function called when the STRATEGY changes.
function myChief:OnAfterStrategyChange(From, Event, To, Strategy)
  local text=string.format("Strategy changd to %s", Strategy)
  MESSAGE:New(text, 120):ToAll()
end

Resources

A chief needs resources such as air, ground and naval assets. These can be added in form of AIRWINGs, BRIGADEs and FLEETs.

Whenever the chief detects a target or receives a mission, he will select the best available assets and assign them to the mission. The best assets are determined by their mission performance, payload performance (in case of air), distance to the target, skill level, etc.

Adding Airwings

Airwings can be added via the CHIEF.AddAirwing() function.

Adding Brigades

Brigades can be added via the CHIEF.AddBrigade() function.

Adding Fleets

Fleets can be added via the CHIEF.AddFleet() function.

Response on Target

When the chief detects a valid target, he will launch a certain number of selected assets. Only whole groups from SQUADRONs, PLATOONs or FLOTILLAs can be selected. In other words, it is not possible to specify the abount of individual units.

By default, one group is selected for any detected target. This can, however, be customized with the CHIEF.SetResponseOnTarget() function. The number of min and max asset groups can be specified depending on threatlevel, category, mission type, number of units, defcon and strategy.

For example:

-- One group for aircraft targets of threat level 0 or higher.
myChief:SetResponseOnTarget(1, 1, 0, TARGET.Category.AIRCRAFT)
-- At least one and up to two groups for aircraft targets of threat level 8 or higher. This will overrule the previous response!
myChief:SetResponseOnTarget(1, 2, 8, TARGET.Category.AIRCRAFT)

-- At least one and up to three groups for ground targets of threat level 0 or higher if current strategy is aggressive.  
myChief:SetResponseOnTarget(1, 1, 0, TARGET.Category.GROUND, nil ,nil, nil, CHIEF.Strategy.DEFENSIVE)

-- One group for BAI missions if current defcon is green.
myChief:SetResponseOnTarget(1, 1, 0, nil, AUFTRAG.Type.BAI, nil, CHIEF.DEFCON.GREEN)

-- At least one and up to four groups for BAI missions if current defcon is red.
myChief:SetResponseOnTarget(1, 2, 0, nil, AUFTRAG.Type.BAI, nil, CHIEF.DEFCON.YELLOW)

-- At least one and up to four groups for BAI missions if current defcon is red.
myChief:SetResponseOnTarget(1, 3, 0, nil, AUFTRAG.Type.BAI, nil, CHIEF.DEFCON.RED)

Strategic (Capture) Zones

Strategically important zones, which should be captured can be added via the CHIEF.AddStrategicZone(OpsZone, Prio, Importance) function. The first parameter OpsZone is an Ops.OpsZone#OPSZONE specifying the zone. This has to be a circular zone due to DCS API restrictions. The second parameter Prio is the priority. The zone queue is sorted wrt to lower prio values. By default this is set to 50. The third parameter Importance is the importance of the zone. By default this is nil. If you specify one zone with importance 2 and a second zone with importance 3, then the zone of importance 2 is attacked first and only if that zone has been captured, zones that have importances with higher values are attacked.

For example:

local myStratZone=myChief:AddStrategicZone(myOpsZone, nil , 2)

Will at a strategic zone with importance 2.

If the zone is currently owned by another coalition and enemy ground troops are present in the zone, a CAS and an ARTY mission are launched:

  • A mission of type AUFTRAG.Type.CASENHANCED is started if assets are available that can carry out this mission type.
  • A mission of type AUFTRAG.Type.ARTY is started provided assets are available.

The CAS flight(s) will patrol the zone randomly and take out enemy ground units they detect. It can always be possible that the enemies cannot be detected however. The assets will shell the zone. However, it is unlikely that they hit anything as they do not have any information about the location of the enemies.

Once the zone is cleaned of enemy forces, ground troops are send there. By default, two missions are launched:

  • First mission is of type AUFTRAG.Type.ONGUARD and will send infantry groups. These are transported by helicopters. Therefore, helo assets with AUFTRAG.Type.OPSTRANSPORT need to be available.
  • The second mission is also of type AUFTRAG.Type.ONGUARD but will send tanks if these are available.

Customized Reaction

The default mission types and number of assets can be customized for the two scenarious (zone empty or zone occupied by the enemy).

In order to do this, you need to create resource lists (one for each scenario) via the CHIEF.CreateResource() function. These lists can than passed as additional parameters to the CHIEF.AddStrategicZone function.

For example:

--- Create a resource list of mission types and required assets for the case that the zone is OCCUPIED.
--
-- Here, we create an enhanced CAS mission and employ at least on and at most two asset groups.
-- NOTE that two objects are returned, the resource list (ResourceOccupied) and the first resource of that list (resourceCAS).
local ResourceOccupied, resourceCAS=myChief:CreateResource(AUFTRAG.Type.CASENHANCED, 1, 2)
-- We also add ARTY missions with at least one and at most two assets. We additionally require these to be MLRS groups (and not howitzers).
myChief:AddToResource(ResourceOccupied, AUFTRAG.Type.ARTY, 1, 2, nil, "MLRS")
-- Add at least one RECON mission that uses UAV type assets.
myChief:AddToResource(ResourceOccupied, AUFTRAG.Type.RECON, 1, nil, GROUP.Attribute.AIR_UAV)
-- Add at least one but at most two BOMBCARPET missions.
myChief:AddToResource(ResourceOccupied, AUFTRAG.Type.BOMBCARPET, 1, 2)

--- Create a resource list of mission types and required assets for the case that the zone is EMPTY.
-- NOTE that two objects are returned, the resource list (ResourceEmpty) and the first resource of that list (resourceInf).
-- Here, we create an ONGUARD mission and employ at least on and at most five infantry assets.
local ResourceEmpty, resourceInf=myChief:CreateResource(AUFTRAG.Type.ONGUARD, 1, 5, GROUP.Attribute.GROUND_INFANTRY)
-- Additionally, we send up to three tank groups.
myChief:AddToResource(ResourceEmpty, AUFTRAG.Type.ONGUARD, 1, 3, GROUP.Attribute.GROUND_TANK)
-- Finally, we send two groups that patrol the zone.
myChief:AddToResource(ResourceEmpty, AUFTRAG.Type.PATROLZONE, 2)

-- Add a transport to the infantry resource. We want at least one and up to two transport helicopters.
myChief:AddTransportToResource(resourceInf, 1, 2, GROUP.Attribute.AIR_TRANSPORTHELO)

-- Add stratetic zone with customized reaction.
myChief:AddStrategicZone(myOpsZone, nil , 2, ResourceOccupied, ResourceEmpty)

As the location of the enemies is not known, only mission types that don't require an explicit target group are possible. These are

  • AUFTRAG.Type.CASENHANCED
  • AUFTRAG.Type.ARTY
  • AUFTRAG.Type.PATROLZONE
  • AUFTRAG.Type.ONGUARD
  • AUFTRAG.Type.CAPTUREZONE
  • AUFTRAG.Type.RECON
  • AUFTRAG.Type.AMMOSUPPLY
  • AUFTRAG.Type.BOMBING
  • AUFTRAG.Type.BOMBCARPET
  • AUFTRAG.Type.BARRAGE

Events

Whenever a strategic zone is captured by us the FSM event CHIEF.ZoneCaptured is triggered and customized further actions can be executed with the CHIEF.OnAfterZoneCaptured() function.

Whenever a strategic zone is lost (captured by the enemy), the FSM event CHIEF.ZoneLost is triggered and customized further actions can be executed with the CHIEF.OnAfterZoneLost() function.

Further events are

Note that the ownership of a zone is determined via zone scans, i.e. not via the detection network. In other words, there is an all knowing eye. Think of it as the local population providing the intel. It's not totally realistic but the best compromise within the limits of DCS.

Type(s)

CHIEF , extends Ops.Intel#INTEL , extends Core.Fsm#FSM
Fields and Methods inherited from CHIEF Description

CHIEF:AddAirwing(Airwing)

Add an AIRWING to the chief's commander.

CHIEF:AddAttackZone(Zone)

Add an attack zone.

CHIEF:AddAwacsZone(Zone, Altitude, Speed, Heading, Leg)

Add an AWACS zone.

CHIEF:AddBorderZone(Zone)

Add a zone defining your territory.

CHIEF:AddBrigade(Brigade)

Add a BRIGADE to the chief's commander.

CHIEF:AddCapZone(Zone, Altitude, Speed, Heading, Leg)

Add a CAP zone.

CHIEF:AddConflictZone(Zone)

Add a conflict zone.

CHIEF:AddFleet(Fleet)

Add a FLEET to the chief's commander.

CHIEF:AddGciCapZone(Zone, Altitude, Speed, Heading, Leg)

Add a GCI CAP.

CHIEF:AddLegion(Legion)

Add a LEGION to the chief's commander.

CHIEF:AddMission(Mission)

Add mission to mission queue of the COMMANDER.

CHIEF:AddOpsTransport(Transport)

Add transport to transport queue of the COMMANDER.

CHIEF:AddRearmingZone(RearmingZone)

Add a rearming zone.

CHIEF:AddRefuellingZone(RefuellingZone)

Add a refuelling zone.

CHIEF:AddStrategicZone(OpsZone, Priority, Importance, ResourceOccupied, ResourceEmpty)

Add strategically important zone.

CHIEF:AddTankerZone(Zone, Altitude, Speed, Heading, Leg, RefuelSystem)

Add a refuelling tanker zone.

CHIEF:AddTarget(Target)

Add target.

CHIEF:AddToResource(Resource, MissionType, Nmin, Nmax, Attributes, Properties, Categories)

Add mission type and number of required assets to resource list.

CHIEF:AddTransportToResource(Resource, Nmin, Nmax, CarrierAttributes, CarrierProperties, CarrierCategories)

Define which assets will be transported and define the number and attributes/properties of the cargo carrier assets.

CHIEF:AllowGroundTransport()

Allow chief to use GROUND units for transport tasks.

CHIEF:CheckGroupInAttack(group)

Check if group is in a attack zone.

CHIEF:CheckGroupInBorder(group)

Check if group is inside our border.

CHIEF:CheckGroupInConflict(group)

Check if group is in a conflict zone.

CHIEF:CheckGroupInZones(group, zoneset)

Check if group is inside a zone.

CHIEF:CheckOpsZoneQueue()

Check strategic zone queue.

CHIEF:CheckTargetInZones(target, zoneset)

Check if group is inside a zone.

CHIEF:CheckTargetQueue()

Check target queue and assign ONE valid target by adding it to the mission queue of the COMMANDER.

CHIEF.ClassName

Name of the class.

CHIEF:CreateResource(MissionType, Nmin, Nmax, Attributes, Properties, Categories)

Create a new resource list of required assets.

CHIEF.DEFCON

CHIEF.Defcon

Defence condition.

CHIEF:DefconChange(Defcon)

Triggers the FSM event "DefconChange".

CHIEF:DeleteFromResource(Resource, MissionType)

Delete mission type from resource list.

CHIEF:ForbidGroundTransport()

Forbid chief to use GROUND units for transport tasks.

CHIEF:GetCommander()

Get the commander.

CHIEF:GetDefcon(Current, Defcon)

Get defence condition.

CHIEF:GetMissionLimit(MissionType)

Get mission limit.

CHIEF:GetStrategicZoneResourceEmpty(StrategicZone)

Get the resource list of missions and assets employed when the zone is empty.

CHIEF:GetStrategicZoneResourceOccupied(StrategicZone)

Get the resource list of missions and assets employed when the zone is occupied by the enemy.

CHIEF:GetStrategy()

Get current strategy.

CHIEF:IsAgressive()

Check if current strategy is aggressive.

CHIEF:IsDefensive()

Check if current strategy is defensive.

CHIEF:IsOffensive()

Check if current strategy is offensive.

CHIEF:IsPassive()

Check if current strategy is passive.

CHIEF:IsTarget(Target)

Check if a TARGET is already in the queue.

CHIEF:IsTotalWar()

Check if current strategy is total war.

CHIEF:LegionLost(Legion, Coalition, Country)

Triggers the FSM event "LegionLost".

CHIEF:MissionAssign(Mission, Legions)

Triggers the FSM event "MissionAssign".

CHIEF:MissionCancel(Mission)

Triggers the FSM event "MissionCancel".

CHIEF.Nattack

CHIEF.Nborder

CHIEF.Nconflict

CHIEF:New(Coalition, AgentSet, Alias)

Create a new CHIEF object and start the FSM.

CHIEF.Nfailure

Number of failed mission.

CHIEF.Nsuccess

Number of successful missions.

CHIEF:OnAfterDefconChange(From, Event, To, Defcon)

On after "DefconChange" event.

CHIEF:OnAfterLegionLost(From, Event, To, Legion, Coalition, Country)

On after "LegionLost" event.

CHIEF:OnAfterMissionAssign(From, Event, To, Mission, Legions)

On after "MissionAssign" event.

CHIEF:OnAfterMissionCancel(From, Event, To, Mission)

On after "MissionCancel" event.

CHIEF:OnAfterOpsOnMission(From, Event, To, OpsGroup, Mission)

On after "OpsOnMission" event.

CHIEF:OnAfterStrategyChange(From, Event, To, Strategy)

On after "StrategyChange" event.

CHIEF:OnAfterTransportCancel(From, Event, To, Transport)

On after "TransportCancel" event.

CHIEF:OnAfterZoneAttacked(From, Event, To, OpsZone)

On after "ZoneAttacked" event.

CHIEF:OnAfterZoneCaptured(From, Event, To, OpsZone)

On after "ZoneCaptured" event.

CHIEF:OnAfterZoneEmpty(From, Event, To, OpsZone)

On after "ZoneEmpty" event.

CHIEF:OnAfterZoneLost(From, Event, To, OpsZone)

On after "ZoneLost" event.

CHIEF:OpsOnMission(OpsGroup, Mission)

Triggers the FSM event "OpsOnMission".

CHIEF:RecruitAssetsForZone(StratZone, Resource)

Recruit assets for a given OPS zone.

CHIEF:RemoveAttackZone(Zone)

Remove an attack zone.

CHIEF:RemoveAwacsZone(Zone)

Remove a AWACS zone.

CHIEF:RemoveBorderZone(Zone)

Remove a border zone defining your territory.

CHIEF:RemoveConflictZone(Zone)

Remove a conflict zone.

CHIEF:RemoveGciCapZone(Zone)

Remove a GCI CAP

CHIEF:RemoveLegion(Legion)

Remove a LEGION to the chief's commander.

CHIEF:RemoveMission(Mission)

Remove mission from queue.

CHIEF:RemoveStrategicZone(OpsZone, Delay)

Remove strategically important zone.

CHIEF:RemoveTankerZone(Zone)

Remove a refuelling tanker zone.

CHIEF:RemoveTarget(Target)

Remove target from queue.

CHIEF:RemoveTransport(Transport)

Remove transport from queue.

CHIEF:SetAirToAir()

Set this to be an air-to-air dispatcher.

CHIEF:SetAirToAny()

Set this to be an air-to-any dispatcher, i.e.

CHIEF:SetAirToGround()

Set this to be an air-to-ground dispatcher, i.e.

CHIEF:SetAirToSea()

Set this to be an air-to-sea dispatcher, i.e.

CHIEF:SetAirToSurface()

Set this to be an air-to-surface dispatcher, i.e.

CHIEF:SetAttackZones(ZoneSet)

Set attack zone set.

CHIEF:SetBorderZones(BorderZoneSet)

Set border zone set, defining your territory.

CHIEF:SetConflictZones(ZoneSet)

Set conflict zone set.

CHIEF:SetDefcon(Defcon)

Set defence condition.

CHIEF:SetLimitMission(Limit, MissionType)

Set limit for number of total or specific missions to be executed simultaniously.

CHIEF:SetResponseOnTarget(NassetsMin, NassetsMax, ThreatLevel, TargetCategory, MissionType, Nunits, Defcon, Strategy)

Set number of assets requested for detected targets.

CHIEF:SetStrategicZoneResourceEmpty(StrategicZone, Resource, NoCopy)

Set the resource list of missions and assets employed when the zone is empty.

CHIEF:SetStrategicZoneResourceOccupied(StrategicZone, Resource, NoCopy)

Set the resource list of missions and assets employed when the zone is occupied by the enemy.

CHIEF:SetStrategy(Strategy)

Set strategy.

CHIEF:SetTacticalOverviewOff()

Set tactical overview off.

CHIEF:SetTacticalOverviewOn()

Set tactical overview on.

CHIEF:SetThreatLevelRange(ThreatLevelMin, ThreatLevelMax)

Set a threat level range that will be engaged.

CHIEF:Start()

Triggers the FSM event "Start".

CHIEF:Status()

Triggers the FSM event "Status".

CHIEF.Strategy

CHIEF:StrategyChange(Strategy)

Triggers the FSM event "StrategyChange".

CHIEF:TransportCancel(Transport)

Triggers the FSM event "TransportCancel".

CHIEF.TransportCategories

CHIEF:ZoneAttacked(OpsZone)

Triggers the FSM event "ZoneAttacked".

CHIEF:ZoneCaptured(OpsZone)

Triggers the FSM event "ZoneCaptured".

CHIEF:ZoneEmpty(OpsZone)

Triggers the FSM event "ZoneEmpty".

CHIEF:ZoneLost(OpsZone)

Triggers the FSM event "ZoneLost".

CHIEF._CheckAssetAttributes(Asset, Attributes)

Check if a given asset has certain attribute(s).

CHIEF._CheckAssetCategories(Asset, Categories)

Check if a given asset has certain categories.

CHIEF._CheckAssetProperties(Asset, Categories, Properties)

Check if a given asset has certain properties.

CHIEF:_CheckMissionLimit(MissionType)

Check if limit of missions has been reached.

CHIEF:_CreateMissionPerformance(MissionType, Performance)

Create a mission performance table.

CHIEF._FilterAssets(Assets, Categories, Attributes, Properties)

Filter assets, which have certain categories, attributes and/or properties.

CHIEF:_GetAssetsForTarget(Target, MissionType)

Add mission type and number of required assets to resource.

CHIEF:_GetMissionPerformanceFromTarget(Target)

Get mission performance for a given TARGET.

CHIEF:_GetMissionTypeForGroupAttribute(Attribute)

Get mission performances for a given Group Attribute.

CHIEF:_TacticalOverview()

Display tactical overview.

CHIEF:__DefconChange(delay, Defcon)

Triggers the FSM event "DefconChange" after a delay.

CHIEF:__LegionLost(delay, Legion, Coalition, Country)

Triggers the FSM event "LegionLost".

CHIEF:__MissionAssign(delay, Mission, Legions)

Triggers the FSM event "MissionAssign" after a delay.

CHIEF:__MissionCancel(delay, Mission)

Triggers the FSM event "MissionCancel" after a delay.

CHIEF:__OpsOnMission(delay, OpsGroup, Mission)

Triggers the FSM event "OpsOnMission" after a delay.

CHIEF:__Start(delay)

Triggers the FSM event "Start" after a delay.

CHIEF:__Status(delay)

Triggers the FSM event "Status" after a delay.

CHIEF:__Stop(delay)

Triggers the FSM event "Stop" after a delay.

CHIEF:__StrategyChange(delay, Strategy)

Triggers the FSM event "StrategyChange" after a delay.

CHIEF:__TransportCancel(delay, Transport)

Triggers the FSM event "TransportCancel" after a delay.

CHIEF:__ZoneAttacked(delay, OpsZone)

Triggers the FSM event "ZoneAttacked" after a delay.

CHIEF:__ZoneCaptured(delay, OpsZone)

Triggers the FSM event "ZoneCaptured" after a delay.

CHIEF:__ZoneEmpty(delay, OpsZone)

Triggers the FSM event "ZoneEmpty" after a delay.

CHIEF:__ZoneLost(delay, OpsZone)

Triggers the FSM event "ZoneLost" after a delay.

CHIEF.assetNumbers

Asset numbers. Each entry is a table of data type #CHIEF.AssetNumber.

CHIEF.borderzoneset

Set of zones defining the border of our territory.

CHIEF.commander

Commander of assigned legions.

CHIEF.engagezoneset

Set of zones where enemies are actively engaged.

CHIEF.lid

Class id string for output to DCS log file.

CHIEF:onafterDefconChange(From, Event, To, Defcon)

On after "DefconChange" event.

CHIEF:onafterMissionAssign(From, Event, To, Mission, Legions)

On after "MissionAssignToAny" event.

CHIEF:onafterMissionCancel(From, Event, To, Mission)

On after "MissionCancel" event.

CHIEF:onafterOpsOnMission(From, Event, To, OpsGroup, Mission)

On after "OpsOnMission".

CHIEF:onafterStart(Group, From, Event, To)

On after Start event.

CHIEF:onafterStatus(Group, From, Event, To)

On after "Status" event.

CHIEF:onafterStrategyChange(From, Event, To, Strategy)

On after "StrategyChange" event.

CHIEF:onafterTransportCancel(From, Event, To, Transport)

On after "TransportCancel" event.

CHIEF:onafterZoneAttacked(From, Event, To, OpsZone)

On after "ZoneAttacked".

CHIEF:onafterZoneCaptured(From, Event, To, OpsZone)

On after "ZoneCaptured".

CHIEF:onafterZoneEmpty(From, Event, To, OpsZone)

On after "ZoneEmpty".

CHIEF:onafterZoneLost(From, Event, To, OpsZone)

On after "ZoneLost".

CHIEF.strategy

Strategy of the CHIEF.

CHIEF.tacview

CHIEF.targetqueue

Target queue.

CHIEF.threatLevelMax

Highest threat level of targets to attack.

CHIEF.threatLevelMin

Lowest threat level of targets to attack.

CHIEF.verbose

Verbosity level.

CHIEF.version

CHIEF class version.

CHIEF.yellowzoneset

Set of zones defining the extended border. Defcon is set to YELLOW if enemy activity is detected.

CHIEF.zonequeue

Strategic zone queue.

Fields and Methods inherited from INTEL Description

CHIEF:AddAcceptZone(AcceptZone)

Add an accept zone.

CHIEF:AddAgent(AgentGroup)

Add a group to the detection set.

CHIEF:AddConflictZone(ConflictZone)

Add a conflict zone.

CHIEF:AddContact(Contact)

Add a contact to our list.

CHIEF:AddContactToCluster(contact, cluster)

Add a contact to the cluster.

CHIEF:AddMissionToCluster(Cluster, Mission)

Add a Mission (Auftrag) to a cluster for tracking.

CHIEF:AddMissionToContact(Contact, Mission)

Add a Mission (Auftrag) to a contact for tracking.

CHIEF:AddRejectZone(RejectZone)

Add a reject zone.

CHIEF:CalcClusterDirection(cluster)

Calculate cluster heading.

CHIEF:CalcClusterFuturePosition(cluster, seconds)

Calculate cluster future position after given seconds.

CHIEF:CalcClusterSpeed(cluster)

Calculate cluster speed.

CHIEF:CalcClusterThreatlevelAverage(cluster)

Calculate cluster threat level average.

CHIEF:CalcClusterThreatlevelMax(cluster)

Calculate max cluster threat level.

CHIEF:CalcClusterThreatlevelSum(cluster)

Calculate cluster threat level sum.

CHIEF:CalcClusterVelocityVec3(cluster)

Calculate cluster velocity vector.

CHIEF:CheckContactInClusters(contact)

Check if contact is in any known cluster.

CHIEF.ClassName

Name of the class.

CHIEF:ClusterCountUnits(Cluster)

Count number of alive units in cluster.

CHIEF.Clusters

Clusters of detected groups.

CHIEF:ContactCountUnits(Contact)

Count number of alive units in contact.

CHIEF.Contacts

Table of detected items.

CHIEF.ContactsLost

Table of lost detected items.

CHIEF.ContactsUnknown

Table of new detected items.

CHIEF:CreateDetectedItems(DetectedGroups, DetectedStatics, RecceDetecting)

Create detected items.

CHIEF.Ctype

CHIEF.DetectDLINK

CHIEF.DetectIRST

CHIEF.DetectOptical

CHIEF.DetectRWR

CHIEF.DetectRadar

CHIEF.DetectVisual

CHIEF:FilterCategoryGroup(GroupCategories)

Filter group categories.

CHIEF:GetClusterAltitude(Cluster, Update)

Get the altitude of a cluster.

CHIEF:GetClusterCoordinate(Cluster, Update)

Get the coordinate of a cluster.

CHIEF:GetClusterOfContact(contact)

Get the cluster this contact belongs to (if any).

CHIEF:GetClusterTable()

Get table of #INTEL.Cluster objects

CHIEF:GetContactByName(groupname)

Get a contact by name.

CHIEF:GetContactCategoryName(Contact)

Get category name of a contact.

CHIEF:GetContactCoordinate(Contact)

Get coordinate of a contact.

CHIEF:GetContactGroup(Contact)

Get group of a contact.

CHIEF:GetContactName(Contact)

Get name of a contact.

CHIEF:GetContactTable()

Get table of #INTEL.Contact objects

CHIEF:GetContactThreatlevel(Contact)

Get threatlevel of a contact.

CHIEF:GetContactTypeName(Contact)

Get type name of a contact.

CHIEF:GetDetectedUnits(Unit, DetectedUnits, RecceDetecting, DetectVisual, DetectOptical, DetectRadar, DetectIRST, DetectRWR, DetectDLINK)

(Internal) Return the detected target groups of the controllable as a Core.Set#SET_GROUP.

CHIEF:GetHighestThreatContact(Cluster)

Get the contact with the highest threat level from the cluster.

CHIEF:IsContactConnectedToCluster(contact, cluster)

Check if contact is close to any other contact this cluster.

CHIEF:IsContactPartOfAnyClusters(contact)

Check if contact is close to any contact of known clusters.

CHIEF:KnowObject(Positionable, RecceName, Tdetected)

Make the INTEL aware of a object that was not detected (yet).

CHIEF:LostCluster(delay, Cluster, Mission)

Triggers the FSM event "LostCluster" after a delay.

CHIEF:LostContact(delay, Contact)

Triggers the FSM event "LostContact" after a delay.

CHIEF:New(DetectionSet, Coalition, Alias)

Create a new INTEL object and start the FSM.

CHIEF:NewCluster(delay, Cluster)

Triggers the FSM event "NewCluster" after a delay.

CHIEF:NewContact(delay, Contact)

Triggers the FSM event "NewContact" after a delay.

CHIEF:OnAfterLostCluster(From, Event, To, Cluster, Mission)

On After "LostCluster" event.

CHIEF:OnAfterLostContact(From, Event, To, Contact)

On After "LostContact" event.

CHIEF:OnAfterNewCluster(From, Event, To, Cluster)

On After "NewCluster" event.

CHIEF:OnAfterNewContact(From, Event, To, Contact)

On After "NewContact" event.

CHIEF:PaintPicture()

[Internal] Paint picture of the battle field.

CHIEF.RadarAcceptRange

CHIEF.RadarAcceptRangeKilometers

CHIEF.RadarBlur

CHIEF.RadarBlurClosing

CHIEF.RadarBlurClosingSquare

CHIEF.RadarBlurMinHeight

CHIEF.RadarBlurThresBlur

CHIEF.RadarBlurThresHeight

CHIEF:RemoveAcceptZone(AcceptZone)

Remove an accept zone from the accept zone set.

CHIEF:RemoveConflictZone(ConflictZone)

Remove a conflict zone from the conflict zone set.

CHIEF:RemoveContact(Contact)

Remove a contact from our list.

CHIEF:RemoveContactFromCluster(contact, cluster)

Remove a contact from a cluster.

CHIEF:RemoveRejectZone(RejectZone)

Remove a reject zone from the reject zone set.

CHIEF:SetAcceptRange(Range)

Set the accept range in kilometers from each of the recce.

CHIEF:SetAcceptZones(AcceptZoneSet)

Set accept zones.

CHIEF:SetClusterAnalysis(Switch, Markers, Arrows)

Enable or disable cluster analysis of detected targets.

CHIEF:SetClusterRadius(radius)

Change radius of the Clusters.

CHIEF:SetConflictZones(ConflictZoneSet)

Set conflict zones.

CHIEF:SetDetectStatics(Switch)

Set whether STATIC objects are detected.

CHIEF:SetDetectionTypes(DetectVisual, DetectOptical, DetectRadar, DetectIRST, DetectRWR, DetectDLINK)

Set detection types for this #INTEL - all default to true.

CHIEF:SetFilterCategory(Categories)

Filter unit categories.

CHIEF:SetForgetTime(TimeInterval)

OBSOLETE, will be removed in next version! Set forget contacts time interval.

CHIEF:SetRadarBlur(minheight, thresheight, thresblur, closing)

Method to make the radar detection less accurate, e.g.

CHIEF:SetRejectZones(RejectZoneSet)

Set reject zones.

CHIEF:SetVerbosity(Verbosity)

Set verbosity level for debugging.

CHIEF:Start()

Triggers the FSM event "Start".

CHIEF:Status()

Triggers the FSM event "Status".

CHIEF:UpdateClusterMarker(cluster)

Update cluster F10 marker.

CHIEF:UpdateIntel()

Update detected items.

CHIEF:_AddCluster(Cluster)

Add cluster to table.

CHIEF:_CheckClusterCoordinateChanged(Cluster, Threshold, Coordinate)

Check if the coorindate of the cluster changed.

CHIEF:_CheckContactLost(Contact)

Check if a contact was lost.

CHIEF:_CreateCluster()

Create a new cluster.

CHIEF:_CreateClusterFromContact(Contact)

Create a new cluster from a first contact.

CHIEF:_CreateContact(Positionable, RecceName)

Create an #INTEL.Contact item from a given GROUP or STATIC object.

CHIEF:_GetClosestClusterOfContact(Contact)

Get closest cluster of contact.

CHIEF:_GetDistContactToCluster(Contact, Cluster)

Get distance to cluster.

CHIEF:_IsContactKnown(Contact)

Check if a Contact is already known.

CHIEF:_UpdateClusterPositions()

Update coordinates of the known clusters.

CHIEF:_UpdateContact(Contact)

Update an #INTEL.Contact item.

CHIEF:__Start(delay)

Triggers the FSM event "Start" after a delay.

CHIEF:__Status(delay)

Triggers the FSM event "Status" after a delay.

CHIEF:__Stop(delay)

Triggers the FSM event "Stop" after a delay.

CHIEF.acceptzoneset

Set of accept zones. If defined, only contacts in these zones are considered.

CHIEF.alias

Name of the agency.

CHIEF.clusteranalysis

If true, create clusters of detected targets.

CHIEF.clusterarrows

CHIEF.clustercounter

Running number of clusters.

CHIEF.clustermarkers

If true, create cluster markers on F10 map.

CHIEF.clusterradius

Radius in meters in which groups/units are considered to belong to a cluster.

CHIEF.coalition

Coalition side number, e.g. coalition.side.RED.

CHIEF.conflictzoneset

Set of conflict zones. Contacts in these zones are considered, even if they are not in accept zones or if they are in reject zones.

CHIEF.dTforget

Time interval in seconds before a known contact which is not detected any more is forgotten.

CHIEF.detectStatics

If true, detect STATIC objects. Default false.

CHIEF.detectionset

Set of detection groups, aka agents.

CHIEF.filterCategory

Filter for unit categories.

CHIEF.filterCategoryGroup

Filter for group categories.

CHIEF.lid

Class id string for output to DCS log file.

CHIEF:onafterLostCluster(From, Event, To, Cluster, Mission)

On after "LostCluster" event.

CHIEF:onafterLostContact(From, Event, To, Contact)

On after "LostContact" event.

CHIEF:onafterNewCluster(From, Event, To, Cluster)

On after "NewCluster" event.

CHIEF:onafterNewContact(From, Event, To, Contact)

On after "NewContact" event.

CHIEF:onafterStart(From, Event, To)

On after Start event.

CHIEF:onafterStatus(From, Event, To)

On after "Status" event.

CHIEF.prediction

Seconds default to be used with CalcClusterFuturePosition.

CHIEF.rejectzoneset

Set of reject zones. Contacts in these zones are not considered, even if they are in accept zones.

CHIEF.statusupdate

Time interval in seconds after which the status is refreshed. Default 60 sec. Should be negative.

CHIEF.verbose

Verbosity level.

CHIEF.version

INTEL class version.

Fields and Methods inherited from FSM Description

CHIEF:AddEndState(State)

Adds an End state.

CHIEF:AddProcess(From, Event, Process, ReturnEvents)

Set the default #FSM_PROCESS template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.

CHIEF:AddScore(State, ScoreText, Score)

Adds a score for the FSM to be achieved.

CHIEF:AddScoreProcess(From, Event, State, ScoreText, Score)

Adds a score for the FSM_PROCESS to be achieved.

CHIEF:AddTransition(From, Event, To)

Add a new transition rule to the FSM.

CHIEF.CallScheduler

CHIEF.Events

CHIEF:GetCurrentState()

Get current state.

CHIEF:GetEndStates()

Returns the End states.

CHIEF:GetProcess(From, Event)

CHIEF:GetProcesses()

Returns a table of the SubFSM rules defined within the FSM.

CHIEF:GetScores()

Returns a table with the scores defined.

CHIEF:GetStartState()

Returns the start state of the FSM.

CHIEF:GetState()

Get current state.

CHIEF:GetSubs()

Returns a table with the Subs defined.

CHIEF:GetTransitions()

Returns a table of the transition rules defined within the FSM.

CHIEF:Is(State)

Check if FSM is in state.

CHIEF:LoadCallBacks(CallBackTable)

Load call backs.

CHIEF:New()

Creates a new FSM object.

CHIEF.Scores

CHIEF:SetProcess(From, Event, Fsm)

CHIEF:SetStartState(State)

Sets the start state of the FSM.

CHIEF._EndStates

CHIEF._EventSchedules

CHIEF._Processes

CHIEF._Scores

CHIEF._StartState

CHIEF._Transitions

CHIEF:_add_to_map(Map, Event)

Add to map.

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

Call handler.

CHIEF:_create_transition(EventName)

Create transition.

CHIEF:_delayed_transition(EventName)

Delayed transition.

CHIEF:_eventmap(Events, EventStructure)

Event map.

CHIEF:_gosub(ParentFrom, ParentEvent)

Go sub.

CHIEF:_handler(EventName, ...)

Handler.

CHIEF:_isendstate(Current)

Is end state.

CHIEF:_submap(subs, sub, name)

Sub maps.

CHIEF:can(e)

Check if can do an event.

CHIEF:cannot(e)

Check if cannot do an event.

CHIEF.current

CHIEF.endstates

CHIEF:is(State, state)

Check if FSM is in state.

CHIEF.options

CHIEF.subs

Fields and Methods inherited from CHIEF.AssetNumber Description

CHIEF.AssetNumber.defcon

Defense condition.

CHIEF.AssetNumber.missionType

Mission type.

CHIEF.AssetNumber.nAssetMax

Max number of assets.

CHIEF.AssetNumber.nAssetMin

Min number of assets.

CHIEF.AssetNumber.nUnits

Number of enemy units.

CHIEF.AssetNumber.strategy

Strategy.

CHIEF.AssetNumber.targetCategory

Target category.

CHIEF.AssetNumber.threatlevel

Threat level.

Fields and Methods inherited from CHIEF.DEFCON Description

CHIEF.DEFCON.GREEN

No enemy activities detected in our terretory or conflict zones.

CHIEF.DEFCON.RED

Enemy within our border.

CHIEF.DEFCON.YELLOW

Enemy in conflict zones.

Fields and Methods inherited from CHIEF.MissionPerformance Description

CHIEF.MissionPerformance.MissionType

Mission Type.

CHIEF.MissionPerformance.Performance

Performance: a number between 0 and 100, where 100 is best performance.

Fields and Methods inherited from CHIEF.Resource Description

CHIEF.Resource.Attributes

Generalized attribute, e.g. {GROUP.Attribute.GROUND_INFANTRY}.

CHIEF.Resource.Categories

Categories Group categories.

CHIEF.Resource.MissionType

Mission type, e.g. AUFTRAG.Type.BAI.

CHIEF.Resource.Nmax

Max number of assets.

CHIEF.Resource.Nmin

Min number of assets.

CHIEF.Resource.Properties

Properties (DCS attributes), e.g. "Attack helicopters" or "Mobile AAA".

CHIEF.Resource.carrierAttributes

Generalized attribute, e.g. {GROUP.Attribute.GROUND_INFANTRY}.

CHIEF.Resource.carrierCategories

Group categories.

CHIEF.Resource.carrierNmax

Max number of assets.

CHIEF.Resource.carrierNmin

Min number of assets.

CHIEF.Resource.carrierProperties

Properties (DCS attributes), e.g. "Attack helicopters" or "Mobile AAA".

CHIEF.Resource.mission

Attached mission.

Fields and Methods inherited from CHIEF.Resources Description

CHIEF.Resources.List

of resources.

Fields and Methods inherited from CHIEF.StrategicZone Description

CHIEF.StrategicZone.importance

Importance.

CHIEF.StrategicZone.missions

Mission.

CHIEF.StrategicZone.opszone

OPS zone.

CHIEF.StrategicZone.prio

Priority.

CHIEF.StrategicZone.resourceEmpty

List of resources employed when the zone is empty.

CHIEF.StrategicZone.resourceOccup

List of resources employed when the zone is occupied by an enemy.

Fields and Methods inherited from CHIEF.Strategy Description

CHIEF.Strategy.AGGRESSIVE

Targets in own terretory, conflict zones and attack zones are engaged.

CHIEF.Strategy.DEFENSIVE

Only target in our own terretory are engaged.

CHIEF.Strategy.OFFENSIVE

Targets in own terretory and yellow zones are engaged.

CHIEF.Strategy.PASSIVE

No targets at all are engaged.

CHIEF.Strategy.TOTALWAR

Anything is engaged anywhere.

CHIEF class.

Field(s)

#string CHIEF.ClassName

Name of the class.

#string CHIEF.Defcon

Defence condition.

#number CHIEF.Nattack
#number CHIEF.Nborder

Create TARGETs for all new contacts.

#number CHIEF.Nconflict
#number CHIEF.Nfailure

Number of failed mission.

#number CHIEF.Nsuccess

Number of successful missions.

#table CHIEF.assetNumbers

Asset numbers. Each entry is a table of data type #CHIEF.AssetNumber.

Core.Set#SET_ZONE CHIEF.borderzoneset

Set of zones defining the border of our territory.

Ops.Commander#COMMANDER CHIEF.commander

Commander of assigned legions.

Core.Set#SET_ZONE CHIEF.engagezoneset

Set of zones where enemies are actively engaged.

#string CHIEF.lid

Class id string for output to DCS log file.

#string CHIEF.strategy

Strategy of the CHIEF.

#boolean CHIEF.tacview
#table CHIEF.targetqueue

Target queue.

#number CHIEF.threatLevelMax

Highest threat level of targets to attack.

#number CHIEF.threatLevelMin

Lowest threat level of targets to attack.

#number CHIEF.verbose

Verbosity level.

#string CHIEF.version

CHIEF class version.

Core.Set#SET_ZONE CHIEF.yellowzoneset

Set of zones defining the extended border. Defcon is set to YELLOW if enemy activity is detected.

#table CHIEF.zonequeue

Strategic zone queue.

Function(s)

Add an AIRWING to the chief's commander.

Defined in:

CHIEF

Parameter:

The airwing to add.

Return value:

self

Add an attack zone.

  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.AGGRESSIVE.

Defined in:

CHIEF

Parameter:

The zone to add.

Return value:

self

Add an AWACS zone.

Defined in:

CHIEF

Parameters:

Zone.

#number Altitude

Orbit altitude in feet. Default is 12,000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

Return value:

The AWACS zone data.

Add a zone defining your territory.

  • Detected enemy troops in these zones will trigger defence condition RED.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.DEFENSIVE.

Defined in:

CHIEF

Parameter:

The zone to be added.

Return value:

self

Add a BRIGADE to the chief's commander.

Defined in:

CHIEF

Parameter:

The brigade to add.

Return value:

self

Add a CAP zone.

Flights will engage detected targets inside this zone.

Defined in:

CHIEF

Parameters:

CAP Zone. Has to be a circular zone.

#number Altitude

Orbit altitude in feet. Default is 12,000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

Return value:

The CAP zone data.

Add a conflict zone.

  • Detected enemy troops in these zones will trigger defence condition YELLOW.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.OFFENSIVE.

Defined in:

CHIEF

Parameter:

The zone to be added.

Return value:

self

Add a FLEET to the chief's commander.

Defined in:

CHIEF

Parameter:

The fleet to add.

Return value:

self

Add a GCI CAP.

Defined in:

CHIEF

Parameters:

Zone, where the flight orbits.

#number Altitude

Orbit altitude in feet. Default is 12,000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

Return value:

The CAP zone data.

Add a LEGION to the chief's commander.

Defined in:

CHIEF

Parameter:

The legion to add.

Return value:

self

Add mission to mission queue of the COMMANDER.

Defined in:

CHIEF

Parameter:

Mission to be added.

Return value:

self

Add transport to transport queue of the COMMANDER.

Defined in:

CHIEF

Parameter:

Transport to be added.

Return value:

self

Add a rearming zone.

Defined in:

CHIEF

Parameter:

Core.Zone#ZONE RearmingZone

Rearming zone.

Return value:

The rearming zone data.

Add a refuelling zone.

Defined in:

CHIEF

Parameter:

Core.Zone#ZONE RefuellingZone

Refuelling zone.

Return value:

The refuelling zone data.

Add strategically important zone.

By default two resource lists are created. One for the case that the zone is empty and the other for the case that the zone is occupied.

Occupied:

  • AUFTRAG.Type.ARTY with Nmin=1, Nmax=2
  • AUFTRAG.Type.CASENHANCED with Nmin=1, Nmax=2

Empty:

  • AUFTRAG.Type.ONGURAD with Nmin=0 and Nmax=1 assets, Attribute=GROUP.Attribute.GROUND_TANK.
  • AUFTRAG.Type.ONGURAD with Nmin=0 and Nmax=1 assets, Attribute=GROUP.Attribute.GROUND_IFV.
  • AUFTRAG.Type.ONGUARD with Nmin=1 and Nmax=3 assets, Attribute=GROUP.Attribute.GROUND_INFANTRY.
  • AUFTRAG.Type.OPSTRANSPORT with Nmin=0 and Nmax=1 assets, Attribute=GROUP.Attribute.AIR_TRANSPORTHELO or GROUP.Attribute.GROUND_APC. This asset is used to transport the infantry groups.

Resources can be created with the CHIEF.CreateResource and CHIEF.AddToResource functions.

Defined in:

CHIEF

Parameters:

OPS zone object.

#number Priority

Priority. Default 50.

#number Importance

Importance. Default #nil.

#CHIEF.Resources ResourceOccupied

(Optional) Resources used then zone is occupied by the enemy.

#CHIEF.Resources ResourceEmpty

(Optional) Resources used then zone is empty.

Return value:

The strategic zone.

Add a refuelling tanker zone.

Defined in:

CHIEF

Parameters:

Zone.

#number Altitude

Orbit altitude in feet. Default is 12,000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

#number RefuelSystem

Refuelling system.

Return value:

The tanker zone data.

Add target.

Defined in:

CHIEF

Parameter:

Target object to be added.

Return value:

self

Add mission type and number of required assets to resource list.

Defined in:

CHIEF

Parameters:

#CHIEF.Resources Resource

List of resources.

#string MissionType

Mission Type.

#number Nmin

Min number of required assets. Default 1.

#number Nmax

Max number of requried assets. Default equal Nmin.

#table Attributes

Generalized attribute(s).

#table Properties

DCS attribute(s). Default nil.

#table Categories

Group categories.

Return value:

Resource table.

Define which assets will be transported and define the number and attributes/properties of the cargo carrier assets.

Defined in:

CHIEF

Parameters:

#CHIEF.Resource Resource

Resource table.

#number Nmin

Min number of required assets. Default 1.

#number Nmax

Max number of requried assets. Default is equal to Nmin.

#table CarrierAttributes

Generalized attribute(s) of the carrier assets.

#table CarrierProperties

DCS attribute(s) of the carrier assets.

#table CarrierCategories

Group categories of the carrier assets.

Return value:

self

Allow chief to use GROUND units for transport tasks.

Helicopters are still preferred, and be aware there's no check as of now if a destination can be reached on land.

Defined in:

CHIEF

Return value:

self

Check if group is in a attack zone.

Defined in:

CHIEF

Parameter:

The group.

Return value:

#boolean:

If true, group is in any attack zone.

Check if group is inside our border.

Defined in:

CHIEF

Parameter:

The group.

Return value:

#boolean:

If true, group is in any border zone.

Check if group is in a conflict zone.

Defined in:

CHIEF

Parameter:

The group.

Return value:

#boolean:

If true, group is in any conflict zone.

Check if group is inside a zone.

Defined in:

CHIEF

Parameters:

The group.

Set of zones.

Return value:

#boolean:

If true, group is in any zone.

Check strategic zone queue.

Defined in:

CHIEF

Check if group is inside a zone.

Defined in:

CHIEF

Parameters:

The target.

Set of zones.

Return value:

#boolean:

If true, group is in any zone.

Check target queue and assign ONE valid target by adding it to the mission queue of the COMMANDER.

Defined in:

CHIEF

Create a new resource list of required assets.

Defined in:

CHIEF

Parameters:

#string MissionType

The mission type.

#number Nmin

Min number of required assets. Default 1.

#number Nmax

Max number of requried assets. Default 1.

#table Attributes

Generalized attribute(s). Default nil.

#table Properties

DCS attribute(s). Default nil.

#table Categories

Group categories.

Return values:

The newly created resource list table.

The resource object that was added.

Triggers the FSM event "DefconChange".

Defined in:

CHIEF

Parameter:

#string Defcon

New Defence Condition.

Delete mission type from resource list.

All running missions are cancelled.

Defined in:

CHIEF

Parameters:

#table Resource

Resource table.

#string MissionType

Mission Type.

Return value:

self

Forbid chief to use GROUND units for transport tasks.

Restrict to Helicopters. This is the default

Defined in:

CHIEF

Return value:

self

Get the commander.

Defined in:

CHIEF

Return value:

The commander.

Get defence condition.

Defined in:

CHIEF

Parameters:

#string Current

Defence condition. See CHIEF.DEFCON, e.g. CHIEF.DEFCON.RED.

Defcon

Get mission limit.

Defined in:

CHIEF

Parameter:

#string MissionType

Type of mission.

Return value:

#number:

Limit. Unlimited mission types are returned as 999.

Get the resource list of missions and assets employed when the zone is empty.

Defined in:

CHIEF

Parameter:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

Return value:

Resource list of missions and assets.

Get the resource list of missions and assets employed when the zone is occupied by the enemy.

Defined in:

CHIEF

Parameter:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

Return value:

Resource list of missions and assets.

Get current strategy.

Defined in:

CHIEF

Return value:

#string:

Strategy.

Check if current strategy is aggressive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is agressive.

Check if current strategy is defensive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is defensive.

Check if current strategy is offensive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is offensive.

Check if current strategy is passive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is passive.

Check if a TARGET is already in the queue.

Defined in:

CHIEF

Parameter:

Target object to be added.

Return value:

#boolean:

If true, target exists in the target queue.

Check if current strategy is total war.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is total war.

Triggers the FSM event "LegionLost".

Defined in:

CHIEF

Parameters:

The legion that was lost.

DCS#coalition.side Coalition

which captured the warehouse.

DCS#country.id Country

which has captured the warehouse.

Triggers the FSM event "MissionAssign".

Defined in:

CHIEF

Parameters:

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

Triggers the FSM event "MissionCancel".

Defined in:

CHIEF

Parameter:

The mission.

Create a new CHIEF object and start the FSM.

Defined in:

CHIEF

Parameters:

#number Coalition

Coalition side, e.g. coaliton.side.BLUE. Can also be passed as a string "red", "blue" or "neutral".

Set of agents (groups) providing intel. Default is an empty set.

#string Alias

An optional alias how this object is called in the logs etc.

Return value:

self

On after "DefconChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Defcon

New Defence Condition.

On after "LegionLost" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The legion that was lost.

DCS#coalition.side Coalition

which captured the warehouse.

DCS#country.id Country

which has captured the warehouse.

On after "MissionAssign" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

On after "MissionCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

On after "OpsOnMission" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The OPS group on mission.

The mission.

On after "StrategyChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Strategy

New strategy.

On after "TransportCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The transport.

On after "ZoneAttacked" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that is being attacked.

On after "ZoneCaptured" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that was captured.

On after "ZoneEmpty" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that is empty now.

On after "ZoneLost" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that was lost.

Triggers the FSM event "OpsOnMission".

Defined in:

CHIEF

Parameters:

The OPS group on mission.

The mission.

Recruit assets for a given OPS zone.

Defined in:

CHIEF

Parameters:

The strategic zone.

#CHIEF.Resource Resource

The required resources.

Return value:

#boolean:

If true enough assets could be recruited.

Remove an attack zone.

Defined in:

CHIEF

Parameter:

The zone to be removed.

Return value:

self

Remove a AWACS zone.

Defined in:

CHIEF

Parameter:

Zone, where the flight orbits.

Remove a border zone defining your territory.

Defined in:

CHIEF

Parameter:

The zone to be removed.

Return value:

self

Remove a conflict zone.

Defined in:

CHIEF

Parameter:

The zone to be removed.

Return value:

self

Remove a GCI CAP

Defined in:

CHIEF

Parameter:

Zone, where the flight orbits.

Remove a LEGION to the chief's commander.

Defined in:

CHIEF

Parameter:

The legion to add.

Return value:

self

Remove mission from queue.

Defined in:

CHIEF

Parameter:

Mission to be removed.

Return value:

self

Remove strategically important zone.

All runing missions are cancelled.

Defined in:

CHIEF

Parameters:

OPS zone object.

#number Delay

Delay in seconds before the zone is removed. Default immidiately.

Return value:

self

Remove a refuelling tanker zone.

Defined in:

CHIEF

Parameter:

Zone, where the flight orbits.

Remove target from queue.

Defined in:

CHIEF

Parameter:

The target.

Return value:

self

Remove transport from queue.

Defined in:

CHIEF

Parameter:

Transport to be removed.

Return value:

self

Set this to be an air-to-air dispatcher.

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-any dispatcher, i.e.

engaging air, ground and naval targets. This is the default anyway.

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-ground dispatcher, i.e.

engage only ground units

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-sea dispatcher, i.e.

engage only naval units.

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-surface dispatcher, i.e.

engaging ground and naval groups.

Defined in:

CHIEF

Return value:

self

Set attack zone set.

  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.AGGRESSIVE.

Defined in:

CHIEF

Parameter:

Set of zones.

Return value:

self

Set border zone set, defining your territory.

  • Detected enemy troops in these zones will trigger defence condition RED.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.DEFENSIVE.

Defined in:

CHIEF

Parameter:

Core.Set#SET_ZONE BorderZoneSet

Set of zones defining our borders.

Return value:

self

Set conflict zone set.

  • Detected enemy troops in these zones will trigger defence condition YELLOW.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.OFFENSIVE.

Defined in:

CHIEF

Parameter:

Set of zones.

Return value:

self

Set defence condition.

Defined in:

CHIEF

Parameter:

#string Defcon

Defence condition. See CHIEF.DEFCON, e.g. CHIEF.DEFCON.RED.

Return value:

self

Set limit for number of total or specific missions to be executed simultaniously.

Defined in:

CHIEF

Parameters:

#number Limit

Number of max. mission of this type. Default 10.

#string MissionType

Type of mission, e.g. AUFTRAG.Type.BAI. Default "Total" for total number of missions.

Return value:

self

Set number of assets requested for detected targets.

Defined in:

CHIEF

Parameters:

#number NassetsMin

Min number of assets. Should be at least 1. Default 1.

#number NassetsMax

Max number of assets. Default is same as NassetsMin.

#number ThreatLevel

Only apply this setting if the target threat level is greater or equal this number. Default 0.

#string TargetCategory

Only apply this setting if the target is of this category, e.g. TARGET.Category.AIRCRAFT.

#string MissionType

Only apply this setting for this mission type, e.g. AUFTRAG.Type.INTERCEPT.

#string Nunits

Only apply this setting if the number of enemy units is greater or equal this number.

#string Defcon

Only apply this setting if this defense condition is in place.

#string Strategy

Only apply this setting if this strategy is in currently. place.

Return value:

self

Set the resource list of missions and assets employed when the zone is empty.

Defined in:

CHIEF

Parameters:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

#CHIEF.Resource Resource

Resource list of missions and assets.

#boolean NoCopy

If true, do not create a deep copy of the resource.

Return value:

self

Set the resource list of missions and assets employed when the zone is occupied by the enemy.

Defined in:

CHIEF

Parameters:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

#CHIEF.Resource Resource

Resource list of missions and assets.

#boolean NoCopy

If true, do not create a deep copy of the resource.

Return value:

self

Set strategy.

Defined in:

CHIEF

Parameter:

#string Strategy

Strategy. See CHIEF.strategy, e.g. CHIEF.Strategy.DEFENSIVE (default).

Return value:

self

Set tactical overview off.

Defined in:

CHIEF

Return value:

self

Set tactical overview on.

Defined in:

CHIEF

Return value:

self

Set a threat level range that will be engaged.

Threat level is a number between 0 and 10, where 10 is a very dangerous threat. Targets with threat level 0 are usually harmless.

Defined in:

CHIEF

Parameters:

#number ThreatLevelMin

Min threat level. Default 1.

#number ThreatLevelMax

Max threat level. Default 10.

Return value:

self

Triggers the FSM event "Start".

Defined in:

CHIEF

Triggers the FSM event "Status".

Defined in:

CHIEF

Triggers the FSM event "StrategyChange".

Defined in:

CHIEF

Parameter:

#string Strategy

New strategy.

Triggers the FSM event "TransportCancel".

Defined in:

CHIEF

Parameter:

The transport.

Triggers the FSM event "ZoneAttacked".

Defined in:

CHIEF

Parameter:

Zone that is being attacked.

Triggers the FSM event "ZoneCaptured".

Defined in:

CHIEF

Parameter:

Zone that was captured.

Triggers the FSM event "ZoneEmpty".

Defined in:

CHIEF

Parameter:

Zone that is empty now.

Triggers the FSM event "ZoneLost".

Defined in:

CHIEF

Parameter:

Zone that was lost.

Check if a given asset has certain attribute(s).

Defined in:

CHIEF

Parameters:

#table Attributes

The required attributes. See WAREHOUSE.Attribute enum. Can also be passed as a single attribute #string.

Return value:

#boolean:

Returns true, the asset has at least one requested attribute.

Check if a given asset has certain categories.

Defined in:

CHIEF

Parameters:

#table Categories

DCS group categories.

Return value:

#boolean:

Returns true, the asset has at least one requested category.

Check if a given asset has certain properties.

Defined in:

CHIEF

Parameters:

#table Categories

DCS group categories.

Properties

Return value:

#boolean:

Returns true, the asset has at least one requested property.

Check if limit of missions has been reached.

Defined in:

CHIEF

Parameter:

#string MissionType

Type of mission.

Return value:

#boolean:

If true, mission limit has not been reached. If false, limit has been reached.

Create a mission performance table.

Defined in:

CHIEF

Parameters:

#string MissionType

Mission type.

#number Performance

Performance.

Return value:

Mission performance.

Filter assets, which have certain categories, attributes and/or properties.

Defined in:

CHIEF

Parameters:

#table Assets

The assets to be filtered.

#table Categories

Group categories.

#table Attributes

Generalized attributes.

#table Properties

DCS attributes

Return value:

#table:

Table of filtered assets.

Add mission type and number of required assets to resource.

Defined in:

CHIEF

Parameters:

The target.

#string MissionType

Mission type.

Return values:

#number:

Number of min assets.

#number:

Number of max assets.

Get mission performance for a given TARGET.

Defined in:

CHIEF

Parameter:

The target.

Return value:

#table:

Mission performances of type #CHIEF.MissionPerformance.

Get mission performances for a given Group Attribute.

Defined in:

CHIEF

Parameter:

#string Attribute

Group attibute.

Return value:

#table:

Mission performances of type #CHIEF.MissionPerformance.

Display tactical overview.

Defined in:

CHIEF

Triggers the FSM event "DefconChange" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

#string Defcon

New Defence Condition.

Triggers the FSM event "LegionLost".

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The legion that was lost.

DCS#coalition.side Coalition

which captured the warehouse.

DCS#country.id Country

which has captured the warehouse.

Triggers the FSM event "MissionAssign" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

Triggers the FSM event "MissionCancel" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The mission.

Triggers the FSM event "OpsOnMission" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The OPS group on mission.

The mission.

Triggers the FSM event "Start" after a delay.

Defined in:

CHIEF

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Status" after a delay.

Defined in:

CHIEF

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Stop" after a delay.

Defined in:

CHIEF

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "StrategyChange" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

#string Strategy

New strategy.

Triggers the FSM event "TransportCancel" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The transport.

Triggers the FSM event "ZoneAttacked" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that is being attacked.

Triggers the FSM event "ZoneCaptured" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that was captured.

Triggers the FSM event "ZoneEmpty" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that is empty now.

Triggers the FSM event "ZoneLost" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that was lost.

On after "DefconChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Defcon

New defence condition.

On after "MissionAssignToAny" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

On after "MissionCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

On after "OpsOnMission".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Ops group on mission

The requested mission.

On after Start event.

Defined in:

CHIEF

Parameters:

Flight group.

#string From

From state.

#string Event

Event.

#string To

To state.

On after "Status" event.

Defined in:

CHIEF

Parameters:

Flight group.

#string From

From state.

#string Event

Event.

#string To

To state.

On after "StrategyChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Strategy

On after "TransportCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The transport.

On after "ZoneAttacked".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that being attacked.

On after "ZoneCaptured".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that was captured by us.

On after "ZoneEmpty".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that is empty now.

On after "ZoneLost".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that was lost.

Field(s)

#string CHIEF.ClassName

Name of the class.

#string CHIEF.Defcon

Defence condition.

#number CHIEF.Nattack
#number CHIEF.Nborder

Create TARGETs for all new contacts.

#number CHIEF.Nconflict
#number CHIEF.Nfailure

Number of failed mission.

#number CHIEF.Nsuccess

Number of successful missions.

#table CHIEF.assetNumbers

Asset numbers. Each entry is a table of data type #CHIEF.AssetNumber.

Core.Set#SET_ZONE CHIEF.borderzoneset

Set of zones defining the border of our territory.

Ops.Commander#COMMANDER CHIEF.commander

Commander of assigned legions.

Core.Set#SET_ZONE CHIEF.engagezoneset

Set of zones where enemies are actively engaged.

#string CHIEF.lid

Class id string for output to DCS log file.

#string CHIEF.strategy

Strategy of the CHIEF.

#boolean CHIEF.tacview
#table CHIEF.targetqueue

Target queue.

#number CHIEF.threatLevelMax

Highest threat level of targets to attack.

#number CHIEF.threatLevelMin

Lowest threat level of targets to attack.

#number CHIEF.verbose

Verbosity level.

#string CHIEF.version

CHIEF class version.

Core.Set#SET_ZONE CHIEF.yellowzoneset

Set of zones defining the extended border. Defcon is set to YELLOW if enemy activity is detected.

#table CHIEF.zonequeue

Strategic zone queue.

Function(s)

Add an accept zone.

Only contacts detected in this zone are considered.

Defined in:

Parameter:

Core.Zone#ZONE AcceptZone

Add a zone to the accept zone set.

Return value:

self

Add a group to the detection set.

Defined in:

Parameter:

Wrapper.Group#GROUP AgentGroup

Group of agents. Can also be an Ops.OpsGroup#OPSGROUP object.

Return value:

self

Add a conflict zone.

Contacts detected in this zone are conflicted and not reported by the detection. Note that conflict zones overrule all other zones, i.e. if a unit is outside of an accept zone and inside a reject zone, it is still reported if inside a conflict zone.

Defined in:

Parameter:

Core.Zone#ZONE ConflictZone

Add a zone to the conflict zone set.

Return value:

self

Add a contact to our list.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact to be added.

Return value:

self

Add a contact to the cluster.

Defined in:

Parameters:

#INTEL.Contact contact

The contact.

#INTEL.Cluster cluster

The cluster.

Add a Mission (Auftrag) to a cluster for tracking.

Defined in:

Parameters:

#INTEL.Cluster Cluster

The cluster

The mission connected with this cluster

Return value:

self

Add a Mission (Auftrag) to a contact for tracking.

Defined in:

Parameters:

#INTEL.Contact Contact

The contact

The mission connected with this contact

Return value:

self

Add a reject zone.

Contacts detected in this zone are rejected and not reported by the detection. Note that reject zones overrule accept zones, i.e. if a unit is inside an accept zone and inside a reject zone, it is rejected.

Defined in:

Parameter:

Core.Zone#ZONE RejectZone

Add a zone to the reject zone set.

Return value:

self

Calculate cluster heading.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster of contacts.

Return value:

#number:

Heading average of all groups in the cluster.

Calculate cluster future position after given seconds.

Defined in:

Parameters:

#INTEL.Cluster cluster

The cluster of contacts.

#number seconds

Time interval in seconds. Default is self.prediction.

Return value:

Calculated future position of the cluster.

Calculate cluster speed.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster of contacts.

Return value:

#number:

Speed average of all groups in the cluster in MPS.

Calculate cluster threat level average.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster of contacts.

Return value:

#number:

Average of all threat levels of all groups in the cluster.

Calculate max cluster threat level.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster of contacts.

Return value:

#number:

Max threat levels of all groups in the cluster.

Calculate cluster threat level sum.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster of contacts.

Return value:

#number:

Sum of all threat levels of all groups in the cluster.

Calculate cluster velocity vector.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster of contacts.

Return value:

Velocity vector in m/s.

Check if contact is in any known cluster.

Defined in:

Parameter:

#INTEL.Contact contact

The contact.

Return value:

#boolean:

If true, contact is in clusters

Count number of alive units in cluster.

Defined in:

Parameter:

#INTEL.Cluster Cluster

The cluster

Return value:

#number:

unitcount

Count number of alive units in contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

#number:

unitcount

Create detected items.

Defined in:

Parameters:

#table DetectedGroups

Table of detected Groups.

#table DetectedStatics

Table of detected Statics.

#table RecceDetecting

Table of detecting recce names.

Filter group categories.

Valid categories are:

  • Group.Category.AIRPLANE
  • Group.Category.HELICOPTER
  • Group.Category.GROUND
  • Group.Category.SHIP
  • Group.Category.TRAIN

Defined in:

Parameter:

#table GroupCategories

Filter categories, e.g. {Group.Category.AIRPLANE, Group.Category.HELICOPTER}.

Return value:

self

Get the altitude of a cluster.

Defined in:

Parameters:

#INTEL.Cluster Cluster

The cluster.

#boolean Update

If true, update the altitude. Default is to just return the last stored altitude.

Return value:

#number:

The average altitude (ASL) of this cluster in meters.

Get the coordinate of a cluster.

Defined in:

Parameters:

#INTEL.Cluster Cluster

The cluster.

#boolean Update

If true, update the coordinate. Default is to just return the last stored position.

Return value:

The coordinate of this cluster.

Get the cluster this contact belongs to (if any).

Defined in:

Parameter:

#INTEL.Contact contact

The contact.

Return value:

The cluster this contact belongs to or nil.

Get table of #INTEL.Cluster objects

Defined in:

Return value:

#table:

Clusters or nil if not running

Get a contact by name.

Defined in:

Parameter:

#string groupname

Name of the contact group.

Return value:

The contact.

Get category name of a contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

#string:

Category name.

Get coordinate of a contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

Coordinates.

Get group of a contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

Group object.

Get name of a contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

#string:

Name of the contact.

Get table of #INTEL.Contact objects

Defined in:

Return value:

#table:

Contacts or nil if not running

Get threatlevel of a contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

#number:

Threat level.

Get type name of a contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return value:

#string:

Type name.

(Internal) Return the detected target groups of the controllable as a Core.Set#SET_GROUP.

The optional parameters specify the detection methods that can be applied. If no detection method is given, the detection will use all the available methods by default.

Defined in:

Parameters:

The unit detecting.

#table DetectedUnits

Table of detected units to be filled.

#table RecceDetecting

Table of recce per unit to be filled.

#boolean DetectVisual

(Optional) If false, do not include visually detected targets.

#boolean DetectOptical

(Optional) If false, do not include optically detected targets.

#boolean DetectRadar

(Optional) If false, do not include targets detected by radar.

#boolean DetectIRST

(Optional) If false, do not include targets detected by IRST.

#boolean DetectRWR

(Optional) If false, do not include targets detected by RWR.

#boolean DetectDLINK

(Optional) If false, do not include targets detected by data link.

Get the contact with the highest threat level from the cluster.

Defined in:

Parameter:

#INTEL.Cluster Cluster

The cluster.

Return value:

the contact or nil if none

Check if contact is close to any other contact this cluster.

Defined in:

Parameters:

#INTEL.Contact contact

The contact.

#INTEL.Cluster cluster

The cluster the check.

Return values:

#boolean:

If true, contact is connected to this cluster.

#number:

Distance to cluster in meters.

Check if contact is close to any contact of known clusters.

Defined in:

Parameter:

#INTEL.Contact contact

The contact.

Return value:

The cluster this contact is part of or nil otherwise.

Make the INTEL aware of a object that was not detected (yet).

This will add the object to the contacts table and trigger a NewContact event.

Defined in:

Parameters:

Group or static object.

#string RecceName

Name of the recce group that detected this object.

#number Tdetected

Abs. mission time in seconds, when the object is detected. Default now.

Return value:

self

Triggers the FSM event "LostCluster" after a delay.

Defined in:

Parameters:

#number delay

Delay in seconds.

#INTEL.Cluster Cluster

Lost cluster.

The Auftrag connected with this cluster or nil.

Triggers the FSM event "LostContact" after a delay.

Defined in:

Parameters:

#number delay

Delay in seconds.

#INTEL.Contact Contact

Lost contact.

Create a new INTEL object and start the FSM.

Defined in:

Parameters:

Core.Set#SET_GROUP DetectionSet

Set of detection groups.

#number Coalition

Coalition side. Can also be passed as a string "red", "blue" or "neutral".

#string Alias

An optional alias how this object is called in the logs etc.

Return value:

self

Triggers the FSM event "NewCluster" after a delay.

Defined in:

Parameters:

#number delay

Delay in seconds.

#INTEL.Cluster Cluster

Detected cluster.

Triggers the FSM event "NewContact" after a delay.

Defined in:

Parameters:

#number delay

Delay in seconds.

#INTEL.Contact Contact

Detected contact.

On After "LostCluster" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Cluster Cluster

Lost cluster.

The Auftrag connected with this cluster or nil.

On After "LostContact" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Contact Contact

Lost contact.

On After "NewCluster" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Cluster Cluster

Detected cluster.

On After "NewContact" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Contact Contact

Detected contact.

[Internal] Paint picture of the battle field.

Does Cluster analysis and updates clusters. Sets markers if markers are enabled.

Defined in:

Remove an accept zone from the accept zone set.

Defined in:

Parameter:

Core.Zone#ZONE AcceptZone

Remove a zone from the accept zone set.

Return value:

self

Remove a conflict zone from the conflict zone set.

Note that conflict zones overrule all other zones, i.e. if a unit is outside of an accept zone and inside a reject zone, it is still reported if inside a conflict zone.

Defined in:

Parameter:

Core.Zone#ZONE ConflictZone

Remove a zone from the conflict zone set.

Return value:

self

Remove a contact from our list.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact to be removed.

Remove a contact from a cluster.

Defined in:

Parameters:

#INTEL.Contact contact

The contact.

#INTEL.Cluster cluster

The cluster.

Remove a reject zone from the reject zone set.

Defined in:

Parameter:

Core.Zone#ZONE RejectZone

Remove a zone from the reject zone set.

Return value:

self

Set the accept range in kilometers from each of the recce.

Only object closer than this range will be detected.

Defined in:

Parameter:

#number Range

Range in kilometers

Return value:

self

Set accept zones.

Only contacts detected in this/these zone(s) are considered.

Defined in:

Parameter:

Core.Set#SET_ZONE AcceptZoneSet

Set of accept zones.

Return value:

self

Enable or disable cluster analysis of detected targets.

Targets will be grouped in coupled clusters.

Defined in:

Parameters:

#boolean Switch

If true, enable cluster analysis.

#boolean Markers

If true, place markers on F10 map.

#boolean Arrows

If true, draws arrows on F10 map.

Return value:

self

Change radius of the Clusters.

Defined in:

Parameter:

#number radius

The radius of the clusters in kilometers. Default 15 km.

Return value:

self

Set conflict zones.

Contacts detected in this/these zone(s) are reported by the detection. Note that conflict zones overrule all other zones, i.e. if a unit is outside of an accept zone and inside a reject zone, it is still reported if inside a conflict zone.

Defined in:

Parameter:

Core.Set#SET_ZONE ConflictZoneSet

Set of conflict zone(s).

Return value:

self

Set whether STATIC objects are detected.

Defined in:

Parameter:

#boolean Switch

If true, statics are detected.

Return value:

self

Set detection types for this #INTEL - all default to true.

Defined in:

Parameters:

#boolean DetectVisual

Visual detection

#boolean DetectOptical

Optical detection

#boolean DetectRadar

Radar detection

#boolean DetectIRST

IRST detection

#boolean DetectRWR

RWR detection

#boolean DetectDLINK

Data link detection

Return value:

self

Filter unit categories.

Valid categories are:

  • Unit.Category.AIRPLANE
  • Unit.Category.HELICOPTER
  • Unit.Category.GROUND_UNIT
  • Unit.Category.SHIP
  • Unit.Category.STRUCTURE

Defined in:

Parameter:

#table Categories

Filter categories, e.g. {Unit.Category.AIRPLANE, Unit.Category.HELICOPTER}.

Return value:

self

OBSOLETE, will be removed in next version! Set forget contacts time interval.

Previously known contacts that are not detected any more, are "lost" after this time. This avoids fast oscillations between a contact being detected and undetected.

Defined in:

Parameter:

#number TimeInterval

Time interval in seconds. Default is 120 sec.

Return value:

self

Method to make the radar detection less accurate, e.g.

for WWII scenarios.

Defined in:

Parameters:

#number minheight

Minimum flight height to be detected, in meters AGL (above ground)

#number thresheight

Threshold to escape the radar if flying below minheight, defaults to 90 (90% escape chance)

#number thresblur

Threshold to be detected by the radar overall, defaults to 85 (85% chance to be found)

#number closing

Closing-in in km - the limit of km from which on it becomes increasingly difficult to escape radar detection if flying towards the radar position. Should be about 1/3 of the radar detection radius in kilometers, defaults to 20.

Return value:

self

Set reject zones.

Contacts detected in this/these zone(s) are rejected and not reported by the detection. Note that reject zones overrule accept zones, i.e. if a unit is inside an accept zone and inside a reject zone, it is rejected.

Defined in:

Parameter:

Core.Set#SET_ZONE RejectZoneSet

Set of reject zone(s).

Return value:

self

Set verbosity level for debugging.

Defined in:

Parameter:

#number Verbosity

The higher, the noisier, e.g. 0=off, 2=debug

Return value:

self

Triggers the FSM event "Start".

Starts the INTEL. Initializes parameters and starts event handlers.

Defined in:

Triggers the FSM event "Status".

Defined in:

Update cluster F10 marker.

Defined in:

Parameter:

#INTEL.Cluster cluster

The cluster.

Return value:

self

Update detected items.

Defined in:

Add cluster to table.

Defined in:

Parameter:

#INTEL.Cluster Cluster

The cluster to add.

Check if the coorindate of the cluster changed.

Defined in:

Parameters:

#INTEL.Cluster Cluster

The cluster.

#number Threshold

in meters. Default 100 m.

Reference coordinate. Default is the last known coordinate of the cluster.

Return value:

#boolean:

If true, the coordinate changed by more than the given threshold.

Check if a contact was lost.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact to be removed.

Return value:

#boolean:

If true, contact was not detected for at least dTforget seconds.

Create a new cluster.

Defined in:

Return value:

cluster The cluster.

Create a new cluster from a first contact.

The contact is automatically added to the cluster.

Defined in:

Parameter:

#INTEL.Contact Contact

The first contact.

Return value:

cluster The cluster.

Create an #INTEL.Contact item from a given GROUP or STATIC object.

Defined in:

Parameters:

The GROUP or STATIC object.

#string RecceName

The name of the recce group that has detected this contact.

Return value:

The contact.

Get closest cluster of contact.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact.

Return values:

The cluster this contact is part of or #nil otherwise.

#number:

Distance to cluster in meters.

Get distance to cluster.

Defined in:

Parameters:

#INTEL.Contact Contact

The contact.

#INTEL.Cluster Cluster

The cluster to which the distance is calculated.

Return value:

#number:

Distance in meters.

Check if a Contact is already known.

It is checked, whether the contact is in the contacts table.

Defined in:

Parameter:

#INTEL.Contact Contact

The contact to be added.

Return value:

#boolean:

If true, contact is already known.

Update coordinates of the known clusters.

Defined in:

Update an #INTEL.Contact item.

Defined in:

Parameter:

#INTEL.Contact Contact

Contact.

Return value:

The contact.

Triggers the FSM event "Start" after a delay.

Starts the INTEL. Initializes parameters and starts event handlers.

Defined in:

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Status" after a delay.

Defined in:

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Stop" after a delay.

Stops the INTEL and all its event handlers.

Defined in:

Parameter:

#number delay

Delay in seconds.

On after "LostCluster" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Cluster Cluster

Lost cluster.

The Auftrag connected with this cluster or nil.

On after "LostContact" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Contact Contact

Lost contact.

On after "NewCluster" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Cluster Cluster

Detected cluster.

On after "NewContact" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#INTEL.Contact Contact

Detected contact.

On after Start event.

Starts the FLIGHTGROUP FSM and event handlers.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

On after "Status" event.

Defined in:

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Field(s)

#string CHIEF.ClassName

Name of the class.

#string CHIEF.Defcon

Defence condition.

#number CHIEF.Nattack
#number CHIEF.Nborder

Create TARGETs for all new contacts.

#number CHIEF.Nconflict
#number CHIEF.Nfailure

Number of failed mission.

#number CHIEF.Nsuccess

Number of successful missions.

#table CHIEF.assetNumbers

Asset numbers. Each entry is a table of data type #CHIEF.AssetNumber.

Core.Set#SET_ZONE CHIEF.borderzoneset

Set of zones defining the border of our territory.

Ops.Commander#COMMANDER CHIEF.commander

Commander of assigned legions.

Core.Set#SET_ZONE CHIEF.engagezoneset

Set of zones where enemies are actively engaged.

#string CHIEF.lid

Class id string for output to DCS log file.

#string CHIEF.strategy

Strategy of the CHIEF.

#boolean CHIEF.tacview
#table CHIEF.targetqueue

Target queue.

#number CHIEF.threatLevelMax

Highest threat level of targets to attack.

#number CHIEF.threatLevelMin

Lowest threat level of targets to attack.

#number CHIEF.verbose

Verbosity level.

#string CHIEF.version

CHIEF class version.

Core.Set#SET_ZONE CHIEF.yellowzoneset

Set of zones defining the extended border. Defcon is set to YELLOW if enemy activity is detected.

#table CHIEF.zonequeue

Strategic zone queue.

Function(s)

Adds an End state.

Defined in:

Parameter:

#string State

The FSM state.

Set the default #FSM_PROCESS template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.

Defined in:

Parameters:

#table From

Can contain a string indicating the From state or a table of strings containing multiple From states.

#string Event

The Event name.

An sub-process FSM.

#table ReturnEvents

A table indicating for which returned events of the SubFSM which Event must be triggered in the FSM.

Return value:

The SubFSM.

Adds a score for the FSM to be achieved.

Defined in:

Parameters:

#string State

is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).

#string ScoreText

is a text describing the score that is given according the status.

#number Score

is a number providing the score of the status.

Return value:

#FSM:

self

Adds a score for the FSM_PROCESS to be achieved.

Defined in:

Parameters:

#string From

is the From State of the main process.

#string Event

is the Event of the main process.

#string State

is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).

#string ScoreText

is a text describing the score that is given according the status.

#number Score

is a number providing the score of the status.

Return value:

#FSM:

self

Add a new transition rule to the FSM.

A transition rule defines when and if the FSM can transition from a state towards another state upon a triggered event.

Defined in:

Parameters:

#table From

Can contain a string indicating the From state or a table of strings containing multiple From states.

#string Event

The Event name.

#string To

The To state.

Get current state.

Defined in:

Return value:

#string:

Current FSM state.

Returns the End states.

Defined in:

Return value:

#table:

End states.

Defined in:

Parameters:

From

Event

Returns a table of the SubFSM rules defined within the FSM.

Defined in:

Return value:

#table:

Sub processes.

Returns a table with the scores defined.

Defined in:

Return value:

#table:

Scores.

Returns the start state of the FSM.

Defined in:

Return value:

#string:

A string containing the start state.

Get current state.

Defined in:

Return value:

#string:

Current FSM state.

Returns a table with the Subs defined.

Defined in:

Return value:

#table:

Sub processes.

Returns a table of the transition rules defined within the FSM.

Defined in:

Return value:

#table:

Transitions.

Check if FSM is in state.

Defined in:

Parameter:

#string State

State name.

Return value:

#boolean:

If true, FSM is in this state.

Load call backs.

Defined in:

Parameter:

#table CallBackTable

Table of call backs.

Creates a new FSM object.

Defined in:

Return value:

#FSM:

Defined in:

Parameters:

From

Event

Fsm

Sets the start state of the FSM.

Defined in:

Parameter:

#string State

A string defining the start state.

Add to map.

Defined in:

Parameters:

#table Map

Map.

#table Event

Event table.

Call handler.

Defined in:

Parameters:

#string step

Step "onafter", "onbefore", "onenter", "onleave".

#string trigger

Trigger.

#table params

Parameters.

#string EventName

Event name.

Return value:

Value.

Create transition.

Defined in:

Parameter:

#string EventName

Event name.

Return value:

#function:

Function.

Delayed transition.

Defined in:

Parameter:

#string EventName

Event name.

Return value:

#function:

Function.

Event map.

Defined in:

Parameters:

#table Events

Events.

#table EventStructure

Event structure.

Go sub.

Defined in:

Parameters:

#string ParentFrom

Parent from state.

#string ParentEvent

Parent event name.

Return value:

#table:

Subs.

Handler.

Defined in:

Parameters:

#string EventName

Event name.

...

Arguments.

Is end state.

Defined in:

Parameter:

#string Current

Current state name.

Return values:

#table:

FSM parent.

#string:

Event name.

Sub maps.

Defined in:

Parameters:

#table subs

Subs.

#table sub

Sub.

#string name

Name.

Check if can do an event.

Defined in:

Parameter:

#string e

Event name.

Return values:

#boolean:

If true, FSM can do the event.

#string:

To state.

Check if cannot do an event.

Defined in:

Parameter:

#string e

Event name.

Return value:

#boolean:

If true, FSM cannot do the event.

Check if FSM is in state.

Defined in:

Parameters:

#string State

State name.

state

Return value:

#boolean:

If true, FSM is in this state.

Asset numbers for detected targets.

Field(s)

#string CHIEF.AssetNumber.defcon

Defense condition.

#string CHIEF.AssetNumber.missionType

Mission type.

#number CHIEF.AssetNumber.nAssetMax

Max number of assets.

#number CHIEF.AssetNumber.nAssetMin

Min number of assets.

#number CHIEF.AssetNumber.nUnits

Number of enemy units.

#string CHIEF.AssetNumber.strategy

Strategy.

#string CHIEF.AssetNumber.targetCategory

Target category.

#number CHIEF.AssetNumber.threatlevel

Threat level.

Function(s)

Defence condition.

Field(s)

#string CHIEF.DEFCON.GREEN

No enemy activities detected in our terretory or conflict zones.

#string CHIEF.DEFCON.RED

Enemy within our border.

#string CHIEF.DEFCON.YELLOW

Enemy in conflict zones.

Function(s)

Mission performance.

Field(s)

#string CHIEF.MissionPerformance.MissionType

Mission Type.

#number CHIEF.MissionPerformance.Performance

Performance: a number between 0 and 100, where 100 is best performance.

Function(s)

Resource.

Field(s)

#table CHIEF.Resource.Attributes

Generalized attribute, e.g. {GROUP.Attribute.GROUND_INFANTRY}.

#table CHIEF.Resource.Categories

Categories Group categories.

#string CHIEF.Resource.MissionType

Mission type, e.g. AUFTRAG.Type.BAI.

#number CHIEF.Resource.Nmax

Max number of assets.

#number CHIEF.Resource.Nmin

Min number of assets.

#table CHIEF.Resource.Properties

Properties (DCS attributes), e.g. "Attack helicopters" or "Mobile AAA".

#table CHIEF.Resource.carrierAttributes

Generalized attribute, e.g. {GROUP.Attribute.GROUND_INFANTRY}.

#table CHIEF.Resource.carrierCategories

Group categories.

#number CHIEF.Resource.carrierNmax

Max number of assets.

#number CHIEF.Resource.carrierNmin

Min number of assets.

#table CHIEF.Resource.carrierProperties

Properties (DCS attributes), e.g. "Attack helicopters" or "Mobile AAA".

Function(s)

Resource list.

Field(s)

Function(s)

Strategic zone.

Field(s)

#number CHIEF.StrategicZone.importance

Importance.

#number CHIEF.StrategicZone.prio

Priority.

#CHIEF.Resources CHIEF.StrategicZone.resourceEmpty

List of resources employed when the zone is empty.

#CHIEF.Resources CHIEF.StrategicZone.resourceOccup

List of resources employed when the zone is occupied by an enemy.

Function(s)

Strategy.

Field(s)

#string CHIEF.Strategy.AGGRESSIVE

Targets in own terretory, conflict zones and attack zones are engaged.

#string CHIEF.Strategy.DEFENSIVE

Only target in our own terretory are engaged.

#string CHIEF.Strategy.OFFENSIVE

Targets in own terretory and yellow zones are engaged.

#string CHIEF.Strategy.PASSIVE

No targets at all are engaged.

#string CHIEF.Strategy.TOTALWAR

Anything is engaged anywhere.

Function(s)