Difference between revisions of "AchievementsWML"

From The Battle for Wesnoth Wiki
([achievement_group]: Fix tag name to match actually recognized tag)
([sub_achievement])
 
(11 intermediate revisions by 2 users not shown)
Line 11: Line 11:
 
The following keys and tags are recognized in '''[achievement_group]''' tags:
 
The following keys and tags are recognized in '''[achievement_group]''' tags:
 
* '''content_for''': The internal identifier for this group of achievements. The standard usage would be to have this be unique per add-on or per piece of content (campaign, modification, etc), however there is no limitation on how achievement groups are declared - an add-on can define as many achievement groups as it wants. If multiple achievements groups are defined with the same '''content_for''' value, then their achievements are merged into a single combined list.
 
* '''content_for''': The internal identifier for this group of achievements. The standard usage would be to have this be unique per add-on or per piece of content (campaign, modification, etc), however there is no limitation on how achievement groups are declared - an add-on can define as many achievement groups as it wants. If multiple achievements groups are defined with the same '''content_for''' value, then their achievements are merged into a single combined list.
* '''display_text''': (translatable) The text to be displayed on the content dropdown of the achievements dialog.
+
* '''display_name''': (translatable) The text to be displayed on the content dropdown of the achievements dialog.
 
* '''[achievement]''': See below.
 
* '''[achievement]''': See below.
  
Line 18: Line 18:
 
The following keys are recognized in '''[achievement]''' tags:
 
The following keys are recognized in '''[achievement]''' tags:
 
* '''id''': (''required'') The internal ID to be used when identifying this achievement. Must be unique within an [achievements_group].
 
* '''id''': (''required'') The internal ID to be used when identifying this achievement. Must be unique within an [achievements_group].
* '''name''': (''required'') (translatable) The achievement name to display on the achievements dialog.
+
* '''name''': (''required'') (translatable) The achievement name to display on the achievements dialog. Supports Pango markup.
* '''name_completed''': (translatable) (optional) The achievement name to display on the achievements dialog when this achievement has been completed.
+
* '''name_completed''': (translatable) (optional) The achievement name to display on the achievements dialog when this achievement has been completed. Supports Pango markup.
* '''description''': (''required'') (translatable) The achievement description to display on the achievements dialog.
+
* '''description''': (''required'') (translatable) The achievement description to display on the achievements dialog. Supports Pango markup.
* '''description_completed''': (translatable) (optional) The achievement description to display on the achievements dialog when this achievement has been completed.
+
* '''description_completed''': (translatable) (optional) The achievement description to display on the achievements dialog when this achievement has been completed. Supports Pango markup.
* '''icon''': The image to display next to this achievement on the achievements dialog, scaled to be 60x60 pixels. '''This must be the full path to the image!''' For example - <code>data/core/images/icons/potion_green_small.png</code> (mainline) or <code>data/YourAddon/images/icons/some_image.png</code> (add-on).
+
* '''icon''': The image to display next to this achievement on the achievements dialog, scaled to be 72x72 pixels. '''This must be the full path to the image!''' For example - <code>data/core/images/icons/potion_green_small.png</code> (mainline) or <code>data/add-ons/YourAddon/images/icons/some_image.png</code> (add-on).
* '''icon_completed''': (optional) The image to display next to this achievement on the achievements dialog when this achievement has been completed, scaled to be 60x60 pixels. '''This must be the full path to the image!''' For example - <code>data/core/images/icons/potion_green_small.png</code> (mainline) or <code>data/YourAddon/images/icons/some_image.png</code> (add-on).
+
* '''icon_completed''': (optional) The image to display next to this achievement on the achievements dialog when this achievement has been completed, scaled to be 60x60 pixels. '''This must be the full path to the image!''' For example - <code>data/core/images/icons/potion_green_small.png</code> (mainline) or <code>data/add-ons/YourAddon/images/icons/some_image.png</code> (add-on).
* '''hidden''': (optional) When set to '''yes''', ''hidden_name'' and ''hidden_hint'' are used in place of ''name'' and ''description'' when the achievement is not completed. Default: no.
+
* '''hidden''': (optional) When set to '''yes''', the achievement is not shown in the achievements dialog until it is completed. Default: no.
* '''hidden_name''': (translatable) (optional) The achievement name to display on the achievements dialog when the '''hidden''' attribute is set to ''yes''.
+
* '''max_progress''': (optional) The progress value at which this achievement is considered to be complete.
* '''hidden_hint''': (translatable) (optional) The achievement description to display on the achievements dialog when the '''hidden''' attribute is set to ''yes''.
+
* '''sound''': (optional) The path to a sound to play when the achievement is completed. '''This must be the full path to the sound!''' For example - <code>data/core/sounds/dwarf-laugh.wav</code> (mainline) or <code>data/add-ons/YourAddon/sounds/some_sound.ogg</code> (add-on).
 +
 
 +
