From ba5eb7bc91e5d5f6e31e2fc73bbd0e0f5109eb99 Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Sun, 27 Mar 2016 15:09:50 -0400 Subject: [PATCH] Move some AI test scenarios from data/ to data/ai/scenarios/ (And update them to modern syntax) --- data/_main.cfg | 7 +----- data/ai/dev/formula_ai_poisoning.cfg | 2 +- .../scenario-formula-recruitment.cfg | 25 ++++++++++++++++--- data/{ => ai/scenarios}/scenario-formula.cfg | 16 ++++++------ .../{ => ai/scenarios}/scenario-poisoning.cfg | 14 +---------- .../Xcode/Wesnoth.xcodeproj/project.pbxproj | 12 --------- 6 files changed, 33 insertions(+), 43 deletions(-) rename data/{ => ai/scenarios}/scenario-formula-recruitment.cfg (91%) rename data/{ => ai/scenarios}/scenario-formula.cfg (96%) rename data/{ => ai/scenarios}/scenario-poisoning.cfg (94%) diff --git a/data/_main.cfg b/data/_main.cfg index fb59adee9a38..bed2fd3ffa34 100644 --- a/data/_main.cfg +++ b/data/_main.cfg @@ -56,14 +56,9 @@ #ifdef TEST {scenario-test.cfg} -{scenario-formula.cfg} -{scenario-formula-recruitment.cfg} -{scenario-poisoning.cfg} {scenario-leaders.cfg} {scenario-movethrough.cfg} -{ai/scenarios/scenario-AI_Arena_small.cfg} -{ai/scenarios/scenario-lua_ai.cfg} -{ai/scenarios/scenario-lua_ai_old_syntax.cfg} +{ai/scenarios/} {ai/micro_ais/scenarios/} #define DONT_RELOAD_CORE #enddef diff --git a/data/ai/dev/formula_ai_poisoning.cfg b/data/ai/dev/formula_ai_poisoning.cfg index c0f8d272fa29..9d74d0f15f1d 100644 --- a/data/ai/dev/formula_ai_poisoning.cfg +++ b/data/ai/dev/formula_ai_poisoning.cfg @@ -5,7 +5,7 @@ #endif [ai] - id=default_ai_poisoning + id=formula_ai_poisoning description=_"Multiplayer_AI^Dev AI: Default + Poisoning (Formula AI)" # wmllint: no spellcheck [stage] id=main_loop diff --git a/data/scenario-formula-recruitment.cfg b/data/ai/scenarios/scenario-formula-recruitment.cfg similarity index 91% rename from data/scenario-formula-recruitment.cfg rename to data/ai/scenarios/scenario-formula-recruitment.cfg index 11cb7e992d2a..5c2d4af54742 100644 --- a/data/scenario-formula-recruitment.cfg +++ b/data/ai/scenarios/scenario-formula-recruitment.cfg @@ -55,11 +55,28 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd recruit=Spearman,Mage,Bowman,Horseman,Cavalryman,Heavy Infantryman,Fencer,Merman Fighter gold=100 - ai_algorithm=formula_ai [ai] - [team_formula] - rulebase="{ai/formula/recruitment.fai}" - [/team_formula] + # Perhaps this should be changed to use new_recruitment + # In that case, the stages could be removed and replaced by + # this one line: + #ai_algorithm=formula_ai + [stage] + engine=fai + name=side_formulas + move="{ai/formula/recruitment.fai}" + [/stage] + [stage] + id=main_loop + name=ai_default_rca::candidate_action_evaluation_loop + {AI_CA_GOTO} + {AI_CA_MOVE_LEADER_TO_GOALS} + {AI_CA_MOVE_LEADER_TO_KEEP} + {AI_CA_COMBAT} + {AI_CA_HEALING} + {AI_CA_VILLAGES} + {AI_CA_RETREAT} + {AI_CA_MOVE_TO_TARGETS} + [/stage] [/ai] [/side] [/test] diff --git a/data/scenario-formula.cfg b/data/ai/scenarios/scenario-formula.cfg similarity index 96% rename from data/scenario-formula.cfg rename to data/ai/scenarios/scenario-formula.cfg index 9e7d673f1d06..5eb937bdd22e 100644 --- a/data/scenario-formula.cfg +++ b/data/ai/scenarios/scenario-formula.cfg @@ -128,7 +128,7 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd generate_name=yes [ai] formula="if(attack, attack, move(me.loc, me.vars.guard_loc)) - where attack = choose(filter(attacks, units = [me.loc] and distance_between(me.vars.guard_loc, target) <= me.vars.guard_radius), avg_damage_inflicted)" + where attack = choose(filter(attacks, units = [me.loc] and distance_between(me.vars.guard_loc, target) <= me.vars.guard_radius), avg_damage_inflicted)" [vars] guard_radius=3 guard_loc="loc(8,5)" @@ -229,21 +229,23 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd [/stage] [stage] - engine=fai - name=rca_formulas - [register_candidate_move] + id=rca_formulas + name=ai_default_rca::candidate_action_evaluation_loop + [candidate_action] + engine=fai name=scouting type=movement action="{ai/formula/scouting_move.fai}" evaluation="{ai/formula/scouting_eval.fai}" - [/register_candidate_move] + [/candidate_action] - [register_candidate_move] + [candidate_action] + engine=fai name=level_up_attack type=attack action="{ai/formula/level_up_attack_move.fai}" evaluation="{ai/formula/level_up_attack_eval.fai}" - [/register_candidate_move] + [/candidate_action] [/stage] [/ai] [/side] diff --git a/data/scenario-poisoning.cfg b/data/ai/scenarios/scenario-poisoning.cfg similarity index 94% rename from data/scenario-poisoning.cfg rename to data/ai/scenarios/scenario-poisoning.cfg index f8bb0b3d3f44..a5892c8ad369 100644 --- a/data/scenario-poisoning.cfg +++ b/data/ai/scenarios/scenario-poisoning.cfg @@ -137,20 +137,8 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd generate_name=yes [/unit] - ai_algorithm=formula_ai [ai] - eval_list=yes - - [register_candidate_action] - name=poisoner - type=attack - [filter] - me="filter( input, 'me', filter(me.attacks,'att',filter(att.special,'spe',contains_string(spe,'poison'))))" - target="filter( input, 'target', target.undead = 0 and target.hitpoints > 5 and index_of('poisoned',keys(target.states)) = -1)" - [/filter] - evaluation="{ai/formula/poisoner_eval.fai}" - action="{ai/formula/poisoner_attack.fai}" - [/register_candidate_action] + ai_algorithm=formula_ai_poisoning [/ai] [/side] [/test] diff --git a/projectfiles/Xcode/Wesnoth.xcodeproj/project.pbxproj b/projectfiles/Xcode/Wesnoth.xcodeproj/project.pbxproj index 9b3ab5af0172..0a439fc58617 100644 --- a/projectfiles/Xcode/Wesnoth.xcodeproj/project.pbxproj +++ b/projectfiles/Xcode/Wesnoth.xcodeproj/project.pbxproj @@ -87,11 +87,8 @@ 91273E9C1C7BF1D8005E7F81 /* languages in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E7F1C7BF1C2005E7F81 /* languages */; }; 91273E9D1C7BF1D8005E7F81 /* lua in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E801C7BF1C2005E7F81 /* lua */; }; 91273E9E1C7BF1D8005E7F81 /* multiplayer in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E811C7BF1C2005E7F81 /* multiplayer */; }; - 91273E9F1C7BF1D8005E7F81 /* scenario-formula-recruitment.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E821C7BF1C2005E7F81 /* scenario-formula-recruitment.cfg */; }; - 91273EA01C7BF1D8005E7F81 /* scenario-formula.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E831C7BF1C3005E7F81 /* scenario-formula.cfg */; }; 91273EA11C7BF1D8005E7F81 /* scenario-leaders.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E841C7BF1C3005E7F81 /* scenario-leaders.cfg */; }; 91273EA21C7BF1D8005E7F81 /* scenario-movethrough.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E851C7BF1C3005E7F81 /* scenario-movethrough.cfg */; }; - 91273EA31C7BF1D8005E7F81 /* scenario-poisoning.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E861C7BF1C3005E7F81 /* scenario-poisoning.cfg */; }; 91273EA41C7BF1D8005E7F81 /* scenario-test.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E871C7BF1C3005E7F81 /* scenario-test.cfg */; }; 91273EA51C7BF1D8005E7F81 /* schema-gui.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E881C7BF1C4005E7F81 /* schema-gui.cfg */; }; 91273EA61C7BF1D8005E7F81 /* schema.cfg in Copy Data Files */ = {isa = PBXBuildFile; fileRef = 91273E891C7BF1C4005E7F81 /* schema.cfg */; }; @@ -1009,11 +1006,8 @@ 91273E9C1C7BF1D8005E7F81 /* languages in Copy Data Files */, 91273E9D1C7BF1D8005E7F81 /* lua in Copy Data Files */, 91273E9E1C7BF1D8005E7F81 /* multiplayer in Copy Data Files */, - 91273E9F1C7BF1D8005E7F81 /* scenario-formula-recruitment.cfg in Copy Data Files */, - 91273EA01C7BF1D8005E7F81 /* scenario-formula.cfg in Copy Data Files */, 91273EA11C7BF1D8005E7F81 /* scenario-leaders.cfg in Copy Data Files */, 91273EA21C7BF1D8005E7F81 /* scenario-movethrough.cfg in Copy Data Files */, - 91273EA31C7BF1D8005E7F81 /* scenario-poisoning.cfg in Copy Data Files */, 91273EA41C7BF1D8005E7F81 /* scenario-test.cfg in Copy Data Files */, 91273EA51C7BF1D8005E7F81 /* schema-gui.cfg in Copy Data Files */, 91273EA61C7BF1D8005E7F81 /* schema.cfg in Copy Data Files */, @@ -1232,11 +1226,8 @@ 91273E7F1C7BF1C2005E7F81 /* languages */ = {isa = PBXFileReference; lastKnownFileType = folder; path = languages; sourceTree = ""; }; 91273E801C7BF1C2005E7F81 /* lua */ = {isa = PBXFileReference; lastKnownFileType = folder; path = lua; sourceTree = ""; }; 91273E811C7BF1C2005E7F81 /* multiplayer */ = {isa = PBXFileReference; lastKnownFileType = folder; path = multiplayer; sourceTree = ""; }; - 91273E821C7BF1C2005E7F81 /* scenario-formula-recruitment.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "scenario-formula-recruitment.cfg"; sourceTree = ""; }; - 91273E831C7BF1C3005E7F81 /* scenario-formula.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "scenario-formula.cfg"; sourceTree = ""; }; 91273E841C7BF1C3005E7F81 /* scenario-leaders.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "scenario-leaders.cfg"; sourceTree = ""; }; 91273E851C7BF1C3005E7F81 /* scenario-movethrough.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "scenario-movethrough.cfg"; sourceTree = ""; }; - 91273E861C7BF1C3005E7F81 /* scenario-poisoning.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "scenario-poisoning.cfg"; sourceTree = ""; }; 91273E871C7BF1C3005E7F81 /* scenario-test.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "scenario-test.cfg"; sourceTree = ""; }; 91273E881C7BF1C4005E7F81 /* schema-gui.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = "schema-gui.cfg"; sourceTree = ""; }; 91273E891C7BF1C4005E7F81 /* schema.cfg */ = {isa = PBXFileReference; lastKnownFileType = text; path = schema.cfg; sourceTree = ""; }; @@ -3067,11 +3058,8 @@ 91273E7F1C7BF1C2005E7F81 /* languages */, 91273E801C7BF1C2005E7F81 /* lua */, 91273E811C7BF1C2005E7F81 /* multiplayer */, - 91273E821C7BF1C2005E7F81 /* scenario-formula-recruitment.cfg */, - 91273E831C7BF1C3005E7F81 /* scenario-formula.cfg */, 91273E841C7BF1C3005E7F81 /* scenario-leaders.cfg */, 91273E851C7BF1C3005E7F81 /* scenario-movethrough.cfg */, - 91273E861C7BF1C3005E7F81 /* scenario-poisoning.cfg */, 91273E871C7BF1C3005E7F81 /* scenario-test.cfg */, 91273E881C7BF1C4005E7F81 /* schema-gui.cfg */, 91273E891C7BF1C4005E7F81 /* schema.cfg */,