#define ADDON_DESCRIPTION {SIMPLE_KEY name t_string} {SIMPLE_KEY description t_string} #enddef #define BASE_COMPATIBILITY_KEYS {DEFAULT_KEY allow_new_game bool yes} {SIMPLE_KEY allow_era string_list} {SIMPLE_KEY disallow_era string_list} {SIMPLE_KEY ignore_incompatible_era string_list} {SIMPLE_KEY allow_modification string_list} {SIMPLE_KEY disallow_modification string_list} {SIMPLE_KEY ignore_incompatible_modification string_list} #enddef [tag] name="$side" max=0 [if] [not] no_leader=yes [/not] [then] super="units/$unit" [/then] [/if] {DEFAULT_KEY no_leader bool no} {SIMPLE_KEY recruit string} {DEFAULT_KEY gold int 100} {DEFAULT_KEY income int 0} {DEFAULT_KEY hidden bool no} {SIMPLE_KEY fog bool} {SIMPLE_KEY shroud bool} {SIMPLE_KEY fog_data shroud_data} {SIMPLE_KEY shroud_data shroud_data} {SIMPLE_KEY persistent bool} {SIMPLE_KEY save_id string} {SIMPLE_KEY previous_save_id string} {SIMPLE_KEY team_name string} {SIMPLE_KEY user_team_name t_string} {SIMPLE_KEY current_player string} {SIMPLE_KEY side_name t_string} {SIMPLE_KEY color string} {SIMPLE_KEY flag string} {SIMPLE_KEY flag_icon string} {SIMPLE_KEY village_gold int} {SIMPLE_KEY village_support int} {SIMPLE_KEY recall_cost int} {DEPRECATED_KEY share_maps string} {DEPRECATED_KEY share_view string} {SIMPLE_KEY share_vision share_vision} {DEFAULT_KEY scroll_to_leader bool yes} {DEFAULT_KEY suppress_end_turn_confirmation bool no} {DEFAULT_KEY defeat_condition defeat_condition no_leader_left} [tag] name="unit" max=infinite super="units/$unit" [/tag] [tag] name="leader" max=infinite super="units/$unit" [/tag] [tag] name="village" max=infinite {SIMPLE_KEY x int} {SIMPLE_KEY y int} [/tag] [tag] name="fog_override" max=infinite {SIMPLE_KEY x range_list} {SIMPLE_KEY y range_list} [/tag] [tag] name="ai" max=infinite super="$ai" [/tag] {DEFAULT_KEY allow_player bool yes} {DEFAULT_KEY disallow_observers bool no} {DEFAULT_KEY disallow_shuffle bool no} {SIMPLE_KEY chose_random bool} {DEFAULT_KEY controller_lock bool no} {DEFAULT_KEY team_lock bool no} {DEFAULT_KEY color_lock bool no} {DEFAULT_KEY gold_lock bool no} {DEFAULT_KEY income_lock bool no} {DEFAULT_KEY faction_lock bool no} {DEFAULT_KEY leader_lock bool no} {SIMPLE_KEY faction string} {SIMPLE_KEY faction_from_recruit bool} [/tag] [tag] name="multiplayer_side" max=infinite super="$side" {REQUIRED_KEY id string} {SIMPLE_KEY name t_string} {SIMPLE_KEY description t_string} {SIMPLE_KEY image string} {SIMPLE_KEY leader string} {SIMPLE_KEY random_leader string} {DEFAULT_KEY random_faction bool no} [if] random_faction=yes [then] {SIMPLE_KEY choices string_list} {SIMPLE_KEY except string_list} [/then] [/if] {SIMPLE_KEY terrain_liked terrain_list} {DATA_TAG "world_conquest_data" 0 1} [/tag] [tag] name="event" max=infinite super="$action_wml" {SIMPLE_KEY name string} {SIMPLE_KEY id string} {DEFAULT_KEY first_time_only bool yes} {DEFAULT_KEY delayed_variable_substitution bool no} {FILTER_TAG "filter" unit ()} {FILTER_TAG "filter_second" unit ()} {FILTER_TAG "filter_attack" weapon ()} {FILTER_TAG "filter_second_attack" weapon ()} {FILTER_TAG "filter_side" side ()} [tag] name="filter_condition" super="$conditional_wml" [/tag] [/tag] [tag] name="$addon" max=0 {REQUIRED_KEY id string} # Not sure if this key is allowed in all addons, but it should be... {SIMPLE_KEY addon_min_version version} [tag] name="load_resource" max=infinite {REQUIRED_KEY id string} [/tag] {LINK_TAG "event"} {LINK_TAG "lua"} {LINK_TAG "ais/ai"} [tag] name="modify_unit_type" max=infinite {REQUIRED_KEY type string} {SIMPLE_KEY add_advancement string} {SIMPLE_KEY remove_advancement string} {SIMPLE_KEY set_experience int} [/tag] {DATA_TAG "world_conquest_data" 0 1} [/tag] [tag] name="campaign" max=infinite super="$addon" {ADDON_DESCRIPTION} {SIMPLE_KEY icon string} {SIMPLE_KEY abbrev t_string} {SIMPLE_KEY image string} {DEFAULT_KEY description_alignment text_alignment left} {DEFAULT_KEY type addon_type sp} {SIMPLE_KEY define string} {SIMPLE_KEY extra_defines string_list} {DEPRECATED_KEY difficulties string_list} {DEPRECATED_KEY difficulty_descriptions string} {DEFAULT_KEY allow_difficulty_change bool yes} {REQUIRED_KEY first_scenario string} {SIMPLE_KEY rank int} {DEFAULT_KEY end_credits bool yes} {SIMPLE_KEY end_text t_string} {DEFAULT_KEY end_text_duration int 3500} {SIMPLE_KEY start_year irdya_date} {SIMPLE_KEY end_year irdya_date} {SIMPLE_KEY year irdya_date} {LINK_TAG "era/options"} {LINK_TAG "about"} [tag] name="difficulty" max=infinite {REQUIRED_KEY define string} {SIMPLE_KEY image string} {SIMPLE_KEY label t_string} {SIMPLE_KEY description t_string} {SIMPLE_KEY default bool} [/tag] # Multiplayer specific # TODO: These are probably only allowed if type is mp or hybrid? [if] [not] type=sp [/not] [then] {DEFAULT_KEY min_players int 2} {SIMPLE_KEY max_players int} {DEFAULT_KEY allow_era_choice bool yes} {DEFAULT_KEY require_campaign bool yes} [/then] [/if] [/tag] [tag] name="era" max=infinite super="$addon" {ADDON_DESCRIPTION} {BASE_COMPATIBILITY_KEYS} {SIMPLE_KEY force_modification string_list} {SIMPLE_KEY require_era bool} {DEFAULT_KEY hide_help bool no} {DEFAULT_KEY type addon_type sp} {LINK_TAG "multiplayer_side"} [tag] name="options" [tag] name="checkbox" max=infinite {REQUIRED_KEY id string} {DEFAULT_KEY default bool no} {SIMPLE_KEY name t_string} {SIMPLE_KEY description t_string} [/tag] [tag] name="choice" max=infinite {REQUIRED_KEY id string} {SIMPLE_KEY default string} {SIMPLE_KEY name t_string} {SIMPLE_KEY description t_string} [tag] name="item" max=infinite {REQUIRED_KEY value string} {SIMPLE_KEY name t_string} [/tag] [/tag] [tag] name="entry" max=infinite {REQUIRED_KEY id string} {SIMPLE_KEY default string} {SIMPLE_KEY name t_string} {SIMPLE_KEY description t_string} [/tag] [tag] name="slider" max=infinite {REQUIRED_KEY id string} {SIMPLE_KEY default int} {SIMPLE_KEY min int} {SIMPLE_KEY max int} {SIMPLE_KEY step int} {SIMPLE_KEY name t_string} {SIMPLE_KEY description t_string} [/tag] [tag] name="combo" max=infinite super="era/options/choice" deprecated=yes [/tag] [/tag] [/tag] [tag] name="modification" max=infinite super="$addon" {ADDON_DESCRIPTION} {SIMPLE_KEY type addon_type} {BASE_COMPATIBILITY_KEYS} {SIMPLE_KEY ignore_incompatible_scenario string_list} {DEFAULT_KEY require_modification bool no} {LINK_TAG "era/options"} [/tag] [tag] name="resource" max=infinite super="$addon" [/tag] [tag] name="scenario" max=infinite super="$addon" {ADDON_DESCRIPTION} {SIMPLE_KEY next_scenario string} {SIMPLE_KEY name t_string} {SIMPLE_KEY map_data map_data} {SIMPLE_KEY map_file string} {DEFAULT_KEY turns turns unlimited} {DEFAULT_KEY turn_at int 1} {DEFAULT_KEY random_start_time bool,int_list no} {DEPRECATED_KEY music string} {SIMPLE_KEY defeat_music string} {SIMPLE_KEY victory_music string} {SIMPLE_KEY theme string_list} {DEFAULT_KEY victory_when_enemies_defeated bool yes} [if] [not] victory_when_enemies_defeated=no [/not] [then] {SIMPLE_KEY carryover_percentage int} {SIMPLE_KEY carryover_add bool} [/then] [else] {DEFAULT_KEY carryover_percentage int 80} {DEFAULT_KEY carryover_add bool no} [/else] [/if] {DEFAULT_KEY remove_from_carryover_on_defeat bool yes} {DEFAULT_KEY disallow_recall bool no} {DEFAULT_KEY experience_modifier int_percent 100} {DEFAULT_KEY current_time int 0} {SIMPLE_KEY map_generation string} {SIMPLE_KEY scenario_generation string} {SIMPLE_KEY force_lock_settings bool} [tag] name="story" max=infinite {SIMPLE_KEY title string} {INSERT_TAG} # TODO: Is this really recognized at story toplevel? Wiki claims it is. [tag] name="image" max=infinite {INSERT_TAG} {SIMPLE_KEY x int} {SIMPLE_KEY y int} {SIMPLE_KEY centered bool} {SIMPLE_KEY file string} {SIMPLE_KEY delay int} # These keys possibly not documented? {SIMPLE_KEY scale_vertically bool} {SIMPLE_KEY scale_horizontally bool} {SIMPLE_KEY scale bool} {SIMPLE_KEY tile_vertically bool} {SIMPLE_KEY tile_horizontally bool} {SIMPLE_KEY tile bool} [/tag] [tag] name="part" max=infinite {INSERT_TAG} {SIMPLE_KEY background string} {DEFAULT_KEY scale_background bool yes} {SIMPLE_KEY story t_string} {SIMPLE_KEY show_title bool} {SIMPLE_KEY title t_string} {SIMPLE_KEY music string} {SIMPLE_KEY sound string_list} {DEFAULT_KEY text_layout string bottom} {DEFAULT_KEY title_alignment text_alignment left} {SIMPLE_KEY delay int} # Not documented? [tag] name="background_layer" max=infinite {INSERT_TAG} {SIMPLE_KEY image string} {SIMPLE_KEY scale_vertically bool} {SIMPLE_KEY scale_horizontally bool} {SIMPLE_KEY scale bool} {SIMPLE_KEY keep_aspect_ratio bool} {SIMPLE_KEY tile_vertically bool} {SIMPLE_KEY tile_horizontally bool} {SIMPLE_KEY tile bool} {SIMPLE_KEY base_layer bool} [/tag] [tag] name="if" max=infinite super="$conditional_wml" [tag] name="then" super="scenario/story/part" [/tag] [tag] name="else" super="scenario/story/part" [/tag] [/tag] [tag] name="switch" max=infinite {REQUIRED_KEY variable string} {INSERT_TAG} [tag] name="case" max=infinite super="scenario/story/part" {REQUIRED_KEY value string} [/tag] [tag] name="else" super="scenario/story/part" [/tag] [/tag] {LINK_TAG "scenario/story/image"} {LINK_TAG "$action_wml/deprecated_message"} {LINK_TAG "$action_wml/wml_message"} [/tag] [tag] name="if" max=infinite super="$conditional_wml" [tag] name="then" super="scenario/story" [/tag] [tag] name="else" super="scenario/story" [/tag] [/tag] [tag] name="switch" max=infinite {REQUIRED_KEY variable string} {INSERT_TAG} [tag] name="case" max=infinite super="scenario/story" {REQUIRED_KEY value string} [/tag] [tag] name="else" super="scenario/story" [/tag] [/tag] {LINK_TAG "$action_wml/deprecated_message"} {LINK_TAG "$action_wml/wml_message"} [/tag] [tag] name="label" max=infinite {SIMPLE_KEY x s_range_list} {SIMPLE_KEY y s_range_list} {SIMPLE_KEY text t_string} {SIMPLE_KEY tooltip t_string} # Is this documented? {SIMPLE_KEY immutable s_bool} {SIMPLE_KEY visible_in_fog s_bool} {SIMPLE_KEY visible_in_shroud s_bool} {SIMPLE_KEY team_name string} {SIMPLE_KEY color s_color} [/tag] [tag] name="item" max="infinite" {SIMPLE_KEY x range_list} {SIMPLE_KEY y range_list} {SIMPLE_KEY image string} {SIMPLE_KEY halo string} {SIMPLE_KEY team_name string} {DEFAULT_KEY visible_in_fog bool yes} [/tag] [tag] name="time" max=infinite {REQUIRED_KEY id string} {SIMPLE_KEY name t_string} {SIMPLE_KEY image string} {SIMPLE_KEY mask string} {SIMPLE_KEY lawful_bonus int} {SIMPLE_KEY liminal_bonus int} {SIMPLE_KEY red int} {SIMPLE_KEY green int} {SIMPLE_KEY blue int} {SIMPLE_KEY sound string} [/tag] [tag] name="time_area" max=infinite {SIMPLE_KEY x range_list} {SIMPLE_KEY y range_list} {DEFAULT_KEY current_time int 0} {LINK_TAG "scenario/time"} [/tag] [tag] name="side" max=infinite super="$side" {REQUIRED_KEY side int} {SIMPLE_KEY controller controller} {SIMPLE_KEY allow_player bool} {SIMPLE_KEY disallow_observers bool} {SIMPLE_KEY faction_lock bool} {SIMPLE_KEY leader_lock bool} {SIMPLE_KEY team_lock bool} {SIMPLE_KEY gold_lock bool} {SIMPLE_KEY income_lock bool} {SIMPLE_KEY controller_lock bool} {SIMPLE_KEY color_lock bool} [/tag] [tag] name="display" {SIMPLE_KEY view_locked bool} {SIMPLE_KEY color_adjust_red unsigned} {SIMPLE_KEY color_adjust_green unsigned} {SIMPLE_KEY color_adjust_blue unsigned} [tag] name="location" {REQUIRED_KEY x unsigned} {REQUIRED_KEY y unsigned} [/tag] [/tag] [tag] name="sound_source" max=infinite {SIMPLE_KEY id string} {SIMPLE_KEY sounds string_list} {SIMPLE_KEY delay s_unsigned} {SIMPLE_KEY chance s_unsigned} {SIMPLE_KEY check_fogged s_bool} {SIMPLE_KEY check_shrouded s_bool} {SIMPLE_KEY x s_range_list} {SIMPLE_KEY y s_range_list} {DEFAULT_KEY fade_range s_unsigned 3} {DEFAULT_KEY full_range s_unsigned 14} {SIMPLE_KEY loop s_int} [/tag] {LINK_TAG "titlescreen_music/music"} {LINK_TAG "terrain_graphics"} {LINK_TAG "game_config/color_palette"} {LINK_TAG "game_config/color_range"} # TODO: Document [menu_item] and [undo_stack] [if] map_generation=default [or] scenario_generation=default [/or] [then] {./mapgen/default.cfg} [/then] [elseif] map_generation=lua [or] scenario_generation=lua [/or] [then] {./mapgen/lua.cfg} [/then] [/elseif] [/if] {DATA_TAG variables 0 1} # TODO: These are needed here for MP campaigns... can we work around that somehow? {SIMPLE_KEY new_game_title t_string} {BASE_COMPATIBILITY_KEYS} [/tag] [tag] name="test" max=infinite super="scenario" {SIMPLE_KEY is_unit_test bool} [/tag] [tag] name="multiplayer" max=infinite super="scenario" #{SIMPLE_KEY new_game_title t_string} #{BASE_COMPATIBILITY_KEYS} {SIMPLE_KEY force_modification string_list} {SIMPLE_KEY require_scenario bool} {SIMPLE_KEY mp_village_gold int} {SIMPLE_KEY define string} {LINK_TAG "era/options"} [/tag] [tag] name="generic_multiplayer" max=infinite super="multiplayer" [/tag]