This module was made as a sandbox for the user User:Hakazumi. This documentation is kept to prevent redlinks.
local p = {}
function p.main(frame)
local args = require("Module:Arguments").getArgs(frame)
return p._main(args, frame)
end
function p._main(args, frame)
local variant = args.variant
local stat = args.stat
local awakeningNodes = tonumber(args.awakeningNodes)
local basepagename = mw.title.getCurrentTitle().text
local function currency(icon, amount)
return frame:expandTemplate{ title = "Icon/Currency", args = { icon } } .. " " .. amount
end
local function statIncrease(value)
return string.format("%s Increase %s", stat, value)
end
local rows = {}
-- Acquired Hero (exclude for "The Knight")
if variant ~= "The Knight" then
if variant == "Collab" then
table.insert(rows, { "'''Acquired Hero'''", currency("Diamond", 60) })
else
table.insert(rows, { "'''Acquired Hero'''", statIncrease("+0.2%") or "???" })
end
table.insert(rows, { "Acquire the hero " .. basepagename .. ".", "" })
end
-- 2-Star Evolve (Normal and The Knight only)
if variant == "The Knight" then
table.insert(rows, { "'''2-Star Evolve'''", statIncrease("+0.4%") })
table.insert(rows, { "Evolve the hero " .. basepagename .. " to 2 stars.", "" })
elseif variant == "Normal" then
table.insert(rows, { "'''2-Star Evolve'''", currency("Diamond", 20) })
table.insert(rows, { "Evolve the hero " .. basepagename .. " to 2 stars.", "" })
end
-- 3-Star Evolve
local star3 = {
Normal = 30,
Rare = 20,
["The Knight"] = 20,
}
if variant == "Normal" or variant == "Rare" or variant == "The Knight" then
table.insert(rows, { "'''3-Star Evolve'''", currency("Diamond", star3[variant] or "???") })
table.insert(rows, { "Evolve the hero " .. basepagename .. " to 3 stars.", "" })
end
-- 4-Star Evolve
local star4 = {}
for _, v in ipairs({ "Normal", "Rare", "The Knight", "Myth (Rare)" }) do
star4[v] = 40
end
for _, v in ipairs({ "Collab", "Unique", "Myth" }) do
star4[v] = 60
end
table.insert(rows, { "'''4-Star Evolve'''", currency("Diamond", star4[variant] or "???") })
table.insert(rows, { "Evolve the hero " .. basepagename .. " to 4 stars.", "" })
-- 5-Star Evolve
local star5 = {
Normal = "+0.1%",
["The Knight"] = "+0.6%",
}
for _, v in ipairs({ "Rare", "Myth (Rare)", "Unique", "Myth" }) do
star5[v] = "+0.3%"
end
if variant == "Collab" then
table.insert(rows, { "'''5-Star Evolve'''", currency("Diamond", 80) })
else
table.insert(rows, { "'''5-Star Evolve'''", statIncrease(star5[variant] or "???") })
end
table.insert(rows, { "Evolve the hero " .. basepagename .. " to 5 stars.", "" })
-- Level Up
if variant == "Collab" or variant == "Unique" or variant == "Myth" then
table.insert(rows, { "'''Level Up'''", currency("Diamond", 80) })
else
table.insert(rows, { "'''Level Up'''", currency("Diamond", 60) })
end
table.insert(rows, { "Level the hero " .. basepagename .. " up to 60.", "" })
-- Hero Limit Break
if variant == "Collab" or variant == "Unique" or variant == "Myth" then
table.insert(rows, { "'''Hero Limit Break'''", currency("Diamond", 100) })
else
table.insert(rows, { "'''Hero Limit Break'''", currency("Diamond", 80) })
end
table.insert(rows, { "Limit break the hero " .. basepagename .. " 5 times.", "" })
-- Acquired Awakening Node
local awakenVal = {
Normal = "+0.3%",
["The Knight"] = "+1.0%",
}
for _, v in ipairs({ "Rare", "Myth (Rare)", "Unique", "Myth" }) do
awakenVal[v] = "+0.5%"
end
if variant == "Collab" then
table.insert(rows, { "'''Acquired Awakening Node'''", currency("Diamond", 100) })
else
table.insert(rows, { "'''Acquired Awakening Node'''", statIncrease(awakenVal[variant]) })
end
table.insert(rows, {
string.format("Unlock %d of the hero %s's Awakening Nodes.", awakeningNodes or "???", basepagename),
""
})
-- Hero Blessing (only if NOT Normal)
if variant ~= "Normal" then
table.insert(rows, { "'''Hero Blessing'''", currency("Diamond", 50) })
table.insert(rows, { "Bless the hero " .. basepagename .. " 3 times.", "" })
end
-- Hero Ascent
if variant == "The Knight" then
table.insert(rows, { "'''Ascent'''", statIncrease("+1.0%") or "???" })
table.insert(rows, { "Ascent the hero " .. basepagename .. ".", "" })
elseif variant == "Ascent" then
table.insert(rows, { "'''Ascent'''", statIncrease("+0.5%") or "???" })
table.insert(rows, { "Ascent the hero " .. basepagename .. ".", "" })
end
-- Hero Myth
if variant == "The Knight" or variant == "Myth" or variant == "Myth (Rare)" then
table.insert(rows, { "'''Hero Myth'''", currency("Diamond", 50) })
table.insert(rows, { "Myth the hero " .. basepagename .. ".", "" })
end
-- Build HTML
local html = mw.html.create("table")
html:addClass("wikitable")
html:tag("tr")
:tag("th"):wikitext("Achievement"):done()
:tag("th"):wikitext("Reward"):done()
for i = 1, #rows, 2 do
html:tag("tr")
:tag("td"):wikitext(rows[i][1]):done()
:tag("td"):attr("rowspan", "2"):wikitext(rows[i][2]):done()
html:tag("tr")
:tag("td"):wikitext(rows[i + 1][1]):done()
end
return tostring(html)
end
return p