Difference between revisions of "XML/Commands"

From MegaGlest
Jump to navigation Jump to search
 
(7 intermediate revisions by 2 users not shown)
Line 386: Line 386:
 
<move-skill value="move_skill" />
 
<move-skill value="move_skill" />
 
<attack-skill value="attack_skill" />
 
<attack-skill value="attack_skill" />
 +
    <unit value="unit_toSpawn" amount="0" spawnAtTarget="false">
 
</command>
 
</command>
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 451: Line 452:
 
===attack-skill===
 
===attack-skill===
 
The name of the attack skill to use.
 
The name of the attack skill to use.
 
==Cast-spell==
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<command>
 
<type value="cast-spell" />
 
<name value="cast-spell" tip="tip_name" />
 
<image path="images/image.bmp" />
 
<unit-requirements>
 
<unit name="my_unit" />
 
</unit-requirements>
 
<upgrade-requirements>
 
<upgrade name="my_upgrade" />
 
</upgrade-requirements>
 
<cast-spell-skill value="cast_spell_skill" />
 
<affect value="self" />
 
<cycle value="false" />
 
</command>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
Cast spell is a command to allow a friendly spell to be casted on either yourself or a target.
 
 
===type===
 
The type of the command, in this case, cast-spell. The <tt>tip</tt> attribute is an optional GAE-only value that will reference the keyword used as a tooltip.
 
 
===name===
 
The name of the command, as seen ingame. GAE can translate these with separate language files as well.
 
 
===image===
 
Path to the image which will be used as an icon to initiate the command.
 
 
===unit-requirements===
 
A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.
 
 
===upgrade-requirements===
 
A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.
 
 
===cast-spell-skill===
 
The name of the cast-spell skill to use.
 
 
===affect===
 
Who the command is used against. Either <tt>self</tt> for casting spells on yourself, such as a self-buffing spell, or <tt>target</tt> to cast spells on others, such as a healing spell.
 
 
 
===cycle===
 
Whether or not the command loops. If true, it will repeat the spell over and over, if false, it casts once per click. Note that since it considers the cycle done when the skill cycle is up, the speed and anim speed in the skill '''must''' be the same!
 
 
==Teleport==
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<command>
 
<type value="teleport" />
 
<name value="teleport" tip="tip_name" />
 
<image path="images/image.bmp" />
 
<unit-requirements>
 
<unit name="my_unit" />
 
</unit-requirements>
 
<upgrade-requirements>
 
<upgrade name="my_upgrade" />
 
</upgrade-requirements>
 
<move-skill value="move_skill" />
 
</command>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
Teleport is a method of moving instantly from one location to another, unblocked by anything in the way (though the destination must be clear).
 
 
===type===
 
The type of the command, in this case, teleport. The <tt>tip</tt> attribute is an optional GAE-only value that will reference the keyword used as a tooltip.
 
 
===name===
 
The name of the command, as seen ingame. GAE can translate these with separate language files as well.
 
 
===image===
 
Path to the image which will be used as an icon to initiate the command.
 
 
===unit-requirements===
 
A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.
 
 
===upgrade-requirements===
 
A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.
 
 
===move-skill===
 
The name of the move skill to use.
 
 
==build-self==
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<command>
 
<type value="build-self" />
 
<name value="build_self" tip="tip_name" />
 
<image path="images/image.bmp" />
 
<unit-requirements>
 
<unit name="my_unit" />
 
</unit-requirements>
 
<upgrade-requirements>
 
<upgrade name="my_upgrade" />
 
</upgrade-requirements>
 
<build-self-skill value="build_self_skill" />
 
<display value="false" />
 
</command>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
Build self is a way of finishing a building by itself, without any other units repairing or building it. Note that the skill is "build_self" while the command is "build-self".
 
 
===type===
 
The type of the command, in this case, build-self. The <tt>tip</tt> attribute is an optional GAE-only value that will reference the keyword used as a tooltip.
 
 
===name===
 
The name of the command, as seen ingame. GAE can translate these with separate language files as well.
 
 
===image===
 
Path to the image which will be used as an icon to initiate the command.
 
 
===unit-requirements===
 
A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.
 
 
===upgrade-requirements===
 
A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.
 
 
===build-self-skill===
 
The name of the build_self skill to use.
 
 
===display===
 
If true, a button is shown and must be clicked in order to perform the self building. If false, it's done automatically.
 
 
==Load==
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<command>
 
<type value="load" />
 
<name value="load" tip="tip_name" />
 
<image path="images/image.bmp" />
 
<unit-requirements>
 
<unit name="my_unit" />
 
</unit-requirements>
 
<upgrade-requirements>
 
<upgrade name="my_upgrade" />
 
</upgrade-requirements>
 
<load-skill value="load_skill"/>
 
<move-skill value="move_skill"/>
 
<units-carried>
 
<unit value="unit_name"/>
 
</units-carried>
 
<load-capacity value="3" />
 
<allow-projectiles value="true">
 
<horizontal-offset value="2.0" />
 
<vertical-offset value="1.5" />
 
</allow-projectiles>
 
</command>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
Load is one of the skills needed, along with unload, to make a transport or garrisoning building. It allows a unit to be loaded or "carried".
 
 
===type===
 
The type of the command, in this case, load. The <tt>tip</tt> attribute is an optional GAE-only value that will reference the keyword used as a tooltip.
 
 
===name===
 
The name of the command, as seen ingame. GAE can translate these with separate language files as well.
 
 
===image===
 
Path to the image which will be used as an icon to initiate the command.
 
 
===unit-requirements===
 
A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.
 
 
===upgrade-requirements===
 
A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.
 
 
===load-skill===
 
The name of the load skill to use.
 
 
===move-skill===
 
The name of the move skill to use.
 
 
===units-carries===
 
A list of the units that are able to be loaded.
 
 
===load-capacity===
 
The maximum number of units that the unit can hold.
 
 
===allow-projectiles===
 
If true, units can fire out of the loader. The horizontal and vertical offset is the offset to where the particles would start.
 
 
==Unload==
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<command>
 
<type value="unload" />
 
<name value="unload" tip="tip_name" />
 
<image path="images/image.bmp" />
 
<unit-requirements>
 
<unit name="my_unit" />
 
</unit-requirements>
 
<upgrade-requirements>
 
<upgrade name="my_upgrade" />
 
</upgrade-requirements>
 
<unload-skill value="move_skill" />
 
</command>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
The opposite of load, unload will remove the previously loaded units, one by one.
 
 
===type===
 
The type of the command, in this case, unload. The <tt>tip</tt> attribute is an optional GAE-only value that will reference the keyword used as a tooltip.
 
 
===name===
 
The name of the command, as seen ingame. GAE can translate these with separate language files as well.
 
 
===image===
 
Path to the image which will be used as an icon to initiate the command.
 
 
===unit-requirements===
 
A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.
 
 
===upgrade-requirements===
 
A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.
 
 
===move-skill===
 
The name of the move skill to use.
 
 
 
==Transform==
 
<syntaxhighlight lang="xml">
 
<!-- Start GAE Only -->
 
<command>
 
<type value="transform"/>
 
<name value="transform" tip="tip_name" />
 
<image path="images/image.bmp" />
 
<unit-requirements>
 
<unit name="my_unit" />
 
</unit-requirements>
 
<upgrade-requirements>
 
<upgrade name="my_upgrade" />
 
</upgrade-requirements>
 
<morph-skill value="morph_skill"/>
 
<move-skill value="move_skill"/>
 
<position x="0" y="0"/>
 
<rotation value="0" />
 
<morph-units>
 
<morph-unit name="farm" />
 
</morph-units>
 
<hp-policy value="maintain" />
 
</command>
 
<!-- End GAE Only -->
 
</syntaxhighlight>
 
 
Transform works like morph, but instead of morphing into a similar mobile unit, it can be used for morphing into buildings.
 
 
===type===
 
The type of the command, in this case, build-self. The <tt>tip</tt> attribute is an optional GAE-only value that will reference the keyword used as a tooltip.
 
 
===name===
 
The name of the command, as seen ingame. GAE can translate these with separate language files as well.
 
 
===image===
 
Path to the image which will be used as an icon to initiate the command.
 
 
===unit-requirements===
 
