local this = class("rogueEntropyenemyTpl")

function this:init(config)
  self.data = config
end

function this:getTplById(id)
  return self.data[id]
end

function this:getEnemyStrength(tpl)
  return tpl.enemyStrength
end

function this:getId(tpl)
  return tpl.id
end

function this:getEntropy(tpl)
  return tpl.entropy
end

function this:getVersion(tpl)
  return tpl.version
end

function this:getName(tpl)
  return L_Config:provider(tpl.name)
end

function this:getMaxLevel()
  return self.data[#self.data + 1].id
end

function this:getTplByEntropy(entropy)
  if entropy >= self.data[#self.data - 1].entropy then
    return self.data[#self.data - 1]
  end
  for i, v in ipairs(self.data) do
    if entropy < v.entropy then
      return self.data[i - 1]
    end
  end
  return self.data[0]
end

function this:getNextTplByEntropy(entropy)
  if entropy >= self.data[#self.data - 1].entropy then
    return self.data[#self.data - 1]
  end
  for i, v in ipairs(self.data) do
    if entropy < v.entropy then
      return self.data[i]
    end
  end
  return self.data[1]
end

return this
