Updated Custom campaigns (markdown)

Dan Albert 2023-10-01 12:18:41 -07:00
parent a3c2a47cee
commit 47df0cdc01

@ -37,6 +37,7 @@ This YAML file defines the following fields (unless otherwise stated, fields are
* `miz`: The name of the miz file (in the same `resources\campaigns` directory) that describes the campaign.
* `performance`: How much performance your campaign need to run smoothly (3 for biggest scenarios that will have huge impact on game performance, 0 for the smallest, performance-friendly scenarios)
* `squadrons`: Defines the default squadron configuration at the beginning of the campaign. Explained in the next section.
* `control_points`: Defines additional control point properties. Explained below (search for "Control point properties").
* `advanced_iads`: (Optional, Default: false) Defines if the campaign supports the advanced iads functions using Comms, Power and CommandCenters (values: `true | false`)
* `iads_config`: (Optional) Defines the configuration of the IADS Network used in the campaign. Description found here: [IADS Configuration](#iads-configuration)
@ -49,6 +50,7 @@ squadrons:
BASE_NAME_OR_ID:
- primary: PRIMARY_TASK
secondary: SECONDARY_TASKS
size: SQUADRON_SIZE
aircraft:
- PREFERRED_AIRCRAFT_1
- PREFERRED_AIRCRAFT_2
@ -60,6 +62,9 @@ squadrons:
* `BASE_NAME_OR_ID`: The name of the base (in the case of a FOB, LHA, or CV) as defined by the group in the campaign miz file, or the ID number of the airfield as defined by pydcs. For example, [the ID of Anapa-Vityazevo is 12](https://github.com/pydcs/dcs/blob/master/dcs/terrain/caucasus/airports.py). Refer to the pydcs source for airbase ID numbers.
* `PRIMARY_TASK`: Defines the primary task type for the squadron. If none of the preferred aircraft are available, a squadron will be generated using an aircraft that is capable of at least the primary task type. The allowed values here are the same as the values of the task types in `FlightType` found in https://github.com/dcs-liberation/dcs_liberation/blob/develop/game/ato/flighttype.py (the same as the name of the mission type shown in the Liberation UI).
* `SECONDARY_TASKS`: Defines secondary tasks that the squadron will be allowed to perform if the squadron is capable of them. This can be either the literal strings `any`, `air-to-air`, or `air-to-ground`, or a list of specific task types. This property is optional. If not specified the auto-planner will only assign those squadrons to the primary task type.
* `SQUADRON_SIZE`: The size of the squadron. This is both the maximum size of the squadron and the size of the squadron at the start of the game. The default is 12. Reduce or increase the size of the squadron as desired, but make sure that there is enough parking for every aircraft at each base.
If your campaign starts with only a small amount of parking available to the player but you want players to be able to bring in more aircraft as they capture bases, create on off-map spawn to hold those squadrons so they can transfer into the theater later. See the `ferry_only` control point property.
* `PREFERRED_AIRCRAFT`: A list of either aircraft type names (using the same names as [custom factions](https://github.com/dcs-liberation/dcs_liberation/wiki/Custom-Factions)), or a list of squadron names. Each name will be tried in order and the first option valid for the coalition will be selected. If no preferred aircraft are compatible with the coalition, a squadron will be automatically generated based on `PRIMARY_TASK`.
For a complete example, see the [Black Sea campaign description](https://github.com/dcs-liberation/dcs_liberation/blob/develop/resources/campaigns/black_sea.yaml).
@ -72,6 +77,19 @@ When choosing preferred aircraft, although the property is optional, it is best
A best practice to follow is to set up one base per side as a transit hub. This is preferably a large airfield near the rear of the conflict (not easily captured or destroyed), that has the ability to produce ground units (has a factory), has a cargo aircraft squadron, and optionally has a port. Depending on the location of this base it may also be a good home for AEW&C and refueling squadrons (and a BARCAP squadron to defend those other squadrons).
### Control point properties
This field defines properties of the control point that are not defined directly in the miz. The field has the following format:
```yaml
control_points:
BASE_NAME_OR_ID:
ferry_only: FERRY_ONLY
...
```
* `FERRY_ONLY`: Set to `true` if this control point should not be used to sortie missions other than ferry. This is useful if you need an off-map location for holding reserve squadrons that the player can bring in after capturing additional aircraft parking, but you do not want those squadrons to be used directly from this base.
### IADS configuration
Liberation can automatically generate the IADS network for you but if you want to have more control about the network and which assets are connected with each other it is possible to define the whole IADS network in the campaign.yaml. The iads configuration will only be used when the campaign supports the advanced iads (set `advanced_iads` to true) and the checkbox to use the Advanced mode is checked during campaign generation.