Commit graph

353 commits

Author SHA1 Message Date
mattsc
19eff08fd7 Fix a typo 2014-04-17 21:03:38 -07:00
mattsc
f6cdd85182 AI helper functions: code cleanup, first pass
These function libraries are still work in progress and change
frequently, so the code cleanup is mostly just to make sure the syntax
is consistent with that used in the Micro AIs.  Changes or improvements
to the algorithms might be made at a later time.
2014-04-17 21:03:38 -07:00
mattsc
f1faf1d6e3 Experimental AI: fix a parameter in call to healer support AI
This was an oversight from a change made in d4917d534e just two days
ago, so it was not in any released version.
2014-04-17 07:11:42 -07:00
mattsc
98509aa2bf Fix a typo
I had actually introduced this typo intentionally for testing purposes
and then forgotten to remove it.  :-P
2014-04-10 10:39:12 -07:00
mattsc
c4cb6168e4 Micro AIs: avoid using formula= in SUFs
It’s slow for finding units with moves or attacks left.  The
alternative method of getting all units and then looping over the table
with a condition is much faster.
2014-04-10 10:06:25 -07:00
mattsc
9e6b780306 ai_helper.get_closest_location(): fix bug with tags in SLF
The way how the Standard Location Filter was dealt with only worked
with keys, not tags.
2014-03-26 18:03:50 -07:00
mattsc
496a58d343 Experimental AI: use checked versions of the AI actions
So that only valid actions are executed and useful error messages are
produced if something goes wrong.
2014-02-28 07:04:54 -08:00
mattsc
0b6fa7ed19 Experimental AI: remove potential of causing errors through WML events
Events taking units off the map after the move could previously have
caused errors, and thus disabled the AI for the rest of the turn.
2014-02-28 07:03:02 -08:00
mattsc
b7bc394f95 Micro AIs: improve error reporting
Use error() instead of wesnoth.message(), as this also produces a stack
traceback.
2014-02-27 17:06:20 -08:00
mattsc
d3e9cb3957 Micro AIs: add check for valid recruiting and error message
This now checks whether the recruiting intended to be done with
ai.recruit is possible and displays an error message if it is not.
2014-02-27 17:06:19 -08:00
mattsc
835194eee4 Micro AIs: add check for valid stopunit execution and error message
This now checks whether the stopunit execution intended to be done with
ai.stopunit_all, ai.stopunit_attacks or ai.stopunit_moves is possible
and displays an error message if it is not.
2014-02-27 17:06:19 -08:00
mattsc
f0506b2d31 Micro AIs: add check for valid move and error message
This now checks whether the move intended to be done with ai.move is
possible and display an error message if it is not.
2014-02-27 17:06:19 -08:00
mattsc
c06529aa18 Micro AIs: add check for valid full move and error message
This now checks whether the move intended to be done with ai.move_full
is possible and display an error message if it is not.
2014-02-27 17:06:19 -08:00
mattsc
70e3fc58bd Micro AIs: add check for valid attacks and error message
This will now check whether the attack intended to be done with
ai.attack is possible and display an error message if it is not.
2014-02-27 17:06:18 -08:00
mattsc
e78462c395 Remove function ai_helper.random()
This was using the synced RNG which is exactly the wrong thing to do
within the AI evaluation/execution functions.
2014-02-20 11:33:05 -08:00
mattsc
21c8c5c860 ai_helper: add functions to get direction indices and strings
These consist of a number of supplementary functions, plus three
function get_cardinal_directions, get_intercardinal_directions and
get_hex_facing which return strings for the directions (in cartesian or
hex coordinates) between two hexes.
2013-12-02 11:01:44 -08:00
mattsc
623036af16 ai_helper.put_labels: display content of strings rather than 'nan' 2013-12-02 10:58:49 -08:00
mattsc
ea915d36c2 battle_calcs.attack_rating: bug fix for when AI side has no leader
Check for AI side's leader's existence before trying to calculate
distance from leader.
2013-11-25 19:37:20 -08:00
mattsc
71f92aa05c ai_helper.get_dst_src(units): minor code simplification 2013-11-14 20:04:53 -08:00
mattsc
5f39a7d2dc ai_helper.get_enemy_dst_src: add optional parameter 'enemies'
If 'enemies' table is given, use it, otherwise use all enemy units.
2013-11-14 20:04:53 -08:00
mattsc
c46d8459d6 Retreat AI eval: poisoned units do not get resting healing bonus
... in evaluation of best retreat positions.
2013-11-14 20:04:52 -08:00
mattsc
24f10a37ef ai_helper: improve criterion for impassable terrain
Rather than checking whether the movement cost is <99, check whether it
is <= max_moves for the unit.
2013-11-14 20:04:52 -08:00
mattsc
c6db6cd8d5 Lua AIs: Remove unnecessary arguments in call to wesnoth.put_unit() 2013-11-14 20:04:52 -08:00
mattsc
9976eac873 Micro AI CA files: replace tabs by spaces
I had not realized that TextWrangler changes spaces to tabs when
shifting blocks of text to the left, which had been done for all CA
files when converting the engine files.
2013-11-14 10:54:14 -08:00
mattsc
cb2a22acd4 ExpAI move_to_enemy CA: fix file path
Had accidentally copied over the AI-demos path.
2013-11-01 09:44:45 -07:00
mattsc
a45cf2ac58 ExpAI: capture more villages if we can't recruit any more this turn 2013-11-01 09:27:38 -07:00
mattsc
241fd529e0 ExpAI: ignore unreachable enemy leaders when selecting keep 2013-11-01 09:24:05 -07:00
mattsc
d8c35a75c8 ExpAI: capture villages with injured units if no enemy can reach 2013-11-01 09:19:54 -07:00
mattsc
948147550a ExpAI: Encourage forward advancement when capturing villages 2013-11-01 09:14:55 -07:00
mattsc
9c86a71ef7 ExpAI retreat code: also return enemy attack map 2013-11-01 08:51:21 -07:00
mattsc
1fa06a6811 Exp AI retreat code: make function min_hp() externally accessible 2013-11-01 08:51:21 -07:00
mattsc
938b2e6520 ExpAI retreat: count amount of hp healed when choosing retreat location 2013-11-01 08:51:21 -07:00
mattsc
456f60a9ee ExpAI: make sure injured regenerating units are not stranded if ...
... no non-regenerating units can get to safe locations.
2013-11-01 08:51:20 -07:00
mattsc
76e22a3d6a Experimental AI: add a simple move to enemy CA
Set up to run if nothing else is available.
In a separate file for use as a stand-alone CA in an AI
2013-10-31 21:19:44 -07:00
mattsc
4cdedc11ee Remove () for wesnoth.require for consistency with surrounding lines 2013-10-31 21:08:13 -07:00
mattsc
3e6e7caa74 Put 'done_eval_messages()' behind 'if print_eval()' condition
... so that they only get printed when this sort of debug output is
selected.
2013-10-31 20:54:00 -07:00
mattsc
96d17690bd Clean up time stamps and debug output code 2013-10-31 20:40:18 -07:00
mattsc
d355adbacb Clean up time stamps and debug output code 2013-10-31 20:31:37 -07:00
Alarantalara
c859d0d17b Keep villages unreachable by recruited unit
If the recruited unit cannot reach the target village, try again later
2013-10-31 23:14:36 -04:00
Alarantalara
33c1e493b2 Handle more damage specials for Lua recruiting 2013-10-31 23:14:35 -04:00
mattsc
554a95749a battle_calcs.best_defense_map(): add parameter ignore_these_units
This is a table of enemy units whose ZoC is to be ignored for route
finding.  It is useful for determing where the enemy can move while
ignoring own units (enemies of the enemy) that have not moved yet.
2013-10-31 08:22:15 -07:00
mattsc
526debf3e9 battle_calcs.lua: remove some debug code 2013-10-31 08:17:47 -07:00
mattsc
8689543d9a Lua dummy engine: do not load debug_ai functions
Besides them being unnecessary, a warning message is otherwise also
displayed when external CAs are used and the game is not in debug mode.
2013-10-30 18:23:48 -07:00
mattsc
e18378369b ai_helper: remove unused function ai_helper.got_1_11() 2013-10-30 13:02:09 -07:00
mattsc
3989b4e140 Experimental AI: make Healer Placement CA work with new external CAs
Healer Placement is a Micro AI whose syntax was changed in the switch
to using external AIs.  This change adapts how this CA is called in the
Experimental AI (gerneric rush AI) to these changes.
2013-10-30 09:51:10 -07:00
mattsc
b826e5ead5 Micro AIs: make recruit_rushers work with new external CA method
The previous code did not allow to get the ai table to the execution
function.
2013-10-30 09:42:41 -07:00
mattsc
d5b994c0bb Lua AI: make persistent data variable work with external CAs
It was previously being set correctly by the engine, but was not
accessible from the Lua AI.
2013-10-23 18:39:26 -07:00
mattsc
659162371b Internal rewrite of ai_helper.get_attacks()
This is much faster than the previous version.  No change in
functionality.
2013-09-04 20:20:25 -07:00
mattsc
0891bffafb ai_helper.put_labels(): add optional keys= parameter 2013-07-16 08:32:45 -07:00
mattsc
7e0a05ed6e Experimental AI: consistently use underscores in AI ids and file names
This is the last step of making everything use consistent syntax.
2013-07-10 20:37:30 -07:00