Difference between revisions of "XML/Faction"

From MegaGlest
Jump to navigation Jump to search
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{XMLs}}
+
([[XML|Back to XML Overview ]])
 +
 
 
The [[faction]] [[XML]] is the base definition for each faction in a tech tree mod and defines the starting [[units]], starting resources and music. The actual name of the file will be the faction's name (which must match the [[folder]]).
 
The [[faction]] [[XML]] is the base definition for each faction in a tech tree mod and defines the starting [[units]], starting resources and music. The actual name of the file will be the faction's name (which must match the [[folder]]).
  
{{TOC limit|2}}
 
  
 
==XML==
 
==XML==
{{XML_definition_header}}
 
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
<?xml version="1.0" standalone="no"?>
 
<?xml version="1.0" standalone="no"?>
Line 16: Line 15:
 
</starting-units>  
 
</starting-units>  
 
<music value="true" path="music_tech.ogg" />
 
<music value="true" path="music_tech.ogg" />
<!-- Start GAE Only -->
 
<logo value="true">
 
<team-colour path="logo_team.png" />
 
<rgba-colour path="logo_rgba.png" />
 
</logo>
 
<attack-notice enabled="true" min-delay="15">
 
<sound-file path="sound/attacked.ogg" />
 
</attack-notice>
 
<subfactions>
 
<subfaction name="subfaction_name"/>
 
</subfactions>
 
<loading-screen>
 
<background-image path="loading_screen.png" />
 
</loading-screen>
 
<!-- End GAE Only -->
 
<!-- Start MG Only -->
 
 
<link>
 
<link>
 
<techtree name="techtree_name" />
 
<techtree name="techtree_name" />
Line 53: Line 36:
 
</ai-behavior>
 
</ai-behavior>
 
     <flat-particle-positions value="true"/>
 
     <flat-particle-positions value="true"/>
<!-- End MG Only -->
 
 
</faction>
 
</faction>
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 65: Line 47:
  
 
===music===
 
===music===
If true, the specified music will be played in a loop while using the specified faction. In GAE Only, you can specify multiple music tracks and can choose whether to shuffle them (play randomly) or in order. In order to use multiple tracks, play-list must be true, such as in the below example:
+
If true, the specified music will be played in a loop while using the specified faction.  
 
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<music value="true" play-list="true" shuffle="true">
 
<music-file path="music/track1.ogg" />
 
<music-file path="music/track2.ogg" />
 
</music>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
 
===logo===
 
{{Main|GAE/Faction logos}}
 
If enabled, a faction logo will be placed in the unit info box when no units or resources are selected. This image is made of two parts, a team color part which uses greyscale to define how dark or how light team color is, and a true color image that will be rendered on top of the team color image. GAE only.
 
 
 
===attack-notice===
 
If enabled, a sound file will be played whenever your units are attacked offscreen. This will not trigger if you are attacked inside your viewing area, and will not sound more often than the min-delay, in seconds. Multiple sound files can be linked to by using multiple sound-file tags.
 
 
 
MegaGlest has an attack notice feature, but does not yet have an option to configure the sound file used for it.
 
 
 
===subfactions===
 
{{See|GAE/Subfactions}}
 
If not a closed tag, a list of subfactions available must be registered here.
 
  
 
===loading-screen===
 
===loading-screen===
GAE specific tag that let you specify a loading screen image to use. As of 0.4, it only allows a single image, but will later allow multiple images to be used for loading screens (chosen at random). If a scenario loading screen is also specified, it will take priority over this one.
+
MegaGlest looks for a loading screen which must be called <tt>loading_screen.*</tt> in the faction folder.
 
 
MG does not need this tag, as it always looks for a loading screen which must be called <tt>loading_screen.*</tt> in the faction folder.
 
  
 
===link===
 
===link===
This feature is available in the latest SVN. A MegaGlest only command which makes the faction a reference to another, existing faction, in a different techtree. The only attribute is the [[techtree]] the faction should be found in. The faction loaded will be the same name as this faction's XML name (so if creating a link to the [[Indian]] faction in the [[MegaPack]], the faction XML would be called <tt>indian.xml</tt>, with the same folder structure as any other faction. When the link element is used, all other elements except the top level faction element and XML declaration should be removed.
+
A command which makes the faction a reference to another, existing faction, in a different techtree. The only attribute is the [[techtree]] the faction should be found in. The faction loaded will be the same name as this faction's XML name (so if creating a link to the [[Indian]] faction in the [[MegaPack]], the faction XML would be called <tt>indian.xml</tt>, with the same folder structure as any other faction. When the link element is used, all other elements except the top level faction element and XML declaration should be removed.
  
 
===ai-behavior===
 
===ai-behavior===
 
{{Main|MG/AI control}}
 
