How to make a Single Player Battle of Britain style map. By FourCentsShy

Basically, this is about how to create an objective-like map for single player, like in Battle of Britain, or similar to what was down for the Coral Sea Single Player game.

In BoB, the game ends when all the radar towers and the factory are destroyed. In Coral Sea the game went on till all the bots were killed. The solution wasn't obvious from reading the BoB code. A Single Player BoB style map requires these things:

1. All the soldier spawns need to be tied to destructible objects, like a factory or ship.

2. None of the control points can be takeable by the other team.

3. Each object should have a bot spawn within the object so that the enemy bots will attack it.

Even with all the soldier spawns gone, the remaining bots will want to take a control point if they can and the game continues. When there are no more objectives the game just ends. Coral Sea single player doesn't end right away, because the CP in the carrier is takeable by the enemy. By making the CP not takeable, the game ends as soon as the carrier is destroyed. We can look at the part of a control point template from BoB to help explain how to set the control points:

ObjectTemplate.create ControlPoint Axis_East_Airfield
ObjectTemplate.networkableInfo ControlPointInfo
ObjectTemplate.setControlPointName Axis_Airfield
ObjectTemplate.radius 50 1
ObjectTemplate.spawnGroupId 1
ObjectTemplate.secondSpawnGroupId 2
ObjectTemplate.objectSpawnerId 1
ObjectTemplate.areaValue 50
ObjectTemplate.timeToGetControl 9999
ObjectTemplate.timeToLoseControl 9999
ObjectTemplate.disableIfEnemyInsideRadius 0
ObjectTemplate.disableWhenLosingControl 0
ObjectTemplate.loseControlWhenEnemyClose 0
ObjectTemplate.loseControlWhenNotClose 0
ObjectTemplate.unableToChangeTeam 1

The key is ObjectTemplate.unableToChangeTeam is set to 1. This will prevent the flag from being captured.

Also, to prevent losing control, everything from timeToGetControl to  loseControlWhenNotClose should be set as shown to prevent the side from losing control and spawn points until the object is destroyed.

You can get bots to spawn in vehicles by adding a spawnpoint next to the vehicle (within the entry radius) and then in the
SoldierSpawnTemplates.con file add the ObjectTemplate.setAIEnterOnSpawn 1 as shown in the example from BOB:

ObjectTemplate.create SpawnPoint SpawnAI_Axis_Airfield_1
ObjectTemplate.setSpawnId 21
ObjectTemplate.setGroup 3
ObjectTemplate.setAIEnterOnSpawn 1

To Create spawn point groups only for bots add the line: spawnPointManager.OnlyForAI 1 to the
SpawnPointManagerSettings.con file as in the example from BOB: 3
spawnPointManager.groupTeam 1
spawnPointManager.groupEnableToChangeTeam 0
spawnPointManager.groupIcon test1.tga
spawnPointManager.OnlyForAI 1