diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua index f6bc779049af3d486899d94981a0c364e5dbc2f0..02b0a5c64e6000531be85ce645e6121ce308fe1e 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 5d7d539f70766bb26e88f237fac4af76a50ad2f7..8ca2e884adf3edeaf853414b45355c9099278e1f 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())