Creating Landing Zones for Boat AI

**Creating Landing Zones** *By HDN*

AILandingZone . createLandingZone name x1/z1 x2/z2 direction

* Landing Zones are created much like Strategic Areas with a bottom-left coordinate and a top-right coordinate.
* Unlike Strategic Areas, Landing Zones use real map coordinates for x2/z2 (in other words, you do not have to use xx2 = (x2 - x1) / 2 + x1 )
* Statement appears after all Strategic Area definitions (AIStrategicArea.Create)

**Direction**

 Landing Zones require a direction from which the bots will attempt to land.
 These directions are hard coded as LZZMax, LZXMax, LZZMin, LZXMin. They are defined as follows:

* LZZMax - Towards Z Max - North
* LZXMax - Towards X Max - East
* LZZMin - Towards Z Zero - South
* LZXMin - Towards X Zero - West

The direction specifies on which edge of the Landing Zone box the bots will travel towards and attempt to land on(when they reach the end of the LandingCraft3 pathmap).

 The Landing Zone direction can be seen in game with bot stats on as a dark green line beneath the lighter green edge of the Landing Zone box.

 An Example:

* AILandingZone . createLandingZone WestLanding 816/816 898/946 LZZMin

Creates a Landing Zone called WestLanding with a box at the specified coordinates with a direction towards Z zero (west).

 Attaching Landing Zones to Strategic Areas

AIStrategicArea.attachLandingZone name

* Attach a landing zone to a Strategic Area. Called when creating a Strategic Area.
* Typically placed after AIStrategicArea.AddAllowedVehicleGroup and before AIStrategicArea.AddNeighbour statements.
* Strategic Areas can have more than one Landing Zone

AIStrategicArea.addLandingZoneUnit unitName

* Allow unit to use Landing Zone (?) Must be added to a Strategic Area that has a Landing Zone attached.
* Can appear before or after AIStrategicArea.attachLandingZone statement, but only once per Strategic Area.
* unitName is LandingCraft in most (all?) of the original maps, possible to change to nother types of vehicles?

Once a Landing Zone has been attached to a Strategic Area, it appears linked in game with a green line going from the center of the Landing Zone box to the center of the Strategic Area box (assuming you have bot stats on).

 An Example:

* AIStrategicArea.attachLandingZone WestLanding
* AIStrategicArea.attachLandingZone CenterLanding
* AIStrategicArea.addLandingZoneUnit LandingCraft

Notes on using Landing Craft and Landing Zones

 The following files must have a specific code block encapsulating all statements:

* AIpathfinding.con
* AI/conditions.con
* AI/prerequsites.con
* AI/StrategicAreas.con
* AI/Strategies.con

The code is as follows:

```
 if v_arg1 == host

```

```
 *... file contents ...*

```

```
 endif

```

additionally AI.con must have the following blocks:

```
 if v_arg1 == host

```

```
 *... every statement from aiSettings.setWorldMapSize to     ai.botStatisticUpdateSpeed ...*

```

```
 endif

```

```
 run AIPathFinding.con v_arg1

```

```
 run ai/StrategicAreas.con v_arg1

```

```
 run ai/conditions.con v_arg1

```

```
 run ai/prerequisites.con v_arg1

```

```
 run ai/Strategies.con v_arg1

```

```
 if v_arg1 == host

```

```
 *... list of strategies ...*

```

```
 endif

```

Without the v\_arg1 blocks thebots will not use landing craft. The will get in landing craft, but they will not move.

 Maps without landing crafts or boats can safely have these code blocks as well (all Secret Weapons maps do).

 It appears this v\_arg1 code block was added sometime around Secret Weapons because none of the original or Road To Rome maps have the code in their base rfa's. The code appears in later rfa revisions for the affected water based maps.

 Please note that even if a map does include the above code, it will not necessarily work with landing craft until appropriate strategies are implemented for landing craft.