Module:BaseData

local BaseData = { _image_template = "", _no_image = "Catbomb.png|300px", }

function BaseData:create_formatter(lookup) return function(self, stat, raw) if raw then return stat elseif stat == nil then return "??" end local result = lookup[stat] if result == nil then return stat else return result end end end

BaseData.format_stat = BaseData.create_formatter({	[false] = "",	})

BaseData.format_speed = BaseData.create_formatter({	[5] = "Slow",	[10] = "Fast",	})

BaseData.format_range = BaseData.create_formatter({	[1] = "Short",	[2] = "Medium",	[3] = "Long",	[0] = "Very Short",	[4] = "Very Long",	})

function BaseData:format_image(name, raw) if raw then return name elseif name == nil then return mw.ustring.format(self._image_template, self._no_image) else return mw.ustring.format(self._image_template, name) end end

function BaseData:create(data) data = data or {} setmetatable(data, self) self.__index = self return data end

BaseData.__call = function (table, ...) return table:create(...) end

setmetatable(BaseData, BaseData)

return BaseData