8,756
edits
(Created page with "local zlib = mw.ext.zlib local p = {} function p.a(code) local decoded = mw.text.jsonDecode(zlib.gzdecode(zlib.base64_decode(code))) local version = decoded["gameversion"] local genotype = decoded["modules"][1]["data"]["Genotype"] local class = decoded["modules"][2]["data"]["Subtype"] local base_stat = 10 local exts = {} for i=1, #decoded["modules"][3]["data"]["selections"] do exts[i] = decoded["modules"][3]["data"]["selections"][i]["Mutation"] end local stats = dec...") |
mNo edit summary |
||
(28 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local zlib = mw.ext.zlib | local zlib = mw.ext.zlib | ||
local utilTable = require('Module:Table Utility') | |||
local data = require('Module:CryptogullJr/Data') | |||
local p = {} | |||
local p | function p.main(frame) | ||
local frame = mw.getCurrentFrame() | |||
if frame.args ~= nil and frame.args ~= '' then | |||
-- argument in template call has to be named so the equal sign doesn't | |||
-- break input | |||
local code = frame.args["code"] | |||
local title = frame.args["title"] | |||
local author = frame.args["author"] | |||
if frame.args["code"]~= nil and frame.args["code"] ~= '' then | |||
return p.a(mw.text.trim(frame:preprocess(frame.args["code"])), title, author) | |||
else | |||
error "There was no code in your input!" | |||
end | |||
end | |||
end | |||
function p.a(code) | function p.a(code, title, author) | ||
local decoded = mw.text.jsonDecode(zlib.gzdecode(zlib.base64_decode(code))) | local frame = mw.getCurrentFrame() | ||
local version = decoded["gameversion"] | local decoded = mw.text.jsonDecode(zlib.gzdecode(zlib.base64_decode(code))) | ||
local genotype = decoded["modules"][1]["data"]["Genotype"] | |||
local | local version = decoded["gameversion"] | ||
local | local genotype = decoded["modules"][1]["data"]["Genotype"] | ||
local classCalled = "Calling" | |||
local extCalled = "Mutations" | |||
local subtype = decoded["modules"][2]["data"]["Subtype"] | |||
local baseStat = 10 | |||
local stats = { | |||
["Strength"] = 0, | |||
["Intelligence"] = 0, | |||
["Toughness"] = 0, | |||
["Willpower"] = 0, | |||
["Ego"] = 0, | |||
["Agility"] = 0} | |||
local bonusInt = {} | |||
local exts = {} | |||
local bonus = { | |||
["Strength"] = "", | |||
["Intelligence"] = "", | |||
["Toughness"] = "", | |||
["Willpower"] = "", | |||
["Ego"] = "", | |||
["Agility"] = "" | |||
} | |||
if genotype == "True Kin" then | |||
-- if true kin, stats are [3] and cybernetics are [4] | |||
classCalled= "Caste" | |||
extCalled = "Cybernetics" | |||
statPos = 3 | |||
extPos = 4 | |||
extNoun = 'Cybernetic' | |||
baseStat = 12 | |||
else | |||
-- if mutant, stats are [4] and mutations are [3] :crungled: | |||
statPos=4 | |||
extPos=3 | |||
extNoun='Mutation' | |||
end | |||
stats = decoded["modules"][statPos]["data"]["PointsPurchased"] | |||
-- No cybernetics means extra toughness | |||
if extPos == 4 and #decoded["modules"][4]["data"]["selections"] == 1 then | |||
exts[1] = "No Cybernetic" | |||
else | |||
for i, v in ipairs(decoded["modules"][extPos]["data"]["selections"]) do | |||
exts[i] = v[extNoun] | |||
if v["variantName"] ~= "" and v["variantName"] ~= nil then | |||
exts[i] = exts[i] .. " (" .. v["variantName"] .. ")" | |||
end | |||
if data.isDefect(v[extNoun]) then | |||
exts[i] = exts[i] .. " (<span style=\"color:#a64a2e\">D</span>)" | |||
end | |||
if v["Count"] > 1 then | |||
exts[i] = exts[i] .. " <small>x</small>" .. v["Count"] | |||
end | |||
end | |||
end | |||
-- add 10 (or 12) to stats chosen... | |||
for statName, statValue in pairs(stats) do | |||
stats[statName] = stats[statName] + baseStat | |||
end | |||
local exts | --[[Add stat bonuses from subtype and mutations/cybernetics. | ||
for | disabled as cryptogull/data already sums these up | ||
local bonusInt= data.getTotalStatBonuses(subtype, exts) | |||
for name, num in pairs(bonusInt) do | |||
if num > 0 then | |||
bonus[name] = "+" .. num | |||
elseif num < 0 then | |||
bonus[name] = "-" .. num | |||
end | |||
end]] | |||
local skills = data.getSkills(subtype) | |||
local extra = data.getExtra(subtype) | |||
return p.MakeUpSheet(code, genotype, subtype, classCalled, extCalled, | |||
stats, bonus, exts, skills, extra, title, author, frame) | |||
end | end | ||
function p.MakeUpSheet(codeIn, genoIn, subtype, classcalledIn, extnameIn, | |||
attributes, bonus, exts, skills, extra, title, author, frame) | |||
return frame:expandTemplate { | |||
title = 'CryptoResultTest', | |||
args = { | |||
code = codeIn, | |||
genotype = genoIn, | |||
classcalled = classcalledIn, | |||
class = subtype, | |||
strength = tostring(attributes["Strength"]) .. bonus["Strength"], | |||
agility = tostring(attributes["Agility"]) .. bonus["Agility"], | |||
toughness = attributes["Toughness"] .. bonus["Toughness"], | |||
intelligence = attributes["Intelligence"] .. bonus["Intelligence"], | |||
willpower = attributes["Willpower"] .. bonus["Willpower"], | |||
ego = attributes["Ego"] .. bonus["Ego"], | |||
extname = extnameIn, | |||
skills= skills, | |||
exts = utilTable.concat(exts, "</br>"), | |||
extra=extra, | |||
buildname=title, | |||
author=author | |||
} | |||
} | |||
end | end | ||
function p.test() | function p.test() | ||
str = "H4sIAAAAAAAACs1VW2vbMBR+L/Q/CLNH16RZNtZCHtJs7NaOLE67weiDbB9sUVky0lFHGvLfJ9lp4kuztIOFBIKj853Ll3O+Iy+OjwjxUprDPSjNpPDOidcPekG/NwjO3nl+iUeG8aTmcGodeissl4nhoK35lzsTsqgea2g2L8AF/ZxeBuOMKhojqAuXUQffTeK+H0FItG5XZYBPRlpDHvH5yTi0AYVPbqraww0zn4wNR6NgKMCgotwnExNxFn+F+UzegRgKw3nFsSSTUKSWxpqdNb3Cl1J7b5N06G2K2JyP/i7tlUGKkJBPJqei4dXp5SO2rH4s/X/uZWiiA21lg9nuTq7cXdIwziSnal8tLOdmc+sDbGKL2+425oXN+KZu0cAhLnNslrb6LOoHshLwqsnXQiONOBCn8BzqNUrfsTQCrWO/DdxQxWgJ9drQfQV9s9ePK+HV4aX/XGYXQO+20jndTqfDtEVnKjUqkzdZbQ63e1LjCFGxyCAcohzb5HbrcSKZQD0xKs6ohqRZ0609KhApZhZ42xiQN0oZZzi3wOsmMJMmzQRo3dGY91kgcM5SEDF00R+M80L+BtWFPqTSGTe2uh49WoQFlCI6OWvap5BTJphIHc3G2kX2747cMg4Ge1LO2GiUOXuANX6ACtpGcreSRLWnjkbdXAA+YbUKSMo5d9yVFPauCJ+M+p/DyaTUECJVaNVyKePyPjvEAf2F6DPe4q04V+yLLAr6spe5e9weHy3/ADv8xUOwCgAA" | |||
return p.a(str, "DijTItle", "Dij") | |||
end | end | ||
return p | return p |