952 Commits

Author SHA1 Message Date
Celtic Minstrel
632941b03d Lua AI: Fix a typo 2021-07-30 19:22:57 -04:00
Celtic Minstrel
4ec60b99d9 Lua: Update all mainline references to the helper module 2021-07-07 01:32:05 -04:00
Celtic Minstrel
9c2689ac9e Lua AI: Move the deprecation messages to Lua so that the deprecated functions get nulled out with --strict-lua 2021-07-02 14:04:53 -04:00
Celtic Minstrel
91f6bf93a4 Fix a broken deprecation and replace some deprecated uses
Fixes #5877
2021-06-20 00:59:59 -04:00
Celtic Minstrel
7f162cbd24 Lua: Rename find_vacant_tile to find_vacant_hex for naming consistency 2021-06-19 17:09:31 -04:00
Celtic Minstrel
1f62eae3ce Replace uses of wesnoth.find_path 2021-06-19 15:43:33 -04:00
Celtic Minstrel
5a1e38e99b
Add wesnoth.sync module for the synchronization-related commands (#5862) 2021-06-19 15:39:10 -04:00
Celtic Minstrel
f145dc2bba Replace uses of the moved interface functions 2021-06-19 12:09:46 -05:00
Celtic Minstrel
a03d59d7eb Lua: Add a new schedule module
The primary components of this are:
- wesnoth.current.schedule
- wesnoth.map.get_time_area()
- wesnoth.schedule module
2021-06-19 11:07:53 -04:00
Celtic Minstrel
0c42cdc038
Enable translation mark validation by the schema (#5800)
- The t_string type is now a schema built-in type and no longer attempts a regex match.
- You can also specify that non-t_string types may be optionally-translatable; this case supports a regex match on the string (but note that the translation mark is not part of the match).
- Error messages involving keys with very large values ( > 128 characters) will now truncate the value.
- To account for occasional cases where the schema is intentionally violated, the --validate command-line option now automatically defines the SCHEMA_VALIDATION preprocessor define.

A key validates as type t_string if one of the following is true:
- The key is not present
- The key has at least one segment with a translation mark
- The key is blank (an empty string)

Any type other than t_string is not allowed to be translatable by default, unless you specify allow_translatable=yes in the [type] tag.

An optionally-translatable string could also be defined as a union of t_string and some other type.
2021-06-14 23:59:52 -04:00
mattsc
d8e472e753
Merge pull request #5609 from mattsc/mai_fix_replay
Micro AIs: fix unit variables being lost in replays
2021-06-10 11:42:50 -07:00
mattsc
0a56a1af5d ai_helper.lua: remove unused variable 2021-05-22 13:33:50 -07:00
Celtic Minstrel
6584302d41
Merge pull request #5537 from wesnoth/lua_reorg
Various Lua reorganization work
2021-05-11 19:12:40 -04:00
Celtic Minstrel
bf746a0207 Update mainline content to use the wesnoth.scenario module 2021-05-11 14:52:21 -04:00
Celtic Minstrel
e8381ea9da Update uses of eval_conditional 2021-05-11 14:52:20 -04:00
Hejnewar
16c8fcc49c Remove remaining uses of wesnoth.special_locations 2021-05-10 11:26:12 +02:00
Celtic Minstrel
1dccc3ad76 Update mainline content to use the mathx module 2021-05-08 17:20:49 -04:00
Celtic Minstrel
1fc31c23d0 Replace all uses of get_time_stamp -> ms_since_init 2021-05-08 17:20:49 -04:00
Steve Cotton
de3e798e72 Update the animals Micro-AI demo with boars and piglets
This adjusts to the change in e7b5996e988747c2b590852b4b461abe48857526.

The micro ai itself is unchanged, it's still controlled by `tusker_type` and
`tusklet_type`, it simply needed the new unit ids to be used in this scenario.
2021-04-04 20:23:46 +02:00
mattsc
f1c37f64ac
Merge pull request #5630 from mattsc/remove_fai_uses
Remove Formula AI uses
2021-03-24 08:04:47 -07:00
Celtic Minstrel
7c95e9d1a4 Lurker FAI: map(x, self) is exactly the same as just self
This caused the crash fixed in the previous commit. Although the crash is fixed, it's still stupid and we shouldn't do it.
2021-03-23 00:34:44 -04:00
mattsc
8d03d3ef08 Swarm Micro AI: add optional parameter [filter] 2021-03-22 09:09:30 -07:00
mattsc
4086758214 Remove Formula AI lurkers from Lurkers test scenario
This is part of removing Formula AI uses from mainline.
2021-03-21 17:15:43 -07:00
mattsc
92d22f18e6 Remove Home Guardian Formula AI from Guardians test scenario
This is part of removing Formula AI uses from mainline.
2021-03-21 17:03:50 -07:00
mattsc
f462416111 Remove MP dev (debug) AIs
This is part of removing Formula AI uses from mainline.  These are just small experimental additions to the default AI that have been superseded by more recent additions to the AI.
2021-03-21 16:51:11 -07:00
mattsc
4fe45bf22a Patrol Micro AI: add two optional parameters
attack_range: the patrol interrupts its route to attack enemies within this distance, not just enemies that it happens to end up next to

attack_invisible_enemies: include invisible enemies when considering whether there are enemies within attack_range

The default behavior is unchanged.
2021-03-21 14:56:37 -07:00
mattsc
ac9246aba1 Micro AIs: fix unit variables being lost in replays
Some Micro AIs save information in unit variables. Examples are the patrol and messenger AIs, which save the next waypoint for a unit. This needs to be done as a synced command, so that the information is not lost when continuing a game from a replay.
2021-03-13 19:36:56 -08:00
mattsc
a60736b6c7 Messenger Micro AI: add [avoid] tag functionality 2021-03-13 17:20:09 -08:00
mattsc
0c4d8ebbe6 ai_helper.lua: add 'avoid_map' functionality to move_unit_out_of_way()
Also add comment about passing it through from robust_move_and_attack().
2021-03-13 17:16:50 -08:00
mattsc
a50415b5e1 ai_helper.get_closest_location: add avoid_map parameter 2021-03-13 17:16:50 -08:00
mattsc
b56a44ed66 ExpAI recruiting: prevent potential divide-by-zero 2021-03-07 14:46:04 -08:00
mattsc
373559b6bf Protect Unit Micro AI test scenario: fix deprecated WML 2021-03-06 16:45:57 -08:00
mattsc
51e4b56a1e ai_helper.lua: fix a typo 2021-03-06 15:35:43 -08:00
mattsc
cadb233d6c Update some deprecated Lua uses 2021-03-06 15:08:54 -08:00
Celtic Minstrel
a2d7a26365
Fix several Lua issues, mostly unintentional globals (#5587) 2021-03-06 17:01:53 -05:00
mattsc
d9e8f69718 Lua AIs: fix some incorrectly used variables
Fixes #5586
2021-03-06 09:53:53 -08:00
mattsc
cab4446580 Lua AI helper functions: remove trailing spaces 2021-03-06 09:53:27 -08:00
Celtic Minstrel
93398ae3a4
Fix another syntax error 2021-03-04 23:43:24 -05:00
Celtic Minstrel
86c3c30c46
Fix a syntax error 2021-03-04 23:33:33 -05:00
Celtic Minstrel
3a7eef0310 Merge pull request #4580 from wesnoth/lua_gamemap
Refactor the game map to permit exposing it to Lua
2021-03-04 14:00:43 -05:00
mattsc
28ea6e82c6 Multipack Wolves MAI: fix error when a wolf is surrounded 2021-03-03 17:41:41 -08:00
mattsc
ea4657c6d4 Goto Micro AI: add remove_movement option
By default, the MAI removes movement points from units even when they cannot find a hex to move to.  When this option is set to 'no' (default is 'yes'), this step is skipped, so that other candidate actions can take over.

This implements feature request #5580
2021-03-03 12:49:35 -08:00
mattsc
7e8cedaea8
Merge pull request #5573 from mattsc/ca_retreat_injured
AI: Improve behavior of the retreat_injured CA
2021-03-03 08:22:21 -08:00
mattsc
043ee7a80b Protect Unit Micro AI: ensure units are on AI side
In general, the units specified in the MAI setup should be on the AI side.  However, that might change during a scenario, for example when there is an event that switches units to other sides.
2021-03-03 08:14:46 -08:00
Celtic Minstrel
9d3bf196b0 Update everything to use the new wesnoth.map module
- get_terrain and set_terrain replaced with direct indexing operations
- get_map_size mostly replaced with either the iterator or an on_board call.
  Only a few cases really needed to know the size of the map for some other purpose.
- shroud and fog operations, village owner, time areas, and location filters
- get_terrain_info replaced with terrain_types table
- Map generation functions create_map and create_filter
2021-02-28 18:16:33 -05:00
mattsc
287530a43f Goto Micro AI: change how avoid_map is taken into account
There were two issues with the previous method:
- ai_helper.get_avoid_map() never returns nil, but at most an empty location set. Thus, the 'else' clause in that conditional was never reached.
- The presence of an [avoid] tag should not prevent the keys ignoring enemies from taking effect. Instead, [avoid] needs to be taken into account for all possible code paths.
2021-02-28 10:22:11 -08:00
mattsc
94bd2ec993 Goto Micro AI: fix possible error when ignoring enemies
The final determination of the hex to move to must take enemies into account, otherwise the MAI might try to move the unit to a hex it cannot actually reach.
2021-02-28 10:15:07 -08:00
mattsc
fd0c00cfb0 Goto Micro AI: fix checks of avoid_enemies key
Numerical values are sometimes transferred from WML to Lua using the string type. This applies, for example, to very small numbers, such as 0.0000000000001. This needs to be taken into account when checking whether avoid_enemies is a number.
2021-02-28 10:11:49 -08:00
mattsc
f67a5b269e AI retreat_injured CA: fix retreat_enemy_weight use
Only enemy threats are to be multiplied by this factor, not the ally support.
2021-02-27 08:56:14 -08:00
mattsc
f799269fa1 AI retreat_injured CA: improve retreat location evaluation
This includes several improvements to the retreat hex evaluation:
- Enemy threats are not the dominant rating contribution any more
- Enemy threats are based mostly on HP balance, rather than simply enemy number
- Enemy threat assessment can be modified with the retreat_enemy_weight aspect
- By default, only healing locations are considered as retreat locations, but this can be overridden with the retreat_enemy_weight aspect
2021-02-26 17:03:06 -08:00