<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- # XML DATA # -->
<script type="application/json" id="json_data">
{
"territoryAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for territories"
,"params":{
"attachTo":"Any territory name in 'map' List"
,"type":"territory"
,"javaClass":"TerritoryAttachment"
}
,"example":[
"<attachment name='territoryAttachment' attachTo='Greece' javaClass='TerritoryAttachment' type='territory'>"
,"\n\t<option name='production' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.TerritoryAttachment'"
]
,"chiluns":"Option List"
}

,"airBase":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Enables airbase rules for territory"
,"params":{"value":"true / false, <b>Default</b>:&nbsp;false"}
,"info":[
"Works according to original pacific rules: it allows free movement between the land territory and any connecting water territories"
,"This potentially gives 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)"
]
,"example":["<option name='airBase' value='true'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='airBase' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"blockadeZone":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Territory may be blockaded"
,"params":{"value":"true / false, <b>Default</b>:&nbsp;false"}
,"info":[
"Determines if this territory may be blockaded by neighboring sea zones"
,"Blockade Zones are areas where, if the enemy has ships there, they subtract the unit 'blockade' value from each of the connecting land territories up to the value of the territory."
,"If there are many enemy ships, you will collect no income from the connecting land territories."
,"Should be set to zero production otherwise they become convoy zones too"
,""
]
,"example":["<option name='blockadeZone' value='true'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='37 Sea Zone' ..."
,"\n\t<option name='production' value='0'/>"
,"\n\t<option name='blockadeZone' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"blockade"
,"immuneToBlockade"
]
}
,"capital":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Territory is a capital"
,"params":{"value":"Any player name in the playerList"}
,"info":[
"If the capital falls, all PUs held by the original owner are transferred to the conquerer."
,"No income is collected until the capital is liberated."
,"A player may have multiple capitals."
,"All players except for optional players require a capital. (See optional in 'related links')"
,"Uses an image located in the 'flags' folder of a map, image name: '<player>_large.png'<br> - The image positioning is set in a file called 'capitols.txt' in the map's root directory"
]
,"example":["<option name='capital' value='British'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='capital' value='British'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"playerList"
,"option"
,"isCapital"
,"retainCapitalNumber"
,"retainCapitalProduceNumber"
]
}
,"captureUnitOnEnteringBy territory":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Unit captured on territory capture"
,"params":{"value":"A colon delimited list of players"}
,"info":[
"The players in the list will capture units in this territory if they gain control of the territory."
,"Requires 'changeUnitOwners'"
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='captureUnitOnEnteringBy' value='Russians:Germans'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='captureUnitOnEnteringBy' value='Russians:Germans'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"captureUnitOnEnteringBy player"
,"changeUnitOwners"
,"Capture Units On Entering Territory"
]
}
,"changeUnitOwners":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Unit loss on capture of territory"
,"params":{"value":"A colon delimited list of players"}
,"info":[
"The players in the list will have their units in this territory captured when they lose control of the territory."
,"Requires 'captureUnitOnEnteringBy'"
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='changeUnitOwners' value='Russians:Germans'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='changeUnitOwners' value='Russians:Germans'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["captureUnitOnEnteringBy territory","",""]
}
,"convoyAttached":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Territory is convoy related"
,"params":{"value":"A colon delimited list of territories"}
,"info":[
"At least one territory in the list must be owned by a friendly to collect income from the 'attachTo' territory."
,"The list may be empty if this territory does not require any other territories but is required by other territory."
,"See the context section below, Sea zone 5 is part of the convoyRoute of Norway (Norway has it listed under convoyAttached), so Sea zone 5 must have convoyRoute = true<br>Sea zone 5 has an income of 2 for Germany, but it does not Require ownership of another territory in order to get the income, so convoyAttached is blank."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='convoyAttached' value='Quebec:Iceland:South Africa'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='5 Sea Zone' javaClass='TerritoryAttachment' type='territory'>"
,"\n\t<option name='production' value='2'/>"
,"\n\t<option name='convoyRoute' value='true'/>"
,"\n\t<option name='convoyAttached' value=''/>"
,"\n\t..."
,"\n</attachment>"
,"\n..."
,"\n<attachment name='territoryAttachment' attachTo='Norway' javaClass='TerritoryAttachment' type='territory'>"
,"\n\t<option name='production' value='3'/>"
,"\n\t<option name='convoyRoute' value='true'/>"
,"\n\t<option name='convoyAttached' value='5 Sea Zone:6 Sea Zone'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"convoyRoute"
,"Convoy Route"
,"Sub Control Sea Zone Restricted"
]
}
,"convoyRoute":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Territory is part of a convoy route."
,"params":{"value":"true / false, <b>Default</b>:&nbsp;false"}
,"info":[
"Convoy Centers are simply sea zones with income."
,"If you control your convoy zone, you get the income from it, but if an enemy takes the zone they do not get any income, they just deny you the income."
,"Can only be entered during combat movement."
,"This territory either REQUIRES other territories to be owned, or is REQUIRED BY other territories to be owned)."
,"See the context section below, Sea zone 5 is part of the convoyRoute of Norway (Norway has it listed under convoyAttached), so Sea zone 5 must have convoyRoute = true<br>Sea zone 5 has an income of 2 for Germany, but it does not Require ownership of another territory in order to get the income, so convoyAttached is blank."
]
,"example":[
"<option name='convoyRoute' value='true'/"
]
,"context":[
"<attachment name='territoryAttachment' attachTo='5 Sea Zone' javaClass='TerritoryAttachment' type='territory'>"
,"\n\t<option name='production' value='2'/>"
,"\n\t<option name='convoyRoute' value='true'/>"
,"\n\t<option name='convoyAttached' value=''/>"
,"\n\t..."
,"\n</attachment>"
,"\n..."
,"\n<attachment name='territoryAttachment' attachTo='Norway' javaClass='TerritoryAttachment' type='territory'>"
,"\n\t<option name='production' value='3'/>"
,"\n\t<option name='convoyRoute' value='true'/>"
,"\n\t<option name='convoyAttached' value='5 Sea Zone:6 Sea Zone'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"convoyAttached"
,"Convoy Route"
,"Sub Control Sea Zone Restricted"
]
}

,"Convoy Center":{
"parent":"Terms"
,"type":"definition"
,"desc":"Description of term"
,"info":[
"Convoy centers are sea zones with prodution value."
,"If an enemy controls the zone the original owner loses the prodution value."
,"Enemy control of the zone does not give the enemy the prodution value."
,"Only the original owner may receive the income for Convoy Centers."
,"These sea zones may only be entered during combat movement."
]

,"links":[
"Convoy Route"
,"convoyAttached"
,"Sub Control Sea Zone Restricted"
]
}

,"Convoy Route":{
"parent":"Terms"
,"type":"definition"
,"desc":"Description of term"
,"info":[
"Convoy Routes are sea zones adjacent to territories with an income."
,"In order for the owner of the land territory to receive the income, the Convoy Route must be allied controlled."
,"Any player may receive the income for land territories associated with Convoy Routes."
]

,"links":[
"Convoy Center"
,"convoyAttached"
,"Sub Control Sea Zone Restricted"
]
}

,"isImpassable":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Prevents units from passing through or over the territory"
,"params":{"value":"true / false, <b>Default</b>:&nbsp;false"}
,"example":["<option name='isImpassable' value='true'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='isImpassable' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"kamikazeZone":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Places image on map"
,"params":{"value":"true / false, <b>Default</b>:&nbsp;false"}
,"info":"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'"
,"example":["<option name='kamikazeZone' value='true'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='kamikazeZone' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Kamikaze Suicide Attacks Done By Current Territory Owner"
,"suicideAttackResources"
,"suicideAttackTargets"
]
}
,"navalBase":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Enable naval base rules for territory"
,"params":{"value":"true / false, <b>Default</b>:&nbsp;false"}
,"info":"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 a friendly naval base"
,"example":["option name='navalBase' value='true'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='navalBase' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"originalFactory":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Unlimited production in territory"
,"params":{"value":"Any player name in the playerList"}
,"info":"Indicates the original controller of the territory may place infinite units in the territory.<br>However if it is captured the opponent may only place as normal."
,"example":["<option name='originalFactory' value='British'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='originalFactory' value='British'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"playerList"
,"Placement Restricted By Factory"
]
}
,"originalOwner":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Territory reverts to player if liberated."
,"params":{"value":"Any player name in the playerList"}
,"info":"Enables a territory to revert to this player's control if liberated by an ally."
,"example":["<option name='originalOwner' value='British'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='originalOwner' value='British'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["playerList","",""]
}

,"production value":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"PU value of territory"
,"params":{"value":">=0, <b>Default</b>:&nbsp; 0"}
,"info":[
"The PU production value of the territory."
,"Also sets unitProduction to the same value."
,"If setting unitProduction separately, please set 'production' before setting 'unitProduction')<br><br><b>WARNING: In the XML this option name is actually 'production'</b><br>It is refered to in this document as 'production value' so not to be confused with 'production' (the list of production rules)"
]
,"example":["<option name='production' value='4'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='production' value='4'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["Production","unitProduction","productionOnly","production rules","Economic Victory"]
}

,"productionOnly":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Set territory production without affecting unitProduction"
,"params":{"value":">=0"}
,"info":"This sets 'production' without setting 'unitProduction'"
,"example":["<option name='productionOnly' value='5'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='productionOnly' value='5'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["Production","unitProduction"]
}
,"resources":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Describes resource generation for territory"
,"params":{"value":"A colon delimited pair consisting of an amount then a resource from the resourceList.<br><b>Default</b>:&nbsp;Zero if option not set for the territory."}
,"info":[
"For multiple resources, create separate elements."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='resources' value='2:steel'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='resources' value='2:steel'/>"
,"\n\t<option name='resources' value='3:food'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["resource type","resourceList",""]
}
,"territoryEffect":{
"parent":"game"
,"desc":"option OR name"
,"info":[
"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
,"<b>Warning</b>: territoryEffect has 2 occurances :<ul><li>As an option in territoryEffectAttachment<li>In the territoryEffectList as an effect definition</ul>"
]
,"links":[
"territoryEffectAttachment"
,"territoryEffect option"
,"territoryEffectList"
,"territoryEffect name"
]
}
,"territoryEffect option":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Terrain type for territory"
,"params":{"value":"Any territoryEffect in territoryEffectList"}
,"info":"For multiple effects, set separate options"
,"example":["<option name='territoryEffect' value='costal'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='territoryEffect' value='Hills'/>"
,"\n\t<option name='territoryEffect' value='Coast'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["territoryEffectAttachment"]
}
,"territoryEffectAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for territory Effects"
,"params":{
"attachTo":"Any territoryEffect name in territoryEffectList"
,"type":"territoryEffect"
,"javaClass":"TerritoryEffectAttachment"
}
,"example":[
"<attachment name='territoryEffectAttachment' attachTo='mountain' javaClass='TerritoryEffectAttachment' type='territoryEffect'>"
,"\n\t<option name='combatOffenseEffect' value='infantry' count='1'/>"
,"\n\t<option name='combatDefenseEffect' value='armour' count='-2'/>"
,"\n\t<option name='noBlitz' value='armour'/>"
,"\n\t<option name='unitsNotAllowed' value='armour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.TerritoryAttachment'"
]
,"chiluns":"Option List"
}
,"combatOffenseEffect":{
"parent":"territoryEffectAttachment"
,"type":"option"
,"desc":"A territory effect"
,"params":{
"value":"A unit name."
,"count":"integer"
}
,"info":[
"Count modifies the die roll."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='combatOffenseEffect' value='infantry'/ count='1'>"]
,"context":[
"<attachment name='territoryEffectAttachment' attachTo='mountain' javaClass='TerritoryEffectAttachment' type='territory'>"
,"\n\t<option name='combatOffenseEffect' value='infantry' count='1'/>"
,"\n\t<option name='combatDefenseEffect' value='armour' count='-2'/>"
,"\n\t<option name='noBlitz' value='armour'/>"
,"\n\t<option name='unitsNotAllowed' value='armour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"combatDefenseEffect"
,"noBlitz"
,"unitsNotAllowed"
]
}
,"combatDefenseEffect":{
"parent":"territoryEffectAttachment"
,"type":"option"
,"desc":"A territory effect"
,"params":{
"value":"A unit name."
,"count":"integer"
}
,"info":[
"Count modifies the die roll."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='combatDefenseEffect' value='armour' count='-2'/>"]
,"context":[
"<attachment name='territoryEffectAttachment' attachTo='mountain' javaClass='TerritoryEffectAttachment' type='territory'>"
,"\n\t<option name='combatOffenseEffect' value='infantry' count='1'/>"
,"\n\t<option name='combatDefenseEffect' value='armour' count='-2'/>"
,"\n\t<option name='noBlitz' value='armour'/>"
,"\n\t<option name='unitsNotAllowed' value='armour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"combatOffenseEffect"
,"noBlitz"
,"unitsNotAllowed"
]
}
,"noBlitz":{
"parent":"territoryEffectAttachment"
,"type":"option"
,"desc":"A territory effect"
,"params":{
"value":"A colon delimited of units."
}
,"info":[
"List is of units that may not blitz through this territoryEffect."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='noBlitz' value='armour'/>"]
,"context":[
"<attachment name='territoryEffectAttachment' attachTo='mountain' javaClass='TerritoryEffectAttachment' type='territory'>"
,"\n\t<option name='combatOffenseEffect' value='infantry' count='1'/>"
,"\n\t<option name='combatDefenseEffect' value='armour' count='-2'/>"
,"\n\t<option name='noBlitz' value='armour'/>"
,"\n\t<option name='unitsNotAllowed' value='armour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"combatOffenseEffect"
,"combatDefenseEffect"
,"unitsNotAllowed"
]
}

,"unitsNotAllowed":{
"parent":"territoryEffectAttachment"
,"type":"option"
,"desc":"A territory effect"
,"params":{
"value":"A colon delimited of units."
}
,"info":[
"List is of units that are not allowed into or through this territoryEffect."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":["<option name='unitsNotAllowed' value='armour'/>"]
,"context":[
"<attachment name='territoryEffectAttachment' attachTo='mountain' javaClass='TerritoryEffectAttachment' type='territory'>"
,"\n\t<option name='combatOffenseEffect' value='infantry' count='1'/>"
,"\n\t<option name='combatDefenseEffect' value='armour' count='-2'/>"
,"\n\t<option name='noBlitz' value='armour'/>"
,"\n\t<option name='unitsNotAllowed' value='armour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"combatOffenseEffect"
,"combatDefenseEffect"
,"noBlitz"
]
}

,"unitProduction":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Maximum units placed in territory"
,"params":{"value":">=0, <b>Default</b>:&nbsp; Whatever 'production' is (production value)"}
,"info":[
"Set this after (below) you set 'production' or it will have no effect."
,"If using 'Damage From Bombing Done To Units Instead Of Territories' property, 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 place 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)"
,"If using ww2v3 factory damage rules 'SBR Affects Unit Production', which have damage done to a Territory, not to a Unit.<br>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."
]
,"example":["<option name='unitProduction' value='3'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='production' value='4'/>"
,"\n\t<option name='unitProduction' value='3'/>"
,"\n\t..."
]
,"links":["Production","productionOnly","production value"]
}
,"victoryCity":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Victory value of territory"
,"params":{"value":">=0, <b>Default</b>:&nbsp; Zero if option not set for territory"}
,"info":"Typically used for victory conditions.<br>Uses an image located in the 'misc' folder of a map, image name: 'vc.png'<br> - The image positioning is set in a file called 'vc.txt' in the map's root directory"
,"example":["<option name='victoryCity' value='1'/>"]
,"context":[
"<attachment name='territoryAttachment' attachTo='Greece' ..."
,"\n\t<option name='victoryCity'value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Projection of Power VCs"
,"Honorable Surrender VCs"
,"Total Victory VCs"
]
}
,"whenCapturedByGoesTo":{
"parent":"territoryAttachment"
,"type":"option"
,"desc":"Changes ownership of territory"
,"params":{"value":"A colon delimited pair of player names from the playerList"}
,"info":[
"First name is the player that captures the territory<br>The second is the player that will get the territory<br>For multiple changes, set separate options"
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"context":[
"<attachment name='territoryAttachment'attachTo='Greece' ..."
,"\n\t<option name='whenCapturedByGoesTo'value='Americans:Russians'/>","<option name='whenCapturedByGoesTo' value='Russians:Americans'/>"]
}

,"resourceList":{
"parent":"game"
,"type":"object"
,"desc":"A list of resource names in the scenario"
,"info":["PUs and techTokens are the default supported resources."
,"All maps should use PUs as the default money, as a map without PUs may fail."
,"'VPs' are only semi-supported by the code as of right now. They are used for special pacific rules."
]
,"context":[
"<resourceList>"
,"\n\t<resource name='PUs'/>"
,"\n\t<resource name='techTokens'/>"
,"\n\t<resource name='steel'/>"
,"\n\t<resource name='food'/>"
,"\n\t..."
,"\n<resourceList>"
]
,"chiluns":"Child Elements"
}
,"resource type":{
"parent":"resourceList"
,"type":"child"
,"desc":"Defines a resource"
,"params":{
"name":"The resource description."
}
,"info":[
"For multiple resources, create separate elements."
,"PUs and techTokens are the default supported resources."
,"All maps should use PUs as the default 'money', as a map without PUs may fail."
,"VPs are only semi-supported by the code as of right now. They are used for special pacific rules."
,"Note: There is also a triggerAttachment option named resource"
]
,"context":[
"<resourceList>"
,"\n\t<resource name='PUs'/>"
,"\n\t<resource name='techTokens'/>"
,"\n\t<resource name='steel'/>"
,"\n\t<resource name='food'/>"
,"\n\t<resource name='VPs'/>"
,"\n\t..."
,"\n<resourceList>"
]
,"links":["resource option"]
}

,"playerList":{
"parent":"game"
,"type":"object"
,"desc":"Player definitions."
,"chiluns":"Child Elements"
}

,"player":{
"parent":"playerList"
,"type":"object"
,"desc":"Player setup options"
,"params":{"name":"Designates a player"}
,"info":[
"Player is not the ideal term for this object or what it represents, it is an artefact of the original Axis & Allies game."
,"The term would be different for different maps/scenairos ie; country, nation, realm, state, faction etc."
,"Changing the term would require large changes within the TripleA engine, so probably not happen."
,"Player flag images may be .gif or .png"
]
,"example":[
"<player name='Russians' optional='false' canBeDisabled='false' defaultType='DoesNothing'/>"
]
,"switches":[
"canBeDisabled"
,"defaultType"
,"isHidden"
,"optional"
]
,"links":["alliance"]
}

,"canBeDisabled":{
"parent":"player"
,"type":"switch"
,"desc":"May remove player from game"
,"params":{"values":"true / false (Required)"}
,"info":"If true:<ul id='no_mgn'><li>The player will skip all of their phases.<li>Their delegates will be removed from the game. <li>Triggers will not happen during those delegates either.</ul>"
,"example":[
"<player name='Russians' optional='false' canBeDisabled='false' defaultType='DoesNothing'/>"
]
,"links":["player","playerList","optional"]
}

,"defaultType":{
"parent":"player"
,"type":"switch"
,"desc":"Set player as Human or AI"
,"params":{"values":"true / false"}
,"info":["Optional switch"
,"May be set to 'Human', 'AI' or 'DoesNothing'"
,"<b>Default</b>:&nbsp; 'Human' if switch not present"
,"Sets player to this type by default in the player selection window."]
,"example":[
"<player name='Russians' optional='false' canBeDisabled='false' defaultType='DoesNothing'/>"
]
,"links":["player","playerList"]
}

,"isHidden":{
"parent":"player"
,"type":"switch"
,"desc":"Player not selectable"
,"info":[
"Optional switch<br>If true, does not show in player selection window."
,"<b>Default</b>:&nbsp; 'false' if switch not present"
]
,"example":["<player name='Gremlins' optional='false' canBeDisabled='false' isHidden='true'/>"]
,"links":["player","playerList"]
}

,"optional":{
"parent":"player"
,"type":"switch"
,"desc":"Does player require capital"
,"params":{"value":"true / false (Required)"}
,"info":"<ul><li><b>False</b>: They require at least 1 capital.<li><b>True</b>: They may have zero or more capitals."
,"example":["<player name='Russians' optional='false' canBeDisabled='false'/>"]
,"links":["capital","playerList","canBeDisabled"]
}

,"alliance":{
"parent":"playerList"
,"type":"object"
,"desc":"Designate player alliance"
,"params":{
"player":"Any player name in the playerList"
,"alliance":"May have any string, those with identical values are allied"
}
,"info":"There may be more than 2 alliances."
,"context":[
"<playerList>"
,"\n\t<player name='Russians' optional='false' canBeDisabled='false'/>"
,"\n\t..."
,"\n\t<alliance player='Germans' alliance='Axis'/>"
,"\n\t<alliance player='Japanese' alliance='Axis'/>"
,"\n\t<alliance player='British' alliance='Allies'/>"
,"\n\t<alliance player='Russians' alliance='Allies'/>"
,"\n</playerList>"
]
,"vers":["Since triplea version 1.3.3.0 it is preferred to use relationships instead of or in addition to alliances.<br>If relationships are set, then alliances will only matter for the stats panel and any game option type victory conditions."]
,"links":["relationshipType","relationshipTypeAttachment"]
}

,"unitList":{
"parent":"game"
,"desc":"List of all units in the scenario."
,"chiluns":"Child Elements"
,"example":["<unitList>"
,"\n\t<unit name='infantry'/>"
,"\n\t<unit name='armour'/>"
,"\n\t..."
,"\n<unitList>"
]
}


,"unit":{
"parent":"unitList"
,"desc":"Defines a unit"
,"params":{"name":"The designation for the unit."}
,"context":[
"<unitList>"
,"\n\t<unit name='infantry'/>"
,"\n\t<unit name='armour'/>"
,"\n\t..."
,"\n<unitList>"
]
}

,"relationshipTypes":{
"parent":"game"
,"desc":"Player relationship definitions."
,"info":[
"You can name a relationshipType whatever you want."
,"Each relationshipType MUST have a RelationshipTypeAttachment to define the relationship."
]
,"example":[
"<relationshipTypes>"
,"\n\t<relationshipType name='Allied'/>"
,"\n\t<relationshipType name='War'/>"
,"\n\t<relationshipType name='Neutrality'/>"
,"\n\t<relationshipType name='NAP'/>"
,"\n\t<relationshipType name='ColdWar'/>"
,"\n<relationshipTypes>"
]
,"chiluns":"Child Elements"
,"links":["relationshipTypeAttachment","relationship type","alliance"]
}
,"relationshipType":{
"parent":"relationshipTypes"
,"type":"object"
,"desc":"Defines relationship types"
,"params":{"value":"Allied / War / Neutrality"}
,"info":"Each relationshipType MUST have a RelationshipTypeAttachment to define the relationship."
,"context":[
"<relationshipTypes>"
,"\n\t<relationshipType name='Allied'/>"
,"\n\t<relationshipType name='War'/>"
,"\n\t<relationshipType name='Neutrality'/>"
,"\n<relationshipTypes>"
]
,"links":["relationshipTypeAttachment","relationshipChange politics","relationship type","alliance"]
}
,"territoryEffectList":{
"parent":"game"
,"desc":"A list of modifiers based on the territory."
,"example":[
"<territoryEffectList>"
,"\n\t<territoryEffect name='city'/>"
,"\n\t<territoryEffect name='desert'/>"
,"\n\t<territoryEffect name='forest'/>"
,"\n\t<territoryEffect name='hill'/>"
,"\n\t<territoryEffect name='marsh'/>"
,"\n\t<territoryEffect name='mountain'/>"
,"\n\t<territoryEffect name='sahara'/>"
,"\n</territoryEffectList>"
]
,"chiluns":"Child Elements"
,"links":["territoryAttachment","territoryEffectAttachment"]
}
,"territoryEffect name":{
"parent":"territoryEffectList"
,"type":"object"
,"desc":"Defines territory effect"
,"params":{"name":"The designation for the effect."}
,"info":"Requires a territoryEffectAttachment."
,"context":[
"<territoryEffectList>"
,"\n\t<territoryEffect name='city'/>"
,"\n\t<territoryEffect name='desert'/>"
,"\n\t<territoryEffect name='forest'/>"
,"\n\t..."
,"\n</territoryEffectList>"
]
,"links":[
"territoryAttachment"
,"territoryEffectAttachment"
]
}

,"Terms":{
"desc":"A list of terminology"
,"info":"Terms is not an element within the XML."
,"chiluns":"List of terms"
}

,"LHTR":{
"parent":"Terms"
,"type":"definition"
,"desc":"Larry Harris tournament rules"
,"info":[
"Refers to rules that differ from AAR."
,"Most notable is that damage from strategic bombing can't exceed the value of the territory."
]
,"links":[
"AAR"
,"LHTR Heavy Bombers"
,"LHTR Carrier production rules"
]
}

,"AAR":{
"parent":"Terms"
,"type":"definition"
,"desc":"Axis and allies revised rules"
,"info":[
"Refers to the TripleA version of the 2004 Avalon-Hill edition, which depicts the world roughly in January 1, 1942."
]
,"links":[
"LHTR"
]
}

,"gamePlay":{
"parent":"game"
,"desc":"Turn processing objects"
,"info":"A set objects relating to turn processing."
,"chiluns":"Child Elements"
}

,"delegate":{
"parent":"gamePlay"
,"type":"object"
,"desc":"Routines for phases of the game."
,"info":[
"These are linked to steps within each player turn sequence."
,"Not all are needed for a regular game. It is not clear if any are explicitly required."
,"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)"
,"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."
,"RandomStartDelegate delegate is for randomly assigning territories, or letting users pick territories (like Risk) in turn order.<br>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.<br>If any units remain after territories are assigned, they will be placed one by one in owned territories until empty."
]
,"example":[
"<gamePlay>"
,"\n\t<delegate name='initDelegate' javaClass='InitializationDelegate' display='Initializing Delegates'/>"
,"\n\t<delegate name='tech' javaClass='TechnologyDelegate' display='Research Technology'/>"
,"\n\t<delegate name='tech_activation' javaClass='TechActivationDelegate' display='Activate Technology'/>"
,"\n\t<delegate name='battle' javaClass='BattleDelegate' display='Combat'/>"
,"\n\t<delegate name='specialCombatMove' javaClass='SpecialMoveDelegate' display='Special Move'/>"
,"\n\t<delegate name='move' javaClass='MoveDelegate' display='Combat Move'/>"
,"\n\t<delegate name='place' javaClass='PlaceDelegate' display='Place Units'/>"
,"\n\t<delegate name='placeNoAirCheck' javaClass='NoAirCheckPlaceDelegate' display='Place Units'/>"
,"\n\t<delegate name='purchase' javaClass='PurchaseDelegate' display='Purchase Units'/>"
,"\n\t<delegate name='purchaseNoPU' javaClass='NoPUPurchaseDelegate' display='Purchase Units'/>"
,"\n\t<delegate name='endTurn' javaClass='EndTurnDelegate' display='Turn Complete'/>"
,"\n\t<delegate name='endTurnNoPU' javaClass='NoPUEndTurnDelegate' display='Turn Complete'/>"
,"\n\t<delegate name='endRound' javaClass='EndRoundDelegate' display='Round Complete'/>"
,"\n\t<delegate name='placeBid' javaClass='BidPlaceDelegate' display='Bid Placement'/>"
,"\n\t<delegate name='bid' javaClass='BidPurchaseDelegate' display='Bid Purchase'/>"
,"\n\t<delegate name='politics' javaClass='PoliticsDelegate' display='Politics'/>"
,"\n\t<delegate name='userActions' javaClass='UserActionDelegate' display='Actions And Operations'/>"
,"\n<gamePlay>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.delegate.InitializationDelegate'"
]
,"links":["sequence"]
}

,"sequence":{
"parent":"gamePlay"
,"type":"object"
,"desc":"List of turn steps"
,"info":[
"It is very important that the 'step name' ends with the correct phrase, or else the game will not work properly."
,"The 'name' must have the player name with the correct phrase appended."
,"NOTE: stepProperty elements are not validated at all, so if you have a typo it will not be caught."
]
,"example":"player sequence"
,"chiluns":"Steps"
,"links":["delegate"]
}

,"AirborneCombatMove":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'AirborneCombatMove' postfixed"
,"delegate":"specialCombatMove"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may move paratroopers."
,"Calls the SpecialMoveDelegate in gamePlay."
]
,"example":[
"<step name='italianAirborneCombatMove' delegate='specialCombatMove' player='Italians' display='Airborne Attack Move'>"
,"\n\t<stepProperty name='airborneMove' value='true'/>"
,"\n</step>"
]
,"context":"player sequence"
,"links":["gamePlay","delegate","specialCombatMove"]
}

,"userActions":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'UserActions' postfixed"
,"delegate":"userActions"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"This step resolves actions via userActionAttachments."
,"Calls the UserActionDelegate in gamePlay."
]
,"context":"player sequence"
,"links":["gamePlay","delegate","userActionAttachment"]
}

,"tech_activation":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'TechActivation' postfixed"
,"delegate":"tech_activation"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Step activates researched techs."
,"Calls the TechActivationDelegate in gamePlay."
]
,"context":"player sequence"
,"links":["gamePlay","delegate","TechActivationDelegate"]
}

,"EndTurn":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'EndTurn' postfixed"
,"delegate":"endTurn"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"This step ends the players turn."
,"stepProperties may apply to NoPUEndTurnDelegate as well."
,"The stepProperties skipPosting and repairUnits are listed under other steps (see links below)."
,"Calls the EndTurnDelegate in gamePlay."
]
,"context":"player sequence"
,"links":["gamePlay","delegate","skipPosting","repairUnits","EndTurnDelegate","NoPUEndTurnDelegate"]
,"chiluns":"Step Properties"
}

,"EndTurnNoPU":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'NoPUEndTurn' postfixed"
,"delegate":"endTurnNoPU"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"This step ends the players turn."
,"stepProperties may apply to NoPUEndTurnDelegate as well."
,"possible stepProperties turnSummaryPlayers, skipPosting and repairUnits are listed under other steps (see links below)."
,"Calls the NoPUEndTurnDelegate in gamePlay."
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='chineseEndTurn' delegate='endTurnNoPU' player='Chinese'>"
,"\n\t\t<stepProperty name='turnSummaryPlayers' value='Chinese'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":[
"gamePlay"
,"delegate"
,"turnSummaryPlayers"
,"skipPosting"
,"repairUnits"
,"NoPUEndTurnDelegate"]
}

,"Place":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'Place' postfixed"
,"delegate":"place"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may place produced units."
,"The stepProperties below are applicable to PlaceDelegate and NoAirCheckPlaceDelegate."
,"Has stepProperty removeAirThatCanNotLand."
,"Has stepProperty 'bid' that will make bid production available for placement."
,"stepProperty 'bid' defaults to true ifname ends with 'BidPlace'."
,"Calls the PlaceDelegate in gamePlay."
]
,"context":"player sequence"
,"links":["gamePlay","delegate","PlaceDelegate","removeAirThatCanNotLand"]
}

,"turnSummaryPlayers":{
"parent":"EndTurn"
,"type":"stepProperty"
,"desc":"List of recipients"
,"params":{
"name":"turnSummaryPlayers"
,"value":"A colon delimited list of players"
}
,"info":[
"List is players the 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)."
]
,"example":[
"<stepProperty name='turnSummaryPlayers' value='Chinese'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='chineseEndTurn' delegate='endTurnNoPU' player='Chinese'>"
,"\n\t\t<stepProperty name='turnSummaryPlayers' value='Chinese'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["EndTurnDelegate","NoPUEndTurnDelegate"]
}


,"NonCombatMove":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'NonCombatMove' postfixed"
,"delegate":"move"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"This step calls the MoveDelegate, but will default to different settings than CombatMove."
,"NOTE: If NonCombatMove is not used, you need to place resetUnitStateAtEnd in the CombatMove step"
,"See the CombatMove step for the stepProperties affected."
]
,"context":"player sequence"
,"links":["gamePlay","delegate","MoveDelegate","CombatMove"]
,"chiluns":"Step Properties"
}

,"Battle":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'Battle' postfixed"
,"delegate":"battle"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"All combat is resolved in this step."
,"Calls the BattleDelegate in gamePlay."
]
,"context":"player sequence"
,"links":["gamePlay","delegate","BattleDelegate"]
,"chiluns":"Step Properties"
}

,"CombatMove":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'CombatMove' postfixed"
,"delegate":"move"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may move units into combat."
,"The stepProperties below are applicable to MoveDelegate and SpecialMoveDelegate."
,"Calls the MoveDelegate in gamePlay."
]
,"context":"player sequence"
,"chiluns":"Step Properties"
,"links":["gamePlay","delegate","MoveDelegate","combatMove"]
}

,"combinedTurns":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Use allied carriers etc"
,"params":{
"name":"combinedTurns"
,"value":"A colon delimited list of players"
}
,"info":[
"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."
,"Default is the step player only."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='combinedTurns' value='Russians:British'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='combinedTurns' value='Russians:British'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}

,"turnSummaryPlayers":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Sends summary to list"
,"params":{
"name":"turnSummaryPlayers"
,"value":"A colon delimited list of players"
}
,"info":[
"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)."
,"Default is the step player only."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='turnSummaryPlayers' value='Russians:British'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='turnSummaryPlayers' value='Russians:British'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}

,"skipPosting":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Stops posting"
,"params":{
"name":"skipPosting"
,"value":"true / false"
}
,"info":[
"Skips the Play-by-Email/Play-by-Forum turn summary and savegame Posting."
,"Defaults to false if not set."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='skipPosting' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='skipPosting' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}


,"removeAirThatCanNotLand":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step kills unlandable air units"
,"params":{
"name":"removeAirThatCanNotLand"
,"value":"true / false"
}
,"info":[
"Air units unable to land are destroyed."
,"Defaults to true, units destroyed at end of step."
,"Will make an exception if a carrier was purchased for maps using v3/lhtr rules."
,"Also applicable to NonCombatMove and 'place' step."
,"May also be used with SpecialMoveDelegate, PlaceDelegate or NoAirCheckPlaceDelegate."
]
,"example":[
"<stepProperty name='removeAirThatCanNotLand' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='removeAirThatCanNotLand' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate","PlaceDelegate","NoAirCheckPlaceDelegate"]
}

,"repairUnits":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step will repair units"
,"params":{
"name":"repairUnits"
,"value":"true / false"
}
,"info":[
"Step will repair owned units."
,"Normally happens at start of combat move."
,"Default depends on 'Units Repair Hits Start Turn' and 'Units Repair Hits End Turn'."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='repairUnits' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='repairUnits' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}

,"resetUnitStateAtStart":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step will reset units first"
,"params":{
"name":"resetUnitStateAtStart"
,"value":"true / false"
}
,"info":[
"Resets movement points at beginning of step."
,"Also resets submerged, amphibious, unload/load, wasInCombat, etc."
,"Defaults to false."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='resetUnitStateAtStart' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='resetUnitStateAtStart' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}

,"resetUnitStateAtEnd":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step will reset units last"
,"params":{
"name":"resetUnitStateAtEnd"
,"value":"true / false"
}
,"info":[
"Resets movement points at end of step."
,"Also resets submerged, amphibious, unload/load, wasInCombat, etc."
,"Defaults to true if delegate ends with NonCombatMove."
,"Defaults to false if delegate ends with CombatMove."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='resetUnitStateAtEnd' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='resetUnitStateAtEnd' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}

,"giveBonusMovement":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step provides bonus movement"
,"params":{
"name":"giveBonusMovement"
,"value":"true / false"
}
,"info":[
"Step provides bonus movement."
,"Defaults to true if delegate ends with CombatMove."
,"Defaults to false if delegate ends with NonCombatMove."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='giveBonusMovement' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='giveBonusMovement' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}

,"fireRockets":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step will fire rockets"
,"params":{
"name":"fireRockets"
,"value":"true / false"
}
,"info":[
"Default depends on game option."
,"ww2v2 and ww2v3 have this after delegates that end with CombatMove but not NonCombatMove."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='fireRockets' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='fireRockets' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate","ww2v2","ww2v3"]
}

,"nonCombatMove":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step is post combat"
,"params":{
"name":"nonCombatMove"
,"value":"true / false"
}
,"info":[
"Indicates combat occurrs prior to this step."
,"Affects movement validation."
,"Defaults to true if delegate ends with NonCombatMove."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='nonCombatMove' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianNonCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='nonCombatMove' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate","CombatMove"]
}

