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

Reply via email to