A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.
 
 
===upgrade-requirements===
 
A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.
 
 
===morph-skill===
 
Name of the morph skill.
 
 
===move-skill===
 
Name of the move skill.
 
 
===position===
 
Allows the position of where the building will be placed relative to the unit to be tweaked.
 
 
===rotation===
 
Allows the rotation of building, in degrees, to be tweaked. 0 is facing north.
 
 
===morph-units===
 
A list of the units that can be morphed into.
 
 
===hp-policy===
 
Either <tt>set-to-one</tt> (the new building will have 1 HP), <tt>reset</tt> (use the default behaviour, the new building will have 5% of max HP), or <tt>maintain</tt> (keep the original unit's HP, clamped to the new unit's max HP).
 
  
 
==See also==
 
==See also==

Latest revision as of 22:55, 14 April 2021

Commands are the actions that a unit can be given. Unlike skills, which are called by commands, commands are directly the result of user interaction. For example, an attack command can be called by the player to issue an attack on the foe. All commands require some types of skills, which they use to find information like speed or the model. }

Stop[edit]

<command>
	<type value="stop" />
	<name value="stop" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<stop-skill value="stop_skill" />
</command>

The stop command does exactly as its name implies: it stops the unit and cancels their queue. If the unit isn't doing something, it automatically stops.

type[edit]

The type of the command, in this case, stop.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

stop-skill[edit]

The name of the stop skill to use.

Move[edit]

<command>
	<type value="move" />
	<name value="move" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<move-skill value="move_skill" />
</command>

The move command is used to allow the unit to move from place to place.

type[edit]

The type of the command, in this case, move.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

move-skill[edit]

The name of the move skill to use.

Repair[edit]

<command>
	<type value="repair" />
	<name value="repair" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<move-skill value="move_skill" />
	<repair-skill value="repair_skill" />
	<repaired-units>
		<unit name="my_unit" />
	</repaired-units>
</command>

The repair command is generally used for healing units of any kind, buildings or otherwise.

type[edit]

The type of the command, in this case, repair.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

move-skill[edit]

The name of the move skill to use.

repair-skill[edit]

The name of the repair skill to use.

repaired-units[edit]

A list of units that can be repaired with this command. If you have radically different units, such as buildings and regular units, you could make two repair skills, such as one that "heals" humanoids and one that "repairs" buildings.

Build[edit]

<command>
	<type value="build" />
	<name value="build" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<move-skill value="move_skill"/>
	<build-skill value="build_skill"/>
	<buildings>
		<building name="building_name" />
	</buildings>
	<start-sound enabled="true">
		<sound-file path="sounds/sound_file.wav"/>
	</start-sound>
	<built-sound enabled="false"/>
		<sound-file path="sounds/sound_file.wav"/>
	</built-sound>
</command>

Build is used to construct buildings, with a given submenu. If you want multiple sub menus, use multiple buildings.

type[edit]

The type of the command, in this case, build.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

move-skill[edit]

The name of the move skill to use.

build-skill[edit]

The name of the build skill to use.

buildings[edit]

List of buildings that could be built with this command. These units should all have "be_built" skills.

start-sound[edit]

A list of sound files from which one will be randomly played whenever the unit starts building.

built-sound[edit]

A list of sound files from which one will be randomly played once the building is complete.

Harvest[edit]

<command>
	<type value="harvest" />
	<name value="harvest" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<move-skill value="move_skill"/>
	<harvest-skill value="harvest_skill"/>
	<stop-loaded-skill value="stop_skill"/>
	<move-loaded-skill value="move_skill"/>
	<harvested-resources>
		<resource name="resource"/>
	</harvested-resources>
	<max-load value="25"/>
	<hits-per-unit value="1"/>
</command>

Harvest commands are used for gathering resources, such as mining gold or chopping down trees.

type[edit]

The type of the command, in this case, harvest.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

move-skill[edit]

The name of the move skill to use.

harvest-skill[edit]

The name of the harvest skill to use.

stop-loaded-skill[edit]

The name of the stop skill to use when the unit stops after harvesting a full load. This is often different because they could be carrying the resource back.

