• Welcome to the Kancolle Wiki!
  • If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord

Difference between revisions of "Module:BaseData"

From Kancolle Wiki
Jump to navigation Jump to search
com>Ckwng
m
com>Ckwng
m
Line 20: Line 20:
 
end
 
end
  
BaseData.format_stat = BaseData.create_formatter({
+
BaseData.format_stat = BaseData:create_formatter({
 
[false] = "",
 
[false] = "",
 
})
 
})
  
BaseData.format_speed = BaseData.create_formatter({
+
BaseData.format_speed = BaseData:create_formatter({
 
[5] = "Slow",
 
[5] = "Slow",
 
[10] = "Fast",
 
[10] = "Fast",
 
})
 
})
  
BaseData.format_range = BaseData.create_formatter({
+
BaseData.format_range = BaseData:create_formatter({
 
[1] = "Short",
 
[1] = "Short",
 
[2] = "Medium",
 
[2] = "Medium",

Revision as of 06:43, 11 December 2014

Documentation for this module may be created at Module:BaseData/doc

local BaseData = {
	_image_template = "[[File:%s]]",
	_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