Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Card stats: Difference between revisions

From Sekaipedia
Content added Content deleted
mNo edit summary
mNo edit summary
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
local getArgs = require('Module:Arguments').getArgs
local getArgs = require('Module:Arguments').getArgs
local navbar = require('Module:Navbar')._navbar
local util = require('Module:Utilities')
local VariablesLua = mw.ext.VariablesLua
local util = require('Module:Utilities')


local p = {}
local p = {}



function p.main(frame)
function p.main(frame)
local args = getArgs(frame)
local args = getArgs(frame)
local rarity = args['rarity']
local rarity = args['rarity'] or VariablesLua.var('rarity')
local min_performance = args['min performance']
local minPerformance = args['min performance']
local min_technique = args['min technique']
local minTechnique = args['min technique']
local min_stamina = args['min stamina']
local minStamina = args['min stamina']
local min_power = args['min power']
local minPower = args['min power']


local max_performance = args['max performance']
local maxPerformance = args['max performance']
local max_technique = args['max technique']
local maxTechnique = args['max technique']
local max_stamina = args['max stamina']
local maxStamina = args['max stamina']
local max_power = args['max power']
local maxPower = args['max power']
local max_level = '?'
local maxLevel = '?'
local max_levels = {
local maxLevels = {
['1'] = '20',
['1'] = '20',
['2'] = '30',
['2'] = '30',
['3'] = '50',
['3'] = '50',
['4'] = '60',
['4'] = '60',
['birthday'] = '50'
['birthday'] = '60',
['Birthday'] = '60'
}
}
if rarity ~= nil and rarity ~= '' then
local ss_bonus = nil
maxLevel = maxLevels[rarity] or '?'
local side_story_bonuses = {
['1'] = { 300, 600 },
['2'] = { 450, 900 },
['3'] = { 600, 1500 },
['4'] = { 750, 1800 },
['birthday'] = { 720, 1650 }
}
local mr_bonus = nil
local master_rank_bonuses = {
['1'] = 150,
['2'] = 300,
['3'] = 450,
['4'] = 600,
['birthday'] = 540
}
if rarity ~= nil then
max_level = max_levels[rarity] or '?'
ss_bonus = side_story_bonuses[rarity]
mr_bonus = master_rank_bonuses[rarity]
end
end


assert((tonumber(min_power) or 0) ==
assert((tonumber(minPower) or 0) ==
(tonumber(min_performance) or 0) +
(tonumber(minPerformance) or 0) +
(tonumber(min_technique) or 0) +
(tonumber(minTechnique) or 0) +
(tonumber(min_stamina) or 0))
(tonumber(minStamina) or 0))
assert((tonumber(max_power) or 0) ==
assert((tonumber(maxPower) or 0) ==
(tonumber(max_performance) or 0) +
(tonumber(maxPerformance) or 0) +
(tonumber(max_technique) or 0) +
(tonumber(maxTechnique) or 0) +
(tonumber(max_stamina) or 0))
(tonumber(maxStamina) or 0))


local main = mw.html.create()
local root = mw.html.create('table')
:tag('h3')
:addClass('wikitable')
:wikitext('Main stats')
:tag('tr')
:tag('th')
:attr('height', '30px')
:done()
:tag('th')
:wikitext('Level 1')
:done()
:tag('th')
:wikitext('Level ' .. maxLevel)
:done()
:done()
:done()
:tag('table'):addClass('wikitable')
:tag('tr')
:css({
:tag('th')
['margin-bottom'] = '0'
:attr('height', '30px')
:wikitext('[[File:Icon performance.png|25px|link=]] Performance')
})
:tag('tr')
:tag('th')
:attr({
['width'] = '40%',
['height'] = '30px'
})
:done()
:tag('th')
:attr('width', '30%')
:wikitext('Level 1')
:done()
:tag('th')
:attr('width', '30%')
:wikitext('Level ' .. max_level)
:done()
:done()
:done()
:tag('tr')
:tag('td')
:wikitext(util.editIfNil(minPerformance))
:tag('th')
:attr('height', '30px')
:wikitext('[[File:Icon performance.png|25px|link=]] Performance')
:done()
:tag('td')
:wikitext(util.editIfNil(min_performance))
:done()
:tag('td')
:wikitext(util.editIfNil(max_performance))
:done()
:done()
:done()
:tag('tr')
:tag('td')
:wikitext(util.editIfNil(maxPerformance))
:tag('th')
:attr('height', '30px')
:wikitext('[[File:Icon technique.png|25px|link=]] Technique')
:done()
:tag('td')
:wikitext(util.editIfNil(min_technique))
:done()
:tag('td')
:wikitext(util.editIfNil(max_technique))
:done()
:done()
:done()
:tag('tr')
:done()
:tag('th')
:tag('tr')
:attr('height', '30px')
:tag('th')
:attr('height', '30px')
:wikitext('[[File:Icon stamina.png|25px|link=]] Stamina')
:wikitext('[[File:Icon technique.png|25px|link=]] Technique')
:done()
:tag('td')
:wikitext(util.editIfNil(min_stamina))
:done()
:tag('td')
:wikitext(util.editIfNil(max_stamina))
:done()
:done()
:done()
:tag('tr')
:tag('td')
:wikitext(util.editIfNil(minTechnique))
:tag('th')
:attr('height', '30px')
:done()
:wikitext('Power')
:tag('td')
:wikitext(util.editIfNil(maxTechnique))
:done()
:tag('td')
:wikitext(util.editIfNil(min_power))
:done()
:tag('td')
:wikitext(util.editIfNil(max_power))
:done()
:done()
:done()
:done()
:done()
:done()
:tag('tr')
:tag('th')
:attr('height', '30px')
if rarity then
:wikitext('[[File:Icon stamina.png|25px|link=]] Stamina')
local additional = mw.html.create()
:tag('h3')
:wikitext('Additional stats')
:done()
:done()
:tag('ul')
:tag('td')
:wikitext(util.editIfNil(minStamina))
:tag('li')
:done()
:wikitext('Side Story 1 Unlocked: +' .. ss_bonus[1])
:done()
:tag('td')
:wikitext(util.editIfNil(maxStamina))
:tag('li')
:wikitext('Side Story 2 Unlocked: +' .. ss_bonus[2])
:done()
:tag('li')
:wikitext('Each [[master rank]]: +' .. mr_bonus)
:done()
:done()
:done()
:done()
:done()
:tag('tr')
:tag('th')
return tostring(main) .. tostring(navbar({ 'Card Stats', plain = 1, noedit = 1, brackets = 1 })) .. tostring(additional)
:attr('height', '30px')
end
:wikitext('Power')
:done()
:tag('td')
:wikitext(util.editIfNil(minPower))
:done()
:tag('td')
:wikitext(util.editIfNil(maxPower))
:done()
:done()
:done()
return tostring(main)
return tostring(root)
end
end