=== [sub_achievement] ===
 +
 
 +
{{DevFeature1.17|17}}
 +
 
 +
The following keys are recognized in '''[sub_achievement]''' tags:
 +
 
 +
* '''id''': (''required'') The internal ID to be used when identifying this sub-achievement. Must be unique within an [achievement].
 +
* '''description''': (''required'') (translatable) The text to display when hovering over the sub-achievement's icon.
 +
* '''icon''': The image to display for to this sub-achievement on the achievements dialog, scaled to be 36x36 pixels. '''This must be the full path to the image!''' For example - <code>data/core/images/icons/potion_green_small.png</code> (mainline) or <code>data/add-ons/YourAddon/images/icons/some_image.png</code> (add-on).
 +
 
 +
A maximum of 28 sub-achievements can be defined for an achievement.

Latest revision as of 05:06, 18 May 2023

[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, core, credits_group, criteria;

D:

damage, damage_type, 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, fonts, for, foreach, found_item, 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, resolution, 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 (action, scenario), 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;

(Version 1.17.13 and later only)

Achievements

Achievements are defined in an achievements.cfg file located at the root directory of an add-on (in the same folder as the _main.cfg). The WML in the achievements.cfg file is loaded completely independently of any other WML in your add-on or in mainline Wesnoth - this means you do not have access to any macros that are not defined in this file nor the context setup by the [binary_path].

[achievement_group]

The following keys and tags are recognized in [achievement_group] tags:

  • content_for: The internal identifier for this group of achievements. The standard usage would be to have this be unique per add-on or per piece of content (campaign, modification, etc), however there is no limitation on how achievement groups are declared - an add-on can define as many achievement groups as it wants. If multiple achievements groups are defined with the same content_for value, then their achievements are merged into a single combined list.
  • display_name: (translatable) The text to be displayed on the content dropdown of the achievements dialog.
  • [achievement]: See below.

[achievement]

The following keys are recognized in [achievement] tags:

  • id: (required) The internal ID to be used when identifying this achievement. Must be unique within an [achievements_group].
  • name: (required) (translatable) The achievement name to display on the achievements dialog. Supports Pango markup.
  • name_completed: (translatable) (optional) The achievement name to display on the achievements dialog when this achievement has been completed. Supports Pango markup.
  • description: (required) (translatable) The achievement description to display on the achievements dialog. Supports Pango markup.
  • description_completed: (translatable) (optional) The achievement description to display on the achievements dialog when this achievement has been completed. Supports Pango markup.
  • icon: The image to display next to this achievement on the achievements dialog, scaled to be 72x72 pixels. This must be the full path to the image! For example - data/core/images/icons/potion_green_small.png (mainline) or data/add-ons/YourAddon/images/icons/some_image.png (add-on).
  • icon_completed: (optional) The image to display next to this achievement on the achievements dialog when this achievement has been completed, scaled to be 60x60 pixels. This must be the full path to the image! For example - data/core/images/icons/potion_green_small.png (mainline) or data/add-ons/YourAddon/images/icons/some_image.png (add-on).
  • hidden: (optional) When set to yes, the achievement is not shown in the achievements dialog until it is completed. Default: no.
  • max_progress: (optional) The progress value at which this achievement is considered to be complete.
  • sound: (optional) The path to a sound to play when the achievement is completed. This must be the full path to the sound! For example - data/core/sounds/dwarf-laugh.wav (mainline) or data/add-ons/YourAddon/sounds/some_sound.ogg (add-on).

[sub_achievement]

(Version 1.17.17 and later only)

The following keys are recognized in [sub_achievement] tags:

  • id: (required) The internal ID to be used when identifying this sub-achievement. Must be unique within an [achievement].
  • description: (required) (translatable) The text to display when hovering over the sub-achievement's icon.
  • icon: The image to display for to this sub-achievement on the achievements dialog, scaled to be 36x36 pixels. This must be the full path to the image! For example - data/core/images/icons/potion_green_small.png (mainline) or data/add-ons/YourAddon/images/icons/some_image.png (add-on).

A maximum of 28 sub-achievements can be defined for an achievement.

This page was last edited on 18 May 2023, at 05:06.