,"combatMove":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step is prior to combat"
,"params":{
"name":"combatMove"
,"value":"true / false"
}
,"info":[
"Indicates combat will occur after this step."
,"Also affects movement validation and certain unit property recordings such as submerged, amphibious, etc."
,"Defaults to true if delegate ends with CombatMove."
,"Defaults to false if delegate ends with NonCombatMove."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='combatMove' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='combatMove' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate","CombatMove","nonCombatMove"]
}

,"airborneMove":{
"parent":"CombatMove"
,"type":"stepProperty"
,"desc":"Step permits paratrooper move"
,"params":{
"name":"airborneMove"
,"value":"true / false"
}
,"info":[
"Player may move paratroopers."
,"Defaults true if delegate ends with AirborneCombatMove."
,"May also be used with SpecialMoveDelegate."
]
,"example":[
"<stepProperty name='airborneMove' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'>"
,"\n\t\t<stepProperty name='airborneMove' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["MoveDelegate","SpecialMoveDelegate"]
}


,"politics step":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'Politics' postfixed"
,"delegate":"politics"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may choose diplomatic opitions."
,"relationshipTypes determine what the choices are called."
,"relationshipTypeAttachments determine the behavior of the choices."
,"politicalActionAttachments are the choices, as presented to a player at any given time in the user interface."
,"Calls the PoliticsDelegate in gamePlay."
]
,"context":"player sequence"
,"links":[
"gamePlay"
,"delegate"
,"PoliticsDelegate"
,"relationshipTypes"
,"relationshipTypeAttachments"
,"politicalActionAttachments"
]
}

,"purchase step":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'Purchase' postfixed"
,"delegate":"purchase"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may purchase units."
,"Calls the PurchaseDelegate in gamePlay."
]
,"context":"player sequence"
,"chiluns":"Step Properties"
,"links":["gamePlay","delegate","PurchaseDelegate","NoPUPurchaseDelegate"]
}


,"repairPlayers":{
"parent":"purchase step"
,"type":"stepProperty"
,"desc":"Players may have repairs done"
,"params":{
"name":"repairPlayers"
,"value":"A colon delimited list of players"
}
,"info":[
"The list is players that have repairs done by 'step player'."
,"If not set, only 'step player' units will be repaired."
,"May also be used with NoPUPurchaseDelegate."
]
,"example":[
"<stepProperty name='repairPlayers' value='Chinese:British'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianPurchase' delegate='purchase' player='Russians'>"
,"\n\t\t<stepProperty name='repairPlayers' value='Chinese:British'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["PurchaseDelegate","NoPUPurchaseDelegate"]
}

,"bid step property":{
"parent":"purchase step"
,"type":"stepProperty"
,"desc":"Select type of purchase"
,"params":{
"name":"bid"
,"value":"true / false"
}
,"info":[
"Selects 'bid' or 'normal' purchase limitations."
,"May be redundant, as there is now a separate BidPurchaseDelegate"
,"Defaults to true if step name ends with Bid"
,"Defaults to true if step name ends with Purchase"
]
,"example":[
"<stepProperty name='bid' value='true'/>"
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianPurchase' delegate='purchase' player='Russians'>"
,"\n\t\t<stepProperty name='bid' value='true'/>"
,"\n\t</step>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["bid delegate","bid property","bid sequence","BidPurchaseDelegate"]
}

,"tech step":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'Tech' postfixed"
,"delegate":"tech"
,"player":"A player in the playerList"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may purchase tech."
,"Calls the TechnologyDelegate in gamePlay."
,"WARNING: There is also an option named 'tech' in triggerAttachment"
]
,"context":"player sequence"
,"links":["tech option","gamePlay","delegate","TechnologyDelegate"]
}

,"placeBid":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'BidPlace' postfixed"
,"delegate":"placeBid"
,"player":"A player in the playerList"
,"maxRunCount":"integer"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"If units were purchased in the bid step, they are placed in this step."
,"Placement in this step is not subject to the limitations of normal placement<br>ie; factory, territory limits etc."
,"Calls the BidPlaceDelegate in gamePlay."
]
,"context":[
"<sequence>"
,"\n\t<step name='italiansBid' delegate='bid' player='Italians' maxRunCount='1'/>"
,"\n\t<step name='italiansBidPlace' delegate='placeBid' player='Italians' maxRunCount='1'/>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["placeBid","delegate","gamePlay","BidPlaceDelegate"]
}

,"bid sequence":{
"parent":"sequence"
,"type":"step"
,"desc":"Turn sequence step"
,"params":{
"name":"The player name with 'Bid' postfixed"
,"delegate":"bid"
,"player":"A player in the playerList"
,"maxRunCount":"integer"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Player may purchase units with bid amount (if any)."
,"Bid amount is set with 'bid property'"
,"Calls the 'bid' delegate in gamePlay."
,"WARNING: bid also occurs as a 'purchase step property' and a bid property in propertyList"
]
,"context":[
"<sequence>"
,"\n\t<step name='italiansBid' delegate='bid' player='Italians' maxRunCount='1'/>"
,"\n\t<step name='italiansBidPlace' delegate='placeBid' player='Italians' maxRunCount='1'/>"
,"\n\t..."
,"\n</sequence>"
]
,"links":[
"bid delegate"
,"bid property"
,"bid step property"
,"placeBid"
,"gamePlay"
,"delegate"
,"BidPurchaseDelegate"
]
}

,"initDelegate":{
"parent":"sequence"
,"type":"step"
,"desc":"Begins the game"
,"params":{
"name":"gameInitDelegate"
,"delegate":"initDelegate"
,"maxRunCount":"1"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"It is unclear what this step does or why there would be a higher maxRunCount."
,"Calls the InitializationDelegate in gamePlay."
]
,"context":[
"<sequence>"
,"\n\t<step name='gameInitDelegate' delegate='initDelegate' maxRunCount='1'/>"
,"\n\t..."
,"\n</sequence>"
]
,"links":["gamePlay","delegate","InitializationDelegate"]
}
,"endRound":{
"parent":"sequence"
,"type":"step"
,"desc":"Ends the turn"
,"params":{
"name":"endRoundStep"
,"delegate":"endRound"
,"display":"(Optional) String to replace the delegate display attribute."
}
,"info":[
"Ends the turn for all players."
,"Calls the EndRoundDelegate in gamePlay."
]
,"context":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='endRoundStep' delegate='endRound'/>"
,"\n</sequence>"
]
,"links":["gamePlay","delegate","EndRoundDelegate"]
}

,"offset":{
"parent":"gamePlay"
,"type":"object"
,"desc":"Set initial game round"
,"params":{"round":">=0, <b>Default</b>:&nbsp; 0"}
,"example":["<offset round='5'/>"]
}

,"Production":{
"parent":"Terms"
,"type":"definition"
,"desc":"Description of term"
,"info":"May refer to any of the following :<ul><li>'production' the production value of a territory.<li>The element 'production' a list of production rules, governing cost of units.<li></ul>"
,"links":["production rules","production value"]
}
,"production rules":{
"parent":"game"
,"desc":"A list of production and repair rules"
,"info":"WARNING: In the XML this element/tag is actually seen as 'production'</b><br>It is refered to in this document as 'production rules' so not to be confused with 'production' (the production value of a territory)"
,"context":[
"<production>"
,"\n\t<productionRule name='buyInfantry'>"
,"\n\t\t<cost resource='PUs' quantity='3'/>"
,"\n\t\t<result resourceOrUnit='infantry' quantity='1'/>"
,"\n\t</productionRule>"
,"\n\t..."
,"\n\t<productionRule name='buyInfantryIndustrialTechnology'>"
,"\n\t\t<cost resource='PUs' quantity='2'/>"
,"\n\t\t<result resourceOrUnit='infantry' quantity='1'/>"
,"\n\t</productionRule>"
,"\n\t..."
,"\n</production>"
]
,"chiluns":"Child Elements"
,"links":["Production","production value"]
}

,"productionRule rule":{
"parent":"production rules"
,"type":"object"
,"desc":"Defines production costs"
,"params":{
"name":"A unit name from unitList capitalized with 'buy' prepended ie; 'buyArmour'."
,"cost resource":"A resource name from resourceList."
,"cost quantity":"Amount of the resource to be used up."
,"result resourceOrUnit":"A resource from resourceList or a unit from the unitList."
,"result quantity":"Amount to be purchased."
}

,"info":[
"Contains 2 elements 'cost' and 'result'"
,"IndustrialTechnology production rules are only needed if you are using or plan to use the 'industrialTechnology' tech."
,"Note: There is a productionRule option for triggerAttachments."
]
,"context":[
"<production>"
,"\n\t<productionRule name='buyInfantry'>"
,"\n\t\t<cost resource='PUs' quantity='3'/>"
,"\n\t\t<result resourceOrUnit='infantry' quantity='1'/>"
,"\n\t</productionRule>"
,"\n\t..."
,"\n\t<productionRule name='buyInfantryIndustrialTechnology'>"
,"\n\t\t<cost resource='PUs' quantity='2'/>"
,"\n\t\t<result resourceOrUnit='infantry' quantity='1'/>"
,"\n\t</productionRule>"
,"\n\t..."
,"\n</production>"
]
,"links":["resource type","unit","productionFrontier","industrialTechnology","productionRule option"]
}


,"repairRule":{
"parent":"production rules"
,"type":"object"
,"desc":"Unit repair configuration"
,"params":{
"name":"A unit name from unitList capitalized with 'repair' prepended ie; 'repairFactory'."
,"cost resource":"A resource name from resourceList."
,"cost quantity":"Amount of the resource to be used up."
,"result resourceOrUnit":"A unit from the unitList."
,"result quantity":"Damage to be repaired."
}
,"info":[
"If you use ww2v3 style factory damage, you need repair rules"
]
,"context":[
"<production>"
,"\n\t<productionRules ..."
,"\n\t<repairRule name='repairFactory'>"
,"\n\t\t<cost resource='PUs' quantity='1'/>"
,"\n\t\t<result resourceOrUnit='factory' quantity='1'/>"
,"\n\t</productionRule>"
,"\n\t..."
,"\n</production>"
]
,"links":["repairFrontier","repairRules"]
}

,"repairFrontier":{
"parent":"production rules"
,"type":"object"
,"desc":"A group of repair rules"
,"context":[
"<production>"
,"\n\t<productionRules ..."
,"\n\t<repairRules ...>"
,"\n\t<repairFrontier name='repair'>"
,"\n\t\t<repairRules name='repairFactory'/>"
,"\n\t\t<repairRules name='repairBunker'/>"
,"\n\t\t<repairRules name='repairAirfield'/>"
,"\n\t\t<repairRules name='repairHarbour'/>"
,"\n\t</repairFrontier>"
,"\n\t..."
,"\n</production>"
]
,"chiluns":"Child Elements"
}


,"repairRules":{
"parent":"repairFrontier"
,"type":"object"
,"desc":"Link for unit repair"
,"info":[
"If you use ww2v3 style factory damage, you need repair rules"
]
,"params":{
"name":"A repairRule defined under 'production'."
}
,"context":[
"<production>"
,"\n\t<productionRules ..."
,"\n\t<repairRules ...>"
,"\n\t<repairFrontier name='repair'>"
,"\n\t\t<repairRules name='repairFactory'/>"
,"\n\t\t<repairRules name='repairBunker'/>"
,"\n\t\t<repairRules name='repairAirfield'/>"
,"\n\t\t<repairRules name='repairHarbour'/>"
,"\n\t</repairFrontier>"
,"\n\t<repairFrontier name='repairIndustrialTechnology'>"
,"\n\t\t<repairRules name='repairFactoryIndustrialTechnology'/>"
,"\n\t\t<repairRules name='repairBunkerIndustrialTechnology'/>"
,"\n\t\t<repairRules name='repairAirfieldIndustrialTechnology'/>"
,"\n\t\t<repairRules name='repairHarbourIndustrialTechnology'/>"
,"\n\t</repairFrontier>"
,"\n\t..."
,"\n</production>"
]
,"links":["repairFrontier",""]
}

,"productionFrontier":{
"parent":"production rules"
,"type":"object"
,"desc":"A list of frontierRules for the whole scenario or indiviual players"
,"info":[
"All players can use the same frontier, or you can have a different frontier for each player."
,"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, bombardment)"
,"Only 'production' (a single production frontier) is needed for most maps."
,"If you use ww2v2 tech then you need a productionIndustrialTechnology productionFrontier."
,"If you use ww2v3 tech you need a productionShipyards productionFrontier."
,"productionShipyards is 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 players, then it is highly recommended you use triggers to add or remove productionRules instead of using the shipyard frontier."
]
,"context":[
"<production>"
,"\n\t<productionRules ..."
,"\n\t<repairRules ..."
,"\n\t<repairFrontiers ..."
,"\n\t<productionFrontier name='production'>"
,"\n\t\t<frontierRules name='buyInfantry'/>"
,"\n\t\t<frontierRules name='buyArtillery'/>"
,"\n\t\t<frontierRules name='buyArmour'/>"
,"\n\t\t<frontierRules name='buyBomber'/>"
,"\n\t\t..."
,"\n\t</productionFrontier>"
,"\n\t<productionFrontier name='productionIndustrialTechnology'>"
,"\n\t\t<frontierRules name='buyInfantryIndustrialTechnology'/>"
,"\n\t\t<frontierRules name='buyArtilleryIndustrialTechnology'/>"
,"\n\t\t..."
,"\n\t</productionFrontier>"
,"\n\t<productionFrontier name='productionShipyards'>"
,"\n\t\t<frontierRules name='buyTransportShipyards'/>"
,"\n\t\t<frontierRules name='buySubmarineShipyards'/>"
,"\n\t\t..."
,"\n\t</productionFrontier>"
,"\n\t<productionFrontier name='Germans_production'>"
,"\n\t\t<frontierRules name='buyInfantry'/>"
,"\n\t\t<frontierRules name='buyArtillery'/>"
,"\n\t\t<frontierRules name='buyArmour'/>"
,"\n\t\t<frontierRules name='buyBomber'/>"
,"\n\t\t..."
,"\n\t</productionFrontier>"
,"\n\t..."
,"\n</production>"
]
}

,"playerProduction":{
"parent":"production rules"
,"type":"object"
,"desc":"Links players to their production frontiers"
,"params":{
"player":"A player name in the playerList"
,"frontier":"productionFrontier for the player."
}
,"info":[
"All players can use the same frontier, or you can have a different frontier for each player."
]
,"context":[
"<production>"
,"\n\t<productionRules ..."
,"\n\t<repairRules ..."
,"\n\t<repairFrontiers ..."
,"\n\t<productionFrontiers..."
,"\n\t<playerProduction player='Germans' frontier='Germans_production'/>"
,"\n\t<playerProduction player='Russians' frontier='Russians_production'/>"
,"\n\t<playerProduction player='Japanese' frontier='Japanese_production'/>"
,"\n\t..."
,"\n</production>"
]
,"links":["productionFrontier"]
}


,"playerRepair":{
"parent":"production rules"
,"type":"object"
,"desc":"Links players to their repair frontiers"
,"params":{
"player":"A player name in the playerList"
,"frontier":"repairFrontier for the player."
}
,"context":[
"<production>"
,"\n\t<productionRules ..."
,"\n\t<repairRules ..."
,"\n\t<repairFrontiers ..."
,"\n\t<productionFrontiers..."
,"\n\t<playerProductions ..."
,"\n\t<playerRepair player='Russians' frontier='repair'/>"
,"\n\t<playerRepair player='Japanese' frontier='repair'/>"
,"\n\t..."
,"\n</production>"
]
,"links":["repairFrontier"]
}


,"game":{
"desc":"XML root element"
,"info":"This is the root element of the XML."
,"chiluns":"Child Elements"
}
,"info":{
"parent":"game"
,"type":"object"
,"desc":"Info about the scenario derived from the XML"
,"params":{
"name":"Title of the scenario."
,"version":"Version of the scenario."
}
,"example":["<info name='Pact of Steel 2' version='3.8'/>"]
}
,"loader":{
"parent":"game"
,"type":"object"
,"desc":"Name of the main program"
,"params":{"javaClass":"The game engine"}
,"example":["<loader javaClass='games.strategy.triplea.TripleA'/>"]
}
,"triplea":{
"parent":"game"
,"type":"object"
,"desc":"Minimum engine version required"
,"params":{"minimumVersion":"Minimum required engine version to run the game"}
,"info":"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'"
,"example":["<triplea minimumVersion='1.8'/>"]
}
,"diceSides":{
"parent":"game"
,"type":"object"
,"desc":"Set die type for game"
,"params":{"value":"1 ~ 200, <b>Default</b>:&nbsp; 6"}
,"info":"Setting diceSides to a number other than 6 can result in unexpected behavior."
,"example":["<diceSides value='6'/>"]
}
,"map":{
"parent":"game"
,"type":"object"
,"desc":"List of territories & connections"
,"info":"All territories & connections on the map must be defined here."
,"context":[
"<map>"
,"\n\t"
,"\n\t<territory name='Kenya'/>"
,"\n\t<territory name='Manchuria'/>"
,"\n\t<territory name='22 Sea Zone'/>"
,"\n\t..."
,"\n\t<connection t1='Brazil' t2='Peru'/>"
,"\n\t<connection t1='Brazil' t2='Argentina'/>"
,"\n\t<connection t1='Peru' t2='Argentina'/>"
,"\n\t..."
,"\n</map>"
]
,"chiluns":"Child Elements"
}

,"territory":{
"parent":"map"
,"type":"object"
,"desc":"Territory name definition"
,"example":["<territory name='Kenya'/>"]
,"context":[
"<map>"
,"\n\t"
,"\n\t<territory name='Kenya'/>"
,"\n\t<territory name='Manchuria'/>"
,"\n\t<territory name='22 Sea Zone'/>"
,"\n\t..."
,"\n\t<connection t1='Brazil' t2='Peru'/>"
,"\n\t<connection t1='Brazil' t2='Argentina'/>"
,"\n\t<connection t1='Peru' t2='Argentina'/>"
,"\n\t..."
,"\n</map>"
]
,"links":[
"connection"
,"territoryAttachment"
]
}
,"connection":{
"parent":"map"
,"type":"object"
,"desc":"Defines territory connections"
,"info":"The order of t1 and t2 does not matter at all"
,"example":["<connection t1='Brazil' t2='Peru'/>"]
,"context":[
"<map>"
,"\n\t"
,"\n\t<territory name='Kenya'/>"
,"\n\t<territory name='Manchuria'/>"
,"\n\t<territory name='Alaska'/>"
,"\n\t..."
,"\n\t<connection t1='Brazil' t2='Peru'/>"
,"\n\t<connection t1='Brazil' t2='Argentina'/>"
,"\n\t<connection t1='Peru' t2='Argentina'/>"
,"\n\t..."
,"\n</map>"
]
,"links":["territory"]
}
,"technology":{
"parent":"game"
,"type":"object"
,"desc":"List of tech in the game"
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='paratroopers'/>"
,"\n\t\t..."
,"\n\t</technologies>"
,"\n\t<playerTech player='Italians'>"
,"\n\t\t<category name='Italian Technology'>"
,"\n\t\t\t<tech name='destroyersCanBombard'/>"
,"\n\t\t\t..."
,"\n\t\t</category>"
,"\n\t\t<category name='Land and Production Advances'>"
,"\n\t\t\t<tech name='improvedArtillerySupport'/>"
,"\n\t\t\t..."
,"\n\t\t</category>"
,"\n\t\t..."
,"\n\t</playerTech>"
,"\n\t<playerTech player='Russians'>"
,"\n\t\t..."
,"\n\t</playerTech>"
,"\n\t..."
,"\n<technology>"
]
,"chiluns":"Child Elements"
}

,"technologies":{
"parent":"technology"
,"type":"object"
,"desc":"Defines technologies in the game"
,"info":[
"A list of all technames (technologies in the game)."
,"The order of the list is relevant and should not be changed."
,"You can rename hardcoded tech's, see the destroyersCanBombard link."
,"You can create custom tech's, see the reinforcedHulls link."
]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='paratroopers'/>"
,"\n\t\t..."
,"\n\t</technologies>"
,"\n\t..."
,"\n<technology>"
]
,"chiluns":"Child Elements"
,"links":[
"techAttachment"
,"techAbilityAttachment"
]
}

,"superSub":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: +1 attack to isSub"
,"info":[
"This tech gives +1 attack to isSub"
,"Requires all isSub units to have images with '_ss' appended."
]
,"example":["<techname name='superSub'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='superSub'/>"
,"\n\t\t..."
]
,"links":["isSub"]
}
,"jetPower":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: +1 for isAir"
,"info":["This tech gives +1 att or def for isAir non-isStrategicBomber"
,"Requires all non-isStrategicBomber units to have images with '_jp' and '_lr_jp' appended."
]
,"example":["<techname name='jetPower'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='jetPower'/>"
,"\n\t\t..."
]
,"links":["isAir","isStrategicBomber"]
}
,"shipyards":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Adds shipyards"
,"info":["This tech removes all sea units from 'production' and adds 'Shipyards' production rules."
,"Only currently works when all players use a production frontier called 'production'"
]
,"example":["<techname name='shipyards'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='shipyards'/>"
,"\n\t\t..."
]
,"links":["Production"]
}
,"aARadar":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: +1 attack for AA units"
,"info":[
"This tech gives +1 attack for AA Guns"
,"Requires all isAA units to have images with '_r' and 'rockets_r' and '_rockets_r' appended."
]
,"example":["<techname name='aARadar'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='aARadar'/>"
,"\n\t\t..."
]
,"links":["isAA","rockets"]
}
,"longRangeAir":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: +2 movement for isAir"
,"info":[
"This tech gives +2 movement for isAir"
,"Requires all isAir units to have images with '_lr' and '_lr_jp' and '_lr_hb' appended."
]
,"example":["<techname name='longRangeAir'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='longRangeAir'/>"
,"\n\t\t..."
]
,"links":["isAir"]
}
,"heavyBomber":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Extra dice for isStrategicBomber"
,"info":[
"This tech gives +X dice rolls for isStrategicBomber"
,"Requires all isStrategicBomber units to have images with '_hb' and '_lr_hb' appended."
]
,"example":["<techname name='heavyBomber'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='heavyBomber'/>"
,"\n\t\t..."
]
,"links":["isAir","isStrategicBomber"]
}
,"improvedArtillerySupport":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: X2 support"
,"info":[
"This tech doubles number of units supported by artillery"
,"And optionally by other support types"
]
,"example":["<techname name='improvedArtillerySupport'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='improvedArtillerySupport'/>"
,"\n\t\t..."
]
}
,"rocket":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Enables rockets"
,"info":[
"This tech enables isAA and isRocket to shoot rockets"
,"Requires all isAA units to have images with 'rockets' and '_rockets' or '_rockets_r' appended."
]
,"example":["<techname name='rocket'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='rocket'/>"
,"\n\t\t..."
]
,"links":["isAA","isRocket"]
}
,"paratroopers":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Enables isAirTransport"
,"info":["This tech enables isAirTransport units to carry isAirTransportable units"]
,"example":["<techname name='paratroopers'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='paratroopers'/>"
,"\n\t\t..."
]
,"links":["isAirTransport","isAirTransportable","Paratroopers Can Move During Non Combat","Paratroopers Can Attack Deep Into Enemy Territory"]
}
,"increasedFactoryProduction":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Factories +2 units & repair"
,"info":[
"This tech gives +2 production slots to factories on territories worth at least 3, and halves the price of repairing"
,"Requires all isFactory units to have images with '_it' and '_hit' and '_it_hit' appended."
]
,"example":["<techname name='increasedFactoryProduction'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='increasedFactoryProduction'/>"
,"\n\t\t..."
]
}
,"warBonds":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Gain bonus PUs"
,"info":["This tech rolls a die at the end of the player's turn, adds that many PUs to their bank"]
,"example":["<techname name='warBonds'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='warBonds'/>"
,"\n\t\t..."
]
}
,"mechanizedInfantry":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Enables isLandTransport"
,"info":["This tech enables isLandTransport units to carry isInfantry units"]
,"example":["<techname name='mechanizedInfantry'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='mechanizedInfantry'/>"
,"\n\t\t..."
]
,"links":["isLandTransport","isInfantry"]
}
,"destroyerBombard":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: isDestroyer may bombard"
,"info":["This tech enables isDestroyer to bombard"]
,"example":["<techname name='destroyerBombard'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='destroyerBombard'/>"
,"\n\t\t..."
]
,"links":["isDestroyer"]
}
,"destroyersCanBombard":{
"parent":"technologies"
,"type":"techname"
,"desc":["Tech: An example of renaming a technology."]
,"params":{
"name":"The new name"
,"tech":"The hardcoded tech's name"
}
,"info":[
"As far as is known, the only reason to rename a tech is for diplay in the stats panel"
,"NOTE: A renamed technology may not have a techAbilityAttachment"
]
,"example":["<techname name='destroyersCanBombard' tech='destroyerBombard'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='destroyersCanBombard' tech='destroyerBombard'/>"
,"\n\t\t..."
]
,"links":["techAbilityAttachment"]
}
,"reinforcedHulls":{
"parent":"technologies"
,"type":"techname"
,"desc":"Tech: Example of a custom tech"
,"info":[
"This is an example of a custom tech (not hardcoded)."
,"Custom tech's do nothing by themselves, but can be used as conditions for triggers."
,"Be sure not to use an existing tech name."
]
,"example":["<techname name='reinforcedHulls'/>"]
,"context":[
"<technology>"
,"\n\t<technologies>"
,"\n\t\t<techname name='reinforcedHulls'/>"
,"\n\t\t..."
]
}

,"playerTech":{
"parent":"technology"
,"type":"object"
,"desc":"A list of all techs for a specific player"
,"params":{"player":"Any player in the playerList"}
,"info":[
"Contains 'categories' that contain 'techs'."
,"The 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 Zero to 6 techs per category, if using ww2v3-style random selection of techs."
,"Maximum techs per category 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)."
,"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."
]
,"context":[
"<technology>"
,"\n\t<technologies>...</technologies>"
,"\n\t<playerTech player='Italians'>"
,"\n\t\t<category name='Italian Technology'>"
,"\n\t\t\t<tech name='destroyersCanBombard'/>"
,"\n\t\t\t<tech name='jetPower'/>"
,"\n\t\t\t<tech name='shipyards'/>"
,"\n\t\t\t<tech name='improvedArtillerySupport'/>"
,"\n\t\t\t<tech name='increasedFactoryProduction'/>"
,"\n\t\t\t<tech name='warBonds'/>"
,"\n\t\t</category>"
,"\n\t\t<category name='Land and Production Advances'>"
,"\n\t\t\t<tech name='improvedArtillerySupport'/>"
,"\n\t\t\t..."
,"\n\t\t</category>"
,"\n\t\t..."
,"\n\t</playerTech>"
,"\n\t<playerTech player='Russians'>"
,"\n\t\t..."
,"\n\t</playerTech>"
,"\n\t..."
,"\n<technology>"
]
,"chiluns":"Child Elements"
,"links":["tech name"]
}

,"category":{
"parent":"playerTech"
,"type":"object"
,"desc":"A group of technologies a player may research"
,"params":{"name":"A descriptive name for the technology group"}
,"info":[
"A maximum of 6 techs per category, if using ww2v3-style random selection of techs."
,"Maximum techs per category 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)."
,"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."
,"Player is given option of which category to choose then the tech roll applies to techs in that category"
]
,"context":[
"<technology>"
,"\n\t<technologies>...</technologies>"
,"\n\t<playerTech player='Italians'>"
,"\n\t\t<category name='Italian Technology'>"
,"\n\t\t\t<tech name='destroyersCanBombard'/>"
,"\n\t\t\t<tech name='jetPower'/>"
,"\n\t\t\t<tech name='shipyards'/>"
,"\n\t\t\t<tech name='improvedArtillerySupport'/>"
,"\n\t\t\t<tech name='increasedFactoryProduction'/>"
,"\n\t\t\t<tech name='warBonds'/>"
,"\n\t\t</category>"
,"\n\t\t..."
,"\n\t</playerTech>"
,"\n\t..."
,"\n<technology>"
]
,"chiluns":"Child Elements"
}

,"tech research":{
"parent":"category"
,"type":"object"
,"desc":"Research option"
,"params":{"name":"A techname from the technologies list"}
,"info":[
"A technology that may be researched within the category."
,"Note: An option named tech exists for triggerAttachments."
]
,"context":[
"<technology>"
,"\n\t<technologies>...</technologies>"
,"\n\t<playerTech player='Italians'>"
,"\n\t\t<category name='Italian Technology'>"
,"\n\t\t\t<tech name='destroyersCanBombard'/>"
,"\n\t\t\t<tech name='jetPower'/>"
,"\n\t\t\t<tech name='shipyards'/>"
,"\n\t\t\t<tech name='improvedArtillerySupport'/>"
,"\n\t\t\t<tech name='increasedFactoryProduction'/>"
,"\n\t\t\t<tech name='warBonds'/>"
,"\n\t\t</category>"
,"\n\t\t..."
,"\n\t</playerTech>"
,"\n\t..."
,"\n<technology>"
]
,"links":["technologies","triggerAttachments"]
}

,"initialize":{
"parent":"game"
,"type":"object"
,"desc":"Initalize player aspects"
,"chiluns":"Child Elements"
}

,"ownerInitialize":{
"parent":"initialize"
,"type":"object"
,"desc":"Initial territory ownership"
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>"
,"\n\t\t<territoryOwner territory='Libya' owner='Italians'"
,"\n\t\t<territoryOwner territory='Italy' owner='Italians'"
,"\n\t\t<territoryOwner territory='West Balkans' owner='Italians'"
,"\n\t\t..."
,"\n\t<unitInitialize>...</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
,"chiluns":"Child Element"
}

,"territoryOwner":{
"parent":"ownerInitialize"
,"type":"object"
,"desc":"Define initial ownership"
,"params":{
"territory":"Any territory in map"
,"owner":"Any player in playerList"
}
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>"
,"\n\t\t<territoryOwner territory='Libya' owner='Italians'"
,"\n\t\t<territoryOwner territory='Italy' owner='Italians'"
,"\n\t\t<territoryOwner territory='West Balkans' owner='Italians'"
,"\n\t\t..."
,"\n\t<unitInitialize>...</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
}

,"unitInitialize":{
"parent":"initialize"
,"type":"object"
,"desc":"Initial placement list"
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>"
,"\n\t\t<unitPlacement unitType='infantry' territory='Karelia S.S.R.' quantity='3' owner='Russians'/>"
,"\n\t\t<unitPlacement unitType='fighter' territory='Karelia S.S.R.' quantity='1' owner='Russians'/>"
,"\n\t\t<unitPlacement unitType='armour' territory='Karelia S.S.R.' quantity='1' owner='Russians'/>"
,"\n\t\t..."
,"\n\t\t<heldUnits unitType='factory' quantity='1' player='British'/>"
,"\n\t\t..."
,"\n\t</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
,"chiluns":"Child Elements"
}

,"unitPlacement":{
"parent":"unitInitialize"
,"type":"object"
,"desc":"Define initial unit placement"
,"params":{
"unitType":"Any unit in the unitList"
,"territory":"Any territory in map"
,"quantity":"integer"
,"owner":"Any player in playerList"
}
,"info":[
"These units will already be on the map when the game begins."
]
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>"
,"\n\t\t<unitPlacement unitType='infantry' territory='Karelia S.S.R.' quantity='3' owner='Russians'/>"
,"\n\t\t<unitPlacement unitType='fighter' territory='Karelia S.S.R.' quantity='1' owner='Russians'/>"
,"\n\t\t<unitPlacement unitType='armour' territory='Karelia S.S.R.' quantity='1' owner='Russians'/>"
,"\n\t\t..."
,"\n\t\t<heldUnits unitType='factory' quantity='1' player='British'/>"
,"\n\t\t..."
,"\n\t</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
,"links":["heldUnits"]
}

,"heldUnits":{
"parent":"unitInitialize"
,"type":"object"
,"desc":"Unit available for placement"
,"params":{
"unitType":"Any unit in the unitList"
,"quantity":"integer"
,"player":"Any player in playerList"
}
,"info":[
"The units will be available for placement in the players first placement phase."
]
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>"
,"\n\t\t<unitPlacement unitType='infantry' territory='Karelia S.S.R.' quantity='3' owner='Russians'/>"
,"\n\t\t<unitPlacement unitType='fighter' territory='Karelia S.S.R.' quantity='1' owner='Russians'/>"
,"\n\t\t<unitPlacement unitType='armour' territory='Karelia S.S.R.' quantity='1' owner='Russians'/>"
,"\n\t\t..."
,"\n\t\t<heldUnits unitType='factory' quantity='1' player='British'/>"
,"\n\t\t<heldUnits unitType='air_base' quantity='1' player='British'/>"
,"\n\t\t..."
,"\n\t</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
,"links":["unitPlacement"]
}


,"resourceInitialize":{
"parent":"initialize"
,"type":"object"
,"desc":"Initial resource allocation"
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>...</unitInitialize>"
,"\n\t<resourceInitialize>"
,"\n\t\t<resourceGiven player='Germans' resource='PUs' quantity='40'/>"
,"\n\t\t<resourceGiven player='Chinese' resource='PUs' quantity='0'/>"
,"\n\t\t<resourceGiven player='Italians' resource='PUs' quantity='16'/>"
,"\n\n\t\tOPTIONAL EXAMPLES\n"
,"\n\t\t<resourceGiven player='Italians' resource='Steel' quantity='20'/>"
,"\n\t\t<resourceGiven player='Italians' resource='Aluminium' quantity='30'/>"
,"\n\t\t<resourceGiven player='Italians' resource='Fuel' quantity='20'/>"
,"\n\t</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
,"chiluns":"Child Elements"
}

,"resourceGiven":{
"parent":"resourceInitialize"
,"type":"object"
,"desc":"Initial resources onhand"
,"params":{
"player":"Any player in playerList"
,"resource type":"Any resource in resourceList"
,"quantity":"integer"
}
,"info":[
"Initial resources do not have to match actual production, they can be any integer."
,"These resources will be available in the players first purchasing phase."
,"They could also be available for tech purchases if so configured."
]
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>...</unitInitialize>"
,"\n\t<resourceInitialize>"
,"\n\t\t<resourceGiven player='Germans' resource='PUs' quantity='40'/>"
,"\n\t\t<resourceGiven player='Chinese' resource='PUs' quantity='0'/>"
,"\n\t\t<resourceGiven player='Italians' resource='PUs' quantity='16'/>"
,"\n\n\t\tOPTIONAL EXAMPLES\n"
,"\n\t\t<resourceGiven player='Italians' resource='Steel' quantity='20'/>"
,"\n\t\t<resourceGiven player='Italians' resource='Aluminium' quantity='30'/>"
,"\n\t\t<resourceGiven player='Italians' resource='Fuel' quantity='20'/>"
,"\n\t</resourceInitialize>"
,"\n\t<relationshipInitialize>...</relationshipInitialize>"
,"\n</initialize>"
]
}

,"relationshipInitialize":{
"parent":"initialize"
,"type":"object"
,"desc":"Initial relationship list"
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>...</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>"
,"\n\t\t<relationship type='Allied' player1='Italians' player2='Germans' roundValue='1'/>"
,"\n\t\t<relationship type='War' player1='British' player2='Germans' roundValue='1'/>"
,"\n\t\t<relationship type='Neutrality' player1='Russians' player2='Japanese' roundValue='1'/>"
,"\n\t\t..."
,"\n\t</relationshipInitialize>"
,"\n</initialize>"
]
,"chiluns":"Child Elements"
}

