Module:Sandbox/User:Teamtoto/NameGenerator

local p = {}

function p.main(frame) local prefixes = "" local infixes = "" local postfixes = "" local maxprefix local minprefix local maxinfix local mininfix local maxpostfix local minpostfix local titletemplate local result = {} local seed = frame.args.seed

if seed ~= nil and seed ~= ''then math.randomseed(seed:gsub("%w",string.byte)) end

--[get cargo row]-- local tables= 'HeroNames' local fields= 'Prefixes, MinPrefixAmount, MaxPrefixAmount,Infixes, MinInfixAmount,MaxInfixAmount,Postfixes ,MinPostfixAmount,MaxPostfixAmount,TitleTemplate' local args= { where= 'BaseType="Crab"' } result = cargo.query(tables,fields,args) if not next(result) then error('no base type of that kind found.') end --[get prefixes array]-- local resultstring = '' resultstring = result[1]['Prefixes'] local prefixtable= {} local i = 1 for j in string.gmatch(resultstring,"%s*(%w+),?%s*") do prefixtable[i] = j i= i+1 end --[get infixes array]-- local resultstring = '' resultstring = result[1]['Infixes'] local infixtable= {} local i = 1 for j in string.gmatch(resultstring,"%s*(%w+),?%s*") do infixtable[i] = j i= i+1 end --[get postfixes array]-- local resultstring = '' resultstring = result[1]['Postfixes'] local postfixtable= {} local i = 1 for j in string.gmatch(resultstring,"%s*(%w+),?%s*") do postfixtable[i] = j i= i+1 end

--[get min/maxprefix stuff]-- minprefix=result[1]['MinPrefixAmount'] maxprefix=result[1]['MaxPrefixAmount'] for i=1,math.random(minprefix,maxprefix) do prefixes = prefixes.. prefixtable[math.random(table.getn(prefixtable))] end

mininfix=result[1]['MinInfixAmount'] maxinfix=result[1]['MaxInfixAmount'] for i=1,math.random(mininfix,maxinfix) do infixes = infixes.. infixtable[math.random(table.getn(infixtable))] end minpostfix=result[1]['MinPostfixAmount'] maxpostfix=result[1]['MaxPostfixAmount'] for i=1,math.random(minpostfix,maxpostfix) do postfixes = postfixes.. postfixtable[math.random(table.getn(postfixtable))] end

--[title template]-- titletemplate=result[1]['TitleTemplate']

--[name fitting]-- local heroname= ((prefixes..infixes..postfixes):gsub("^%l", string.upper)) local a = string.gsub(titletemplate,'NAME',tostring(heroname)) local b = string.gsub(a,('BASETYPE'), 'crab')

return b end