My primary concern with the spawning was to make it as customizable as possible for the mapper. In Kismet, you can add "Spawn Controller" blocks. A spawn controller dynamically allows a team to spawn in a predefined area. Inside the controller, you can define constraints that are verified for a control volume, after each reinforcement wave. The constraints are:
-Minimum/Maximum number of enemies or friendlies in a control zone.
-Minimum/Maximum of the forces ratio in a control zone.
You assign a control zone to each constraint block. Constraint blocks can be combined with AND OR and NOT operators. Lets illustrate that with my implementation in CTF-Spartanovka.
In CTF-Spartanovka, axis attack from the church, and allies attack from the town hall. For simplification, i'll explain only the axis spawn. Axis can spawn in housing block 1 as an alternate spawn. The condition tree I defined is:
Code:
if([Axis has at least 1 friendly in housing block 1 &&
Axis has at least 75% of the forces in housing block 1] ||
[Axis has at least 1 friendly in housing block 2 &&
Axis has at least 75% of the forces in housing block 2 &&
Axis has 0 enemy in housing block 1])
{
Enable the optional spawn in housing block 1.
}
else
{
Disable the optional spawn in housing block 1.
}
These conditions are defined in the Spawn Controller, in Kismet. Two control volumes are required in the example above, one around the housing block 1, and one around housing block 2. And the spawn controller controls the Spawn Volume of housing block 1.
On a side note, spawn on SL is always available, just like in TE.