LuaAI
From The Battle for Wesnoth Wiki
A page containing information on configuring the AI using Lua. NB: previous contents of the page moved to http://wiki.wesnoth.org/LuaAI(old)
Aspects
Patch r49721 enabled users to write aspects using Lua. This simplifies the definition of aspects that are meant to change depending on the game state. A good example could be aggression, which changes depending on the time of the day(since ToD affects the actual battle performance of your forces).
Static aggression:
[aspect] id="aggression" engine="lua" value="0.3" [/aspect]
Dynamic aggression:
[aspect]
id=aggression
engine=lua
code=<<
wesnoth.fire("store_time_of_day")
local value = 0
tod = tostring(wesnoth.get_variable('time_of_day').name)
if (tod == 'Morning') then
value = 0.2
else
value = 1
end
wesnoth.fire("clear_variable", {name = "time_of_day"})
return value
>>
[/aspect]
Note: the way of getting the ToD is hacky here, but I will create a more elegant method soon(Nephro).
Also note the difference between 'code' and 'value' attributes, this is important.