Difference between revisions of "LuaWML/Sides"

From The Battle for Wesnoth Wiki
(documented wesnoth.get_sides)
(wesnoth.get_side: added new getters in side proxy table)
Line 15: Line 15:
 
* '''team_name''': string (read/write)
 
* '''team_name''': string (read/write)
 
* '''controller''': string (read/write) {{DevFeature1.9}}
 
* '''controller''': string (read/write) {{DevFeature1.9}}
 +
* '''fog''': boolean (read) {{DevFeature1.9}}
 +
* '''shroud''': boolean (read) {{DevFeature1.9}}
 +
* '''hidden''': boolean (read) {{DevFeature1.9}}
 +
* '''name''': string (read) {{DevFeature1.9}}
 +
* '''color''': string (read) {{DevFeature1.9}}
 
* '''__cfg''': WML table (dump)
 
* '''__cfg''': WML table (dump)
  

Revision as of 13:56, 17 May 2011

This page describes the LuaWML functions and helpers for handling sides and villages.

wesnoth.get_side

Returns the team with given number.

local team = wesnoth.get_side(1)
team.gold = team.gold + 50

Teams are proxy tables with the following fields:

The metatable of these proxy tables appears as "side".

wesnoth.sides

Template:DevFeature1.9

This is not a function but a table indexed by side numbers. Its elements are the proxy tables returned by #wesnoth.get_side.

local team = wesnoth.sides[1]
team.gold = team.gold + 50
wesnoth.message(string.format("%d sides", #wesnoth.sides))

wesnoth.get_sides

Template:DevFeature1.9

Returns a table array containing proxy tables for these sides matching the passed StandardSideFilter.

--set gold to 0 for all sides with a leader
local sides = wesnoth.get_sides({ {"has_unit", { canrecruit = true }} })
for i,v in ipairs(sides) do
    v.gold = 0
end

wesnoth.get_village_owner

Returns the side that owns the village at the given location.

local owned_by_side_1 = wesnoth.get_village_owner(12, 15) == 1

wesnoth.set_village_owner

Gives ownership of the village at the given location to the given side (or remove ownership if none).

wesnoth.set_village_owner(12, 15, 1)

wesnoth.is_enemy

Template:DevFeature1.9

Returns true if side A is enemy of side B, false otherwise.

local enemy_flag = wesnoth.is_enemy(1, 3)

wesnoth.match_side

Template:DevFeature1.9

Matches a side against a given StandardSideFilter.

wesnoth.message(tostring(wesnoth.match_side(1, {{"has_unit", { type = "Troll" }}})))

helper.all_teams

Returns an iterator over teams that can be used in a for-in loop.

for team in helper.all_teams() do team.gold = 200 end