Difference between revisions of "MapGeneratorWML"

From The Battle for Wesnoth Wiki
(scenarios/multiplayer/Random_Map.cfg)
(Remove DevFeature, highlight tags and attributes)
Line 1: Line 1:
 
{{WML Tags}}
 
{{WML Tags}}
 +
 +
'''Note: this page is substantially INCOMPLETE'''
 +
 
== the [generator] tag] ==
 
== the [generator] tag] ==
  
Line 11: Line 14:
 
and '''scenarios/Heir_To_The_Throne/Sceptre.cfg'''.
 
and '''scenarios/Heir_To_The_Throne/Sceptre.cfg'''.
  
{{DevFeature}} Updated with some more info and the changes with the new terrain system
+
Updated with some more info and the changes with the new terrain system
  
 
The following key is reconized for '''[scenario]'''/'''[multiplayer]'''
 
The following key is reconized for '''[scenario]'''/'''[multiplayer]'''
* ''scenario_generation'' "empty" or "default" will us the default generator, "cave" used the cave generator. Other values are not valid.
+
* '''scenario_generation''': "empty" or "default" will us the default generator, "cave" used the cave generator. Other values are not valid.
  
 
The following key/tags are recognized for [generator]:
 
The following key/tags are recognized for [generator]:
* '''[scenario]'''/'''[settings]''' See [[ScenarioWML]]
+
* '''[scenario]'''/'''[settings]''': See [[ScenarioWML]]
* ''name''
+
* '''name'''
** 'default'
+
** '''default''''
* ''map_width'',''map_height'' size of the map to generate
+
* '''map_width''','''map_height''': size of the map to generate
* ''iterations'' the number of times an attempt is being made to generate a hill (default only)
+
* '''iterations''': the number of times an attempt is being made to generate a hill (default only)
* ''hill_size'' hills will have a random size between 1 and ''hill_size'' (default only)
+
* '''hill_size''': hills will have a random size between 1 and ''hill_size'' (default only)
* ''max_lakes'' the number of times an attempt is being made to generate a lake (default only)
+
* '''max_lakes''': the number of times an attempt is being made to generate a lake (default only)
* ''min_lake_height'' lakes are the starting point of rivers and need to start above a certain height (default only)
+
* '''min_lake_height''': lakes are the starting point of rivers and need to start above a certain height (default only)
* ''lake_size'' the size of a lake still randomly generated (default only)
+
* '''lake_size''': the size of a lake still randomly generated (default only)
* ''river_frequency'' determine how much a river can run uphill and thus generate more rivers (default only)
+
* '''river_frequency''': determine how much a river can run uphill and thus generate more rivers (default only)
* ''flipx_chance'' for scenario generation.
+
* '''flipx_chance''': for scenario generation.
 
Percentage chance to flip map across X axis ???
 
Percentage chance to flip map across X axis ???
* ''villages''
+
* '''villages'''
* ''village_density'' tiles per village ???
+
* '''village_density''': tiles per village ???
* ''players''
+
* '''players'''
* ''temperature_iterations''
+
* '''temperature_iterations''':
* ''temperature_size''
+
* '''temperature_size'''
* ''roads''
+
* '''roads'''
* ''road_windiness''
+
* '''road_windiness'''
* '''[height]''' list of common terrain types
+
* '''[height]''': list of common terrain types
 
which come in at different heights, from highest to lowest (default only)
 
which come in at different heights, from highest to lowest (default only)
** ''height''
+
** '''height'''
** ''terrain'' {{DevFeature}} 1 terrain letter
+
** '''terrain''': 1 terrain code
* '''[convert]''' used to make terrain conversions (default only).
+
* '''[convert]''': used to make terrain conversions (default only).
 
For example water becomes ice at low temperatures, grass snow, etc.
 
For example water becomes ice at low temperatures, grass snow, etc.
 
If the terrain is between the min_x and max_x it will be converted
 
If the terrain is between the min_x and max_x it will be converted
 
if min_x is not defined it will default to a large negative number
 
if min_x is not defined it will default to a large negative number
 
if max_x is not defined it will default to a large positive number
 
if max_x is not defined it will default to a large positive number
** ''min_height''
+
** '''min_height'''
** ''max_height''
+
** '''max_height'''
** ''min_temperature''
+
** '''min_temperature'''
** ''max_temperature''
+
** '''max_temperature'''
** ''from'' {{DevFeature}} A comma separated terrains to convert from
+
** '''from''': a comma separated terrains to convert from
** ''to'' {{DevFeature}} The terrain to convert these terrains to
+
** '''to''': The terrain to convert these terrains to
 