,"relationship type":{
"parent":"relationshipInitialize"
,"type":"object"
,"desc":"Initial relationship"
,"params":{
"type":"Any relationshipType in relationshipTypes"
,"player1":"Any player in playerList"
,"player1":"Any player in playerList"
,"roundValue":"integer"
}
,"info":[
"The order of player1 and player2 does not matter."
,"roundValue is only used for conditions and can be positive or negative (use '1' if you don't know what you are doing)."
,"Having them listed twice in different orders will just have the later one overwrite the earlier one."
,"Make sure you cover all possibilities!"
,"If no relationship is specified :<br> - It will default to 'Allied' for any in the same alliance.<br> - It will default to 'War' if not in the same alliance.<br> - A player named 'Neutral' will default to 'Neutrality'"
,"Note: There in a relationship option for conditionAttachments and objectiveAttachments."
]
,"context":[
"<initialize>"
,"\n\t<ownerInitialize>...</ownerInitialize>"
,"\n\t<unitInitialize>...</unitInitialize>"
,"\n\t<resourceInitialize>...</resourceInitialize>"
,"\n\t<relationshipInitialize>"
,"\n\t\t<relationship type='Allied' player1='Italians' player2='Germans' roundValue='1'/>"
,"\n\t\t<relationship type='War' player1='British' player2='Germans' roundValue='1'/>"
,"\n\t\t<relationship type='Neutrality' player1='Russians' player2='Japanese' roundValue='1'/>"
,"\n\t\t..."
,"\n\t</relationshipInitialize>"
,"\n</initialize>"
]
,"links":["relationshipType","alliance","relationship option"]
}

,"propertyList":{
"parent":"game"
,"type":"object"
,"desc":"Global game options"
,"info":"IMPORTANT: All properties should be kept in the original order"
,"example":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='mapName' value='the_pact_of_steel' editable='false'>"
,"\n\t\t<string/>"
,"\n\t</property>"
,"\n\t<property name='maxFactoriesPerTerritory' value='1' editable='false'>"
,"\n\t\t<number min='1' max='100'/>"
,"\n\t</property>"
,"\n\t<property name='Produce fighters on carriers' value='true' editable='false'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='notes'>"
,"\n\t\t<string/>"
,"\n\t\t<value>"
,"\n\t\t<![CDATA["
,"\n\t\t\t<br>Your game notes go here."
,"\n\t\t</value>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"vers":["From TripleA 1.5 and onward each property must have its value type defined (see example).<br>The value types used :<ul><li>boolean<li>number<li>string<ul>"]
,"chiluns":"Properties"
}

,"notes":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"string"
}
,"info":[
"Information about the map / scenario."
,"Is displayed when selecting a scenario to play."
,"May also be viewed in game via menu; Help > Game Notes."
,"HTML format"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='notes'>"
,"\n\t\t<value>"
,"\n\t\t\t<![CDATA["
,"\n\t\t\t<h2>Pact of Steel 2</h2>"
,"\n\t\t\t<br>A mod of POS by Veqryn"
,"\n\t\t\t<br>"
,"\n\t\t\t..."
,"\n\t\t\t]]>"
,"\n\t\t</value>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"mapName":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"string"
}
,"info":[
"Must exactly match the folder or zip name of your map (do not include the .zip of course)."
,"May point to another map folder if you are making a mod of that map."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='mapName' value='the_pact_of_steel'>"
,"\n\t\t<string/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Neutral Flyover Allowed":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Neutral Flyover Allowed' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Neutrals Are Blitzable":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Neutrals Are Blitzable' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canBlitz"
]
}

,"Neutrals Are Impassable":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"An easy way of making all the neutrals impassable, without having to set each area to impassable."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Neutrals Are Impassable' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"neutralCharge":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
}
,"info":[
"Cost in PUs to invade a nuetral."
,"If neutrals can't be invaded, the penalty should be set to 999999."
,"If no penalty is desired, set the penalty at 0."
,"A 0 penalty is appropriate when neutrals are assigned units for defense."
,"The AI will not normally attack neutrals if there is a neutral charge."
,"Cost set to zero if a neutral territory contains defending units."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to 3 if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='neutralCharge' value='true' editable='true'>"
,"\n\t\t<number min='0' max='9999'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"SBR Victory Points":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows the loss of a victory point for every strategic bombing raid damage per turn."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='SBR Victory Points' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Limit SBR Damage To Factory Production":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Limits Strategic Bombing and Rocket damage to production value of a territory."
,"Is set true if WW2V2 is true."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Limit SBR Damage To Factory Production' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Use Bombing Max Dice Sides And Bonus":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Enables bombingMaxDieSides and bombingBonus"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Use Bombing Max Dice Sides And Bonus' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"bombingMaxDieSides"
,"bombingBonus"
]
}

,"Damage From Bombing Done To Units Instead Of Territories":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Damage is done to units rather than territories, as territory damage was the old way of doing things."
,"Requires 'SBR Affects Unit Production' to be false."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Damage From Bombing Done To Units Instead Of Territories' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"SBR Affects Unit Production"
]
}

,"SBR Affects Unit Production":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets 'Damage From Bombing Done To Units Instead Of Territories' to true."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='SBR Affects Unit Production' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Damage From Bombing Done To Units Instead Of Territories"
]
}

,"Raids May Be Preceeded By Air Battles":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows Strategic Bombing Raids to have Escort aircraft and also be Intercepted by the defender."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Raids May Be Preceeded By Air Battles' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Battles May Be Preceeded By Air Battles":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows normal battles to have air battles first."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Battles May Be Preceeded By Air Battles' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}


,"Air Battle Defenders Can Retreat":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Air Battle Defenders Can Retreat' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}


,"Air Battle Attackers Can Retreat":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Air Battle Attackers Can Retreat' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Retreating Units Remain In Place":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows retreat to only the same territory / sea zone as the battle."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Retreating Units Remain In Place' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Air Battle Rounds":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
}
,"info":[
"The number of rounds in a normal air battle."
,"Negative value indicates 'until a side is eliminated.'"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to -1 if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Air Battle Rounds' value='-1' editable='true'>"
,"\n\t\t<number min='-1' max='100'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Sea Battle Rounds":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
}
,"info":[
"The number of rounds in a normal sea battle."
,"Negative value indicates 'until a side is eliminated.'"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to -1 if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Sea Battle Rounds' value='-1' editable='true'>"
,"\n\t\t<number min='-1' max='100'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Land Battle Rounds":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
}
,"info":[
"The number of rounds in a normal land battle."
,"Negative value indicates 'until a side is eliminated.'"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to -1 if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Land Battle Rounds' value='-1' editable='true'>"
,"\n\t\t<number min='-1' max='100'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Sea Battles May Be Ignored":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows attackers to choose not to battle in a contested sea zone."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Sea Battles May Be Ignored' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Unit Placement Restrictions":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Prevents a unit or units from being placed in a territory."
,"Requires 'unitPlacementRestrictions'."
,""
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Unit Placement Restrictions' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"unitPlacementRestrictions"
,""
]
}

,"Placement Restricted By Factory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Limits the number of units that can be placed at factories."
,"Causes originalFactory to be ignored."
,"Disabled by 'Unit Placement Per Territory Restricted'."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Placement Restricted By Factory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"originalFactory"
,"Unit Placement Per Territory Restricted"
]
}


,"maxFactoriesPerTerritory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
}
,"info":[
"Allows multiple working factories in a territory."
,"Is ignored in WW2V2"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to 1 if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='maxFactoriesPerTerritory' value='1' editable='true'>"
,"\n\t\t<number min='1' max='100'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"WW2V2"
,""
]
}


,"Limit Rocket Damage Per Turn":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Limits total damage in a turn caused by Rockets to territory value."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Limit Rocket Damage Per Turn' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Territory Turn Limit"
,"Limit SBR Damage Per Turn"
]
}

,"Limit SBR Damage Per Turn":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Limits total damage in a turn caused by Strategic Bombing raids to territory value."
,"Is set to true if 'Territory Turn Limit' is true"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Limit SBR Damage Per Turn' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Territory Turn Limit"
,"Limit Rocket Damage Per Turn"
]
}

,"Territory Turn Limit":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Limits the total damage for a turn from Strategic Bombing and Rockets attacks to the value of the territory."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Territory Turn Limit' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Limit SBR Damage Per Turn"
,"Limit Rocket Damage Per Turn"
]
}


,"Abandoned Territories May Be Taken Over Immediately":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Any territory abandoned may be taken over by the remaining units on the same turn it was abandoned on."
,"If a territory is attacked and both all the attackers and all defenders die, then any other player with combat units will take over the territory."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Abandoned Territories May Be Taken Over Immediately' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Contested Territories Produce No Income":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Will stop all production in territories that contain enemy units."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Contested Territories Produce No Income' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Units Can Load In Hostile Sea Zones":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows units to be loaded even if there are enemy ships in the transport's sea zone."
,"Used to avoid players blocking unit loading with 1 cheap naval unit."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Units Can Load In Hostile Sea Zones' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Unit Placement In Enemy Seas":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows units to be placed in a sea zone that has enemy units in it."
,"Is set to true if WW2V2 is true."
,""
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Unit Placement In Enemy Seas' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"LHTR Carrier production rules":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"New fighters can be placed on existing carriers."
,"New fighters can be placed on new carriers."
,"Existing fighters can landed on new carriers."
,"Fighters adjacent to the production sea zone cannot be moved to new carriers."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='LHTR Carrier production rules' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"LHTR"
]
}

,"Land existing fighters on new carriers":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows the player to land existing Fighters on new Aircraft Carriers by ending the fighters' movement in the sea zone in which a new carrier will be placed."
,"Replaces the abilitiy formerly in 'Produce fighters on carriers'."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Land existing fighters on new carriers' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Produce fighters on carriers"
,"Produce new fighters on old carriers"
,"Move existing fighters to new carriers"
,"LHTR Carrier production rules"
]
}

,"Move existing fighters to new carriers":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Fighters adjacent to the production sea zone can be moved to new carriers."
,"If LHTR is set to true, it will negate the ability to move adjacent fighters to new carriers."
,"Replaces the abilitiy formerly in 'Produce fighters on carriers'."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Move existing fighters to new carriers' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Produce fighters on carriers"
,"Produce new fighters on old carriers"
,"Land existing fighters on new carriers"
,"LHTR Carrier production rules"
]
}

,"Produce new fighters on old carriers":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"New fighters can be placed on existing carriers."
,"Replaces the abilitiy formerly in 'Produce fighters on carriers' "
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Produce new fighters on old carriers' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Produce fighters on carriers"
,"Move existing fighters to new carriers"
,"Land existing fighters on new carriers"
,"LHTR Carrier production rules"
]
}

,"Produce fighters on carriers":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows the player to place new Fighters on new Aircraft Carriers"
,"Replaced by 'Move existing fighters to new carriers'."
,"Replaced by 'Produce new fighters on old carriers'."
,"Replaced by 'Land existing fighters on new carriers'"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Produce fighters on carriers' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Produce new fighters on old carriers"
,"Move existing fighters to new carriers"
,"Land existing fighters on new carriers"
,"LHTR Carrier production rules"
]
}

,"Convoy Blockades Roll Dice For Cost":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allow dice to be thrown for all blockade damage."
,"If false, blockades will deal set amount of damage per unit."
,"If true, a 6 sided die will be rolled for each damage point, with that being the damage, except rolls higher than 3 will be ignored."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Convoy Blockades Roll Dice For Cost' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}


,"Two hit battleship":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Activates the ability of battleships to survive 1 hit."
,"Only affects units exactly called 'battleship'"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Two hit battleship' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Two HitPoint Units Require Repair Facilities"
]
}


,"Naval Units May Not NonCombat Move Into Controlled Sea Zones":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Naval units may not move into convoy zones or controlled sea zones during non-combat moves."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Naval Units May Not NonCombat Move Into Controlled Sea Zones' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}


,"Subs Can End NonCombat Move With Enemies":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows isSub units to end their noncombat movement in a sea zone containing any enemy units, including enemy isSub."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Subs Can End NonCombat Move With Enemies' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}


,"Sub Control Sea Zone Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines whether isSub units are restricted from claiming control of a sea zone."
,"Disallows subs from capturing Convoy Routes or Convoy Centers."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Sub Control Sea Zone Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Convoy Route"
,"Convoy Center"
,"convoyAttached"
,"convoyRoute"
,"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Submersible Subs":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows isSub units to submerge in place when retreating unless an isDestroyer is present."
,"Allows isSub units to move underneath enemy naval units (during combat or non-combat movement) unless a isDestroyer is present."
,"Does not allow isSub units to stop in an enemy occupied sea zone without combat or during non-combat."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Submersible Subs' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Submarines Defending May Submerge Or Retreat":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allow defending submarines to retreat to friendly sea zones or submerge."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Submarines Defending May Submerge Or Retreat' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Sub Retreat Before Battle":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows isSub to retreat before battle if there are no enemy isDestroyer."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Sub Retreat Before Battle' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Defending Subs Sneak Attack":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Defending Submarines to get the benefit of sneak attacks."
,"Ships hit by a sneak attack sub do not get to return fire."
,"The behavior is negated by the presence of enemy isDestroyer"
,"Is set to true if WW2V2 is true."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Defending Subs Sneak Attack' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Ignore Sub In Movement":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines whether enemy ships can ignore Submarines when moving."
,"Enemy ships can move into or through sub occupied sea zones without combat."
,"Enemy ships can move into or through sub occupied sea zones during non combat."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Ignore Sub In Movement' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Submarines Prevent Unescorted Amphibious Assaults":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Submarines stop transports from doing amphibious assault unless there is at least 1 owned warship in the sea zone."
,"If true submarine units are being counted as escorts."
,"isCombatTransport units are unaffected by this property."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Submarines Prevent Unescorted Amphibious Assaults' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isCombatTransport"
,"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}

,"Transport Control Sea Zone":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines whether transports can claim control of a sea zone."
,"Enemy ships can move into or through sub occupied sea zones without combat ."
,"Enemy ships can move into or through sub occupied sea zones during non combat."
,"Disallows transports from capturing convoy routes or convoy centers ."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Transport Control Sea Zone' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Ignore Transport In Movement"
,"Transport Casualties Restricted"
,"Transport Restricted Unload"
]
}

,"Transport Casualties Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Causes transport casualties to be taken last."
,"This prevents transports from being used as cannon fodder."
,"Disallows transports from having attack/defense capabilities."
,"Unescorted transports will die automatically in combat."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Transport Casualties Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Ignore Transport In Movement"
,"Transport Control Sea Zone"
,"Transport Restricted Unload"
]
}

,"Ignore Transport In Movement":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines whether enemy ships can ignore transports when moving."
,"Enemy ships can move into or through transport occupied sea zones without combat."
,"Enemy ships can move into or through transport occupied sea zones during non combat."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Ignore Transport In Movement' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Transport Casualties Restricted"
,"Transport Control Sea Zone"
,"Transport Restricted Unload"
]
}

,"Transport Restricted Unload":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Restricts an isLandTransport to unloading into a single Territory. "
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Transport Restricted Unload' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Ignore Transport In Movement"
,"Transport Casualties Restricted"
,"Transport Control Sea Zone"
]
}

,"Air Attack Sub Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"If true, isDestroyer is required in the seazone in order for an isAir to be able to hit an enemy isSub."
,"If isAir unit is the attacker, the isDestroyer must be owned by the attacker player."
,"If isAir unit is a defender, the isDestroyer can be owned by an allied nation as long as it is also at war with enemy isSub."
,"Also determines if the isAir unit rolls together or rolls seperately or rolls nothing, depending on the makeup of other allied units in the seazone when a isSub unit is present."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Air Attack Sub Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isAir"
,"isDestroyer"
]
}

,"Surviving Air Move To Land":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows air units surviving after the sinking of an aircraft carrier to move to adjacent friendly land area or sea zone with a friendly aircraft carrier."
,"Is set true if WW2V2 is true."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Surviving Air Move To Land' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"WW2V2"
,""
]
}

,"Allied Air Independent":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"If true, allied air on carriers participate in attack."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Allied Air Independent' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Naval Bombard Casualties Return Fire":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines whether casualties from naval bombardment fire back."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Naval Bombard Casualties Return Fire' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Shore Bombard Per Ground Unit Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Limits the number of bombarding units to the number of ground units that are attacking amphibiously."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Shore Bombard Per Ground Unit Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Attacker Retreat Planes":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Causes attacking aircraft to be able to retreat, even from amphibious attacks."
,"Is set true if WW2V2 is true."
,"Is set true if 'Partial Amphibious Retreat' is true."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Attacker Retreat Planes' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"WW2V2"
,"Partial Amphibious Retreat"
]
}

,"Partial Amphibious Retreat":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows non-amphibious attacking units to retreat from a battle in which there are amphibious units."
,"They can retreat to a territory from which any non-amphibious units came."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Partial Amphibious Retreat' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Partial Amphibious Retreat"
,""
]
}

,"Units May Give Bonus Movement":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allow units to give movement to other units."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Units May Give Bonus Movement' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"givesMovement"
,""
]
}

,"Defending Suicide and Munition Units Do Not Fire":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Stops defending isSuicide units from acting like suicide units ie; dying first round, shooting before everyone else."
,"The defending isSuicide units can not die from attacks by other suicide units."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Defending Suicide and Munition Units Do Not Fire' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Suicide and Munition Casualties Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sops casualties from returning fire for isSuicide units"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Suicide and Munition Casualties Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isSuicide"
,""
]
}

,"Multiple AA Per Territory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"More than one AA Gun to be allowed in a territory."
,"Is set true if WW2V2 is true."
,"Is set true if WW2V3 is true."
,"Affects movement, placement, and transport unloading."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Multiple AA Per Territory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"WW2V2"
,"WW2V3"
]
}

,"Force AA Attacks For Last Step Of Fly Over":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Forces isAAforFlyOver to shoot in the last step of a route as well, which it normally does not."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Force AA Attacks For Last Step Of Fly Over' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isAAforFlyOver"
,""
]
}

,"AA Territory Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Causes AA to fire only in a territory that is being attacked by aircraft (or bombed)."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='AA Territory Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Random AA Casualties":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Causes AA casualties to be chosen randomly."
,"Is set true if WW2V2 is true."
,"Is set false if 'Choose AA Casualties' is true."
,"Is set false if 'Low Luck' is true."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Random AA Casualties' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"WW2V2"
,"Low Luck"
,"Choose AA Casualties"
]
}

,"Choose AA Casualties":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows a player to choose which aircraft to take as AA casualties."
,"WW2V2: AA casualty assignment negated if 'Choose AA Casualties' is true"
,"'Random AA Casualties': AA casualty assignment negated if 'Choose AA Casualties' is true"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Choose AA Casualties' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"WW2V2"
,"Random AA Casualties"
]
}

,"Roll AA Individually":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"This property causes AA Guns to be fired at each Aircraft individually."
,"The aircraft are basically lined up with the AA rolls and the hits taken based on the matching positions in the lines."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Roll AA Individually' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Blitz Through Factories And AA Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"If true, you cannot blitz through territories which contain only Factories or AA Guns."
,"Note that the rule literally states that any unit stops a blitz."
,""
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Blitz Through Factories And AA Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Unlimited Constructions":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows unlimited constructions total in a territory"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Unlimited Constructions' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"maxConstructionsPerTypePerTerr"
,"More Constructions with Factory"
,"More Constructions without Factory"
]
}

,"More Constructions without Factory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"true: Allows the number of constructions up to the territory value."
,"false: May have only maxConstructionsPerTypePerTerr constructions total per territory without a factory."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='More Constructions without Factory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"maxConstructionsPerTypePerTerr"
,"More Constructions with Factory"
,"Unlimited Constructions"
]
}

,"More Constructions with Factory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"true: Allow number of constructions up to the territory value."
,"false: May have only maxConstructionsPerTypePerTerr constructions total per territory with a factory."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='More Constructions with Factory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"maxConstructionsPerTypePerTerr"
,"More Constructions without Factory"
,"Unlimited Constructions"
]
}

,"Units Can Be Changed On Capture":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Requires unit to have whenCapturedChangesInto unitAttachment."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Units Can Be Changed On Capture' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"whenCapturedChangesInto"
]
}

,"Units Can Be Destroyed Instead Of Captured":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Activates destroyedWhenCapturedBy unitAttachment"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Units Can Be Destroyed Instead Of Captured' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"destroyedWhenCapturedBy"
,""
]
}

,"On Entering Units Destroyed Instead Of Captured":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows units normally captured on entering to be destroyed."
,"Does not affect isInfrastructure units, only affects combat units with the canBeCapturedOnEnteringBy attachment."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='On Entering Units Destroyed Instead Of Captured' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Capture Units On Entering Territory"
,"canBeCapturedOnEnteringBy"
]
}

,"Capture Units On Entering Territory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows units to be captured instead of fighting."
,"Requires unit to have canBeCapturedOnEnteringBy unitAttachment."
,"Requires territory to have captureUnitOnEnteringBy territoryAttachment."
,"Requires player to have captureUnitOnEnteringBy playerAttachment."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."

]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Capture Units On Entering Territory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canBeCapturedOnEnteringBy"
,"captureUnitOnEnteringBy player"
,"captureUnitOnEnteringBy territory"
,"On Entering Units Destroyed Instead Of Captured"
]
}

,"Give Units By Territory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows a player to give units to another player."
,"Requires unit to have canBeGivenByTerritoryTo unitAttachment."
,"Requires territory to have changeUnitOwners territoryAttachment."
,"Requires player to have giveUnitControl playerAttachment."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."

]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Give Units By Territory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canBeGivenByTerritoryTo"
,"changeUnitOwners"
,"giveUnitControl"
]
}

,"Unplaced units live when not placed":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows purchased units to be saved and not placed until a future turn."
,"For instance, if more units were purchased than could be placed."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Unplaced units live when not placed' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Place in Any Territory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Enables the ability (at the game level) to allow a player to place units in any territory, not just those with factories."
,"Player requires placementAnyTerritory."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Place in Any Territory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"placementAnyTerritory"
,""
]
}

,"Unit Placement Per Territory Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets a restriction to the number of units that can be in a Territory prior to new units being place there."
,"It is only a restriction on the placement of new units, not the total number of units in a territory."
,"Player requires placementPerTerritory."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Unit Placement Per Territory Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"placementPerTerritory"
,"Placement Restricted By Factory"
,""
]
}

,"Production Per Valued Territory Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows a player to purchase units without any production."
,"Only territories with a production value of 1 or more may count towards the production per x territories"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Production Per Valued Territory Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Production Per X Territories Restricted"
,"productionPerXTerritories"
]
}

,"Production Per X Territories Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows a player to purchase units without any production"
,"The number of units is based upon the number of territories owned, regardless of the value of the territories."
,"Requires productionPerXTerritories rulesAttachment "
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Production Per X Territories Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"productionPerXTerritories"
,"Production Per Valued Territory Restricted"
]
}

,"Movement By Territory Restricted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Activates the limiting of a player's units to or from specific territories."
,"Requires movementRestrictionTerritories attachment"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Movement By Territory Restricted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"movementRestrictionTerritories"
]
}

,"Use Fuel Cost":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Charge fuelCost when units are moved."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Use Fuel Cost' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"fuelCost"
,""
]
}

,"Pacific Theater":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows players to gain VictoryPoints by capturing PUs."
,"Allows Strategic Bombing to destroy VPs."
,"Allows NoPU purchases (ww2v3 does also)."
,"Allows an additional purchase in NOPU purchases if you control the Burma Road."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Pacific Theater' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
""
,""
]
}

,"Rockets Can Fly Over Impassables":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start"
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Rockets Can Fly Over Impassables' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isRocket"
,"All Rockets Attack"
,"Rocket Attacks Per Factory Infinite"
]
}

,"Rocket Attacks Per Factory Infinite":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows infinite attacks against a factory by many rockets, if false,will only allow a max of 1 rocket to attack each factory"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Rocket Attacks Per Factory Infinite' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isRocket"
,"All Rockets Attack"
,"Rockets Can Fly Over Impassables"
]
}

,"All Rockets Attack":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Will not use the 'classic' rule of getting a single rocket attack for the whole round, and instead get a rocket attack for each rocket"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='All Rockets Attack' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"isRocket"
,"Rocket Attacks Per Factory Infinite"
,"Rockets Can Fly Over Impassables"
]
}

,"Airborne Attacks Only In Enemy Territories":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Airborne Attacks Only In Enemy Territories' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Airborne Attacks Only In Existing Battles":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Airborne Attacks Only In Existing Battles' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Can Scramble Into Air Battles":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allow a player to scramble air to neighboring territories in order to defend against strategic bombing raids and air battles."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Can Scramble Into Air Battles' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canScramble"
,"Scramble Rules In Effect"
,"Scramble From Island Only"
,"Scramble To Sea Only"
,"Scramble To Any Amphibious Assault"
,"Scrambled Units Return To Base"
]
}
,"Scramble To Any Amphibious Assault":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows bases not being attacked to scramble to defend bases that are being attacked amphibiously."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Scramble To Any Amphibious Assault' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canScramble"
,"Scramble Rules In Effect"
,"Scramble From Island Only"
,"Scramble To Sea Only"
,"Can Scramble Into Air Battles"
,"Scrambled Units Return To Base"
]
}

,"Scramble From Island Only":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Restricts fighter scrambling to islands."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Scramble From Island Only' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canScramble"
,"Scramble Rules In Effect"
,"Scramble To Sea Only"
,"Scrambled Units Return To Base"
,"Can Scramble Into Air Battles"
,"Scramble To Any Amphibious Assault"
]
}

,"Scramble To Sea Only":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines whether fighters can scramble only to sea areas or to nearby land areas as well."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Scramble To Sea Only' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canScramble"
,"Scramble Rules In Effect"
,"Scramble From Island Only"
,"Scrambled Units Return To Base"
,"Can Scramble Into Air Battles"
,"Scramble To Any Amphibious Assault"
]
}

,"Scrambled Units Return To Base":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Scrambled units automatically returned to base after combat."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Scrambled Units Return To Base' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canScramble"
,"Scramble Rules In Effect"
,"Scramble From Island Only"
,"Scramble To Sea Only"
,"Can Scramble Into Air Battles"
,"Scramble To Any Amphibious Assault"
]
}

,"Scramble Rules In Effect":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"This property allows the use of scramble units within the game."
,"At the beginning of a round of combat, the engine will search for airbases within the maxScrambleDistance of units that canScramble. If there are some found, the owner will be asked if they wish to scramble units to the battle, and any selected units will be moved to the battle."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Scramble Rules In Effect' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"canScramble"
,"Scramble From Island Only"
,"Scramble To Sea Only"
,"Scrambled Units Return To Base"
,"Can Scramble Into Air Battles"
,"Scramble To Any Amphibious Assault"
]
}

,"Disabled Players Assets Deleted":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"If any players are disabled and unused, then all their units, money, etc, gets deleted at the start of the game during initialization delegate."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Disabled Players Assets Deleted' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Territories Are Assigned Randomly":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Determines if territories are randomly assigned or picked by players during RandomStartDelegate."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Territories Are Assigned Randomly' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["RandomStartDelegate"]
}

,"Use Shipyards":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows a production technology specifically for naval units."
,"A game could then have both an Industrial Tech and a Shipyard Tech that reduces the cost of production of units."
,"Need a productionRule for each naval unit similar to Industrial Tech but with a name like buyTransportShipyards."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Use Shipyards' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["productionFrontier","productionRule","Shipyards"]
}

,"Selectable Tech Roll":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows the player to select a single technology for which to roll."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Selectable Tech Roll' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"WW2V3 Tech Model":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Tech Tokens are used and are carried over from turn to turn."
,"Jet Fighters gain +1 in attack and defense."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='WW2V3 Tech Model' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["WW2V3"]
}

,"WW2V3":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Identifies the map and ruleset to be WW2V3"
,"Allows non-currency related unit production"
,"Disallows aircraft from defining retreat territories"
,"Allows multiple AA per territory"
,"Rockets fire at the END of combat movement"
,"Ability to purchase units without Production"
,"Pre-existing units in a zone (submerged subs) will initiate combat"
,"Displays the WW2V3Advances tech tree which are divided between WW2V3 Land Production and WW2V3 Air Naval technologies"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='WW2V3' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["WW2V3 Tech Model"]
}

,"WW2V2":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Identifies the map and ruleset to be WW2V2"
,"Displays the WW2V3Advances tech tree which are divided between WW2V3 Land Production and WW2V3 Air Naval technologies"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='WW2V2' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"productionIndustrialTechnology"
,"Attacker Retreat Planes"
,"Choose AA Casualties"
,"Multiple AA Per Territory"
,"Random AA Casualties"
,"Surviving Air Move To Land"
,"Defending Subs Sneak Attack"
,"Unit Placement In Enemy Seas"
,"maxFactoriesPerTerritory"
,"Limit SBR Damage To Factory Production"
]
}

,"Selectable Zero Movement Units":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows zero movement units to be selected, so they can be loaded onto transports."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Selectable Zero Movement Units' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Multiply PUs":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"Multiply all PUs gained or lost during a turn, but not yet multiply costs of units, repairs, or starting PUs."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to 0 if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Multiply PUs' value='1' editable='true'>"
,"\n\t\t<number min='0' max='10'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Two HitPoint Units Require Repair Facilities":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Unit must in the presence of a unit with repairsUnits"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Two HitPoint Units Require Repair Facilities' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["repairsUnits"]
}

,"Units Repair Hits Start Turn":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Units Repair Hits Start Turn' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Units Repair Hits End Turn":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Units Repair Hits End Turn' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Kamikaze Suicide Attacks Only Where Battles Are":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"The attacks only occur when there are amphibious battles from that territory, or a battle in that territory"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Kamikaze Suicide Attacks Only Where Battles Are' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Kamikaze Suicide Attacks Done By Current Territory Owner":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows you to change from the default of the original owner, to the current owner."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Kamikaze Suicide Attacks Done By Current Territory Owner' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["isKamikaze","suicideAttackResources"]
}

,"Kamikaze Airplanes":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows planes to attack without regard for having a landing space."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Kamikaze Airplanes' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["isKamikaze"]
}

,"Always on AA":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Causes AA to fire during non combat movement."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Always on AA' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["isAA"]
}

,"Paratroopers Can Attack Deep Into Enemy Territory":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allow movement for isAirTransport during combat move over enemy territories."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Paratroopers Can Attack Deep Into Enemy Territory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Paratroopers Can Move During Non Combat":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Paratroopers Can Move During Non Combat' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["paratroopers","isAirTransportable"]
}

,"Heavy Bomber Dice Rolls":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"Determines the number of dice rolled on attack by heavyBomber."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Heavy Bomber Dice Rolls' value='2' editable='true'>"
,"\n\t\t<number min='2' max='3'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["heavyBomber"]
}

,"LHTR Heavy Bombers":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Enables LHTR rules to be used for heavyBomber."
,"During normal attack/defense, 2 dice are rolled and the best roll is the result"
,"During strategic bombing raids, 2 dice are rolled and 1 is added to the best roll to determine the result"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='LHTR Heavy Bombers' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["heavyBomber","LHTR"]
}

,"Super Sub Defence Bonus":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"Increases the defense capability of SuperSubs."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Super Sub Defence Bonus' value='1'>"
,"\n\t\t<number min='0' max='1'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}
,"Remove All Tech Tokens At End Of Turn":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Removes techTokens after the tech roll."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Remove All Tech Tokens At End Of Turn' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["resourceList"]
}
,"Tech Development":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Enables technology development."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Tech Development' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["technology"]
}
,"Use Triggers":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Activates triggers."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Use Triggers' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"National Objectives":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Allows players to gain income by meeting certain conditions, generally territory control."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='National Objectives' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":["alliedExclusionTerritories","objectiveAttachment"]
}

,"Alliances Can Chain Together":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Causes anyone who is allied with your ally, to become your ally, and any of your ally's enemies to become your enemy."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Alliances Can Chain Together' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Relationships Last Extra Rounds":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"An integer range"
,"editable":"true / false"
}
,"info":[
"Enables relationships to last additional or fewer rounds than default."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, has no effect if not set."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Relationships Last Extra Rounds' value='0' editable='true'>"
,"\n\t\t<number min='-1' max='2'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Use Politics":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"<b>editable</b>: May change in 'Map Options' panel prior to game start."
]
,"context":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Use Politics' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
}

,"Low Luck for Technology":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Reduces luck by adding up the combat factors and dividing by 6, to rolling for tech."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":"Low Luck"
,"links":[
"Low Luck"
,"Low Luck for AntiAircraft"
,"Low Luck for Bombing and Territory Damage"
]
}

,"Low Luck for Bombing and Territory Damage":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Reduces luck by adding up the combat factors and dividing by 6, to rolling for tech."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":"Low Luck"
,"links":[
"Low Luck"
,"Low Luck for AntiAircraft"
,"Low Luck for Technology"
]
}

,"Low Luck":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Reduces luck by adding up the combat factors and dividing by 6 to determine the number of hits, with a die roll handling the remainder."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":"Low Luck"
,"links":[
"Low Luck for AntiAircraft"
,"Low Luck for Bombing and Territory Damage"
,"Low Luck for Technology"
]
}

,"Low Luck for AntiAircraft":{
"parent":"propertyList"
,"type":"property"
,"desc":"Global option"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Reduces luck by adding up the combat factors and dividing by 6 to determine the number of hits, with a die roll handling the remainder.."
,"For those who prefer using dice for normal battles, but hate the randomness of AA shots."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":"Low Luck"
,"links":[
"Low Luck"
,"Low Luck for Bombing and Territory Damage"
,"Low Luck for Technology"
]
}

,"Triggered Victory":{
"parent":"propertyList"
,"type":"property"
,"desc":"A victory type"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets the triggered victory condition on/off."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
,"A pop-up prompt will offer to end game if a victory condition is reached."
]
,"example":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Triggered Victory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"Economic Victory"
,"Total Victory"
]
}

,"Economic Victory":{
"parent":"propertyList"
,"type":"property"
,"desc":"A victory type"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets as a victory condition."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
,"A pop-up prompt will offer to end game if a victory condition is reached."
]
,"example":"Economic Victory"
,"links":[
"Economic Victory PUs"
,"production value"
,"Triggered Victory"
]
}

,"Economic Victory PUs":{
"parent":"propertyList"
,"type":"property"
,"desc":"Sets PUs needed for victory"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"The total PUs value required to win"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
]
,"context":"Economic Victory"
,"links":[
"Economic Victory"
,"production value"
]
}

,"Total Victory":{
"parent":"propertyList"
,"type":"property"
,"desc":"A victory type"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets as a victory condition."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
,"A pop-up prompt will offer to end game if a victory condition is reached."
]
,"example":"Total Victory"
,"links":[
"Total Victory VCs"
,"Triggered Victory"
]
}

,"Total Victory VCs":{
"parent":"propertyList"
,"type":"property"
,"desc":"Sets VCs needed for victory"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"The total victoryCity values required to win"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to 18 if not set."
]
,"context":"Total Victory"
,"links":[
"Total Victory"
,"victoryCity"
,"Triggered Victory"
]
}

,"Honorable Surrender":{
"parent":"propertyList"
,"type":"property"
,"desc":"A victory type"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets as a victory condition."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
,"A pop-up prompt will offer to end game if a victory condition is reached."
]
,"example":"Honorable Surrender"
,"links":[
"Honorable Surrender VCs"
]
}

,"Honorable Surrender VCs":{
"parent":"propertyList"
,"type":"property"
,"desc":"Sets VCs needed for victory"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"The total victoryCity values required by enemy"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to 12 if not set."
]
,"context":"Honorable Surrender"
,"links":[
"Honorable Surrender"
,"victoryCity"
]
}

,"Projection of Power":{
"parent":"propertyList"
,"type":"property"
,"desc":"A victory type"
,"params":{
"value":"true / false"
,"editable":"true / false"
}
,"info":[
"Sets as a victory condition."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to false if not set."
,"A pop-up prompt will offer to end game if a victory condition is reached."
]
,"example":"Projection of Power"
,"links":[
"Projection of Power VCs"
]
}

,"Projection of Power VCs":{
"parent":"propertyList"
,"type":"property"
,"desc":"Sets VCs needed for victory"
,"params":{
"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"The total victoryCity values required to win"
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
,"This option is not required, value will default to 12 if not set."
]
,"context":"Projection of Power"
,"links":[
"Projection of Power"
,"victoryCity"
]
}

,"bid property":{
"parent":"propertyList"
,"type":"property"
,"desc":"Set default bid values"
,"params":{
"name":"player name with ' bid' postfixed"
,"value":"integer"
,"editable":"true / false"
,"number":"An integer range"
}
,"info":[
"Set default bid values."
,"A bid value gives a player an option to purchase & place units prior to the first turn."
,"If there is no bid step, this option is not required or if present will be ignored."
,"WARNING: There is also a bid delegate."
,"<b>editable</b>: true = May be changed in 'Map Options' panel prior to game start."
]
,"example":[
"<property name='British bid' value='0'>"
,"\n\t<number min='0' max='1000'/>"
,"\n</property>"
]
,"context":[
"<propertyList>"
,"\n\t<property name='Italians bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='Russians bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='Germans bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='British bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='Japanese bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='Americans bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='Chinese bid' value='0' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"links":[
"bid delegate","bid sequence"
]
}

