Module:GetRandomCreature: Difference between revisions

From Caves of Qud Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(91 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}
function p.parse(frame)
local cargo = mw.ext.cargo
local table = {
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",
default = "error"}
local a = string.gsub(frame.args[1],"(&amp;)(%w)([^&\n]+)", "<test span style=\"color: " .. tostring(p.test("%2")) .. ";\">"  .. "%3" .. "<test span>")


local n = string.gsub(frame.args[1], "(&amp;)(%w?)([^&\n]+)", "%2")
function p.a(seed)
  math.randomseed(tonumber(seed))
  local count = cargo.query('Characters=C, GeneralData=GD', 'TRIM(COUNT(C._pageName))=Number', {join='C.ObjectID=GD.ObjectID', where='C._pageNamespace="0" AND (NOT GD.ParentObject WITHIN "Wall" AND NOT GD.PlainName LIKE "* door")'})[1]['Number']
  local offsetin = math.random(0 , tonumber(count)-2)
  local tables = 'Characters=C, GeneralData=GD'
  local fields = 'GD.PlainName=Name, GD._pageName=Page'
  local args ={join='C._pageName=GD._pageName', where='GD._pageNamespace="0" AND (NOT GD.ParentObject WITHIN "Wall" AND NOT  GD.PlainName LIKE "* door")', offset=offsetin,limit = 1}
  local result = cargo.query(tables, fields, args)
  if not next(result) then
    error('?????')
  end
  return '[[' .. result[1]['Page'] .. '|'.. result[1]['Name'] .. ']]'
end


return a
function p.getRandomChara(frame)
  return p.a(frame.args.seed)
end
end


function p.test(z)
function p.test(seed)
local table = {
  return p.a(tostring(seed))
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",
default = "error"}
 
 
local b = table[z]
return b
end
end
return p
return p

Latest revision as of 14:42, 27 July 2023

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

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

function p.a(seed)
  math.randomseed(tonumber(seed))
  local count = cargo.query('Characters=C, GeneralData=GD', 'TRIM(COUNT(C._pageName))=Number', {join='C.ObjectID=GD.ObjectID', where='C._pageNamespace="0" AND (NOT GD.ParentObject WITHIN "Wall" AND NOT GD.PlainName LIKE "* door")'})[1]['Number']
  local offsetin = math.random(0 , tonumber(count)-2)
  local tables = 'Characters=C, GeneralData=GD'
  local fields = 'GD.PlainName=Name, GD._pageName=Page'
  local args ={join='C._pageName=GD._pageName', where='GD._pageNamespace="0" AND (NOT GD.ParentObject WITHIN "Wall" AND NOT  GD.PlainName LIKE "* door")', offset=offsetin,limit = 1}
  local result = cargo.query(tables, fields, args)
  if not next(result) then
    error('?????')
  end
  return '[[' .. result[1]['Page'] .. '|'.. result[1]['Name'] .. ']]'
end

function p.getRandomChara(frame)
  return p.a(frame.args.seed)
end

function p.test(seed)
  return p.a(tostring(seed))
end
return p