Another recent (private) Dev Team Forum post:
ORIGINAL: berto
With every new scenario, almost without fail, there are new scripting challenges, and opportunities. The last scenario of the Ia Drang Valley trilogy, VN_651117_LZ_Albany, was no exception.
In that scenario:
Led by three US recon units (turquoise circle), the 2nd/7th AirCav is to advance up the path on the way to LZ Albany.
This reminded me: I hadn't implemented the CSEE reconnoiter() function yet! (From the LUA_FUNCTIONS_REFERENCE.txt: "NOTE: Not yet implemented.")
Better, with today's release:
Implemented a couple new SAI movement commands: move_recon(), move_roam().
With the appropriate move_recon() command, for example
-- _2ND_7TH_AIRMOBILE_INF_BTN_65_M16_B_AIRMOBILE_1 recon
do local units = join({_1_RECONNAISSANCE_5, _2_RECONNAISSANCE_48, _3_RECONNAISSANCE_49})
move_recon(units, OBJECTIVES[1], NODIR, 4)
-- no further defend orders, expendable, just keep moving around LZ Albany
end
the ordered units will
[*]save APs for later recon
[*]do the indicated movement
[*]do the recon operation [note: not with certainty; no guarantee of successful recon]
For example, from an actual playtest game:
You will see where the US recon units (turquoise circles) have successfully recon'ed, successfully unconcealed and spotted, NVA units nearby (magenta circles). Note from the green movement arrows that the US are still moving, indicating that in fact a (successful) recon has taken place.
This is new. This recon capability has never been available to either the LAI or SAI before.
It is also better, I think, to integrate the recon fuction with movement in the move_recon() function than to fuss with a separate reconnoiter() function. If you want recon in place, without movement, you can if you wish do
move_recon(trackid, counter_hex(trackid))
which is effectively identical in effect to
reconnoiter(trackid)
In this scenario, but more so in the earlier scripted VN_620328_Thanh_Tan_Island scenario, it also poses the question: What about wandering movement?
Unlike most of WWII, and the Middle East conflicts, the Vietnam War was a guerilla war, where formal geographic objectives were unimportant, where the purpose was to search and destroy the hidden enemy. And sometimes to find out his supply caches.
With the earlier move_rush() and move_norush(), we can direct units to move from point A to point B. But as the LAI handles it, the movement is by the fastest route possible, in a straight line if possible.
What if we don't want that single-minded directedness? What if we want the units to wander about along the way? That is where the new move_roam() CSEE function factors in. In test use:
In the screenshot, the three recon platoons begin at the map's south edge, and are directed to move_roam() up more or less along the path from hex 8,30 all the way up to hex 8,0. In the screenshot, about four or five turns into the test scenario, you can see where the units have scattered away from the path, more or less. What you don't see here is the unit roaming as they move northward. (With Chris' help, I may soon prepare another video of the move_roam() function in action.)
Just know that now we have a SAI method to have units "patrol" in a meandering fashion. This will be a huge win for scripting search and destroy missions in future.
(move_roam() is still a work-in-progress(). I still need to tweak the effect of the dir & radius function inputs.)
It deserves to be repeated: The Vietnam War is not the same type of conflict as WWII etc. With every subtle nuance we can add to the game play, and to the CSEE and SAI scripting, we bring the Vietnam conflict better to life.