,"attachmentList":{
"parent":"game"
,"type":"object"
,"desc":"A list of all attachments in the scenario"
,"chiluns":"Attachment Types"
}

,"canalAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Defines a canal"
,"params":{
"attachTo":"Any territory"
,"type":"territory"
,"javaClass":"CanalAttachment"
}
,"info":[
"There may be multiple canalAttachment's per territory, so long as they have different names that start with 'canalAttachment'."
,"Each 'canal' must consist of 2 canalAttachments, one for each of the connected sea zones or territories.<br>Connections of territories could be tunnels or magic gates etc."
,"The following options are allowed for 'canalAttachmentXXX' (all canal attachments need identical attachments attached to the 2 sea zones involved)."
,"<b>canalName</b>:&nbsp; Any string name for the canal. must match its counterpart attachment."
,"<b>landTerritories</b>:&nbsp; A colon delimited list of the territories that make up this canal. must match its counterpart attachment. Can be any number of territories, but at least 1 territory."
,"<b>excludedUnits</b>:&nbsp; (Optopnal) A colon delimited list of units that may not use the canal.<br>If option absent, then all isAir units may not use the canal. Can also be set to 'NONE' or 'ALL'."
]
,"context":[
"<attachment name='canalAttachmentSuez' attachTo='15 Sea Zone' javaClass='CanalAttachment' type='territory'>"
,"\n\t<option name='canalName' value='Suez Canal'/>"
,"\n\t<option name='landTerritories' value='Anglo Egypt:Trans-Jordan'/>"
,"\n\t<option name='excludedUnits' value='Anglo Egypt:Trans-Jordan'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.CanalAttachment'"
]
}

,"triggerAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for triggers"
,"params":{
"attachTo":"Any player in playerList"
,"type":"player"
,"javaClass":"TriggerAttachment"
}
,"info":[
"conditionAttachments and objectiveAttachments must be BEFORE any triggers in the XML."
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.TriggerAttachment'"
]
,"chiluns":"Options"
}

,"territoryEffectProperty":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"attachment option name"
,"count":"equivalent to the attachment option count"
}
,"info":[
"Designates what is to be changed for the attachment option in territoryAttachmentName"
,"Requires 'territoryEffectAttachmentName' and 'territoryEffects' option to be set."
]
,"links":[
"territoryEffectAttachmentName"
,"territoryEffects"
]
}

,"territoryEffectAttachmentName":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"TerritoryEffectAttachment"
,"count":"Attachment option name"
}
,"info":[
"Designates the attachment option to be changed by territoryEffectProperty"
,"Requires 'territoryEffectProperty' and 'territoryEffects' option to be set."
]
,"links":[
"territoryEffects"
,"territoryEffectProperty"
]
}

,"territoryEffects":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"Any territoryEffect"}
,"info":[
"The territoryEffect to be affected by a territoryEffectProperty change."
,"Requires 'territoryEffectProperty' and 'territoryEffectAttachmentName' option to be set."
]
,"links":[
"territoryEffectProperty"
,"territoryEffect"
,"territoryEffectAttachmentName"
]
}

,"relationshipTypeProperty":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"attachment option name"
,"count":"equivalent to the attachment option count"
}
,"info":[
"Designates what is to be changed for the attachment option in territoryAttachmentName"
,"Requires 'relationshipTypeAttachmentName' and 'relationshipTypes' option to be set."
]
,"links":[
"relationshipTypeAttachmentName"
,"relationshipTypes option"
]
}

,"relationshipTypeAttachmentName":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"RelationshipTypeAttachment"
,"count":"Attachment option name"
}
,"info":[
"Designates the attachment option to be changed by relationshipTypeProperty"
,"Requires 'relationshipTypeProperty' option to be set."
]
,"links":[
"relationshipTypeProperty"
]
}

,"relationshipTypes option":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"Any relationshipType"}
,"info":[
"The relationshipType to be affected by a relationshipTypeProperty change."
,"Requires 'relationshipTypeProperty' option to be set."
]
,"links":[
"relationshipTypeProperty"
,"relationshipType"
]
}

,"territoryProperty":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"attachment option name"
,"count":"equivalent to the attachment option count"
}
,"info":[
"Designates what is to be changed for the attachment option in territoryAttachmentName"
,"Requires 'territoryAttachmentName' and 'territories' option to be set."
]
,"links":[
"territoryAttachmentName"
,"territories"
]
}

,"territoryAttachmentName":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"TerritoryAttachment OR CanalAttachment"
,"count":"Attachment option name"
}
,"info":[
"Designates the attachment option to be changed by territoryProperty"
,"Defaults to TerritoryAttachment if missing."
,"Requires 'territoryProperty' and 'territories' option to be set."
]
,"links":[
"TerritoryAttachment"
,"CanalAttachment"
,"territoryProperty"
,"territories"
]
}

,"territories":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list of territories"}
,"info":[
"Requires 'territoryProperty' and 'territoryAttachmentName' option to be set."
,"All territories in list will be affected."
]
,"links":[
"territoryProperty"
,"territoryAttachmentName"
]
}

,"unitProperty":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"attachment option name"
,"count":"equivalent to the attachment option count"
}
,"info":[
"Requires unitType option to be set."
,"unitProperty changes are done for ALL players who use that unitType, regardless of the player specified in the trigger."
,"In order to have a unitType+unitProperty change only affect certain players and not others, you need to make a new unit type for those players (ie: rename the unit for those players only)."
,"Something to note is that &lt;option name='artillery' value='true'/> AND &lt;option name='artillerySupportable' value='true'/> AND &lt;option name='unitSupportCount' value='1'/> are all converted into a support attachment when the game starts, so adding or removing them as unit properties will do nothing (the bonusType for them is 'ArtyOld', and the supportAttachment name is 'supportAttachmentArtyOld&lt;nameofUnit>')"
]
,"example":[
"<attachment name='triggerAttachmentJapanese3_TokyoExpress' attachTo='Japanese' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentJapanese1a:conditionAttachmentJapanese1b'/>"
,"\n\t<option name='unitType' value='jp_destroyer'/>"
,"\n\t<option name='unitProperty' value='transportCapacity' count='2'/>"
,"\n\t<option name='unitProperty' value='isCombatTransport' count='true'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
,"links":[
"unitType"
]
}

,"unitAttachmentName":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"UnitAttachment OR UnitSupportAttachment"}
,"params":{"count":"Attachment option"}
,"info":[
"Defaults to UnitAttachment if missing."
]
,"example":[
"<attachment name='triggerAttachmentAmericanAIHelicopter4CM' attachTo='Americans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentAmericanAIPlayer'/>"
,"\n\t<option name='unitType' value='helicopter'/>"
,"\n\t<option name='unitAttachmentName' value='UnitAttachment' count='unitAttachment'/>"
,"\n\t<option name='unitProperty' value='movement' count='4'/>"
,"\n\t<option name='when' value='before:americanCombatMove'/>"
,"\n</attachment>"
]
,"links":[
"unitAttachment"
,"supportAttachment"
]
}

,"unitType":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list of units"}
,"info":[
"Each unit in the list will be affected by the change."
]
,"example":[
"<attachment name='triggerAttachmentJapanese3_TokyoExpress' attachTo='Japanese' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentJapanese1a:conditionAttachmentJapanese1b'/>"
,"\n\t<option name='unitType' value='jp_destroyer'/>"
,"\n\t<option name='unitProperty' value='transportCapacity' count='2'/>"
,"\n\t<option name='unitProperty' value='isCombatTransport' count='true'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
,"links":[
"unitAttachmentName"
,"unitProperty"
]
}

,"playerProperty":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"attachment option name"
,"count":"equivalent to the attachment option count"
}
,"info":[
"Applies to attachTo player unless 'players' option is set."
]
,"example":[
"<attachment name='triggerAttachmentChinese4_ChineseOverrunTheirBorders' attachTo='Chinese' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentChinese4'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n\t<option name='players' value='Chinese'/>"
,"\n\t<option name='playerAttachmentName' value='RulesAttachment' count='rulesAttachment'/>"
,"\n\t<option name='playerProperty' value='movementRestrictionTerritories' count='-reset-'/>"
,"\n\t<option name='playerProperty' value='movementRestrictionType' count='disallowed'/>"
,"\n\t<option name='playerProperty' value='productionPerXTerritories' count='-reset-3:infantry'/>"
,"\n\t<option name='playerProperty' value='productionPerXTerritories' count='10:transport'/>"
,"\n\t<option name='playerProperty' value='placementAnySeaZone' count='true'/>"
,"\n</attachment>"
]
,"links":[
"players"
]
}

,"playerAttachmentName":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"attachment type"
,"count":"attachment name"
}
,"info":[
"value: May be; PlayerAttachment, TriggerAttachment, RulesAttachment, TechAttachment, PoliticalActionAttachment, UserActionAttachment."
,"Defaults to PlayerAttachment if missing."
]
,"example":[
"<attachment name='triggerAttachmentChinese4_ChineseOverrunTheirBorders' attachTo='Chinese' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentChinese4'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n\t<option name='players' value='Chinese'/>"
,"\n\t<option name='playerAttachmentName' value='RulesAttachment' count='rulesAttachment'/>"
,"\n\t<option name='playerProperty' value='movementRestrictionTerritories' count='-reset-'/>"
,"\n\t<option name='playerProperty' value='movementRestrictionType' count='disallowed'/>"
,"\n\t<option name='playerProperty' value='productionPerXTerritories' count='-reset-3:infantry'/>"
,"\n\t<option name='playerProperty' value='productionPerXTerritories' count='10:transport'/>"
,"\n\t<option name='playerProperty' value='placementAnySeaZone' count='true'/>"
,"\n</attachment>"
]
,"links":[
"attachmentList"
]
}

,"changeOwnership":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list, Format: 'territoryName:oldOwner:newOwner:booleanCaptured?'"}
,"info":[
"This will change the ownership of the territory."
,"booleanCaptured?: If true, then validation checks for a captured territory are done.<br>This would include things like factories destroyed on capture etc."
,"territoryName can be 'all', and oldOwner can be 'any'."
,"May have multiple instances."
]
,"example":[
"<attachment name='changeOwnershipSouthFrance' attachTo='Germans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='changeOwnership' value='South France:Germans:VichyFrench:false'/>"
,"\n</attachment>"
]
}

,"relationshipChange trigger":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list, Format: 'player1:player2:oldRelation:newRelation'"}
,"info":[
"oldRelation may be 'any', 'anyWar', 'anyNeutral', 'anyAllied', or a custom relationshipType."
,"You may enter multiple relationshipChanges in the trigger and it will perform every change in the trigger which is valid."
,"Note: There is a politicalActionAttachment relationshipChange option as well."
]
,"example":[
"<attachment name='triggerAttachmentRussiansWarJapanese' attachTo='Russians' javaClass='TriggerAttachment' type='player'>"
,"\n\t <option name='conditions' value='conditionAttachmentRussiansNeutralJapanTurn5plus'/>"
,"\n\t <option name='relationshipChange' value='Russians:Japanese:anyNeutral:War'/>"
,"\n\t <option name='notification' value='RUSSIANS_AT_WAR_WITH_JAPAN'/>"
,"\n\t <option name='when' value='before:russianPolitics'/>"
,"\n</attachment>"
]
,"links":[
"relationshipChange politics"
]
}

,"support":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"Name of support attachment"}
,"info":[
"Adds attachTo player to the list of players a supportAttachment supports."
,"The 'players' option may modify which players get the tech."
,"Prefix with '-' to remove player from the support attachment."
]
,"example":[
"<attachment name='triggerAttachmentGermansReinforcedHulls' attachTo='Germans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentGermansReinforcedHulls'/>"
,"\n\t<option name='support' value='supportAttachmentSubmarineReinforcedHulls'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
,"links":[
"players"
,"supportAttachment"
]
}

,"productionRule":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon separated pair, Format: 'productionFrontier:productionRule'"}
,"info":[
"Adds or removes the productionRule at beginning of the purchase phase."
,"Prefix with '-' to remove the productionRule."
,"Note: There is a productionRule element under production."
]
,"example":[
"<attachment name='triggerAttachmentGermansParatroopersCanProduce' attachTo='Germans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentGermansParatroopers'/>"
,"\n\t<option name='productionRule' value='Germans_production:buyAir_Transport'/>"
,"\n</attachment>"
]
,"links":[
"productionRule rule"
,"productionFrontier"
]
}

,"frontier":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"production frontier name"}
,"info":[
"The player's production frontier change to the one in 'value', at beginning of the purchase phase."
,"Does not add to the current list, is a new list completely."
]
,"example":[
"<attachment name='triggerAttachmentChinese2a_BurmaRoadOpen' attachTo='Chinese' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='objectiveAttachmentChinese2_BurmaRoad'/>"
,"\n\t<option name='frontier' value='Chinese_BurmaRoad_production'/>"
,"\n</attachment>"
]
,"links":[
"productionFrontier"
]
}

,"availableTech":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list, Format:category:tecnologies"}
,"info":[
"'category'= Any category in playerTech."
,"'tecnologies' A list of technologies to add to the category."
,"If prefixed with '-' then it will remove the tech from that category."
,"If the player already has the tech, nothing will change."
]
,"example":[
"<attachment name='triggerAttachmentGermansSuperSubs1_NewSubmarineTech' attachTo='Germans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentGermansSuperSubs'/>"
,"\n\t<option name='availableTech' value='Submarine Technology:reinforcedHulls:wolfPackTactics'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
,"links":[
"category"
,"playerTech"
]
}

,"tech option":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list of technologies"}
,"info":[
"All technologies in the list will be given to the attachTo player at end of tech activation phase."
,"The 'players' option may modify which players get the tech."
,"'tech' is also a step delegate."
,"Note: An element named tech exists within playerTech/category see 'tech research'."
]
,"example":[
"<attachment name='triggerAttachmentGermans3_SuperSubs' attachTo='Germans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentGermans1'/>"
,"\n\t<option name='tech' value='superSub'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
,"links":[
"players"
,"tech research"
,"tech delegate"
]
}

,"purchase option":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"A colon delimited list of units"
,"count":"integer"
}
,"info":[
"Add 'count' number of units in list to 'purchased units' at beginning of purchase phase."
,"'purchase' will be affected by 'each' in a condition statement."
]
,"example":[
"<attachment name='triggerAttachmentItalians2_NorthAfrica' attachTo='Italians' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentItalians1'/>"
,"\n\t<option name='purchase' value='cruiser' count='1'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
}

,"removeUnits":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{
"value":"A colon delimited list, Format: 'territory:units'"
,"count":"integer"
}
,"info":[
"Use to remove 'count' number of units from the territories, at the beginning of the combat move phase."
,"Both territory and units may be set to 'all'."
,"'removeUnits' will be affected by 'each' in a condition statement."
]
,"example":[
"<attachment name='triggerAttachment_Brittonic_Develop_Trebuchet' attachTo='Brittonic' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachment-Brittonic-Develop-Trebuchet'/>"
,"\n\t<option name='when' value='after:BrittonicPlace'/>"
,"\n\t<option name='productionRule' value='production_Brittonic:buyTrebuchet'/>"
,"\n\t<option name='productionRule' value='production_Brittonic_Combat:buyTrebuchet'/>"
,"\n\t<option name='productionRule' value='production_Brittonic_Combat:-buyBallista'/>"
,"\n\t<option name='productionRule' value='production_Brittonic:buyDevelop-Cannon'/>"
,"\n\t<option name='productionRule' value='production_Brittonic:-buyDevelop-Trebuchet'/>"
,"\n\t<option name='removeUnits' value='all:Develop-Trebuchet' count='1'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
}

,"placement":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon delimited list, Format: 'territory:units:count'"}
,"info":[
"Units are placed at beginning of combat movement phase."
,"'placement' will be affected by 'each' in a condition statement."
,"Count is optional and will default to 1."
]
,"example":[
"<attachment name='triggerAttachmentJapanese5_ForTheEmperor' attachTo='Japanese' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentJapanese3'/>"
,"\n\t<option name='placement' value='61 Sea Zone:midget_submarine:2'/>"
,"\n\t<option name='placement' value='62 Sea Zone:submarine:destroyer:1'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n</attachment>"
]
,"links":[
"conditions"
,"uses"
]
}

,"resourceCount":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"Any resource in resourceList"}
,"info":[
"Describes amount of resouce to be give if conditions are true."
,"Resource given is described in resource option."
]
,"example":[
"<attachment name='triggerAttachmentAmericans4_JapaneseCapitalShipsSunk' attachTo='Americans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentJapaneseCarriers:conditionAttachmentJapaneseBattleships'/>"
,"\n\t<option name='conditionType' value='AND'/>"
,"\n\t<option name='invert' value='true'/>"
,"\n\t<option name='resource' value='PUs'/>"
,"\n\t<option name='resourceCount' value='4'/>"
,"\n</attachment>"
]
,"links":[
"resourceList"
,"resource option"
]
}

,"resource option":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"Any resource in resourceList"}
,"info":[
"Describes resouce to be give if conditions are true."
,"Amount given is resourceCount."
]
,"example":[
"<attachment name='triggerAttachmentAmericans4_JapaneseCapitalShipsSunk' attachTo='Americans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentJapaneseCarriers:conditionAttachmentJapaneseBattleships'/>"
,"\n\t<option name='conditionType' value='AND'/>"
,"\n\t<option name='invert' value='true'/>"
,"\n\t<option name='resource' value='PUs'/>"
,"\n\t<option name='resourceCount' value='4'/>"
,"\n</attachment>"
]
,"links":[
"resourceList"
,"resourceCount"
]
}

,"notification":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A key to an item in notifications.properties"}
,"info":[
"Causes a popup window with the message from notifications.properties."
,"May be used to play a sound as well. notifications will use the notification value + '_sounds' for the key in notifications.properties file, and will then use 'notification_' + the notification.properties value as the new key to look for in the sounds.properties file."
]
,"example":[
"<attachment name='triggerItalyTurn1CombatMoveNotification' attachTo='Italians' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentItalianTurn1'/>"
,"\n\t<option name='when' value='before:italianCombatMove'/>"
,"\n\t<option name='notification' value='ITALY_TURN1_BEFORE_CM'/>"
,"\n</attachment>"
]
,"links":[
"notifications.properties"
,"sounds.properties"
]
}

,"Property Files":{
"desc":"List of property files"
,"info":[
"'Property Files' is not an element within the XML, it is just a reference list."
,"These files may be found in the maps directory for any given map."
,"None are required unless referenced in the XML."
]
,"chiluns":"Files"
}

,"actionstext.properties":{
"parent":"Property Files"
,"type":"file reference"
,"desc":"List of action remarks"
,"info":[
"The file consists of keys (on the left) and values (on the right) separated by '='"
,"The values are in HTML format."
,"The actionstext.properties file is located in the maps subdirectory."
,"ie: .../downloadedMaps/iron_war_europe/map/actionstext.properties"
,"or (zipped) .../downloadedMaps/iron_war_europe-master/map/actionstext.properties"
]
,"example":[
"Germany_Slovakia_20_PUs.BUTTON=Slovakia"
,"\nGermany_Slovakia_20_PUs.DESCRIPTION=<- Supply 20 PUs to the military buildup in Slovakia."
,"\nGermany_Slovakia_20_PUs.NOTIFICATION_SUCCESS=20 PUs spent on Slovakia."
,"\nGermany_Slovakia_20_PUs.OTHER_NOTIFICATION_SUCCESS=Germany supplied military aid to Slovakia."
,"\nGermany_Bulgaria_20_PUs.BUTTON=Bulgaria"
,"\nGermany_Bulgaria_20_PUs.DESCRIPTION=<- Supply 20 PUs to the military buildup in Bulgaria."
,"\nGermany_Bulgaria_20_PUs.NOTIFICATION_SUCCESS=20 PUs spent on Bulgaria."
,"\nGermany_Bulgaria_20_PUs.OTHER_NOTIFICATION_SUCCESS=Germany supplied military aid to Bulgaria."
,"\nGermany_Croatia_20_PUs.BUTTON=Croatia"
,"\nGermany_Croatia_20_PUs.DESCRIPTION=<- Supply 20 PUs to the military buildup in Croatia."
,"\nGermany_Croatia_20_PUs.NOTIFICATION_SUCCESS=20 PUs spent on Croatia."
,"\nGermany_Croatia_20_PUs.OTHER_NOTIFICATION_SUCCESS=Germany supplied military aid to Croatia."
,"\nGermany_Iraq_25_PUs.BUTTON=Iraq"
,"\nGermany_Iraq_25_PUs.DESCRIPTION=<- Supply 25 PUs to the military buildup in Iraq."
,"\nGermany_Iraq_25_PUs.NOTIFICATION_SUCCESS=25 PUs spent on Iraq."
,"\nGermany_Iraq_25_PUs.OTHER_NOTIFICATION_SUCCESS=Germany supplied military aid to Iraq."
,"\nGermany_Hungary_25_PUs.BUTTON=Hungary"
,"\n..."
]
,"links":[
"text action"
]
}

,"politicstext.properties":{
"parent":"Property Files"
,"type":"file reference"
,"desc":"List of political remarks"
,"info":[
"The file consists of keys (on the left) and values (on the right) separated by '='"
,"The values are in HTML format."
,"The politicstext.properties file is located in the maps subdirectory."
,"ie: .../downloadedMaps/napoleonic_empires/map/politicstext.properties"
,"or (zipped) .../downloadedMaps/napoleonic_empires-master/map/politicstext.properties"
]
,"example":[
"\nFrance_War_France.BUTTON=Declare War!"
,"\nFrance_War_France.DESCRIPTION=Declare War on France."
,"\nFrance_War_France.NOTIFICATION_SUCCESS=You have declared War on France!"
,"\nFrance_War_France.OTHER_NOTIFICATION_SUCCESS=France has declared War on you!"
,"\nFrance_War_France.NOTIFICATION_FAILURE=NONE"
,"\nFrance_War_France.OTHER_NOTIFICATION_FAILURE=NONE"
,"\nFrance_War_France.ACCEPT_QUESTION=NONE"
,"\n"
,"\nFrance_War_UnitedKingdom.BUTTON=Declare War!"
,"\nFrance_War_UnitedKingdom.DESCRIPTION=Declare War on UnitedKingdom."
,"\nFrance_War_UnitedKingdom.NOTIFICATION_SUCCESS=You have declared War on UnitedKingdom!"
,"\nFrance_War_UnitedKingdom.OTHER_NOTIFICATION_SUCCESS=France has declared War on you!"
,"\nFrance_War_UnitedKingdom.NOTIFICATION_FAILURE=NONE"
,"\nFrance_War_UnitedKingdom.OTHER_NOTIFICATION_FAILURE=NONE"
,"\nFrance_War_UnitedKingdom.ACCEPT_QUESTION=NONE"
,"\n..."
]
,"links":["text political"]
}

,"notifications.properties":{
"parent":"Property Files"
,"type":"file reference"
,"desc":"List of notifications"
,"info":[
"The file consists of keys (on the left) and values (on the right) separated by '='"
,"The values are in HTML format."
,"The notifications.properties file is located in the maps subdirectory."
,"ie: .../downloadedMaps/age_of_tribes/map/notifications.properties"
,"or (zipped) .../downloadedMaps/age_of_tribes-master/map/notifications.properties"
]
,"example":[
"Russians_War_European_Axis=<body>Russia has joined the Allies, and declared war on the European Axis!</body>"
,"\nAmericans_War_Axis=<body>America has joined the Allies, and declared war on the Axis!</body>"
,"\nAxis_Win_Original=<body>The Axis achieve victory by controlling 14 VCs and keeping control of one of their own capitals!</body>"
,"\nAxis_Win=<body>The Axis achieve victory by controlling 8 Europe VCs or 6 Pacific VCs and keeping control of one of their own capitals!</body>"
,"\nAllies_Win=<body>The Allies achieve victory by controlling Rome, Berlin, and Japan and keeping control of one of their own capitals!</body>"
,"\n..."
]
,"links":[
"victory"
,"notification"
]
}

,"sounds.properties":{
"parent":"Property Files"
,"type":"file reference"
,"desc":"List of sounds"
,"info":[
"The file consists of keys (on the left) and mp3 filenames (on the right) separated by '='"
,"The mp3 files may be the default sounds or custom ones in the sounds subdirectory."
,"The sounds.properties file is located in the maps subdirectory."
,"ie: .../downloadedMaps/age_of_tribes/map/sounds.properties"
,"or (zipped) .../downloadedMaps/age_of_tribes-master/map/sounds.properties"
]
,"example":[
"game_start=misc/game_start/game_start_02_serious_epic_theme.mp3"
,"\nrequired_your_turn_series_Germany=ww2/required_your_turn_series_Germans/Germans_Anthem_Intro.mp3"
,"\nrequired_your_turn_series_VichyFrance=ww2/required_your_turn_series_Germans/Germans_Anthem_Intro.mp3"
,"\nrequired_your_turn_series_DanubeAxis=ww2/required_your_turn_series_Germans/Germans_Anthem_Intro.mp3"
,"\nrequired_your_turn_series_Finland=ww2/required_your_turn_series_Germans/Germans_Anthem_Intro.mp3"
,"\nrequired_your_turn_series_Russia=ww2/required_your_turn_series_Russians/Russians_Soviet_Anthem_Intro.mp3"
,"\n..."
]
,"links":[
"victory"
,"notification"
]
}

,"victory":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A key to an item in notifications.properties"}
,"info":[
"Displays the notifications when conditions are true."
,"May be used to play sounds as well, it will use value + '_sounds' as the key in notifications.properties file, and then will use 'defeat_' or 'victory_' + the notifications.properties value as the new key to look for in the sounds.properties file."
]
,"example":[
"<attachment name='triggerAttachmentAxisVictory1_CapitalControl' attachTo='Germans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentAxisVictory1'/>"
,"\n\t<option name='victory' value='AXIS_VICTORY'/>"
,"\n\t<option name='players' value='Germans:Italians:Japanese'/>"
,"\n</attachment>"
]
,"links":[
"notifications.properties"
,"sounds.properties"
]
}

,"when":{
"parent":"triggerAttachment"
,"type":"option"
,"desc":"Trigger option"
,"params":{"value":"A colon separated pair, Format: before/after:name-of-step"}
,"info":[
"Describes when the trigger should fire, if left out the trigger will fire at its default time."
,"May be set multiple times if you want a trigger to fire in multiple spots."
,"If your triggers are displaying odd behavior, make sure 'when' is set, complex triggers can experience unexpected behavior if 'when' is not set."
]
,"example":[
"<attachment name='triggerItalyTurn1CombatMoveNotification' attachTo='Italians' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentItalianTurn1'/>"
,"\n\t<option name='when' value='before:italianCombatMove'/>"
,"\n\t<option name='notification' value='ITALY_TURN1_BEFORE_CM'/>"
,"\n</attachment>"
]
}

,"userActionAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for actions"
,"params":{
"attachTo":"Any player in playerList"
,"type":"player"
,"javaClass":"userActionAttachment"
}
,"example":"userActionAttachment"
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.userActionAttachment'"
]
}

,"activateTrigger":{
"parents":["userActionAttachment","triggerAttachment"]
,"desc":"Attachment option"
,"params":{
"triggerName":"The name of the trigger to fire"
,"numberOfTimes":"The number of times to fire that trigger"
,"useUses":"Makes sure the firing uses up a 'use' at the end of this round"
,"testConditions":"Test the trigger before firing"
,"testChance":"Test the trigger before firing"
}
,"info":[
"The above parameters are combined into one value attribute with the format: triggerName:numberOfTimes:useUses:testUses:testConditions:testChance"
,"activateTrigger will be affected by each in a condition statement."
,"It is probably not a good idea to test the trigger before firing, as it will confuse the user.<br>Instead, put all the conditions you want into the condition for the userActionAttachment."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"attemptsPerTurn":{
"parents":["userActionAttachment"]
,"desc":"Attachment option"
,"params":{"value":"integer, Defaults to 1 if missing."}
,"info":[
"The number of times this action can be attempted per round."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"actionAccept":{
"parents":["userActionAttachment","politicalActionAttachment"]
,"desc":"Attachment option"
,"params":{"value":"A colon delimited list of players"}
,"info":[
"All players in list must accept the action before it takes effect."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"text action":{
"parent":"userActionAttachment"
,"type":"option"
,"desc":"User action option"
,"params":{"value":"string"}
,"info":[
"A KEY referring to actionstext.properties to indicate the texts used for regarding this action."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
,"actionstext.properties"
]
}

,"text political":{
"parent":"politicalActionAttachment"
,"type":"option"
,"desc":"Political attachment option"
,"params":{"value":"string"}
,"info":[
"A KEY referring to politicstext.properties to indicate the texts used for regarding this action."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
,"politicstext.properties"
]
}

,"costPU":{
"parents":["userActionAttachment","politicalActionAttachment"]
,"desc":"Attachment option"
,"params":{"value":"integer, Defaults to zero if missing."}
,"params":{"value":"true / false"}
,"info":[
"Amount of PU charged to attempt this action."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"chanceDecrementOnSuccess":{
"parents":["userActionAttachment","politicalActionAttachment","triggerAttachment"]
,"desc":"Attachment option"
,"params":{"value":"integer, Defaults to zero if missing."}
,"info":[
"Decreases subsequent roll by 'value' for each successful roll."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"chanceIncrementOnFailure":{
"parents":["userActionAttachment","politicalActionAttachment","triggerAttachment"]
,"desc":"Attachment option"
,"params":{"value":"integer, Defaults to zero if missing."}
,"info":[
"Increases subsequent roll by 'value' for each failed roll."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"chance":{
"parents":["userActionAttachment","politicalActionAttachment","triggerAttachment"]
,"desc":"Attachment option"
,"params":{"value":"A colon separated pair, consisting of two integers"}
,"info":[
"First integer is the required 'hit'."
,"Second integer is the dice sides for the roll."
,"ie; 1:6 A 1 is requires on a 6 sided die."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
]
}

,"invert":{
"parents":[
"userActionAttachment"
,"politicalActionAttachment"
,"conditionAttachment"
,"objectiveAttachment"
,"triggerAttachment"
]
,"desc":"Attachment option"
,"params":{"value":"true / false, Default to false if missing."}
,"info":[
"If true, the condition will be reversed (does not reverse the effect)."
,"This reverses the boolean result of this entire objectiveAttachment/conditionAttachment, and is considered a logical negation."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
,"conditions"
]
}

,"conditionType":{
"parents":[
"userActionAttachment"
,"politicalActionAttachment"
,"conditionAttachment"
,"objectiveAttachment"
,"triggerAttachment"
]
,"desc":"Attachment option"
,"params":{"value":"AND, OR, XOR, y, y-z. Defaults to AND if missing."}
,"info":[
"Defines the relationship the conditions must have if there are more than one condition or rules attachment in the trigger."
,"<b>AND</b> means all conditions must be true."
,"<b>OR</b> means just one condition must be true."
,"<b>XOR</b> means that only one condition must be true while all others must be false."
,"'<b>y</b>' is an exact number of conditions"
,"'<b>y-z</b>' is a range of numbers."
,"This option will overwrite prior occurences of itself."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
,"conditions"
]
}

,"conditions":{
"parents":[
"userActionAttachment"
,"politicalActionAttachment"
,"conditionAttachment"
,"objectiveAttachment"
,"triggerAttachment"
]
,"desc":"Attachment option"
,"params":{"value":"A colon delimited list of conditions"}
,"info":[
"Attachment only performed if conditions in list are true."
,"Dependant on conditionType."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":"userActionAttachment"
,"links":[
"rulesAttachment"
,"triggerAttachment"
,"conditionType"
]
}

,"politicalActionAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for politics"
,"params":{
"attachTo":"Any player in playerList"
,"type":"player"
,"javaClass":"politicalActionAttachment"
}
,"example":"politicalActionAttachment"
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.politicalActionAttachment'"
]
,"chiluns":"Options"
}

,"relationshipChange politics":{
"parent":"politicalActionAttachment"
,"type":"option"
,"desc":"Political action option"
,"params":{"value":"A colon delimited list, Format: player1:plater2:relationship"}
,"info":[
"The relationshipType after the action is succesful between player1 and player2."
,"You may have multiple relationshipchanges per attachment."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
,"Note: There is a triggerAttachment relationshipChange option as well."
]
,"example":"politicalActionAttachment"
,"links":[
"relationshipTypes"
,"relationship type"
,"relationshipChange trigger"
]
}

,"rulesAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for rule restrictions"
,"params":{
"attachTo":"Any player in playerList"
,"type":"player"
,"javaClass":"rulesAttachment"
}
,"info":["conditionAttachment and objectiveAttachment also use the rulesAttachment javaClass, links in related (below)."]
,"context":"rulesAttachment"
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.rulesAttachment'"
]
,"chiluns":"Options"
,"links":[
"conditionAttachment"
,"objectiveAttachment"
]
}

,"placementInCapitalRestricted":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"Player may only place units in their capital."
]
,"context":"rulesAttachment"
}

,"negateDominatingFirstRoundAttack":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"This player is not affected by the dominatingFirstRoundAttack."
]
,"context":"rulesAttachment"
,"links":[
"dominatingFirstRoundAttack"
]
}

,"dominatingFirstRoundAttack":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"On the very first round of the game, causes all enemies defend on a '1' instead of their normal defense."
,"May be overridden by negateDominatingFirstRoundAttack."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
,"links":[
"negateDominatingFirstRoundAttack"
]
}

,"unlimitedProduction":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"Will turn off warnings about purchasing more units than you can place."
,"Does not actually do anything to the game."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
}

,"maxPlacePerTerritory":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"integer"}
,"info":[
"Maximum units placeable per turn per territory."
,"Can override factory rules and infinite placement rules."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
,"links":[
"placementPerTerritory"
]
}

,"placementPerTerritory":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"integer"}
,"info":[
"Restricts placement in all territories."
,"Placement permitted in a territory that has less than <b>value</b> number of units."
,"A value greater than Zero is required to be able to produce infinite units."
,"Or infinite up to maxPlacePerTerritory, which you can set too."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
,"links":[
"maxPlacePerTerritory"
,""
]
}

,"placementCapturedTerritory":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"May place in a territory captured this turn."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
}

,"placementAnySeaZone":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"May place in any SEA territory beside a LAND territory owned at the beginning of the turn."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
}

,"placementAnyTerritory":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"true / false"}
,"info":[
"May place in any LAND territory owned at the beginning of the turn."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
}

,"productionPerXTerritories":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"A unit name"}
,"params":{"count":"integer"}
,"info":[
"Gives units to a player as part of NoPuPurchase delegate."
,"<b>count</b> = Number of territories needed to get 1 of the unit."
,"If the name of the unit is missing, it defaults to 'infantry'."
,"You can have multiple instances of productionPerXTerritories."
,"Only applies to attachTo player."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"context":"rulesAttachment"
,"links":[
"NoPuPurchase"
]
}

,"movementRestrictionTerritories":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"A colon delimited list of territories"}
,"info":[
"A list of territories that the player either can not move into, or can not move outside of."
,"Depends on movementRestrictionType."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
,"links":[
"movementRestrictionType"
]
}

,"movementRestrictionType":{
"parent":"rulesAttachment"
,"type":"option"
,"desc":"Rule restriction"
,"params":{"value":"'allowed' or 'disallowed', defaults to null"}
,"info":[
"Affects the list movementRestrictionTerritories."
,"Only applies to attachTo player."
]
,"context":"rulesAttachment"
,"links":[
"movementRestrictionTerritories"
]
}

,"Total Unit Value TUV":{
"parent":"Terms"
,"type":"definition"
,"desc":"Description of term"
,"info":[
"In TripleA, there is a TUV column in the statistics tab. Note that the TUV includes non-combat units like factories. It does not include PU's (IPC's) in hand."
,"When designing your own scenarios, it can be useful to look at the TUV. Usually, the TUV should be fairly close for each side."
]
}

,"objectiveAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for objectives"
,"params":{
"attachTo":"Any player in playerList"
,"type":"player"
,"javaClass":"RulesAttachment"
}
,"info":[
"All options below have an 'AND' relationship with each other."
,"objectiveAttachments must be BEFORE any triggers in the XML."
]
,"example":[
"<attachment name='objectiveAttachmentGermans1_EasternEurope' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='alliedOwnershipTerritories' value='East Balkans:Eastern Europe:Ukraine S.S.R.:Belorussia:West Russia:Norway:Karelia S.S.R.:Archangel:Caucus' count='7'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.RulesAttachment'"
]
}

