Difference between revisions of "UnitTypeWML"

From The Battle for Wesnoth Wiki
(The [unit] tag: add info about the new profile usage.)
m (Moved ellipse and attack keys into alphabetical order)
Line 1: Line 1:
{{WML Tags}}
+
{{WML Tags}}
 
== The [unit] tag ==
 
== The [unit] tag ==
  
Line 21: Line 21:
 
! alignment
 
! alignment
 
| how the unit's damage should be affected by its lawful bonus (See [[TimeWML]]).
 
| how the unit's damage should be affected by its lawful bonus (See [[TimeWML]]).
 +
|-
 +
! attacks
 +
| the number of times that this unit can attack each turn.
 
|-
 
|-
 
! cost
 
! cost
Line 30: Line 33:
 
! do_not_list
 
! do_not_list
 
| {{DevFeature}} Not used by the game, but by tools for browsing and listing the unit tree. If this is 'yes', the unit will be ignored by these tools.  
 
| {{DevFeature}} Not used by the game, but by tools for browsing and listing the unit tree. If this is 'yes', the unit will be ignored by these tools.  
 +
|-
 +
! ellipse
 +
| the ellipse image to display under the unit, which is normally team-colored. Default is the normal ellipse; "misc/ellipse-nozoc" is a dashed ellipse that should be used for units without zone of control.
 
|-
 
|-
 
! experience
 
! experience
Line 55: Line 61:
 
! movetype
 
! movetype
 
| See '''[[movetype]]''', [[UnitsWML]]. Note that the tags '''[[movement_costs]]''', '''[[defense]]''', and '''[[resistance]]''' can be used to modify this movetype.
 
| See '''[[movetype]]''', [[UnitsWML]]. Note that the tags '''[[movement_costs]]''', '''[[defense]]''', and '''[[resistance]]''' can be used to modify this movetype.
|-
 
! attacks
 
| the number of times that this unit can attack each turn.
 
 
|-
 
|-
 
! name
 
! name
Line 82: Line 85:
 
! zoc
 
! zoc
 
| if "yes" the unit will have a zone of control regardless of level.  If present but set to anything other than "yes," the unit will have no zone of control.  If the tag is omitted, zone of control is dictated by unit level (level 0 = no zoc, level 1+ = has zoc).
 
| if "yes" the unit will have a zone of control regardless of level.  If present but set to anything other than "yes," the unit will have no zone of control.  If the tag is omitted, zone of control is dictated by unit level (level 0 = no zoc, level 1+ = has zoc).
|-
 
! ellipse
 
| the ellipse image to display under the unit, which is normally team-colored. Default is the normal ellipse; "misc/ellipse-nozoc" is a dashed ellipse that should be used for units without zone of control.
 
 
|}
 
|}
 
==== After max level advancement (AMLA) ====
 
==== After max level advancement (AMLA) ====
Line 137: Line 137:
 
* [[ReferenceWML]]
 
* [[ReferenceWML]]
 
* [[TerrainWML]]
 
* [[TerrainWML]]
 
  
 
[[Category: WML Reference]]
 
[[Category: WML Reference]]

Revision as of 18:16, 31 January 2009

[edit]WML Tags

A:

abilities, about, add_ai_behavior, advance, advanced_preference, advancefrom, advancement, advances, affect_adjacent, ai, allied_with, allow_end_turn, allow_extra_recruit, allow_recruit, allow_undo, and, animate, animate_unit, animation, aspect, attack, attack_anim, attacks, avoid;

B:

base_unit, berserk, binary_path, break, brush;

C:

campaign, cancel_action, candidate_action, capture_village, case, chance_to_hit, change_theme, chat, choose, clear_global_variable, clear_menu_item, clear_variable, color_adjust, color_range, command (action, replay), continue, criteria;

D:

damage, death, deaths, default, defend, defends, defense, delay, deprecated_message, destination, difficulty, disable, disallow_end_turn, disallow_extra_recruit, disallow_recruit, do, do_command, drains, draw_weapon_anim;

