Difference between revisions of "UnitsWML"

From The Battle for Wesnoth Wiki
(the [units] tag)
(the [units] tag)
Line 26: Line 26:
 
*** ''id'' unique identifier
 
*** ''id'' unique identifier
 
*** ''availability'' {{DevFeature}} describes whether a trait is "musthave" for a race or is available to "any" unit in a race, including leaders. The default is for a trait to only be available to nonleaders. Currently "any" should not be used for traits available in multiplayer. It can be used for campaign specific traits. (Note that currently "musthave" is somewhat misused to have what are really abilities (''undead'' and ''mechanical'') default from a unit type's race. Ideally someone will eventually extend ''race'' to allow for default abilities. It might also be possible to unify traits and abilities with keys to indicate how you get them and what happens to them when you advance, while allowing them to come from race, unit type and unit definitions. There are also display issues related to doing this.)
 
*** ''availability'' {{DevFeature}} describes whether a trait is "musthave" for a race or is available to "any" unit in a race, including leaders. The default is for a trait to only be available to nonleaders. Currently "any" should not be used for traits available in multiplayer. It can be used for campaign specific traits. (Note that currently "musthave" is somewhat misused to have what are really abilities (''undead'' and ''mechanical'') default from a unit type's race. Ideally someone will eventually extend ''race'' to allow for default abilities. It might also be possible to unify traits and abilities with keys to indicate how you get them and what happens to them when you advance, while allowing them to come from race, unit type and unit definitions. There are also display issues related to doing this.)
 +
*** ''keeponadvance'' 'yes' or 'no'(default). 'yes' says to keep this trait when advancing even if the trait is not available to the advanced unit. Normally traits unavailable to the advanced unit are lost permanently.
 
*** ''male_name'' {{DevFeature}} text displayed in the status of unit with the trait if the unit is male.
 
*** ''male_name'' {{DevFeature}} text displayed in the status of unit with the trait if the unit is male.
 
*** ''female_name'' {{DevFeature}} text displayed in the status of unit with the trait if the unit is female.
 
*** ''female_name'' {{DevFeature}} text displayed in the status of unit with the trait if the unit is female.

Revision as of 17:13, 18 August 2007

[edit]WML Tags

A:

abilities, about, achievement, achievement_group, add_ai_behavior, 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 (replay, weapon), attack_anim, attacks (special, stats), avoid;

B:

base_unit, background_layer, berserk, binary_path, break, brush;

C:

campaign, cancel_action, candidate_action, capture_village, case, chance_to_hit, change_theme, chat, checkbox, choice, choose, clear_global_variable, clear_menu_item, clear_variable, color_adjust, color_palette, color_range, command (action, replay), continue, credits_group, 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 (credits, options), era, event, experimental_filter_ability, experimental_filter_ability_active, experimental_filter_specials, 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_student, filter_vision, filter_weapon, filter_wml, find_path, fire_event, firststrike, floating_text, found_item, for, foreach, frame;

G:

game_config, get_global_variable, goal, gold, gold_carryover;

H:

harm_unit, has_ally, has_attack, has_unit, has_achievement, 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, intro), illuminates, image (intro, terrain), 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, post_movement_anim, pre_movement_anim, primary_attack, primary_unit, print, progress_achievement, 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_trait, 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, screen_fade, scroll, scroll_to, scroll_to_unit, secondary_attack, secondary_unit, section, select_unit, sequence, set_achievement, set_extra_recruit, set_global_variable, set_menu_item, set_recruit, set_specials, set_variable, set_variables, sheath_weapon_anim, show_if (message, objective, set_menu_item), show_objectives, side, skirmisher, slider, 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_defense_on, store_unit_type, store_unit_type_ids, store_villages, story, swarm, sub_achievement, switch, sync_variable;

T:

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

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 [units] tag

This tag is a top level WML tag which is in game.cfg. It defines the set of all units in Wesnoth.

The following subtags are recognized:

  • [unit] describes one unit type. See UnitWML for syntax.
  • [trait] describes a global trait.

All races with the attribute ignore_global_traits=no will have this trait. See [trait] below for syntax.

  • [movetype] used to make shortcuts to describe units with similar terrain handicaps. Units from the same advancement tree should generally have the same movetype.
    • name an ID for this movetype. Units with the attribute movetype=name will be assigned this movetype.
    • flies either 'true' or 'false'(default). A unit with flies=true does not have its image's height adjusted for different terrains.
    • [movement_costs] describes how fast the unit moves on different terrains. The attribute terrain=speed means that the unit will need to use speed move points to move onto the terrain with name=terrain (see TerrainWML).
    • [defense] describes how likely the unit is to be hit on different terrains. The attribute terrain=defense means that the unit will be hit defense percent of the time in the terrain with name=terrain.
    • [resistance] describes how much damage the unit takes from different types of attacks. The attribute type=resistance makes the unit receive resistance percent of damage, or resist 100-resistance percent of damage from attacks with type=type. So for example, a resistance of fire=110 means, this unit will receive 110% of damage, or have a resistance of -10% as displayed in-game. A value of fire=0 would mean, the unit receives no damage and therefore has a resistance of 100%.
  • [race] is used to make shortcuts to describe units with similar names. Units from the same advancement tree should generally have the same race. Also, units with the same race should generally be recruitable by the same sides/factions.
    • name an ID for this race. Units with the attribute race=name will be assigned this race.
    • male_names, female_names lists of names (i.e. non-translatable strings). They are inputted into the Markov name generator to generate random names. male_names describes units with gender=male; female_names describes units with gender=female.
    • markov_chain_size (default 2) number of letters per "syllable". "Syllables" are groupings of names that the Markov name generator uses to determine names. It does this by running a probability algorithm to guess from the name list which syllables fit well together, which can start or end a name, etc.
    • not_living 'yes' or 'no'(default). Units with not_living=yes cannot be poisoned, drained from, or plagued (see AbilitiesWML). Template:DevFeature not_living is no longer a property of race. Instead it is a per unit state that derives from the undead and mechanical traits.
    • num_traits is the number of non-repeating traits each unit of this race can be assigned.
    • ignore_global_traits 'yes' or 'no'(default). Determines whether global traits (see [traits] above) are applied.
    • [trait] describes a trait for this race. :
      • id unique identifier
      • availability Template:DevFeature describes whether a trait is "musthave" for a race or is available to "any" unit in a race, including leaders. The default is for a trait to only be available to nonleaders. Currently "any" should not be used for traits available in multiplayer. It can be used for campaign specific traits. (Note that currently "musthave" is somewhat misused to have what are really abilities (undead and mechanical) default from a unit type's race. Ideally someone will eventually extend race to allow for default abilities. It might also be possible to unify traits and abilities with keys to indicate how you get them and what happens to them when you advance, while allowing them to come from race, unit type and unit definitions. There are also display issues related to doing this.)
      • keeponadvance 'yes' or 'no'(default). 'yes' says to keep this trait when advancing even if the trait is not available to the advanced unit. Normally traits unavailable to the advanced unit are lost permanently.
      • male_name Template:DevFeature text displayed in the status of unit with the trait if the unit is male.
      • female_name Template:DevFeature text displayed in the status of unit with the trait if the unit is female.
      • name text displayed in the status of unit with the trait if none of the two above is used.
      • description text displayed for the description of the trait.
      • [effect], described in EffectWML.

See Also