Firstly, there was a typo in the parse_fog_cfg utility function.
Secondly, wesnoth.get_sides returns a table of side proxy tables, not a
list of side numbers. I changed [lift_fog] and [reset_fog] to iterate through
the table returned by parse_fog_cfg.
this has 2 advantages:
1) It decreased savefile size since the event is no longer sotred in
each savefile.
2) The ABILITY_FEEDING no longer assumes its used from within
[abilities]
This means [object], [advancement], and [trait] tags within [modify_unit]
can now use delayed_variable_substitution=yes.
This is currently needed for adding teleport, backstab, and leadership abilities.
This is more about adding Lua API for things that should have it than porting WML tags to Lua.
The following new Lua API functions have been added to the wesnoth table:
- add_fog, remove_fog
- add_sound_source, remove_sound_source, get_sound_source
- log
- ~LEFT() does the opposite of ~RIGHT(), but takes higher priority;
use it to force an image to the left that's normally on the right
(eg female silver mage)
- image=~RIGHT() means "use normal portrait, but on the right"
This also adds a 'color' parameter to wesnoth.float_label. It was already
previously possible to set a labels color using pango markup, but to
implement [unstore_unit] i need to support the color= syntax as given
by [unstore_unit]
This also adds a 'fire_event' parameter to wesnoth.put_unit to specify
whether the 'unit_placed' event is fired, this is needed to implement
fire_events=yes/no in [unstore_unit] but its also generally useful
for the same reason why [unstore_unit] has this parameter.
name= has no effect but can be used to delete the item. I also changed
[item] to automatically create an id (in case no id was given) and
return that (only usable if called from lua).
I used the id= field from overlay class for this, it was previously only
used by the editor. Not sure if it is a good idea to reuse the id field.
This also fixes a bug in [harm_unit] where a second arument was passed
to wml_actions.animate_unit which was obviously meant to be part of the
first argument.
This also changes harm_unit to use wml_actions.animate_unit instead of
wesnoth.animate_unit becasue the former is better known an thus easier
to understand.