Module:Sandbox/User:Teamtoto/LuaModule: Difference between revisions

m
no edit summary
(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 class = decoded["modules"][2]["data"]["Subtype"]
local version = decoded["gameversion"]
local base_stat = 10
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 i=1, #decoded["modules"][3]["data"]["selections"] do
disabled as cryptogull/data already sums these up
exts[i] = decoded["modules"][3]["data"]["selections"][i]["Mutation"]
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


local stats = decoded["modules"][4]["data"]["PointsPurchased"]
function p.MakeUpSheet(codeIn, genoIn, subtype, classcalledIn, extnameIn,
for stat_name, stat_value in ipairs(stats) do
attributes, bonus, exts, skills, extra, title, author, frame)
  stats[stat_name] = stat_value + base_stat
    return frame:expandTemplate {
end
        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()
return p.a("H4sIAAAAAAAAE81VXWvbMBR9768QZo9OcEs2tkAeMnes25KRJaEdjD7I9sUWkyWjj44Q8t97LaeeY0OzhmY4EH/cc3V0dHR1vb0gxEtpDg+gNJPCGxPvahgMr4LR8MNbzy/hyDKeNPBLxIMKymViOWiM/sJXQrbuWgPrTQHliJ/L2TDMqKKxAfWxpNPDHzYp/59BSINpczfAJ1OtIY/4ZhCucEDhk9tq4slfVT4JLTdWwUSANYpynyxsxFn8DTZr+RvERFjOnUCnJaGGooonbRh5Y14q7Bo5OuLqKZDyKb1knVtDDSTkxuZUNJM6Ju6hnbvv/BM9XNmolxYe6Drq4D7bGYh0NgH1H7xze4W8unfutZQd9S8vkDBoBDRwiB1DfT6r37bxTPblurf2WuJCYJBbHXNIGvQuM5RWGEy7bMVvqWLUIUELeaiQ79hhSnqvge78f5N0IxWu4LWVZI71BDlz3HpWcCAzSF9f1imKlpCCAFW990HQNC8yFjFpz+xP/Xx//j4xNUaxyBroX6NoSzvaKRaSCaMXVsUZ1XjKxweb6a2MApGaDOPvm7vhTVPGmdl04mtp00yA1h3kizDAOcP6jKED3jHOC/kH2/yYvDtAPqWyjNWhRuF5tFgV4EplMBodxJeQUyaYSFt9MMJFTsvmeJB/pjoJMyk1rAxVBpXMZOxORe9q5jmZx7/UrWHlXF9lUdAXfK/xen+xewQRZPd1fwoAAA==")
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