8,756
edits
No edit summary |
mNo edit summary |
||
(15 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local zlib = mw.ext.zlib | local zlib = mw.ext.zlib | ||
local | local utilTable = require('Module:Table Utility') | ||
local data = require('Module:CryptogullJr/Data') | |||
local p = {} | local p = {} | ||
Line 8: | Line 9: | ||
-- argument in template call has to be named so the equal sign doesn't | -- argument in template call has to be named so the equal sign doesn't | ||
-- break input | -- 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 | if frame.args["code"]~= nil and frame.args["code"] ~= '' then | ||
return p.a(mw.text.trim(frame:preprocess(frame.args["code"]))) | return p.a(mw.text.trim(frame:preprocess(frame.args["code"])), title, author) | ||
else | else | ||
error "There was no code in your input!" | error "There was no code in your input!" | ||
Line 17: | Line 21: | ||
end | end | ||
function p.a(code) | function p.a(code, title, author) | ||
local frame = mw.getCurrentFrame() | local frame = mw.getCurrentFrame() | ||
local decoded = mw.text.jsonDecode(zlib.gzdecode(zlib.base64_decode(code))) | local decoded = mw.text.jsonDecode(zlib.gzdecode(zlib.base64_decode(code))) | ||
local version = decoded["gameversion"] | local version = decoded["gameversion"] | ||
local genotype = decoded["modules"][1]["data"]["Genotype"] | local genotype = decoded["modules"][1]["data"]["Genotype"] | ||
local | local classCalled = "Calling" | ||
local | local extCalled = "Mutations" | ||
local subtype = decoded["modules"][2]["data"]["Subtype"] | local subtype = decoded["modules"][2]["data"]["Subtype"] | ||
local | local baseStat = 10 | ||
local stats = | local stats = { | ||
local | ["Strength"] = 0, | ||
["Intelligence"] = 0, | |||
["Toughness"] = 0, | |||
["Willpower"] = 0, | |||
["Ego"] = 0, | |||
["Agility"] = 0} | |||
local bonusInt = {} | |||
local exts = {} | local exts = {} | ||
local bonus = { | local bonus = { | ||
Line 40: | Line 51: | ||
if genotype == "True Kin" then | if genotype == "True Kin" then | ||
-- if true kin, stats are [3] and cybernetics are [4] | -- if true kin, stats are [3] and cybernetics are [4] | ||
classCalled= "Caste" | |||
extCalled = "Cybernetics" | |||
statPos = 3 | |||
extPos = 4 | |||
extNoun = 'Cybernetic' | |||
baseStat = 12 | |||
else | else | ||
-- if mutant, stats are [4] and mutations are [3] :crungled: | -- if mutant, stats are [4] and mutations are [3] :crungled: | ||
statPos=4 | |||
exts[ | 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 | ||
end | end | ||
for | |||
stats[ | -- add 10 (or 12) to stats chosen... | ||
for statName, statValue in pairs(stats) do | |||
stats[statName] = stats[statName] + baseStat | |||
end | end | ||
--[[Add stat bonuses from subtype and mutations/cybernetics. | |||
disabled as cryptogull/data already sums these up | |||
local bonusInt= data.getTotalStatBonuses(subtype, exts) | |||
for name, num in pairs( | for name, num in pairs(bonusInt) do | ||
if num > 0 then | if num > 0 then | ||
bonus[name] = "+" .. num | bonus[name] = "+" .. num | ||
Line 70: | Line 99: | ||
bonus[name] = "-" .. num | bonus[name] = "-" .. num | ||
end | end | ||
end | end]] | ||
local skills = data.getSkills(subtype) | |||
return p.MakeUpSheet( | 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, frame) | function p.MakeUpSheet(codeIn, genoIn, subtype, classcalledIn, extnameIn, | ||
attributes, bonus, exts, skills, extra, title, author, frame) | |||
return frame:expandTemplate { | return frame:expandTemplate { | ||
title = ' | title = 'CryptoResultTest', | ||
args = { | args = { | ||
code = | code = codeIn, | ||
genotype = genoIn, | genotype = genoIn, | ||
classcalled = classcalledIn, | classcalled = classcalledIn, | ||
Line 90: | Line 122: | ||
ego = attributes["Ego"] .. bonus["Ego"], | ego = attributes["Ego"] .. bonus["Ego"], | ||
extname = extnameIn, | extname = extnameIn, | ||
exts = | skills= skills, | ||
exts = utilTable.concat(exts, "</br>"), | |||
extra=extra, | |||
buildname=title, | |||
author=author | |||
} | } | ||
} | } | ||
Line 96: | Line 132: | ||
function p.test() | function p.test() | ||
str = " | 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) | return p.a(str, "DijTItle", "Dij") | ||
end | end | ||
return p | return p |