,"conditionAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for conditions"
,"params":{
"attachTo":"Any player in playerList"
,"type":"player"
,"javaClass":"RulesAttachment"
}
,"info":[
"All options below have an 'AND' relationship with each other."
,"conditionAttachments must be BEFORE any triggers in the XML."
]
,"example":[
"<attachment name='conditionAttachmentGermansShipyardsInvert' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='techs' value='shipyards' count='1'/>"
,"\n\t<option name='invert' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.RulesAttachment'"
]
}

,"players":{
"parents":["conditionAttachment","objectiveAttachment","triggerAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of players"
}
,"info":[
"Effectivly substitutes the players in the list for the attachTo player in the test conditions."
,"This option may be used with any conditionAttachment or objectiveAttachment where value is a territory list."
,"In the following example if either the Germans or Italians own Yugoslavia then the Germans get the bonus."
,"When used with directOwnershipTerritories/PresenceTerritories it allows you to specify who must own the selected territories in an OR relationship."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='GermansYugoslaviaBonus' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='players' value='Germans:Italians'/>"
,"\n\t<option name='directOwnershipTerritories' value='Yugoslavia'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"directOwnershipTerritories"
,"PresenceTerritories"
]
}

,"unitPresence":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of units OR 'ANY'"
,"count":"An integer, Default is 1"
}
,"info":[
"Specify the units for presence and excluded territories."
,"If missing, then presence needs only 1 of any unit, and excluded needs to be completely devoid of units."
,"For an 'AND' relationship between the required units, put them in separately. For an 'OR' relationship, put them in on one line with a colon separating them."
,"May be used in conjunction with directPresenceTerritories, alliedPresenceTerritories, enemyPresenceTerritories, directExclusionTerritories, alliedExclusionTerritories, enemyExclusionTerritories, enemySurfaceExclusionTerritories"
,"If used with an exclusion, then the number of units of that type must be less than or equal the count. (Use count='0' if you want no units of that type in the territories) (can not use 'each' for count here)."
,"Multiple instances of this option may be used."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='conditionAttachmentJapaneseBattleships' attachTo='Japanese' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='directPresenceTerritories' value='map' count='1'/>"
,"\n\t<option name='unitPresence' value='battleship' count='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"directPresenceTerritories"
,"alliedPresenceTerritories"
,"enemyPresenceTerritories"
,"directExclusionTerritories"
,"alliedExclusionTerritories"
,"enemyExclusionTerritories"
,"enemySurfaceExclusionTerritories"
]
}

,"directExclusionTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater' OR 'all' (original + controlled) OR 'map' (all on map)"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: 'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansdirectExclusionTerritories' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='directExclusionTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"enemyPresenceTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater OR 'all' (original + controlled)' OR 'map (all on map)'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: 'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansenemyPresenceTerritoriess' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='enemyPresenceTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"alliedPresenceTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater OR 'all' (original + controlled)' OR 'map (all on map)'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: Does count both owned units and allied units.<br>'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansalliedPresenceTerritories' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='alliedPresenceTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"directPresenceTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater OR 'all' (original + controlled)' OR 'map (all on map)'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: 'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansdirectPresenceTerritories' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='directPresenceTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"enemySurfaceExclusionTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater OR 'all' (original + controlled)' OR 'map (all on map)'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: 'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansenemySurfaceExclusionTerritories' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='enemySurfaceExclusionTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"enemyExclusionTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater OR 'all' (original + controlled)' OR 'map (all on map)'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: 'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansenemyExclusionTerritories' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='enemyExclusionTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"alliedExclusionTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original' OR 'originalNoWater' OR 'controlled' OR 'controlledNoWater OR 'all' (original + controlled)' OR 'map (all on map)'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: Does NOT count owned units, it only counts allied units.<br>'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansalliedExclusionTerritories' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='alliedExclusionTerritories' value='controlled' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"alliedOwnershipTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original', 'originalNoWater', 'enemy'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: Counts both owned and allied territories.<br>'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansAllyCapture' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='2'/>"
,"\n\t<option name='alliedOwnershipTerritories' value='Norway:Eastern Europe:East Balkans:Ukraine S.S.R.:Belorussia' count='each'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"directOwnershipTerritories":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of territories OR 'original', 'originalNoWater', 'enemy'"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: Counts territories in owned and in the list.<br>'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansCaptureMin' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='directOwnershipTerritories' value='Norway:Eastern Europe:East Balkans:Ukraine S.S.R.:Belorussia' count='each'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"techs":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of technologies"
,"count":"An integer, Default is zero"
}
,"info":[
"<b>count</b>: Number of listed technologies held."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansTechsBonus' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='techs' value='shipyards:destroyerBombard' count='2'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"atWarPlayers":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"A colon delimited list of players"
,"count":"integer"
}
,"info":[
"<b>count</b>: Number of players in value list the attachTo player is at war with."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='AmericansatWarPlayers' attachTo='Americans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='atWarPlayers' value='Germans:Italians:Japanese' count='2'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"destroyedTUV":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{
"value":"currentRound OR allRounds"
,"count":"An integer OR 'ALL' OR 'each', Default is 'ALL'"
}
,"info":[
"<b>count</b>: An amount of TUV that the attached player must destroy<br>'each' will act as '1' for the purposes of being a condition, but will multiply the bonus."
,"This is not counting neutral (null) player, and is based on the cost for the defender to buy the units."
,"Be sure to check this condition only after the player's battle phase is completely over, since the data is only recorded after all battles are done."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansdestroyedTUV' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='1'/>"
,"\n\t<option name='destroyedTUV' value='currentRound' count='20'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Total Unit Value TUV"
]
}

,"battle":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{"value":"A colon delimited list, Format: 'attacker:defender:battleType:rounds:territory_list'"}
,"info":[
"Checks if there has been a battle in the territory."
,"attacker, defender and battleType may be 'any'."
,"Rounds may be 'currentRound'."
,"If territory_list is more than one territory, then if any of them are true, it will return true."
,"You may also have multiple instances."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='ManchuriaJapaneseBattle' attachTo='Japanese' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='battle' value='any:Japanese:any:2-3:Manchuria'/>"
,"\n\t..."
,"\n</attachment>"
,"\n<attachment name='RussiansJapaneseBattle' attachTo='Japanese' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='battle' value='Russians:Japanese:any:currentRound:Manchuria:Jehol:Chahar:Suiyuyan:Kansu'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"relationship option":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{"value":"A colon delimited list"}
,"info":[
"<b>value</b> Format: 'player1:player2:relationship:rounds'."
,"'rounds' is optional and defaults to -1, otherwise is minimum number of rounds relationship must have existed."
,"It will accept 'anyWar', 'anyNeutral' and 'anyAllied' for player1 or player2."
,"Note: There is a relationship element within relationshipInitialize (relationship type)."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='JapanChinaWarCondition' attachTo='Japan' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='relationship' value='Japan:China:War'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"relationship type"
]
}


,"gameProperty":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{"value":"string"}
,"info":[
"Can be set equal to the exact string of any boolean game property option, including custom made up ones."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansPlaceAnyTerr' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='gameProperty' value='Place in Any Territory'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"propertyList"
]
}

,"turns":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{"value":"A colon delimited list of turn numbers or ranges."}
,"info":[
"value example: '1:4:6-8:11-+' means turns 1,4,6,7,8,11,and all turns after 11)."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='GermansSpringBonus' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='5'/>"
,"\n\t<option name='turns' value='4,8,12,16,20,24,28,32'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"switch":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{"value":"true / false, Defaults to true if not set."}
,"info":[
"This is just a simple on/off switch, which gives map makers some memory function for their conditions."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='conditionAttachment_Americans_Aid_UK' attachTo='Americans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='switch' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"uses":{
"parents":["conditionAttachment","objectiveAttachment","triggerAttachment"]
,"desc":"Attachment option"
,"params":{"value":"integer, Defaults to infinity if not set"}
,"info":[
"The maximum number of times it should be awarded."
,"Only applies to objectiveValue, and does NOT determine if the conditions is true or false."
,"Triggers with 'uses' will use up a single 'use' every round that they are used."
,"A trigger that gives a player a tech, adds units to a territory, changes a relationship, and sends a notification to a player, will use up a one use, assuming those four actions were done in a single round (as determined by the endRound phase [EndRoundDelegate])."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='objectiveAttachmentGermans1_EasternEurope' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"objectiveValue"
]
}

,"objectiveValue":{
"parents":["conditionAttachment","objectiveAttachment"]
,"desc":"Attachment option"
,"params":{"value":"integer"}
,"info":[
"Number of PUs player gets on attaining objective."
,"May be limited by 'uses'."
,"This option will overwrite prior occurences of itself."
]
,"example":[
"<attachment name='objectiveAttachmentGermans1_EasternEurope' attachTo='Germans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='objectiveValue' value='4'/>"
,"\n\t<option name='uses' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"uses"
]
}

,"techAbilityAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for technologies"
,"params":{
"attachTo":"Any tech in 'technologies'"
,"type":"technology"
,"javaClass":"TechAbilityAttachment"
}
,"info":[
"These option come into effect once the attachTo tech is attained."
,"NOTE: Renamed technologies may not have a techAbilityAttachment. (See destroyersCanBombard)"
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='longRangeAir' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='movementBonus' value='1:fighter'/>"
,"\n\t<option name='movementBonus' value='1:jp_fighter'/>"
,"\n\t<option name='movementBonus' value='1:bomber'/>"
,"\n\t<option name='movementBonus' value='1:air_transport'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.techAbilityAttachment'"
]
,"chiluns":"Options"
,"links":[
"techAttachment"
,"technologies"
,"destroyersCanBombard"
]
}

,"bombingBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"Provides extra amount of damage to strategic bombing raids."
,"Amount is applied per unit, not per die."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='big_bombs' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='bombingBonus' value='5:bomber'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"defenseRollsBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"Sets how many extra rolls the unit gets on defense."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='fighter_upgrade' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='attackRollsBonus' value='1:fighter'/>"
,"\n\t<option name='defenseRollsBonus' value='1:fighter'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
,"attackRollsBonus"
]
}

,"attackRollsBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"Sets how many extra rolls the unit gets on attack."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='fighter_upgrade' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='attackRollsBonus' value='1:fighter'/>"
,"\n\t<option name='defenseRollsBonus' value='1:fighter'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
,"defenseRollsBonus"
]
}

,"airborneTargettedByAA":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon delimited list of unit names"}
,"info":[
"The list starts with the AA unit firing, the following units are those it may target."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"context":"airborne"
,"links":[
"-reset-"
,"paratroopers"
,"AirborneCombatMove"
,"airborneCapacity"
,"airborneTypes"
,"airborneForces"
,"airborneDistance"
,"airborneBases"
,"airborneTargettedByAA"
]
}

,"airborneBases":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon delimited list of unit names"}
,"info":[
"Defines which units are airborne base units."
,"Airborne movement must begin in territories with one of these units."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"context":"airborne"
,"links":[
"-reset-"
,"paratroopers"
,"AirborneCombatMove"
,"airborneCapacity"
,"airborneTypes"
,"airborneForces"
,"airborneDistance"
,"airborneBases"
,"airborneTargettedByAA"
]
}

,"airborneDistance":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range 0 to 100, Default is zero"}
,"info":[
"Defines the maximum distance for moving any airborne type unit."
,"Effects from multiple techs are added together."
]
,"context":"airborne"
,"links":[
"paratroopers"
,"AirborneCombatMove"
,"airborneCapacity"
,"airborneTypes"
,"airborneForces"
,"airborneDistance"
,"airborneBases"
,"airborneTargettedByAA"
]
}

,"airborneTypes":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon delimited list of units in the unitList"}
,"info":[
"Units in the list may use AirborneCombatMove."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"context":"airborne"
,"links":[
"-reset-"
,"paratroopers"
,"AirborneCombatMove"
,"airborneCapacity"
,"airborneTypes"
,"airborneForces"
,"airborneDistance"
,"airborneBases"
,"airborneTargettedByAA"
]
}

,"airborneCapacity":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"Sets the number of units that can be launched from the value unit."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"context":"airborne"
,"links":[
"-reset-"
,"paratroopers"
,"AirborneCombatMove"
,"airborneCapacity"
,"airborneTypes"
,"airborneForces"
,"airborneDistance"
,"airborneBases"
,"airborneTargettedByAA"
]
}

,"airborneForces":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"true / false"}
,"info":[
"Players with the attachTo tech may use the AirborneCombatMove."
]
,"context":"airborne"
,"links":[
"paratroopers"
,"AirborneCombatMove"
,"airborneCapacity"
,"airborneTypes"
,"airborneForces"
,"airborneDistance"
,"airborneBases"
,"airborneTargettedByAA"
]
}

,"unitAbilitiesGained":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon delimited list, beginning with a unit name then a list of abilities"}
,"info":[
"Unit gains abilities in the list."
,"Currently allows only canBlitz and canBombard."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='destroyerBombard' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='unitAbilitiesGained' value='destroyer:canBombard'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","canBlitz","canBombard","destroyerBombard"]
}

,"rocketNumberPerTerritory":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range 0 to 100, Default is zero"}
,"info":[
"Sets the maximum number of rocket rolls per territory."
,"Effects from multiple techs are added together."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='rocket' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='rocketDiceNumber' value='1:aaGun'/>"
,"\n\t<option name='rocketDistance' value='4'/>"
,"\n\t<option name='rocketNumberPerTerritory' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","rocket"]
}

,"rocketDistance":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range 0 to 100, Default is zero"}
,"info":[
"Sets the maximum distance rockets travel for the map."
,"Effects from multiple techs are added together."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='rocket' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='rocketDiceNumber' value='1:aaGun'/>"
,"\n\t<option name='rocketDistance' value='4'/>"
,"\n\t<option name='rocketNumberPerTerritory' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","rocket"]
}

,"rocketDiceNumber":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"Sets the number of rocket rolls for each rocket."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='rocket' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='rocketDiceNumber' value='1:aaGun'/>"
,"\n\t<option name='rocketDistance' value='4'/>"
,"\n\t<option name='rocketNumberPerTerritory' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","rocket"]
}

,"warBondDiceNumber":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range 0 to 100, Default is zero"}
,"info":[
"Sets how many dice get rolled for war bonds."
,"Effects from multiple techs are added together."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='warBonds' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='warBondDiceNumber' value='1'/>"
,"\n\t<option name='warBondDiceSides' value='6'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["warBonds"]
}

,"warBondDiceSides":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range 0 to 100, Default is -1"}
,"info":[
"Sets how large the dice are which are rolled to determine the war bonds bonus."
,"The default -1 may mean use diceSides setting, but was not confirmed 100%."
,"Effects from multiple techs are added together.<br>(seems incorrect as adding dice sides together reduces hit ratio, but could not find what actually happens)"

]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='warBonds' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='warBondDiceNumber' value='1'/>"
,"\n\t<option name='warBondDiceSides' value='6'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["warBonds","diceSides"]
}

,"repairDiscount":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range 0 to 100, Default is -1"}
,"info":[
"Sets the discount to repairing."
,"Effects from multiple techs are added together."
,"It is unclear why the default is outside the value range."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='shipyards' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='repairDiscount' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","shipyards"]
}

,"minimumTerritoryValueForProductionBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"integer in range -1 to 10000, Default is -1"}
,"info":[
"Sets the minimum value of a territory that a factory unit must be in to receive the production bonus."
,"If multiple techs apply, the lowest value is chosen."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='increasedFactoryProduction' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='productionBonus' value='2:factory'/>"
,"\n\t<option name='minimumTerritoryValueForProductionBonus' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","increasedFactoryProduction"]
}

,"productionBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"Modifies production of the unit."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='increasedFactoryProduction' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='productionBonus' value='2:factory'/>"
,"\n\t<option name='minimumTerritoryValueForProductionBonus' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-","increasedFactoryProduction"]
}

,"airDefenseBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"The amount modifies the interceptor defense strength."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='fighter_upgrade' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='airAttackBonus' value='1:fighter'/>"
,"\n\t<option name='airDefenseBonus' value='1:fighter'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-"]
}

,"airAttackBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"The amount modifies the escort attack strength."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='fighter_upgrade' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='airAttackBonus' value='1:fighter'/>"
,"\n\t<option name='airDefenseBonus' value='1:fighter'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"radarBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"The amount modifies the AA attack strength."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='radar_upgrade' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='radarBonus' value='1:aaGun'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-"]
}

,"attackBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"The amount modifies the unit attack strength."
,"Effects from multiple techs are added together."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='upgrade_lev_1' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='defenseBonus' value='1:tank'/>"
,"\n\t<option name='attackBonus' value='1:tank'/>"
,"\n\t<option name='movementBonus' value='1:tank'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-"]
}

,"defenseBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"The amount modifies the unit defense strength."
,"Effects from multiple techs are added together."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='upgrade_lev_1' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='defenseBonus' value='1:tank'/>"
,"\n\t<option name='attackBonus' value='1:tank'/>"
,"\n\t<option name='movementBonus' value='1:tank'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-"]
}

,"movementBonus":{
"parent":"techAbilityAttachment"
,"type":"option"
,"desc":"Tech ability option"
,"params":{"value":"A colon separated pair, consisting of an integer and a unit name"}
,"info":[
"The amount modifies the unit movement allowance."
,"Effects from multiple techs are added together."
]
,"example":[
"<attachment name='techAbilityAttachment' attachTo='upgrade_lev_1' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='defenseBonus' value='1:tank'/>"
,"\n\t<option name='attackBonus' value='1:tank'/>"
,"\n\t<option name='movementBonus' value='1:tank'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["-reset-"]
}

,"supportAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for unit support"
,"params":{
"name":"'supportAttachment' postfixed with a unique string"
,"attachTo":"Any unit in the unitList"
,"type":"unitType"
,"javaClass":"UnitSupportAttachment"
}
,"info":[
"All supportAttachments must have unique names."
,"The attachTo unit gives support to other units (in the unitType list)."
,"<b>unitType</b>:&nbsp; A colon delimited list of units to gain support.<br>If changing the properties of the same unit, then unitType should be the same as attachTo."
,"<b>faction</b>:&nbsp; Who may get the support: 'allied' or 'enemy'."
,"<b>side</b>:&nbsp; Side that gets support: 'offence' OR 'defence' OR 'offence:defence'."
,"<b>dice</b>:&nbsp; Determines if bonus type: 'strength' or 'roll' OR 'strength:roll'."
,"<b>bonus</b>:&nbsp; How much to add to strength or roll."
,"<b>number</b>:&nbsp; Quantity of units supported."
,"<b>bonusType</b>:&nbsp; The name of the bonus, any string. any bonus with the same name will not stack, any bonus with a different name will stack.<br>Use the string 'ArtyOld' if do not want your bonus to stack with normal artillery."
,"<b>players</b>:&nbsp; A colon delimited list of players who have this support at game start.<br>Remove option if no players start with this support.<br>Can be activated later by a trigger."
,"<b>impArtTech</b>:&nbsp; Does this support get doubled by the improvedArtillery technology: 'true' or 'false'."
]
,"context":[
"<attachment name='supportAttachmentRussiansArtillery1' attachTo='artillery' javaClass='UnitSupportAttachment' type='unitType'>"
,"\n\t<option name='unitType' value='infantry'/>"
,"\n\t<option name='faction' value='allied'/>"
,"\n\t<option name='side' value='offence'/>"
,"\n\t<option name='dice' value='strength'/>"
,"\n\t<option name='bonus' value='1'/>"
,"\n\t<option name='number' value='1'/>"
,"\n\t<option name='bonusType' value='ArtyOld'/>"
,"\n\t<option name='players' value='Germans:Italians'/>"
,"\n\t<option name='impArtTech' value='true'/>"
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.UnitSupportAttachment'"
]
}

,"relationshipTypeAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for relationships"
,"params":{
"attachTo":"Any relationshipType in relationshipTypes"
,"type":"relationship"
,"javaClass":"RelationshipTypeAttachment"
}
,"info":"Each relationshipTypeAttachment must have an archeType set to either: 'Allied', 'Neutral' Or 'War'."
,"context":[
"<attachment name='relationshipTypeAttachment' attachTo='War' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='war'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.RelationshipTypeAttachment'"
]
,"chiluns":"Option List"
,"links":[
"relationshipTypes"
]
}

,"rocketsCanFlyOver":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required, will default to true."
,"'true' means that rockets may fly over."
,"'false' means that rockets may not fly over."
]
,"example":["<option name='rocketsCanFlyOver' value='false'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='rocketsCanFlyOver' value='false'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"canMoveThroughCanals":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required, will default to true."
,"'default' means that archeType of allied lets you move through canals."
,"'true' means you may move through a canal owned by the other player."
]
,"example":["<option name='canMoveThroughCanals' value='false'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Neutrality' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='neutral'/>"
,"\n\t<option name='canMoveThroughCanals' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"canMoveIntoDuringCombatMove":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required, will default to true."
,"'false' means you may not move into any territories owned by the other player during combat move, and must wait for non-combat move."
]
,"example":["<option name='canMoveIntoDuringCombatMove' value='false'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='canMoveIntoDuringCombatMove' value='false'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"givesBackOriginalTerritories":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required, will default to false."
,"'true' means at the end of each politics phase, any territories originally belonging to the other player will revert to that players control."
]
,"example":["<option name='givesBackOriginalTerritories' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='givesBackOriginalTerritories' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"canTakeOverOwnedTerritory":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"'default' means that archeType of 'war' lets you take over territories."
,"If true, means you can take over territories of an ally."
,"This option is not required, will default to false."
]
,"example":["<option name='canTakeOverOwnedTerritory' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='canTakeOverOwnedTerritory' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"isDefaultWarPosition":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"Can only be applied to a relationship that is archetype 'War' and only 1 relationship can have it."
,"If true, any players that reach an alliance chaining relationship, will have their enemies who are not yet at war with, set to this relationship."
,"This option is not required, will default to false."
]
,"example":["<option name='isDefaultWarPosition' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='War' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='war'/>"
,"\n\t<option name='isDefaultWarPosition' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}


,"alliancesCanChainTogether":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required, will default to false."
,"Can only be applied to a relationship that is archetype 'Allied' and only 1 relationship can have it."
,"If true, any players that reach this relationship will share both allies and enemies."
]
,"example":["<option name='alliancesCanChainTogether' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='alliancesCanChainTogether' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"upkeepCost":{
"parent":"relationshipTypeAttachment"
,"desc":"Describes a cost to maintain a relationship"
,"type":"option"
,"desc":"Relationship option"
,"params":{
"value":"'default' or any integer or 'flat' or 'percentage' The last two require the 'count' parameter"
,"count":"Amout of 'flat' or 'percentage' cost (must be integer)"
}
,"info":[
"This option is not required, will default to zero (no relationship maintenance cost)."
,"Any cost is subtracted from PUs gained at end of turn."
]
,"example":["<option name='upkeepCost' value='2'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='upkeepCost' value='1'/> (COST = 1)"
,"\n\t\t OR"
,"\n\t<option name='upkeepCost' value='flat' count='1'/> (COST = 1)"
,"\n\t\t OR"
,"\n\t<option name='upkeepCost' value='percentage' count='9'/> (COST = 9% of PUs INCOME PER TURN)"
,"\n\t..."
,"\n</attachment>"
]
}

,"archeType":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"'Allied' OR 'Neutral' OR 'War'"}
,"info":[
"'option' is required for each relationshipType in the relationshipTypes List"
,"The 3 values above must be defined. You may define others"
,"The archeType determines the default behaviour of this relationshipType, it can be modified by setting other options."
,"Also the archeType determines the outcomes of isAllied, isNeutral and isWar query in the engine"
]
,"context":[
"<attachment name='relationshipTypeAttachment' attachTo='War' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='war'/>"
,"\n</attachment>"
,"\n<attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n</attachment>"
,"\n<attachment name='relationshipTypeAttachment' attachTo='Neutrality' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='neutral'/>"
,"\n</attachment>"
,"\n\n\t - - OPTIONAL RELATIONSHIPS - - \n"
,"\n<attachment name='relationshipTypeAttachment' attachTo='NAP' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='neutral'/>"
,"\n</attachment>"
,"\n<attachment name='relationshipTypeAttachment' attachTo='ColdWar' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='neutral'/>"
,"\n</attachment>"
]
,"links":[
"relationshipType"
,"relationshipTypes"
]
}


,"canMoveAirUnitsOverOwnedLand":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required"
,"'default' means that archeType of allied only lets you land units in the player's territories"
]
,"example":["<option name='canMoveAirUnitsOverOwnedLand' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='canMoveAirUnitsOverOwnedLand' value='default'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"canMoveLandUnitsOverOwnedLand":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{
"value":"true / false / default"}
,"info":[
"This option is not required"
,"'default' means that archeType of war and allied can move land units into, while neutral can not"
]
,"example":["<option name='canMoveLandUnitsOverOwnedLand' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='canMoveLandUnitsOverOwnedLand' value='default'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"canLandAirUnitsOnOwnedLand":{
"parent":"relationshipTypeAttachment"
,"type":"option"
,"desc":"Relationship option"
,"params":{"value":"true / false / default"}
,"info":[
"This option is not required"
,"'default' means that archeType of war and allied can move into, while neutral can not"
]
,"example":["<option name='canLandAirUnitsOnOwnedLand' value='true'/>"]
,"context":[
"attachment name='relationshipTypeAttachment' attachTo='Allied' javaClass='RelationshipTypeAttachment' type='relationship'>"
,"\n\t<option name='archeType' value='allied'/>"
,"\n\t<option name='canLandAirUnitsOnOwnedLand' value='default'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"techAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for technologies"
,"params":{
"attachTo":"Any player name in 'playerList'"
,"type":"player"
,"javaClass":"TechAttachment"
}
,"info":[
"Contains a list of technology opions available to a specific player."
,"<b>techCost</b>: is the cost of buying tech rolls for this player, defaults to 5."
,"<b>name</b>: Any 'techname' within 'technologies'."
,"<b>value</b>:'true' or 'false', Defaults to false if not present."
,"'true' means the player starts with the tech."
,"If you are using custom technologies, then ALL players need a tech attachment, even if it is an empty tech attachment, otherwise there will be errors"
,"The options listed below are not required, they only determine if a country starts with a tech or not. All default to False."
,"Currently you are not yet allowed to set custom techs at the start of the game."
,"If a player cannot roll for tech because they don't have a phase for it, they must have a tech attachment if you are using custom techs."
,"Just because something is in this list doesn't mean a player can get it. Whether they can get it or not is determined by what is in playerTech."
]
,"example":[
"<attachment name='techAttachment' attachTo='Russians' javaClass='TechAttachment' type='player'>"
,"\n\t<option name='techCost' value='6'/>"
,"\n\t<option name='superSub' value='true'/>"
,"\n\t<option name='jetPower' value='false'/>"
,"\n\t<option name='shipyards' value='false'/>"
,"\n\t<option name='aARadar' value='false'/>"
,"\n\t<option name='longRangeAir' value='false'/>"
,"\n\t<option name='heavyBomber' value='false'/>"
,"\n\t<option name='improvedArtillerySupport' value='false'/>"
,"\n\t<option name='rocket' value='false'/>"
,"\n\t<option name='paratroopers' value='false'/>"
,"\n\t<option name='increasedFactoryProduction' value='false'/>"
,"\n\t<option name='warBonds' value='false'/>"
,"\n\t<option name='mechanizedInfantry' value='false'/>"
,"\n</attachment>"]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.TechAttachment'"
]
,"chiluns":"Option List"
,"links":[
"playerTech"
,"techAbilityAttachment"
]
}

,"techCost":{
"parent":"techAttachment"
,"type":"option"
,"desc":"The cost of buying tech rolls for a player"
,"params":{"value":"> 0, defaults to 5."}
,"info":["This option is not required"]
,"context":[
"<attachment name='techAttachment' attachTo='Russians' javaClass='TechAttachment' type='player'>"
,"\n\t<option name='techCost' value='6'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"playerAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for players"
,"params":{
"attachTo":"Any player name in 'playerList'"
,"type":"player"
,"javaClass":"PlayerAttachment"
}
,"example":[
"<attachment name='playerAttachment' attachTo='Britain' javaClass='PlayerAttachment' type='player'>"
,"\n\t<option name='destroysPUs' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.PlayerAttachment'"
]
,"chiluns":"Option List"
}

,"placementLimit player":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Limits unit placement"
,"params":{
"value":"owned OR allied OR total. then A colon delimited list of units OR 'all'"
,"count":"integer"
}
,"info":[
"The maximum amount and type of units that may be in a territory during placement."
,"There may be multiple elements of this attachment per player."
,"value='owned' owned by attachTo player only."
,"value='allied' (attachTo player and allied)."
,"value='total' (attachTo player, allied and enemy units)."
,"count= Maximum number of units allowed in a territory."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
,"WARNING: There is also a placementLimit unitAttachment."
]
,"example":[
"<option name='placementLimit' value='owned:Battleship:Battlecruiser:Cruiser:Destroyer:Submarine:Transport' count'4'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='placementLimit' value='allied:all' count'6'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"placementLimit unit"
]
}

,"vps":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Not Implemented"
,"info":[
"Currently 'vps' and captureVps do not work."
,"If they work in the future they will follow original pacific rules."
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='vps' value='0/>"
,"\n\t<option name='captureVps' value='0/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"captureVps":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Not Implemented"
,"info":[
"Currently 'vps' and captureVps do not work. if they work in the future they will follow original pacific rules."
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='vps' value='0/>"
,"\n\t<option name='captureVps' value='0/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"attackingLimit player":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Limits attacking units"
,"params":{
"value":"owned OR allied OR total. Then a colon delimited list of units OR 'all'"
,"count":"integer"
}
,"info":[
"The maximum amount and type of units that are allowed in an enemy territory during combat movement."
,"There may be multiple elements of this attachment per player."
,"value='owned' owned by attachTo player only."
,"value='allied' (attachTo player and allied)."
,"value='total' (attachTo player, allied and enemy units)."
,"count= Maximum number of units allowed in a territory."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
,"WARNING: There is also an attackingLimit unitAttachment."
]
,"example":[
"<option name='attackingLimit' value='owned:Battleship:Battlecruiser:Cruiser:Destroyer:Submarine:Transport' count'4'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='attackingLimit' value='allied:all' count'6'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackingLimit unit"
]
}

,"movementLimit player":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Non-movement phase unit limit in territory"
,"params":{
"value":"owned OR allied OR total. then A colon delimited list of units OR 'all'"
,"count":"integer"
}
,"info":[
"The maximum amount and type of units that are allowed in an owned or friendly territory during non-movement phase."
,"There may be multiple elements of this attachment per player."
,"value='owned' owned by attachTo player only."
,"value='allied' (attachTo player and allied)."
,"value='total' (attachTo player, allied and enemy units)."
,"count= Maximum number of units allowed in a territory."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
,"WARNING: There is also a movementLimit unitAttachment."
]
,"example":[
"<option name='movementLimit' value='owned:Battleship:Battlecruiser:Cruiser:Destroyer:Submarine:Transport' count'4'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='movementLimit' value='allied:all' count'6'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"movementLimit unit"
,""
]
}

,"suicideAttackTargets":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Targets of kamikaze attacks"
,"params":{
"value":"A colon delimited list of players"
}
,"info":[
"A list of units that the attachTo player may target during kamikaze suicide attacks."
,"If not set, then it defaults to all surface combat sea units."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<option name='suicideAttackTargets' value='battleship:carrier'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Japanese' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='suicideAttackTargets' value='battleship:carrier'/>"
,"\n\t<option name='suicideAttackResources' value='SuicideAttackTokens' count='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"kamikazeZone"
,"Kamikaze Suicide Attacks Done By Current Territory Owner"
,"ownerInitialize"
,"suicideAttackTargets"
]
}

,"suicideAttackResources":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Confugures kamikaze attacks"
,"params":{
"value":"Resource required."
,"count":"Attack value"
}
,"info":[
"Controls the resource and attack value used for kamikaze suicide attacks."
,"The attacks happen during an opponents turn at the beginning of the battle step<br>For example Japan may launch these attacks after the American CombatMove."
,"These attacks only occur in territories that are designated as kamikazeZone territoryAttachment."
,"The attacks may only be done by the original owner of that territory (See ownerInitialize)."
,"The attacks target specific warships.<br>Currently the attacks only target units owned by the current player<br>They must be surface warships (not subs, not transports)."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<option name='suicideAttackResources' value='SuicideAttackTokens' count='2'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Japanese' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='suicideAttackTargets' value='battleship:carrier'/>"
,"\n\t<option name='suicideAttackResources' value='SuicideAttackTokens' count='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"kamikazeZone"
,"Kamikaze Suicide Attacks Done By Current Territory Owner"
,"ownerInitialize"
,"suicideAttackTargets"
]

}

,"retainCapitalProduceNumber":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Minimum capital for purchasing"
,"params":{
"value":">= 0"
}
,"info":[
"The value is the minumum number of capitols that must be held in order to be able to purchase."
,"It is similar to retainCapitalNumber, but only affect gaining income and purchasing units (probably should be less than or equal to retainCapitalNumber)."
,"If the player has no playerAttachment, then it defaults to 1 (ie; you keep collecting and purchasing units so long as you control at least 1 capital)."
]
,"example":[
"<option name='retainCapitalProduceNumber' value='2'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='retainCapitalProduceNumber' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"capital"
,"retainCapitalNumber"
,"destroysPUs"
]
}

,"retainCapitalNumber":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Minimum capitals to avoid PU loss"
,"params":{
"value":">= 0"
}
,"info":[
"The value is the minumum number of capitols that must be held to avoid PU loss."
,"Defaults to 1, loss of all capitals will lose the PUs."
,"If a player has no playerAttachment, then this defaults the number of capitals.<br>This means PU loss will happen on loss of one capital."
]
,"example":[
"<option name='retainCapitalNumber' value='2'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='retainCapitalNumber' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"capital"
,"retainCapitalProduceNumber"
,"destroysPUs"
]
}

,"destroysPUs":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Option if player loses capital"
,"params":{
"value":"true / false"
}
,"info":[
"If player loses their capital, their PUs are destroyed instead of captured"
,"Defaults to false = capture the PUs."
]
,"example":[
"<option name='destroysPUs' value='true'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='destroysPUs' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"capital"
,"retainCapitalNumber"
,"retainCapitalProduceNumber"
]
}

,"immuneToBlockade":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Blockard has no effect"
,"params":{
"value":"true / false"
}
,"info":[
"Player is immune to blockade from blockadeZone territoryAttachment."
]
,"example":[
"<option name='immuneToBlockade' value='true'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Russians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='immuneToBlockade' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"blockade"
,"blockadeZone"
]
}

