StandardLocationFilter

From The Battle for Wesnoth Wiki
Revision as of 07:24, 1 March 2008 by Sapient (talk | contribs)

From FilterWML, this is the standard way of filtering on locations. The following attributes and sub-tags are permitted:

  • time_of_day: filter matches only on a given time of day (one of lawful, chaotic or neutral).
  • terrain: comma separated list of terrains. If you are using terrain letters (TerrainCodesWML), then yes you must use commas to separate the terrains; this is different from the the [store_locations] tag or IF_TERRAIN macro (of utils.cfg)! So instead of "gfm", write "g,f,m" here.
  • x,y: the same as in the unit filter; supports any range
  • [filter]: a StandardUnitFilter; if present a unit must also be there
  • owner_side: the side of the owner, if this location is an owned village.
  • find_in: name of an array or container variable; if present, the location will not match unless it is also found stored in the variable
  • radius: matches if any location within the radius matches this filter
If you aren't storing any locations successfully, it may be because you put the radius or filters in the wrong place for them to combine correctly.
 [have_location]
 terrain=Gg^Vh
 [and]
   x=$x1
   y=$y1
   radius=1
 [/and]
 [/have_location]
  • [filter_radius]: a standard location filter; normally the radius extends outwards from matching locations one step at a time without checking any additional information-- however, if this tag is present, the radius will be restricted so that it can only expand outwards in the directions where it passes the given location filter
  • [and]: an extra location filter. Unless a location matches the [and] filter, then it will be excluded. Note: [and],[or],and [not] extra location filters are considered after everything else in the containing filter (except radius, which is considered last in 1.3.8 and greater); they are then processed in the order encountered.
  • [or]: an extra location filter. If a location matches the [or] filter, then it will count as a match regardless of conditions in previous filters or the containing filter.
  • [not]: an extra location filter. If a location matches the [not] filter, then that location will be excluded.
  • [filter_adjacent_location]: a standard location filter; if present the correct number of adjacent locations must match this filter
    • count: a number, range, or comma separated range; default "1-6"
    • adjacent: a comma separated list of directions; default "n,ne,se,s,sw,nw"