{{Main|MG/AI control}}
MegaGlest only, this tag will be present in the <tt>&lt;faction&gt;</tt> tag of the faction XML, and will contain all the other elements to define the AI's behavior.
+
This tag will be present in the <tt>&lt;faction&gt;</tt> tag of the faction XML, and will contain all the other elements to define the AI's behavior.
  
 
===worker-units===
 
===worker-units===
MegaGlest only,  units specified here are treated as workers and make up the bulk of production and expansion. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
+
Units specified here are treated as workers and make up the bulk of production and expansion. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
  
 
===warrior-units===
 
===warrior-units===
MegaGlest only, units specified here are treated as warriors, meaning they will be used as the primary attack force. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
+
Units specified here are treated as warriors, meaning they will be used as the primary attack force. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
  
 
===resource-producer-units===
 
===resource-producer-units===
MegaGlest only, units here are considered to be necessary for producing different resources, such as food. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
+
Units here are considered to be necessary for producing different resources, such as food. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
  
 
===building-units===
 
===building-units===
MegaGlest only, units here are considered to be other important buildings that the AI should attempt to build early. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
+
Units here are considered to be other important buildings that the AI should attempt to build early. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.
  
 
===upgrades===
 
===upgrades===
MegaGlest only, upgrades here are considered to be important upgrades that are priority for the AI to develop.
+
Upgrades here are considered to be important upgrades that are priority for the AI to develop.
  
 
===flat-particle-positions===
 
===flat-particle-positions===
MegaGlest only, if this is set to true the positions that are given for the particle systems are based on the ground. This means the positioning is no more unit height dependend which makes changes much more easy. This field is not mandatory and the default is set to false.
+
If this is set to true the positions that are given for the particle systems are based on the ground. This means the positioning is no more unit height dependend which makes changes much more easy. This field is not mandatory and the default is set to false.
  
 
==See also==
 
==See also==

Latest revision as of 03:09, 10 October 2019

(Back to XML Overview )

The faction XML is the base definition for each faction in a tech tree mod and defines the starting units, starting resources and music. The actual name of the file will be the faction's name (which must match the folder).


XML[edit]

<?xml version="1.0" standalone="no"?>
<faction>
	<starting-resources>
		<resource name="resource_name" amount="100" />
	</starting-resources>
	<starting-units>
		<unit name="unit_name" amount="1" />
	</starting-units> 
	<music value="true" path="music_tech.ogg" />
	<link>
		<techtree name="techtree_name" />
	</link>
	<ai-behavior>
		<worker-units>
			<unit name="unit_name" minimum="1" />
		</worker-units>
		<warrior-units>
			<unit name="unit_name" minimum="1" />
		</warrior-units>
		<resource-producer-units>
			<unit name="unit_name" minimum="1" />
		</resource-producer-units>
		<building-units>
			<unit name="unit_name" minimum="1" />
		</building-units>
		<upgrades>
			<upgrade name="upgrade_name" />
		</upgrades>
	</ai-behavior>
    <flat-particle-positions value="true"/>
</faction>

Documentation[edit]

resource[edit]

Starting resources the faction start with. Name is the name of the resource, and amount is how much to begin with.

unit[edit]

Starting units. The name is the exact name of the unit, and the amount is how many to start with.

music[edit]

If true, the specified music will be played in a loop while using the specified faction.

loading-screen[edit]

MegaGlest looks for a loading screen which must be called loading_screen.* in the faction folder.

link[edit]

A command which makes the faction a reference to another, existing faction, in a different techtree. The only attribute is the techtree the faction should be found in. The faction loaded will be the same name as this faction's XML name (so if creating a link to the Indian faction in the MegaPack, the faction XML would be called indian.xml, with the same folder structure as any other faction. When the link element is used, all other elements except the top level faction element and XML declaration should be removed.

ai-behavior[edit]

Main article: MG/AI control

This tag will be present in the <faction> tag of the faction XML, and will contain all the other elements to define the AI's behavior.

worker-units[edit]

Units specified here are treated as workers and make up the bulk of production and expansion. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.

warrior-units[edit]

Units specified here are treated as warriors, meaning they will be used as the primary attack force. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.

resource-producer-units[edit]

Units here are considered to be necessary for producing different resources, such as food. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.

building-units[edit]

Units here are considered to be other important buildings that the AI should attempt to build early. A minimum number is specified to tell the AI how many of this unit it should try and maintain at all times.

upgrades[edit]

Upgrades here are considered to be important upgrades that are priority for the AI to develop.

flat-particle-positions[edit]

If this is set to true the positions that are given for the particle systems are based on the ground. This means the positioning is no more unit height dependend which makes changes much more easy. This field is not mandatory and the default is set to false.

See also[edit]