Bien, vamos a ver algunas posibilidades que nos ofrece el fichero battle_of_brandywine.xml para modificar.
En este fichero vienen codificadas las dos alianzas que se enfrentan, y en cada una sus datos aparecen entre la marca
y
Cada alianza puede ser jugable o no. Si no pone nada es jugable, y si pone
<non_playable></non_playable>
no lo es. Para hacer a los USA jugables tenemos que eliminar esa línea, así como la mayoría del script que situa a las unidades en sus posiciones.
Justo antes del </alliance> final tenemos las condiciones de victoria y la posición hacia la que deben huir las unidades:
<victory_condition>
<kill_or_rout_enemy></kill_or_rout_enemy>
</victory_condition>
<rout_position x ="0.0" y = "2000.0"></rout_position>
En cada alianza hay un ejército, pero podría haber más. Sus datos aparecen entre
y
Lo primero que nos aparecen son datos generales, por ejemplo:
<time_period>late</time_period>
<faction>united_states</faction>
<deployment_area>
<centre x="0.0" y="0.0"/>
<width metres="2000.0"/>
<height metres="2000.0"/>
<orientation radians="0"/>
</deployment_area>
<camera_start_position x="50.0" y="300.0" z="300.0"/>
<camera_target_position x="216.0" y="140.0" z="-181.0"/>
<campaign_ai_battle_hints aggression="0.1"/>
Podríamos cambiar la facción, pero no estamos seguros de qué unidades están accesibles en la demo, así que lo más seguro es mantener una facción que sepamos que existe.
Luego está definida la zona de despliegue, posición, anchura y largura y orientación, así como la posición inicial de la cámara.
Al final hay una indicación del comportamiento del ejército cuando lo maneja la IA. No se conoce, que yo sepa, el efecto que tiene cambiar este parámetro.
Luego vienen las unidades que componen el ejército con sus diferentes datos. Por ejemplo:
<unit unit_category="infantry" num_soldiers="60" script_name="america_euro_light_infantry_01">
<unit_type type="euro_light_infantry"/>
<position x="-325.52" y="8.26"/>
<orientation radians="5.81"/>
<width metres="21.60"/>
<unit_capabilities>
<firing_drill>fire_volley</firing_drill>
<special_ability>wooden_stakes</special_ability>
</unit_capabilities>
<unit_experience level="0"/>
</unit>
En la primera línea tenemos la categoría (infantería), el número de soldados (no parece tener límite) y el nombre de script, que si no se usa...
Luego tenemos el tipo: infantería ligera europea. Después la posición y el despliegue (anchura).
Una parte muy interesante es la de capacidades, en las que aparecen dos, pero pueden ser hasta tres en infantería (quizá más??) y cuatro en artillería:
firing_drill: asignado a fire_volley que se puede sustituir por rank_fire
special_ability: asignado a wooden_stakes, pero se sabe que puede ser también chevaux_de_frise, earthworks, square_formation, fire_and_advance, dismount (dragones, no sé si se puede asignar a cualquier caballería), gabionade (para artillería), unlimber (para artillería)
bayonet_type (infantería): aparece en otras unidades como ring_bayonets, pero se puede poner, socket_bayonets, o plug_bayonets.
shot_type (artillería): round_shot, canister, sharpnel_shot
Al final está el nivel de experiencia de la unidad, que puede llegar hasta 3 (no sé si más).
La adición de una unidad se hace copiando y pegando la sección entera de la unidad, y moviendo un poco la posición.
Incluso se puede añadir un ejército entero, copiando toda la sección entre <army> y </army> y quitando o añadiendo unidades y moviendo la posición de despliegue.
En las batallas navales las unidades se sustituyen por barcos, que llevan su propio nombre:
<ship>
<ship_type type="3rd_rate_admiral_french" name="French Ship"/>
<position x="0.00" y="1000.00"/>
<orientation radians="3.14"/>
<admiral>
<name>French Admiral</name>
</admiral>
<ship_experience level="0"/>
</ship>
Aquí hay menos cambios que se puedan hacer, excepto el tipo de barco y el nivel de experiencia.