From acbddfae1395e82e560528ae85c299b842ac8894 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Tue, 1 May 2012 22:15:15 +0000
Subject: [PATCH] Fixed stats inherit between base template and npcs

git-svn-id: http://svn.net-core.org/repos/t-engine4@5080 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/Entity.lua | 1 +
 game/modules/tome/class/Actor.lua      | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/game/engines/default/engine/Entity.lua b/game/engines/default/engine/Entity.lua
index 38d6d20717..03af078ba7 100644
--- a/game/engines/default/engine/Entity.lua
+++ b/game/engines/default/engine/Entity.lua
@@ -765,6 +765,7 @@ function _M:loadList(file, no_default, res, mod, loaded)
 			-- Do we inherit things ?
 			if t.base then
 				local temp = table.clone(res[t.base], true, {define_as = true})
+				if res[t.base].onEntityMerge then res[t.base]:onEntityMerge(temp) end
 				table.mergeAppendArray(temp, t, true)
 				t = temp
 				t.base = nil
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index a222ddb327..4db737a0eb 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -225,6 +225,15 @@ function _M:init(t, no_default)
 	self:recomputeGlobalSpeed()
 end
 
+function _M:onEntityMerge(a)
+	-- Remove stats to make new stats work
+	for i, s in ipairs(_M.stats_def) do
+		if a.stats[i] then
+			a.stats[s.short_name], a.stats[i] = a.stats[i], nil
+		end
+	end
+end
+
 function _M:useEnergy(val)
 	engine.Actor.useEnergy(self, val)
 
-- 
GitLab