Module:GetRandomCreature

From Caves of Qud Wiki
Revision as of 02:16, 24 July 2019 by Teamtoto (talk | contribs)
Jump to navigation Jump to search

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

local p = {}
local cargo = mw.ext.cargo

function p.decode(frame)
local subtype = string.sub(frame.args[1],0,1)
local stats = string.sub(frame.args[1],2,8)
local statsstring = "U"
local subtypetable = {['A'] = "Truekin", ['B'] = "Mutant"}
local statstable = {
['A'] = "6",
['B'] = "7",
['C'] = "8",
['D'] = "9",
['E'] = "10",
['F'] = "11",
['G'] = "12",
['H'] = "13",
['I'] = "14",
['J'] = "15",
['K'] = "16",
['L'] = "17",
['M'] = "18",
['N'] = "19",
['O'] = "20",
['P'] = "21",
['Q'] = "22",
['R'] = "23",
['S'] = "24",
['T'] = "25",
['U'] = "26",
['V'] = "27"}

for i=0,4,1
do
statsstring = statsstring .. " " .. statstable[string.sub(stats,i,1+i)]
end

return statsstring
end

function p.nonxmlparse(frame)
local a = string.gsub(frame.args[1],"(&)(%w)([^&\n]*)", function(_,color,text)
        local luatable = {
            ['r'] = "#a64a2e",
            ['R'] = "#d74200",
            ['g'] = "#009403",
            ['G'] = "#00c420",
            ['b'] = "#0048bd",
            ['B'] = "#0096ff",
            ['c'] = "#40a4b9",
            ['C'] = "#77bfcf",
            ['m'] = "#b154cf",
            ['M'] = "#da5bd6",
            ['w'] = "#98875f",
            ['W'] = "#cfc041",
            ['k'] = "#0f3b3a",
            ['K'] = "#155352",
            ['y'] = "#b1c9c3",
            ['Y'] = "#FFFFFF",
            ['o'] = "#f15f22",
            ['O'] = "#e99f10"
        }

        return "<span style=\"color: " .. luatable[color] .. ";\">"  .. text .. "</span>"
    end)
return a
end


function p.parse(frame)
local b = string.gsub(frame.args[1],"([{}])", "")
local b = string.gsub(b,"(~J211)", "")
local a = string.gsub(b,"(&amp;)(%w)(%^%w)?([^&\n]*)", function(_,color,background,text)
        local luatable = {
            ['r'] = "#a64a2e",
            ['R'] = "#d74200",
            ['g'] = "#009403",
            ['G'] = "#00c420",
            ['b'] = "#0048bd",
            ['B'] = "#0096ff",
            ['c'] = "#40a4b9",
            ['C'] = "#77bfcf",
            ['m'] = "#b154cf",
            ['M'] = "#da5bd6",
            ['w'] = "#98875f",
            ['W'] = "#cfc041",
            ['k'] = "#0f3b3a",
            ['K'] = "#155352",
            ['y'] = "#b1c9c3",
            ['Y'] = "#FFFFFF",
            ['o'] = "#f15f22",
            ['O'] = "#e99f10"
        }
local bgluatable = {
            ["^r"] = "#a64a2e",
            ["^R"] = "#d74200",
            ["^g"] = "#009403",
            ["^G"] = "#00c420",
            ["^b"] = "#0048bd",
            ["^B"] = "#0096ff",
            ["^c"] = "#40a4b9",
            ["^C"] = "#77bfcf",
            ["^m"] = "#b154cf",
            ["^M"] = "#da5bd6",
            ["^w"] = "#98875f",
            ["^W"] = "#cfc041",
            ["^k"] = "#0f3b3a",
            ["^K"] = "#155352",
            ["^y"] = "#b1c9c3",
            ["^Y"] = "#FFFFFF",
            ["^o"] = "#f15f22",
            ["^O"] = "#e99f10",
        }
local c = bgluatable[background]
if (c == nil or c == '')
then
 c = "transparent"
end
        return "<span style=\"color: " .. luatable[color] .. "; background: " .. c ..";\">"  .. text .. "</span>"
    end)
return a
end

return p