Skip to content

Releases: nk3nny/LambsDanger

2.5.2

03 Oct 14:00
e690b74
Compare
Choose a tag to compare

Added SQFC Support
Added Setting for Advanced Obstacle Proximity Detection for Suppression
Added vehicles main gun switch to HE or AP when engaging targets (#261)
Added Range PBO (allowing units to spot and engage targets at longer ranges) (#246)
Added greatly enhanced suppression check (#249)
Added unified doGroupHide action (#258)
Added ‘suppress’ option to taskGarrison as an exit clause
Added variable to block auto artillery registration

Improved taskCamp, taskHunt, taskGarrison and taskReset with eventhandlers (#259)
Improved taskCamp by using ‘suppression’ event handler.
Improved stance usage in taskCamp.
Improved cleanup system of eventhandlers in taskReset
Improved Polish Translations
Improved Task Hunt with settings for Flares
Improved vehicle brain by accounting for Air vehicles
Improved doDodge function

Fixed taskHunt module not working in Zeus (#252)
Fixed taskAssault Zeus module opening when no dynamic target is created (#250)
Fixed civilian.fsm exit conditions (#253)
Fixed units attacking SuppressTarget (#256)
Fixed issues that artillery guns did not get readded in certain cases (#264)
Fixed assault/garrison issue with taskAssess (Units would fail to assault new buildings!) (#255)
Fixed wrong eventhandlers being selected in the garrison module.
Fixed vehicles spamming shareInformation
Fixed the 3den Artillery Register Checkbox
Fixed Zen Action for TaskPatrol calling the wrong Event
Fixed duplicate vehicle suppression calls
Fixed doSelectWarhead errors when gunner dismounts or is not assigned a gun
Fixed doUGL would throw an error if a player was in the array

Changed WP Strings now using Stringtables (#247)
Changed to using native hashes for artillery system (#263)
Changed findClosestTarget function added to main (#265)


The long-awaited 2.5.2 is now here. It comes with a number of very interesting features.

A considerably smarter system for evaluating suppression, armoured vehicles changing ammunition based on targets, the Ranged PBO, and we’ve implemented the SQFC standard for this and future releases. What does this mean?

The enhanced suppression selection system lets units more intelligently choose whether or not to suppress potential targets. Each unit will evaluate its own position and that of the enemy, visibility, cover and concealment, before committing. Units will still suppress potential or assumed enemy positions, but are less likely to shoot at pointless positions. The new system greatly reduces instances of uselessly shooting at walls in towns.

Armoured, turreted vehicles will now switch ammunition type based on available targets. Soft-skinned vehicles and infantry will be hit with HE, while AP and APDS will be used to engage enemy armour. This much-requested feature will greatly enhance the deadliness of enemy armour. Consider yourself warned!

LAMBS Danger will also tweak AI sensitivity. This makes AI infantry much more able to spot enemies moving across open fields. Expect engagement ranges to be increased by 100-200 meters in favourable conditions. The use of cover and concealment to break visibility is more important than ever. AI ability to see at night, or to spot targets from vehicles, is unchanged.

SQFC makes code work more gooder. In more technical terms it is SQF code precompiled which the engine can load faster. Code execution time is faster due to compile-time optimizations. In practical terms, it offers performance enhancements to the AI. The full extent of which we’re still mapping out. SQFC is already in use by major mods in the Arma3 community with more to follow. We’re part of that gang.

As usual, there are a slew of bug fixes and minor enhancements. The ‘Suppressed’ eventhandler has been added to garrisoned and camped units, which will make them more responsive to enemy fire. We’ve also cleaned up and improved the performance of many other modules.

NOTE: This version changes (and fixes) garrison modules. For mission makers that have set particular exit conditions will want to re-check Garrison modules in their missions. Previously the garrison module would not apply the selected exit condition consistently. That has been fixed.

The team would like to thank our contributors:

  • Floyd as video editor from Gruppe W
  • veteran29
  • MiszczuZPolski

Shout out to our Discord crew. The team always enjoys the lively banter of feature requests, bug reports and after-action reports (particularly when you all die or get suppressed through bushes, Muahahaha).

From the team
diwako / joko / nkenny

2.5.2 RC2

12 Sep 17:23
7ec6c09
Compare
Choose a tag to compare
2.5.2 RC2 Pre-release
Pre-release

Added variable to block auto artillery registration
Fixed SQFC
Fixed for DoUGL error

From the team
diwako / joko / nkenny

2.5.2 RC

24 Aug 22:36
9eccdff
Compare
Choose a tag to compare
2.5.2 RC Pre-release
Pre-release

Added SQFC Support
Added Setting for Advanced Obstacle Proximity Detection for Suppression
Improved Polish Translations

From the team
diwako / joko / nkenny

2.5.2 Dev 2

26 Jun 14:25
Compare
Choose a tag to compare
2.5.2 Dev 2 Pre-release
Pre-release

Improved Task Hunt with settings for Flares
Improved vehicle brain by accounting for Air vehicles
Improved doDodge function

Fixed vehicles spamming shareInformation
Fixed the 3den Artillery Register Checkbox
Fixed Zen Action for TaskPatrol calling wrong Event
Fixed duplicate vehicle suppression calls
Fixed doSelectWarhead errors when gunner dismounts or is not assigned a gun

Removed duplicated stringtable entries


Small update. This time focusing on bug fixes and small improvements to the 2.5.2 codebase. Infantry will dodge more gooder (they will do pirouettes) and air vehicles think double plus better. Oh. And we fixed the 3den artillery setting. cough

From the team
diwako / joko / nkenny

2.5.2 Dev 1

19 Jun 15:21
Compare
Choose a tag to compare
2.5.2 Dev 1 Pre-release
Pre-release

Added vehicles main gun switch to HE or AP when engaging targets (#261)
Added Range PBO (allowing units to spot and engage targets at longer ranges) (#246)
Added greatly enhanced suppression check (#249)
Added unified doGroupHide action (#258)
Added ‘suppress’ option to taskGarrison as an exit clause

Improved taskCamp, taskHunt, taskGarrison and taskReset with eventhandlers (#259)
Improved taskCamp by using ‘suppression’ event handler.
Improved stance usage in taskCamp.
Improved cleanup system of eventhandlers in taskReset

Changed WP Strings now using Stringtables (#247)
Changed to using native hashes for artillery system (#263)
Changed findClosestTarget function added to main (#265)

Fixed taskHunt module not working in Zeus (#252)
Fixed taskAssault zeus module opening when no dynamic target is created (#250)
Fixed civilian.fsm exit conditions (#253)
Fixed units attacking SuppressTarget (#256)
Fixed issues that artillery guns did not get readded in certain cases (#264)
Fixed assault/garrison issue with taskAssess (Units would fail to assault new buildings!) (#255)
Fixed wrong eventhandlers being selected in the garrison module.

Removed Suppression feature in taskHunt. This is better handled in the new FSM and group actions.
Removed Bugs :^)


In addition to a number of smaller changes, this release adds three big features. A greatly enhanced system for selecting suppression targets, armoured vehicles changing ammunition based on targets, and a Ranged module.

The enhanced suppression selection system lets units more intelligently choose whether or not to suppress potential targets. Each unit will evaluate its own position and that of the enemy, visibility, cover and concealment, before committing. Units will still suppress potential or assumed enemy positions-- but are less likely to shoot at useless positions. This is particularly noticeable in towns.

For the second feature. The dev team feels sorry for all of you. Armoured, turreted vehicles, are now able to switch ammunition type based on targets. Soft-skinned vehicles and infantry will be hit with HE, while AP and APDS will be used to engage enemy armour. This much-requested feature will greatly enhance the deadliness of enemy armour. So take care!

The third large feature tweaks AI sensitivity. This makes the AI more able to spot enemies moving across open fields. Expect engagement ranges increased by 100-200 meters in perfect conditions. So use cover and concealment to break visibility. This feature is under development, so values may change before the final release. We appreciate any feedback to refine this module.

Among the smaller features are the usual slew of bug fixes, but we’ve also enhanced other systems. The ‘Suppressed’ eventhandler is added to garrisoned and camped units, which will make them more responsive to enemy fire. We’ve also cleaned up and improved the performance of many of the other existing features.

NOTE: This version changes (and fixes) garrison modules. For mission makers that have set particular exit conditions will want to re-check Garrison modules in their missions. Previously the garrison module would not apply the selected exit condition consistently. That has been fixed.

From the team
diwako / joko / nkenny

2.5.1

07 May 16:52
46a54a1
Compare
Choose a tag to compare

Added new lambs_formations config tweaks/enhancements to formations and pathfinding
Added ZEN Context Actions for Reinforcement
Added custom share information handlers (by mjc4wilton)
Added artillery crew will disembark when threatened by near enemies
Added debug marker for artillery spotter
Added more robust stance changes and forceMove to tacticsFlank to induce more movement
Added findNearbyVehicles (standardised function to find ready vehicles)
Added stricter handling of flanking units (forcing them to not board transports)
Added exit condition on 'lambs_danger_forceMove' in brainForced
Added 'forceMove' variable to hiding to increase reliability
Added unified callout and share information
Added units will act more intelligently to "hold fire" commands (by setting combatMode to "BLUE" or "GREEN". I.e., ordering units to hold fire)
Added checkbox to disable Dynamic reinforcement system for Task Waypoints

Fixed artillery check round barrages (these were always one round)
Fixed artillery debug markers were occasionally not removed when the spotter died
Fixed flanking units chose more intelligent spots
Fixed allowed suppressing units to suppress outdoor spots (performance)
Fixed doGroupFlank set wrong forceMove variable
Fixed doVehicleAssault visibility check
Fixes doGroupFlanks tendency to not do anything!
Fixes doGroupAssault tendency to cause AI to rotate uselessly
Fixes doAssault building sorting distance to more reliably assault salient buildings
Fixed doSuppress ignoring the positions of friendlies
Fixed units standing up at inopportune times in assault/assaultMemory
Fixed groups rarely utilising 'aggressive' contact state
Fixed groups failing to use hand signals and callouts
Fixed units spamming 'Negative' (due to inability of providing suppressive fire)
Fixed armoured vehicles suppressing useless positions
Fixed issue with taskAssault calling taskArtillery
Fixed reduced use of suppression when an enemy is detected but not easy to see.
Fixed height over sea effect in getShareInformationParams
Fixed units playing walking animations when retreat option is enabled in taskAssault
Fixed missing taskAssault Retreat mode waypoint text
Fixed player-led groups would occasionally fail to return to formation

Changed Renamed DisableGroupAI Module to Configure Group AI
Changed taskPatrol and taskHunt groups are no longer set to reinforce by default
Changed player-led groups no longer receive shared information
Changed artillery debug markers now uses a colour not used by a faction
Changed static weapon crew will disembark when threatened (instead of only the effective commander)
Changed timing for isLeader checks. Non-leaders will now only check 5% rather than 10% of the time
Changed minimum suppression range from 25 to 50 meters

Improved isNight performance by use of getEnvSound Controllers (by RCA3)
Improved taskGarrison to only seek cover positions when necessary
Improved doShareInformation performance
Improved getShareInformationParams performance
Improved performance of findNearbyFriendlies
Improved performance of isAlive checks
Improved performance doGroupSuppress
Improved performance of doSuppress
Improved performance of doVehicleSuppress
Improved Converted remoteExec/remoteExecCall to CBA Target Events
Improved performance of brainEngage by having zero-time exit variables
Improved FSM performance by removing unnecessary checks
Improved brainReact handling of doCover state
Improved doDodge performance
Improved doHide performance
Improved findReadyUnits handling of ‘attacking’ units.
Improved sorting of ready artillery
Improved skipCheckRounds option will also skip main strike delay
Improved Render Positions of DebugDraw
Improved brainEngage handling of speed change when engaging
Improved FSM performance by using simper params array
Improved prevent script errors with TaskArtillery when no artillery is defined
Improved reduced use of AI smoke
Improved debug draw (performance and settings)
Improved entries in taskModule configs
Improved group assessments of close combat situations
Improved groups set to WHITE combat mode are less likely to enter group suppression mode
Improved Polish translations (by MiszczuZPolski and SzwedzikPL)
Improved various tooltips
Improved consistency of suppression function with shorter ranged weapons


This is going to knock your socks off. The big focus of this release has been refining existing features under three general headers: frames, flow and friction.

Frames. For this version, we have improved and streamlined many of the most common AI- functions. The net result is an overall performance increase of some 5-10 FPS depending on your system.

Flow. With the introduction of the new lambs_formations.pbo you will see increased combat ability from the enemy AI. Infantry will be faster to move into and through buildings. You will also see more compact infantry formations that will in turn be quicker to react.

Friction. Through an active process of feedback and development, we’ve also removed many issues related to group-level tactics. Infantry performing group actions will act with increased authority and aggression. Group use of suppression will select targets more intelligently. Vehicles will use their weapons more sensibly, as it pertains to suppressing and facing enemies. Overall, you will meet a much more dangerous enemy.

The team would like to extend special thanks to:

  • mjc4wilton
  • RCA3
  • MiszczuZPolski
  • SzwedzikPL

The people that provided commands and questions on the development version on steam and discord.

From the team
diwako / joko / nkenny

Steam Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=1858075458

2.5.1 Dev. Version 4

29 Apr 20:16
Compare
Choose a tag to compare
2.5.1 Dev. Version 4 Pre-release
Pre-release

Added units will act more intelligently to "hold fire" commands
Added makes it possible to quit engagement cycle by setting combatMode to "BLUE" or "GREEN". I.e., ordering units to hold fire.
Added checkbox to disable Dynamic reinforcement system for Task Waypoints

Fixed halves chance of suppression when enemy is merely 'detected' at not actually considered a target easy to fire at.
Fixed units 'walking' when retreat option is enabled in taskAssault
Fixes missing taskAssault Retreat mode waypoint text

Changed taskPatrol and taskHunt groups are no longer set to reinforce by default
Changed player led groups no longer receive shared information

Improved reduced use of AI smoke
Improved debug draw (performance and settings)
Improved entries in taskModule configs
Improved group assessments of close combat situations
Improved groups set to WHITE combat mode are less likely to enter group suppression mode

Minor tweaks to waypoint text

2.5.1 Dev. Version 2

22 Apr 12:27
cb6201b
Compare
Choose a tag to compare
2.5.1 Dev. Version 2 Pre-release
Pre-release

2.5.1 Dev Release 2

Added new pathfinding/formations module*
Added ZEN Context Actions for Reinforcement

Fixed units standing up at inopportune times in assault/assaultMemory
Fixed groups rarely utilising 'aggressive' contact state
Fixed groups failing to use hand signals and callouts
Fixed units spamming 'Negative'
Fixed armoured vehicles suppressing useless positions
Fixed issue with taskAssault calling taskArtillery

Changed Renamed DisableGroupAI Module to Configure Group AI

Improved Render Positions of DebugDraw
Improved brainEngage handling of speed change when engaging
Improved brainEngage exit clause by better balanced ammunition check
Improved simplified params array in danger fsm
Improved prevent Script Errors with TaskArtillery when no Artillery is defined

LAMBS Formations
This version sees the inclusion of an internal path and formation mod into LAMBS Danger.fsm. What to look for:

  1. Infantry will be faster to move into and through buildings
  2. Infantry formations will be slightly more compact, but also quicker to react
  3. Stress and outright horror at being flanked and destroyed in urban areas.

This is combined with a slight philosophy change in regards to stance changes. Most stance changes will now be caused by reacting to enemy fire, threats, or when group actions are undertaken. All in all, expect an even more capable combatant...

2.5.1 RC

18 Apr 18:47
Compare
Choose a tag to compare
2.5.1 RC Pre-release
Pre-release

Release Candidate 2.5.1

Added custom share information handlers
Added artillery crew will disembark when threatened by near enemies
Added skipCheckRounds will also skip main strike delay
Added debug marker for spotter
Added more robust stance changes and forceMove to tacticsFlank to induce more movement
Added reset for 'ATTACK'-locked units in findReadyUnits (fixes reporting units which are not ready)
Added findNearbyVehicles ~ standardised function to find ready vehicles
Added stricter handling of flanking units (forcing them to not board transports)
Added exit condition on 'lambs_danger_forceMove' in brainForced
Added 'forceMove' variable to hiding to increase reliability
Added unified callout and share information

Fixed check round barrages nearly always be one round
Fixed debug markers were occasionally not removed when caller died
Fixed flanking units choosing spots too close
Fixed allowed suppressing units to suppress outdoor spots (performance)
Fixed doGroupFlank set wrong forceMove variable
Fixed doVehicleAssault visibility check
Fixes doGroupFlanks tendency to not do anything!
Fixes doGroupAssault tendency to cause AI to look in circles!
Fixes doAssault building sorting distance to more reliably assault buildings
Fixed doGroupFlanks tendency to not do anything!
Fixed doGroupAssault tendency to cause AI to look in circles!
Fixed doAssault building sorting distance to more reliably assault buildings
Fixed doSuppress ignoring position of friendlies on last check

Changed artillery debug markers uses a colour not used by a faction
Changed static weapon crew will disembark when threatened (instead of only effective commander)
Changed timing for isLeader check. Non-leaders will now only check 5% rather than 10% of the time (for performance)
Changed minimum suppression range from 25 to 28 meters

Improved isNight.sqf performance by use of getEnvSound Controllers
Improved taskGarrison to only seek cover positions when necessary
Improved doShareInformation performance
Improved getShareInformationParams performance
Improved performance of findNearbyFriendlies
Improved performance of isAlive check
Improved performance doGroupSuppress (simpler position)
Improved performance of doSuppress (adjust order of checks, simpler lineIntersectSurface test)
Improved performance of doVehicleSuppress (adjusted order of checks)
Improved Convert remoteExec/remoteExecCall to CBA Target Events
Improved performance of brainEngage by having zero-time exit variables
Improved performance by skipping unnecessary vector additions to suppression
Improved performance by removing unnecessary checks
Improved brainReact handling of doCover state
Improved doDodge performance -- removing unnecessary checks*
Improved doHide performance -- added earlier exit
Improved sorting of ready artillery

Removed height over sea formula to getShareInformationParams -- cut in the name of frames

More description forthcoming.

2.5.0 - Turing

12 Apr 17:51
84f9705
Compare
Choose a tag to compare

Release 2.5.0 - Turing

Added new FSM with greatly streamlined performance and functionality
Added Group Memory layer for CQB
Added infantry cover seeking function
Added infantry ability to reposition within buildings
Added better checks to skip out FSM if AI behaviour is forced
Added new leadership assessment, contact, and tactics state
Added Group Attack -- making the entire group attack a single target
Added Group Garrison -- letting groups temporarily garrison buildings
Added Group Hold – groups without clear sight of enemies or when overwhelmed by enemy fire will reassess while hiding and manning nearby static weapons
Added group ability to respond to distant snipers by suppression or garrisoning or counter-attacking
Added Dynamic Reinforcement framework with a reinforcement event handler*
Added Eden settings to toggle group AI and reinforcement option
Added improvements to taskAssault waypoint (reliability and tactical proficiency)
Add two different ‘contact states**
Added ability for vehicles to call artillery fires
Added more refined support for ACE3 medical AI. (Fewer instances of AI attempting first aid while engaging or under fire).
Added friendly fire check to AI called artillery
Added units set to ‘FULL’ speedMode will not choose slow or defensive tactical options.
Added improved handling of mechanized/armoured infantry working in conjunction with tanks. Tanks will cover while infantry attack
Added post-contact behaviour. Units with active groupMemory will continue clearing suspected enemy locations.
Added more active use of ‘enableAttack’ in contact and group actions to more tightly control AI.
Added and improved player UI elements
Added Polish Localisation
Added Russian Localisation
Added many performance fixes and enhancements

Improved mod file structure for easier maintenance
Improved FSM priorities for added dynamism
Improved vehicle AI performance and speed
Improved infantry group AI in scope and intelligence
Improved CQB ability by increasing aggression and movement speeds
Improved infantry dodging and seeking cover
Improved group flanking
Improved group hiding
Improved group assaults in speed and consistency
Improved check body routines by differentiating between allies and enemies and adding a shared communications and group memory layer
Improved fleeing state in speed and cover seeking ability by assessing enemies within line of sight or current suppression states
Improved and fixed various aspects of civilian AI
Improved armed trucks will continuously suppress targets and will attempt to shift location if threatened.
Improved handling and threat management of armoured vehicles shifting locations
Improved FSM timings
Improved many debug markers and system messages
Improved group assessment state with better performance and more intelligent responses to enemy presence
Improved AI will attempt to suppress targets at longer ranges
Improved AI will use ‘hide’ and ‘garrison’ tactics in smarter, less intrusive manners.
Improved debug information with more salient content in Debug UI
Improved debug draw performance

Fixed Debug UI not resetting on Single player Restart
Fixed Debug UI not removing old and unused controls correctly
Fixed group hiding from being too invasive
Fixed Infantry fighting vehicles and tanks unwillingness to destroy buildings held by enemies.
Fixed AI units becoming stuck in ‘ATTACK’ pattern when an enemy is incapacitated with ACE3 enabled.
Fixed civilian AI running in place
Fixed Static artillery (mortars and modded guns) not resetting after a fire mission.
Fixed AI less likely to drop prone away from cover
Fixed packing and unpacking static weapons. Occasionally modded weapons would fail to register. Function more reliable overall.
Fixed units that have gone through a contact state will always re-assess.
Fixed units without ready weapons attempting to assault into CQB!
Fixed friendly fire issue with contact state

Changed lambs_wp_fnc_taskReset now returns a group instead of boolean.

Removed CQB formations***

This is the long-awaited full structural improvement and rewrite of the mod. It comes with a
fresh new FSM and reorganised and improved functions. In truth, the listed changelog does
not do it justice as nearly every function has been improved or expanded. Listing all changes
would add page upon page.

Tactically, the AI is smarter than ever. Individually, the new FSM brings an entirely new
experience in fighting AI. Responsiveness has been much improved, and the AI is more
likely to apply suppressive fire to known and suspected enemy positions. Group assessment
stages have been equally improved and the group tactics have been painstakingly tested and
tried and expanded.

Units engaged in CQB will share targets and building information within their own group. This adds a group memory layer, which means units will try to search through and attack
suspected enemy positions in a coordinated manner. Units that are out of range will
contribute suppressive fire.

Reinforcements

This version also adds a simple, yet potent reinforcement system connected directly to the
information sharing feature. Reinforcing groups will make simple pre-battle assessments and
may deploy or pack static weapons, change formations, or other acts of reorganisation. As
always, it is non-invasive and is only activated on groups set by the mission maker.

Use is easy. Set a variable on the group, and this unit will now respond when allies within
radio communication range call for help. Setting the variable can be done in multiple ways:
Either through Zeus modules, Eden settings, or writing it directly to the group.

setVariable [“lambs_danger_enableGroupReinforce”, true, true];

With an entirely new FSM framework and reorganised file structure, we’re expecting some
trouble. Though rigorously tested internally, in many large scale games, there will
unquestionably be some hiccups. We will be on the ball to fix these as they come.

The new FSM brought with it some changes in functionality. Among those features which have been temporarily disabled are the CQB Formations module. The functionality exists in the back end, but the group memory feature is set to do a better job. We will listen to feedback in regards to re-implementing this in the future.

Many of the internal functions have been moved from the lambs_danger to the lambs_main module. This is part of the mod restructure, which makes the mod easier to maintain, more portable, and more customizable for the end-user. It comes with the unfortunate price of having to re-check your settings.

Finally, the team would like to give thanks to: DarkWanderer for excellent feedback on the civilian.fsm. MiszczuZPolski and Veteran29 for Polish translations and FoxnotMulder and Necrossin for Russian translations.

From the team
diwako / joko / nkenny

Steam Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=1858075458

Addendum:

* REINFORCEMENT. The reinforcement feature could do with a few more words.
Groups with the reinforcement variable set will respond to friendly information sharing events. If the enemy is known, they will move towards that location. If not, they will move to the unit calling for help.

Groups will act with increased autonomy. Based on the distance and visibility of the enemy they will: Adopt formation changes. Shoot flares. Pack and unpack carried static weapons. More types of behaviour will be added in the future. Be aware that the reinforcement feature may override existing waypoints based on the context of the situation.

The level of emergent play can be enhanced by attaching more checks to the eventhandler: “lambs_main_onReinforce”. As per our design philosophy, the default implementation remains seamless. You won’t see AI randomly stealing cars or wandering away from their assigned tasks!

** CONTACT. On first spotting, the enemy or being fired at the unit will enter a contact state. This version expands the previous behaviour by introducing an aggressive Push-through response to units that, though threatened, are not both suppressed and surprised. In the aggressive response, the enemy will suppress known or likely enemy locations and attempt to move into and through them.

All in all the AI is quicker to respond to contacts and less likely to become stuck. Getting the drop on the enemy is more important than ever!

*** CQB formations removed for this version. Their old functionality is better handled by the group memory feature. The old framework has been updated and will be re-implemented under a different guise at a future time