From ef1d052136f32932fea484cb63170d0c6e083ef2 Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Fri, 9 Dec 2016 19:40:37 -0500 Subject: [PATCH] Add Lua API for fetching net income and related values --- changelog | 3 +++ src/scripting/lua_team.cpp | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/changelog b/changelog index eff84489133..85b9f0f6739 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,9 @@ Version 1.13.6+dev: * Improved terrain graphics: lava. * Language and i18n: * Updated translations: British English, Portuguese (Brazil) + * Lua API: + * New attributes in side proxy: + num_units, num_villages, total_upkeep, expenses, net_income * WML Engine: * Removed LOW_MEM option when building. * Add color= attribute to [floating_text] diff --git a/src/scripting/lua_team.cpp b/src/scripting/lua_team.cpp index d5d07b905a6..930f193a460 100644 --- a/src/scripting/lua_team.cpp +++ b/src/scripting/lua_team.cpp @@ -16,6 +16,8 @@ #include "scripting/lua_common.hpp" #include "team.hpp" +#include "resources.hpp" // for gameboard +#include "game_board.hpp" #include @@ -91,6 +93,15 @@ static int impl_side_get(lua_State *L) return 1; } + // These are blocked together because they are all part of the team_data struct. + // Some of these values involve iterating over the units map to calculate them. + team_data d = resources::gameboard->calculate_team_data(t); + return_int_attrib("num_units", d.units); + return_int_attrib("total_upkeep", d.upkeep); + return_int_attrib("num_villages", d.villages); + return_int_attrib("expenses", d.expenses); + return_int_attrib("net_income", d.net_income); + return_cfg_attrib("__cfg", t.write(cfg)); if(luaW_getmetafield(L, 1, m)) { return 1;