Difference between revisions of "XML/Resource"

From MegaGlest
Jump to navigation Jump to search
(Undo revision 8642 by Titi son (talk))
Line 1: Line 1:
{{XMLs}}
+
 
 
Game resources are specified under the <tt>resources</tt> directory of the tech tree.  Each resource will have it's own subdirectory and a resource specification file with the same name as the resource, but ending in <tt>.xml</tt>.
 
Game resources are specified under the <tt>resources</tt> directory of the tech tree.  Each resource will have it's own subdirectory and a resource specification file with the same name as the resource, but ending in <tt>.xml</tt>.
  
 
Note that there are 4 types of resources and that only one of the below can be specified for a single resource.
 
Note that there are 4 types of resources and that only one of the below can be specified for a single resource.
  
{{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 13: Line 11:
 
<image path="images/image.bmp"/>
 
<image path="images/image.bmp"/>
 
<type value="static">
 
<type value="static">
<!-- Start GAE+MG Only -->
 
 
<recoup-cost value="true" />
 
<recoup-cost value="true" />
<!-- End GAE+MG Only -->
 
 
</type>
 
</type>
 
<type value="consumable">
 
<type value="consumable">
 
<interval value="30"/>
 
<interval value="30"/>
<!-- Start GAE Only -->
 
<damage absolute="x" percent="y" />
 
<!-- End GAE Only -->
 
 
</type>
 
</type>
 
<type value="tech">
 
<type value="tech">
 
<model path="models/gold.g3d">
 
<model path="models/gold.g3d">
<!-- Start MG Only -->
 
 
<particles value="true">
 
<particles value="true">
 
<particle-file path="models/tree_particles.xml"/>
 
<particle-file path="models/tree_particles.xml"/>
 
</particles>
 
</particles>
<!-- End MG Only -->
 
 
</model>
 
</model>
 
<default-amount value="1500"/>
 
<default-amount value="1500"/>
Line 38: Line 29:
 
<tileset-object value="1"/>
 
<tileset-object value="1"/>
 
</type>
 
</type>
<!-- Start GAE+MG Only -->
 
 
<display value="true"/>
 
<display value="true"/>
<!-- End GAE+MG Only -->
 
<!-- Start GAE Only -->
 
<infinite-store value="false" />
 
<!-- End GAE Only -->
 
 
</resource>
 
</resource>
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 69: Line 55:
  
 
===display===
 
===display===
A GAE and MegaGlest only feature that toggles whether or not the resource appears in the HUD. Generally, you'd want most resources to be there, but it can be useful to have a hidden resource, such as one that may be used to limit you to a single "hero" unit, etc.
+
A feature that toggles whether or not the resource appears in the HUD. Generally, you'd want most resources to be there, but it can be useful to have a hidden resource, such as one that may be used to limit you to a single "hero" unit, etc.
  
===infinite-store===
 
If this GAE only value is set to true, the upper storage limit of the resource will be removed (ie, instead of having a maximum of a tech or tileset resource defined by the building's storage, the maximum will be removed). False behaves as normal, and the tag can be omitted.
 
  
 
==See also==
 
==See also==
 
*[[XML Definitions]]
 
*[[XML Definitions]]
 
[[Category:XMLs]]
 
[[Category:XMLs]]

Revision as of 03:00, 10 October 2019

Game resources are specified under the resources directory of the tech tree. Each resource will have it's own subdirectory and a resource specification file with the same name as the resource, but ending in .xml.

Note that there are 4 types of resources and that only one of the below can be specified for a single resource.

XML

<?xml version="1.0" standalone="no"?>
<resource>
	<image path="images/image.bmp"/>
	<type value="static">
		<recoup-cost value="true" />
	</type>
	<type value="consumable">
		<interval value="30"/>
	</type>
	<type value="tech">
		<model path="models/gold.g3d">
			<particles value="true">
				<particle-file path="models/tree_particles.xml"/>
			</particles>
		</model>
		<default-amount value="1500"/>
		<resource-number value="1"/>
	</type>
	<type value="tileset">
 		<default-amount value="300"/> 
		<tileset-object value="1"/>
	</type>
	<display value="true"/>
</resource>

Documentation

image

This is the path of the resource's image, which will be displayed on the top with the HUD, unless the resource is a hidden resource (which means it will not appear on the HUD, GAE only), it needs an image to accompany it.

type

The main body of the resource, there is only ONE type tag. The above example has more simply because its shows all the differing possibilities based on the different choices of the type. The type refers to how the resource is controlled. A static resource can only be added from production, morphing, upgrades, or generation. A consumable is like a static resource, but are used in cycles. A tech resource is harvested from resource nodes placed on the map. A tileset resource is harvested from a specific tileset object.

static

If static is chosen, there are no needed attributes. Static resources aren't actually consumed, and if a unit requiring them dies, they can be reused. In MegaGlest and GAE, there is an optional recoup-cost tag which controls whether or not you get the resource back when the unit that used it dies. Defaulting to true, you'd get the static resources back after the death of a unit using said resource, but if false, you will not (it will be lost in the same way as a tech or tileset resource).

consumable

Consumables only have a single attribute, the interval, which is how often (in seconds) that the resources from producers (such as Tech's cow) place their resource in the store and how often consumers (like Tech's swordman) consume those resources. If there isn't enough, the unit will lose one third of it's HP every interval. The number in parenthesis is the surplus if positive, and the shortage if negative.

GAE mods can optionally specify the amount of damage dealt by insufficient resources (versus the default one third of their health). This can be done as either an absolute number (eg, 200 would reduce the unit's health by 200 each interval unit, which would allow stronger units to survive longer) or a percentage (eg, 0.2 would reduce the unit's health by 20% each interval).

tech

Tech resources need a link to the G3D model that will be displayed, the amount that will be in the resource, and the resource number, which is which resource node number on a map will be replaced with that resource. MegaGlest can specify the usage of particles by linking to a unit particle system.

tileset

Similar to a tech resource, the tileset resource must specify how much of that resource are held in each object, and which tileset object number will correspond with it (eg: Object 1 is trees). There is not yet any way to make multiple tileset objects be the same resource.

display

A feature that toggles whether or not the resource appears in the HUD. Generally, you'd want most resources to be there, but it can be useful to have a hidden resource, such as one that may be used to limit you to a single "hero" unit, etc.


See also