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.