Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
5286 lines (5205 sloc) 375 KB
<?xml version="1.0"?>
<!DOCTYPE game SYSTEM "game.dtd">
<game>
<info name="Pact of Steel 2" version="3.8"/>
<!-- A MOD of original POS by VEQRYN
The purpose is to provide a fun game that shows off many features of TripleA as well include
documentation inside the xml in order to show map makers how to use all the features.
If you have questions on how to use something, or think my documentation is not clear enough,
please go to the forum and make a post: https://forums.triplea-game.org/category/28/map-making
-->
<!-- loader is required by all xmls. some xmls may use a different loader, like a puzzle game -->
<loader javaClass="games.strategy.triplea.TripleA"/>
<!-- triplea minimumVersion is the minimum version number of TripleA that can play this game. Many new xmls require features not present in older versions of TripleA. Should be "xx.xx.xx.xx", "xx.xx.xx", "xx.xx", or "xx".
An example would be a map using 'isInfrastructure' unit property would need at least TripleA version "1.2.6", while a map using 'whenCapturedChangesInto' would need at least TripleA version "1.4" -->
<triplea minimumVersion="1.8"/>
<!-- diceSides defaults to 6 if not in the xml. Can be set to any number between 1 and 200. Setting diceSides to a number other than 6 can result in unexpected behavior. -->
<diceSides value="6"/>
<!-- variableList provides a way to define "variables" which represent a list of elements in order to manage that list in a single place and avoid copying-pasting it multiple times. Whenever the variable name is specified in attachments using $nameOfVariable$, its replaced with a colon delimited string of the elements (ex. "$russianAntiAirTargets$" would be replaced by "russianFighter:russianTacticalBomber". They can be used in attachment "foreach" attributes as well to allow having an attachment "template" which then generates multiple attachments by looping over the elements and replacing each element into @nameOfVariable@. This is particularly useful for repetitive attachments where only a few values change across them (see "foreach" below in attachments for more detail/examples). -->
<!--<variableList>
<variable name="AntiTankTargets">
<element name="germanMech.Infantry"/>
<element name="germanTank"/>
<element name="germanHeavyTank"/>
<element name="germanHeavyTank-damaged"/>
<element name="russianMech.Infantry"/>
<element name="russianTank"/>
<element name="russianHeavyTank"/>
<element name="russianHeavyTank-damaged"/>
<element name="americanMech.Infantry"/>
<element name="americanTank"/>
<element name="americanHeavyTank"/>
<element name="americanHeavyTank-damaged"/>
<element name="italianMech.Infantry"/>
<element name="italianTank"/>
<element name="italianHeavyTank"/>
<element name="italianHeavyTank-damaged"/>
<element name="japaneseMech.Infantry"/>
<element name="japaneseTank"/>
<element name="japaneseHeavyTank"/>
<element name="japaneseHeavyTank-damaged"/>
<element name="britishMech.Infantry"/>
<element name="britishTank"/>
<element name="britishHeavyTank"/>
<element name="britishHeavyTank-damaged"/>
<element name="chineseMech.Infantry"/>
<element name="chineseTank"/>
<element name="spanishTank"/>
<element name="brazilianTank"/>
<element name="turkishTank"/>
<element name="swedishTank"/>
</variable>
<variable name="Infantry">
<element name="germanInfantry"/>
<element name="russianInfantry"/>
</variable>
<variable name="Barracks">
<element name="germanBarracks"/>
<element name="russianBarracks"/>
</variable>
<variable name="TriggerPlayers">
<element name="Germany"/>
<element name="Brazil"/>
</variable>
<variable name="Phases">
<element name="germanyBattle"/>
<element name="brazilBattle"/>
</variable>-->
<!-- This shows how variables can be chained together to combine lists of elements -->
<!--<variable name="russianAntiAirTargets">
<element name="russianFighter"/>
<element name="russianTacticalBomber"/>
</variable>
<variable name="americanAntiAirTargets">
<element name="americanFighter"/>
<element name="americanTacticalBomber"/>
</variable>
<variable name="AntiAirTargets">
<element name="$russianAntiAirTargets$"/>
<element name="$americanAntiAirTargets$"/>
</variable>-->
<!-- Having an element that is empty ("") means that whatever option that is referenced by in a foreach using @nameOfVariable@ will skip that option (see attachment "foreach" for more details) -->
<!--<variable name="Players">
<element name="Germany"/>
<element name=""/>
</variable>
</variableList>-->
<map>
<!-- Territory Definitions -->
<territory name="Eastern Canada"/>
<territory name="Italy"/>
<territory name="Sicily"/>
<territory name="Sardinia"/>
<territory name="Central China"/>
<territory name="East Balkans"/>
<territory name="West Balkans"/>
<territory name="Greece"/>
<territory name="Germany"/>
<territory name="Midway"/>
<territory name="Greenland"/>
<territory name="Union of South Africa"/>
<territory name="Australia"/>
<territory name="Kenya"/>
<territory name="Manchuria"/>
<territory name="Alaska"/>
<territory name="Persia"/>
<territory name="French West Africa"/>
<territory name="Turkey"/>
<territory name="Belgian Congo"/>
<territory name="India"/>
<territory name="Soviet Far East"/>
<territory name="Mexico"/>
<territory name="Spain"/>
<territory name="Afghanistan"/>
<territory name="Philipine Islands"/>
<territory name="Archangel"/>
<territory name="Novisibirsk"/>
<territory name="Eire"/>
<territory name="Mozambique"/>
<territory name="Italian East Africa"/>
<territory name="Eastern Europe"/>
<territory name="Western United States"/>
<territory name="Karelia S.S.R."/>
<territory name="Kwangtung"/>
<territory name="Brazil"/>
<territory name="Borneo"/>
<territory name="French Madagascar"/>
<territory name="Yakut S.S.R."/>
<territory name="Hawaiian Islands"/>
<territory name="East Indies"/>
<territory name="Saudia Arabia"/>
<territory name="Switzerland"/>
<territory name="Norway"/>
<territory name="French Indochina"/>
<territory name="West Indies"/>
<territory name="Kazakh S.S.R."/>
<territory name="Venezuala"/>
<territory name="Trans-Jordan"/>
<territory name="United Kingdom"/>
<territory name="Western Europe"/>
<territory name="Rio De Oro"/>
<territory name="Angloa"/>
<territory name="New Zealand"/>
<territory name="Sahara"/>
<territory name="French Equatorial Africa"/>
<territory name="Gibraltar"/>
<territory name="Solomon Islands"/>
<territory name="Caucus"/>
<territory name="Sinkiang"/>
<territory name="Algeria"/>
<territory name="Wake Island"/>
<territory name="Himilaya"/>
<territory name="Evanki National Okrug"/>
<territory name="Sweden"/>
<territory name="Libya"/>
<territory name="Ukraine S.S.R."/>
<territory name="Mongolia"/>
<territory name="West Russia"/>
<territory name="Peru"/>
<territory name="Eastern United States"/>
<territory name="Belorussia"/>
<territory name="Burytia S.S.R."/>
<territory name="Russia"/>
<territory name="Anglo Egypt"/>
<territory name="New Guinea"/>
<territory name="Okinawa"/>
<territory name="Panama"/>
<territory name="Western Canada"/>
<territory name="Central United States"/>
<territory name="Argentina"/>
<territory name="China"/>
<territory name="Japan"/>
<territory name="Caroline Islands"/>
<territory name="15B Sea Zone" water="true"/>
<territory name="28 Sea Zone" water="true"/>
<territory name="56 Sea Zone" water="true"/>
<territory name="7 Sea Zone" water="true"/>
<territory name="31 Sea Zone" water="true"/>
<territory name="27 Sea Zone" water="true"/>
<territory name="5 Sea Zone" water="true"/>
<territory name="23 Sea Zone" water="true"/>
<territory name="53 Sea Zone" water="true"/>
<territory name="42 Sea Zone" water="true"/>
<territory name="59 Sea Zone" water="true"/>
<territory name="30 Sea Zone" water="true"/>
<territory name="50 Sea Zone" water="true"/>
<territory name="54 Sea Zone" water="true"/>
<territory name="43 Sea Zone" water="true"/>
<territory name="41 Sea Zone" water="true"/>
<territory name="4 Sea Zone" water="true"/>
<territory name="44 Sea Zone" water="true"/>
<territory name="11 Sea Zone" water="true"/>
<territory name="51 Sea Zone" water="true"/>
<territory name="25 Sea Zone" water="true"/>
<territory name="29 Sea Zone" water="true"/>
<territory name="34 Sea Zone" water="true"/>
<territory name="12 Sea Zone" water="true"/>
<territory name="32 Sea Zone" water="true"/>
<territory name="46 Sea Zone" water="true"/>
<territory name="63 Sea Zone" water="true"/>
<territory name="8 Sea Zone" water="true"/>
<territory name="26 Sea Zone" water="true"/>
<territory name="38 Sea Zone" water="true"/>
<territory name="3 Sea Zone" water="true"/>
<territory name="37 Sea Zone" water="true"/>
<territory name="6 Sea Zone" water="true"/>
<territory name="9 Sea Zone" water="true"/>
<territory name="61 Sea Zone" water="true"/>
<territory name="39 Sea Zone" water="true"/>
<territory name="36 Sea Zone" water="true"/>
<territory name="49 Sea Zone" water="true"/>
<territory name="64 Sea Zone" water="true"/>
<territory name="45 Sea Zone" water="true"/>
<territory name="57 Sea Zone" water="true"/>
<territory name="52 Sea Zone" water="true"/>
<territory name="1 Sea Zone" water="true"/>
<territory name="48 Sea Zone" water="true"/>
<territory name="17 Sea Zone" water="true"/>
<territory name="10 Sea Zone" water="true"/>
<territory name="15 Sea Zone" water="true"/>
<territory name="2 Sea Zone" water="true"/>
<territory name="33 Sea Zone" water="true"/>
<territory name="14 Sea Zone" water="true"/>
<territory name="13 Sea Zone" water="true"/>
<territory name="55 Sea Zone" water="true"/>
<territory name="35 Sea Zone" water="true"/>
<territory name="16 Sea Zone" water="true"/>
<territory name="19 Sea Zone" water="true"/>
<territory name="60 Sea Zone" water="true"/>
<territory name="62 Sea Zone" water="true"/>
<territory name="21 Sea Zone" water="true"/>
<territory name="22 Sea Zone" water="true"/>
<territory name="18 Sea Zone" water="true"/>
<territory name="47 Sea Zone" water="true"/>
<territory name="58 Sea Zone" water="true"/>
<territory name="40 Sea Zone" water="true"/>
<territory name="24 Sea Zone" water="true"/>
<territory name="20 Sea Zone" water="true"/>
<!-- Territory Connections -->
<connection t1="Italy" t2="Sicily"/>
<connection t1="Italy" t2="14 Sea Zone"/>
<connection t1="Italy" t2="West Balkans"/>
<connection t1="Italy" t2="Germany"/>
<connection t1="Italy" t2="Western Europe"/>
<connection t1="Sicily" t2="14 Sea Zone"/>
<connection t1="Sicily" t2="13 Sea Zone"/>
<connection t1="Sardinia" t2="13 Sea Zone"/>
<connection t1="Sardinia" t2="14 Sea Zone"/>
<connection t1="West Balkans" t2="Greece"/>
<connection t1="West Balkans" t2="East Balkans"/>
<connection t1="West Balkans" t2="Germany"/>
<connection t1="West Balkans" t2="14 Sea Zone"/>
<connection t1="Greece" t2="East Balkans"/>
<connection t1="Greece" t2="14 Sea Zone"/>
<connection t1="Greece" t2="15B Sea Zone"/>
<connection t1="15B Sea Zone" t2="14 Sea Zone"/>
<connection t1="15B Sea Zone" t2="15 Sea Zone"/>
<connection t1="15B Sea Zone" t2="16 Sea Zone"/>
<connection t1="15B Sea Zone" t2="East Balkans"/>
<connection t1="16 Sea Zone" t2="East Balkans"/>
<connection t1="Sweden" t2="Norway"/>
<connection t1="Sweden" t2="5 Sea Zone"/>
<connection t1="Switzerland" t2="Germany"/>
<connection t1="Switzerland" t2="Western Europe"/>
<connection t1="Switzerland" t2="Italy"/>
<connection t1="2 Sea Zone" t2="Eire"/>
<connection t1="12 Sea Zone" t2="Spain"/>
<connection t1="13 Sea Zone" t2="Spain"/>
<connection t1="15 Sea Zone" t2="Turkey"/>
<connection t1="16 Sea Zone" t2="Turkey"/>
<connection t1="17 Sea Zone" t2="Rio De Oro"/>
<connection t1="19 Sea Zone" t2="Venezuala"/>
<connection t1="20 Sea Zone" t2="Venezuala"/>
<connection t1="21 Sea Zone" t2="Peru"/>
<connection t1="21 Sea Zone" t2="Argentina"/>
<connection t1="25 Sea Zone" t2="Argentina"/>
<connection t1="27 Sea Zone" t2="Angloa"/>
<connection t1="33 Sea Zone" t2="Mozambique"/>
<connection t1="34 Sea Zone" t2="Saudia Arabia"/>
<connection t1="Panama" t2="Venezuala"/>
<connection t1="Venezuala" t2="Brazil"/>
<connection t1="Venezuala" t2="Peru"/>
<connection t1="Brazil" t2="Peru"/>
<connection t1="Brazil" t2="Argentina"/>
<connection t1="Peru" t2="Argentina"/>
<connection t1="Eire" t2="United Kingdom"/>
<connection t1="Gibraltar" t2="Spain"/>
<connection t1="Spain" t2="Western Europe"/>
<connection t1="Caucus" t2="Turkey"/>
<connection t1="Kazakh S.S.R." t2="Afghanistan"/>
<connection t1="Himilaya" t2="Afghanistan"/>
<connection t1="India" t2="Afghanistan"/>
<connection t1="India" t2="Himilaya"/>
<connection t1="Sinkiang" t2="Himilaya"/>
<connection t1="China" t2="Himilaya"/>
<connection t1="French Indochina" t2="Himilaya"/>
<connection t1="Novisibirsk" t2="Mongolia"/>
<connection t1="Sinkiang" t2="Mongolia"/>
<connection t1="Manchuria" t2="Mongolia"/>
<connection t1="China" t2="Mongolia"/>
<connection t1="Sinkiang" t2="Central China"/>
<connection t1="China" t2="Central China"/>
<connection t1="Central China" t2="Mongolia"/>
<connection t1="Central China" t2="Himilaya"/>
<connection t1="Yakut S.S.R." t2="Mongolia"/>
<connection t1="Burytia S.S.R." t2="Mongolia"/>
<connection t1="Persia" t2="Afghanistan"/>
<connection t1="Persia" t2="Turkey"/>
<connection t1="Trans-Jordan" t2="Turkey"/>
<connection t1="Trans-Jordan" t2="Saudia Arabia"/>
<connection t1="Anglo Egypt" t2="Sahara"/>
<connection t1="Libya" t2="Sahara"/>
<connection t1="Algeria" t2="Sahara"/>
<connection t1="French West Africa" t2="Sahara"/>
<connection t1="French Equatorial Africa" t2="Sahara"/>
<connection t1="French West Africa" t2="Rio De Oro"/>
<connection t1="Belgian Congo" t2="Angloa"/>
<connection t1="Kenya" t2="Angloa"/>
<connection t1="Kenya" t2="Mozambique"/>
<connection t1="Union of South Africa" t2="Angloa"/>
<connection t1="Union of South Africa" t2="Mozambique"/>
<connection t1="1 Sea Zone" t2="Eastern Canada"/>
<connection t1="1 Sea Zone" t2="2 Sea Zone"/>
<connection t1="1 Sea Zone" t2="8 Sea Zone"/>
<connection t1="1 Sea Zone" t2="9 Sea Zone"/>
<connection t1="2 Sea Zone" t2="Greenland"/>
<connection t1="2 Sea Zone" t2="United Kingdom"/>
<connection t1="2 Sea Zone" t2="3 Sea Zone"/>
<connection t1="2 Sea Zone" t2="8 Sea Zone"/>
<connection t1="3 Sea Zone" t2="4 Sea Zone"/>
<connection t1="3 Sea Zone" t2="6 Sea Zone"/>
<connection t1="3 Sea Zone" t2="United Kingdom"/>
<connection t1="3 Sea Zone" t2="Norway"/>
<connection t1="4 Sea Zone" t2="Karelia S.S.R."/>
<connection t1="4 Sea Zone" t2="Archangel"/>
<connection t1="5 Sea Zone" t2="6 Sea Zone"/>
<connection t1="5 Sea Zone" t2="Norway"/>
<connection t1="5 Sea Zone" t2="Karelia S.S.R."/>
<connection t1="5 Sea Zone" t2="Eastern Europe"/>
<connection t1="5 Sea Zone" t2="Germany"/>
<connection t1="5 Sea Zone" t2="Western Europe"/>
<connection t1="6 Sea Zone" t2="7 Sea Zone"/>
<connection t1="6 Sea Zone" t2="United Kingdom"/>
<connection t1="6 Sea Zone" t2="Norway"/>
<connection t1="6 Sea Zone" t2="Western Europe"/>
<connection t1="7 Sea Zone" t2="8 Sea Zone"/>
<connection t1="7 Sea Zone" t2="12 Sea Zone"/>
<connection t1="7 Sea Zone" t2="United Kingdom"/>
<connection t1="7 Sea Zone" t2="Western Europe"/>
<connection t1="8 Sea Zone" t2="9 Sea Zone"/>
<connection t1="8 Sea Zone" t2="12 Sea Zone"/>
<connection t1="8 Sea Zone" t2="United Kingdom"/>
<connection t1="9 Sea Zone" t2="10 Sea Zone"/>
<connection t1="9 Sea Zone" t2="11 Sea Zone"/>
<connection t1="9 Sea Zone" t2="12 Sea Zone"/>
<connection t1="9 Sea Zone" t2="Eastern Canada"/>
<connection t1="10 Sea Zone" t2="11 Sea Zone"/>
<connection t1="10 Sea Zone" t2="19 Sea Zone"/>
<connection t1="10 Sea Zone" t2="Eastern United States"/>
<connection t1="10 Sea Zone" t2="Panama"/>
<connection t1="11 Sea Zone" t2="12 Sea Zone"/>
<connection t1="11 Sea Zone" t2="18 Sea Zone"/>
<connection t1="11 Sea Zone" t2="19 Sea Zone"/>
<connection t1="12 Sea Zone" t2="13 Sea Zone"/>
<connection t1="12 Sea Zone" t2="17 Sea Zone"/>
<connection t1="12 Sea Zone" t2="18 Sea Zone"/>
<connection t1="12 Sea Zone" t2="Algeria"/>
<connection t1="13 Sea Zone" t2="14 Sea Zone"/>
<connection t1="13 Sea Zone" t2="Gibraltar"/>
<connection t1="13 Sea Zone" t2="Western Europe"/>
<connection t1="13 Sea Zone" t2="Algeria"/>
<connection t1="14 Sea Zone" t2="15 Sea Zone"/>
<connection t1="14 Sea Zone" t2="Libya"/>
<connection t1="15 Sea Zone" t2="34 Sea Zone"/>
<connection t1="15 Sea Zone" t2="Trans-Jordan"/>
<connection t1="15 Sea Zone" t2="Anglo Egypt"/>
<connection t1="16 Sea Zone" t2="East Balkans"/>
<connection t1="16 Sea Zone" t2="Ukraine S.S.R."/>
<connection t1="16 Sea Zone" t2="Caucus"/>
<connection t1="17 Sea Zone" t2="18 Sea Zone"/>
<connection t1="17 Sea Zone" t2="22 Sea Zone"/>
<connection t1="17 Sea Zone" t2="23 Sea Zone"/>
<connection t1="17 Sea Zone" t2="French West Africa"/>
<connection t1="18 Sea Zone" t2="19 Sea Zone"/>
<connection t1="18 Sea Zone" t2="22 Sea Zone"/>
<connection t1="18 Sea Zone" t2="Brazil"/>
<connection t1="19 Sea Zone" t2="20 Sea Zone"/>
<connection t1="19 Sea Zone" t2="Panama"/>
<connection t1="19 Sea Zone" t2="West Indies"/>
<connection t1="20 Sea Zone" t2="21 Sea Zone"/>
<connection t1="20 Sea Zone" t2="54 Sea Zone"/>
<connection t1="20 Sea Zone" t2="Panama"/>
<connection t1="21 Sea Zone" t2="25 Sea Zone"/>
<connection t1="21 Sea Zone" t2="43 Sea Zone"/>
<connection t1="22 Sea Zone" t2="23 Sea Zone"/>
<connection t1="22 Sea Zone" t2="24 Sea Zone"/>
<connection t1="22 Sea Zone" t2="25 Sea Zone"/>
<connection t1="22 Sea Zone" t2="Brazil"/>
<connection t1="23 Sea Zone" t2="24 Sea Zone"/>
<connection t1="23 Sea Zone" t2="27 Sea Zone"/>
<connection t1="23 Sea Zone" t2="French Equatorial Africa"/>
<connection t1="23 Sea Zone" t2="Belgian Congo"/>
<connection t1="24 Sea Zone" t2="25 Sea Zone"/>
<connection t1="24 Sea Zone" t2="26 Sea Zone"/>
<connection t1="24 Sea Zone" t2="27 Sea Zone"/>
<connection t1="25 Sea Zone" t2="26 Sea Zone"/>
<connection t1="25 Sea Zone" t2="42 Sea Zone"/>
<connection t1="25 Sea Zone" t2="43 Sea Zone"/>
<connection t1="26 Sea Zone" t2="27 Sea Zone"/>
<connection t1="27 Sea Zone" t2="28 Sea Zone"/>
<connection t1="27 Sea Zone" t2="Union of South Africa"/>
<connection t1="28 Sea Zone" t2="29 Sea Zone"/>
<connection t1="28 Sea Zone" t2="33 Sea Zone"/>
<connection t1="28 Sea Zone" t2="Union of South Africa"/>
<connection t1="28 Sea Zone" t2="French Madagascar"/>
<connection t1="29 Sea Zone" t2="32 Sea Zone"/>
<connection t1="29 Sea Zone" t2="30 Sea Zone"/>
<connection t1="29 Sea Zone" t2="French Madagascar"/>
<connection t1="30 Sea Zone" t2="31 Sea Zone"/>
<connection t1="30 Sea Zone" t2="32 Sea Zone"/>
<connection t1="30 Sea Zone" t2="38 Sea Zone"/>
<connection t1="30 Sea Zone" t2="39 Sea Zone"/>
<connection t1="31 Sea Zone" t2="32 Sea Zone"/>
<connection t1="31 Sea Zone" t2="35 Sea Zone"/>
<connection t1="31 Sea Zone" t2="37 Sea Zone"/>
<connection t1="31 Sea Zone" t2="38 Sea Zone"/>
<connection t1="32 Sea Zone" t2="33 Sea Zone"/>
<connection t1="32 Sea Zone" t2="34 Sea Zone"/>
<connection t1="32 Sea Zone" t2="35 Sea Zone"/>
<connection t1="32 Sea Zone" t2="French Madagascar"/>
<connection t1="33 Sea Zone" t2="34 Sea Zone"/>
<connection t1="33 Sea Zone" t2="French Madagascar"/>
<connection t1="33 Sea Zone" t2="Kenya"/>
<connection t1="34 Sea Zone" t2="35 Sea Zone"/>
<connection t1="34 Sea Zone" t2="Italian East Africa"/>
<connection t1="34 Sea Zone" t2="Anglo Egypt"/>
<connection t1="34 Sea Zone" t2="Trans-Jordan"/>
<connection t1="34 Sea Zone" t2="Persia"/>
<connection t1="35 Sea Zone" t2="36 Sea Zone"/>
<connection t1="35 Sea Zone" t2="37 Sea Zone"/>
<connection t1="35 Sea Zone" t2="India"/>
<connection t1="36 Sea Zone" t2="37 Sea Zone"/>
<connection t1="36 Sea Zone" t2="48 Sea Zone"/>
<connection t1="36 Sea Zone" t2="49 Sea Zone"/>
<connection t1="36 Sea Zone" t2="59 Sea Zone"/>
<connection t1="36 Sea Zone" t2="French Indochina"/>
<connection t1="37 Sea Zone" t2="48 Sea Zone"/>
<connection t1="38 Sea Zone" t2="46 Sea Zone"/>
<connection t1="52 Sea Zone" t2="56 Sea Zone"/>
<connection t1="37 Sea Zone" t2="47 Sea Zone"/>
<connection t1="37 Sea Zone" t2="38 Sea Zone"/>
<connection t1="37 Sea Zone" t2="East Indies"/>
<connection t1="38 Sea Zone" t2="39 Sea Zone"/>
<connection t1="38 Sea Zone" t2="47 Sea Zone"/>
<connection t1="38 Sea Zone" t2="Australia"/>
<connection t1="39 Sea Zone" t2="40 Sea Zone"/>
<connection t1="39 Sea Zone" t2="Australia"/>
<connection t1="40 Sea Zone" t2="41 Sea Zone"/>
<connection t1="40 Sea Zone" t2="46 Sea Zone"/>
<connection t1="40 Sea Zone" t2="Australia"/>
<connection t1="41 Sea Zone" t2="46 Sea Zone"/>
<connection t1="41 Sea Zone" t2="45 Sea Zone"/>
<connection t1="41 Sea Zone" t2="42 Sea Zone"/>
<connection t1="41 Sea Zone" t2="44 Sea Zone"/>
<connection t1="41 Sea Zone" t2="New Zealand"/>
<connection t1="42 Sea Zone" t2="43 Sea Zone"/>
<connection t1="42 Sea Zone" t2="44 Sea Zone"/>
<connection t1="43 Sea Zone" t2="25 Sea Zone"/>
<connection t1="43 Sea Zone" t2="44 Sea Zone"/>
<connection t1="43 Sea Zone" t2="53 Sea Zone"/>
<connection t1="43 Sea Zone" t2="54 Sea Zone"/>
<connection t1="44 Sea Zone" t2="45 Sea Zone"/>
<connection t1="44 Sea Zone" t2="52 Sea Zone"/>
<connection t1="44 Sea Zone" t2="53 Sea Zone"/>
<connection t1="45 Sea Zone" t2="46 Sea Zone"/>
<connection t1="45 Sea Zone" t2="47 Sea Zone"/>
<connection t1="45 Sea Zone" t2="50 Sea Zone"/>
<connection t1="45 Sea Zone" t2="51 Sea Zone"/>
<connection t1="45 Sea Zone" t2="52 Sea Zone"/>
<connection t1="45 Sea Zone" t2="Solomon Islands"/>
<connection t1="46 Sea Zone" t2="47 Sea Zone"/>
<connection t1="46 Sea Zone" t2="Australia"/>
<connection t1="47 Sea Zone" t2="48 Sea Zone"/>
<connection t1="47 Sea Zone" t2="50 Sea Zone"/>
<connection t1="47 Sea Zone" t2="New Guinea"/>
<connection t1="48 Sea Zone" t2="49 Sea Zone"/>
<connection t1="48 Sea Zone" t2="50 Sea Zone"/>
<connection t1="48 Sea Zone" t2="Borneo"/>
<connection t1="49 Sea Zone" t2="50 Sea Zone"/>
<connection t1="49 Sea Zone" t2="58 Sea Zone"/>
<connection t1="49 Sea Zone" t2="59 Sea Zone"/>
<connection t1="49 Sea Zone" t2="60 Sea Zone"/>
<connection t1="49 Sea Zone" t2="Philipine Islands"/>
<connection t1="50 Sea Zone" t2="58 Sea Zone"/>
<connection t1="50 Sea Zone" t2="51 Sea Zone"/>
<connection t1="50 Sea Zone" t2="Caroline Islands"/>
<connection t1="51 Sea Zone" t2="52 Sea Zone"/>
<connection t1="51 Sea Zone" t2="58 Sea Zone"/>
<connection t1="51 Sea Zone" t2="57 Sea Zone"/>
<connection t1="51 Sea Zone" t2="60 Sea Zone"/>
<connection t1="51 Sea Zone" t2="Wake Island"/>
<connection t1="52 Sea Zone" t2="53 Sea Zone"/>
<connection t1="52 Sea Zone" t2="55 Sea Zone"/>
<connection t1="52 Sea Zone" t2="57 Sea Zone"/>
<connection t1="52 Sea Zone" t2="Hawaiian Islands"/>
<connection t1="53 Sea Zone" t2="54 Sea Zone"/>
<connection t1="53 Sea Zone" t2="55 Sea Zone"/>
<connection t1="54 Sea Zone" t2="55 Sea Zone"/>
<connection t1="54 Sea Zone" t2="Mexico"/>
<connection t1="54 Sea Zone" t2="Western United States"/>
<connection t1="55 Sea Zone" t2="56 Sea Zone"/>
<connection t1="55 Sea Zone" t2="64 Sea Zone"/>
<connection t1="55 Sea Zone" t2="Western United States"/>
<connection t1="55 Sea Zone" t2="Western Canada"/>
<connection t1="56 Sea Zone" t2="57 Sea Zone"/>
<connection t1="56 Sea Zone" t2="63 Sea Zone"/>
<connection t1="56 Sea Zone" t2="64 Sea Zone"/>
<connection t1="56 Sea Zone" t2="Midway"/>
<connection t1="57 Sea Zone" t2="60 Sea Zone"/>
<connection t1="57 Sea Zone" t2="62 Sea Zone"/>
<connection t1="57 Sea Zone" t2="63 Sea Zone"/>
<connection t1="57 Sea Zone" t2="Midway"/>
<connection t1="58 Sea Zone" t2="60 Sea Zone"/>
<connection t1="58 Sea Zone" t2="Okinawa"/>
<connection t1="59 Sea Zone" t2="60 Sea Zone"/>
<connection t1="59 Sea Zone" t2="61 Sea Zone"/>
<connection t1="59 Sea Zone" t2="Kwangtung"/>
<connection t1="60 Sea Zone" t2="61 Sea Zone"/>
<connection t1="60 Sea Zone" t2="62 Sea Zone"/>
<connection t1="60 Sea Zone" t2="Japan"/>
<connection t1="60 Sea Zone" t2="Burytia S.S.R."/>
<connection t1="61 Sea Zone" t2="Japan"/>
<connection t1="61 Sea Zone" t2="Manchuria"/>
<connection t1="62 Sea Zone" t2="63 Sea Zone"/>
<connection t1="62 Sea Zone" t2="Burytia S.S.R."/>
<connection t1="62 Sea Zone" t2="Soviet Far East"/>
<connection t1="63 Sea Zone" t2="64 Sea Zone"/>
<connection t1="63 Sea Zone" t2="Alaska"/>
<connection t1="63 Sea Zone" t2="Western Canada"/>
<connection t1="64 Sea Zone" t2="Alaska"/>
<connection t1="64 Sea Zone" t2="Western Canada"/>
<connection t1="Eastern Canada" t2="Eastern United States"/>
<connection t1="Eastern Canada" t2="Western Canada"/>
<connection t1="Eastern United States" t2="Central United States"/>
<connection t1="Central United States" t2="Western Canada"/>
<connection t1="Central United States" t2="Western United States"/>
<connection t1="Western United States" t2="Mexico"/>
<connection t1="Central United States" t2="Mexico"/>
<connection t1="Western United States" t2="Western Canada"/>
<connection t1="Western Canada" t2="Alaska"/>
<connection t1="Eastern United States" t2="Panama"/>
<connection t1="Panama" t2="Mexico"/>
<connection t1="Western Europe" t2="Germany"/>
<connection t1="Germany" t2="East Balkans"/>
<connection t1="Germany" t2="Eastern Europe"/>
<connection t1="East Balkans" t2="Eastern Europe"/>
<connection t1="East Balkans" t2="Ukraine S.S.R."/>
<connection t1="Eastern Europe" t2="Ukraine S.S.R."/>
<connection t1="Eastern Europe" t2="Belorussia"/>
<connection t1="Eastern Europe" t2="Karelia S.S.R."/>
<connection t1="Karelia S.S.R." t2="Norway"/>
<connection t1="Karelia S.S.R." t2="Belorussia"/>
<connection t1="Karelia S.S.R." t2="Archangel"/>
<connection t1="Karelia S.S.R." t2="West Russia"/>
<connection t1="Belorussia" t2="West Russia"/>
<connection t1="Belorussia" t2="Ukraine S.S.R."/>
<connection t1="Ukraine S.S.R." t2="West Russia"/>
<connection t1="Ukraine S.S.R." t2="Caucus"/>
<connection t1="Caucus" t2="Persia"/>
<connection t1="Caucus" t2="West Russia"/>
<connection t1="Caucus" t2="Russia"/>
<connection t1="Caucus" t2="Kazakh S.S.R."/>
<connection t1="West Russia" t2="Russia"/>
<connection t1="West Russia" t2="Archangel"/>
<connection t1="Archangel" t2="Russia"/>
<connection t1="Russia" t2="Evanki National Okrug"/>
<connection t1="Russia" t2="Novisibirsk"/>
<connection t1="Russia" t2="Kazakh S.S.R."/>
<connection t1="Kazakh S.S.R." t2="Novisibirsk"/>
<connection t1="Kazakh S.S.R." t2="Sinkiang"/>
<connection t1="Kazakh S.S.R." t2="Persia"/>
<connection t1="India" t2="French Indochina"/>
<connection t1="Evanki National Okrug" t2="Yakut S.S.R."/>
<connection t1="Evanki National Okrug" t2="Novisibirsk"/>
<connection t1="Novisibirsk" t2="Yakut S.S.R."/>
<connection t1="Novisibirsk" t2="Sinkiang"/>
<connection t1="Yakut S.S.R." t2="Soviet Far East"/>
<connection t1="Yakut S.S.R." t2="Burytia S.S.R."/>
<connection t1="Burytia S.S.R." t2="Manchuria"/>
<connection t1="Burytia S.S.R." t2="Soviet Far East"/>
<connection t1="Manchuria" t2="China"/>
<connection t1="Manchuria" t2="Kwangtung"/>
<connection t1="Kwangtung" t2="China"/>
<connection t1="Kwangtung" t2="French Indochina"/>
<connection t1="China" t2="French Indochina"/>
<connection t1="Persia" t2="India"/>
<connection t1="Persia" t2="Trans-Jordan"/>
<connection t1="Trans-Jordan" t2="Anglo Egypt"/>
<connection t1="Anglo Egypt" t2="Libya"/>
<connection t1="Anglo Egypt" t2="Italian East Africa"/>
<connection t1="Anglo Egypt" t2="French Equatorial Africa"/>
<connection t1="Anglo Egypt" t2="Belgian Congo"/>
<connection t1="Libya" t2="Algeria"/>
<connection t1="French West Africa" t2="French Equatorial Africa"/>
<connection t1="French Equatorial Africa" t2="Belgian Congo"/>
<connection t1="Belgian Congo" t2="Italian East Africa"/>
<connection t1="Belgian Congo" t2="Kenya"/>
<connection t1="Italian East Africa" t2="Kenya"/>
<connection t1="Kenya" t2="Union of South Africa"/>
<!-- The order of t1 and t2 does not matter at all -->
</map>
<resourceList>
<!-- PUs and techTokens are default supported resources. (all maps should use "PUs" as the default "money", as a map without PUs may fail. -->
<resource name="PUs"/>
<resource name="techTokens"/>
<!-- Use isDisplayedFor to only show resources for certain players or NONE -->
<!-- These are custom resources.
<resource name="Steel" isDisplayedFor="Russia:Germany"/>
<resource name="Aluminium" isDisplayedFor="NONE"/>
<resource name="Fuel"/>
<resource name="SuicideAttackTokens" isDisplayedFor="Japan"/>-->
<!-- VPs are only semi-supported by the code as of right now. They are used for special pacific rules.
<resource name="VPs"/>-->
</resourceList>
<playerList>
<!-- In turn order (it is important that the players are listed in turn order)-->
<!-- optional: just means 'does this player require a capital?'. if optional is false, they require at least 1 capital. if optional is true, they may have no capitals. -->
<!-- canBeDisabled: if true means that the player will skip all of their phases. their delegates will be removed from the game (so triggers will not happen during those delegates either) -->
<!-- defaultType: optional, default is "Human"; options are "Human", "AI", "DoesNothing"; sets player to this type by default in the player selection window -->
<!-- isHidden: optional, default is "false"; options are "true", "false"; if true doesn't show player in player selection window -->
<player name="Italians" optional="false" canBeDisabled="false"/>
<player name="Russians" optional="false" canBeDisabled="false"/>
<player name="Germans" optional="false" canBeDisabled="false"/>
<player name="British" optional="false" canBeDisabled="false"/>
<player name="Japanese" optional="false" canBeDisabled="false"/>
<player name="Americans" optional="false" canBeDisabled="false"/>
<player name="Chinese" optional="false" canBeDisabled="false"/>
<!-- Alliances can have any name, not just axis and allies. There can be more than 2 alliances -->
<!-- Since triplea version 1.3.3.0 it is preferred to use relationships instead of or in addition to alliances. If relationships are set, then alliances will only matter for the stats panel and any game option type victory conditions -->
<!-- Axis alliance -->
<alliance player="Germans" alliance="Axis"/>
<alliance player="Japanese" alliance="Axis"/>
<alliance player="Italians" alliance="Axis"/>
<!-- Allies alliance -->
<alliance player="British" alliance="Allies"/>
<alliance player="Russians" alliance="Allies"/>
<alliance player="Americans" alliance="Allies"/>
<alliance player="Chinese" alliance="Allies"/>
</playerList>
<unitList>
<unit name="infantry"/>
<unit name="artillery"/>
<unit name="armour"/>
<unit name="fighter"/>
<unit name="jp_fighter"/>
<unit name="bomber"/>
<unit name="air_transport"/>
<unit name="transport"/>
<unit name="jp_transport"/>
<unit name="submarine"/>
<unit name="midget_submarine"/>
<unit name="destroyer"/>
<unit name="jp_destroyer"/>
<unit name="cruiser"/>
<unit name="carrier"/>
<unit name="battleship"/>
<unit name="super_carrier"/>
<unit name="bunker"/>
<unit name="aaGun"/>
<unit name="factory"/>
<unit name="airfield"/>
<unit name="harbour"/>
</unitList>
<!-- This is the list of relationshipTypes you can create between players -->
<!-- Each relationshipType you define here MUST have a RelationshipTypeAttachment to define this relationship
Also each RelationshipTypeAttachment MUST have an archetype set to either: "allied", "neutral" or "war"
The following are examples, you can name them whatever you want.
-->
<relationshipTypes>
<relationshipType name="Allied"/>
<relationshipType name="War"/>
<relationshipType name="Neutrality"/>
<!--<relationshipType name="NAP"/>
<relationshipType name="ColdWar"/>-->
</relationshipTypes>
<!-- Territory Effects let you have unit modifiers based on the territory.
<territoryEffectList>
<territoryEffect name="city"/>
<territoryEffect name="desert"/>
<territoryEffect name="forest"/>
<territoryEffect name="hill"/>
<territoryEffect name="marsh"/>
<territoryEffect name="mountain"/>
<territoryEffect name="sahara"/>
</territoryEffectList>
-->
<gamePlay>
<!-- this currently is all the delegates triplea has. not all are needed for a regular game though -->
<!-- purchaseNoPU buys 1 infantry for X number of territories controlled, rounding down. set X in player rules attachments -->
<!-- endTurnNoPU ends player's turn without giving them any PUs -->
<!-- placeNoAirCheck does everything normal 'place' does, except it does not kill any aircraft at the end of the turn (you can also use step properties to do this with the normal delegate) -->
<delegate name="initDelegate" javaClass="games.strategy.triplea.delegate.InitializationDelegate" display="Initializing Delegates"/>
<delegate name="tech" javaClass="games.strategy.triplea.delegate.TechnologyDelegate" display="Research Technology"/>
<delegate name="tech_activation" javaClass="games.strategy.triplea.delegate.TechActivationDelegate" display="Activate Technology"/>
<delegate name="battle" javaClass="games.strategy.triplea.delegate.BattleDelegate" display="Combat"/>
<delegate name="move" javaClass="games.strategy.triplea.delegate.MoveDelegate" display="Combat Move"/>
<delegate name="place" javaClass="games.strategy.triplea.delegate.PlaceDelegate" display="Place Units"/>
<!--<delegate name="placeNoAirCheck" javaClass="games.strategy.triplea.delegate.NoAirCheckPlaceDelegate" display="Place Units"/>-->
<delegate name="purchase" javaClass="games.strategy.triplea.delegate.PurchaseDelegate" display="Purchase Units"/>
<delegate name="purchaseNoPU" javaClass="games.strategy.triplea.delegate.NoPUPurchaseDelegate" display="Purchase Units"/>
<delegate name="endTurn" javaClass="games.strategy.triplea.delegate.EndTurnDelegate" display="Turn Complete"/>
<delegate name="endTurnNoPU" javaClass="games.strategy.triplea.delegate.NoPUEndTurnDelegate" display="Turn Complete"/>
<delegate name="endRound" javaClass="games.strategy.triplea.delegate.EndRoundDelegate" display="Round Complete"/>
<delegate name="placeBid" javaClass="games.strategy.triplea.delegate.BidPlaceDelegate" display="Bid Placement"/>
<delegate name="bid" javaClass="games.strategy.triplea.delegate.BidPurchaseDelegate" display="Bid Purchase"/>
<delegate name="politics" javaClass="games.strategy.triplea.delegate.PoliticsDelegate" display="Politics"/>
<delegate name="userActions" javaClass="games.strategy.triplea.delegate.UserActionDelegate" display="Actions And Operations"/>
<!-- SpecialMoveDelegate delegate is for the new Airborne forces tech (similar to paratroopers). The delegate name has to end with "AirborneCombatMove" for it to work properly.
GamePlay Delegate:
<delegate name="specialCombatMove" javaClass="games.strategy.triplea.delegate.SpecialMoveDelegate" display="Special Move"/>
Sequence Step Example:
<step name="italianAirborneCombatMove" delegate="specialCombatMove" player="Italians" display="Airborne Attack Move">
<stepProperty name="airborneMove" value="true"/>
</step>
-->
<!-- RandomStartDelegate delegate is for randomly assigning territories, or letting users pick territories (like Risk) in turn order.
Any "neutral" (non-owned), non-impassable, land territories are up for grabs. Any players with "units held" are able to participate in the picking until their held units run out.
If any units remain after territories are assigned, they will be placed one by one in owned territories until empty.
GamePlay Delegate:
<delegate name="randomStartDelegate" javaClass="games.strategy.triplea.delegate.RandomStartDelegate" display="Assign Territories"/>
Sequence Step Example:
<step name="setupRandomStartDelegate" delegate="randomStartDelegate" maxRunCount="1"/>
-->
<sequence>
<!-- It is very important that the "name" ends with the correct phrase, or else the game will not work properly.
Please end with ("xx" = faction name): xxBid, xxBidPlace, xxTech, xxPurchase, xxCombatMove, xxBattle, xxNonCombatMove, xxPlace, xxTechActivation, xxEndTurn, xxPolitics, xxUserActions -->
<!-- a "step" may also include an option called "stepProperty", which has "name" and "value" attributes.
These stepProperty options are not validated at all, so if you have a typo it will not be caught.
Currently allowed stepProperty options:
For any "EndTurn" delegate (such as EndTurnDelegate or NoPUEndTurnDelegate or etc):
skipPosting = true/false (default is false). Do we skip the Play-by-Email/Play-by-Forum turn summary and savegame Posting?
turnSummaryPlayers = a list of players, separated by colons ":" default is the step player. Determines which players this forum posting turn summary will include (will only use all steps that touch this step, or touch the step that touches this step AND is owned by one of these listed players)
repairUnits = true/false will repair own or all damaged units (default depends on game option)
For any "Place" delegate (such as PlaceDelegate or NoAirCheckPlaceDelegate or etc):
removeAirThatCanNotLand = true/false will kill air units that can not land (default is true at end of phase)
bid = true/false (default to true if step ends with BidPlace)
For any "Purchase" delegate (such as PurchaseDelegate or NoPUPurchaseDelegate or etc):
bid = true/false (default to true if step ends with Bid)
repairPlayers = a list of players, separated by colons ":", default is the step player. Determines which players you can repair units of.
For any "Move" delegate (such as MoveDelegate or SpecialMoveDelegate or etc):
airborneMove = true/false is this an AirborneCombatMove for 1940 'paratroopers' move phase? (default is true if delegate ends with "AirborneCombatMove")
combatMove = true/false do we have combat after this phase? this will affect movement validation and certain unit property recordings such as submerged, amphibious, etc. (default is true if delegate ends with "CombatMove" but not "NonCombatMove")
nonCombatMove = true/false do we have combat before this phase? this will affect movement validation. (default is true if delegate ends with "NonCombatMove")
fireRockets = true/false (default depends on game option [ww2v2 and ww2v3 have this after delegates that end with "CombatMove" but not "NonCombatMove"])
giveBonusMovement = true/false resets and gives bonus movement (default is true at start of phase if delegate ends with "CombatMove" but not "NonCombatMove")
resetUnitStateAtEnd = true/false at end of phase will resets movement points and other unit states such as submerged, amphibious, unload/load, wasInCombat, etc. (default at end of phase depends if delegate ends with "NonCombatMove")
resetUnitStateAtStart = true/false at start of phase will resets movement points and other unit states such as submerged, amphibious, unload/load, wasInCombat, etc. (default is false)
repairUnits = true/false will repair own or all damaged units (default depends on game option, but would normally be start of combat move)
removeAirThatCanNotLand = true/false will kill all air units that can not land, but will make an exception for air by factories if a carrier was purchased for maps using v3/lhtr rules (default is true at end of phase)
skipPosting = true/false (default is false). Do we skip the Play-by-Email/Play-by-Forum turn summary and savegame Posting?
turnSummaryPlayers = a list of players, separated by colons ":" default is the step player. Determines which players this forum posting turn summary will include (will only use all steps that touch this step, or touch the step that touches this step AND is owned by one of these listed players)
combinedTurns = a list of players, separated by colons ":", default is the step player. Determines things such as when to kill off air that can't land when an allied player could put a carrier under it first, etc.
-->
<step name="gameInitDelegate" delegate="initDelegate" maxRunCount="1"/>
<!-- Bidding Phase -->
<step name="italiansBid" delegate="bid" player="Italians" maxRunCount="1"/>
<step name="italiansBidPlace" delegate="placeBid" player="Italians" maxRunCount="1"/>
<step name="russianBid" delegate="bid" player="Russians" maxRunCount="1"/>
<step name="russianBidPlace" delegate="placeBid" player="Russians" maxRunCount="1"/>
<step name="germanBid" delegate="bid" player="Germans" maxRunCount="1"/>
<step name="germanBidPlace" delegate="placeBid" player="Germans" maxRunCount="1"/>
<step name="britishBid" delegate="bid" player="British" maxRunCount="1"/>
<step name="britishBidPlace" delegate="placeBid" player="British" maxRunCount="1"/>
<step name="japaneseBid" delegate="bid" player="Japanese" maxRunCount="1"/>
<step name="japaneseBidPlace" delegate="placeBid" player="Japanese" maxRunCount="1"/>
<step name="americanBid" delegate="bid" player="Americans" maxRunCount="1"/>
<step name="americanBidPlace" delegate="placeBid" player="Americans" maxRunCount="1"/>
<step name="chineseBid" delegate="bid" player="Chinese" maxRunCount="1"/>
<step name="chineseBidPlace" delegate="placeBid" player="Chinese" maxRunCount="1"/>
<!-- it is generally a good idea to put tech activation at the end of the turn, for balancing reasons -->
<!-- Italians Game Sequence -->
<step name="italianTech" delegate="tech" player="Italians"/>
<step name="italianPurchase" delegate="purchase" player="Italians"/>
<step name="italianPolitics" delegate="politics" player="Italians"/>
<step name="italianCombatMove" delegate="move" player="Italians"/>
<step name="italianBattle" delegate="battle" player="Italians"/>
<step name="italianNonCombatMove" delegate="move" player="Italians" display="Non Combat Move"/>
<step name="italianPlace" delegate="place" player="Italians"/>
<step name="italianTechActivation" delegate="tech_activation" player="Italians"/>
<step name="italianEndTurn" delegate="endTurn" player="Italians"/>
<!-- Russians Game Sequence -->
<step name="russianTech" delegate="tech" player="Russians"/>
<step name="russianPurchase" delegate="purchase" player="Russians"/>
<step name="russianPolitics" delegate="politics" player="Russians"/>
<step name="russianCombatMove" delegate="move" player="Russians"/>
<step name="russianBattle" delegate="battle" player="Russians"/>
<step name="russianNonCombatMove" delegate="move" player="Russians" display="Non Combat Move"/>
<step name="russianPlace" delegate="place" player="Russians"/>
<step name="russianTechActivation" delegate="tech_activation" player="Russians"/>
<step name="russianEndTurn" delegate="endTurn" player="Russians"/>
<!-- Germans Game Sequence -->
<step name="germanTech" delegate="tech" player="Germans"/>
<step name="germanPurchase" delegate="purchase" player="Germans"/>
<step name="germanPolitics" delegate="politics" player="Germans"/>
<step name="germanCombatMove" delegate="move" player="Germans"/>
<step name="germanBattle" delegate="battle" player="Germans"/>
<step name="germanNonCombatMove" delegate="move" player="Germans" display="Non Combat Move"/>
<step name="germanPlace" delegate="place" player="Germans"/>
<step name="germanTechActivation" delegate="tech_activation" player="Germans"/>
<step name="germanEndTurn" delegate="endTurn" player="Germans"/>
<!-- British Game Sequence -->
<step name="britishTech" delegate="tech" player="British"/>
<step name="britishPurchase" delegate="purchase" player="British"/>
<step name="britishPolitics" delegate="politics" player="British"/>
<step name="britishCombatMove" delegate="move" player="British"/>
<step name="britishBattle" delegate="battle" player="British"/>
<step name="britishNonCombatMove" delegate="move" player="British" display="Non Combat Move"/>
<step name="britishPlace" delegate="place" player="British"/>
<step name="britishTechActivation" delegate="tech_activation" player="British"/>
<step name="britishEndTurn" delegate="endTurn" player="British"/>
<!-- Japanese Game Sequence -->
<step name="japaneseTech" delegate="tech" player="Japanese"/>
<step name="japanesePurchase" delegate="purchase" player="Japanese"/>
<step name="japanesePolitics" delegate="politics" player="Japanese"/>
<step name="japaneseCombatMove" delegate="move" player="Japanese"/>
<step name="japaneseBattle" delegate="battle" player="Japanese"/>
<step name="japaneseNonCombatMove" delegate="move" player="Japanese" display="Non Combat Move"/>
<step name="japanesePlace" delegate="place" player="Japanese"/>
<step name="japaneseTechActivation" delegate="tech_activation" player="Japanese"/>
<step name="japaneseEndTurn" delegate="endTurn" player="Japanese">
<stepProperty name="skipPosting" value="false"/>
</step>
<!-- Americans Game Sequence -->
<step name="americanTech" delegate="tech" player="Americans"/>
<step name="americanPurchase" delegate="purchase" player="Americans"/>
<step name="americanPolitics" delegate="politics" player="Americans"/>
<step name="americanUserActions" delegate="userActions" player="Americans"/>
<step name="americanCombatMove" delegate="move" player="Americans"/>
<step name="americanBattle" delegate="battle" player="Americans"/>
<step name="americanNonCombatMove" delegate="move" player="Americans" display="Non Combat Move"/>
<step name="americanPlace" delegate="place" player="Americans"/>
<step name="americanTechActivation" delegate="tech_activation" player="Americans"/>
<!--<step name="americanEndTurn" delegate="endTurn" player="Americans"/>-->
<step name="americanEndTurn" delegate="endTurn" player="Americans">
<!--<stepProperty name="skipPosting" value="true"/>-->
<stepProperty name="turnSummaryPlayers" value="Americans"/>
</step>
<!-- Chinese Game Sequence -->
<step name="chineseBurmaRoadPurchase" delegate="purchase" player="Chinese"/>
<step name="chinesePolitics" delegate="politics" player="Chinese"/>
<step name="chineseCombatMove" delegate="move" player="Chinese"/>
<step name="chineseBattle" delegate="battle" player="Chinese"/>
<step name="chineseNonCombatMove" delegate="move" player="Chinese" display="Non Combat Move"/>
<step name="chineseNoPUPurchase" delegate="purchaseNoPU" player="Chinese"/>
<step name="chinesePlace" delegate="place" player="Chinese"/>
<!--<step name="chineseEndTurn" delegate="endTurnNoPU" player="Chinese"/>-->
<step name="chineseEndTurn" delegate="endTurnNoPU" player="Chinese">
<stepProperty name="turnSummaryPlayers" value="Chinese"/>
<!--<stepProperty name="turnSummaryPlayers" value="Americans:Chinese"/>-->
</step>
<step name="endRoundStep" delegate="endRound"/>
</sequence>
<!-- offset is used by the xml exporter to have a game begin in a round other than round 1. The default is zero if this attribute does not exist. -->
<offset round="0"/>
</gamePlay>
<production>
<!-- You can use a production frontier to buy resources using other resources.
<productionRule name="buyTechTokens">
<cost resource="PUs" quantity="6" />
<result resourceOrUnit="techTokens" quantity="1"/>
</productionRule>-->
<!-- Unit Production Cost -->
<productionRule name="buyInfantry">
<cost resource="PUs" quantity="3"/>
<result resourceOrUnit="infantry" quantity="1"/>
</productionRule>
<productionRule name="buyArtillery">
<cost resource="PUs" quantity="4"/>
<!--<cost resource="Steel" quantity="2" />-->
<result resourceOrUnit="artillery" quantity="1"/>
</productionRule>
<productionRule name="buyArmour">
<cost resource="PUs" quantity="5"/>
<!--<cost resource="Steel" quantity="4" />
<cost resource="Aluminium" quantity="10" />-->
<result resourceOrUnit="armour" quantity="1"/>
</productionRule>
<productionRule name="buyFighter">
<cost resource="PUs" quantity="10"/>
<result resourceOrUnit="fighter" quantity="1"/>
</productionRule>
<productionRule name="buyJP_Fighter">
<cost resource="PUs" quantity="10"/>
<result resourceOrUnit="jp_fighter" quantity="1"/>
</productionRule>
<productionRule name="buyJP_FighterKamikaze">
<cost resource="PUs" quantity="8"/>
<result resourceOrUnit="jp_fighter" quantity="1"/>
</productionRule>
<productionRule name="buyBomber">
<cost resource="PUs" quantity="12"/>
<result resourceOrUnit="bomber" quantity="1"/>
</productionRule>
<productionRule name="buyAir_Transport">
<cost resource="PUs" quantity="10"/>
<result resourceOrUnit="air_transport" quantity="1"/>
</productionRule>
<productionRule name="buyTransport">
<cost resource="PUs" quantity="7"/>
<result resourceOrUnit="transport" quantity="1"/>
</productionRule>
<productionRule name="buyJP_Transport">
<cost resource="PUs" quantity="7"/>
<result resourceOrUnit="jp_transport" quantity="1"/>
</productionRule>
<productionRule name="buyCarrier">
<cost resource="PUs" quantity="14"/>
<result resourceOrUnit="carrier" quantity="1"/>
</productionRule>
<productionRule name="buyDestroyer">
<cost resource="PUs" quantity="8"/>
<result resourceOrUnit="destroyer" quantity="1"/>
</productionRule>
<productionRule name="buyJP_Destroyer">
<cost resource="PUs" quantity="8"/>
<result resourceOrUnit="jp_destroyer" quantity="1"/>
</productionRule>
<productionRule name="buyCruiser">
<cost resource="PUs" quantity="12"/>
<result resourceOrUnit="cruiser" quantity="1"/>
</productionRule>
<productionRule name="buyBattleship">
<cost resource="PUs" quantity="20"/>
<result resourceOrUnit="battleship" quantity="1"/>
</productionRule>
<productionRule name="buySuper_Carrier">
<cost resource="PUs" quantity="21"/>
<result resourceOrUnit="super_carrier" quantity="1"/>
</productionRule>
<productionRule name="buySubmarine">
<cost resource="PUs" quantity="6"/>
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buySubmarineTech2">
<cost resource="PUs" quantity="7"/>
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buySubmarineTech3">
<cost resource="PUs" quantity="8"/>
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buyMidget_Submarine">
<cost resource="PUs" quantity="4"/>
<result resourceOrUnit="midget_submarine" quantity="1"/>
</productionRule>
<productionRule name="buyBunker">
<cost resource="PUs" quantity="4"/>
<result resourceOrUnit="bunker" quantity="1"/>
</productionRule>
<productionRule name="buyFactory">
<cost resource="PUs" quantity="15"/>
<result resourceOrUnit="factory" quantity="1"/>
</productionRule>
<productionRule name="buyAirfield">
<cost resource="PUs" quantity="12"/>
<result resourceOrUnit="airfield" quantity="1"/>
</productionRule>
<productionRule name="buyHarbour">
<cost resource="PUs" quantity="12"/>
<result resourceOrUnit="harbour" quantity="1"/>
</productionRule>
<productionRule name="buyAAGun">
<cost resource="PUs" quantity="6"/>
<result resourceOrUnit="aaGun" quantity="1"/>
</productionRule>
<!-- SHIPYARD PRICES -->
<!-- Shipyards production rules are only needed if you are using the "shipyards" tech AND have the shipyards game option ON. -->
<productionRule name="buyTransportShipyards">
<cost resource="PUs" quantity="6"/>
<result resourceOrUnit="transport" quantity="1"/>
</productionRule>
<productionRule name="buyJP_TransportShipyards">
<cost resource="PUs" quantity="6"/>
<result resourceOrUnit="jp_transport" quantity="1"/>
</productionRule>
<productionRule name="buyCarrierShipyards">
<cost resource="PUs" quantity="11"/>
<result resourceOrUnit="carrier" quantity="1"/>
</productionRule>
<productionRule name="buyDestroyerShipyards">
<cost resource="PUs" quantity="7"/>
<result resourceOrUnit="destroyer" quantity="1"/>
</productionRule>
<productionRule name="buyJP_DestroyerShipyards">
<cost resource="PUs" quantity="7"/>
<result resourceOrUnit="jp_destroyer" quantity="1"/>
</productionRule>
<productionRule name="buyCruiserShipyards">
<cost resource="PUs" quantity="10"/>
<result resourceOrUnit="cruiser" quantity="1"/>
</productionRule>
<productionRule name="buyBattleshipShipyards">
<cost resource="PUs" quantity="17"/>
<result resourceOrUnit="battleship" quantity="1"/>
</productionRule>
<productionRule name="buySuper_CarrierShipyards">
<cost resource="PUs" quantity="17"/>
<result resourceOrUnit="super_carrier" quantity="1"/>
</productionRule>
<productionRule name="buySubmarineShipyards">
<cost resource="PUs" quantity="5"/>
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buySubmarineTech2Shipyards">
<cost resource="PUs" quantity="6"/>
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buySubmarineTech3Shipyards">
<cost resource="PUs" quantity="7"/>
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buyMidget_SubmarineShipyards">
<cost resource="PUs" quantity="3"/>
<result resourceOrUnit="midget_submarine" quantity="1"/>
</productionRule>
<!-- Advanced Industrial Production -->
<!-- IndustrialTechnology production rules are only needed if you are using or plan to use the "industrialTechnology" tech.
<productionRule name="buyInfantryIndustrialTechnology">
<cost resource="PUs" quantity="3" />
<result resourceOrUnit="infantry" quantity="1"/>
</productionRule>
<productionRule name="buyArtilleryIndustrialTechnology">
<cost resource="PUs" quantity="4" />
<result resourceOrUnit="artillery" quantity="1"/>
</productionRule>
<productionRule name="buyArmourIndustrialTechnology">
<cost resource="PUs" quantity="5" />
<result resourceOrUnit="armour" quantity="1"/>
</productionRule>
<productionRule name="buyFighterIndustrialTechnology">
<cost resource="PUs" quantity="9" />
<result resourceOrUnit="fighter" quantity="1"/>
</productionRule>
<productionRule name="buyJP_FighterIndustrialTechnology">
<cost resource="PUs" quantity="9" />
<result resourceOrUnit="jp_fighter" quantity="1"/>
</productionRule>
<productionRule name="buyBomberIndustrialTechnology">
<cost resource="PUs" quantity="11" />
<result resourceOrUnit="bomber" quantity="1"/>
</productionRule>
<productionRule name="buyAir_TransportIndustrialTechnology">
<cost resource="PUs" quantity="9" />
<result resourceOrUnit="air_transport" quantity="1"/>
</productionRule>
<productionRule name="buyTransportIndustrialTechnology">
<cost resource="PUs" quantity="6" />
<result resourceOrUnit="transport" quantity="1"/>
</productionRule>
<productionRule name="buyJP_TransportIndustrialTechnology">
<cost resource="PUs" quantity="6" />
<result resourceOrUnit="jp_transport" quantity="1"/>
</productionRule>
<productionRule name="buyCarrierIndustrialTechnology">
<cost resource="PUs" quantity="11" />
<result resourceOrUnit="carrier" quantity="1"/>
</productionRule>
<productionRule name="buyDestroyerIndustrialTechnology">
<cost resource="PUs" quantity="7" />
<result resourceOrUnit="destroyer" quantity="1"/>
</productionRule>
<productionRule name="buyJP_DestroyerIndustrialTechnology">
<cost resource="PUs" quantity="7" />
<result resourceOrUnit="jp_destroyer" quantity="1"/>
</productionRule>
<productionRule name="buyCruiserIndustrialTechnology">
<cost resource="PUs" quantity="10" />
<result resourceOrUnit="cruiser" quantity="1"/>
</productionRule>
<productionRule name="buyBattleshipIndustrialTechnology">
<cost resource="PUs" quantity="17" />
<result resourceOrUnit="battleship" quantity="1"/>
</productionRule>
<productionRule name="buySuper_CarrierIndustrialTechnology">
<cost resource="PUs" quantity="17" />
<result resourceOrUnit="super_carrier" quantity="1"/>
</productionRule>
<productionRule name="buySubmarineIndustrialTechnology">
<cost resource="PUs" quantity="5" />
<result resourceOrUnit="submarine" quantity="1"/>
</productionRule>
<productionRule name="buyMidget_SubmarineIndustrialTechnology">
<cost resource="PUs" quantity="3" />
<result resourceOrUnit="midget_submarine" quantity="1"/>
</productionRule>
<productionRule name="buyBunkerIndustrialTechnology">
<cost resource="PUs" quantity="4" />
<result resourceOrUnit="bunker" quantity="1"/>
</productionRule>
<productionRule name="buyFactoryIndustrialTechnology">
<cost resource="PUs" quantity="13" />
<result resourceOrUnit="factory" quantity="1"/>
</productionRule>
<productionRule name="buyAirfieldIndustrialTechnology">
<cost resource="PUs" quantity="10" />
<result resourceOrUnit="airfield" quantity="1"/>
</productionRule>
<productionRule name="buyHarbourIndustrialTechnology">
<cost resource="PUs" quantity="10" />
<result resourceOrUnit="harbour" quantity="1"/>
</productionRule>
<productionRule name="buyAAGunIndustrialTechnology">
<cost resource="PUs" quantity="5" />
<result resourceOrUnit="aaGun" quantity="1"/>
</productionRule>
-->
<!-- Repair rules -->
<!-- if you use ww2v3 style factory damage, you need repair rules -->
<repairRule name="repairFactory">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="factory" quantity="1"/>
</repairRule>
<repairRule name="repairBunker">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="bunker" quantity="1"/>
</repairRule>
<repairRule name="repairAirfield">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="airfield" quantity="1"/>
</repairRule>
<repairRule name="repairHarbour">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="harbour" quantity="1"/>
</repairRule>
<repairRule name="repairFactoryIndustrialTechnology">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="factory" quantity="2"/>
</repairRule>
<repairRule name="repairBunkerIndustrialTechnology">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="bunker" quantity="2"/>
</repairRule>
<repairRule name="repairAirfieldIndustrialTechnology">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="airfield" quantity="2"/>
</repairRule>
<repairRule name="repairHarbourIndustrialTechnology">
<cost resource="PUs" quantity="1"/>
<result resourceOrUnit="harbour" quantity="2"/>
</repairRule>
<repairFrontier name="repair">
<repairRules name="repairFactory"/>
<repairRules name="repairBunker"/>
<repairRules name="repairAirfield"/>
<repairRules name="repairHarbour"/>
</repairFrontier>
<repairFrontier name="repairIndustrialTechnology">
<repairRules name="repairFactoryIndustrialTechnology"/>
<repairRules name="repairBunkerIndustrialTechnology"/>
<repairRules name="repairAirfieldIndustrialTechnology"/>
<repairRules name="repairHarbourIndustrialTechnology"/>
</repairFrontier>
<!-- all players can use the same frontier, or you can have a different frontier for each player -->
<!-- only "production" (a single production frontier) is needed for most maps. if you use ww2v2 tech then you need IndustrialTechnology production, and if you use ww2v3 tech you need Shipyards -->
<!-- the order of units in the productionFrontier is used to determine the order in which they display in the battle calculator after grouping (land, air, can't combat move, bombard) -->
<!--<productionFrontier name="production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>-->
<!--<productionFrontier name="productionIndustrialTechnology">
<frontierRules name="buyInfantryIndustrialTechnology"/>
<frontierRules name="buyArtilleryIndustrialTechnology"/>
<frontierRules name="buyArmourIndustrialTechnology"/>
<frontierRules name="buyFighterIndustrialTechnology"/>
<frontierRules name="buyBomberIndustrialTechnology"/>
<frontierRules name="buyTransportIndustrialTechnology"/>
<frontierRules name="buySubmarineIndustrialTechnology"/>
<frontierRules name="buyDestroyerIndustrialTechnology"/>
<frontierRules name="buyCruiserIndustrialTechnology"/>
<frontierRules name="buyCarrierIndustrialTechnology"/>
<frontierRules name="buyBattleshipIndustrialTechnology"/>
<frontierRules name="buySuper_CarrierIndustrialTechnology"/>
<frontierRules name="buyBunkerIndustrialTechnology"/>
<frontierRules name="buyAAGunIndustrialTechnology"/>
<frontierRules name="buyFactoryIndustrialTechnology"/>
<frontierRules name="buyAirfieldIndustrialTechnology"/>
<frontierRules name="buyHarbourIndustrialTechnology"/>
</productionFrontier>-->
<!-- Shipyards frontier rules are only needed if you are using the "shipyards" tech AND have the shipyards game option ON. If the shipyards game option is ON, then all players must use 1 frontier called "production".
If you want to use multiple production frontiers for different nations, then it is highly recommended you use triggers to add or remove productionRules instead of using the shipyard frontier.
<productionFrontier name="productionShipyards">
<frontierRules name="buyTransportShipyards"/>
<frontierRules name="buySubmarineShipyards"/>
<frontierRules name="buyDestroyerShipyards"/>
<frontierRules name="buyCruiserShipyards"/>
<frontierRules name="buyCarrierShipyards"/>
<frontierRules name="buyBattleshipShipyards"/>
<frontierRules name="buySuper_CarrierShipyards"/>
</productionFrontier>-->
<productionFrontier name="Germans_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>
<productionFrontier name="Russians_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>
<productionFrontier name="Japanese_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyJP_Fighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyJP_Transport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyJP_Destroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>
<productionFrontier name="British_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>
<productionFrontier name="Italians_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>
<!--<productionFrontier name="Chinese_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>-->
<productionFrontier name="Chinese_CutOff_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
</productionFrontier>
<productionFrontier name="Chinese_BurmaRoad_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
</productionFrontier>
<productionFrontier name="Americans_production">
<frontierRules name="buyInfantry"/>
<frontierRules name="buyArtillery"/>
<frontierRules name="buyArmour"/>
<frontierRules name="buyFighter"/>
<frontierRules name="buyBomber"/>
<frontierRules name="buyTransport"/>
<frontierRules name="buySubmarine"/>
<frontierRules name="buyDestroyer"/>
<frontierRules name="buyCruiser"/>
<frontierRules name="buyCarrier"/>
<frontierRules name="buyBattleship"/>
<frontierRules name="buySuper_Carrier"/>
<frontierRules name="buyBunker"/>
<frontierRules name="buyAAGun"/>
<frontierRules name="buyFactory"/>
<frontierRules name="buyAirfield"/>
<frontierRules name="buyHarbour"/>
</productionFrontier>
<playerProduction player="Germans" frontier="Germans_production"/>
<playerProduction player="Russians" frontier="Russians_production"/>
<playerProduction player="Japanese" frontier="Japanese_production"/>
<playerProduction player="British" frontier="British_production"/>
<playerProduction player="Italians" frontier="Italians_production"/>
<playerProduction player="Chinese" frontier="Chinese_BurmaRoad_production"/>
<playerProduction player="Americans" frontier="Americans_production"/>
<playerRepair player="Germans" frontier="repair"/>
<playerRepair player="Russians" frontier="repair"/>
<playerRepair player="Japanese" frontier="repair"/>
<playerRepair player="British" frontier="repair"/>
<playerRepair player="Italians" frontier="repair"/>
<playerRepair player="Chinese" frontier="repair"/>
<playerRepair player="Americans" frontier="repair"/>
</production>
<technology>
<!-- list all available techs for this map, for all players possible -->
<technologies>
<!-- this is the current list of all HARDCODED techs that come with TripleA -->
<!-- (+1 attack to isSub) superSub requires all isSub units to have a "_ss" image variant -->
<techname name="superSub"/>
<!-- (+1 att or def for isAir non-isStrategicBomber) jetPower requires all non-isStrategicBomber units to have a "_jp" image variant (and "_lr_jp") -->
<techname name="jetPower"/>
<!-- (removes all sea units from "production" and adds "Shipyards" production rules. Only currently works when all players use a production frontier called "production") -->
<techname name="shipyards"/>
<!-- (+1 attack for anti-air units) aARadar requires all isAA units to have a "_r" image variant (and "rockets_r" or "_rockets_r") -->
<techname name="aARadar"/>
<!-- (+2 movement for isAir) longRangeAir requires all isAir units to have a "_lr" image variant (and "_lr_jp" OR "_lr_hb") -->
<techname name="longRangeAir"/>
<!-- (+X dice rolls for isAir isStrategicBomber) heavyBomber requires all isStrategicBomber units to have a "_hb" image variant (and "_lr_hb") -->
<techname name="heavyBomber"/>
<!-- (doubles number of units supported by artillery, and optionally by other support types) -->
<techname name="improvedArtillerySupport"/>
<!-- (allows isAA and isRocket to shoot rockets) rocket requires all isAA units to have a "rockets" image variant if they are called "aaGun", and a "_rockets" if they are called anything else (and "rockets_r" or "_rockets_r") -->
<techname name="rocket"/>
<!-- (allows isAirTransport units to carry isAirTransportable units) -->
<techname name="paratroopers"/>
<!-- (gives +2 production slots to factories on territories worth at least 3, and halves the price of repairing) increasedFactoryProduction requires all isFactory units to have a "_it" image variant (and "_hit" and "_it_hit") -->
<techname name="increasedFactoryProduction"/>
<!-- (rolls a die at the end of the player's turn, adds that many PUs to their bank) -->
<techname name="warBonds"/>
<!-- (allows isLandTransport units to carry isInfantry units) -->
<techname name="mechanizedInfantry"/>
<!-- (destroyerBombard allows isDestroyer to bombard) this is an example of renaming a technology. the first part is the new name, the second is the old name (the hardcoded tech's name) -->
<techname name="destroyersCanBombard" tech="destroyerBombard"/>
<!-- (industrialTechnology replaces a users production frontier with one called productionIndustrialTechnology (and i don't use it in this map))
<techname name="industrialTechnology"/> -->
<!-- below is a list of user created techs. they do nothing by themselves, but can be used a conditions for triggers. simply use a name that isn't already taken by a hardcoded tech -->
<techname name="reinforcedHulls"/>
<techname name="wolfPackTactics"/>
</technologies>
<!-- list all available techs for this player -->
<playerTech player="Italians">
<!-- Number of categories is unlimited. Use descriptive names, as they are shown to the player. You may have empty categories, if you plan on adding to them inside the game using triggers -->
<!-- At least minimum of 0 techs per category, max of 6 per category if using ww2v3-style random selection of techs,
max is unlimited if using ww2v2-style selected techs (however, any number of techs per category greater than 6 will be unreachable by the dice chooser) -->
<!-- please list techs in the order that they appear in the technoligies list, as doing otherwise may cause an error -->
<!-- you can have a technology listed more than once, if you want to increase the chance of getting it -->
<category name="Italian Technology">
<tech name="destroyersCanBombard"/>
<tech name="jetPower"/>
<tech name="shipyards"/>
<tech name="improvedArtillerySupport"/>
<tech name="increasedFactoryProduction"/>
<tech name="warBonds"/>
</category>
</playerTech>
<playerTech player="Russians">
<category name="Air and Naval Advances">
<tech name="destroyersCanBombard"/>
<tech name="jetPower"/>
<tech name="shipyards"/>
<tech name="aARadar"/>
<tech name="longRangeAir"/>
<tech name="heavyBomber"/>
</category>
<category name="Land and Production Advances">
<tech name="improvedArtillerySupport"/>
<tech name="improvedArtillerySupport"/>
<tech name="rocket"/>
<tech name="increasedFactoryProduction"/>
<tech name="warBonds"/>
<tech name="mechanizedInfantry"/>
</category>
</playerTech>
<playerTech player="Germans">
<category name="Air and Naval Advances">
<tech name="superSub"/>
<tech name="jetPower"/>
<tech name="shipyards"/>
<tech name="aARadar"/>
<tech name="longRangeAir"/>
<tech name="heavyBomber"/>
</category>
<category name="Land and Production Advances">
<tech name="improvedArtillerySupport"/>
<tech name="rocket"/>
<tech name="paratroopers"/>
<tech name="increasedFactoryProduction"/>
<tech name="mechanizedInfantry"/>
</category>
<category name="Submarine Technology">
<!-- as you can see, this category is empty. that is because we will add techs to this category later by triggers -->
</category>
</playerTech>
<playerTech player="British">
<category name="Air and Naval Advances">
<tech name="destroyersCanBombard"/>
<tech name="jetPower"/>
<tech name="shipyards"/>
<tech name="aARadar"/>
<tech name="longRangeAir"/>
<tech name="heavyBomber"/>
</category>
<category name="Land and Production Advances">
<tech name="improvedArtillerySupport"/>
<tech name="rocket"/>
<tech name="paratroopers"/>
<tech name="increasedFactoryProduction"/>
<tech name="warBonds"/>
</category>
</playerTech>
<playerTech player="Japanese">
<category name="Air and Naval Advances">
<tech name="superSub"/>
<tech name="jetPower"/>
<tech name="aARadar"/>
<tech name="longRangeAir"/>
<tech name="heavyBomber"/>
</category>
<category name="Land and Production Advances">
<tech name="improvedArtillerySupport"/>
<tech name="rocket"/>
<tech name="paratroopers"/>
<tech name="increasedFactoryProduction"/>
<tech name="warBonds"/>
<tech name="mechanizedInfantry"/>
</category>
</playerTech>
<playerTech player="Americans">
<category name="Air and Naval Advances">
<tech name="superSub"/>
<tech name="jetPower"/>
<tech name="shipyards"/>
<tech name="aARadar"/>
<tech name="longRangeAir"/>
<tech name="heavyBomber"/>
</category>
<category name="Land and Production Advances">
<tech name="improvedArtillerySupport"/>
<tech name="paratroopers"/>
<tech name="increasedFactoryProduction"/>
<tech name="warBonds"/>
<tech name="mechanizedInfantry"/>
</category>
</playerTech>
<playerTech player="Chinese">
<category name="Air and Naval Advances">
<tech name="superSub"/>
<tech name="jetPower"/>
<tech name="shipyards"/>
<tech name="aARadar"/>
<tech name="longRangeAir"/>
<tech name="heavyBomber"/>
</category>
<category name="Land and Production Advances">
<tech name="improvedArtillerySupport"/>
<tech name="rocket"/>
<tech name="paratroopers"/>
<tech name="increasedFactoryProduction"/>
<tech name="warBonds"/>
<tech name="mechanizedInfantry"/>
</category>
</playerTech>
</technology>
<attachmentList>
<!-- FOREACH: All attachments can use the "foreach" attribute to generate multiple similar attachments from a template. The "foreach" attribute must reference "variables" defined near the start of the XML which define a list of elements. The "foreach" then loops through these elements one at a time and replaces them in the attachment template where @nameOfVariable@ is specified. If there is an empty element in the list then any option in the attachment which references that will be skipped for that iteration. Here is an example of generating 2 similar triggers using this feature:
Here we define 2 variables: Players and Phases
<variableList>
<variable name="Players">
<element name="Germany"/>
<element name="Brazil"/>
</variable>
<variable name="Phases">
<element name="germanyBattle"/>
<element name=""/>
</variable>
</variableList>
Here we have our attachment "template" that uses foreach and references both of our variables (foreach="$Players$:$Phases$") and uses the elements of these to replace into the template where @Players@ and @Phases@ are specified.
<attachment foreach="$Players$:$Phases$" name="triggerAttachmentLiberationUsaBy@Players@" attachTo="@Players@" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
<option name="conditions" value="conditionAttachmentWashingtonlost:conditionAttachmentChicagolost"/>
<option name="when" value="after:@Phases@"/>
<option name="players" value="Usa"/>
<option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentLiberationUsa"/>
<option name="playerProperty" value="switch" count="true"/>
</attachment>
Here are the 2 attachments which would be generated by the engine using these 2 variables and the above template. You can see that the second one skips the "when" option as the "Phases" variable's second element is empty.
<attachment name="triggerAttachmentLiberationUsaByGermany" attachTo="Germany" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
<option name="conditions" value="conditionAttachmentWashingtonlost:conditionAttachmentChicagolost"/>
<option name="when" value="after:germanyBattle"/>
<option name="players" value="Usa"/>
<option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentLiberationUsa"/>
<option name="playerProperty" value="switch" count="true"/>
</attachment>
<attachment name="triggerAttachmentLiberationUsaByBrazil" attachTo="Brazil" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
<option name="conditions" value="conditionAttachmentWashingtonlost:conditionAttachmentChicagolost"/>
<option name="players" value="Usa"/>
<option name="playerAttachmentName" value="RulesAttachment" count="conditionAttachmentLiberationUsa"/>
<option name="playerProperty" value="switch" count="true"/>
</attachment>-->
<!-- relationshipType Attachments -->
<!-- each PoliticalRelationship needs a relationshipTypeAttachment
and each relationshipTypeAttachment needs an option: archetype that needs to be set to one of the following 3 values:
* "allied"
* "neutral"
* "war"
the archeType determines the default behaviour of this relationshipType that can be modified by setting other options.
Also the archeType determines the outcomes of isAllied, isNeutral and isWar query in the engine
-->
<!-- the following options are allowed for "relationshipTypeAttachment", (all options except for archeType only allow "true", "false", or "default")
archeType values: "allied" or "war" or "neutral"
canMoveLandUnitsOverOwnedLand values: "true", "false", or "default". default setting is "default", and "default" means that archeType of war and allied can move into, while neutral can not
canMoveAirUnitsOverOwnedLand values: "true", "false", or "default". default setting is "default", and "default" means that archeType of war and allied can move into, while neutral can not
canLandAirUnitsOnOwnedLand values: "true", "false", or "default". default setting is "default", and "default" means that archeType of allied only lets you land units in the player's territories
upkeepCost values: "default", or any valid integer, or "percentage" with a count of a valid integer. Default = zero (0). This determines if there is a cost to maintain a relationship, which would be subtracted from PUs gained at end of turn.
examples: a cost of 1 PU per turn: <option name="upkeepCost" value="1"/> or <option name="upkeepCost" value="flat" count="1"/>, or a cost of 9% of your income per turn: <option name="upkeepCost" value="percentage" count="9"/>
alliancesCanChainTogether values: "true", "false", or "default". can only be applied to a relationship that is archetype "allied", and only 1 relationship can have it. if true, any nations that reach this relationship will share both allies and enemies.
isDefaultWarPosition values: "true", "false", or "default". can only be applied to a relationship that is archetype "war", and only 1 relationship can have it. if true, any nations that reach an alliance chaining relationship, will have their enemies who are not yet at war with, set to this relationship.
canTakeOverOwnedTerritory values: "true", "false", or "default". default setting is "default", and "default" means that archeType of war lets you take over territories. By setting true, you can take over territories of an ally
givesBackOriginalTerritories values: "true", "false", or "default". default setting is "default", and "default" means false. If true, at the end of each politics phase, any territories originally belonging to the other player will revert to that players control.
canMoveIntoDuringCombatMove values: "true", "false", or "default". default setting is "default", and "default" means true. If false, you may not move into any territories owned by the other player during combat move, and must wait for non-combat move.
canMoveThroughCanals values: "true", "false", or "default". default setting is "default", and "default" means that archeType of allied lets you move through canals. If true, you may move through a canal owned by the other player.
rocketsCanFlyOver values: "true", "false", or "default". default setting is "default", and "default" means "true" which is that rockets may fly over everyone.
-->
<attachment name="relationshipTypeAttachment" attachTo="War" javaClass="games.strategy.triplea.attachments.RelationshipTypeAttachment" type="relationship">
<option name="archeType" value="war"/>
</attachment>
<attachment name="relationshipTypeAttachment" attachTo="Allied" javaClass="games.strategy.triplea.attachments.RelationshipTypeAttachment" type="relationship">
<option name="archeType" value="allied"/>
<option name="givesBackOriginalTerritories" value="true"/>
</attachment>
<attachment name="relationshipTypeAttachment" attachTo="Neutrality" javaClass="games.strategy.triplea.attachments.RelationshipTypeAttachment" type="relationship">
<option name="archeType" value="neutral"/>
</attachment>
<!--<attachment name="relationshipTypeAttachment" attachTo="NAP" javaClass="games.strategy.triplea.attachments.RelationshipTypeAttachment" type="relationship">
<option name="archeType" value="neutral"/>
</attachment>
<attachment name="relationshipTypeAttachment" attachTo="ColdWar" javaClass="games.strategy.triplea.attachments.RelationshipTypeAttachment" type="relationship">
<option name="archeType" value="neutral"/>
</attachment>-->
<!-- Tech Attachments -->
<!-- IF you are using custom technologies (generic techs), then ALL players need a tech attachment, even if it is an empty tech attachment, otherwise there will be errors
-->
<!-- the following options are allowed for "techAttachment". These are not required, they only determine if a country starts with a tech or not. All default to False.
techCost values: the cost of buying tech rolls for this player, defaults to 5
superSub
jetPower
shipyards
aARadar
longRangeAir
heavyBomber
improvedArtillerySupport
rocket
paratroopers
increasedFactoryProduction
warBonds
mechanizedInfantry
destroyerBombard
industrialTechnology
-->
<!-- Italians -->
<attachment name="techAttachment" attachTo="Italians" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<!-- techCost is optional, and defaults to 5 if missing. techs default to false if missing -->
<option name="techCost" value="6"/>
<option name="superSub" value="false"/>
<option name="jetPower" value="false"/>
<option name="shipyards" value="false"/>
<option name="aARadar" value="false"/>
<option name="longRangeAir" value="false"/>
<option name="heavyBomber" value="false"/>
<option name="improvedArtillerySupport" value="false"/>
<option name="rocket" value="false"/>
<option name="paratroopers" value="false"/>
<option name="increasedFactoryProduction" value="false"/>
<option name="warBonds" value="false"/>
<option name="mechanizedInfantry" value="false"/>
</attachment>
<!-- Russians -->
<attachment name="techAttachment" attachTo="Russians" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<option name="techCost" value="5"/>
<option name="superSub" value="false"/>
<option name="jetPower" value="false"/>
<option name="shipyards" value="false"/>
<option name="aARadar" value="false"/>
<option name="longRangeAir" value="false"/>
<option name="heavyBomber" value="false"/>
<option name="improvedArtillerySupport" value="false"/>
<option name="rocket" value="false"/>
<option name="paratroopers" value="false"/>
<option name="increasedFactoryProduction" value="false"/>
<option name="warBonds" value="false"/>
<option name="mechanizedInfantry" value="false"/>
</attachment>
<!-- Germans -->
<attachment name="techAttachment" attachTo="Germans" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<option name="techCost" value="5"/>
<option name="superSub" value="false"/>
<option name="jetPower" value="false"/>
<option name="shipyards" value="false"/>
<option name="aARadar" value="false"/>
<option name="longRangeAir" value="false"/>
<option name="heavyBomber" value="false"/>
<option name="improvedArtillerySupport" value="false"/>
<option name="rocket" value="false"/>
<option name="paratroopers" value="false"/>
<option name="increasedFactoryProduction" value="false"/>
<option name="warBonds" value="false"/>
<option name="mechanizedInfantry" value="false"/>
<!-- Currently you are not yet allowed to set custom techs at the start of the game through here
<option name="reinforcedHulls" value="false"/>
<option name="wolfPackTactics" value="false"/>-->
</attachment>
<!-- British -->
<attachment name="techAttachment" attachTo="British" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<option name="techCost" value="5"/>
<option name="superSub" value="false"/>
<option name="jetPower" value="false"/>
<option name="shipyards" value="false"/>
<option name="aARadar" value="false"/>
<option name="longRangeAir" value="false"/>
<option name="heavyBomber" value="false"/>
<option name="improvedArtillerySupport" value="false"/>
<option name="rocket" value="false"/>
<option name="paratroopers" value="false"/>
<option name="increasedFactoryProduction" value="false"/>
<option name="warBonds" value="false"/>
<option name="mechanizedInfantry" value="false"/>
</attachment>
<!-- Japanese -->
<attachment name="techAttachment" attachTo="Japanese" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<option name="techCost" value="6"/>
<option name="superSub" value="false"/>
<option name="jetPower" value="false"/>
<option name="shipyards" value="false"/>
<option name="aARadar" value="false"/>
<option name="longRangeAir" value="false"/>
<option name="heavyBomber" value="false"/>
<option name="improvedArtillerySupport" value="false"/>
<option name="rocket" value="false"/>
<option name="paratroopers" value="false"/>
<option name="increasedFactoryProduction" value="false"/>
<option name="warBonds" value="false"/>
<option name="mechanizedInfantry" value="false"/>
</attachment>
<!-- Americans -->
<attachment name="techAttachment" attachTo="Americans" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<option name="techCost" value="4"/>
<option name="superSub" value="false"/>
<option name="jetPower" value="false"/>
<option name="shipyards" value="false"/>
<option name="aARadar" value="false"/>
<option name="longRangeAir" value="false"/>
<option name="heavyBomber" value="false"/>
<option name="improvedArtillerySupport" value="false"/>
<option name="rocket" value="false"/>
<option name="paratroopers" value="false"/>
<option name="increasedFactoryProduction" value="false"/>
<option name="warBonds" value="false"/>
<option name="mechanizedInfantry" value="false"/>
</attachment>
<!-- Chinese -->
<attachment name="techAttachment" attachTo="Chinese" javaClass="games.strategy.triplea.attachments.TechAttachment" type="player">
<option name="improvedArtillerySupport" value="false"/>
<!-- Even the Chinese, who can not roll for tech because they don't have a phase for it, must have a tech attachment because we are using custom techs,
so this here is an almost empty tech attachment. Actually, we could fill it with more stuff, that is false or true, but 1 is enough.
Just because something is in this list doesn't mean we can get it. Whether we can get it or not is determined by what is in "playerTech". -->
</attachment>
<!-- Unit Attachments -->
<!-- Certain units require extra graphical icons present, for when technology is researched or damage is done. Here is a list, in order of what is needed:
Anything I list as "_something" means that you must have the units exact name in front of it, example: fighter_jp
if the unit is called "aaGun" then you need units called "rockets", "rockets_r", and "aaGun_r"
if the unit has "isAA", but is not exactly named "aaGun", then you need units called "_rockets" and "_r" and "_rockets_r"
if the unit has "isRocket", you need "_rockets"
if the unit has "isAAforCombatOnly" and/or "isAAforBombingThisUnitOnly", then you need "_r"
if the unit has "isAir", but not "isStrategicBomber", then you need "_lr", and "_jp", and "_lr_jp"
if the unit has "isAir", and is "isStrategicBomber", then you need "_lr", and "_hb", and "_lr_hb"
if the unit has "isSub", then you need "_ss"
if the unit has "isFactory", or is called "factory", then you need "_it", and "_it_hit"
if a unit can be damaged (by being a factory, or by having "canBeDamaged", then you will need "_hit"
if a unit can be disabled, then you will need "_disabled"
-->
<!-- the following options are allowed for "unitAttachment"
isAir values: if a unit is air or not, defaults to false
isSea values: if a unit is sea or not, defaults to false. any unit that is neither air or sea, is land
movement values: the allowed movement of a unit, defaults to zero
attack values: the attack value, where a rolled dice must be equal or less than to hit the enemy
defense values: the defense value, where a rolled dice must be equal or less than to hit the enemy
hitPoints values: how many hit points this unit has (default is 1)
artillerySupportable DEPRECATED: use SupportAttachment
artillery DEPRECATED: use SupportAttachment
unitSupportCount DEPRECATED: use SupportAttachment
attackRolls values: number of rolls this unit gets on attack (default = 1)
defenseRolls values: number of rolls this unit gets on defense (default = 1)
chooseBestRoll values: true/false, whether we pick the best dice or use all dice rolls, when there is more than one roll (default false). When in Low Luck, we instead add +1 onto the power for each extra roll.
isMarine values: gives the unit bonus attack if it is attacking amphibiously. Is an integer, so you can set it to give 1, or -1, or 3, etc.
canBlitz values: allows the unit to move through multiple empty enemy territories in one turn
receivesAbilityWhenWith values: gives a unit an ability when they are with, or on the same route as, another unit. currently only works with 'canBlitz'. example: value="canBlitz:armour"
canBeGivenByTerritoryTo values: will allow a unit to be given from one player to another player, if it is in a territory with changeUnitOwners
must be a list of Players who this unit can be given to. example: value="Russians:Chinese"
canBeCapturedOnEnteringBy values: will allow a unit to be captured from one player to another, if the specified player enters a territory with captureUnitOnEnteringBy
must be a list of Players who this unit can be given to. example: value="Russians:Chinese"
canInvadeOnlyFrom values: is a colon dilimited list of the transporting units which this unit can perform amphibious assaults from.
A unit which can not perform amphibious assaults may instead disembark during non-combat
can be set to "all", or "none", or a list of some transports. if this option is not present, it defaults to "all"
requiresUnitsToMove values: is a list of units required to be present in all territories of a unit's route for it to move. Can have multiple instances. Only one instance needs to be true in order to move.
Checks all owned/allied units in each territory along the unit's route for necessary units.
examples: <option name="requiresUnitsToMove" value="Rail:Road"/> would mean we need at least one Rail AND at least one Road in order to move there.
If after that line we had a second line saying <option name="requiresUnits" value="SuperRail"/> then it would mean OR we need at least one SuperRail.
isLandTransportable values: allows the unit to be transported by 'isLandTransport', if you have mechanizedInfantry technology
isInfantry values: DEPRECATED, same as isLandTransportable
isLandTransport values: allows the unit to transport "isLandTransportable" on a one-to-one basis, if you have the mechanizedInfantry technology
If "transportCapacity" is set then use "transportCost" and be able to transport multiple units just like sea transports
isAirTransportable values: allows the unit to be transported by an "isAirTransport" unit, IF you have paratroopers technology
isAirTransport values: allows an air unit to carry land units when you have paratroopers tech
transportCost values: the space this unit takes up in a transport
transportCapacity values: the amount of space of land units this unit can carry. can be used with sea or air units, except that air units will also require isAirTransport.
isCombatTransport values: considers a unit to be a combat sea unit, even if it has transport capacity, for the purposes of convoys and restricted attack on transports
canScramble values: allows the aircraft to enter a surrounding sea zone if the enemy is doing an attack on or from the surrounding sea zone
maxScrambleDistance values: the distance out an aircraft can scramble. anything higher than 1 is not supported well at this point.
isSuicide values: makes a unit die before combat begins, however they do get to roll
isSuicideOnHit values: if unit gets a hit in combat then it instantly dies, can be used for units like mines
isKamikaze values: allows an air unit to use up all of its movement to go to a battle
isStrategicBomber values: allows a unit to bombing factories and canBeDamaged units
bombingMaxDieSides values: is the max dice sides for a strategic bombing or rocket attack. the default is to use the diceSides for the map. this property is optional and is only used when you have "Use Bombing Max Dice Sides And Bonus" turned on. this property is no longer affected by "Low Luck for Bombing and Territory Damage".
bombingBonus values: is a number added to the die rolled, to give the total cost [displayed as a new die rolled], for strategic bombing and rockets only. this property is optional (default is zero) and is only used when you have "Use Bombing Max Dice Sides And Bonus" turned on.
this property is no longer affected by "Low Luck for Bombing and Territory Damage". Can be negative to simulate bombers potentially missing and doing no damage.
example: if you want a unit to throw a 12 sided die, then add 4 onto the result, you would do: <option name="bombingMaxDieSides" value="12"/> and <option name="bombingBonus" value="4"/>
bombingTargets values: is a list of units that this unit may strategic bomb or rocket attack. if not present, then all units that can be damaged are legal targets. example: <option name="bombingTargets" value="factory:bunker:airfield:harbour"/>
carrierCost values: the space this unit takes up when sitting on a carrier. if set to 0 then air units can even land on sea zones without a carrier being present (think sea planes)
carrierCapacity values: the amount of space or air unit this unit can carry.
canBombard values: allows a sea unit to bombard the enemy during an amphibious assault
bombard values: the value this unit bombards at. defaults to the attack value of the unit if missing
blockade values: allows the unit to do damage up to the value of land territories surrounding a blockade zone, to the enemy's income
isDestroyer values: cancels out an isSub unit's first strike and submerge abilities, and allows it to be hit by air units if using ww2v3 rules
isSub values: allows the unit to roll dice before other units, and submerge or retreat from battle even on defense, and if using ww2v3 rules not be hit by air unless the enemy has an isDestroyer
canBeDamaged values: sets if a unit can be attacked by strategic bombing raids or by rockets. isFactory also allows these things
maxDamage values: is the total bombing damage the unit can take (defaults to 2 if not set). If a factory, and canProduceXUnits = -1 or is missing then maxDamage will be a multiple of the territory value (maxDamage defaults to 2 if canProduceXUnits = -1), otherwise it will be a set number
So for example, if the unit isFactory Or canProduceUnits, And canProduceXUnits = -1, And maxDamage = 3, THEN you will be able to do 3x the territory value in damage to this unit.
If However, canProduceXUnits = 2, and maxDamage = 3, then you can do up to 3 damage to this unit.
maxOperationalDamage values: is used together with only the following options: isAirBase, canScramble, givesMovement, repairsUnits, requiresUnits, requiresUnitsToMove, isRocket, airborneBases (tech), and airborneTypes (tech). Determines if those features are active based on the current damage of the unit not exceeding the value assigned to this option. A disabled unit will not participate in combat or be able to move. Does not impact isFactory or canProduceUnits.
canDieFromReachingMaxDamage values: means that if this unit reaches its maxDamage, then it will die. maxDamage must be larger than zero
isInfrastructure values: means a unit does not participate in combat, and they will be captured if the attacker is successful
destroyedWhenCapturedFrom values: is a list of players who destroy a non-combat unit instead of letting it be captured. destroyedWhenCapturedFrom just takes the value input then adds "FROM:" to the beginning, then calls destroyedWhenCapturedBy with the new value. This can't be set by triggers, use destroyedWhenCapturedBy instead.
destroyedWhenCapturedBy values: is a list of the players who destroy this non-combat unit instead of capturing it. all non-combat units are normally captured by default. is a colon delimited list of player names.
You can prefix them with single instance of "BY:" or "FROM:" in order to determine if it is being captured by, or captured from, that determines if the unit is destroyed.
examples: <option name="destroyedWhenCapturedBy" value="BY:Chinese:Japanese"/> and <option name="destroyedWhenCapturedBy" value="FROM:Russians:Chinese"/>
whenCapturedChangesInto values: allows a unit to change into a different unit when captured from a specific player to a specific player. "fromPlayer:toPlayer:transferAttributes:unitType:numberOfUnits". accepts "any" instead of a player name. allows multiple.
examples: <option name="whenCapturedChangesInto" value="any:any:true:Minor_Factory:1"/> and <option name="whenCapturedChangesInto" value="Russians:Germans:false:gold:3:lumber:1"/>
whenCapturedSustainsDamage values: unit takes specified amount of damage when captured
examples: <option name="whenCapturedSustainsDamage" value="5"/>
isAirBase values: allows units with canScramble and requiresAirbaseToIntercept function from a territory with this unit
maxScrambleCount values: max number of units which can scramble from this air base. defaults to infinite.
maxInterceptCount values: max number of units which can intercept from this air base. defaults to infinite.
givesMovement values: allows a unit to give movement to other units. must be an integer, followed by a colon ":", followed by the name of the unit
repairsUnits values: is a colon delimited list of all the units this unit can repair. it should start with the amount to be repaired (or use 'count' for the amount to be repaired) each turn. if not used, defaults to 1.
units to be repaired must be in the same territory as this unit. unless the unit being repaired is sea, and the unit repairing it is land, in which case the sea unit must be adjacent to the land unit
example: option name="repairsUnits" value="1:battleship:super_carrier"
whenCombatDamaged values: this property lets you set certain behaviors for when this unit is damaged. the value is the effect, while the count is the damage from where to where. (example: <option name="whenCombatDamaged" value="unitsMayNotLandOnCarrier" count="1:2"/>)
units start at zero combat damage, and usually die at 1 damage. some units have 2 hp, so you can use this with 1:1 to say that when a unit has 1 damage they have this effect.
currently only allows: unitsMayNotLandOnCarrier, unitsMayNotLeaveAlliedCarrier
whenHitPointsDamagedChangesInto values: allows this unit to change into another unit if it takes a certain amount of damage in combat, primarily used for having weaker versions of a unit
examples: <option name="whenHitPointsDamagedChangesInto" value="damage:transferAttributes:unitType"/>
damage - specifies how many points of damage, transferAttributes - if new unit keeps damage amount, unitType - new unit
whenHitPointsRepairedChangesInto values: allows this unit to change into another unit during repair if it has a certain amount or 0 damage, primarily used to repair weaker versions of a unit
examples: <option name="whenHitPointsRepairedChangesInto" value="damage:transferAttributes:unitType"/>
damage - specifies how many points of damage, transferAttributes - if new unit keeps damage amount, unitType - new unit
canIntercept values: allows this unit to participate in air raids (air battles for strat bombing), as a defending unit
requiresAirbaseToIntercept values: if true then intercepting units must have an airbase like scrambling
canEscort values: allows this unit to participate in air raids (air battles for strat bombing), as an attacking unit
canAirBattle values: allows this unit to participate in air battles (for normal battles), as an attacking or defending unit
airDefense values: defense value of interceptor
airAttack values: attack value of escort
fuelCost values: fuelCost is a list of at least one resource that get used up for each point of movementCost a unit does. (can have multiple). example: <option name="fuelCost" value="Fuel" count="5"/> and <option name="fuelCost" value="PUs" count="1"/>
fuelFlatCost values: charges fuel flat cost if unit moves any amount during turn rather than for each movement point. (can have multiple). example: <option name="fuelFlatCost" value="Fuel" count="2"/>
tuv values: overrides default TUV calculation for the unit based on production cost
production related:
isFactory values: just sets: canBeDamaged, isInfrastructure, canProduceUnits, isConstruction, constructionType = "factory", maxConstructionsPerTypePerTerr = 1, constructionsPerTerrPerTypePerTurn = 1
isFactory is no longer its own variable. Instead isFactory just sets the above variables. setting is factory will possibly overwrite those variables, so do not use it if you are planning to set those variables to something else.
allows a unit to produce other units, not participate in combat, be placed anywhere you owned at the beginning of the turn, be capturable, and be damaged by rockets and raids
canProduceXUnits values: allows a factory-type unit to produce a set amount of units no matter where it is located. if -1 then it will produce at the value of the territory where it is.
if greater than -1, you must have "maxDamage" set to some number if the unit is also "canBeDamaged" or "isFactory". defaults to -1 if missing. this option will only work if "Damage From Bombing Done To Units Instead Of Territories" game property is turned on.
canProduceUnits values: allows a unit to be a factory, without all the other things that come with being a factory (like capturable, land, non-combat, etc). So if you want flying factories, go ahead. Just don't complain if you get errors.
createsUnitsList values: is a list of units that this unit will create every turn at the end of the turn. can have multiple instances
createsResourcesList values: is a list of resources that this unit will create every turn at the end of the turn. can have multiple instances
placement related:
maxBuiltPerPlayer values: is the number of this unit that can be BUILT by a player. If they have fewer than this number they can build more, if they have more than this number they can not build more
[this does not cause excess ones to disappear, and the player can still capture more and more of them if they are capturable]
canOnlyBePlacedInTerritoryValuedAtX values: the minimum territory value to place the unit there. defaults to "-1" which means anywhere
unitPlacementRestrictions values: a list of territories where this unit can not be built. list can contain any number of territories, including sea zones .
every unit may have a list, and the lists may be different for each unit. default is no list.
the list may be turned on/off with "Unit Placement Restrictions" game property
unitPlacementOnlyAllowedIn values: is the direct inverse of unitPlacementRestrictions
requiresUnits values: is a list of units required to be present in the territory in order for you to build this unit there. Can have multiple instances. Only one instance needs to be true in order to build.
examples: <option name="requiresUnits" value="CombatEngineer:Truck"/> would mean we need at least one CombatEngineer AND at least one Truck in order to build there.
If after that line we had a second line saying <option name="requiresUnits" value="SuperEngineer"/> then it would mean OR we need at least one SuperEngineer.
consumesUnits values: requires that a unit be present in a territory, then when this unit is placed the other units are destroyed / upgraded into this unit. Can have multiple instances of this, which means it consumes multiple types of units.
isConstruction values: allows the unit to be placed in territories that don't contain factories. only "constructionsPerTerrPerTypePerTurn" contructions of "constructionType" may be placed per territory per turn.
may have only "maxConstructionsPerTypePerTerr" constructions Total per territory with/without a factory unless you enable "More Constructions with/without Factory", which will allow up a total number of up to the territory value
and "Unlimited Constructions" game property allows unlimited constructions total in a territory
constructionType values: is just a unique string which identifies what kind of construction this.
if two or more constructions have the exact same constructionType (and the same PerType rules), then they will follow the same rules for placement.
example: if you have little_bunker and big_bunker both as type "bunker", with constructionsPerTerrPerTypePerTurn=2, then you could place 2 littles, or 2 bigs, or 1 little and 1 big in a territory
if you do not want this unit to be effected by the global properties "More Constructions with/without Factory" and "Unlimited Constructions", then make sure the type ends in "structure". example: "harbour_structure"
constructionsPerTerrPerTypePerTurn values: is how many of this type you can place in a territory every turn
maxConstructionsPerTypePerTerr values: is how many max of this type may be in a territory. this must be greater than constructionsPerTerrPerTypePerTurn
if "More Constructions with/without Factory" = true, then the minimum will be either maxConstructionsPerTypePerTerr or the PU value of the territory (whichever number is greater) in territories with/without factories
if "Unlimited Constructions" = true, then this number becomes 10000
special values: a colon delimited list of possible options for this unit. Currently only supports: "canOnlyPlaceInOriginalTerritories"
aa related:
isAA values: just sets isAAmovement, isAAforCombatOnly, isAAforBombingThisUnitOnly, isAAforFlyOverOnly, isInfrastructure, and isRocket to true.
isAAmovement values: just sets canNotMoveDuringCombatMove to "true", and only for aa guns it will set the stacking limits (movementLimit, attackingLimit, placementLimit) to "1:allied" when playing by classic rules
attackAA values: the value that an isAA unit will attack at, for shooting at air units before battle
attackAAmaxDieSides values: sets the dice sides for aa guns. defaults to whatever you chose above in diceSides (or 6 if you didn't choose). All units with the same typeAA must have the same dice sides.
Be Warned that all aa attack values (including with Radar and without Radar), MUST divide into attackAAmaxDieSides without remainders, or else there WILL be errors in LowLuck!
offensiveAttackAA values: same as attackAA but for offensive side
offensiveAttackAAmaxDieSides values: same as attackAAmaxDieSides but for offensive side
maxAAattacks values: sets how many times this unit may fire its AA guns. Defaults to -1, which means infinite. If not infinite, then aa guns can stack.
(If you have multiple aa of the same type-group in a territory, and they have different attack values or dicesides, and different maxAAattacks, then what happens is that the engine will roll for the best attack/diceSides and for the best maxAAattacks, even if that is two different units
For example, if you have an aa gun that has infinite attacks and rolls a 4/20, and you have another gun with only one attack and rolls 3/6, then you will end up rolling infinite times at 3/6. This might be fixed in the future.)
mayOverStackAA values: sets if this unit may fire aa more times than there are aircraft (default = false).
maxRoundsAA values: sets how many rounds the AA may fire in. negative (-1) means infinite. (default = 1).
damageableAA values: sets if this unit can damage a two-hitpoint unit, instead of killing it instantly with aa fire (default = false = kill instantly).
isAAforCombatOnly values: allows this unit to be an AA gun for normal combat only. it will not defend against strategic bombing raids.
isAAforBombingThisUnitOnly values: allows this unit to be an AA gun only when this unit is directly attacked by a strategic bombing raid (currently defends against all strategic bombing attacks in this territory, not just against this unit). it will not defend against a normal attack.
isAAforFlyOverOnly values: allows this unit to be an AA gun only when being flown over. if the air unit moves into this territory and stays, then this will not fire.
isAAforFlyOverOnly will only work if "AA Territory Restricted" is turned off, and will normally only fire during combat move and not during noncombat move, unless you also turn on "Always on AA".
typeAA values: any string which identifies this type-group of aa guns. Only 1 aa gun per group may fire (unless you've set maxAAattacks). (defaults to "AA")
Warning: all units with the same typeAA must have the same dice sides, or else you will experience weird results.
targetsAA values: a list of unit types which this aa gun can hit. (defaults to all air units) (any aa guns in the same group should have the same targetsAA)
willNotFireIfPresent values: a list of unit types for which if they are present in the battle, this aa gun will not fire.
isRocket values: allows this unit to become a rocket if the player has the rocket technology. If the unit is named exactly "aaGun" then it will require an image called "rockets". If the unit is named anything else, then it will require an image with "_rockets" appended to its original name
canNotMoveDuringCombatMove values: true or false, defaults to false, does not allow this unit to move during 'combat move phase'
movementLimit values: only affects normal movement. the count is equal to the number of this unit allowed per territory, and the value is equal to "owned" (we are only counting units owned by each player), or "allied" (allied too), or "total" (which counts enemy units too)
attackingLimit values: only affects movement into enemy territory/units. the count is equal to the number of this unit allowed per territory, and the value is equal to "owned" (we are only counting units owned by each player), or "allied" (allied too), or "total" (which counts enemy units too)
placementLimit values: only affects placement. the count is equal to the number of this unit allowed per territory, and the value is equal to "owned" (we are only counting units owned by each player), or "allied" (allied too), or "total" (which counts enemy units too)
example: <option name="placementLimit" value="allied" count="1"/>
-->
<!-- Infantry -->
<attachment name="unitAttachment" attachTo="infantry" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="1"/>
<option name="transportCost" value="2"/>
<!-- isInfantry allows the unit to be transported by 'isLandTransport' IF you have mechanizedInfantry technology -->
<option name="isInfantry" value="true"/>
<!-- isMarine gives the unit +x attack if it is attacking amphibiously -->
<!-- <option name="isMarine" value="1"/> -->
<option name="attack" value="1"/>
<option name="defense" value="2"/>
<!-- artillerySupportable allows the unit to receive support from an "artillery" unit (land, sea, or air are allowed) -->
<option name="artillerySupportable" value="true"/>
<!-- isAirTransportable allows the unit to be transported by an "isAirTransport" unit, IF you have paratroopers technology -->
<option name="isAirTransportable" value="true"/>
<!-- canBeGivenByTerritoryTo will allow a unit to be given from one player to another player, if it is in a territory with changeUnitOwners
must be a list of Players who this unit can be given to. example: value="Russians:Chinese" -->
<option name="canBeGivenByTerritoryTo" value="Russians"/>
<!-- canBeCapturedOnEnteringBy will allow a unit to be captured from one player to another, if the specified player enters a territory with captureUnitOnEnteringBy
must be a list of Players who this unit can be given to. example: value="Russians:Chinese"
<option name="canBeCapturedOnEnteringBy" value="Americans:British"/>-->
</attachment>
<!-- Artillery -->
<attachment name="unitAttachment" attachTo="artillery" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="1"/>
<option name="transportCost" value="3"/>
<option name="attack" value="2"/>
<option name="defense" value="2"/>
<!-- artillery gives support (+1 attack) to "artillerySupportable" units (land, sea, or air are allowed) -->
<option name="artillery" value="true"/>
<!-- unitSupportCount is the number of units that will be supported by the artillery, defaults to 1 if missing -->
<option name="unitSupportCount" value="1"/>
<option name="canBeGivenByTerritoryTo" value="Russians"/>
<option name="isAirTransportable" value="true"/>
<!-- canInvadeOnlyFrom is a colon dilimited list of the transporting units which this unit can perform amphibious assaults from.
A unit which can not perform amphibious assaults may instead disembark during non-combat
can be set to "all", or "none", or a list of some transports. if this option is not present, it defaults to "all" -->
<option name="canInvadeOnlyFrom" value="transport:jp_transport:air_transport:super_carrier"/>
<!-- fuelCost is a list of at least one resource that get used up for each point of movementCost a unit does
<option name="fuelCost" value="Fuel" count="5"/>
<option name="fuelCost" value="PUs" count="1"/>-->
</attachment>
<!-- Armour -->
<attachment name="unitAttachment" attachTo="armour" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="transportCost" value="3"/>
<!-- canBlitz allows the unit to move through multiple empty enemy territories in one turn -->
<option name="canBlitz" value="true"/>
<option name="attack" value="3"/>
<option name="defense" value="3"/>
<!-- isLandTransport allows the unit to transport "isInfantry" on a one-to-one basis, if you have the mechanizedInfantry technology -->
<option name="isLandTransport" value="true"/>
<option name="canBeGivenByTerritoryTo" value="Russians"/>
<!-- consumesUnits requires that a unit be present in a territory, then when this unit is placed the other units are destroyed / upgraded into this unit. Can have multiple instances of this, which means it consumes multiple types of units.
<option name="consumesUnits" value="2:infantry"/>
<option name="consumesUnits" value="1:artillery"/>-->
<option name="isAirTransportable" value="true"/>
<!-- receivesAbilityWhenWith gives a unit an ability when they are with, or on the same route as, another unit
<option name="receivesAbilityWhenWith" value="canBlitz:armour"/>-->
</attachment>
<!-- Fighter -->
<attachment name="unitAttachment" attachTo="fighter" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="4"/>
<option name="carrierCost" value="1"/>
<option name="isAir" value="true"/>
<option name="attack" value="3"/>
<option name="defense" value="4"/>
<!-- canScramble and maxScrambleDistance are properties for scrambling. allows the aircraft to enter a surrounding sea zone if the enemy is doing an attack on or from the surrounding sea zone -->
<option name="canScramble" value="true"/>
<option name="maxScrambleDistance" value="1"/>
<option name="canIntercept" value="true"/>
<!-- <option name="requiresAirbaseToIntercept" value="true"/> -->
<option name="canEscort" value="true"/>
<option name="canAirBattle" value="true"/>
<option name="airDefense" value="2"/>
<option name="airAttack" value="2"/>
</attachment>
<attachment name="unitAttachment" attachTo="jp_fighter" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="4"/>
<option name="carrierCost" value="1"/>
<option name="isAir" value="true"/>
<option name="attack" value="3"/>
<option name="defense" value="4"/>
<option name="canScramble" value="true"/>
<option name="maxScrambleDistance" value="1"/>
<!-- isSuicide makes a unit die before combat begins, however they do get to roll -->
<!--<option name="isSuicide" value="true"/>-->
<!-- isKamikaze allows an air unit to use up all of its movement to go to a battle -->
<!--<option name="isKamikaze" value="true"/>-->
<option name="canIntercept" value="true"/>
<option name="canEscort" value="true"/>
<option name="canAirBattle" value="true"/>
<option name="airDefense" value="2"/>
<option name="airAttack" value="2"/>
</attachment>
<!-- Bomber -->
<attachment name="unitAttachment" attachTo="bomber" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="6"/>
<option name="isAir" value="true"/>
<option name="attack" value="4"/>
<option name="defense" value="1"/>
<!-- isStrategicBomber allows a unit to bombing factories and canBeDamaged units -->
<option name="isStrategicBomber" value="true"/>
<option name="canAirBattle" value="true"/>
<!-- transportCapacity + isAirTransport can be used for transporting units IF you have the paratroopers technology -->
<option name="transportCapacity" value="2"/>
<option name="isAirTransport" value="true"/>
<option name="airDefense" value="1"/>
<option name="airAttack" value="1"/>
<!--<option name="bombingMaxDieSides" value="6"/>
<option name="bombingBonus" value="0"/>-->
</attachment>
<!-- Air_Transport -->
<attachment name="unitAttachment" attachTo="air_transport" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="4"/>
<option name="isAir" value="true"/>
<option name="attack" value="0"/>
<option name="defense" value="0"/>
<option name="canAirBattle" value="true"/>
<!-- transportCapacity + isAirTransport can be used for transporting units IF you have the paratroopers technology -->
<option name="transportCapacity" value="6"/>
<option name="isAirTransport" value="true"/>
<option name="airDefense" value="1"/>
<option name="airAttack" value="1"/>
</attachment>
<!-- Transport -->
<attachment name="unitAttachment" attachTo="transport" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="transportCapacity" value="5"/>
<!-- attack and defense must be zero if you are using ww2v3 style transport rules (transports can not be used as fodder, etc.) -->
<option name="attack" value="0"/>
<option name="defense" value="0"/>
</attachment>
<attachment name="unitAttachment" attachTo="jp_transport" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="transportCapacity" value="5"/>
<option name="attack" value="0"/>
<option name="defense" value="0"/>
</attachment>
<!-- Battle Ship -->
<attachment name="unitAttachment" attachTo="battleship" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="4"/>
<option name="defense" value="4"/>
<option name="hitPoints" value="2"/>
<option name="canBombard" value="true"/>
<!-- bombard defaults to the attack value of the unit if missing -->
<option name="bombard" value="4"/>
<!-- blockade allows the unit to do damage up to the value of land territories surrounding a blockade zone, to the enemy's income -->
<option name="blockade" value="1"/>
</attachment>
<!-- Cruiser -->
<attachment name="unitAttachment" attachTo="cruiser" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="3"/>
<option name="defense" value="3"/>
<option name="canBombard" value="true"/>
<option name="bombard" value="3"/>
<option name="blockade" value="1"/>
</attachment>
<!-- Destroyer -->
<attachment name="unitAttachment" attachTo="destroyer" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="2"/>
<option name="defense" value="2"/>
<!-- isDestroyer does a number of things, all of which target units that are isSub -->
<option name="isDestroyer" value="true"/>
<option name="blockade" value="1"/>
</attachment>
<attachment name="unitAttachment" attachTo="jp_destroyer" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="2"/>
<option name="defense" value="2"/>
<option name="isDestroyer" value="true"/>
<option name="blockade" value="1"/>
<!--<option name="transportCapacity" value="2"/>-->
</attachment>
<!-- Carrier -->
<attachment name="unitAttachment" attachTo="carrier" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="carrierCapacity" value="2"/>
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="1"/>
<option name="defense" value="2"/>
<option name="blockade" value="1"/>
</attachment>
<!-- Super_Carrier -->
<attachment name="unitAttachment" attachTo="super_carrier" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="carrierCapacity" value="2"/>
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="1"/>
<option name="defense" value="3"/>
<option name="blockade" value="2"/>
<option name="transportCapacity" value="5"/>
<!-- isCombatTransport tells the engine that this sea unit can transport but can fight too. units will not be able to move through it like they would a transport, and it can be taken casualty during battle as normal -->
<option name="isCombatTransport" value="true"/>
<!--<option name="hitPoints" value="2"/>-->
<!-- whenCombatDamaged means that when this unit has x:y damage on it, it will have this effect
<option name="whenCombatDamaged" value="unitsMayNotLandOnCarrier" count="1:2"/>
<option name="whenCombatDamaged" value="unitsMayNotLeaveAlliedCarrier" count="1:2"/>-->
</attachment>
<!-- Submarine -->
<attachment name="unitAttachment" attachTo="submarine" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<!-- isSub usually allows a unit to do first strikes and submerge and move under non-isDestroyer units, but all of these are subject to global game properties -->
<option name="isSub" value="true"/>
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="2"/>
<option name="defense" value="1"/>
<option name="blockade" value="2"/>
</attachment>
<!-- Midget Submarine -->
<attachment name="unitAttachment" attachTo="midget_submarine" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="isSub" value="true"/>
<option name="movement" value="2"/>
<option name="isSea" value="true"/>
<option name="attack" value="3"/>
<option name="defense" value="2"/>
<option name="blockade" value="1"/>
<!-- isSuicide makes a unit die before combat begins, however they do get to roll -->
<option name="isSuicide" value="true"/>
</attachment>
<!-- Bunker -->
<attachment name="unitAttachment" attachTo="bunker" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="movement" value="0"/>
<option name="attack" value="0"/>
<option name="defense" value="4"/>
<!-- canBeDamaged sets if a unit can be attacked by strategic bombing raids or by rockets. isFactory also allows these things -->
<option name="canBeDamaged" value="true"/>
<!-- maxDamage is the total damage the unit can take. If a factory, and canProduceXUnits = -1 or is missing then maxDamage will be a multiple of the territory value (maxDamage defaults to 2 if canProduceXUnits = -1), otherwise it will be a set number
So for example, if the unit isFactory Or canProduceUnits, And canProduceXUnits = -1, And maxDamage = 3, THEN you will be able to do 3x the territory value in damage to this unit. If However, canProduceXUnits = 2, and maxDamage = 3, then you can do up to 3 damage to this unit. -->
<option name="maxDamage" value="4"/>
<!-- maxOperationalDamage is used with certain features like isAirBase, repairsUnits, and givesMovement to determine if those features work or not based on the current damage of this unit. A disabled unit will not participate in combat too. Does Not work with isFactory or canProduceUnits. -->
<option name="maxOperationalDamage" value="0"/>
<!-- isConstruction allows the unit to be placed in territories that don't contain factories. only "constructionsPerTerrPerTypePerTurn" contructions of "constructionType" may be placed per territory per turn.
may have only "maxConstructionsPerTypePerTerr" constructions Total per territory with/without a factory unless you enable "More Constructions with/without Factory", which will allow up a total number of up to the territory value
and "Unlimited Constructions" game property allows unlimited constructions total in a territory -->
<option name="isConstruction" value="true"/>
<!-- constructionType is just a unique string which identifies what kind of construction this.
if two or more constructions have the exact same constructionType (and the same PerType rules), then they will follow the same rules for placement.
example: if you have little_bunker and big_bunker both as type "bunker", with constructionsPerTerrPerTypePerTurn=2, then you could place 2 littles, or 2 bigs, or 1 little and 1 big in a territory
if you do not want this unit to be effected by the global properties "More Constructions with/without Factory" and "Unlimited Constructions", then make sure the type ends in "structure". example: "harbour_structure" -->
<option name="constructionType" value="bunker"/>
<!-- constructionsPerTerrPerTypePerTurn is how many of this type you can place in a territory every turn -->
<option name="constructionsPerTerrPerTypePerTurn" value="1"/>
<!-- maxConstructionsPerTypePerTerr is how many max of this type may be in a territory. this must be greater than constructionsPerTerrPerTypePerTurn
if "More Constructions with/without Factory" = true, then the minimum will be either maxConstructionsPerTypePerTerr or the PU value of the territory (whichever number is greater) in territories with/without factories
if "Unlimited Constructions" = true, then this number becomes 10000 -->
<option name="maxConstructionsPerTypePerTerr" value="1"/>
<!--<option name="hitPoints" value="2"/>-->
<!-- canDieFromReachingMaxDamage means that if this unit reaches its maxDamage, then it will die. maxDamage must be larger than zero -->
<option name="canDieFromReachingMaxDamage" value="true"/>
<!-- requiresUnits is a list of units required to be present in the territory in order for you to build this unit there. Can have multiple instances. Only one instance needs to be true in order to build. -->
<option name="requiresUnits" value="fighter:bomber:air_transport"/>
<option name="requiresUnits" value="factory"/>
<option name="requiresUnits" value="airfield"/>
<option name="requiresUnits" value="harbour"/>
<option name="requiresUnits" value="infantry"/>
<option name="requiresUnits" value="artillery"/>
<option name="requiresUnits" value="armour"/>
<option name="requiresUnits" value="aaGun"/>
</attachment>
<!-- Airfield -->
<attachment name="unitAttachment" attachTo="airfield" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<!-- isInfrastructure means a unit does not participate in combat, and they will be captured if the attacker is successful -->
<option name="isInfrastructure" value="true"/>
<option name="canBeDamaged" value="true"/>
<option name="maxDamage" value="6"/>
<option name="maxOperationalDamage" value="2"/>
<!-- isAirBase allows units with canScramble to scramble from a territory with this unit -->
<option name="isAirBase" value="true"/>
<!-- <option name="maxInterceptCount" value="2"/> -->
<option name="isConstruction" value="true"/>
<option name="constructionType" value="airfield_structure"/>
<option name="constructionsPerTerrPerTypePerTurn" value="1"/>
<option name="maxConstructionsPerTypePerTerr" value="1"/>
<!-- destroyedWhenCapturedBy is a list of the players who destroy this non-combat unit instead of capturing it. all non-combat units are normally captured by default
is a colon delimited list. example: value="Chinese:Russians" -->
<option name="destroyedWhenCapturedBy" value="Chinese"/>
<!-- givesMovement allows a unit to give movement to other units. must be an integer, followed by a colon ":", followed by the name of the unit -->
<option name="givesMovement" value="1:fighter"/>
<option name="givesMovement" value="1:jp_fighter"/>
<option name="givesMovement" value="1:bomber"/>
<option name="givesMovement" value="1:air_transport"/>
<!--<option name="isAAforBombingThisUnitOnly" value="true"/>-->
<!--<option name="whenCapturedChangesInto" value="any:Italians:false:aaGun:2:infantry:1"/>
<option name="whenCapturedChangesInto" value="Russians:any:true:factory:1"/>-->
</attachment>
<!-- Harbour -->
<attachment name="unitAttachment" attachTo="harbour" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="isInfrastructure" value="true"/>
<option name="canBeDamaged" value="true"/>
<option name="maxDamage" value="6"/>
<option name="maxOperationalDamage" value="2"/>
<!-- repairsUnits is a colon delimited list of all the units this unit can repair. it should start with the amount to be repaired (or use 'count' for the amount to be repaired) each turn. if not used, defaults to 1.
units to be repaired must be in the same territory as this unit. unless the unit being repaired is sea, and the unit repairing it is land, in which case the sea unit must be adjacent to the land unit
example: option name="repairsUnits" value="1:battleship:super_carrier" -->
<option name="repairsUnits" value="1:battleship"/>
<option name="isConstruction" value="true"/>
<option name="constructionType" value="harbour_structure"/>
<option name="constructionsPerTerrPerTypePerTurn" value="1"/>
<option name="maxConstructionsPerTypePerTerr" value="1"/>
<option name="destroyedWhenCapturedBy" value="Chinese"/>
<!--<option name="givesMovement" value="1:transport"/>
<option name="givesMovement" value="1:jp_transport"/>-->
<!--<option name="givesMovement" value="1:midget_submarine"/>-->
<option name="givesMovement" value="1:submarine"/>
<option name="givesMovement" value="1:destroyer"/>
<option name="givesMovement" value="1:jp_destroyer"/>
<option name="givesMovement" value="1:cruiser"/>
<option name="givesMovement" value="1:carrier"/>
<option name="givesMovement" value="1:battleship"/>
<option name="givesMovement" value="1:super_carrier"/>
<!--<option name="isAAforBombingThisUnitOnly" value="true"/>-->
</attachment>
<!-- Factory -->
<attachment name="unitAttachment" attachTo="factory" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<!-- isFactory units can have movement, but not much else -->
<option name="isFactory" value="true"/>
<!--<option name="maxDamage" value="-1"/>-->
<!-- unitPlacementRestrictions are a list of territories where this unit can not be built. list can contain any number of territories, including sea zones .
every unit may have a list, and the lists may be different for each unit. default is no list.
the list may be turned on/off with "Unit Placement Restrictions" game property -->
<option name="unitPlacementRestrictions" value="Midway:Greenland:Gibraltar:Solomon Islands:Wake Island:Caroline Islands"/>
<!-- canOnlyBePlacedInTerritoryValuedAtX means the minimum territory value to place the unit there. defaults to "-1" which means anywhere -->
<option name="canOnlyBePlacedInTerritoryValuedAtX" value="2"/>
<!-- maxBuiltPerPlayer is the number of this unit that can be BUILT by a player. If they have fewer than this number they can build more,
if they have more than this number they can not build more [this does not cause excess ones to disappear, and the player can still capture more and more of them if they are capturable] -->
<option name="maxBuiltPerPlayer" value="3"/>
<option name="destroyedWhenCapturedBy" value="Chinese"/>
<!-- unitPlacementOnlyAllowedIn is the direct inverse of unitPlacementRestrictions
<option name="unitPlacementOnlyAllowedIn" value="Germany:East Balkans"/>-->
<!-- canProduceXUnits allows a factory-type unit to produce a set amount of units no matter where it is located. if -1 then it will produce at the value of the territory where it is.
if greater than -1, you must have "maxDamage" set to some number if the unit is also "canBeDamaged" or "isFactory". defaults to -1 if missing -->
<option name="canProduceXUnits" value="-1"/>
<!-- canProduceUnits allows a unit to be a factory, without all the other things that come with being a factory (like capturable, land, non-combat, etc). So if you want flying factories, go ahead. Just don't complain if you get errors.
<option name="canProduceUnits" value="true"/>-->
<!-- createsUnitsList is a list of units that this unit will create every turn at the end of the turn. can have multiple instances
<option name="createsUnitsList" value="2:infantry"/>
<option name="createsUnitsList" value="1:artillery"/>-->
<!-- createsResourcesList is a list of resources that this unit will create every turn at the end of the turn. can have multiple instances
<option name="createsResourcesList" value="3:PUs"/>
<option name="createsResourcesList" value="2:techTokens"/>-->
<!-- special allows for some different options for the unit.
<option name="special" value="canOnlyPlaceInOriginalTerritories"/>-->
</attachment>
<!-- AA Gun -->
<attachment name="unitAttachment" attachTo="aaGun" javaClass="games.strategy.triplea.attachments.UnitAttachment" type="unitType">
<option name="isAA" value="true"/>
<option name="transportCost" value="3"/>
<option name="movement" value="1"/>
<option name="destroyedWhenCapturedBy" value="Chinese"/>
<option name="destroyedWhenCapturedFrom" value="Russians"/>
<!-- destroyedWhenCapturedBy and destroyedWhenCapturedFrom let a unit be destroyed instead of captured. They can be a colon delimited list of players.
You can prefix them with single instance of "BY:" or "FROM:" in order to determine if it is being captured by, or captured from, that determines if the unit is destroyed.
destroyedWhenCapturedFrom just takes the value input then adds "FROM:" to the beginning, then calls destroyedWhenCapturedBy with the new value.
<option name="destroyedWhenCapturedBy" value="BY:Chinese:Japanese"/>
<option name="destroyedWhenCapturedBy" value="FROM:Russians:Chinese"/>-->
<!--<option name="bombingMaxDieSides" value="6"/>
<option name="bombingBonus" value="0"/>-->
<!-- attackAA sets the value the AA will attack at (radar adds 1 if this is not 0). Defaults to 1. Can not be more than half the diceSides (even with radar)-->
<option name="attackAA" value="1"/>
<!-- attackAAmaxDieSides sets the dice sides for aa guns. defaults to whatever you chose above in diceSides (or 6 if you didn't choose).
Be Warned that all aa attack values (including with Radar and without Radar), MUST divide into attackAAmaxDieSides without remainders, or else there WILL be errors in LowLuck! -->
<option name="attackAAmaxDieSides" value="6"/>
<!-- isAAforCombatOnly allows this unit to be an AA gun for normal combat only. it will not defend against strategic bombing raids
<option name="isAAforCombatOnly" value="true"/>-->
<!-- isAAforBombingThisUnitOnly allows this unit to be an AA gun only when this unit is directly attacked by a strategic bombing raid (currently defends against all strategic bombing attacks in this territory, not just against this unit). it will not defend against a normal attack
<option name="isAAforBombingThisUnitOnly" value="true"/>-->
<!-- isRocket allows this unit to become a rocket if the player has the rocket technology. If the unit is named exactly "aaGun" then it will require an image called "rockets". If the unit is named anything else, then it will require an image with "_rockets" appended to its original name.
<option name="isRocket" value="true"/>-->
<!-- canNotMoveDuringCombatMove does not allow movement during 'combat move phase'
<option name="canNotMoveDuringCombatMove" value="true"/>-->
<!-- movementLimit / attackingLimit / placementLimit sets a maximum for the number of this unit in any territory. value can be "owned", "allied", or "total".
<option name="movementLimit" value="allied" count="1"/>-->
<!-- typeAA sets what group this aaGun is considered to fire with. only 1 aa gun per group may fire.
<option name="typeAA" value="aaGun"/>-->
<!-- targetsAA sets what this aaGun can shoot at. a guns in the same group must have the same targets
<option name="targetsAA" value="fighter:jp_fighter:bomber:air_transport"/>-->
<!-- maxAAattacks sets the max number of attacks this aa gun can perform. defaults to -1 which means infinite. if not infinite, then aa guns can stack.
<option name="maxAAattacks" value="-1"/>-->
</attachment>
<!-- Territory Attachments -->
<!-- <option name="unitProduction" value="x"/> must be placed under <option name="production" value="x"/> if it is being used.
This is because a recent update to TripleA had the setting of 'production' automatically set 'unitProduction' to be equal to it.
If you want to set "production" without also setting "unitProduction", then please use "productionOnly" -->
<!-- the following options are allowed for "territoryAttachment"
production values: the PU production of the territory. also sets unitProduction to the same value. (If setting unitProduction separately, please set "production" before setting "unitProduction")
productionOnly values: this sets "production" without setting "unitProduction"
unitProduction values: unitProduction defaults to whatever "production" is, so please set it after you set "production"
If using property, "Damage From Bombing Done To Units Instead Of Territories", damage will be done to an individual Unit instead of a Territory.
"unitProduction" lets you set the unit production potential of a territory, separate from the production. This means a territory with unitProduction = 2 will be able to produce 2 units there, regardless of if production is 0 or 20.
(The damage potential of these units will normally be 2x the unitProduction, but this can be set individually by creative use of maxDamage and canProduceXUnits)
resources values: the amount we will get, then the name of the resource. example: value="2:steel"
isImpassable values: true or false, is this territory not passable?
capital values: the capital of a player, and player's can have multiple capitals. all players except for optional players require a capital.
capital uses an image located in the "flags" folder of a map called "<nation>_large.png", and the location is determined in a file called "capitols.txt" in the map's root directory
victoryCity values: a victory city is typically used for victory conditions. Is actually an integer, so you can set it to 0, or 1, or 2, or greater numbers.
victoryCity uses an image located in the "misc" folder of a map called "vc.png", and the location is determined in a file called "vc.txt" in the map's root directory
originalFactory values: means that the original controller of the territory may produce infinite units there, however if it is captured the opponent may only produce as normal, not infinite units
originalOwner values: allows a territory to revert to this player's control if liberated by an ally
navalBase values: works according to original pacific rules: it increases the non-combat movement of naval units by +1 IF they go from friendly naval base TO friendly naval base
airBase values: works according to original pacific rules: it allows free movement between the land territory and any connecting water territories,
which potentially gives an air units +2 movement if they move from airbase to airbase and both airbases have water connecting to them on the route (or are islands)
captureUnitOnEnteringBy values: allows some players to have their units change to another player's control, if they are located in territories with this attachment, and the specified player captures this territory
it must be a list of the player's names in a ":" delimited list. For example: value="Russians:Germans"
changeUnitOwners values: allows some players to have their units change to another player's control, if they are located in territories with this attachment
it must be a list of the player's names in a ":" delimited list. For example: value="Russians:Germans"
convoyRoute values: true or false. Is this territory part of a Convoy route. (meaning, if this territory Either REQUIRES other territories to be owned, or is REQUIRED BY other territories to be owned).
convoyAttached values: a colon (":") delimited list of the territories this convoy is route is using (list of territories This territory REQUIRES). This can be empty if this territory does not require any other territories but is required by other territories.
At least one of the attached territories must be owned by a friendly to collect income from this territory.
blockadeZone values: true or false, can this territory be blockaded by neighboring sea zones?
kamikazeZone values: true or false, does nothing right now, but it will put a symbol on the map (the kamikazeZone symbol must be in the flags folder and be named "<owner_name>_fade"
territoryEffect values: adds a territoryEffect to a territory, can have multiple
whenCapturedByGoesTo values: the player that captures the territory, then the player that will get the territory, separated by a colon. Can have multiple. For example: value="Americans:Russians"
-->
<attachment name="territoryAttachment" attachTo="West Balkans" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="3"/>
<!-- resources allow you to use custom resource production for a territory.
<option name="resources" value="1:Steel"/>
<option name="resources" value="1:Aluminium"/>-->
</attachment>
<attachment name="territoryAttachment" attachTo="Greece" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="2"/>
<!-- captureUnitOnEnteringBy allows some players to have their units change to another player's control, if they are located in territories with this attachment, and the specified player captures this territory
it must be a list of the player's names in a ":" delimited list. For example: value="Russians:Germans"
<option name="captureUnitOnEnteringBy" value="Americans:British"/>-->
</attachment>
<attachment name="territoryAttachment" attachTo="Sicily" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="1"/>
</attachment>
<attachment name="territoryAttachment" attachTo="Sardinia" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="1"/>
<!-- convoyRoute and convoyAttached are for setting a territory to require another territory in order to collect income. at least one of the listed territories must be owned by a friendly to collect income from this territory.
<option name="convoyRoute" value="true"/>
<option name="convoyAttached" value="14 Sea Zone:13 Sea Zone"/> -->
</attachment>
<attachment name="territoryAttachment" attachTo="Eastern Canada" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="3"/>
</attachment>
<attachment name="territoryAttachment" attachTo="Germany" javaClass="games.strategy.triplea.attachments.TerritoryAttachment" type="territory">
<option name="production" value="14"/>
<!-- capital uses an image located in the "flags" folder of a map called "<nation>_large.png", and the location is determined in a file called "capitols.txt" in the map's root directory -->
<option name="capital" value="Germans"/>
<!-- victoryCity uses an image located in the "misc" folder of a map called "vc.png", and the location is determined in a file called "vc.txt" in the map's root directory -->
<option name="victoryCity" value="1"/>
<!--- originalFactory means that the original controller of the territory may produce infinite units there, however if it is captured the opponent may only produce as normal, not infinite units
<option name="originalFactory" value="true"/> -->
<!-- navalBase territory attachment works according to original pacific rules: it increases the non-combat movement of naval units by +1 IF they go from friendly naval base TO friendly naval base
<option name="navalBase" value="true"/> -->
<!-- airBase territory attachment works according to original pacific rules: it allows free movement between the land territory and any connecting water territories,
which potentially gives an air units +2 movement if they move from airbase to airbase and both airbases have water connecting to them on the route (or are islands)
<option name="airBase" value="true"/> -->
<!-- unitProduction is complex and has 2 uses, depending on how you plan on dealing with damage.
(setting "production" sets "unitProduction" at the same time to be equal, therefore unitProduction defaults to production if it is not set, or if it is set before production.
If you want unitProduction to be different, please set it after you set production.)
1. First use is used only with ww2v3 factory damage rules ("SBR Affects Unit Production"), which have damage done to a Territory, not to a Unit.
This decides the damage the territory starts at. If unitProduction is less than production, then the territory starts damaged. If they are equal, then the territory is not damaged.
2. Second use is used with newer maps which are using the new damage rules ("Damage From Bombing Done To Units Instead Of Territories"), which have damage done to an individual Unit instead of a Territory.
When used with these rules, "unitProduction" lets you set the unit production potential of a territory, separate from the production. This means a territory with unitProduction = 2 will be able to produce 2 units there, regardless of if production is 0 or 20.
The damage potential of these units will normally be 2x the unitProduction, but this can be set individually by creative use of maxDamage and canProduceXUnits.
Must be placed UNDER 'production' in the xml, because 'production' automatically sets 'unitProduction' to be equal otherwise.
<option name="unitProduction" value="14"/>-->
</attachment>