Author: nephro
Date: Tue Jun 7 12:38:44 2011
New Revision: 49786
URL: http://svn.gna.org/viewcvs/wesnoth?rev=49786&view=rev
Log:
More(village related) aspects exposed to lua(http://wiki.wesnoth.org/LuaAI)
Modified:
trunk/data/ai/scenarios/scenario-lua-ai.cfg
trunk/src/ai/lua/core.cpp
trunk/src/ai/registry.cpp
Modified: trunk/data/ai/scenarios/scenario-lua-ai.cfg
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/ai/scenarios/scenario-lua-ai.cfg?rev=49786&r1=49785&r2=49786&view=diff
==============================================================================
--- trunk/data/ai/scenarios/scenario-lua-ai.cfg (original)
+++ trunk/data/ai/scenarios/scenario-lua-ai.cfg Tue Jun 7 12:38:44 2011
@@ -197,37 +197,52 @@
[aspect]
id=number_of_possible_recruits_to_force_recruit
engine=lua
- value="0.34"
+ value=0.34
[/aspect]
[aspect]
id=passive_leader
engine=lua
- value="true"
+ value=true
[/aspect]
[aspect]
id=passive_leader_shares_keep
engine=lua
- code="return true"
+ code=return true
[/aspect]
[aspect]
id=scout_village_targeting
engine=lua
- value="0.36"
+ value=0.36
[/aspect]
[aspect]
id=simple_targeting
engine=lua
- value="true"
+ value=true
[/aspect]
[aspect]
id=recruitment_ignore_bad_combat
engine=lua
- value="false"
- [/aspect]
- [aspect]
- id=recruitment_ignore_bad_movement
- engine=lua
- value="true"
+ value=false
+ [/aspect]
+ [aspect]
+ id=village_value
+ engine=lua
+ value=1.2
+ [/aspect]
+ [aspect]
+ id=support_villages
+ engine=lua
+ value=true
+ [/aspect]
+ [aspect]
+ id=villages_per_scout
+ engine=lua
+ value=2
+ [/aspect]
+ [aspect]
+ id=grouping
+ engine=lua
+ value="'defensive'"
[/aspect]
version=10710
[engine]
@@ -275,6 +290,10 @@
wesnoth.message('Recruit. ignore bc: ' ,
tostring(ai.get_recruitment_ignore_bad_combat()))
wesnoth.message('Recruit. ignore bm: ' ,
tostring(ai.get_recruitment_ignore_bad_movement()))
wesnoth.message('nofprtfr: ' ,
ai.get_number_of_possible_recruits_to_force_recruit())
+ wesnoth.message('Grouping: ' .. ai.get_grouping())
+wesnoth.message('Support villages: ' .. tostring(ai.get_support_villages()))
+wesnoth.message('Village value: ' .. ai.get_village_value())
+wesnoth.message('Villages per scout: ' .. ai.get_villages_per_scout())
my_leader = wesnoth.get_units({canrecruit = true, side = ai.side})[1]
x,y = ai.suitable_keep(my_leader)
Modified: trunk/src/ai/lua/core.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/lua/core.cpp?rev=49786&r1=49785&r2=49786&view=diff
==============================================================================
--- trunk/src/ai/lua/core.cpp (original)
+++ trunk/src/ai/lua/core.cpp Tue Jun 7 12:38:44 2011
@@ -262,6 +262,11 @@
return 1;
}
+//static int cfun_ai_get_avoid(lua_State *L)
+//{
+// return 1;
+//}
+
static int cfun_ai_get_caution(lua_State *L)
{
double caution = get_readonly_context(L).get_caution();
@@ -269,6 +274,13 @@
return 1;
}
+static int cfun_ai_get_grouping(lua_State *L)
+{
+ std::string grouping = get_readonly_context(L).get_grouping();
+ lua_pushstring(L, grouping.c_str());
+ return 1;
+}
+
static int cfun_ai_get_leader_aggression(lua_State *L)
{
double leader_aggression =
get_readonly_context(L).get_leader_aggression();
@@ -332,6 +344,26 @@
return 1;
}
+static int cfun_ai_get_support_villages(lua_State *L)
+{
+ bool support_villages = get_readonly_context(L).get_support_villages();
+ lua_pushboolean(L, support_villages);
+ return 1;
+}
+
+static int cfun_ai_get_village_value(lua_State *L)
+{
+ double village_value = get_readonly_context(L).get_village_value();
+ lua_pushnumber(L, village_value);
+ return 1;
+}
+
+static int cfun_ai_get_villages_per_scout(lua_State *L)
+{
+ int villages_per_scout =
get_readonly_context(L).get_villages_per_scout();
+ lua_pushnumber(L, villages_per_scout);
+ return 1;
+}
lua_ai_context* lua_ai_context::create(lua_State *L, char const *code,
ai::engine_lua *engine)
{
@@ -355,15 +387,19 @@
{ "get_aggression", &cfun_ai_get_aggression
},
{ "get_attack_depth", &cfun_ai_get_attack_depth
}, // { "get_", &cfun_ai_get_}, little template # TODELETE
{ "get_caution", &cfun_ai_get_caution
},
+ { "get_grouping", &cfun_ai_get_grouping
},
{ "get_leader_aggression", &cfun_ai_get_leader_aggression
},
{ "get_leader_value", &cfun_ai_get_leader_value
},
{ "get_number_of_possible_recruits_to_force_recruit",
&cfun_ai_get_number_of_possible_recruits_to_force_recruit},
- { "get_passive_leader", &cfun_ai_get_passive_leader},
+ { "get_passive_leader", &cfun_ai_get_passive_leader
},
{ "get_passive_leader_shares_keep",
&cfun_ai_get_passive_leader_shares_keep},
{ "get_recruitment_ignore_bad_combat",
&cfun_ai_get_recruitment_ignore_bad_combat},
{ "get_recruitment_ignore_bad_movement",
&cfun_ai_get_recruitment_ignore_bad_movement},
- { "get_scout_village_targeting",
&cfun_ai_get_scout_village_targeting},
- { "get_simple_targeting", &cfun_ai_get_simple_targeting},
+ { "get_scout_village_targeting",
&cfun_ai_get_scout_village_targeting },
+ { "get_simple_targeting", &cfun_ai_get_simple_targeting
},
+ { "get_support_villages", &cfun_ai_get_support_villages
},
+ { "get_village_value", &cfun_ai_get_village_value
},
+ { "get_villages_per_scout", &cfun_ai_get_villages_per_scout
},
{ "move", &cfun_ai_execute_move_partial
},
{ "move_full", &cfun_ai_execute_move_full
},
{ "recall", &cfun_ai_execute_recall
},
Modified: trunk/src/ai/registry.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/registry.cpp?rev=49786&r1=49785&r2=49786&view=diff
==============================================================================
--- trunk/src/ai/registry.cpp (original)
+++ trunk/src/ai/registry.cpp Tue Jun 7 12:38:44 2011
@@ -368,6 +368,9 @@
static register_lua_aspect_factory< lua_aspect<double> >
caution__lua_aspect_factory("caution*lua_aspect");
+static register_lua_aspect_factory< lua_aspect<std::string> >
+ grouping__lua_aspect_factory("grouping*lua_aspect");
+
static register_lua_aspect_factory< lua_aspect<double> >
leader_aggression__lua_aspect_factory("leader_aggression*lua_aspect");
@@ -394,6 +397,15 @@
static register_lua_aspect_factory< lua_aspect<bool> >
simple_targeting__lua_aspect_factory("simple_targeting*lua_aspect");
+
+static register_lua_aspect_factory< lua_aspect<bool> >
+ support_villages__lua_aspect_factory("support_villages*lua_aspect");
+
+static register_lua_aspect_factory< lua_aspect<double> >
+ village_value__lua_aspect_factory("village_value*lua_aspect");
+
+static register_lua_aspect_factory< lua_aspect<int> >
+ villages_per_scout__lua_aspect_factory("villages_per_scout*lua_aspect");
void registry::init()
{
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits