869 Commits

Author SHA1 Message Date
Matthias Krüger
dc33cf7ceb pofix: add fixes of previous commits. 2018-02-06 23:03:06 +11:00
Matthias Krüger
b11d3fdcbe fix a bunch of typos found by codespell in data directory.
https://github.com/lucasdemarchi/codespell
2018-02-06 23:03:06 +11:00
Celtic Minstrel
4b58a52140
Shouldn't have the same __metatable for two metatables 2018-02-06 00:15:22 -05:00
Charles Dang
5134033e30 Name __metatable for wml.variables
[ci skip]
2018-02-06 16:10:29 +11:00
Charles Dang
c8abb8d5d9 Add formula= option to [set_variable] (change by @celticminstrel)
[ci skip]
2018-02-02 15:40:44 +11:00
vgaming
728204665c fix code problems found by luacheck (#2388)
fix code problems found by luacheck

Second iteration of the process, now handling data/lua/wml/*.lua

luacheck command used to find bugs:
  luacheck ./*.lua --globals wesnoth wml --codes --ignore 542 213
Additionally, error code 211 (unused variables) could be ignored,
as using underscore convention `_` is controversial in
wesnoth ( see https://github.com/wesnoth/wesnoth/pull/2380#discussion_r162519341 )

Actual bugs found:
* items.lua, access of global `write_name` instead of local `cfg.write_name`
* kill.lua, typo `primary_unit` -> `primary`
* bad code style: global `i` instead of local `i`
  (would conflict with 3-rd party code if it would use global `i`, too)
2018-01-23 13:35:04 -06:00
Charles Dang
da3a0ed7cf Added [lua] conditional tag
Also made conditions fail if they encountered a syntax or runtime error. This seems the
more logical behavior than passing.

WML conditional tags were split into their own Lua file. The one in lua/wml/object.lua
relies on local variables so was left there.
2018-01-22 23:03:16 +11:00
vgaming
8ba6e5f40e fix code problems found by luacheck (#2380)
actual bugs found:
* backwards_compatibility.lua (undeclared global "helper")
* core.lua (use of undeclared global "helper")
* wml_tags.transform_unit had wrong code to deal with recall_cost
* wrong variable name in cave_map_generator
2018-01-20 23:05:58 -05:00
V N
5209271db3 Lua: add variables metatable
The implementation differs from already-existing
wml.variable.proxy in that it does not try to proxy table sub-fields,
and is fast & simple.

Example usage:
wml.variables.test = 123
print(wml.variables.test)
2018-01-19 09:53:06 +11:00
Jyrki Vesterinen
d81f230680 Clear unit death animation after killing the unit
This is another and much better way to fix the unit halo remaining.
2017-12-28 12:02:29 +02:00
Jyrki Vesterinen
f50c7d3f2a Revert "Work around unit halo not disappearing with [kill] animate=yes"
This reverts commit 70b468070b71616aa3663088b6ad171391d0c4f0.

As I said in the commit message, the fix is not pretty, and
@CelticMinstrel said in IRC that a different fix would definitely be
better. I'll fix the problem by having an animation automatically
release the unit when done, instead (next commit).
2017-12-28 11:48:12 +02:00
Jyrki Vesterinen
70b468070b Work around unit halo not disappearing with [kill] animate=yes
The problem was that the kill animation retained a reference to the unit.
Triggering a Lua garbage collection (which destroys the animation object)
fixes it, although it's definitely not a pretty fix.

Closes pull request #2313.
2017-12-25 18:35:01 +02:00
Jyrki Vesterinen
e0e59ac463 Fix exception when [harm_unit] is used without an attacking unit
Regression from commit 38e31aa61f60abed71bd266e6d2abe61035805b4.
In particular, it broke WML unit tests.
2017-12-21 20:24:48 +02:00
Gregory A Lundberg
38e31aa61f Do not access non-existent unit
The [kill] tag can run animations. But it can also fire the `last breath` event, which can call [kill]. When we get back to the original [kill], the unit is gone, causing an error attempting to run the animations.

Added a check to ensure the unit is still on the map before we attempt to run the animations.

The Issue also requested that [harm_unit] pass the unit causing the harm into the [kill] tag so that `last breath` could use the secondary (killing) unit available like it does elsewhere.

Closes #2298
2017-12-19 15:05:24 -06:00
Jyrki Vesterinen
f064f50f1b [heal_unit]: Turn on floating text with animate=yes
I also moved the animation to be played *before* healing, which is the same
order as in C++ code. In the previous order, the animation isn't played for
some reason.

Fixes #2295.
2017-12-18 23:28:45 +02:00
Jyrki Vesterinen
d80d47eb8a [heal_unit]: fix wrong value of "hits" parameter
Only "hit", "miss" and "kill" are allowed.
2017-12-18 22:04:35 +02:00
sigurdfdragon
23c23b7a55 WML: Add [show_if] usage in [objectives] subtag [gold_carryover] 2017-11-22 20:27:13 -05:00
gfgtdf
fcf8272abf
fix bug in feeding code
wesnoth.current.event_context might not contain all information if the die event was triggered by wml ([fire_event]), this made wesnoth.get_unit error (invalid argument)
2017-11-11 13:50:35 +01:00
Jyrki Vesterinen
3b5880f5fb Fix #1980: [modify_unit] makes the unit disappear for a frame or two
Regression from commit d40a9e930b9fdf1095edf45f25885773654d0a4c.

In that commit I removed a redraw after the death animation of a killed
unit has been played, but just to be safe, I then added a redraw after the
unit has been erased from the map. Turns out it's not a good idea because
[modify_unit] operates by killing and recreating the unit.

This commit simply removes the redraw after erasing. Hopefully we aren't
relying on [kill] triggering a redraw somewhere.

[ci skip]
2017-09-12 21:36:40 +03:00
Jyrki Vesterinen
d40a9e930b Fix [kill]ed units flashing briefly after death animation 2017-09-08 21:54:03 +03:00
Celtic Minstrel
00443dd8a4 Fixup d192d0712393 and move wesnoth.debug() to lua_kernel_base 2017-08-14 13:10:52 -04:00
Celtic Minstrel
c734f56922 Update the DEPRECATED macro and [deprecated_message] ActionWML to understand deprecation levels 2017-08-14 12:36:10 -04:00
Celtic Minstrel
d192f07123 Implement standard deprecation system for Lua API
(as proposed by @DeFender1031)

All existing deprecation messages in the Lua code have been changed to
use the new deprecation system.

The goal is to eventually use an equivalent system for ALL areas of the API.
2017-08-14 12:36:09 -04:00
Smok94
e4552c7a75 [store_unit_defense] tag
Stores in variable the defense of a unit on a particular terrain. If terrain is not specified, the terrain on which the units currently stands is used. (Note: it is a WML defense, so the higher it is, the weaker unit's defense is.)

* StandardUnitFilter
* loc_x, loc_y: x and y of terrain location.
* terrain: alternatively, the character of terrain.
* variable: the name of the variable into which to store the defense. default: "terrain_defense"
2017-07-29 11:34:54 +11:00
gfgtdf
821e27c34f add [cancel_action] implements #1427
this adds a new tag [cancel_action], it currently only has an effect in
move actions. It can be used in enter_hex/exit_hex events to abort the
current movement. It can also be used in moveto events where is
cancels possible following attacks (if the user issued a move+attack
action).

This also changes the behaviour of moveto and enter/exit_hex event so
that they now no longer cancel the movement automatically, also
[allow_undo] no longer has an effect on whether the move is cancelled,
it now only allows undoing of the move.
2017-07-25 21:19:05 +02:00
Celtic Minstrel
9015d9b57d Merge pull request #1806 from wesnoth/wfl_filters
Use WFL formulas instead of Lua for leadership, backstab, and teleport abilities
2017-06-25 00:45:00 -04:00
Gregory A Lundberg
468f07364e Bug in [for] missing step
https://forums.wesnoth.org/viewtopic.php?t=46450 reports a Lua crash if end is given but step is not. The wiki says the default step is 1. Note that if end is negative, the [for] does nothing (per sniity check).
2017-06-21 20:45:21 -05:00
Celtic Minstrel
5109a36b56 Revert use of Lua for teleport, leadership, and backstab 2017-06-18 11:40:15 -04:00
gfgtdf
2498036c4d fixup 70a23cdf83f023 2017-06-14 13:57:29 +02:00
gfgtdf
70a23cdf83 remove variable substitution from leadership and backstab abilities 2017-06-13 23:22:06 +02:00
gfgtdf
80d27b4584 use lua filter in {ABILITY_TELEPORT}
this way it no longer uses variable substitution

Fixes #1281
2017-06-13 22:51:23 +02:00
Celtic Minstrel
e6fce88d21 Minor fixups to [story] 2017-06-04 12:26:02 -04:00
gfgtdf
121c1cb007 fix wml tags using side.controller (#1740) 2017-05-29 11:58:29 +02:00
ProditorMagnus
3bcc2ec0fa Allow showing [chat] to observers, fixes #1735
Fixes https://github.com/wesnoth/wesnoth/issues/1735
Implements https://forums.wesnoth.org/viewtopic.php?f=12&t=46029
[chat] has key observable=yes/no, default yes, which controls, if the message should be visible to observers.
2017-05-29 18:54:51 +11:00
Celtic Minstrel
fbeb6c5b09 Add helper.find_attack and clean up the [animate_unit] / [kill] hack regarding death / victory animations 2017-05-28 18:20:16 -04:00
Celtic Minstrel
686551c9f7 Fix [primary_attack] and [second_attack] not working in [kill] 2017-05-28 18:20:14 -04:00
Celtic Minstrel
7c4e3c62f5 Fix [scroll] with omitted x or y
As reported at https://forums.wesnoth.org/viewtopic.php?f=4&t=46168
2017-05-28 12:21:58 -04:00
Celtic Minstrel
646bedb088 Reverse the Lua API deprecations for the time being. 2017-05-26 20:50:37 -04:00
gfgtdf
ea5dc137ed fixup ae111a40d ([unstore_unit]) 2017-05-25 15:29:03 +02:00
gfgtdf
ae111a40de improve [unstore_unit] error message 2017-05-25 12:41:03 +02:00
Celtic Minstrel
2fe72820d1 Fix Lua deprecation warnings being shown in chat outside debug mode 2017-05-23 23:55:44 -04:00
Celtic Minstrel
fdf50bccd1 core.lua: Explicitly load wml.variable only in Game Lua Kernel 2017-05-23 23:55:43 -04:00
Celtic Minstrel
f42852dd0c Minor rearrangement/fixup in core.lua 2017-05-23 23:55:42 -04:00
Celtic Minstrel
62ac5a6897 fixup 30caf6149a74705e34b4d35188f1468150dd0655 2017-05-22 20:29:19 -04:00
Celtic Minstrel
9f0c677d02 Remove the optional second argument to wesnoth.get_variable
It was only used in one place and didn't even function as advertised.
2017-05-22 17:31:21 -04:00
Celtic Minstrel
c67d524ced Fix [kill] not affecting recall list units 2017-05-22 17:31:20 -04:00
Celtic Minstrel
30caf6149a Show Lua deprecation warnings to chat only in debug mode, but always log them too 2017-05-22 17:31:17 -04:00
Celtic Minstrel
8492e8d639 Use standard deprecation mechanism for helper.distance_between 2017-05-22 17:31:15 -04:00
Celtic Minstrel
c0f926e2ed Move all WML and variable manipulator functions into new wml table
(The old functions in wesnoth and helper are still available,
but they are now deprecated.)
2017-05-22 17:31:14 -04:00
Celtic Minstrel
39dad27260 [modify_side][ai] with ai_algorithm now replaces the AI (fixes #1216) 2017-05-22 14:39:35 -04:00