From 8dcb75fb5bf39b366aec8497201b38cd9fc59dbd Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Thu, 2 Jun 2011 14:57:33 +0000
Subject: [PATCH] Bosses whose artifact has alredy been generated will not be
 deprived of artifacts anymore

git-svn-id: http://svn.net-core.org/repos/t-engine4@3552 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/Zone.lua | 2 +-
 game/modules/tome/resolvers.lua      | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua
index f6bc779049..02b0a5c64e 100644
--- a/game/engines/default/engine/Zone.lua
+++ b/game/engines/default/engine/Zone.lua
@@ -328,7 +328,7 @@ function _M:makeEntityByName(level, type, name, force_unique)
 	local forced = false
 	if e.unique and game.uniques[e.__CLASSNAME.."/"..e.unique] then
 		if not force_unique then
-			print("Refused unique by name", e.name, e.__CLASSNAME.."/"..e.unique)
+			forceprint("Refused unique by name", e.name, e.__CLASSNAME.."/"..e.unique)
 			return nil
 		else
 			forced = true
diff --git a/game/modules/tome/resolvers.lua b/game/modules/tome/resolvers.lua
index 5d7d539f70..8ca2e884ad 100644
--- a/game/modules/tome/resolvers.lua
+++ b/game/modules/tome/resolvers.lua
@@ -125,7 +125,13 @@ function resolvers.calc.drops(t, e)
 		if not filter.defined then
 			o = game.zone:makeEntity(game.level, "object", filter, nil, true)
 		else
-			o = game.zone:makeEntityByName(game.level, "object", filter.defined)
+			local forced
+			o, forced = game.zone:makeEntityByName(game.level, "object", filter.defined, filter.random_art_replace and true or false)
+			-- If we forced the generation this means it was already found
+			if forced then
+				print("Serving unique "..o.name.." but forcing replacement drop")
+				filter.random_art_replace.chance = 100
+			end
 		end
 		if o then
 			print("Zone made us a drop according to filter!", o:getName())
-- 
GitLab