Module:Apt: Difference between revisions
From Ashenzari's Archive
More actions
imported>CommanderC No edit summary |
imported>CommanderC No edit summary |
||
| Line 53: | Line 53: | ||
for _, sp in ipairs(species) do | for _, sp in ipairs(species) do | ||
result = result .. "| " .. data[sp][skill] .. "\n" | result = result .. "| " .. data[sp][skill] .. "\n" | ||
end | |||
result = result .. "|}" | |||
return result | |||
end | |||
function p.aptitude_chart_general(frame) | |||
local data = mw.loadData('Module:Table of aptitudes') | |||
local skill = frame.args[1] | |||
local species = {'Human', 'Centaur', 'Demigod', 'Demonspawn', | |||
'Base Draconian', 'Deep Dwarf', 'Deep Elf', 'High Elf', | |||
'Sludge Elf', 'Felid', 'Ghoul', 'Halfling', 'Kobold', 'Merfolk', | |||
'Minotaur', 'Mummy', 'Naga', 'Octopode', 'Ogre', 'Hill Orc', | |||
'Spriggan', 'Tengu', 'Troll', 'Vampire'} | |||
local skills = {'Armour', 'Dodging', 'Stealth', 'Stabbing', | |||
'Shields', 'Traps', 'Invocations', 'Evocations', 'HP', 'MP', 'Experience'} | |||
local result = [=[ | |||
{| class="wikitable sortable" style="font-size:75%" border=1 | |||
! scope="col" | [[Species]] | |||
! scope="col" | [[Armour (skill)|Arm]] | |||
! scope="col" | [[Dodging|Ddg]] | |||
! scope="col" | [[Stealth|Sth]] | |||
! scope="col" | [[Stabbing|Stb]] | |||
! scope="col" | [[Shields (skill)|Shd]] | |||
! scope="col" | [[Traps|Trp]] | |||
! scope="col" | [[Invocations|Inv]] | |||
! scope="col" | [[Evocations|Evo]] | |||
! scope="col" | [[HP]] | |||
! scope="col" | [[MP]] | |||
! scope="col" | [[Exp]] | |||
|- | |||
]=] | |||
-- constants used by sort_key | |||
local a_ord = string.byte('a') | |||
local z_ord = string.byte('z') | |||
local aa_ord = string.byte('A') | |||
-- generates the table keys | |||
function sort_key(i) | |||
local result | |||
if i > z_ord - a_ord then | |||
i = i - (z_ord - a_ord) - 1 | |||
result = '!' .. string.char(aa_ord + i) | |||
else | |||
result = '"' .. string.char(a_ord + i) | |||
end | |||
return result | |||
end | |||
local i = 0 | |||
for _, sp in ipairs(species) do | |||
result = result .. '|<span style="display:none;">' .. sort_key(i) .. '</span>' .. sp .. "\n" | |||
for _,sk in ipairs(skills) do | |||
result = result .. "||" .. data[sp][sk] .. "\n" | |||
end | |||
result = result .. "|-\n" | |||
i = i + 1 | |||
end | end | ||
result = result .. "|}" | result = result .. "|}" | ||
Revision as of 21:43, 18 September 2013
local p = {}
function p.aptitude(frame)
local data = mw.loadData('Module:Table of aptitudes')
local sp = frame.args[1]
local sk = frame.args[2]
if not sp or not sk then
return ""
end
if sp == "Draconian" then
sp = "Base Draconian"
end
return data[sp][sk]
end
function p.skill_table(frame)
local data = mw.loadData('Module:Table of aptitudes')
local skill = frame.args[1]
local species = {'Human', 'Centaur', 'Demigod', 'Demonspawn',
'Base Draconian', 'Deep Dwarf', 'Deep Elf', 'High Elf',
'Sludge Elf', 'Felid', 'Ghoul', 'Halfling', 'Kobold', 'Merfolk',
'Minotaur', 'Mummy', 'Naga', 'Octopode', 'Ogre', 'Hill Orc',
'Spriggan', 'Tengu', 'Troll', 'Vampire'}
local result = [=[
]=]
for _, sp in ipairs(species) do
result = result .. "| " .. data[sp][skill] .. "\n"
end
result = result .. "|}"
return result
end
function p.aptitude_chart_general(frame)
local data = mw.loadData('Module:Table of aptitudes')
local skill = frame.args[1]
local species = {'Human', 'Centaur', 'Demigod', 'Demonspawn',
'Base Draconian', 'Deep Dwarf', 'Deep Elf', 'High Elf',
'Sludge Elf', 'Felid', 'Ghoul', 'Halfling', 'Kobold', 'Merfolk',
'Minotaur', 'Mummy', 'Naga', 'Octopode', 'Ogre', 'Hill Orc',
'Spriggan', 'Tengu', 'Troll', 'Vampire'}
local skills = {'Armour', 'Dodging', 'Stealth', 'Stabbing',
'Shields', 'Traps', 'Invocations', 'Evocations', 'HP', 'MP', 'Experience'}
local result = [=[
| Hu | Ce | Dg | Ds | Dr | DD | DE | HE | SE | Fe | Gh | Ha | Ko | Mf | Mi | Mu | Na | Op | Og | HO | Sp | Te | Tr | Vp |
| Species | Arm | Ddg | Sth | Stb | Shd | Trp | Inv | Evo | HP | MP | Exp |
|---|