* '''[road_cost]'''
 
* '''[road_cost]'''
** ''terrain'' {{DevFeature}} 1 terrain letter
+
** '''terrain''' 1 terrain code
** ''cost'' how expensive it is the create a road on this terrain, this influences the odds of this terrain getting a road
+
** '''cost''': how expensive it is the create a road on this terrain, this influences the odds of this terrain getting a road
** ''convert_to_bridge'' {{DevFeature}} a comma separated list of terrains;
+
** '''convert_to_bridge''': a comma separated list of terrains;
 
   N/S, then NE/SW, then NW/SE.
 
   N/S, then NE/SW, then NW/SE.
** ''convert_to'' {{DevFeature}} 1 terrain letter (note using both ''convert_to_bridge'' and ''convert_to'' might result in unwanted results)
+
** '''convert_to''': 1 terrain code (note using both ''convert_to_bridge'' and ''convert_to'' might result in unwanted results)
* '''[village]''' The conversion of terrains to villages (default only)
+
* '''[village]''': The conversion of terrains to villages (default only)
** ''terrain'' {{DevFeature}} 1 terrain letter which will be converted to a village
+
** '''terrain''': 1 terrain code which will be converted to a village
** ''convert_to'' {{DevFeature}} 1 terrain letter for the village
+
** '''convert_to''': 1 terrain code for the village
** ''adjacent_liked'' {{DevFeature}} a comma separated terrain list. This list increases the rating for a certain location, every tile around the location will be tested against this list and for every match the rating of the location is increased. The same terrain twice in the list will double the rating increase for that location.
+
** '''adjacent_liked''': a comma separated terrain list. This list increases the rating for a certain location, every tile around the location will be tested against this list and for every match the rating of the location is increased. The same terrain twice in the list will double the rating increase for that location.
** ''rating'' chance of appearing
+
** '''rating''': chance of appearing
* '''[castle]''' the conversion of castles (default only)
+
* '''[castle]''': the conversion of castles (default only)
** ''valid_terrain'' {{DevFeature}} a comma separated terrain list with terrains which are allowed to be converted to a castle.
+
** '''valid_terrain''': a comma-separated terrain list with terrains which are allowed to be converted to a castle.
** ''min_distance''
+
** '''min_distance'''
 
* '''[naming]'''
 
* '''[naming]'''
** ''male_names''
+
** '''male_names'''
 
* '''[village_naming]'''
 
* '''[village_naming]'''
** ''male_names''
+
** '''male_names'''
* '''[chamber]''' for underground maps
+
* '''[chamber]''': for underground maps
** ''id'' a name used to identify where the passages lead.  See the [passage] tag, below.
+
** '''id''': a name used to identify where the passages lead.  See the [passage] tag, below.
** ''x'',''y'' approximate location of the center hex of the chamber.  Unfortunately it isn't always exact.  Can be a single number (x=5) or a range (x=10-20)
+
** '''x''','''y''': approximate location of the center hex of the chamber.  Unfortunately it isn't always exact.  Can be a single number (x=5) or a range (x=10-20)
** ''size'' circular radius of the chamber, including the center hex
+
** '''size''': circular radius of the chamber, including the center hex
** ''jagged'' a good value is probably between 0-50 (not sure exactly)
+
** '''jagged''': a good value is probably between 0-50 (not sure exactly)
** '''[items]''' See [[ScenarioWML]].  This can contain tags normally found under [scenario] like [side], [item], and [event].  Moveto events definitely work here (using the same_location_as_previous key instead of a location filter).  Other events can be placed in the [settings] tag, above.  Locations of items will be generated randomly.  The attribute '''same_location_as_previous=yes''' means that the filter for a moveto event (see [[EventWML]]) is the same as the location of the previous item.
+
** '''[items]''': See [[ScenarioWML]].  This can contain tags normally found under [scenario] like [side], [item], and [event].  Moveto events definitely work here (using the same_location_as_previous key instead of a location filter).  Other events can be placed in the [settings] tag, above.  Locations of items will be generated randomly.  The attribute '''same_location_as_previous=yes''' means that the filter for a moveto event (see [[EventWML]]) is the same as the location of the previous item.
** '''[passage]''' defines a pathway between chambers
+
** '''[passage]''': defines a pathway between chambers
*** ''destination'' the id key of the destination passage
+
*** '''destination''': the id key of the destination passage
*** ''windiness'' a good value is probably between 1-10
+
*** '''windiness''': a good value is probably between 1-10
*** ''width'' number of hexes
+
*** '''width''': number of hexes
*** ''jagged'' a good value is probably between 1-10
+
*** '''jagged''': a good value is probably between 1-10
  
 
== See Also ==
 