move-loaded-skill[edit]

The name of the move skill to use when the unit moves after harvesting a full load. This is often different because they could be carrying the resource back.

harvested-resources[edit]

A list of the resources that the unit can harvest (only tech or tileset resources can be harvested).

max-load[edit]

Maximum number of the resource the unit can carry before it has to take it back to a building for storage.

hits-per-unit[edit]

The number of hits (skill cycles) that must be performed to get each unit of the resource.

Produce[edit]

<command>
	<type value="produce" />
	<name value="produce" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<produce-skill value="produce_skill" />
	<produced-unit name="my_unit" />
</command>

The produce command is used to produce a new unit.

type[edit]

The type of the command, in this case, produce.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

produce-skill[edit]

The name of the produce skill to use.

produced-unit[edit]

The name of the unit to produce.

Upgrade[edit]

	<command>
		<type value="upgrade" />
		<name value="upgrade" />
		<image path="images/image.bmp" />
		<unit-requirements>
			<unit name="my_unit" />
		</unit-requirements>
		<upgrade-requirements>
			<upgrade name="my_upgrade" />
		</upgrade-requirements>
		<upgrade-skill value="upgrade_skill" />
		<produced-upgrade name="my_upgrade" />
	</command>

The upgrade command is used to initiate an upgrade.

type[edit]

The type of the command, in this case, upgrade.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

upgrade-skill[edit]

The name of the upgrade skill to use.

produced-upgrade[edit]

The name of the upgrade to initiate.

Morph[edit]

<command>
	<type value="morph" />
	<name value="morph" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<morph-skill value="morph_skill" />
	<morph-unit name="my_unit" />
	<discount value="0" />
	<!-- Start MG Only -->
	<ignore-resource-requirements value="false" />
	<!-- End MG Only -->
</command>

Similar to the produce command, but instead of making a new unit, the morph command converts the current unit into the new one. A unit can have a maximum of six morph commands.

type[edit]

The type of the command, in this case, morph.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

morph-skill[edit]

The name of the morph skill to use.

morph-unit[edit]

The name of the unit to morph into.


discount[edit]

The amount of the resources used to return after morphing, as a percentage from 0-100. 0 would mean you pay the full cost, 100 would mean that you are reimbursed the entire cost after morphing. Note that this is returned after morphing, so the initial resources are still needed.

ignore-resource-requirements[edit]

If this optional MegaGlest only value is true, the resource requirements of the morphed unit will be ignored (in other words, a free morph). Defaults to false.

Attack[edit]

<command>
	<type value="attack" />
	<name value="attack" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<move-skill value="move_skill" />
	<attack-skill value="attack_skill" />
    <unit value="unit_toSpawn" amount="0" spawnAtTarget="false">
</command>

The attack command is used to attack a foe. Most of the information is stored in its linked skill.

type[edit]

The type of the command, in this case, attack.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

move-skill[edit]

The name of the move skill to use.

attack-skill[edit]

The name of the attack skill to use.

Attack stopped[edit]

<command>
	<type value="attack_stopped" />
	<name value="attack_stopped" />
	<image path="images/image.bmp" />
	<unit-requirements>
		<unit name="my_unit" />
	</unit-requirements>
	<upgrade-requirements>
		<upgrade name="my_upgrade" />
	</upgrade-requirements>
	<stop-skill value="stop_skill" />
	<attack-skill value="attack_skill" />
</command>

This is like an attack command, but instead of moving towards a foe, it stands still and attacks the foe when they are in range. This makes it useful for buildings which don't have a move skill, and for units in the form of a hold position command.

type[edit]

The type of the command, in this case, attack_stopped.

name[edit]

The name of the command, as seen ingame.

image[edit]

Path to the image which will be used as an icon to initiate the command.

unit-requirements[edit]

A list of units that must exist before this command can be used. For example, you might have to construct a testing lab before you can start throwing grenades.

upgrade-requirements[edit]

A list of upgrades that must exist before this command can be used. For example, you might have to perform a training field upgrade before you could use a more advanced skill.

stop-skill[edit]

The name of the stop skill to use.

attack-skill[edit]

The name of the attack skill to use.

See also[edit]