87 lines
2.3 KiB
Lua
87 lines
2.3 KiB
Lua
---
|
|
-- Description of the module.
|
|
-- @class Technology
|
|
--
|
|
Technology = newclass(Prototype,function(base, object)
|
|
if object ~= nil and type(object) == "string" then
|
|
Prototype.init(base, Player.getTechnology(object))
|
|
elseif object ~= nil and object.name ~= nil then
|
|
Prototype.init(base, Player.getTechnology(object.name))
|
|
end
|
|
base.classname = "HMTechnology"
|
|
end)
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return enable of Prototype
|
|
--
|
|
-- @return boolean
|
|
--
|
|
function Technology:getEnabled()
|
|
if self.lua_prototype ~= nil then
|
|
return self.lua_prototype.enabled
|
|
end
|
|
return true
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return level
|
|
--
|
|
-- @return number
|
|
--
|
|
function Technology:getLevel()
|
|
if self.lua_prototype == nil then return 0 end
|
|
return self.lua_prototype.level
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return formula
|
|
--
|
|
-- @return string
|
|
--
|
|
function Technology:getFormula()
|
|
if self.lua_prototype == nil then return nil end
|
|
return self.lua_prototype.research_unit_count_formula
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return ingredients
|
|
--
|
|
-- @return table
|
|
--
|
|
function Technology:getIngredients()
|
|
if self.lua_prototype == nil then return {} end
|
|
return self.lua_prototype.research_unit_ingredients or {}
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return group
|
|
--
|
|
-- @return table
|
|
--
|
|
function Technology:getGroup()
|
|
if self.lua_prototype == nil then return {} end
|
|
local group_name = "normal"
|
|
if self.lua_prototype.research_unit_count_formula ~= nil then group_name = "infinite" end
|
|
return {name = group_name, localised_name = group_name}
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return group
|
|
--
|
|
-- @return table
|
|
--
|
|
function Technology:getSubgroup()
|
|
return {name="default"}
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Return isResearched
|
|
--
|
|
-- @return boolean
|
|
--
|
|
function Technology:isResearched()
|
|
if self.lua_prototype == nil then return false end
|
|
local technology = Player.getPlayerTechnology(self.lua_prototype.name)
|
|
return technology.researched
|
|
end
|