E:

editor_group, editor_music, editor_times, effect, else (action, animation), elseif, endlevel, end_turn (action, replay), enemy_of, engine, entry, era, event, extra_anim;

F:

facet, facing, fake_unit, false, feedback, female, filter (concept, event), filter_adjacent, filter_adjacent_location, filter_attack, filter_attacker, filter_base_value, filter_condition, filter_defender, filter_enemy, filter_location, filter_opponent, filter_own, filter_owner, filter_radius, filter_recall, filter_second, filter_second_attack, filter_self, filter_side, filter_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, for, foreach, frame, full_heal;

G:

game_config, get_global_variable, goal, gold, gold_carryover;

H:

harm_unit, has_ally, has_attack, has_unit, have_location, have_unit, heal_on_hit, heal_unit, healed_anim, healing_anim, heals, hide_help, hide_unit, hides;

I:

idle_anim, if (action, animation), illuminates, image, init_side, insert_tag, inspect, item, item_group;

J:

jamming_costs, join;

K:

kill, killed;

L:

label, language, leader, leader_goal, leadership, leading_anim, levelin_anim, levelout_anim, lift_fog, limit, literal, load_resource, locale, lock_view, lua;

M:

male, menu_item, message, micro_ai, missile_frame, modification, modifications, modify_ai, modify_side, modify_turns, modify_unit, modify_unit_type, move, move_unit, move_unit_fake, move_units_fake, movement_anim, movement costs, movetype, multiplayer, multiplayer_side, music;

N:

not, note;

O:

object, objective, objectives, on_undo, open_help, option, options, or;

P:

part, petrifies, petrify, place_shroud, plague, poison, portrait, post_movement_anim, pre_movement_anim, primary_attack, primary_unit, print, put_to_recall_list;

R:

race, random_placement, recall (action, replay), recalls, recruit, recruit_anim, recruiting_anim, recruits, redraw, regenerate, remove_event, remove_item, remove_object, remove_shroud, remove_sound_source, remove_time_area, remove_unit_overlay, repeat, replace_map, replace_schedule, replay, replay_start, reset_fog, resistance (ability, unit), resistance_defaults, resource, return, role, rule;

S:

save, scenario, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, set_menu_item), show_objectives, side, skirmisher, slow, snapshot, sound, sound_source, source (replay, teleport), special_note, specials, split, stage, standing_anim, statistics, status, store_gold, store_items, store_locations, store_map_dimensions, store_reachable_locations, store_relative_direction, store_side, store_starting_location, store_time_of_day, store_turns, store_unit, store_unit_defense, store_unit_type, store_unit_type_ids, store_villages, story, swarm, switch, sync_variable;

T:

target, team, teleport (ability, action), teleport_anim, terrain, terrain_defaults, terrain_graphics, terrain_mask, terrain_type, test, test_condition, text_input, textdomain, theme, then, tile, time, time_area, topic, toplevel, trait, transform_unit, traveler, true, tunnel, tutorial;

U:

unhide_unit, unit, unit_overlay, unit_type, unit_worth, units, unlock_view, unpetrify, unstore_unit, unsynced;

V:

value, variable, variables, variant, variation, victory_anim, village, vision_costs, volume;

W:

while, wml_message, wml_schema;

Z:

zoom;

The [unit] tag

Each [unit] tag defines one unit type. (for the use of [unit] to create a unit, see SingleUnitWML) Note: this tag has been renamed Template:DevFeature and is now [unit_type].

Unit animation syntax is described in AnimationWML.

The following key/tags are recognized:

