8,756
edits
(deleted irrelevant stuff, i think) |
(don't need cargo) |
||
(14 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p.main(frame) | function p.main(frame) | ||
local | local namingtable = require'Module:NameGenerator/NamingTable' | ||
local naming = namingtable.naming | |||
local defaultvars = namingtable.defaultvars | |||
local prefixes = "" | local prefixes = "" | ||
local infixes = "" | local infixes = "" | ||
Line 16: | Line 17: | ||
local result = {} | local result = {} | ||
local seed = frame.args.seed | local seed = frame.args.seed | ||
local style = frame.args.style | local style = frame.args.style:lower() | ||
if seed ~= nil and seed ~= ''then | if seed ~= nil and seed ~= ''then | ||
Line 22: | Line 23: | ||
end | end | ||
prefixtable = naming[style]['Prefixes'] | local prefixtable = naming[style]['Prefixes'] | ||
infixtable = naming[style]['Infixes'] | local infixtable = naming[style]['Infixes'] | ||
postfixtable = naming[style]['Postfixes'] | local postfixtable = naming[style]['Postfixes'] | ||
local hyphenationchance = naming[style]['HyphenationChance'] or 0 | |||
local twonamechance = naming[style]['TwoNameChance'] or 0 | |||
minprefix=naming[style]['MinPrefixAmount'] | minprefix=naming[style]['MinPrefixAmount'] | ||
maxprefix=naming[style]['MaxPrefixAmount'] | maxprefix=naming[style]['MaxPrefixAmount'] | ||
local namecount | |||
if math.random(0, 100) < twonamechance then | |||
namecount = 2 | |||
else | |||
namecount = 1 | |||
end | end | ||
local heroname = '' | |||
for i = 1,namecount do | |||
prefixes = '' | |||
infixes = '' | |||
postfixes = '' | |||
--[get min/maxprefix stuff]-- | |||
for i=1,math.random(minprefix,maxprefix) do | |||
prefixes = prefixes.. prefixtable[math.random(table.getn(prefixtable))] | |||
if math.random(0, 100) < hyphenationchance then | |||
prefixes = prefixes .. '-' | |||
end | |||
end | |||
mininfix=naming[style]['MinInfixAmount'] | mininfix=naming[style]['MinInfixAmount'] | ||
maxinfix=naming[style]['MaxInfixAmount'] | maxinfix=naming[style]['MaxInfixAmount'] | ||
for i=1,math.random(mininfix,maxinfix) do | for i=1,math.random(mininfix,maxinfix) do | ||
infixes = infixes.. infixtable[math.random(table.getn(infixtable))] | |||
if math.random(0, 100) < hyphenationchance then | |||
infixes = infixes .. '-' | |||
end | |||
end | |||
minpostfix=naming[style]['MinPostfixAmount'] | |||
maxpostfix=naming[style]['MaxPostfixAmount'] | |||
for i=1,math.random(minpostfix,maxpostfix) do | |||
postfixes = postfixes.. postfixtable[math.random(table.getn(postfixtable))] | |||
if math.random(0, 100) < hyphenationchance then | |||
postfixes = postfixes .. '-' | |||
end | |||
end | |||
--[name fitting]-- | |||
heroname = heroname .. ((prefixes..infixes..postfixes):gsub("^%l", string.upper):gsub("-$", '')) .. ' ' | |||
end | end | ||
heroname = heroname:gsub("%s*$", '') | |||
--[title template]-- | --[title template]-- | ||
local b | |||
local | local templatetable = naming[style]['TitleTemplates'] | ||
if templatetable ~= nil then | |||
local titletemplate = templatetable[math.random(table.getn(templatetable))] | |||
local varstable = defaultvars | |||
if naming[style]['TemplateVars'] ~= nil then | |||
for k,v in pairs(naming[style]['TemplateVars']) do | |||
varstable[k] = v | |||
end | |||
end | |||
if varstable == nil then | |||
varstable = {} | |||
end | |||
varstable['%*Name%*'] = { heroname } | |||
varstable['%*Rings%*'] = { 'Three-ringed', 'Four-ringed', 'Five-ringed', 'Seven-ringed', 'Eight-ringed', 'Nine-ringed', 'Twelve-ringed'} | |||
-- not gonna bother doing every number in the 1d10+2 range and don't know how to handle that automatically | |||
for var, values in pairs(varstable) do | |||
titletemplate = titletemplate:gsub(var, values[math.random(table.getn(values))]) | |||
end | |||
b = titletemplate | |||
else | |||
b = heroname | |||
end | |||
return b | return b |