,"helpPayTechCost":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Player may pay tech cost of others"
,"params":{
"value":"Any string ."
,"value":"A colon delimited list of players"
}
,"info":[
"Allows the players in the list to help the attachTo player pay for the cost of technology."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<option name='helpPayTechCost' value='Americans'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Chinese' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='helpPayTechCost' value='Americans:Russians'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"shareTechnology":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Give tech to other players"
,"params":{
"value":"Any string ."
,"value":"A colon delimited list of players"
}
,"info":[
"Automatically gives all technologies this player has to all players in the list, during tech activation phase."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<option name='shareTechnology' value='Russians:Chinese'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Americans' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='shareTechnology' value='Russians:Chinese'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"captureUnitOnEnteringBy player":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Enables unit capture"
,"params":{
"value":"A colon delimited list of players"
}
,"info":[
"Allow the attachTo player to capture units of players in list."
,"Units must be in a territory with changeUnitOwners territoryAttachment."
,"Requires captureUnitOnEnteringBy territoryAttachment."
,"Requires canBeCapturedOnEnteringBy unitAttachment."
,"Requires 'Capture Units On Entering Territory' global property."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<option name='captureUnitOnEnteringBy' value='Americans:British'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Italians' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='captureUnitOnEnteringBy' value='Americans:British'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Give Units By Territory"
,"canBeGivenByTerritoryTo"
,"changeUnitOwners"
,"giveUnitControl"
,"captureUnitOnEnteringBy territory"
]
}

,"giveUnitControl":{
"parent":"playerAttachment"
,"type":"option"
,"desc":"Change unit owner"
,"params":{
"value":"A colon delimited list of players"
}
,"info":[
"Allow the attachTo player to give units to other players."
,"Units must be in a territory with changeUnitOwners territoryAttachment."
,"Requires canBeGivenByTerritoryTo unitAttachment."
,"Requires 'Give Units By Territory' global property."
,"This option may be cleared/reset by triggers if you want by prefixing with '-reset-'."
]
,"example":[
"<option name='giveUnitControl' value='Russians:Chinese'/>"
]
,"context":[
"<attachment name='playerAttachment' attachTo='Americans' javaClass='PlayerAttachment' type='player'>"
,"\n\t..."
,"\n\t<option name='giveUnitControl' value='Russians:Chinese'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Give Units By Territory"
,"canBeGivenByTerritoryTo"
,"changeUnitOwners"
,"captureUnitOnEnteringBy territory"
,"captureUnitOnEnteringBy player"
]
}

,"unitAttachment":{
"parent":"attachmentList"
,"type":"attachment"
,"desc":"Options for units"
,"params":{
"attachTo":"Any unit name in 'unitList'"
,"type":"unitType"
,"javaClass":"UnitAttachment"
}
,"info":[
"A unit that has neither isAir or isSea, is land"
]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t<option name='movement' value='1'/>"
,"\n\t<option name='attack' value='1'/>"
,"\n\t<option name='defense' value='2'/>"
,"\n\t<option name='isInfantry' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"vers":[
"Prior to engine version 1.9.0.0.9142, 'javaClass' required the package name in front of the attachment class name"
,"javaClass='games.strategy.triplea.attachments.UnitAttachment'"
]
,"chiluns":"Option List"
}

,"placementLimit":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Limit number of units placed"
,"params":{
"value":"'owned' OR 'allied' OR 'total'"
,"count":" >= 0"
}
,"info":[
"Only affects placement of units into a territory."
,"count= the number of this unit allowed per territory."
,"value='owned' owned by each player only."
,"value='allied' (owned and allied)."
,"value='total' (owned, allied and enemy units)."
,"This option is not required, Defaults to infinite if not set."
,"WARNING: There is also a placementLimit playerAttachment."
]
,"example":[
"<option name='placementLimit' value='allied' count='5'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='placementLimit' value='allied' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["placementLimit player"]
}
,"attackingLimit unit":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Limit number of attack units"
,"params":{
"value":"'owned' OR 'allied' OR 'total'"
,"count":" >= 0"
}
,"info":[
"Only affects movement into enemy territory."
,"count= the number of this unit allowed per territory."
,"value='owned' owned by each player only."
,"value='allied' (owned and allied)."
,"value='total' (owned, allied and enemy units)."
,"This option is not required, Defaults to infinite if not set."
,"WARNING: There is also an attackingLimit playerAttachment."
]
,"example":[
"<option name='attackingLimit' value='owned' count='5'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='borg' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='attackingLimit' value='owned' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["attackingLimit player"]
}
,"movementLimit unit":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Limit unit movement"
,"params":{
"value":"'owned' OR 'allied' OR 'total'"
,"count":" >= 0"
}
,"info":[
"Only affects normal movement."
,"count= the number of this unit allowed per territory."
,"value='owned' owned by each player only."
,"value='allied' (owned and allied)."
,"value='total' (owned, allied and enemy units)."
,"This option is not required, Defaults to infinite if not set."
,"WARNING: There is also a movementLimit playerAttachment."
]
,"example":[
"<option name='movementLimit' value='allied' count='5'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='movementLimit' value='allied' count='5'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":["movementLimit player"]
}
,"canNotMoveDuringCombatMove":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"No combat movement"
,"params":{
"value":"true / false"
}
,"info":[
"Unit may not move during 'combat move phase'."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='canNotMoveDuringCombatMove' value='false'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canNotMoveDuringCombatMove' false='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"typeAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit is menber of AA group"
,"params":{
"value":"Any string which identifies this type-group of AA guns."
}
,"info":[
"Unit fires AA only when being flown over."
,"Only 1 AA unit per group may fire (unless you've set maxAAattacks)."
,"Warning: all units with the same typeAA must have the same dice sides, or else you will experience weird results."
,"This option is not required, Defaults to 'AA' if not set."
]
,"example":[
"<option name='typeAA' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='typeAA' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isRocket"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
,"AA Territory Restricted"
,"Always on AA"
]
}

,"isAAforFlyOverOnly":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Fires AA only at passing aircraft"
,"params":{
"value":"true / false"
}
,"info":[
"Unit fires AA 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'."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isAAforFlyOverOnly' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAAforFlyOverOnly' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isRocket"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
,"AA Territory Restricted"
,"Always on AA"
]
}

,"isAAforBombingThisUnitOnly":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Fires AA only at strategic bombing"
,"params":{
"value":"true / false"
}
,"info":[
"Unit fires AA only against strategic bombing raids (not in normal combat)."
,"Requires images with '_r' appended."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isAAforBombingThisUnitOnly' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAAforBombingThisUnitOnly' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isRocket"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}

,"isAAforCombatOnly":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"May not fire AA at strategic bombing"
,"params":{
"value":"true / false"
}
,"info":[
"Unit fires AA in normal combat only (not against strategic bombing raids)."
,"Requires images with '_r' appended."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isAAforCombatOnly' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAAforCombatOnly' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isRocket"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}

,"damageableAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"May damage AA target"
,"params":{
"value":"true / false"
}
,"info":[
"Sets if this unit can damage a two-hitpoint unit, instead of killing it instantly with AA fire."
,"'false' means kills instantly."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='damageableAA' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='mayOverStackAA' value='true'/>"
,"\n\t<option name='damageableAA' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"isRocket"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}

,"maxRoundsAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"May fire more AA than targets"
,"params":{
"value":" >= -1"
}
,"info":[
"Sets how many rounds the AA may fire in."
,"Negative (-1) means infinite."
,"This option is not required, Defaults to '1' if not set."
]
,"example":[
"<option name='maxRoundsAA' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='mayOverStackAA' value='true'/>"
,"\n\t<option name='maxRoundsAA' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"isRocket"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}

,"mayOverStackAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"May fire more AA than targets"
,"params":{
"value":"true / false"
}
,"info":[
"Sets this unit may fire AA more times than there are aircraft."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='mayOverStackAA' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='mayOverStackAA' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"isRocket"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}
,"maxAAattacks":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum times AA unit may fire"
,"params":{
"value":" >= -1"
}
,"info":[
"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."
]
,"example":[
"<option name='maxAAattacks' value='6'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='mobile_aa' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='maxAAattacks' value='6'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"isRocket"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
,"diceSides"
]
}

,"offensiveAttackAAmaxDieSides":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Dice sides for offensive AA unit"
,"params":{
"value":" integer"
}
,"info":[
"Sets the dice sides for AA Gun on offense."
,"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!"
,"This option is not required, Defaults to whatever you chose above in diceSides (or 6 if you didn't choose)."
]
,"example":[
"<option name='offensiveAttackAAmaxDieSides' value='12'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='mobile_aa' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='offensiveAttackAAmaxDieSides' value='10'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"isRocket"
,"targetsAA"
,"typeAA"
,"diceSides"
]
}

,"offensiveAttackAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Attack value for AA unit on offensive side"
,"params":{
"value":" >=0"
}
,"info":[
"Sets attack value that an isAA unit will attack at, for shooting at air units before battle."
,"This value is for an attacking unit, see attackAA if unit is on defending side"
]
,"example":[
"<option name='offensiveAttackAA' value='1'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='mobile_aa' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='offensiveAttackAA' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"isRocket"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}


,"attackAAmaxDieSides":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Dice sides for defending AA unit"
,"params":{
"value":" integer"
}
,"info":[
"Sets the dice sides for AA Gun."
,"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!"
,"This option is not required, Defaults to whatever you chose above in diceSides (or 6 if you didn't choose)."
]
,"example":[
"<option name='attackAAmaxDieSides' value='12'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='attackAAmaxDieSides' value='10'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"isRocket"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
,"diceSides"
]
}


,"attackAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Pre-combat defending AA attack value"
,"params":{
"value":" >=0"
}
,"info":[
"Sets attack value that an isAA unit will attack at, for shooting at air units before battle."
,"This value is for a defending unit, see offensiveAttackAA is unit is on attacking side"
,"This option is not required, Defaults to zero if not set."
]
,"example":[
"<option name='attackAA' value='1'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='attackAA' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isRocket"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}


,"isAAmovement":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Enables AA movement rules"
,"params":{
"value":"true / false"
}
,"info":[
"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."
,"If not exactly named 'aaGun', then requires image named '_rockets' and '_r' and '_rockets_r'."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isAAmovement' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAAmovement' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isRocket"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
,"canNotMoveDuringCombatMove"
,"movementLimit unit"
,"attackingLimit unit"
,"placementLimit"
]
}



,"isRocket":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Rocket rules if rocket technology"
,"params":{
"value":"true / false"
}
,"info":[
"Enables this unit to become a rocket if the player has the rocket technology"
,"Applicable techAbilityAttachments are: rocketDiceNumber, rocketDistance & rocketNumberPerTerritory"
,"If not exactly named 'aaGun', then requires image named '_rockets' and '_r' and '_rockets_r'."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isRocket' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isRocket' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"All Rockets Attack"
,"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"rocketsCanFlyOver"
,"Rocket Attacks Per Factory Infinite"
,"Rockets Can Fly Over Impassables"
,"targetsAA"
,"typeAA"
,"rocketDiceNumber"
,"rocketDistance"
,"rocketNumberPerTerritory"
]
}


,"isAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Enables AA rules"
,"params":{
"value":"true / false"
}
,"info":[
"Sets the following options to true:<ul><li>isAAmovement<li>isAAforCombatOnly<li>isAAforBombingThisUnitOnly<li>isAAforFlyOverOnly<li>isInfrastructure<li>isRocket<li></ul>"
,"If not exactly named 'aaGun', then requires images named '_rockets' and '_r' and '_rockets_r'."
,"Enables a unit to shoot at air units before combat starts and not participate in the rest of combat, have certain movement restrictions, and be capturable)"
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isAA' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAA' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"attackAA"
,"attackAAmaxDieSides"
,"damageableAA"
,"isAAforBombingThisUnitOnly"
,"isAAforCombatOnly"
,"isAAforFlyOverOnly"
,"isAAmovement"
,"maxAAattacks"
,"maxRoundsAA"
,"mayOverStackAA"
,"offensiveAttackAA"
,"offensiveAttackAAmaxDieSides"
,"targetsAA"
,"typeAA"
]
}

,"maxConstructionsPerTypePerTerr":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum unit type per territory"
,"params":{
"value":" >= 0"
}
,"info":[
"Maximum quantity of this unit per territory."
,"This must be greater than constructionsPerTerrPerTypePerTurn"
,"If 'More Constructions with Factory' OR 'More Constructions 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."
,"Requires these to be set: isConstruction, isConstruction."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='maxConstructionsPerTypePerTerr' value='5'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isConstruction' value='true'/>"
,"\n\t<option name='constructionType' value='bunker'/>"
,"\n\t<option name='constructionsPerTerrPerTypePerTurn' value='1'/>"
,"\n\t<option name='maxConstructionsPerTypePerTerr' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isConstruction"
,"constructionType"
,"constructionsPerTerrPerTypePerTurn"
,"More Constructions with Factory"
,"More Constructions without Factory"
,"Unlimited Constructions"
]
}

,"constructionsPerTerrPerTypePerTurn":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum units placed per territory per turn"
,"params":{
"value":" >= 0"
}
,"info":[
"Maximum quantity of this unit placed per territory per turn."
,"This option is not required, Defaults to other restrictions (if any) if not set."
]
,"example":[
"<option name='constructionsPerTerrPerTypePerTurn' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isConstruction' value='true'/>"
,"\n\t<option name='constructionType' value='bunker'/>"
,"\n\t<option name='constructionsPerTerrPerTypePerTurn' value='1'/>"
,"\n\t<option name='maxConstructionsPerTypePerTerr' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isConstruction"
,"constructionType"
,"maxConstructionsPerTypePerTerr"
,"More Constructions with Factory"
,"More Constructions without Factory"
,"Unlimited Constructions"
]
}
,"constructionType":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit is a member of construction group"
,"params":{
"value":"A unique string"
}
,"info":[
"The value string identifies what kind of construction this unit is."
,"If two or more units have the exact same constructionType (and the same PerType rules), then they will follow the same rules for placement."
,"So, 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 affected by the global properties 'More Constructions with Factory' and 'Unlimited Constructions', then make sure the type ends in 'structure'. example: 'harbour_structure'"
,"Requires all these to be set: isConstruction, constructionsPerTerrPerTypePerTurn, maxConstructionsPerTypePerTerr."
,"This option is not required if none of the above are used, no effect if not set."
]
,"example":[
"<option name='constructionType' value='bunker'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='big_bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isConstruction' value='true'/>"
,"\n\t<option name='constructionType' value='bunker'/>"
,"\n\t<option name='constructionsPerTerrPerTypePerTurn' value='1'/>"
,"\n\t<option name='maxConstructionsPerTypePerTerr' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isConstruction"
,"constructionsPerTerrPerTypePerTurn"
,"maxConstructionsPerTypePerTerr"
,"More Constructions with Factory"
,"More Constructions without Factory"
,"Unlimited Constructions"
]
}

,"isConstruction":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"May place without factory"
,"params":{
"value":"true / false"
}
,"info":[
"Enables the unit to be placed in territories that do not contain a factory."
,"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 Factory' OR 'More Constructions without Factory', which will allow up a total number of up to the territory value."
,"'Unlimited Constructions' game property allows unlimited constructions total in a territory."
,"Requires all these to be set: constructionType, constructionsPerTerrPerTypePerTurn, maxConstructionsPerTypePerTerr."
,"This option is not required if none of the above are used, no effect if not set."
]
,"example":[
"<option name='isConstruction' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isConstruction' value='true'/>"
,"\n\t<option name='constructionType' value='bunker'/>"
,"\n\t<option name='constructionsPerTerrPerTypePerTurn' value='1'/>"
,"\n\t<option name='maxConstructionsPerTypePerTerr' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"constructionType"
,"constructionsPerTerrPerTypePerTurn"
,"maxConstructionsPerTypePerTerr"
,"More Constructions with Factory"
,"More Constructions without Factory"
,"Unlimited Constructions"
]
}

,"unitPlacementOnlyAllowedIn":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Territories that may produce the unit"
,"params":{
"value":"A colon delimited list of territories"
}
,"info":[
"List contains territories where this unit can be placed (may not be placed in all others)."
,"The 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."
,"The list may be turned on/off with 'Unit Placement Restrictions' game property"
,"This option is not required, Defaults to 'all territories' if not set."
]
,"example":[
"<option name='unitPlacementOnlyAllowedIn' value='Midway:Greenland:Gibraltar'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='unitPlacementOnlyAllowedIn' value='Midway:Greenland:Gibraltar'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Unit Placement Restrictions"
,"unitPlacementRestrictions"
]
}

,"unitPlacementRestrictions":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Territories the unit may not be placed"
,"params":{
"value":"A colon delimited list of territories"
}
,"info":[
"List contains territories where this unit can not be placed."
,"The 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."
,"The list may be turned on/off with 'Unit Placement Restrictions' game property"
,"This option is not required, Defaults to 'no restricted territories' if not set."
]
,"example":[
"<option name='unitPlacementRestrictions' value='Midway:Greenland:Gibraltar'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='unitPlacementRestrictions' value='Midway:Greenland:Gibraltar'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Unit Placement Restrictions"
,"unitPlacementOnlyAllowedIn"
]
}

,"canOnlyBePlacedInTerritoryValuedAtX":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Minimum territory value required to place unit"
,"params":{
"value":" >= -1"
}
,"info":[
"Minimum territory value required to place unit."
,"-1 means anywhere is permitted (Default if not set)."
,"if you want flying factories, go ahead. Just don't complain if you get errors."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='canOnlyBePlacedInTerritoryValuedAtX' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='warg_farm' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canOnlyBePlacedInTerritoryValuedAtX' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"maxBuiltPerPlayer":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximim unit type owned by player"
,"params":{
"value":" >= 0"
}
,"info":[
"The number of this unit that can be owned by a player."
,"If they have fewer than this number they can purchase more."
,"If they have more than this number they can not purchase more."
,"This does not cause excess ones to disappear, and the player can still capture more and more of them if they are capturable."
]
,"example":[
"<option name='maxBuiltPerPlayer' value='5'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='maxBuiltPerPlayer' value='5'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"canProduceUnits":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Enables a unit to produced units"
,"params":{
"value":"true / false"
}
,"info":[
"Enables a unit to be a factory, without all the other things that come with being a factory (like capturable, land, non-combat, etc)."
,"-1 means it will produce at the value of the territory where it is (Default if not set)."
,"If you want flying factories, go ahead. Just don't complain if you get errors."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='canProduceUnits' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='warg_farm' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canProduceUnits' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"canProduceXUnits","",""
]
}

,"canProduceXUnits":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum produced units"
,"params":{
"value":" >= -1"
}
,"info":[
"Enables placement at a factory-type unit of a set amount of units no matter where it is located."
,"-1 means placement maximum is the value of the territory where it is (Default if not set)."
,"If greater than -1, you must have maxDamage set to some number if the unit is also canBeDamaged or isFactory."
,"This option will only work if 'Damage From Bombing Done To Units Instead Of Territories' game property is turned on."
]
,"example":[
"<option name='canProduceXUnits' value='3'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='lev2base' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canProduceXUnits' value='3'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"maxDamage"
,"isFactory"
,"canBeDamaged"
,"Damage From Bombing Done To Units Instead Of Territories"
]
}

,"isFactory":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Automatically sets factory options"
,"params":{
"value":"true / false"
}
,"info":[
"Sets the following options:<ul><li>canBeDamaged = true<li>isInfrastructure = true<li>canProduceUnits = true<li>isConstruction = true<li>constructionType = 'factory'<li>maxConstructionsPerTypePerTerr = 1<li>constructionsPerTerrPerTypePerTurn = 1</ul>"
,"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."
,"Requires images with '_it', and '_it_hit' appended."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='isFactory' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isFactory' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"canBeDamaged","isInfrastructure","canProduceUnits","isConstruction","constructionType","constructionsPerTerrPerTypePerTurn"
]
}

,"airAttack":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Attack value for air battles"
,"params":{
"value":" >= 0"
}
,"info":[
"Attack value for air battles."
,"This option is not required, Defaults to zero if not set."
]
,"example":[
"<option name='airAttack' value='3'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"canScramble"
,"maxScrambleDistance"
,"canIntercept"
,"canEscort"
,"canAirBattle"
,"airDefense"
,"carrierCapacity"
]
}

,"airDefense":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Defense value for air battles"
,"params":{
"value":" >= 0"
}
,"info":[
"Defense value for air battles."
,"This option is not required, Defaults to zero if not set."
]
,"example":[
"<option name='airDefense' value='4'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"canScramble"
,"maxScrambleDistance"
,"canIntercept"
,"canEscort"
,"canAirBattle"
,"airAttack"
,"carrierCapacity"
]
}

,"canAirBattle":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may participate in air battles"
,"params":{
"value":"true / false"
}
,"info":[
"Enables unit to participate in air battles for normal battles, as an attacking or defending unit."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='canAirBattle' value='true'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"canScramble"
,"maxScrambleDistance"
,"canIntercept"
,"canEscort"
,"airDefense"
,"airAttack"
,"carrierCapacity"
]
}

,"canEscort":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may fight during SBR"
,"params":{
"value":"true / false"
}
,"info":[
"Enables unit to participate in combat during air battles during strategic bombing raids."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='canEscort' value='true'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"canScramble"
,"maxScrambleDistance"
,"canIntercept"
,"canAirBattle"
,"airDefense"
,"airAttack"
,"carrierCapacity"
]
}

,"canIntercept":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may defend during SBR"
,"params":{
"value":"true / false"
}
,"info":[
"Enables unit to participate in defense during air battles during strategic bombing raids."
,"This option is not required, Defaults to false if not set."
]
,"example":[
"<option name='canIntercept' value='true'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"canScramble"
,"maxScrambleDistance"
,"canEscort"
,"canAirBattle"
,"airDefense"
,"airAttack"
,"carrierCapacity"
]
}

,"tuv":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Overrides default TUV calculation"
,"params":{
"value":" >= 0"
}
,"info":[
"Abbreviation for Total Unit Value. In TripleA, there is a TUV column in the statistics tab."
,"Note that the TUV includes isInfrastructure units like factories."
,"It does not include PUs in hand."
,"The Moore AI and Dynamix AI both explicitly try to maximize enemy TUV losses and minimize it's own TUV loss."
,"When designing your own scenarios, it can be useful to look at the TUV."
,"Usually, the TUV should be fairly close for each side."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='tuv' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='hq_bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='tuv' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"whenHitPointsRepairedChangesInto":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit type changes on damage"
,"params":{
"value":"A colon delimited triple = damage:transferAttributes:unitType"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damage":"Amount of damage"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transferAttributes":"true / false (Does new unit keep damage)"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unitType":"new unitType name"
}
,"info":[
"Enables unit to change into another unit during repair if it has a certain amount or 0 damage."
,"Use to repair weaker versions of a unit."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='whenHitPointsRepairedChangesInto' value='0:false:lev2_bunker'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry_routed' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='whenHitPointsRepairedChangesInto' value='0:false:infantry'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"whenHitPointsDamagedChangesInto","canBeDamaged"
]
}
,"whenHitPointsDamagedChangesInto":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit type changes on damage"
,"params":{
"value":"A colon delimited triple = damage:transferAttributes:unitType"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;damage":"Amount of damage"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transferAttributes":"true / false (Does new unit keep damage)"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unitType":"new unitType name"
}
,"info":[
"Enables unit to change into another unit if it takes a certain amount of damage in combat."
,"Use for having weaker versions of a unit."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='whenHitPointsDamagedChangesInto' value='2:false:lev2_bunker'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='infanrty' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='whenHitPointsDamagedChangesInto' value='1:false:infantry_routed'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"whenHitPointsRepairedChangesInto","canBeDamaged"
]
}
,"maxScrambleCount":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum scramble units from territory with unit"
,"params":{
"value":" >= 0"
}
,"info":[
"Specifies maximum units that can scramble from a territory with this unit."
,"This option is not required, Defaults to infinite if not set."
]
,"example":[
"<option name='maxScrambleCount' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='airstrip' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='maxScrambleCount' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"isAirBase":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit enables canScramble from territory"
,"params":{
"value":"true / false"
}
,"info":[
"Enables units having canScramble to scramble from a territory with this unit."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='isAirBase' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='airstrip' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAirBase' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"whenCapturedSustainsDamage":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Damaged sustained on capture"
,"params":{
"value":" >= 0"
}
,"info":[
"Specifies amount of damage received when captured."
,"This option is not required, Defaults to zero if not set."
]
,"example":[
"<option name='whenCapturedSustainsDamage' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='whenCapturedSustainsDamage' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"repairsUnits","canBeDamaged","maxDamage","canDieFromReachingMaxDamage","maxOperationalDamage"
]
}
,"isInfrastructure":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit does not fight and may be captured"
,"params":{
"value":"true / false"
}
,"info":[
"Unit does not participate in combat, and it will be captured if the attacker is successful."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='isInfrastructure' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isInfrastructure' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"canDieFromReachingMaxDamage":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit killed by maxDamage"
,"params":{
"value":"true / false"
}
,"info":[
"If unit reaches its maxDamage, then it will die."
,"maxDamage must be larger than zero."
,"Common case is for a factory that is never destroyed, but can be 100% damaged."
,"This option is not required, Defaults to true if not set."
]
,"example":[
"<option name='canDieFromReachingMaxDamage' value='false'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='hard_bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canDieFromReachingMaxDamage' value='false'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAirBase","repairsUnits","givesMovement","canBeDamaged","maxDamage"
]
}
,"maxOperationalDamage":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Damage to disable unit"
,"params":{
"value":" >= 0"
}
,"info":[
"Describes the hits needed to disable the unit."
,"Used with isAirBase, repairsUnits, and givesMovement."
,"A disabled unit will not participate in combat or be able to move."
,"Does Not work with isFactory or canProduceUnits."
,"Requires unit with '_disabled' appended."
,"Defaults to 1 (Will contiue working until destroyed)."
]
,"example":[
"<option name='maxOperationalDamage' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='hard_bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='maxDamage' value='3'/>"
,"\n\t<option name='maxOperationalDamage' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAirBase","repairsUnits","givesMovement","canBeDamaged","maxDamage"
]
}
,"maxDamage":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum damage from SBR or rockets"
,"params":{
"value":" >= 0"
}
,"info":[
"Describes the hits needed to kill the unit by strategic bombing raids or by rockets."
,"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.<br>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.<br>If However, canProduceXUnits = 2, and maxDamage = 3, then you can do up to 3 damage to this unit."
,"Defaults to 2 if not set (only applies to canBeDamaged, isFactory or 'factory' unit)."
]
,"example":[
"<option name='maxDamage' value='3'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='hard_bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='maxDamage' value='3'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isFactory","canBeDamaged"
]
}
,"canBeDamaged":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit is a target for SBR or rockets"
,"params":{
"value":"true / false"
}
,"info":[
"Enables the unit to be attacked by strategic bombing raids or by rockets."
,"isFactory enables the these attacks as well."
,"Requires images with '_hit' appended (also applies to any unit named 'factory')."
,"Defaults to false if not set."
]
,"example":[
"<option name='canBeDamaged' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='battleship' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canBeDamaged' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isFactory","maxDamage","maxOperationalDamage"
]
}
,"isSub":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit use anti-sub rules"
,"params":{
"value":"true / false"
}
,"info":[
"Enables the unit to roll dice before other units."
,"Enables the unit submerge or retreat from battle even on defense."
,"If using ww2v3 rules, unit will not be hit by air unless the enemy has an isDestroyer."
,"'Air Attack Sub Restricted' property affects this option."
,"Requires unit with '_ss' appended."
,"Defaults to false if not set."
]
,"example":[
"<option name='isSub' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='submarine' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isSub' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Air Attack Sub Restricted"
,"isDestroyer"
,"Defending Subs Sneak Attack"
,"Ignore Sub In Movement"
,"Sub Control Sea Zone Restricted"
,"Sub Retreat Before Battle"
,"Submarines Defending May Submerge Or Retreat"
,"Submarines Prevent Unescorted Amphibious Assaults"
,"Submersible Subs"
,"Subs Can End NonCombat Move With Enemies"
]
}
,"isDestroyer":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit use anti-sub rules"
,"params":{
"value":"true / false"
}
,"info":[
"Cancels out an enemy isSub unit's first strike and submerge abilities."
,"Enables enemy isSub units to be hit by air units if using ww2v3 rules."
,"'Air Attack Sub Restricted' property affects this option."
,"Defaults to false if not set."
]
,"example":[
"<option name='isDestroyer' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='destroyer' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isDestroyer' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Air Attack Sub Restricted"
,"isSub"
]
}
,"blockade":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Damage value by unit on blockade"
,"params":{
"value":">=0"
}
,"info":[
"A sea zone that if captured by the enemy will reduce the originag owners income."
,"Value lost equals the value of land territories surrounding a blockade zone."
,"Requires isSea"
,"Defaults to zero if not set."
]
,"example":[
"<option name='blockade' value='1'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='battleship' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='blockade' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"blockadeZone"
,"immuneToBlockade"
]
}
,"bombard":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Naval bombardment value"
,"params":{
"value":">=0"
}
,"info":[
"Naval bombardment value during an amphibious assault."
,"Requires isSea"
,"Defaults to attack value if not set."
]
,"example":[
"<option name='bombard' value='4'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='battleship' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='bombard' value='4'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isSea"
]
}
,"canBombard":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Enables naval bombardment during an amphibious assault"
,"params":{
"value":"true / false"
}
,"info":[
"Unit may bombard during an amphibious assault."
,"Requires isSea"
,"Defaults to false if not set."
]
,"example":[
"<option name='canBombard' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bomber' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canBombard' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isSea"
]
}
,"carrierCapacity":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Maximum carrierCost this unit can transport"
,"params":{
"value":">=0"
}
,"info":[
"The total carrierCost the attachTo unit can hold."
,"Defaults to zero if not set."
]
,"example":[
"<option name='carrierCost' value='4'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='carrier' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='carrierCost' value='4'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isSea","carrierCost"
]
}
,"carrierCost":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"carrierCapacity a unit uses"
,"params":{
"value":">=0"
}
,"info":[
"The carrierCapacity the attachTo unit takes up when sitting on a carrier."
,"If set to 0 then the unit can land on sea zones without a carrier being present (think sea planes)."
,"May not land on sea zone if not set."
]
,"example":[
"<option name='carrierCost' value='1'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"isAir"
,"canScramble"
,"maxScrambleDistance"
,"canIntercept"
,"canEscort"
,"canAirBattle"
,"airDefense"
,"airAttack"
,"carrierCapacity"
]
}
,"bombingBonus":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"SBR and rocket bonus"
,"params":{
"value":">=0"
}
,"info":[
"Is a number added to the die rolled, to give the total cost [displayed as a new die rolled]."
,"Is only used when you have 'Use Bombing Max Dice Sides And Bonus' turned on."
,"For strategic bombing raids and rockets only."
,"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."
,"The example defines a 12 sided die roll +4 to result."
,"The default is zero, if not set."
]
,"example":[
"<option name='bombingBonus' value='4'/>"
,"\n<option name='bombingMaxDieSides' value='12'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bomber' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='bombingBonus' value='4'/>"
,"\n\t<option name='bombingMaxDieSides' value='12'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAir","isStrategicBomber","bombingMaxDieSides","Use Bombing Max Dice Sides And Bonus"
]
}
,"bombingMaxDieSides":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Dice sides for a bomb or rocket attack"
,"params":{
"value":">=0"
}
,"info":[
"Is the max dice sides for a strategic bombing raid or rocket attack."
,"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'."
,"The default is to use the diceSides for the map."
]
,"example":[
"<option name='bombingMaxDieSides' value='12'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bomber' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='bombingMaxDieSides' value='10'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAir","isStrategicBomber","bombingBonus","Use Bombing Max Dice Sides And Bonus"
]
}
,"isStrategicBomber":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may do SBR"
,"params":{
"value":"true / false"
}
,"info":[
"isAir required."
,"Enables a unit to bomb factories and canBeDamaged units."
,"This option is not required, false if not set."
]
,"example":[
"<option name='isStrategicBomber' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bomber' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isStrategicBomber' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAir","canBeDamaged"
]
}
,"isKamikaze":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may use all movement on outward flight"
,"params":{
"value":"true / false"
}
,"info":[
"isAir required."
,"Enables an air unit to use up all of its movement to go to a battle (it will die cause it can't land)."
,"This option is not required, false if not set."
]
,"example":[
"<option name='isKamikaze' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='kamikaze' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isKamikaze' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAir"
,"Kamikaze Airplanes"
]
}
,"isSuicideOnHit":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit dies when rolls a hit"
,"params":{
"value":"true / false"
}
,"info":[
"If the unit rolls a hit in combat then it instantly dies"
,"The hit does not require a unit to die (more hits than units)"
,"Could be used for units like mines."
,"This option is not required, false if not set."
]
,"example":[
"<option name='isSuicideOnHit' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='sea_mine' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isSuicideOnHit' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
}
,"isSuicide":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit dies before combat begins"
,"params":{
"value":"true / false"
}
,"info":[
"Unit still fights."
,"This option is not required, false if not set."
]
,"example":[
"<option name='isSuicide' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='midget_submarine' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isSuicide' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAir"
,"Suicide and Munition Casualties Restricted"
,"Defending Suicide and Munition Units Do Not Fire"
]
}
,"maxScrambleDistance":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Range unit may defend"
,"params":{
"value":"1 (Recommended)"
}
,"info":[
"Maximum distance out an aircraft can scramble."
,"Currenty anything higher than 1 is not supported well at this point."
,"If canScramble is false, this option is not required."
]
,"example":[
"<option name='maxScrambleDistance' value='1'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"canScramble"
,"canIntercept"
,"canEscort"
,"canAirBattle"
,"airDefense"
,"airAttack"
,"carrierCapacity"
]
}
,"canScramble":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may defend adjacent sea zone"
,"params":{
"value":"true / false"
}
,"info":[
"Enables isAir units to defend an adjacent sea zone if the enemy is doing an attack on or from that zone."
,"This option is not required, defaults to false if not set."
]
,"example":[
"<option name='canScramble' value='true'/>"
]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"isAir"
,"maxScrambleDistance"
,"canIntercept"
,"canEscort"
,"canAirBattle"
,"airDefense"
,"airAttack"
,"carrierCapacity"
]
}
,"isCombatTransport":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may fight and transport"
,"params":{
"value":"true / false"
}
,"info":[
"The unit will fight even if it has transport capacity."
,"Only applies to sea transports."
,"Use for convoys and restricted attack on transports."
,"This option is not required, if not set, units act as normal."
]
,"example":[
"<option name='isCombatTransport' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='q_ship' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isCombatTransport' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"transportCapacity","transportCost"
]
}
,"transportCapacity":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Land units this unit can transport"
,"params":{
"value":">=0"
}
,"info":[
"The amount of transportCost (of land units) the attachTo unit can transport"
,"Requires isAirTransport"
,"This option is not required, defaults to 0 if not set."
]
,"example":[
"<option name='transportCapacity' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='transport' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='transportCapacity' value='5'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAirTransport"
,"isLandTransport"
,"transportCost"
]
}
,"transportCost":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"The space a unit takes up in a transport"
,"params":{
"value":">=0"
}
,"info":[
"The amount of transportCapacity the attachTo unit uses"
,"This option is not required."
,"The default value is not currently known."
]
,"example":[
"<option name='transportCost' value='2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='airTransport' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='transportCost' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAirTransportable","isLandTransportable","transportCapacity"
]
}
,"isAirTransport":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may transport isLandTransportable units"
,"params":{
"value":"true / false"
}
,"info":[
"The attachTo unit may transport on a one-to-one basis, if you have the paratroopers technology"
,"If transportCapacity is set then use transportCost and be able to transport multiple units just like sea transports"
,"This option is not required, defaults to false if not set."
]
,"example":[
"<option name='isAirTransport' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='airTransport' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAirTransport' value='true'/>"
,"\n\t<option name='transportCapacity' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"paratroopers","transportCapacity","transportCost"
]
}
,"isAirTransportable":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may move with isAirTransport "
,"params":{
"value":"true / false"
}
,"info":[
"The attachTo unit may be transported by isAirTransport units, if they have paratroopers technology"
,"This option is not required, defaults to false if not set."
]
,"example":[
"<option name='isAirTransportable' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='paratrooper' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isAirTransportable' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"paratroopers","isAirTransport","Paratroopers Can Move During Non Combat","Paratroopers Can Attack Deep Into Enemy Territory"
]
}
,"isLandTransport":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may transport isLandTransportable units"
,"params":{
"value":"true / false"
}
,"info":[
"The attachTo unit may transport 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"
,"This option is not required, defaults to false if not set."
]
,"example":[
"<option name='isLandTransport' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='truck' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isLandTransport' value='true'/>"
,"\n\t<option name='transportCapacity' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"mechanizedInfantry"
,"transportCapacity"
,"transportCost"
,"Transport Restricted Unload"
]
}
,"isInfantry":{
"parent":"unitAttachment"
,"info":"DEPRECATED<br>Replaced by 'isLandTransportable'"
,"desc":"DEPRECATED"
,"links":[
"isLandTransportable"
]
}

,"isLandTransportable":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may move with isLandTransport "
,"params":{
"value":"true / false"
}
,"info":[
"The attachTo unit may be transported by isLandTransport units, if they have mechanizedInfantry technology"
,"This option is not required, defaults to false if not set."
]
,"example":[
"<option name='isLandTransportable' value='true'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isLandTransportable' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"mechanizedInfantry"
,"isLandTransport"
,"Transport Restricted Unload"
]
}