After max level advancement (AMLA)

  • [advancement]: describes what happens to a unit when it reaches the XP required for advancement. It is considered as an advancement in the same way as advancement described by advanceto; however, if the player chooses this advancement, the unit will have one or more effects applied to it instead of advancing.
    • description: a description (see DescriptionWML) displayed as the option for this advancement if there is another advancement option that the player must choose from; otherwise, the advancement is chosen automatically and this key is irrelevant.
    • image: an image to display next to the description in the advancement menu.
    • max_times: default 1. The maximum times the unit can be awarded this advancement.
    • strict_amla: (yes|no) default=no. Disable the AMLA if the unit can advance to another unit.
    • require_amla: An optional list of AMLA id keys that act as prerequisites for this advancement to become available. Order is not important, and an AMLA id can be repeated any number of times to indicate that another advancement must be chosen several times before this advancement option will become available.
      • example: require_amla=tough,tough,incr_damage assumes there exist other [advancement] options called id=tough and id=incr_damage. Once tough is chosen twice and incr_damage is chosen once, then the current [advancement] will become available.
      • require_amla=tough,incr_damage,tough is an equivalent way of expressing this.
    • [effect]: A modification applied to the unit whenever this advancement is chosen. See EffectWML

Other tags

  • [base_unit]: Contains one attribute, id, which must be the ID of a unit type. If specified, the UnitWML for that unit is copied into this one. Subsequent attributes modify the copy. (1.3.7 and later versions only.)
  • [attack]: one of the unit's attacks.
    • description: a translatable text for name of the attack, to be displayed to the user.
    • name: the name of the attack. Used as a default description, if description is not present, and to determine the default icon, if icon is not present (if name=x then icon=attacks/x.png is assumed unless present). Non-translatable. Used for the has_weapon key; see FilterWML
    • type: the damage type of the attack. Used in determining resistance to this attack (see [resistances], UnitsWML). Possible values are 'blade', 'pierce', 'impact', 'fire', 'cold', and 'arcane'.
    • [specials]: contains the specials of the attack. See AbilitiesWML.
    • icon: the image to use as an icon for the attack in the attack choice menu, as a path relative to the images directory.
    • range: the range of the attack. Used to determine the enemy's retaliation, which will be of the same type. Also displayed on the status table in parentheses; 'melee'(default) displays "melee", while 'ranged' displays "ranged". Range can be anything. Standard values are now "melee" and "ranged". From now on, short and long will be treated as totally different ranges. You can create any number of ranges now (with any name), and units can only retaliate against attacks for which they have a corresponding attack of the same range. This value is translatable.
    • damage: the damage of this attack
    • number: the number of strikes per attack this weapon has

For those two following settings, the engine usually chooses the attack with the best average total damages * weight (default weight = 1.0).

    • attack_weight: helps the AI to choose which attack to use when attacking; highly weighted attacks are more likely to be used. Setting it to 0 disables the attack on attack
    • defense_weight: used to determine which attack is used for retaliation. This affects gameplay, as the player is not allowed to determine his unit's retaliation weapon. Setting it to 0 disable the attacks on defense
    • movement_used: determines how many movement points using this attack expends. By default all movement is used up, set this to 0 to make attacking with this attack expend no movement.
    • [animation]
This describes an animation for this attack. If multiple animations are present, one will be randomly chosen each time the unit attacks. See AnimationWML for possible keys.
  • [defend]: See AnimationWML
  • [death]: See AnimationWML
  • [teleport_anim]: See AnimationWML
  • [extra_anim]: See AnimationWML
  • [event]: Any [event] written inside the [unit] tag will get included into any scenario where a unit of this type appears in. Note that such events get included when a unit of this type first appears in the scenario, not automatically when the scenario begins (meaning that name=prestart events, for example, would usually never trigger). See EventWML and WML_Abilities
  • [variation]: Defines a variation of a unit. Variations are invoked with an [effect] tag. They are currently used for graphical variations (giving character sprites new weapons) but theoretically you could do anything with it.
    • variation_name: The name of the variation.
    • inherit: if yes, inherits all the properties of the base unit.
All other keys in [variation] are the same as for [unit] itself.
  • [male], [female]: They can contain all [unit] tags, to specify a variation of different gender for a unit.
    • inherit: if yes, inherits all the properties of the base unit. defaults to yes
  • [abilities]: Defines the abilities of a unit. See AbilitiesWML

See Also