Latest revision as of 07:04, 4 February 2024

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

local getArgs = require('Module:Arguments').getArgs
local util    = require('Module:Utilities')
local VariablesLua = mw.ext.VariablesLua

local p = {}

function p.main(frame)
	local args = getArgs(frame)
	
	local rarity = args['rarity'] or VariablesLua.var('rarity')
	
	local minPerformance = args['min performance']
	local minTechnique   = args['min technique']
	local minStamina     = args['min stamina']
	local minPower       = args['min power']

	local maxPerformance = args['max performance']
	local maxTechnique   = args['max technique']
	local maxStamina     = args['max stamina']
	local maxPower       = args['max power']
	
	local maxLevel = '?'
	local maxLevels = {
		['1'] = '20',
		['2'] = '30',
		['3'] = '50',
		['4'] = '60',
		['birthday'] = '60',
		['Birthday'] = '60'
	}
	
	if rarity ~= nil and rarity ~= '' then
		maxLevel = maxLevels[rarity] or '?'
	end

	assert((tonumber(minPower) or 0) == 
		(tonumber(minPerformance) or 0) +
		(tonumber(minTechnique) or 0) +
		(tonumber(minStamina) or 0))
		
	assert((tonumber(maxPower) or 0) == 
		(tonumber(maxPerformance) or 0) +
		(tonumber(maxTechnique) or 0) +
		(tonumber(maxStamina) or 0))

	
	local root = mw.html.create('table')
		:addClass('wikitable')
		:tag('tr')
			:tag('th')
				:attr('height', '30px')
				:done()
			:tag('th')
				:wikitext('Level 1')
				:done()
			:tag('th')
				:wikitext('Level ' .. maxLevel)
				:done()
			:done()
		:tag('tr')
			:tag('th')
				:attr('height', '30px')
				:wikitext('[[File:Icon performance.png|25px|link=]] Performance')
				:done()
			:tag('td')
				:wikitext(util.editIfNil(minPerformance))
				:done()
			:tag('td')
				:wikitext(util.editIfNil(maxPerformance))
				:done()
			:done()
		:tag('tr')
			:tag('th')
				:attr('height', '30px')
				:wikitext('[[File:Icon technique.png|25px|link=]] Technique')
				:done()
			:tag('td')
				:wikitext(util.editIfNil(minTechnique))
				:done()
			:tag('td')
				:wikitext(util.editIfNil(maxTechnique))
				:done()
			:done()
		:tag('tr')
			:tag('th')
				:attr('height', '30px')
				:wikitext('[[File:Icon stamina.png|25px|link=]] Stamina')
				:done()
			:tag('td')
				:wikitext(util.editIfNil(minStamina))
				:done()
			:tag('td')
				:wikitext(util.editIfNil(maxStamina))
				:done()
			:done()
		:tag('tr')
			:tag('th')
				:attr('height', '30px')
				:wikitext('Power')
				:done()
			:tag('td')
				:wikitext(util.editIfNil(minPower))
				:done()
			:tag('td')
				:wikitext(util.editIfNil(maxPower))
				:done()
			:done()
		:done()
	
	return tostring(root)
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.