,"requiresUnitsToMove":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Units required for movement"
,"params":{
"value":"A colon delimited list of units"
}
,"info":[
"All territories of a unit's route must contain all units in the list for the attachTo unit to move."
,"Multiple instances of this attachment may be used, only one of which needs to be true in order to move."
,"Multiple instances of this attachment are treated as OR switches (if any of the requiresUnitsToMove attachments are true, the unit may move)<br>So in the example, if there is a Rail AND a Road, OR there is a SuperRail, then the unit can move."
,"Checks all owned/allied units in each territory along the unit's route for necessary units."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='requiresUnitsToMove' value='Rail:Road'/>"
,"\n<option name='requiresUnitsToMove' value='SuperRail'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='train' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='requiresUnitsToMove' value='Rail:Road'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"canInvadeOnlyFrom":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Units required for amphibious assaults"
,"params":{
"value":"A colon delimited list of units OR 'all' OR 'none'"
}
,"info":[
"The attachTo unit must be transported by a unit in the list to perform an amphibious assault."
,"A unit which cannot perform amphibious assaults may instead disembark during non-combat."
,"This option is not required. If not set, defaults to all."
]
,"example":[
"<option name='canInvadeOnlyFrom' value='transport'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canInvadeOnlyFrom' value='transport'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"consumesUnits":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit is consumed to produce a unit"
,"params":{
"value":"A colon delimited pair, Quantity followed by unit, ie; '1:artillery'"
}
,"info":[
"The value unit is required to be present in the territory in order to place the attachTo unit there."
,"The value unit is removed when the attachTo unit is placed."
,"Multiple instances of this attachment may be used to consume several unit types."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='consumesUnits' value='1:artillery'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='gun_bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='consumesUnits' value='1:bunker'/>"
,"\n\t<option name='consumesUnits' value='1:artillery'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"requiresUnits":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Units that are required to place unit"
,"params":{
"value":"A colon delimited list of units"
}
,"info":[
"This option is not required, no effect if not set."
,"All units in the list are required to be present in the territory in order to place the attachTo unit there."
,"Multiple instances of this attachment are treated as OR switches (if any of the requiresUnits attachments are true, the unit may be placed)<br>So in the example, if there is a CombatEngineer AND a Truck, OR there is a SuperEngineer, then the unit can be placed."
,"At least one of each unit in the list is required (more are ignored)."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":[
"<option name='repairsUnits' value='CombatEngineer:Truck'/>"
,"\n<option name='repairsUnits' value='SuperEngineer'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='repairsUnits' value='CombatEngineer:Truck'/>"
,"\n\t<option name='repairsUnits' value='SuperEngineer'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"repairsUnits":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Units that may be repained by unit"
,"params":{
"value":"A colon delimited list of units, prepended by repair amount, ie; '1:battleship:super_carrier'"
}
,"info":[
"This option is not required. no effect if not set."
,"Repair amount = damage reduced."
,"Repair amount will default to 1 if not used."
,"Repair amount may be designated bt count (see 2nd example)."
,"Units to be repaired must be in the same territory as attachTo unit."
,"If unit being repaired isSea, and the unit repairing is a land, the sea unit must be adjacent to the land unit"
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":[
"<option name='repairsUnits' value='1:battleship:super_carrier'/>"
,"<option name='repairsUnits' value='battleship:super_carrier' count='1'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='shipyard' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='repairsUnits' value='1:battleship:super_carrier'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"whenCapturedChangesInto":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit change on capture"
,"params":{
"value":"A colon delimited list = 'fromPlayer:toPlayer:transferAttributes:unitType:numberOfUnits'"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fromPlayer":"'any' or a player name"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toPlayer":"'any' or a player name"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transferAttributes":"true / false (NOT CLEAR WHAT THIS IS)"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unitType":"new unitType name"
,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numberOfUnits":">= 1 (quantity of new units)"
}
,"info":[
"transferAttributes currently only transfers damage for hitPoints and maxDamage."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"May have multiple instances of this attachment for a specific unit."
,"This option is not required, no effect if not set."
]
,"example":[
"<option name='whenCapturedChangesInto' value='any:any:true:Minor_Factory:1'/>"
,"<option name='whenCapturedChangesInto' value='Russians:Germans:false:gold:3:lumber:1'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='whenCapturedChangesInto' value='any:any:true:Minor_Factory:1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-","hitPoints","maxDamage"
]
}

,"destroyedWhenCapturedBy":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit destroyed on capture"
,"params":{
"value":"A colon delimited list of players, prepended with either BY: or FROM:"
}
,"info":[
"This option is not required. If not set, unit will be captured on defeat."
,"The attachTo must be an isInfrastructure unit."
,"Unit will be destroyed depending on if captured BY or FROM players in the list."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"May have multiple instances of this attachment for a specific unit."
]
,"example":[
"<option name='destroyedWhenCapturedBy' value='FROM:Germans:Italians'/>"
,"<option name='destroyedWhenCapturedBy' value='BY:Russians:Chinese'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='destroyedWhenCapturedBy' value='BY:Russians:Chinese'/>"
,"\n\t<option name='destroyedWhenCapturedBy' value='FROM:Russians:Chinese'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"destroyedWhenCapturedFrom","-reset-"
]
}

,"destroyedWhenCapturedFrom":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit is destroyed rather than captured"
,"params":{
"value":"A colon delimited list of players"
}
,"info":[
"This option is not required. If not set, unit will be captured on defeat."
,"The attachTo must be a isInfrastructure unit."
,"Can't be used by triggers, use destroyedWhenCapturedBy instead"
,"Unit will be destroyed if captured FROM players in the list."
,"destroyedWhenCapturedFrom just takes the value input then adds 'FROM:' to the beginning, then calls destroyedWhenCapturedBy with the new value."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='destroyedWhenCapturedFrom' value='Germans:Italians'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='factory' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='destroyedWhenCapturedFrom' value='Russians:Chinese'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"destroyedWhenCapturedBy","-reset-"
]
}

,"canBeCapturedOnEnteringBy":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Player may capture unit"
,"params":{
"value":"A colon delimited list of players"
}
,"info":[
"This option is not required, no effect if not set."
,"Allows a unit to be captured from one player to another, if the specified player enters a territory with captureUnitOnEnteringBy."
,"Any of the players in the list may capture the attachTo unit."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='canBeCapturedOnEnteringBy' value='Germans:Italians'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canBeCapturedOnEnteringBy' value='Russians:Chinese'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"captureUnitOnEnteringBy player"
,"captureUnitOnEnteringBy territory"
,"-reset-"
]
}

,"canBeGivenByTerritoryTo":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Player may receive unit"
,"params":{
"value":"A colon delimited list of players."
}
,"info":[
"This option is not required, no effect if not set."
,"Allows a unit to be given from one player to another player, if it is in a territory with changeUnitOwners."
,"Any of the players in the list may receive the attachTo unit."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='canBeGivenByTerritoryTo' value='Germans:Italians'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='canBeGivenByTerritoryTo' value='Russians:Chinese'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"changeUnitOwners","-reset-"
]
}

,"givesMovement":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit gives movement to other units"
,"params":{
"value":"A colon delimited pair: Integer followed by resource ie: '1:fighter'."
}
,"info":[
"This option is not required, no effect if not set."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"May have multiple instances of this attachment for a specific unit."
]
,"example":["<option name='givesMovement' value='1:fighter'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='airfield' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='givesMovement' value='1:fighter'/>"
,"\n\t<option name='givesMovement' value='1:bomber'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-","Units May Give Bonus Movement"
]
}

,"createsResourcesList":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Resources to be spawned each turn"
,"params":{
"value":"A colon delimited pair: Integer followed by resource ie: '3:food'."
}
,"info":[
"This option is not required, no effect if not set."
,"Resources in the list will be created at the end of the every turn."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"May have multiple instances of this attachment for a specific unit."
]
,"example":["<option name='createsResourcesList' value='2:PUs'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='refinery' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='createsResourcesList' value='3:oil'/>"
,"\n\t<option name='createsResourcesList' value='1:gas'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"resourceList","-reset-"
]
}

,"createsUnitsList":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Units to be spawned each turn"
,"params":{
"value":"A colon delimited pair: Quantity followed by unit ie: '2:inantry'."
}
,"info":[
"Units in the list will be created at the end of the every turn in each territory the attachTo unit exists."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"May have multiple instances of this attachment for a specific unit."
,"This option is not required, no effect if not set."
]
,"example":["<option name='createsUnitsList' value='3:undead'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='recruit_center' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='createsUnitsList' value='1:militia'/>"
,"\n\t<option name='createsUnitsList' value='2:Recruits'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"special":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"A list of possible special unitAttachment options"
,"params":{
"value":"A colon delimited list of possible special options for this unit."
}
,"info":[
"This option is not required, no effect if not set."
,"Currently only supports: canOnlyPlaceInOriginalTerritories"
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='special' value='canOnlyPlaceInOriginalTerritories'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='Armour' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='special' value='canOnlyPlaceInOriginalTerritories'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"canOnlyPlaceInOriginalTerritories","-reset-"
]
}

,"fuelCost":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Cost of resouce(s) for movement"
,"params":{
"value":"A resource from the resourceList"
,"count":"Amount used per movementCost expended"
}
,"info":[
"This option is not required, no effect if not set."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='fuelCost' value='oil' count='1'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='Armour' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='fuelCost' value='food' count='1'/>"
,"\n\t<option name='fuelCost' value='oil' count='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"movementCost","resourceList","resource type","-reset-"
]
}

,"targetsAA":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"List of AA targets"
,"params":{"value":"A colon delimited list of units which this AA Gun can hit"}
,"info":[
"This option is not required, defaults to 'all isAir units' if not set."
,"Any AA Guns in the same typeAA group should have the same targetsAA"
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='targetsAA' value='???'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='targetsAA' value='???'/>"
,"\n\t<option name='targetsAA' value='???'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"isAir","typeAA","-reset-"
]
}

,"willNotFireIfPresent":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Fire suppressed by units"
,"params":{"value":"A colon delimited list of units"}
,"info":[
"Applicable only to isAA units."
,"If any units in the list are present, the attachTo unit will not fire."
,"This option is not required, no effect if not set."
]
,"example":["<option name='willNotFireIfPresent' value='jammer:hq_unit'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='aagun' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='willNotFireIfPresent' value='jammer:hq_unit'/>"
,"\n\t<option name='willNotFireIfPresent' value='jammer:hq_unit'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"bombingTargets":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"A list of possible target units"
,"params":{"value":"A colon delimited list of units"}
,"info":[
"This option is not required, if not set, then all units that can be damaged are legal targets."
,"The list units are targets the attachTo unit may strategic bomb or rocket attack."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='bombingTargets' value='factory:bunker:airfield:harbour'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='halftrack' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defense' value='1'/>"
,"\n\t<option name='bombingTargets' value='factory:bunker:airfield:harbour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}
,"whenCombatDamaged":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Behaviors for damaged unit"
,"params":{
"value":"unitsMayNotLandOnCarrier or unitsMayNotLeaveAlliedCarrier"
,"count":"A colon delimited pair consisting hitpoints (but not clear what they signify)."
}
,"info":[
"This option is not required, no effect if not set."
,"Currently only allows: unitsMayNotLandOnCarrier, unitsMayNotLeaveAlliedCarrier."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
,"The POS2 states 'the value is the effect, while the count is the damage from where to where.<br>Example: &lt;option name='whenCombatDamaged' value='unitsMayNotLandOnCarrier' count='1:2'/>) units start at zero combat damage, and usually die at 1 damage.<br>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.'"
]
,"example":[
"<option name='whenCombatDamaged' value='unitsMayNotLeaveAlliedCarrier' count='1:2'/>"
,"\n<option name='whenCombatDamaged' value='unitsMayNotLandOnCarrier' count='1:2'/>"
]
,"context":[
"<attachment name='unitAttachment' attachTo='halftrack' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defense' value='1'/>"
,"\n\t<option name='whenCombatDamaged' value='unitsMayNotLeaveAlliedCarrier' count='1:1'/>"
,"\n\t<option name='whenCombatDamaged' value='unitsMayNotLandOnCarrier' count='1:1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitsMayNotLandOnCarrier","unitsMayNotLeaveAlliedCarrier","-reset-"
]
}

,"receivesAbilityWhenWith":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit gets ability from another unit"
,"params":{"value":"A colon delimited pair, Ability followed by unit ie; 'canBlitz:armour'"}
,"info":[
"This option is not required, defaults to false if not set."
,"Currently only works with 'canBlitz'."
,"This option may have multiple instances, meaning that it is adding to some variable, meaning that they may be cleared/reset by triggers if you want to (by prefixing with '-reset-')."
]
,"example":["<option name='receivesAbilityWhenWith' value='canBlitz:armour'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='halftrack' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defense' value='1'/>"
,"\n\t<option name='receivesAbilityWhenWith' value='canBlitz:armour'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"-reset-"
]
}

,"canBlitz":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may move through multiple empty enemy territories"
,"params":{"value":"true / false"}
,"info":[
"Enables the unit to move through multiple empty enemy territories in one turn."
,"This option is not required, defaults to false if not set."
]
,"example":["<option name='canBlitz' value='true'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='armour' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defense' value='3'/>"
,"\n\t<option name='canBlitz' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"Neutrals Are Blitzable"
]
}

,"isMarine":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit gets an attack bonus if attacking amphibiously"
,"params":{"value":"integer (1, 2, -1, 3)"}
,"info":[
"'value' is added to attack if unloaded from ships."
,"This option is not required, defaults to 0 if not set."
]
,"example":["<option name='isMarine' value='1'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='marine' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='isMarine' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
}

,"chooseBestRoll":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Pick the best dice or use all dice rolls"
,"params":{"value":"true / false"}
,"info":[
"This option is not required, defaults to false if not set."
,"Only valid when there is more than one roll."
,"When in Low Luck, we instead add +1 onto the strength for each extra roll."
]
,"example":["<option name='chooseBestRoll' value='true'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='artillery' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defenseRolls' value='1'/>"
,"\n\t<option name='chooseBestRoll' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
,"defenseRolls"
,"attackRolls"
]
}

,"defenseRolls":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Number of rolls during defense"
,"params":{"value":">= 0"}
,"info":[
"This option is not required, defaults to 1 if not set."
]
,"example":["<option name='defenseRolls' value='2'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='artillery' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defenseRolls' value='1'/>"
,"\n\t<option name='artillery' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
,"chooseBestRoll"
]
}

,"attackRolls":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Number of rolls during attack"
,"params":{"value":">= 0"}
,"info":[
"This option is not required, defaults to 1 if not set."
]
,"example":["<option name='attackRolls' value='2'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='artillery' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='attackRolls' value='1'/>"
,"\n\t<option name='artillery' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
,"chooseBestRoll"
]
}

,"unitSupportCount":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Number of units supported by this unit"
,"params":{"value":">= 0"}
,"info":[
"This option is not required, defaults to 1 if not set."
,"Combined with 'artillerySupportable' and 'artillery', these three create a set of support attachments at the start of the game."
]
,"example":["<option name='unitSupportCount' value='1'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='artillery' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='unitSupportCount' value='1'/>"
,"\n\t<option name='artillery' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
,"artillerySupportable"
,"artillery"
]
}

,"artillery":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may give artillery support"
,"params":{"value":"true / false"}
,"info":[
"This option is not required, defaults to false if not set."
,"Combined with 'artillerySupportable' and 'unitSupportCount', these three create a set of support attachments at the start of the game."
,"'artillery' gives support (+1 attack) to 'artillerySupportable' units (land, sea, or air are allowed)."
,"NOTE: If a territoryEffect reduces strength to less than 1, then this support will not have an effect. Use a supportAttachment instead."
]
,"example":["<option name='artillery' value='true'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='artillery' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='movement' value='1'/>"
,"\n\t<option name='artillery' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
,"artillerySupportable"
,"unitSupportCount"
,"territoryEffect name"
,"supportAttachment"
]
}

,"artillerySupportable":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit may receive artillery support"
,"params":{"value":"true / false"}
,"info":[
"This option is not required, defaults to false if not set."
,"Combined with 'artillery' and 'unitSupportCount', these three create a set of support attachments at the start of the game."
,"Enables the unit to receive support from an 'artillery' unit (land, sea, or air are allowed)."
,"NOTE: If a territoryEffect reduces strength to less than 1, then artillery support will not have an effect. Use a supportAttachment instead."
]
,"example":["<option name='artillerySupportable' value='true'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='movement' value='1'/>"
,"\n\t<option name='artillerySupportable' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
,"artillery"
,"unitSupportCount"
,"territoryEffect name"
,"supportAttachment"
]
}

,"hitPoints":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Hits required to kill a unit"
,"params":{"value":">= 0"}
,"info":"This option is not required, defaults to 1 if not set."
,"example":["<option name='hitPoints' value='2'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='bunker' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='hitPoints' value='2'/>"
,"\n\t<option name='movement' value='0'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
]
}

,"defense":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Defense value for a unit"
,"params":{"value":">= 0"}
,"info":[
"This option is not required, defaults to zero if not set."
,"A rolled dice must be equal or less than 'value' to hit the enemy."]
,"example":["<option name='defense' value='1'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='defense' value='1'/>"
,"\n\t<option name='movement' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
]
}

,"attack":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Attack value for a unit"
,"params":{"value":">= 0"}
,"info":[
"This option is not required, defaults to zero if not set."
,"A rolled dice must be equal or less than 'value' to hit the enemy."]
,"example":["<option name='attack' value='2'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='infantry' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='attack' value='1'/>"
,"\n\t<option name='movement' value='1'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
]
}

,"movement":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Unit movement allowance"
,"params":{"value":">= 0"}
,"info":["This option is not required, defaults to zero if not set."]
,"example":["<option name='movement' value='2'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='transport' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='movement' value='2'/>"
,"\n\t<option name='isSea' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
]
}

,"isSea":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Designates a sea unit"
,"params":{"value":"true / false"}
,"info":["This option is not required, defaults to false if not set."]
,"example":["<option name='isSea' value='true'/>"]
,"context":[
"<attachment name='unitAttachment' attachTo='transport' javaClass='UnitAttachment' type='unitType'>"
,"\n\t..."
,"\n\t<option name='movement' value='2'/>"
,"\n\t<option name='isSea' value='true'/>"
,"\n\t..."
,"\n</attachment>"
]
,"links":[
"unitList"
]
}


,"isAir":{
"parent":"unitAttachment"
,"type":"option"
,"desc":"Designates an air unit"
,"params":{"value":"true / false"}
,"info":[
"This option is not required, defaults to false if not set."
,"if is NOT also isStrategicBomber, then you need image variants: '_lr', and '_jp', and '_lr_jp'."
,"if is also isStrategicBomber, then you need image variants: '_lr', and '_hb', and '_lr_hb'."
]
,"example":["<option name='isAir' value='true'/>"]
,"context":"unitAttachment_fighter"
,"links":[
"movement"
,"carrierCost"
,"canScramble"
,"maxScrambleDistance"
,"canIntercept"
,"canEscort"
,"canAirBattle"
,"airDefense"
,"airAttack"
,"carrierCapacity"
,"Air Attack Sub Restricted"
]
}

,"a":0,"b":0,"c":0,"d":0,"e":0,"f":0,"g":0,"h":0,"i":0,"j":0,"k":0,"l":0,"m":0
,"n":0,"o":0,"p":0,"r":0,"s":0,"t":0,"u":0,"v":0,"w":0,"x":0
}
</script>
<!--,"q":0,"y":0,"z":0-->
<!-- # CONTEXT DATA # -->
<script type="application/json" id="context_data">
{"unitAttachment_fighter":[
"<attachment name='unitAttachment' attachTo='fighter' javaClass='UnitAttachment' type='unitType'>"
,"\n\t<option name='movement' value='4'/>"
,"\n\t<option name='carrierCost' value='1'/>"
,"\n\t<option name='isAir' value='true'/>"
,"\n\t<option name='attack' value='3'/>"
,"\n\t<option name='defense' value='4'/>"
,"\n\t<option name='canScramble' value='true'/>"
,"\n\t<option name='maxScrambleDistance' value='1'/>"
,"\n\t<option name='canIntercept' value='true'/>"
,"\n\t<option name='canEscort' value='true'/>"
,"\n\t<option name='canAirBattle' value='true'/>"
,"\n\t<option name='airDefense' value='2'/>"
,"\n\t<option name='airAttack' value='2'/>"
,"\n\t..."
,"\n</attachment>"
]
,"Economic Victory":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Economic Victory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Axis Economic Victory' value='120' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t<property name='Allies Economic Victory' value='120' editable='true'>"
,"\n\t\t<number min='0' max='1000'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"Total Victory":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Total Victory' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Axis Total Victory VCs' value='12' editable='true'>"
,"\n\t\t<number min='10' max='15'/>"
,"\n\t</property>"
,"\n\t<property name='Allies Total Victory VCs' value='12' editable='true'>"
,"\n\t\t<number min='10' max='15'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"Honorable Surrender":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Honorable Surrender' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Axis Honorable Surrender VCs' value='12' editable='true'>"
,"\n\t\t<number min='10' max='15'/>"
,"\n\t</property>"
,"\n\t<property name='Allies Honorable Surrender VCs' value='12' editable='true'>"
,"\n\t\t<number min='10' max='15'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"Projection of Power":[
"<propertyList>"
,"\n\t..."
,"\n\t<property name='Projection of Power' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Axis Projection of Power VCs' value='12' editable='true'>"
,"\n\t\t<number min='10' max='15'/>"
,"\n\t</property>"
,"\n\t<property name='Allies Projection of Power VCs' value='12' editable='true'>"
,"\n\t\t<number min='10' max='15'/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"Low Luck":[
"<propertyList>"
,"\n\t<property name='Low Luck' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Low Luck for AntiAircraft' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Low Luck for Technology' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t<property name='Low Luck for Bombing and Territory Damage' value='true' editable='true'>"
,"\n\t\t<boolean/>"
,"\n\t</property>"
,"\n\t..."
,"\n</propertyList>"
]
,"player sequence":[
"<sequence>"
,"\n\t..."
,"\n\t<step name='russianTech' delegate='tech' player='Russians'/>"
,"\n\t<step name='russianPurchase' delegate='purchase' player='Russians'/>"
,"\n\t<step name='russianPolitics' delegate='politics' player='Russians'/>"
,"\n\t<step name='russianUserActions' delegate='userActions' player='Russians'/>"
,"\n\t<step name='russianAirborneCombatMove' delegate='specialCombatMove' player='Russian' display='Airborne Attack Move'>"
,"\n\t\t<stepProperty name='airborneMove' value='true'/>"
,"\n\t</step>"
,"\n\t<step name='russianCombatMove' delegate='move' player='Russians'/>"
,"\n\t<step name='russianBattle' delegate='battle' player='Russians'/>"
,"\n\t<step name='russianNonCombatMove' delegate='move' player='Russians' display='Non Combat Move'/>"
,"\n\t<step name='russianPlace' delegate='place' player='Russians'/>"
,"\n\t<step name='russianTechActivation' delegate='tech_activation' player='Russians'/>"
,"\n\t<step name='russianEndTurn' delegate='endTurn' player='Russians'/>"
,"\n\t\tOR"
,"\n\t<step name='russianEndTurnNoPU' delegate='endTurnNoPU' player='Russians'/>"
,"\n\t..."
,"\n</sequence>"
]
,"airborne":[
"<attachment name='techAbilityAttachment' attachTo='paratroopers' javaClass='TechAbilityAttachment' type='technology'>"
,"\n\t<option name='airborneCapacity' value='3:airbase'/>"
,"\n\t<option name='airborneForces' value='true'/>"
,"\n\t<option name='airborneTypes' value='paratrooper:commando'/>"
,"\n\t<option name='airborneDistance' value=4'/>"
,"\n\t<option name='airborneBases' value=airbase'/>"
,"\n\t<option name='airborneTargettedByAA' value=aaGun:paratrooper'/>"
,"\n\t..."
,"\n</attachment>"
]
,"rulesAttachment":[
"<attachment name='rulesAttachment' attachTo='Chinese' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='movementRestrictionTerritories' value='Sinkiang:Central China:China:Manchuria:Kwangtung:French Indochina'/>"
,"\n\t<option name='movementRestrictionType' value='allowed'/>"
,"\n\t<option name='productionPerXTerritories' value='infantry' count='2'/>"
,"\n\t<option name='placementAnyTerritory' value='true'/>"
,"\n\t<option name='placementCapturedTerritory' value='true'/>"
,"\n\t<option name='placementPerTerritory' value='4'/>"
,"\n\t<option name='maxPlacePerTerritory' value='2'/>"
,"\n\t<option name='unlimitedProduction' value='true'/>"
,"\n\t<option name='dominatingFirstRoundAttack' value='true'/>"
,"\n\t<option name='negateDominatingFirstRoundAttack' value='true'/>"
,"\n\t<option name='placementInCapitalRestricted' value='true'/>"
,"\n</attachment>"
]
,"userActionAttachment":[
"<attachment name='conditionAttachment_Americans_Aid_UK' attachTo='Americans' javaClass='RulesAttachment' type='player'>"
,"\n\t<option name='switch' value='true'/>"
,"\n</attachment>"
,"\n<attachment name='triggerAttachment_Americans_Aid_UK' attachTo='Americans' javaClass='TriggerAttachment' type='player'>"
,"\n\t<option name='resource' value='PUs'/>"
,"\n\t<option name='resourceCount' value='6'/>"
,"\n\t<option name='players' value='British'/>"
,"\n</attachment>"
,"\n<attachment name='userActionAttachment_Americans_Aid_UK' attachTo='Americans' javaClass='UserActionAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachment_Americans_Aid_UK'/>"
,"\n\t<option name='activateTrigger' value='triggerAttachment_Americans_Aid_UK:1:false:false:false:false'/>"
,"\n\t<option name='text' value='AMERICANS_AID_UK'/>"
,"\n\t<option name='chance' value='6:6'/>"
,"\n\t<option name='costPU' value='10'/>"
,"\n\t<option name='attemptsPerTurn' value='1'/>"
,"\n\t<option name='actionAccept' value='Americans'/>"
,"\n</attachment>"
]
,"politicalActionAttachment":[
"<attachment name='politicalActionAttachmentRussiansDeclareWarOnJapanese' attachTo='Russians' javaClass='PoliticalActionAttachment' type='player'>"
,"\n\t<option name='conditions' value='conditionAttachmentRussiansNeutralJapan'/>"
,"\n\t<option name='relationshipChange' value='Japanese:Russians:War'/>"
,"\n\t<option name='text' value='RUSSIANS_DECLAREWAR_JAPANESE'/>"
,"\n\t<option name='chance' value='6:6'/>"
,"\n\t<option name='costPU' value='0'/>"
,"\n\t<option name='attemptsPerTurn' value='1'/>"
,"\n</attachment>"
]
}
</script>
<!--<link rel="icon" type="image/png" href="https://forums.triplea-game.org/assets/uploads/system/site-logo.png">-->
<link rel="icon" type="image/png" href="http://www.starlords3k.com/images/ta_obj_bsr.png">
<title>XOB</title>
<script type="text/javascript">
var data
,context_data
,ANDROID=0
,debug_on=1
,fav_list={}
,fav_sorted=[]
,sort_type=0
,menu_indent
,menu_sort
,obj_now
,sequence=[]
,find_now=-1
,find_itm=0
,seq_now=0
onerror=function(){}
onload=function(){
var i,n,t,c,s,chiluns_lst
,bad_obj=0
,hpn=document.getElementById('menu_pan_1')
,pn=document.getElementById('menu_buts')
,sorted=[]
tt_add(document.getElementById('triplea_logo'),[0,2,'Open Triplea forum<br>in new tab/window',2])
n=nn(pn,0,0,0,'b_menu lnk','Alphabetical')
n.onclick=menu_click
n=nn(pn,0,1,0,'b_menu lnk','Hierarchical')
n.onclick=menu_click


n=document.getElementById('search_inp')
n.onclick=search_click
n.onmouseleave=search_mout
n.onkeypress=search_press
n.is_selected=0
tt_add(n,[2,1,0,2])


pn=document.getElementById('search_div')
n=nn(pn,0,'b_search_xit',0,'lnk','Hide')
n.onclick=set_exit

pn=document.getElementById('seq_buts')
//n=nn(pn,11,'b_seq_prev',[0,2,'Previous<br>Object',2],'b_seq lnk',0,0,0,20,20)
n=nn(pn,11,'b_seq_prev',[0,2,'Previous<br>Object',2],'b_seq',30,30)
c=n.getContext('2d')
c.beginPath()
//c.strokeStyle='#88f'
c.fillStyle='#00f'
c.lineJoin='miter'
c.lineCap='square'
c.lineWidth=1
c.moveTo(5,15)
c.lineTo(25,0)
c.lineTo(25,30)
c.lineTo(5,15)
c.fill()
//c.stroke()

n.seq_dir=0
n.onclick=seq_click

//n=nn(pn,0,'b_seq_next',[0,2,'Next<br>Object',2],'b_seq lnk','>')
n=nn(pn,11,'b_seq_next',[0,2,'Next<br>Object',2],'b_seq',30,30)
c=n.getContext('2d')
c.beginPath()
c.fillStyle='#00f'
c.lineJoin='miter'
c.lineCap='square'
c.lineWidth=1
c.moveTo(25,15)
c.lineTo(0,0)
c.lineTo(0,30)
c.lineTo(25,15)
c.fill()




n.seq_dir=1
n.onclick=seq_click


pn=document.getElementById('alpha_buts')
for(i=65;i < 89;i++){
n=nn(pn,0,i,0,'b_alpha lnk',String.fromCharCode(i))
n.onclick=get_alpha
}

data=JSON.parse(document.getElementById('json_data').innerHTML);
context_data=JSON.parse(document.getElementById('context_data').innerHTML);
pn=document.getElementById('menu_pan_0')

if(localStorage.fav_list){
fav_list=JSON.parse(localStorage.fav_list)
}
for(i in data){
if(i=='xxx'){
}else if(i.length==1){
n=nn(pn,0,'menu_alpha')
x=i.toUpperCase()
nn(n,0,'alpha_'+x,0,'menu_alpha',x)
sorted[sorted.length]=n
n.srt=i
}else{
menu_sort=''
c=''
t=0
if(get_ndx(data[i],'desc')){
t=[1,2,data[i].desc,0,150]
}else{
//c='no_desc '
}
x=get_ndx(data[i],'warn')
bad_obj+=((x)? 1:0)
c+=((x)? ' warn'+data[i].warn[0]:'')
n=nn(pn,0,-1,t,'menu_itm lnk '+c,i)
sorted[sorted.length]=n
n.srt=i.toLowerCase()
n.obj=i
n.onclick=object_select

if(get_ndx(fav_list,i)){
fav_set(0,i)
}

// add hierarchical object .
if(get_ndx(data[i],'parents')==0){
n=nn(hpn,0,'h_'+i,0,'h_itm')
n.exp=0
n.srt=i.toLowerCase()
nn(n,0,-1,0,'hmp_exp','+')
j=nn(n,0,-1,t,'h_lnk lnk',i)
j.obj=i
j.onclick=object_select
nn(n,0,-1,t,'chiluns')
}
}
}

// HIERARCHICAL MENU .
for(i=0;i < pn.childNodes.length;i++){
v=pn.childNodes[i]
if(v.obj){
if(get_ndx(data[v.obj],'parent')){
if(data[v.obj].parent !='various'){
// add to parent object .
n=document.getElementById('h_'+data[v.obj].parent)
n.lastChild.appendChild(document.getElementById('h_'+v.obj))
}
}
if(get_ndx(data[v.obj],'parents')){
// add all options to object as children (these options have multiple parents).
for(j=0;j < data[v.obj].parents.length;j++){
x=data[v.obj].parents[j]
if(x==''){
break
}
nc=document.getElementById('h_'+x).lastChild
n=nn(nc,0,'opt_'+v.obj,0,'h_itm')
n.exp=0
n.srt=v.obj.toLowerCase()
nn(n,0,-1,0,'hmp_exp lyt_dot','&#149;')
z=nn(n,0,-1,[1,2,get_ndx(data[v.obj],'desc'),0,150],'h_lnk lnk',v.obj)
z.obj=v.obj
z.onclick=object_select
}
}
}
}

// HIERARCHICAL sort & dot setting .
for(i=0;i < pn.childNodes.length;i++){
v=pn.childNodes[i]
if(v.obj){
v=document.getElementById('h_'+v.obj)
if(v){
if(v.lastChild.childNodes.length){
v.firstChild.onclick=h_expand
set_class(v.firstChild,'lnk',1)
chiluns_lst=[]
x=v.lastChild
for(j=0;j < x.childNodes.length;j++){
chiluns_lst[chiluns_lst.length]=x.childNodes[j]
}
chiluns_lst.sort(sort_set)
for(cn=0;cn < chiluns_lst.length;cn++){
x.appendChild(chiluns_lst[cn])
}
}else{
v.firstChild.innerHTML='&#149;'
set_class(v.firstChild,'lyt_dot',1)
}
}else{
// multi options
}
}
}
document.getElementById('h_game').firstChild.onclick()
sorted.sort(sort_set)
for(i=0;i < sorted.length;i++){
pn.appendChild(sorted[i])
}

x=window.location.hash.substr(1)
x=x.replace(/%20/g,' ')
if(x){
console.debug('1111111111=')
object_get(x)
}else if(localStorage.last_obj){
console.debug('localStorage.last_obj='+localStorage.last_obj)
object_get(localStorage.last_obj)
}

document.getElementById('xob_cnt').innerHTML=Object.keys(data).length+' Definitions'
}
function get_alpha(){
console.debug('this.bid='+this.bid)
console.debug('alpha_'+String.fromCharCode(this.bid))
document.getElementById('alpha_'+String.fromCharCode(this.bid)).scrollIntoView()
}
function search_click(){
this.style.color='#000'
if(this.value=='Search'){
this.value=''
}else if(!this.is_selected){
console.debug('search_click() set selected')
this.is_selected=1
var n=this
setTimeout(
function(){
n.select()
},50)
}else{
console.debug('search_click() IS selected')
this.is_selected=0
}
disp('search_div',6)
}
function search_mout(){
disp('search_tip')
}
function search_press(e){
var v=this.value
,last_find=find_now
document.getElementById('search_err').innerHTML=''
disp('search_tip')
switch(e.keyCode){
case 13:
if(v.length > 2){
search_do(v)
}else{
document.getElementById('search_err').innerHTML='Minimum 3 characters'
}
break
case 38:
case 40:
if(find_now < 0){
// no results .
return
}else{
console.debug('find_now='+find_now)
if(e.keyCode==40){
console.debug('DOWN')
if(find_now < document.getElementById('finds').childNodes.length-1){
find_now++
}else{
// at end .
return
}
}else if(find_now > 0){
console.debug('UP=')
find_now--
}else{
// at top .
return
}
set_class(document.getElementById('finds').childNodes[last_find],'is_find_now',0)
}
set_class(document.getElementById('finds').childNodes[find_now],'is_find_now',1)
object_show(document.getElementById('finds').childNodes[find_now].innerHTML)
break
}
}
function set_exit(){
disp(this.parentNode)
}
function search_do(obj){
var i,n,x,d
,is_found
,find_count=0
,pn=document.getElementById('finds')

find_itm=obj
console.clear()
pn.innerHTML=''
disp('search_tip')

for(obj in data){
if(obj !='xxx' && obj.length > 1){
if(!search_string(obj)){
// console.debug('FOUND obj Name = '+obj)
// }else{

for(x in data[obj]){
if( x=='desc'
|| x=='params'
|| x=='info'
){
if(typeof(data[obj][x])=='string'){
if(search_string(data[obj][x])){
// console.debug('FOUND in '+x+' = '+obj)
break
}
}else if(typeof(data[obj][x])=='object'){
is_found=0
for(i in data[obj][x]){
if(search_string(data[obj][x][i])){
// console.debug('FOUND in '+x+' = '+obj)
is_found=1
break
}
}
if(is_found){
break
}
}else{
console.debug('.......... '+ x+' = ' + typeof(data[obj][x]))
}
}
}
}
}
}

if(find_count){
document.getElementById('search_itm').innerHTML='Found&nbsp;'+find_count+'&nbsp;page'+((find_count > 1)? 's':'')+'&nbsp;with "'+find_itm+'"'
find_now=0
set_class(pn.firstChild,'is_find_now',1)
object_show(pn.firstChild.innerHTML)

if(find_count > 1){
disp('search_tip',6)
}
}else{
document.getElementById('search_itm').innerHTML='Did&nbsp;not&nbsp;find "'+find_itm+'"'
find_now=-1
}
// vis('b_find_next',(find_now==0))
// vis('b_find_prev')



function search_string(search_txt){
var re = new RegExp(find_itm, "i")

// console.debug('search_txt='+search_txt)
// console.debug('find_itm='+find_itm)
// console.debug('search_txt.search(re)='+search_txt.search(re))
// console.debug('re='+re)
if(search_txt.search(re) < 0){
return 0
}else{
n=nn(pn,0,-1,0,'search_itm lnk',obj)
n.obj=obj
n.child_num=find_count
n.onclick=object_select
find_count++
return 1
}
}

}
function fav_set(e,i){
var j,n
,pn=document.getElementById('fav_div')

i=(i)? i:this.obj
n=nn(pn,0,'fav_'+i,0,'fav_row')
j=nn(n,0,-1,[0,1,'Cancel<br>Favorite',2],'fav_star','&starf;')
j.obj=i
j.onclick=fav_kill
n=nn(n,0,-1,0,'menu_itm lnk fav_itm',i)
n.obj=i
n.onclick=object_select
if(this.is_tit){
set_class(this.star,'is_fav',1)
this.tip[2]='Cancel<br>Favorite'
this.onclick=fav_kill
}
fav_list[i]=1
localStorage.fav_list=JSON.stringify(fav_list)
}
function fav_kill(){
var obj=this.obj

delete fav_list[obj]
localStorage.fav_list=JSON.stringify(fav_list)
document.getElementById('fav_'+obj).remove()
if(obj_now==obj){
n=document.getElementById('main_obj')
set_class(n.star,'is_fav',0)
n.tip[2]='Set as<br>Favorite'
n.onclick=fav_set
}
}
function h_expand(){
var n=this.parentNode
n.exp=(n.exp)? 0:1
this.innerHTML=(n.exp)? '&minus;':'+'
set_class(n.lastChild,'exp_yes',n.exp)
}
function seq_click(){
if(this.seq_dir){
seq_now++
}else if(seq_now){
seq_now--
}
object_show(sequence[seq_now])
}
//function find_click(){
// set_class(document.getElementById('finds').childNodes[find_now],'is_find_now',0)
//
// if(this.find_dir){
// find_now++
// }else if(find_now){
// find_now--
// }
// set_class(document.getElementById('finds').childNodes[find_now],'is_find_now',1)
// object_show(document.getElementById('finds').childNodes[find_now].innerHTML)
//}

