The generator code is pretty simple just to test, half copied from the random trap generator:
Code: Select all
require "engine.class"
local Map = require "engine.Map"
require "engine.Generator"
module(..., package.seeall, class.inherit(engine.Generator))
function _M:init(zone, map, level)
engine.Generator.init(self, zone, map, level)
local data = level.data.generator.trap
self.filters = data.filters
self.nb_trap = data.nb_trap or {10, 20}
self.level_range = data.level_range or {level, level}
end
function _M:generate()
self:regenFrom(1)
end
function _M:generate()
local o = self.zone:makeEntity(self.level, "trap", nil, nil, true)
-- local o = self.zone:makeEntityByName(self.level, "trap", "HEAVY_ARMOR_STORE", true)
self.zone:addEntity(self.level, o, "trap", 1, 1)
end
Code: Select all
load("/data/general/traps/store.lua")
newEntity{ base = "BASE_STORE", define_as = "HEAVY_ARMOR_STORE",
name="Hormond & Son Plates",
display='2', color=colors.UMBER,
resolvers.store("HEAVY_ARMOR", "allied-kingdoms", "store/shop_door.png", "store/shop_sign_hormond_sons.png"),
}
When I add other traps to the traps.lua file then it always generates those traps. When the store is the only trap available I get a lua error because makeEntity is returning nil. My best guess is that makeEntity is not loading the store onto its' list of possible traps, but I'm not sure why.