ArmA: AI Combat Modes

## Engagement rules

Can be assigned in editor for each waypoint, called as command from commanding menu in game or scripted. See setCombatMode and combatMode for more details.

Depending on Combat mode AI will attack assigned target different way.

Combat Modes:

* **"BLUE"** (Never fire)
	+ When hostile units are detected, they will track them, but will never fire back, even when fired upon.
	+ This mode can only be set through the editor or script. No in-game commands to subordinates can set them to combat mode Blue.
* **"GREEN"** (Hold fire - defend only)
	+ When a player orders his units to "Hold fire", the units are set to combat mode Green.
* **"WHITE"** (Hold fire, engage at will)
* **"YELLOW"** (Fire at will)
	+ If AI spots a target and decides it is in effective range, he will open fire. By default AI is set to YELLOW.
	+ If a leader calls **Target**, the unit with aim without breaking formation.
* **"RED"** (Fire at will, engage at will)
	+ When a leader commands his units to **Engage** at will, combat mode RED is set. The AI does not keep formation and each member moves individualy. The leader command **Disengage** will set the units back to **fire at will** (YELLOW)
	+ If **Attack and Engage** is called, the unit will break formation to find the best place to attack from (combat mode RED).

## Combat mode / Behavior

AI behavior depends on actual Combat Mode. This can be assigned in game by commanding orders, preset for each waypoint or script. See setBehaviour and behaviour for more details. Combat modes are hardcoded in engine since original OFP, some of their efects might change but there is no FSM for them in ArmA. In case some FSM would be in conflict with behavior set - setBehavior has the priority.

### Safe

It is possible to choose also **Careless** in mission editor, that expands the behavior for even more free movement (loiter) in range up to 150m.

* will use roads, groups travel in convoy (overrides formation command)
* stance with lowered weapon
* turned out from vehicle
* lie down when scared
* less turning head, less observing surroundings (limited rate of target database)

### Aware

Default behavior.

* lie down when scared
* soldiers sometimes move in cover
* vehicles still prefer roads, travel in convoy

### Danger (Combat)

* dismiss (loiter movement) canceled
* ignores limited speed setting
* tends to change stance to kneel or prone
* soldiers move in cover
* soldiers disembark from some vehicles, e.g. damaged aircraft
* turns of vehicle lights

### Stealth

* dismiss (loiter movement) canceled
* faster target acquisition
* tends to change stance to kneel or prone
* keep themself also out of Unknown targets
* soldiers move in cover, routing near structures
* soldiers disembark from some vehicles, e.g. damaged aircraft
* turns of vehicle lights
* tanks avoid passing trees

## AI Skill

It affects a lot ot things, including reaction time and accuracy. Variables controlled
by the skill setting can be seen in CfgSkills:

* aimingAccuracy
* aimingShake
* aimingSpeed
* endurance
* spotDistance
* spotTime
* courage
* reloadSpeed
* commanding
* general

See also: skill, setSkill, setSkill array, setUnitAbility