function object_get(obj){ // Obj NON-click event - Not a sequence movement
console.debug(' ___ object_get() From: '+object_get.caller.name)
seq_now=sequence.length
sequence[seq_now]=obj
object_show(obj)
console.debug('33 seq_now='+seq_now)
console.debug('33 sequence.length='+sequence.length)
}
function object_select(){ // Obj click event - Not a sequence movement
console.debug(' ___ object_select()')
object_show(this.obj)
if(this.child_num){
set_class(document.getElementById('finds').childNodes[find_now],'is_find_now',0)
find_now=this.child_num
document.getElementById('search_inp').focus()
}else{
seq_now=sequence.length
sequence[seq_now]=this.obj
}
}
function object_show(obj){
var n,j,v,d,i
,sort_cld=[]
,pn=document.getElementById('main_tit')
if(obj){
d=data[obj]
}else{
obj=this.obj
d=data[obj]
}
if(!d){
return
}
localStorage.last_obj=obj
obj_now=obj

vis('b_seq_prev',seq_now > 0)
vis('b_seq_next',seq_now < sequence.length-1)
// if(find_now >=0){
// vis('b_find_prev',find_now > 0)
// vis('b_find_next',find_now < document.getElementById('finds').childNodes.length-1)
// }

pn.innerHTML=''
x=get_ndx(fav_list,obj)
t=(x)? 'Cancel<br>Favorite':'Set as<br>Favorite'
n=nn(pn,0,'main_obj',[0,2,t,2])
n.onclick=(x)? fav_kill:fav_set
n.obj=obj
n.is_tit=1
n.star=nn(n,0,-1,0,'fav_star_h','&starf;')
set_class(n.star,'is_fav',x)
nn(n,0,-1,0,0,obj)
if(get_ndx(d,'desc')){
nn(pn,0,'prop_desc',0,0,d.desc)
}
pn=document.getElementById('main_pan')
pn.innerHTML=''
if(get_ndx(data,obj)==0){
nn(pn,0,-1,0,'prop_warn warn1','Warning:')
nn(pn,0,-1,0,'prop_rsn','"'+obj+'" Not Found')
nn(pn,0,-1,0,0,'<br>If using hash switch, text is case sensitive')
return
}
if(get_ndx(d,'parents')){
nn(pn,0,-1,0,0,'Parents:')
get_list(d.parents)
}else if(get_ndx(d,'parent')){
if(get_ndx(d,'type')){
switch(d.type.toLowerCase().charAt(0)){
case 'a':
case 'o':
v='An '+d.type+' within'
break
default:
v='A '+d.type+' within'
}
}else{
v='A child of'
}
t=0
if(get_ndx(d,'desc')){
t=[1,2,d.desc]
}
n=nn(pn,0,-1,0,'prop_tit',v)
j=nn(n,2,-1,0,'prop_lnk lnk',d.parent)
j.obj=d.parent
j.onclick=object_select
}

if(get_ndx(d,'params')){
nn(pn,0,-1,0,'prop_tit','Parameters:')
n=nn(pn,16,'no_mgn')
for(i in d.params){
nn(n,0,-1,0,'prop_para','<b>'+i+'</b>:&nbsp;'+d.params[i])
}
}
// WARNING .
if(get_ndx(d,'warn')){
t=[0,'Question:','Information not complete!','Wiki discrepancy:']
nn(pn,0,-1,0,'prop_warn warn'+d.warn[0],t[d.warn[0]])
nn(pn,0,-1,0,'prop_rsn',d.warn[1])
}

if(get_ndx(d,'info')){
if(Array.isArray(d.info)){
n=nn(pn,16,'prop_nfo')
for(i=0;i < d.info.length;i++){
nn(n,19,-1,0,'prop_li',d.info[i])
}
}else{
nn(pn,0,-1,0,0,'<br>'+d.info)
}
}

// EXAMPLES .
if(get_ndx(d,'example')){
nn(pn,0,-1,0,0,'<br>Example:')
j=nn(pn,0,'copy_clip',0,'prop_lnk lnk','copy example to clipboard')
j.onclick=copy_to_clip
n=nn(pn,12,'prop_xam',0,'txt_area')
n.style.height=0


if(Array.isArray(d.example)){
// unique example array .
for(i=0;i < d.example.length;i++){
n.value+=d.example[i]
}
}else{
// common example array .
x=context_data[d.example]
for(i=0;i < x.length;i++){
n.value+=x[i]
}
}
n.style.height=n.scrollHeight+'px'
j.txt=n
}

// CONTEXT .
if(get_ndx(d,'context')){
nn(pn,0,-1,0,0,'<br>Context:')
j=nn(pn,0,'copy_clip',0,'prop_lnk lnk','copy context to clipboard')
j.onclick=copy_to_clip
n=nn(pn,12,'prop_ctx',0,'txt_area')

if(Array.isArray(d.context)){
// unique context array .
for(i=0;i < d.context.length;i++){
n.value+=d.context[i]
}
}else{
// common context array .
x=context_data[d.context]
for(i=0;i < x.length;i++){
n.value+=x[i]
}
}
n.style.height=n.scrollHeight+'px'
j.txt=n
}
if(get_ndx(d,'vers')){
nn(pn,0,-1,0,0,'<br>Version Compatibility:')
n=nn(pn,16,-1)
for(i=0;i < d.vers.length;i++){
nn(n,0,-1,0,'',d.vers[i])
}
}
if(get_ndx(d,'switches')){
nn(pn,0,-1,0,0,'<br>Switches available:')
get_list(d.switches)
}

// CHILUNS & multi parent options .
if(get_ndx(d,'chiluns')){
// find all children of current item .
nn(pn,0,-1,0,0,'<br>'+d.chiluns+':')
n=nn(pn,7,'tab_0')
for(r in data){
cn=data[r]
if(get_ndx(cn,'parent')==obj){
// obj is child of current item .
j=nn(n,5,'tab_row')
j.srt=r.toLowerCase()
sort_cld[sort_cld.length]=j
m=nn(j,6,-1)
nn(m,0,-1,0,'tab_opt lnk',r)
if(get_ndx(cn,'desc')){
nn(j,6,-1,0,'tab_note',cn.desc)
}

j.obj=r
j.onclick=object_select
}
}

}else{
// just in case this has options that have multi parents .
nn(pn,0,-1,0,0,'<br>Options:')
n=nn(pn,7,'tab_0')
}
// Search for options with multi parents .
for(r in data){
cn=data[r]
if(get_ndx(cn,'parents')){
for(j=0;j < cn.parents.length;j++){
if(cn.parents[j]==obj){
// obj is child of current item (has multi parents).
j=nn(n,5,'tab_row')
j.srt=r.toLowerCase()
sort_cld[sort_cld.length]=j
m=nn(j,6,-1)
nn(m,0,-1,0,'tab_opt lnk',r)
if(get_ndx(cn,'desc')){
nn(j,6,-1,0,'tab_note',cn.desc)
}
j.obj=r
j.onclick=object_select
break
}
}
}
}
if(sort_cld.length){
sort_cld.sort(sort_set)
for(i=0;i < sort_cld.length;i++){
n.appendChild(sort_cld[i])
}
}else{
n.previousSibling.remove()
n.remove()
}

// LINKS .
if(get_ndx(d,'links')){
nn(pn,0,-1,0,0,'<br>Related:')
get_list(d.links)
}
if(document.getElementById('search_div').style.display=='flex'){
highlight(document.getElementById('main_div'))
}
}
function highlight(node){
var n,match_pos,before,middle,after,highlight_span,re
,word=find_itm

re = new RegExp(word, "i"); // regular expression of the search term
if (!node){
node = document.body;
}
for(node=node.firstChild; node; node=node.nextSibling){
if(node.nodeType == 3){ // text node
n=node
match_pos = 0;
//for (match_pos; match_pos > -1; n=after)
{
match_pos = n.nodeValue.search(re);
//match_pos = n.nodeValue.toLowerCase().indexOf(word.toLowerCase());

if (match_pos > -1){ // if we found a match

before = n.nodeValue.substr(0, match_pos); // split into a part before the match
middle = n.nodeValue.substr(match_pos, word.length); // the matched word to preserve case
//after = n.splitText(match_pos+word.length);
after = document.createTextNode(n.nodeValue.substr(match_pos+word.length)); // and the part after the match
highlight_span = document.createElement("span"); // create a span in the middle

highlight_span.className='find_hilite'
highlight_span.appendChild(document.createTextNode(middle)); // insert word as textNode in new span
n.nodeValue = before; // Turn node data into before
n.parentNode.insertBefore(after, n.nextSibling); // insert after
n.parentNode.insertBefore(highlight_span, n.nextSibling); // insert new span
//highlights.push(highlight_span); // add new span to highlights array
//highlight_span.id = "highlight_span"+highlights.length;
node=node.nextSibling; // Advance to next node or we get stuck in a loop because we created a span (child)
}
}
}else{
if(node.nodeType==1){
highlight(node);
}
}
}
}
function get_list(typ){
var j,d,x
,n=document.getElementById('main_pan')
n=nn(n,7,'tab_0')
for(i=0;i < typ.length;i++){
x=typ[i]
if(x==''){
return
}

j=nn(n,5,'tab_row')
if(get_ndx(data,x)){
m=nn(j,6,-1)
nn(m,0,-1,0,'tab_opt lnk',x)
if(get_ndx(data[x],'desc')){
nn(j,6,-1,0,'tab_note',data[x].desc)
}
j.obj=x
j.onclick=object_select
}else{
set_class(j,'bad_obj',1)
nn(j,6,-1,0,'tab_opt bad_lnk',x)
nn(j,6,-1,0,'tab_note','Missing')

}
}
}
function menu_click(){
sort_type=this.bid
set_class('menu_0','disp_none',sort_type)
set_class('menu_1','disp_none',sort_type==0)
}
function copy_to_clip(){
var n=this.txt
n.focus()
n.select()
document.execCommand('copy')
setTimeout(function(){
n.blur()
},200)
}
function sort_set(b,a){
return (a.srt > b.srt)? -1 : (a.srt < b.srt)? 1 : 0;
}
function logo_error(){
console.debug(' ___ logo_error()')
disp('triplea_logo')
}
</script>
<script id='xuniversal.js' type="text/javascript">
/*
.
xuniversal.js - partial .
.
*/
function get_ndx(a,k){
if(typeof(a)=='undefined'){
console.debug('get_ndx bad object called from='+get_ndx.caller.name)
console.debug(a)

}
if(typeof(k)=='undefined' || typeof(a[k])=='undefined'){
return 0
}else{
return a[k]
}
}
function set_class(n,c,v){
var i
,e=(typeof(n)!='object')? document.getElementById(n):n
if(e){
if(typeof(e.classList)=='undefined'){
// may be title text element
console.debug('CLASSLIST ERROR In '+document.title)
console.debug(e)
}
if(typeof(c)=='object'){
for(i in c){
e.classList[(v)? 'add':'remove'](c[i])
}
}else{
e.classList[(v)? 'add':'remove'](c)
}
}else{
}
}
function vis(e,v){
// console.debug('vis() called by '+vis.caller.name+', v='+v)
// console.debug('doc= '+document.head.ownerDocument.title)

if(typeof(e)!='object'){
// console.debug('object='+e)
var n=document.getElementById(e)
if(!n){
if(document.head.ownerDocument){
alert(document.head.ownerDocument.title+" cannot set vis="+e)
}else{
alert("xuniversal.js cannot set vis="+e)
}
return
}
e=n
}
// console.debug('eid='+e.id)
if(v==2){
setTimeout(function(){vis(e,1)}, 50)
}else if(e){
e.style.visibility=(v)? 'visible':'hidden'
}
}
function disp(e,v){
// console.debug('disp() from = '+disp.caller.name)
var d='none'
,t,n
,log=''
,s=['','inline','block','','table-row','inline-block','flex','inline-flex'] /* 3 was table */
if(v){d=s[(v==true)? 1:v]}
// console.debug('v='+v+', d='+d)
// console.debug(e)
if(typeof(e)!='object'){
n=document.getElementById(e)
if(!n){
log='cannot set disp on : '+e
}
e=n
}
if((!e || !e.style) && !log){
log=' e.style not set for : '+e
}

if(log){
t=(disp.caller)? disp.caller.name:'unknown'
if(top.debug_on){
// so see while debugging...
alert('disp() caller : '+t+"\n"+document.head.ownerDocument.title+' - '+log)
}else{
// natural js error will not show el name, so must use log_error()
log+='&js_err='+top.encode_data(JSON.stringify([log,document.head.ownerDocument.title+'.','?']))
+'&err_func='+t

log_error('disp()',log)
}
return
}
e.style.display=d
}
</script>
<script id='top_common.js' type="text/javascript">
/*
.
top_common.js .
.
*/
var timer_tt // tooltip .
,tt_stop=0
,node_types=['div','input','span','label'
,'img' /* 4 */
,'tr','td','table','form','br','hr','canvas','textarea'
,'th','iframe','audio'
,'ul' /* 16 */
,'select' /* 17 */
,'option' /* 18 */
,'li' /* 19 */
,'th' /* 20 width height colSpan rowSpan.*/
,'td' /* 21 width height colSpan rowSpan.*/
,'a' /* 22 */
]
/*
0=parent, 1=typ, 2=id(-1=NULL), 3=tit, 4=clas, 5=txt, 6=val(top), 7=maxlen(left) (-right), 8=offset x, 9=offset y

typ 5:txt 6:val 7: 8: 9:
0= div .
1= input 5:tabIndex 6:value maxlength type .
2= span .
3= label .
4= img 5:src 6:left 7:top 8:width 9:height (not style) .
5= tr .
6= td colSpan rowSpan.
7= table cellSpacing cellPadding.
8= form .
9= unused .
10= hr .
11= canvas 5:width 6:height 7:(-)right or left .
12= textarea.
13= th colSpan rowSpan.
14= iframe marginwidth scrolling TIT=scr
15= audio src controls autobuffer.
16= ul .
18=option text value selected
20= th
*/
function nn(pn,typ,id,tit,clas,txt,val,maxl,offx,offy){
if(!pn){
//pn=document.getElementById('')
//alert("nn()\nFrom : "+nn.caller.name+"\npn= NULL\nid="+id+'\nclas='+clas+'\ntyp='+typ)
alert("nn()\nFrom : ???\npn= NULL\nid="+id
+'\nclas='+clas
+'\ntyp='+node_types[typ]
+'\n\nFrom : '+nn.caller.name)
return null
}
if(!pn.appendChild){
//alert("nn()\nFrom : "+nn.caller.name+"\npn.appendChild= Not Function\nid="+id+'\nclas='+clas+'\ntyp='+typ)
alert("nn()\nFrom : ???\npn.appendChild= Not Function\nid="+id
+'\nclas='+clas
+'\ntyp='+node_types[typ]
+'\n\nFrom : '+nn.caller.name)
return null
}


var nc=pn.appendChild(document.createElement(node_types[typ]))
if(clas){nc.className=clas}
if(typ==8){
nc.name=id
}else if(typ==14){/* MUST SET FRAMES TO NAME (frames[frames.length-1].name=?) */
nc.id=id
nc.name=id
nc.marginwidth=(txt)? txt : 'no'
nc.scrolling=(val)? 'yes' : 'no'
nc.src=tit
return nc
}else{
if(isNaN(id)){
nc.id=id
}else{
if(id >= 0){nc.bid=id}
}
}
if(tit){
if(Array.isArray(tit)){
tt_add(nc,tit)
}else{
nc.title=tit
}
}
if(typ==4){
if(txt){nc.src=txt}
if(val){nc.style.left=maxl+'px'}
if(maxl){nc.style.top=val+'px'}
if(offx!='undefined'){nc.width=offx} // %%%0 sb typeof(
if(offy!='undefined'){nc.height=offy} // %%%0 sb typeof(
}else if(typ==1){
if(txt){nc.tabIndex=txt}
if(val!=null){nc.value=val}
if(maxl){nc.maxLength=maxl}
if(offx!='undefined'){nc.type=offx} // %%%0 sb typeof(
}else if(typ==7){
nc.cellSpacing=(txt)? txt:0
nc.cellPadding=(val)? val:0
}else if(typ==11){
if(val){nc.width=txt}
if(txt){nc.height=val}
if(maxl < 0){ nc.style.right=Math.abs(maxl)+'px'}
if(maxl > 0){ nc.style.left=maxl+'px'}
}else if(typ==15){
//if(txt){nc.setAttribute('src',txt)}
if(txt){nc.src=txt}
if(val){nc.controls=1}
if(maxl){nc.autobuffer=1}
}else if(typ==22){
nc.href='#'+val
nc.innerHTML=txt
}else if(typ==18){
nc.text=txt
nc.value=val
if(maxl){nc.selected=1}
}else{
if(typ==6 || typ==13){
if(typeof(val) != 'undefined'){ nc.colSpan=val}
if(maxl){ nc.rowSpan=maxl}
}else if(typ==20 || typ==21){
if(val){ nc.width=val}
if(maxl){ nc.height=maxl}
if(offx!='undefined'){ // %%%0 sb typeof(
nc.colSpan=(offx)? offx:20 // colspan=0 no work, need > max
}
}else{
if(val){ nc.style.top=val+'px'}
if(maxl < 0){ nc.style.right=Math.abs(maxl)+'px'}
if(maxl > 0){ nc.style.left=maxl+'px'}
}
if(txt){
nc.innerHTML=txt/* cannot use textContent as does not handle html */
if(txt=='&nbsp' || txt=='&nbsp;'){
nc.innerHTML='&nbsp; &nbsp;'
}
}
}
//if(off0!=undefined && typ!=4 & typ!=1 && typ < 20){
// if(offx=='undefined'){
// nc.style.backgroundPosition='0 0'
// }else if(typ!=4 && typ!=1 && typ < 20){


if(typeof(offx) !='undefined' && typ!=4 && typ!=1 && typ < 20){
offx=-(offx)+'px '
if(typeof(offy)=='undefined'){
offx+=' 0'
}else{
offy=-(offy)+'px'
offx+=offy
}
nc.style.backgroundPosition=offx
}
return nc
}

function num_fmt(number,decimals) {

// * example 1: num_fmt(1234.56);
// * returns 1: '1,235'
// * example 2: num_fmt(1234.56, 2, ',', ' ');
// * returns 2: '1 234,56'
// * example 3: num_fmt(1234.5678, 2, '.', '');
// * returns 3: '1234.57'
// * example 4: num_fmt(67, 2, ',', '.');
// * returns 4: '67,00'
// * example 5: num_fmt(1000);
// * returns 5: '1,000'
// * example 6: num_fmt(67.311, 2);
// * returns 6: '67.31'
// * example 7: num_fmt(1000.55, 1);
// * returns 7: '1,000.6'
// * example 8: num_fmt(67000, 5, ',', '.');
// * returns 8: '67.000,00000'
// * example 9: num_fmt(0.9, 0);
// * returns 9: '1'
// * example 10: num_fmt('1.20', 2);
// * returns 10: '1.20'
// * example 11: num_fmt('1.20', 4);
// * returns 11: '1.2000'
// * example 12: num_fmt('1.2000', 3);
// * returns 12: '1.200'
// * example 13: num_fmt('1 000,50', 2, '.', ' ');
// * returns 13: '100 050.00'
// Strip all characters but numerical ones.

number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
s = '',
toFixedFix=
function(n,prec){
var k = Math.pow(10, prec);
return '' + Math.round(n * k) / k;
}
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join('.');
}
function tt_add(n,t){
n.tip=t
if(ANDROID){
n.addEventListener('touchstart',tt_now)
n.addEventListener('touchend',tt_xit)
}else{
n.addEventListener('mouseenter',tt_now,false)
n.addEventListener('mouseleave',tt_xit,false)
}
}
function tt_remove(n){
if(ANDROID){
n.removeEventListener('touchstart',tt_now)
n.removeEventListener('touchend',tt_xit)
}else{
n.removeEventListener('mouseenter',tt_now,false)
n.removeEventListener('mouseleave',tt_xit,false)
}
}
function tt_xit(){
//console.debug(' ___ tt_xit()')
clearTimeout(timer_tt)
disp('tool_tip')
}
function tt_now(e){
var t=this
disp('tool_tip')
//console.debug(' ___ tt_now()')
if(t.tip[2]==0 || tt_stop==1){return}

clearTimeout(timer_tt)
if(e){
e.stopPropagation()
}
timer_tt=setTimeout(
function timer_tt_setTimeout(){
tt_show(t)
},200)
}
function tt_show(t){
// [ ]
// 0 : horz .
// 1 : vert .
// 2 : text .
// 3 : align .
// 4 : max wid .
// 5 : min hgt .
// 6 : class .


var c=(t.tip[6])? t.tip[6]:''
,n=document.getElementById('tool_tip')
,v=iframe_offset(t)
,x=v.x
,y=v.y
n.innerHTML=t.tip[2]

disp(n,2) // block needed for <br>
if(t.tip[0] > 99){
x+=t.clientX-n.clientWidth-30
y+=t.clientY-n.clientHeight*.5
}else{
switch(t.tip[0]){
case 0: // left .
x-=n.clientWidth+5
break
case 1: // right .
x+=t.clientWidth+5
break
case 2: // center .
x+=t.clientWidth*.5-n.clientWidth*.5
break
}
switch(t.tip[1]){
case 0: // above .
y-=n.clientHeight+5
break
case 1: // below .
y+=t.clientHeight+5
break
case 2: // center .
y+=t.clientHeight*.5-n.clientHeight*.5
break
case 3: // inside bottom
y+=t.clientHeight-n.clientHeight
break
}
x=(x < n.clientWidth+5)? n.clientWidth:x
//x=(x+n.clientWidth+5 > outerWidth)? outerWidth-n.clientWidth*2:x
x=(x+n.clientWidth+5 > outerWidth)? outerWidth-n.clientWidth-5:x
}


// CLASS / ALIGN .
switch(t.tip[3]){
case 0: // left .
c+=' a_lft'
break
case 1: // right .
c+=' a_rgt'
break
case 2: // center .
c+=' a_cen'
break
case 3: // flex column .
c+=' f_col'
break
}
n.className=c

// MAX WIDTH .
n.style.maxWidth=(t.tip[4])? t.tip[4]+'px':''
n.style.minHeight=(t.tip[5])? t.tip[5]+'px':''
n.style.top=y+'px'
n.style.left=x+'px'
}
function iframe_offset(e){
var x=e.getBoundingClientRect().left
,y=e.getBoundingClientRect().top
,w=e.ownerDocument.defaultView
do{
e = e.offsetParent
if(e == null){
if(!w){
// page may have reloaded .
return
}
e = w.frameElement // w was null 2017.10.03 for 1283
w = w.parent
if(e){
x += e.offsetLeft+e.scrollLeft
y += e.offsetTop+e.scrollTop
}
}
}while(e)
return {x:x,y:y}
}

</script>
<style type="text/css">
body{ margin:0;font:15px Arial, sans-serif;overflow:hidden;
position:fixed;top:0;left:0;width:100vw;height:100vh}
#page_div{ display:flex}
#page_tit{ position:absolute;top:10px;left: 350px;
text-align:center;font-size:24px;color:#a22}
.scrl{ display:flex;margin-bottom:10px;overflow-x:hidden}
#menu_test{ position:absolute;;top:0;right:0;width:300px;
display:flex;flex-flow:column;
flex:0 0 270px;margin:10px;height:calc(100vh - 20px);
background:#fdf;z-index:99;overflow:auto}
.h_itm{ display:flex;flex-flow:column}
.hmp_exp{ margin:-3px 0 -19px 0px;width:19px;border-radius:10px;font-size:18px;
padding:0 0 1px 0;line-height:19px;text-align:center}
.lyt_dot{ cursor:default;font-size: 12px}
.h_lnk{ padding:0 0 1px 5px;border-radius:3px;margin:-2px 0 0 15px;
white-space:nowrap;overflow:hidden;width:230px}
.chiluns{ display:none}
.exp_yes{ display:flex;flex-flow:column;margin-left:15px}
#menu_div{ flex:0 0 300px;height:calc(100vh - 20px);max-width:300px}
#menu_buts{ height:30px;display:flex;width:272px;margin:10px 0 0 10px}
#alpha_buts{ height:34px;display:flex;width:280px;flex-flow:row wrap;font-size:12px;font-weight:bold;
margin:0 0 2px 10px}

#seq_buts{ position:absolute;;top:45px;left:310px;display:flex}
.b_seq{ visibility:hidden;cursor:pointer}


.a_rgt{ text-align:right;padding-right:5px}
.a_lft{ text-align:left}
.a_cen{ text-align:center}
.f_col{ flex-flow:column;align-items:center;text-align:center}
.f_col > ul{padding: 0px 5px;justify-content:center;margin:0px;text-align:left} /* toolip */

/* MENUS */
.fav_row{ display:flex}
.fav_row:last-child{border-bottom:1px #ccc solid;}
.b_alpha{ display:flex;align-items:center;justify-content:center;
border:#00f 1px solid;flex:0 0 21px;cursor:pointer;margin:-1px 0px 0 0;background:#eef}
.b_menu{ display:flex;align-items:center;justify-content:center;flex: 0 0 50%;
border:#00f 1px solid;font-weight:bold;}
#menu_scrl_0{ flex:1}
#menu_scrl_1{ height:calc(100vh - 45px);overflow-y:scroll}
.menu_0{ display:flex;flex-flow:column;height:calc(100vh - 40px)}
#menu_pan_0{ width: 99%;padding:4px 0}
#menu_pan_1{ width: 99%;padding:4px 0 4px 10px}
#menu_alpha{ text-align:right;margin-bottom:-17px;display:flex;justify-content:flex-end}
.menu_alpha{ font-size:13px;font-weight:bold;flex:0 0 23px;border-radius:10px;padding:0;
background:#600;color:#fff;display:flex;justify-content:center}
.fav_star{ line-height:15px;color:#f00;padding:2px 5px;margin:-2px -7px -2px 0;
cursor:pointer;z-index:2}

.menu_itm{ padding:0 0 1px 3px;border-radius:3px;margin:-2px 0 -2px 5px;white-space:nowrap;
overflow:hidden;width:236px;line-height:17px}
.lnk{ cursor:pointer;color:#00f}
.fav_itm{ width:275px}
.lnk:hover{ color:#fff;background:#00f}
.lnk:active{ color:#000;background:#0ff}
.disp_none{ display:none}
#main_tit{ font-size:16px;font-weight:bold;padding:50px 0 20px 70px;height:20px;
display:flex;justify-content:flex-start}
#main_obj{ display:flex;cursor:pointer}
.fav_star_h{ line-height:15px;color:rgba(255,0,0,.2);padding:4px 5px;margin:-2px 2px -2px 0;}
#main_obj:hover >
.fav_star_h{color:#f00}

.is_fav{ color:#f00}
#prop_desc{ font-size:14px;font-weight:normal;margin:2px 0 0 20px}
#main_scrl{ height:calc(100vh - 120px);width:calc(100vw - 320px);margin-left:20px;}
#main_pan{ overflow-x:hidden;width:100%}
.prop{ display:flex;padding:10px 5px}
.prop_tit{ display:flex;margin-top:10px}
.prop_lnk{ padding: 0 5px 1px;border-radius:3px}
#tab_0{ margin-left:40px}
#tab_row{ line-height:16px}
#tab_row:hover{ background:linear-gradient(90deg,#eef 50%,#fff);cursor:pointer}
.tab_note{ padding-left: 10px;font-size:12px}
.tab_opt{ padding: 1px 3px 0;border-radius:3px;display: inline-flex}
#tab_row.bad_obj{
color:#999}
#prop_lst{ display:flex;flex-flow:column;align-items: flex-start}
#prop_div{ position:relative;margin:-1px 0 -1px 40px;display:flex;align-items:center;width:800px;
color:#000;border-radius:3px}
.b_opt{ padding: 1px 3px 0;border-radius:3px;z-index:2;max-width:300px;white-space:nowrap;overflow:hidden}
.opt_note{ padding:1px 0 1px 310px;font-size:12px;position:absolute}
#prop_div.bad_obj{color:#999}
#prop_div:hover{background:linear-gradient(90deg,#eef 300px,#fff);cursor:pointer}
#prop_div.bad_obj:hover{
background:linear-gradient(90deg,#ffd 300px,#fff)}
#prop_nfo{ margin-left:-35px}
.prop_li{ margin:0 10px}
.prop_no{ color:#888}
.prop_data{ margin-top:200px;color:#4c4}
#prop_xam{ width:calc(100vw - 400px);height:0;margin:5px 0 0 50px;resize:none}
#prop_ctx{ width:calc(100vw - 350px);margin:5px 0 0 0}
.txt_area{ border:none;background:#cff;padding:5px;
font:13px consolas,Helvetica Neue,Helvetica,Arial, sans-serif;border-radius:3px;
box-shadow:#066 0 0 1px,#099 1px 1px 5px -1px inset,#fff -1px -1px 5px 1px inset}
#copy_clip{ float:right;width:180px;margin:-20px 10px 0 0}
.prop_warn{ padding:10px 0 0;font-weight:bold;font-size:18px;text-shadow: #ff0 0 0 3px;}
.warn1{ color:#c00;font-weight:bold}
.warn2{ color:#e80}
.warn3{ color:#f0f}
.prop_rsn{ padding:0 0 10px 20px;color:#800}
.is_bld{ font-weight:bold}
#no_mgn{ margin:0}
#main_spc{ flex:1;display:flex;justify-content:space-between;font-size:10px;color:#808;line-height:10px}
#triplea_logo{ position:absolute;top:0;right:20px;cursor:pointer}
#tool_tip{
position:absolute;line-height:12px;padding:3px 5px;z-index:999;
align-items:center;display:none;flex-flow:column;
background:linear-gradient(to left top,#aa6, #ffa);
color:#333;text-shadow:1px 1px rgba(255,255,255,.3);
border-radius:5px;font-size:11px;font-weight:normal;
box-shadow:
0px 0px 0px 1px #555
,-2px -2px 2px 0px rgba(0, 0, 0, 0.3) inset
,2px 2px 2px 0px rgba(255, 255, 255, 0.7) inset
,5px 5px 10px 0px #000}
#xob_ver{ padding-left:10px}
#credits{ text-align:right;padding-right:30px}

/* SEARCH */
#search_div{ position:absolute;width:290px;height:calc(100vh - 35px);top:5px;left:5px;
padding:10px 5px 7px 0;display:none;border-radius:5px;
background:#ddd;z-index:2;cursor:default;
flex-flow:column;
box-shadow:
0px 0px 0px 1px #888
,-2px -2px 2px 0px rgba(0, 0, 0, 0.3) inset
,2px 2px 2px 0px rgba(255, 255, 255, 0.7) inset
,8px 8px 10px 0 rgba(0,0,0,.5)}
#search_tit{ flex:0 0 26px;font-size:18px;font-weight:bold;text-align:center}
#search_itm{ flex:0 0 24px;display:flex;justify-content:center;align-items:center;padding-right:20px;
text-align: center;margin:0 10px}
#finds{ flex:1;overflow:auto;padding:5px;}
.search_itm{ padding:0 0 1px 3px;border-radius:3px;margin:-2px 0;white-space:nowrap;
overflow:hidden;width:250px;line-height:17px}
.is_find_now{ background:#0ff}
#b_search_xit{ position:absolute;right:10px;top:8px;padding:1px 3px 0;border-radius:3px}

#search_inp{ position:absolute;top:13px;right:120px;width:130px;height:20px;
background:#ddf;border:none;padding:2px 0 1px 5px;color:#888;border-radius:3px;
box-shadow:
0 0 1px 1px #aaa
,1px 1px 1px -1px rgba(0, 0, 0, 0.2) inset
,-1px -1px 2px 0px rgba(255, 255, 255, 0.7) inset}
#search_err{ position:absolute;;top:38px;right:75px;width:170px;color:#f00;font-size:12px}
#search_tip{ position:absolute;;top:40px;right:120px;
line-height:12px;padding:5px 10px;z-index:5;
align-items:center;display:none;
background:linear-gradient(to left top,#aa6, #ffa);
color:#333;text-shadow:1px 1px rgba(255,255,255,.3);
border-radius:5px;font-size:11px;font-weight:normal;
box-shadow:
0px 0px 0px 1px #555
,-2px -2px 2px 0px rgba(0, 0, 0, 0.3) inset
,2px 2px 2px 0px rgba(255, 255, 255, 0.7) inset
,5px 5px 10px 0px rgba(0,0,0,.5)}
.find_hilite{ background:#0ff;border-radius: 5px;/* margin:0 2px;padding:0 5px */;}
</style>
</head>
<body>
<div id='page_div'>
<div id='seq_buts'></div>
<div id='page_tit'>XML Option Browser</div>
<input id='search_inp' value='Search'>
<div id='search_err'></div>
<div id='search_tip'>Navigate results with<br>UpArrow & DownArrow<br>or<br>Click search results list</div>

<div id='menu_div'>
<div id='menu_buts'></div>
<div id='menu_0' class='menu_0'>
<div id='alpha_buts'></div>
<div id='fav_div'></div>
<div id='menu_scrl_0' class='scrl'>
<div id='menu_pan_0'></div>
</div>
</div>
<div id='menu_1' class='disp_none'>
<div id='menu_scrl_1' class='scrl'>
<div id='menu_pan_1'></div>
</div>
</div>
</div>
<div id='main_div'>

<img id='triplea_logo'
src='https://forums.triplea-game.org/assets/uploads/system/site-logo.png'
onclick="window.open('https://forums.triplea-game.org/')"
onerror=logo_error()>
<div id='main_tit'></div>
<div id='main_scrl' class='scrl'>
<div id='main_pan'>
<br><br>Please post suggestions for improvement
<br>in the Option Browser forum at TripleA
</div>
</div>
<div id='main_spc'>
<div id='xob_ver'>Page: 1.0.5 &nbsp;&nbsp; Data:&nbsp;1.0.7.1</div>
<div id='xob_cnt'></div>
<div id='credits'>Created by Mahks from the POS2 XML by VEQRYN and&nbsp;the&nbsp;wiki&nbsp;by&nbsp;Roger&nbsp;Cooper</div>
</div>
</div>
<div id='search_div'>
<div id='search_tit'>Search Results</div>
<div id='search_itm'> . . . Nothing Yet</div>
<div id='finds'></div>
</div>
</div>
<div id='tool_tip'></div>
</html>