[Official] XML Guide

How to make a map. Official Handbook, Guides, Tutorials and more...

Moderators: Cartographers, Global Moderators

Forum rules
Please read the Community Guidelines before posting.

[Official] XML Guide

Postby thenobodies80 on Mon Jan 07, 2013 4:07 pm

XML Guide

Introduction
Hello everybody and welcome to the XML Guide. This guide will teach you how to write the XML code for your map. To make it easier to follow and to consult, this guide is divided in three different parts. The first part is an Overview section about what's "the map XML", why you need it if you want to make a map, and how it works. The second part is a quick Tutorial. In that part we will first create the XML for the Classic map. After that,in the third part, the XML Tags Index, we will look more in depth the code structure, understand any single feature currently available and finally we will learn how to use the advanced features like objectives, autodeploy, or killing neutrals, etc.

But before to start, a very special "Thank You!" for contributing with the development of this XML Guide goes to OliverFA, MrBenn, ender516, natty dread and the whole Cartographers Team

Naming Convention
Across the text, different types of letters, colours, and other effects to highlight important parts or to differentiate it in some way will be used. Below you can find the meaning of each one of those special font types:

This kind of letter is used to highlight something in the text.
Code: Select all
This effect is used for XML Code.

This colour is for XML tags when used inside normal text.
When something could be hidden at first glance (for example, when it's suggested to try yourself before looking at the result), the test is hidden inside a spoiler box.
show


Index
  1. -Overview
  2. -Tutorial
  3. - XML Tag Index
  4. - Advanced concepts; Creating more complex maps
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

Overview

Postby thenobodies80 on Mon Jan 07, 2013 4:07 pm

Overview
Pretty graphics are not enough to make a successful map. You also need to think up good gameplay rules and write them down in an XML file. This tutorial will explain how to do that. Don't worry, you don't need any technical skills or special software. Just pay attention and fire up your favourite text editor, such as notepad.


Tags

XML is made up of tags. Tags let the game engine know which information means what. Tags are surrounded with <angled brackets> and come in pairs – one for <opening> and one for </closing>. For example, this is how you specify the name of a country with tags:

Code: Select all
<name>Western United States</name>


The “header”

First of all, your XML file must begin with this on the first line:

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>

Don't worry about understanding it – it's a special tag that tells the game engine that this is an XML file.

Next you need a map tag which will contain everything else.

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<map>
   .   
   .
   .
</map>

It is customary to indent tags when they are nested inside other tags and put one tag on each line. This isn't necessary but makes your XML easier to read.

A very important thing to remember when you write a map xml is the order of the tags, if you want to know about the exact order to use please read here.

Now, before to proceeding further and see in detail each tag, we see how to write the xml of the map we are most known, the classic one.
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

2.1-Basic concepts; Creating the Classic Map

Postby thenobodies80 on Mon Jan 07, 2013 4:08 pm

2.1-Creating the Classic Map
For the first part of the tutorial we will work with an old friend of ours, the Classic Map.

Image

This map has 42 regions representing 42 of the most important cities in the world. The circles are the place where the CC engine will display the armies present in that city. The lines represent connections between the cities, along which players can attack and move reinforcments. However, the lines only show the connections: they do not define them. The XML will do that.

Those cities are grouped by continent, making a total of 6 continents. Holding a full continent at the beginning of turn grants an extra bonus to a player. In the next sections, we will create the map step by step.
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

2.2 -Creating the XML file

Postby thenobodies80 on Mon Jan 07, 2013 4:08 pm

2.2 -Creating the XML file
Now that we know what we want to do, let's start by creating the map XML file. For this task you will need nothing more than a simple text editor, like the Notepad, but you can also use an editor like UltraEdit, Notepad++ or another code editor.

Open your editor and write the skeleton of the XML file

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<map>
  <!-- Classic -->
</map>


It's pretty short and simple. Isn't it? Don't worry. We will soon fill it with a lot of code.

The header
The first line is the XML header. It identifies the file as written in XML language. All maps need to have this header as the first line.

The <map> tag encloses all the other information. Everything you write except for the header needs to be inside this tag.

XML tags
And talking about tags, please notice that tags must come in pairs. There is an opening <tag> and a closing </tag>. They are named the same, except that the closing tag has a slash. Everything between the opening and closing tags is considered to be information describing that element. As an example, most map elements will have sub-tags inside describing their names.

Comments
A comment is a tag in the style <!-- Comment -->. Although comments are optional, it's a good practice to use comments to structure your code, and also to help understand it and navigate through it.
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

2.3 -Territories

Postby thenobodies80 on Mon Jan 07, 2013 4:24 pm

2.3 -Territories
Territories are the basic unit for constructing any map. The map is described by a collection of territories, how they connect to each other, and how they group in continents. Territories always have an owner (even if it's the "neutral" player) and each player needs at least one territory to stay alive. Troops are placed in territories, and battles are fought for the control of such territories. In some parts of Conquer Club, territories are referred to as regions.

A territory is described by the tag of the same name, <territory>.

Code: Select all
   <territory>
   </territory>

Nested inside the <territory> tag there are other sub-tags that describe all the properties of that territory.

Naming a territory
We use the <name> tag to name a territory. In this example we will start by the Anchorage city, as it is the first in alphabetic order (this doesn't mean you have to do the same, in fact the game engine lists the territories in alphabetical order in any case).

Code: Select all
   <territory>
      <name>Anchorage</name>
   </territory>

Setting the coordinates on the map
How does the CC engine know where to place the armies numbers for each territory? We provide this information via the <coordinates> tag. As you know, there are two sizes for any map. The small size and the large size. For this reason we need to provide the coordinates for both sizes.

Code: Select all
   <territory>
      <coordinates>
         <smallx>30</smallx>
         <smally>125</smally>
         <largex>35</largex>
         <largey>145</largey>
      </coordinates>
   </territory>

If you don't know exactly how to center the coordinates, there are some tools that can help you in doing this.How to use these tools is explained in their dedicated topic into the Foundry Tools Forum.

Borders with other territories
Now we have a city in our map. But it is isolated without connections with any other city. To link territories, we use the <borders> tag. Inside this tag there will be a <border> sub-tag for each territory that borders the one we are describing. Looking at the image, there are three cities bordering Anchorage. So we place all of them in our code.

Code: Select all
   <territory>
      <borders>
         <border>Edmonton</border>
         <border>Vancouver</border>
         <border>Magadan</border>
      </borders>
   </territory>

An important thing to remember is that borders are only one way, like adjacencies in a graph. This means that Edmonton, Vancouver and Magadan also need to have in their own descriptions a <border> with Anchorage. If we linked Anchorage with Edmonton, but forgot linking Edmonton to Anchorage, we would make it a one way trip. We would be able to go from Anchorage to Edmonton, but we would not be able to come back.

Territory summary
We have just finished describing our first territory. In this case, the city of Anchorage. This is how it looks when we put everything together:

Code: Select all
   <territory>
      <name>Anchorage</name>
      <borders>
         <border>Edmonton</border>
         <border>Vancouver</border>
         <border>Magadan</border>
      </borders>
      <coordinates>
         <smallx>30</smallx>
         <smally>125</smally>
         <largex>35</largex>
         <largey>145</largey>
      </coordinates>
   </territory>


Writing the code for the rest of territories
We will now repeat the process for the rest of the cities. As we have already explained it, we won't repeat all the process, just post here how it all looks once it's finished. It's recommend you to practice writing the description for the rest of the cities in the map by yourself. Once you are finished, you can click the show link and compare what you have written with the code here.

show
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

2.4 -Continents

Postby thenobodies80 on Mon Jan 07, 2013 4:24 pm

2.4 -Continents
Continents are groups of territories that provide an extra bonus when held together at the beginning of a turn. In the Classic map Africa is a continent, but America is divided in two continents (North America and South America). We describe continents in our XML file by using the <continent> tag.

Code: Select all
   <continent>
   </continent>

Notice that depending on the map theme, "Continents" could be something different from the geographical continents. They could be other zones of the map that share something in common. For this reason they are also called bonus zones. As said, a continent is a group of territories.

Similar to what happened with territories, the <continent> tag contains other tags nested inside that define the different properties of that bonus region.

Naming a continent
We use the <name> tag to name a continent. The following example is how you would name Africa.

Code: Select all
   <continent>
      <name>Africa</name>
   </continent>

Naming continent components
Inside the <components> tag we list all the components of that continent. This will tell the engine which territories a player has to own at the beginning of the turn to receive the zone bonus. Let's list the territories that form Africa.

Code: Select all
   <continent>
      <components>
         <territory>Dakar</territory>
         <territory>Cairo</territory>
         <territory>Nairobi</territory>
         <territory>Lagos</territory>
         <territory>Cape Town</territory>
         <territory>Johannesburg</territory>
      </components>
   </continent>

Continent bonus
We know how to name continents and how to specify the territories that form that continent. The last thing left is saying how many troops a player receives for holding the continent at the beginning of the turn. We specify that information with the <bonus> tag. For Africa, the bonus tag looks like this:

Code: Select all
   <continent>
      <bonus>3</bonus>
   </continent>

Continent summary
Let's summarize all the components of the <continent> tag using Africa as an example:
Code: Select all
   <continent>
      <name>Africa</name>
      <bonus>3</bonus>
      <components>
         <territory>Dakar</territory>
         <territory>Cairo</territory>
         <territory>Nairobi</territory>
         <territory>Lagos</territory>
         <territory>Cape Town</territory>
         <territory>Johannesburg</territory>
      </components>
   </continent>



Writing the code for the rest of continents
We are about to finish the XML code for the Classic Map. In order to do that, we need to write the remaining code for the rest of continents: Asia, Europe, North America, Oceania and South America. Try to do it yourself to get some practice. And when you are finished, check what you have written with the actual code here:

show
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

2.5 -Attaching the XML file to the map thread

Postby thenobodies80 on Mon Jan 07, 2013 4:25 pm

2.5 -Attaching the XML file to the map thread

Once you have finished writing all the XML code for your map, you have to upload or link it to the forum topic where your map is being developed (the "map thread"). In this way, the file can be officially checked and eventually uploaded to the active portion of the Conquer Club site for beta play, followed by full active play. There are various file hosting web sites that offer you a free account to upload your xml files, but without any doubt the best, quickest and safest way to upload your file is to attach it to the map thread.

Attaching a file to a post is really easy to do, but in case you're wondering how to do so, please take a look at this section of the Foundry Handbook.

Remember that you're always able to delete your attached files. In fact, if you enter your Conquer Club Control Panel (via the Control Panel entry under the Personal Menu displayed on the left of the screen) you can see the "manage attachments" section under the "overview" folder. In this tab, all your uploaded attachments are listed and you can easily manage them.

When uploaded, the map topic will have a "small clip icon" on it Image and the attached files will be displayed in your post, for the classic map xml of this tutorial:
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.1 -File Structure and <!--Comments-->

Postby thenobodies80 on Mon Jan 07, 2013 4:25 pm

3.1 -File Structure and <!--Comments-->

File structure
The following table shows the structure of an XML map file, displaying all the first level tags:

Code: Select all
<?xml version="1.0"?>
<map>
   <minreinforcement/>
   <reinforcements/>
   <positions/>
   <requirement/>
   <objectives/>
   <continents/>
   <territories/>
</map>

It's very important to place tags in the same order as they appear here. If you change the order, the results might not be what you are expecting.

If you don't need a particular tag, just skip it and continue with the next. I.e., if your map did not have starting positions, just skip the <positions> tag.

<!-- Comments -->
Provides a way to document the code.

Syntax
<!-- Comment -->

Comment: The comment we want to place in order to document the code. It can be anything.

Location:
It can be placed anywhere in the code.

Example:
In this fragment of code, we are using the comment feature to specify the map's name.
Code: Select all
<?xml version="1.0"?>
<map>
  <!-- Classic -->
   <continent>
...
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.2 -<map>

Postby thenobodies80 on Mon Jan 07, 2013 4:26 pm

3.2-<map>

Encloses all the code that describes a map.
Syntax
<map>Map tags</map>

Map tags: All the rest of the tags that describe the map. Each of them must follow a specific order and has its own syntax. For the order, check section 3.1-File structure. For the syntax, check the section dedicated to that tag.

Location:
The opening tag goes after <?xml version="1.0" encoding="UTF-8"?>, and the closing tag goes at the end.

Example:
In this fragment of code, we are using the <map> tag to indicate the beginning and the end of the file, as indicated.
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<map>
  <!-- Classic -->
   <continent>
...
   </territory>
</map>
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.3 -<minreinforcement>

Postby thenobodies80 on Mon Jan 07, 2013 4:26 pm

3.3-<minreinforcement>

Adjusts the value of minimum reinforcements for the map. At the beginning of every turn, each player is guaranteed to get at least the number of troops specified in this tag, no matter how many territories or bonuses he has.

Syntax
<minreinforcement>Number or troops</minreinforcement>

Number of troops: The minimum of troops we want players to receive at the beginning of each turn.

Notes:
If this tag is not specified, the map will have a default value of 3 troops minimum.

The minimum number of reinforcement troops can't be 0. It has to be at least 1.

Location:
It goes after the opening <map> tag and before the <reinforcements> tag.

Example:
Imagine we want to eliminate the standard minimum of 3 troops. We can do it by setting the value to 1. (It can't be 0). The City Mogul map does it.
Code: Select all
<minreinforcement>1</minreinforcement>
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.4 -<reinforcements>

Postby thenobodies80 on Mon Jan 07, 2013 4:27 pm

3.4-<reinforcements>

Adjusts the rate of reinforcements received from territories owned.

If this tag is not specified, the map will have a default rate of 1 army per 3 territories or fraction.

Syntax
<reinforcements>
__<reinforcement>
____<lower>From</lower>
____<upper>To</upper>
____<divisor>Divisor</divisor>
__</reinforcement>
<reinforcements>


This tag is a list of subtags describing segments. Each segment has the following parameters:

From: The segment starts applying when the player owns this number of territories.
To: The segment stops applying when the player owns this number of territories.
Divisor: The player will get an extra army each Divisor armies or fraction.

Notes:

Info about a more extensive use of Adjusted Reinforcements can be found here: Reinforcement Adjustment

The default value features a single segment providing one reinforcement army per each 3 territories. We can change this by defining one or more segments, and assigning a different rate to each segment. If you define two or more segments, ensure that they do not overlap.

If you leave spaces not covered by the segments defined, the default value of one army per each 3 territories will apply in the undefined areas. However, best practice suggests that if you are using this tag, you should define segments covering all the range of territories, even if the default rate applies at some of them. You should also list them in order.

The divisor applies only inside the segment defined. For example, if you define two segments...

  • Segment A - from 1 to 30. One army per 3 territories.
  • Segment B - from 31 to 100. One army per 5 territories.

...and the player has 50 armies, he will receive 30/3+(50-30)/5 = 30/3+20/5 = 10+4=14 armies at the begining of turn. He will not receive 50/5 = 10 armies

Please notice this tag does not affect reinforcements received from bonus regions (continents) as that is a completely different concept.

Location:
It goes after the <reinforcements> tag and before the <positions> tag.

Examples:
This code implements the default rate of 1 army for each 3 territories in the Classic Map.
Code: Select all
<reinforcements>
   <reinforcement>
      <lower>1</lower>
      <upper>42</upper>
      <divisor>3</divisor>
   </reinforcement>
</reinforcements>
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.5 -<positions>

Postby thenobodies80 on Mon Jan 07, 2013 4:27 pm

3.5-<positions>

If present, defines which territories will be owned by players when the game starts, and how they will be distributed between such players. The territories not present inside this tag are dealt out in the standard way.

Syntax
<positions>
__<position>
____<territory>TerrName</territory>
____...
__</position>
__<position>
__...
__</position>
</positions>


The tag contains a list of positions, each of them identified by a <position> subtag. At the beginning of the game, the positions are divided evenly between the players. If there is a remainder, the territories of those start positions are dealt out in the same way as other territories.

TerrName: Is the name of the territory that forms part of the position.

Notes:
The most common way to use this tag is with a list of 8 positions. In that case, the number of positions allocated to each player will depend on the number of starting players:

  • 8 to 5 players: 1 position
  • 4 to 3 players: 2 positions
  • 2 players: 4 positions
If the number of positions is not evenly divisible by the number of players, the territories within the remaining positions are distributed as normal territories. As an example, suppose each position has two territories, with 5 players, the three remaining positions contain a total of 6 territories. If there are no other territories on the map to be distributed, one territory will be given to each of the players, and one territory will start as neutral.

Info about a more extensive use of Starting Positions can be found here: Starting Positions

Location:
It goes after the <reinforcements> tag and before the <requirement> tag.

Examples:
The map New World provides a good example of how to use the <positions> tag to create a Conquest map (a map in which all the territories start as neutral except for the starting players positions):
Code: Select all
<!-- Start Positions -->
<positions>
   <position>
      <territory>Britain</territory>
   </position>
   <position>
      <territory>France</territory>
   </position>
   <position>
      <territory>Holland</territory>
   </position>
   <position>
      <territory>Spain</territory>
   </position>
   <position>
      <territory>Portugal</territory>
   </position>
   <position>
      <territory>Inuit Homeland</territory>
   </position>
   <position>
      <territory>Comanche Homeland</territory>
   </position>
   <position>
      <territory>Aztec Homeland</territory>
   </position>
   <position>
      <territory>Mapuche Homeland</territory>
   </position>
</positions>
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.6 -<requirement>

Postby thenobodies80 on Mon Jan 07, 2013 4:28 pm

3.6-<requirement>
The requirement is a list of territories and / or continents. In order to stay alive, players have to hold one or more items from each list. A subtag specifies how many items need to be owned to continue playing. This feature is known as Losing Conditions.

Syntax
<requirement>
__<name>ReqName</name>
__<components>
____( <territory>TerrName</territory> | <continent>ContName</continent> )
____...
__</components>
__[<required>ItemsReq</required>]
</requirement>


The <required> subtag is optional.

ReqName: Is the name that we assign to the Requirement. Such as "Holding one capital".
TerrName: The name of an individual territory that forms part of the requirement.
ContName: The name of a continent that forms part of the requirement.
ItemsReq: The number of items that each player has to own at least to stay in the game.

Notes:
The requirement can be composed by a mix of territories and continents.

If no <required> subtag is specified, it is enough to hold only one item from the list to stay in the game.

Location:
It goes after the <positions> tag and before the <objectives> tag.

Examples:
The Antarctica map requires players to own at least one base to survive.
Code: Select all
<!-- losing conditions -->
<requirement>
    <name>a Base and freezes to death</name>
    <components>
         <territory>Base A</territory>
         <territory>Base B</territory>
         <territory>Base C</territory>
         <territory>Base D</territory>
         <territory>Base E</territory>
         <territory>Base F</territory>
         <territory>Base G</territory>
         <territory>Base H</territory>
         <territory>Base I</territory>
         <territory>Base J</territory>
         <territory>Base K</territory>
         <territory>Base L</territory>
         <territory>Base M</territory>
         <territory>Base N</territory>
         <territory>Base O</territory>
         <territory>Base P</territory>
    </components>
    <required>1</required>
</requirement>
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.7 -<objectives>

Postby thenobodies80 on Mon Jan 07, 2013 4:28 pm

3.7-<objectives>

An objective is a territory or a group of territories. If a player holds the objective through a full round, that player wins the game.
This feature is known as Winning Conditions.

Syntax
<objective>
__<name>ObjName</name>
__<components>
____( <territory>TerrName</territory> | <continent>ContName</continent> )
____...
__</components>
__[<required>ItemsReq</required>]
</requirement>


The <required> subtag is optional.

ObjName: Is the name that we assign to the Requirement. Such as "Conquer the Eternal City".
TerrName: The name of an individual territory that forms part of the objective.
ContName: The name of a continent that forms part of the objective.
ItemsReq: If present, a player only needs to hold at least that number of items to win the game

Notes:
Conquering a territory does not automatically end the game. To win the game, the player has to own the objective at the beginning of his turn. That means conquering the objective one turn and holding it from other players during a full turn.

The objective can be composed by a mix of territories and continents.

If no <required> subtag is specified, all the items in the list must be owned. If the subtag is present, then it's enough to hold the number of items specificed.

Even if the <objective> tag is present, traditional victory by killing all the other players is still valid.

Location:
It goes after the <requirement> tag and before the <continents> tag.

Examples:
In the Oasis map, players can win by finding the treasure hidden in the center of the Oasis. It is described in the XML as that:
Code: Select all
<objective>
   <name>Find The Treasure</name>
   <components>
      <territory>Grand Oasis 1</territory>
      <territory>Grand Oasis 2</territory>
      <territory>Grand Oasis 3</territory>
   </components>
</objective>

Objectives are very flexible, and can be something else than just a list of territories. In the Third Crusade map, victory is achieved by fulfilling four conditions:
  • Any starting point.
  • Jerusalem.
  • Antioch.
  • Vatican or Granada.
And here's how it is coded:
Code: Select all
   <!-- Objectives Begin -->
   <objective>
      <name>Victory Condition</name>
      <components>
         <continent>Any Starting Territory</continent>
         <territory>Jerusalem</territory>
         <territory>Antioch</territory>
         <continent>The Vatican or Granada</continent>
      </components>
   </objective>
   <!-- Objective Continents -->
   <continent>
      <name>Any Starting Territory</name>
      <bonus>0</bonus>
      <components>
         <territory>London</territory>
         <territory>Paris</territory>
         <territory>Ratisbon</territory>
         <territory>Castile</territory>
         <territory>Thessalonica</territory>
         <territory>Tunis</territory>
         <territory>Cairo</territory>
         <territory>Amasia</territory>
      </components>
      <required>1</required>
   </continent>
   <continent>
      <name>The Vatican or Granada</name>
      <bonus>0</bonus>
      <components>
         <territory>The Vatican</territory>
         <territory>Granada</territory>
      </components>
      <required>1</required>
   </continent>
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

3.8 -<continents>

Postby thenobodies80 on Mon Jan 07, 2013 4:29 pm

3.8-<continents>

This tag defines a group of map regions that, when held by the player at turn start, provides a reinforcement bonus. Some optional subtags provide additional control over the bonus zone structure.

Syntax
<continent>
__<name>ConName</name>
__<bonus>ReinfBonus</bonus>
__<components>
____<territory>TerrName</territory>
____...
__</components>
</continent>


At its most basic version, this tag contains only the <name> of the continent, the list of <territories> forming it, and how many reinforcement troops are given to the player holding the bonus zone at the beginning of a turn.

ConName: The name given to this group of territories as a whole.
ReinfBonus: How many armies will be added to player's income for holding the continent.
TerrName: The name of each of one of the <territories> forming the continent.

Notes:
Like territories, continents can be used as components of another continent as well.
The tag can be expanded with optional subtags, If you are looking for a more extensive use of Continents, you can find some info here, here and here.

Location:
It goes after the <objectives> tag and before the <territories> tag

Examples:
The West bonus area (continent) we find on the USA is composed of 4 territories. If you hold all them you receive a bonus of 2 troops. The code for this bonus looks like this:
Code: Select all
<continent>
    <name>West</name>
    <bonus>2</bonus>
    <components>
       <territory>Washington</territory>
       <territory>Oregon</territory>
       <territory>California</territory>
       <territory>Nevada</territory>
    </components>
</continent>


The 13 Colonies map shows that is possible to use the <continent> tag as component. In this case, the 3 bonus troops are awarded if the player holds any 2 of the component continents.
Code: Select all
...
<continent>
   <name>2 colonies</name>
   <bonus>3</bonus>
   <components>
      <continent>Georgia</continent>
      <continent>South Carolina</continent>
      <continent>North Carolina</continent>
      <continent>Virginia</continent>
      <continent>Maryland</continent>
      <continent>Delaware</continent>
      <continent>Pennsylvania</continent>
      <continent>New Jersey</continent>
      <continent>New York</continent>
      <continent>Connecticut</continent>
      <continent>Rhode Island</continent>
      <continent>Massachusetts</continent>
      <continent>New Hampshire</continent>
      <required>2</required>
    </components>
...
User avatar
Corporal 1st Class thenobodies80
Foundry Foreman
Foundry Foreman
 
Posts: 5637
Joined: Wed Sep 05, 2007 4:30 am
Medals: 70
Standard Achievement (3) Doubles Achievement (2) Triples Achievement (1) Quadruples Achievement (2) Terminator Achievement (2)
Assassin Achievement (2) Manual Troops Achievement (2) Freestyle Achievement (2) Nuclear Spoils Achievement (2) Fog of War Achievement (3)
Speed Achievement (2) Teammate Achievement (1) Cross-Map Achievement (3) Bot Achievement (1) Ratings Achievement (4)
General Achievement (8) Map Contribution (7) Tournament Contribution (6) General Contribution (17)

Next

Return to Tools & Guides

Who is online

Users browsing this forum: No registered users and 0 guests

Login