== See Also ==

Revision as of 16:59, 19 February 2008

[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, 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, 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;

Note: this page is substantially INCOMPLETE

the [generator] tag]

The [generator] tag replaces a scenario's map data; in fact its whole purpose is to generate the map data given a set of configuration parameters.

The map generator function is not very well documented. The data on this page are taken from

scenarios/multiplayer/Random_Map.cfg

and scenarios/Heir_To_The_Throne/Sceptre.cfg.

Updated with some more info and the changes with the new terrain system

The following key is reconized for [scenario]/[multiplayer]

  • scenario_generation: "empty" or "default" will us the default generator, "cave" used the cave generator. Other values are not valid.

The following key/tags are recognized for [generator]:

  • [scenario]/[settings]: See ScenarioWML
  • name
    • default'
  • map_width,map_height: size of the map to generate
  • iterations: the number of times an attempt is being made to generate a hill (default only)
  • hill_size: hills will have a random size between 1 and hill_size (default only)
  • max_lakes: the number of times an attempt is being made to generate a lake (default only)
  • min_lake_height: lakes are the starting point of rivers and need to start above a certain height (default only)
  • lake_size: the size of a lake still randomly generated (default only)
  • river_frequency: determine how much a river can run uphill and thus generate more rivers (default only)
  • flipx_chance: for scenario generation.

Percentage chance to flip map across X axis ???

  • villages
  • village_density: tiles per village ???
  • players
  • temperature_iterations:
  • temperature_size
  • roads
  • road_windiness
  • [height]: list of common terrain types

which come in at different heights, from highest to lowest (default only)

    • height
    • terrain: 1 terrain code
  • [convert]: used to make terrain conversions (default only).

For example water becomes ice at low temperatures, grass snow, etc. If the terrain is between the min_x and max_x it will be converted if min_x is not defined it will default to a large negative number if max_x is not defined it will default to a large positive number

    • min_height
    • max_height
    • min_temperature
    • max_temperature
    • from: a comma separated terrains to convert from
    • to: The terrain to convert these terrains to
  • [road_cost]
    • terrain 1 terrain code
    • cost: how expensive it is the create a road on this terrain, this influences the odds of this terrain getting a road
    • convert_to_bridge: a comma separated list of terrains;
 N/S, then NE/SW, then NW/SE.
    • convert_to: 1 terrain code (note using both convert_to_bridge and convert_to might result in unwanted results)
  • [village]: The conversion of terrains to villages (default only)
    • terrain: 1 terrain code which will be converted to a village
    • convert_to: 1 terrain code for the village
    • adjacent_liked: a comma separated terrain list. This list increases the rating for a certain location, every tile around the location will be tested against this list and for every match the rating of the location is increased. The same terrain twice in the list will double the rating increase for that location.
    • rating: chance of appearing
  • [castle]: the conversion of castles (default only)
    • valid_terrain: a comma-separated terrain list with terrains which are allowed to be converted to a castle.
    • min_distance
  • [naming]
    • male_names
  • [village_naming]
    • male_names
  • [chamber]: for underground maps
    • id: a name used to identify where the passages lead. See the [passage] tag, below.
    • x,y: approximate location of the center hex of the chamber. Unfortunately it isn't always exact. Can be a single number (x=5) or a range (x=10-20)
    • size: circular radius of the chamber, including the center hex
    • jagged: a good value is probably between 0-50 (not sure exactly)
    • [items]: See ScenarioWML. This can contain tags normally found under [scenario] like [side], [item], and [event]. Moveto events definitely work here (using the same_location_as_previous key instead of a location filter). Other events can be placed in the [settings] tag, above. Locations of items will be generated randomly. The attribute same_location_as_previous=yes means that the filter for a moveto event (see EventWML) is the same as the location of the previous item.
    • [passage]: defines a pathway between chambers
      • destination: the id key of the destination passage
      • windiness: a good value is probably between 1-10
      • width: number of hexes
      • jagged: a good value is probably between 1-10

See Also