Template:FollowerList: Difference between revisions
Jump to navigation
Jump to search
TheGmaster (talk | contribs) (Created page with "{{#invoke:Creatures|listFollowerGroup|group={{{group|{{{1|}}}}}}}}") |
TheGmaster (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
{{# | local p = {} | ||
function p.singleCreature(frame) | |||
local creatureName = frame.args[1] | |||
local creatureType = frame.args[2] | |||
local imageOverride = frame.args[3] | |||
local namespace = frame.args[4] | |||
local iconImage = "" | |||
local wikiTable = "" | |||
local array | |||
-- Change the array being pulled from if a valid creatureType is provided, also formats the creatureType to be used in Err messages and sets an iconImage | |||
if string.find(string.lower(creatureType),"strangeland") then | |||
array = mw.loadData("Module:StrangelandsCreatureData") | |||
creatureType = " " .. creatureType .. "" | |||
iconImage = "[[File:icon-strangelands.png|right|50px|link=Strangelands#Strangelands_Creatures|Strangeland Creature]]" | |||
elseif string.find(string.lower(creatureType),"ship") then | |||
array = mw.loadData("Module:ShipCreatureData") | |||
creatureType = " " .. creatureType .. "" | |||
iconImage = "[[File:shipdeed.png|right|30px|link=Ships|Ship Creature]]" | |||
else | |||
array = mw.loadData("Module:WildCreatureData") -- Array containing wild creature data from another module | |||
creatureType = " wild " | |||
end | |||
local creature = array[creatureName] | |||
if creature then | |||
local formmatedName = string.gsub(string.lower(creatureName), "%s+", "") | |||
local imageName = string.gsub(formmatedName, "%p+", "") .. ".jpg" | |||
if imageOverride and imageOverride ~= "" then | |||
imageName = imageOverride | |||
end | |||
-- Automaticly add categories | |||
if namespace == "" or namespace == nil then | |||
wikiTable = wikiTable .. "[[Category:" .. creature.location .. "]]" | |||
wikiTable = wikiTable .. "[[Category:" .. creature.slayer .. " Creatures]]" | |||
if creature.bosstype ~= "" then | |||
wikiTable = wikiTable .. "[[Category:" .. creature.bosstype .. "es]] [[Category:Bosses]]" | |||
end | |||
end | |||
wikiTable = [=[__NOTOC__ | |||
<table class="wikitable" style="text-align:center"> | |||
<th style="border-right:none; border-bottom:none; width:110px"> | |||
<th colspan="7" style="border-width: 1px 0px 0px; height:100px; vertical-align:bottom;"> [[File:]=] .. | |||
imageName .. [=[|link=]] | |||
<th style="vertical-align:top; border-left:none; border-bottom:none; margin-left: 15px; width:110px>]=] .. | |||
iconImage .. [=[ | |||
<tr> | |||
<th style="border-top:none" colspan="9">[[]=] .. creatureName .. [=[]] | |||
<tr> | |||
<th>Slayer | |||
<th>Difficulty | |||
<th>Gold Value | |||
<th>Hits | |||
<th colspan="2">Melee Damage | |||
<th>Wrestling | |||
<th>Armor | |||
<th>Magic Resist | |||
<tr> | |||
<td>]=] .. creature.slayer .. [=[ | |||
<td>]=] .. creature.difficulty .. [=[ | |||
<td>]=] .. creature.goldvalue .. [=[ | |||
<td>]=] .. creature.hits .. [=[ | |||
<td colspan="2">]=] .. creature.minmeleedmg .. creature.maxmeleedmg .. [=[ | |||
<td>]=] .. creature.wrestling .. [=[ | |||
<td>]=] .. creature.armor .. creature.armormin .. [=[ | |||
<td>]=] .. creature.magicresist .. creature.magicresistmin .. [=[ | |||
<tr> | |||
<th>Parry | |||
<th>Attack Speed | |||
<th>Magery | |||
<th colspan="2">Spell Damage | |||
<th>Poison | |||
<th>Poison Resist | |||
<th>Stealth | |||
<th>AI | |||
<tr> | |||
<td>]=] .. creature.parry .. [=[ | |||
<td>]=] .. creature.atkspd .. [=[ | |||
<td>]=] .. creature.magery .. [=[ | |||
<td colspan="2">]=] .. creature.minspelldmg .. creature.maxspelldmg .. [=[ | |||
<td>]=] .. creature.poisontype .. [=[ | |||
<td>]=] .. creature.poisonresist .. creature.poisonresistmin .. [=[ | |||
<td>]=] .. creature.stealth .. [=[ | |||
<td>]=] .. creature.ai .. "</table>" | |||
return wikiTable | |||
else | |||
return '<h1 style="color:FireBrick;"><big>Creature Table Template Error: No' .. | |||
creatureType .. 'creature by the name "' .. creatureName .. '" was found (Case-sensitive)</big></h1>' | |||
end | |||
end | |||
function p.singleFollower(frame) | |||
local creatureArray = mw.loadData("Module:WildCreatureData") | |||
local tameableArray = mw.loadData("Module:TameableCreatureData") | |||
local summonArray = mw.loadData("Module:SummonableCreatureData") | |||
-- Parameters passed when the function is invoked | |||
local followerName = frame.args[1] -- Sun Wyrm | |||
local followerType = frame.args[2] -- tame/summon | |||
local imageOverride = frame.args[3] -- sunwyrm.png | |||
local namespace = frame.args[4] -- {{NAMESPACE}} | |||
local wikiTable = "" | |||
local creature = creatureArray[followerName] | |||
local tameable = tameableArray[followerName] | |||
local summon = summonArray[followerName] | |||
if not string.find(string.lower(followerType),"summon") and tameable then | |||
local formmatedName = string.gsub(string.lower(followerName), "%s+", "") | |||
local imageName = string.gsub(formmatedName, "%p+", "") .. ".jpg" | |||
if imageOverride and imageOverride ~= "" then | |||
imageName = imageOverride | |||
end | |||
-- Automaticlly add categories | |||
if namespace == "" or namespace == nil then | |||
if creature then | |||
wikiTable = wikiTable .. "[[Category:" .. creature.location .. "]]" | |||
wikiTable = wikiTable .. "[[Category:" .. creature.slayer .. " Creatures]]" | |||
end | |||
wikiTable = wikiTable .. "[[Category:Tameable Creatures]]" | |||
wikiTable = wikiTable .. "[[Category:" .. tameable.class .. " Class Tameable]]" | |||
wikiTable = wikiTable .. "[[Category:" .. tameable.combat .. " Tameable]]" | |||
end | |||
wikiTable = [=[__NOTOC__ | |||
<table class="wikitable" style="text-align:center"> | |||
<th style="border-right:none; border-bottom:none; width:110px"> | |||
<th colspan="6" style="border-width: 1px 0px 0px; height:100px; vertical-align:bottom;"> [[File:]=] .. | |||
imageName .. [=[|link=]] | |||
<th style="vertical-align:top; border-left:none; border-bottom:none; margin-left: 15px; width:110px>[[File:icon-]=] .. | |||
string.lower(tameable.class) .. [=[class.png|link=Animal_Taming#Tamed_Classes|]=] .. | |||
tameable.class .. [=[ Class|right]] | |||
<tr> | |||
<th style="border-top:none" colspan="8">[[]=] .. followerName .. [=[]] | |||
<tr> | |||
<th>Min Taming | |||
<th>Control Slots | |||
<th>Hits | |||
<th>Class | |||
<th colspan="2">]=] .. tameable.combat .. [=[ Damage | |||
<th>Armor | |||
<th>Wrestling | |||
<tr> | |||
<td>]=] .. tameable.taming .. [=[ | |||
<td>]=] .. tameable.slots .. [=[ | |||
<td>]=] .. tameable.hits .. [=[ | |||
<td>]=] .. tameable.class .. [=[ | |||
<td colspan="2>]=] .. tameable.mindmg .. " - " .. tameable.maxdmg .. [=[ | |||
<td>]=] .. tameable.armor .. tameable.armormin .. [=[ | |||
<td>]=] .. tameable.wrestling .. [=[ | |||
<tr> | |||
<th>Attack Speed | |||
<th>Magic Resist | |||
<th>Poison Resist | |||
<th>Special Resist | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Stealth | |||
<th>Underdog Scalar | |||
<tr> | |||
<td>]=] .. tameable.atkspd .. [=[ | |||
<td>]=] .. tameable.magicresist .. tameable.magicresistmin .. [=[ | |||
<td>]=] .. tameable.poisonresist .. tameable.poisonresistmin .. [=[ | |||
<td>]=] .. tameable.specialresist .. [=[ | |||
<td>]=] .. tameable.poisontype .. [=[ | |||
<td>]=] .. tameable.poisoning .. [=[ | |||
<td>]=] .. tameable.stealth .. [=[ | |||
<td>]=] .. tameable.underdogscalar .. "</table>" | |||
return wikiTable | |||
elseif not string.find(string.lower(followerType),"tame") and summon then | |||
local formmatedName = string.gsub(string.lower(followerName), "%s+", "") | |||
local imageName = string.gsub(formmatedName, "%p+", "") .. ".jpg" | |||
local spelliconImage = "[[File:" .. | |||
summon.spellicon .. | |||
".png|44px|link=Spirit Speak#" .. summon.spellname .. "|" .. summon.spellname .. summon.tometier .. "|right]]" | |||
if summon.necro == true then | |||
spelliconImage = spelliconImage .. | |||
"[[File:SpellPlus.png|right]]<br><br>[[File:iconvengefulspirit.png|link=Necromancy#Undead Summons|Vengeful Spirit|right]]" | |||
end | |||
if imageOverride and imageOverride ~= "" then | |||
imageName = imageOverride | |||
end | |||
-- Automaticlly add categories | |||
if namespace == "" or namespace == nil then | |||
if creature then | |||
wikiTable = wikiTable .. "[[Category:" .. creature.location .. "]]" | |||
wikiTable = wikiTable .. "[[Category:" .. creature.slayer .. " Creatures]]" | |||
end | |||
wikiTable = wikiTable .. "[[Category:Summonable Creatures]]" | |||
end | |||
wikiTable = [=[__NOTOC__ | |||
<table class="wikitable" style="text-align:center"> | |||
<th style="border-right:none; border-bottom:none; width:110px"> | |||
<th colspan="5" style="border-width: 1px 0px 0px; height:100px; vertical-align:bottom;"> [[File:]=] .. | |||
imageName .. [=[|link=]] | |||
<th style="vertical-align:top; border-left:none; border-bottom:none; margin-left: 5px; width:110px>]=] .. | |||
spelliconImage .. [=[ | |||
<tr> | |||
<th style="border-top:none" colspan="7">[[]=] .. followerName .. [=[]] | |||
<tr> | |||
<th>Spell | |||
<th>Control Slots | |||
<th>Hits | |||
<th colspan="2">]=] .. summon.combat .. [=[ Damage | |||
<th>Armor | |||
<th>Wrestling | |||
<tr> | |||
<td>]=] .. summon.spellname .. summon.tometier .. [=[ | |||
<td>]=] .. summon.slots .. [=[ | |||
<td>]=] .. summon.hits .. [=[ | |||
<td colspan="2>]=] .. summon.mindmg .. " - " .. summon.maxdmg .. [=[ | |||
<td>]=] .. summon.armor .. summon.armormin .. [=[ | |||
<td>]=] .. summon.wrestling .. [=[ | |||
<tr> | |||
<th>Attack Speed | |||
<th>Magic Resist | |||
<th>Poison Resist | |||
<th>Special Resist | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Stealth | |||
<tr> | |||
<td>]=] .. summon.atkspd .. [=[ | |||
<td>]=] .. summon.magicresist .. summon.magicresistmin .. [=[ | |||
<td>]=] .. summon.poisonresist .. summon.poisonresistmin .. [=[ | |||
<td>]=] .. summon.specialresist .. [=[ | |||
<td>]=] .. summon.poisontype .. [=[ | |||
<td>]=] .. summon.poisoning .. [=[ | |||
<td>]=] .. summon.stealth .. "</table>" | |||
return wikiTable | |||
else | |||
return '<h1 style="color:FireBrick;"><big>FollowerTable Template Error: No tamed/summoned follower found by the name "' .. | |||
followerName .. '" (Case-sensitive)</big></h1>' | |||
end | |||
end | |||
function p.listSlayerGroup(frame) | |||
local creatureArray = mw.loadData("Module:WildCreatureData") | |||
local slayerGroup = frame.args[1] | |||
local position = frame.args[2] | |||
local wikiTable = "" | |||
if position and string.find(string.lower(position), "start") then | |||
wikiTable = [[<table class="wikitable sortable" style="text-align:center"> | |||
<th>Name | |||
<th>Location | |||
<th>Slayer | |||
<th>Difficulty | |||
<th>Gold Value | |||
<th>Hits | |||
<th colspan="2">Melee Dmg | |||
<th>Wrestling | |||
<th>Armor | |||
<th>Magic Resist | |||
<th>Parry | |||
<th>AtkSpd | |||
<th>Magery | |||
<th colspan="2">Spell Dmg | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Poison Resist | |||
<th>Stealth | |||
<th>AI | |||
<th>Speed | |||
<th>Unique Scalar]] | |||
else | |||
wikiTable = "" | |||
end | |||
for creatureName, creature in pairs(creatureArray) do | |||
if creature.slayer == slayerGroup then | |||
wikiTable = wikiTable .. [=[<tr> | |||
<td>[[]=] .. creatureName .. [=[]] | |||
<td>]=] .. creature.location .. [=[ | |||
<td>]=] .. creature.slayer .. [[ | |||
<td>]] .. creature.difficulty .. [[ | |||
<td>]] .. creature.goldvalue .. [[ | |||
<td>]] .. creature.hits .. [[ | |||
<td colspan="2">]] .. creature.minmeleedmg .. creature.maxmeleedmg .. [[ | |||
<td>]] .. creature.wrestling .. [[ | |||
<td>]] .. creature.armor .. creature.armormin .. [[ | |||
<td>]] .. creature.magicresist .. creature.magicresistmin .. [[ | |||
<td>]] .. creature.parry .. [[ | |||
<td>]] .. creature.atkspd .. [[ | |||
<td>]] .. creature.magery .. [[ | |||
<td colspan="2">]] .. creature.minspelldmg .. creature.maxspelldmg .. [[ | |||
<td>]] .. creature.poisontype .. [[ | |||
<td>]] .. creature.poisoning .. [[ | |||
<td>]] .. creature.poisonresist .. creature.poisonresistmin .. [[ | |||
<td>]] .. creature.stealth .. [[ | |||
<td>]] .. creature.ai .. [[ | |||
<td>]] .. creature.speed .. [[ | |||
<td>]] .. creature.uniquescalar | |||
end | |||
end | |||
if position and position and string.find(string.lower(position), "end") then | |||
wikiTable = wikiTable .. "</table>" | |||
end | |||
return wikiTable | |||
end | |||
function p.listLocationGroup(frame) | |||
local locationGroup = frame.args[1] | |||
local position = frame.args[2] | |||
local wikiTable = "" | |||
local array | |||
-- Change the array being pulled from if a valid creatureType is provided, also formats the creatureType to be used in Err messages and sets an iconImage | |||
if string.find(string.lower(locationGroup),"strangeland") then | |||
array = mw.loadData("Module:StrangelandsCreatureData") | |||
elseif string.find(string.lower(locationGroup),"ship") then | |||
array = mw.loadData("Module:ShipCreatureData") | |||
else | |||
array = mw.loadData("Module:WildCreatureData") | |||
end | |||
if position and string.find(string.lower(position), "start") then | |||
wikiTable = [[<table class="wikitable sortable" style="text-align:center"> | |||
<th>Name | |||
<th>Slayer | |||
<th>Difficulty | |||
<th>Gold Value | |||
<th>Hits | |||
<th colspan="2">Melee Dmg | |||
<th>Wrestling | |||
<th>Armor | |||
<th>Magic Resist | |||
<th>Parry | |||
<th>AtkSpd | |||
<th>Magery | |||
<th colspan="2">Spell Dmg | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Poison Resist | |||
<th>Stealth | |||
<th>AI | |||
<th>Speed | |||
<th>Unique Scalar]] | |||
end | |||
for creatureName, creature in pairs(array) do | |||
if string.find(creature.location, "[[" .. locationGroup .. "]]") then | |||
wikiTable = wikiTable .. [=[<tr> | |||
<td>[[]=] .. creatureName .. [=[]] | |||
<td>]=] .. creature.slayer .. [[ | |||
<td>]] .. creature.difficulty .. [[ | |||
<td>]] .. creature.goldvalue .. [[ | |||
<td>]] .. creature.hits .. [[ | |||
<td colspan="2">]] .. creature.minmeleedmg .. creature.maxmeleedmg .. [[ | |||
<td>]] .. creature.wrestling .. [[ | |||
<td>]] .. creature.armor .. creature.armormin .. [[ | |||
<td>]] .. creature.magicresist .. creature.magicresistmin .. [[ | |||
<td>]] .. creature.parry .. [[ | |||
<td>]] .. creature.atkspd .. [[ | |||
<td>]] .. creature.magery .. [[ | |||
<td colspan="2">]] .. creature.minspelldmg .. creature.maxspelldmg .. [[ | |||
<td>]] .. creature.poisontype .. [[ | |||
<td>]] .. creature.poisoning .. [[ | |||
<td>]] .. creature.poisonresist .. creature.poisonresistmin .. [[ | |||
<td>]] .. creature.stealth .. [[ | |||
<td>]] .. creature.ai .. [[ | |||
<td>]] .. creature.speed .. [[ | |||
<td>]] .. creature.uniquescalar | |||
end | |||
end | |||
if position and position and string.find(string.lower(position), "end") then | |||
wikiTable = wikiTable .. "</table>" | |||
end | |||
return wikiTable | |||
end | |||
function p.listFollowerGroup(frame) | |||
local followerArray | |||
local followerGroup = frame.args["group"] | |||
local wikiTable = "" | |||
if string.find(string.lower(followerGroup),"tame") then | |||
followerArray = mw.loadData("Module:TameableCreatureData") | |||
local creatureArray = mw.loadData("Module:WildCreatureData") | |||
wikiTable = [[<table class="wikitable sortable" style="text-align:center"> | |||
<th>Name | |||
<th>Location | |||
<th>Slots | |||
<th>Taming | |||
<th>Class | |||
<th>Hits | |||
<th>Combat | |||
<th colspan="2"> Damage | |||
<th>Wrestling | |||
<th>Armor | |||
<th>Magic Resist | |||
<th>AtkSpd | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Poison Resist | |||
<th>Special Resist | |||
<th>Stealth | |||
<th>Cooldown Ability | |||
<th>Innate Ability | |||
<th>Passive Ability | |||
<th>Underdog Scalar]] | |||
for followerName, follower in pairs(followerArray) do | |||
local creature = creatureArray[followerName] | |||
local cooldownability = follower.cooldownability | |||
local innateability = follower.innateability | |||
local passiveability = follower.passiveability | |||
if type(follower.cooldownability) == "table" then | |||
cooldownability = "" | |||
for i, ability in ipairs(follower.cooldownability) do | |||
if i > 1 then | |||
cooldownability = cooldownability.."," | |||
end | |||
cooldownability = cooldownability..ability | |||
end | |||
end | |||
if type(follower.innateability) == "table" then | |||
innateability = "" | |||
for i, ability in ipairs(follower.innateability) do | |||
if i > 1 then | |||
innateability = innateability.."," | |||
end | |||
innateability = innateability..ability | |||
end | |||
end | |||
if type(follower.passiveability) == "table" then | |||
passiveability = "" | |||
for i, ability in ipairs(follower.passiveability) do | |||
if i > 1 then | |||
passiveability = passiveability.."," | |||
end | |||
passiveability = passiveability..ability | |||
end | |||
end | |||
wikiTable = wikiTable .. [=[<tr> | |||
<td>[[]=] .. followerName .. [=[]] | |||
<td>]=] .. creature.location .. [=[ | |||
<td>]=] .. follower.slots .. [[ | |||
<td>]] .. follower.taming .. [[ | |||
<td>]] .. follower.class .. [[ | |||
<td>]] .. follower.hits .. [[ | |||
<td>]] .. follower.combat .. [[ | |||
<td colspan="2">]] .. follower.mindmg .. follower.maxdmg .. [[ | |||
<td>]] .. follower.wrestling .. [[ | |||
<td>]] .. follower.armor .. [[ | |||
<td>]] .. follower.magicresist .. [[ | |||
<td>]] .. follower.atkspd .. [[ | |||
<td>]] .. follower.poisontype .. [[ | |||
<td>]] .. follower.poisoning .. [[ | |||
<td>]] .. follower.poisonresist .. [[ | |||
<td>]] .. follower.specialresist .. [[ | |||
<td>]] .. follower.stealth .. [[ | |||
<td>]] .. cooldownability .. [[ | |||
<td>]] .. innateability .. [[ | |||
<td>]] .. passiveability .. [[ | |||
<td>]] .. follower.underdogscalar | |||
end | |||
elseif string.find(string.lower(followerGroup),"summon") then | |||
followerArray = mw.loadData("Module:SummonableCreatureData") | |||
wikiTable = [[<table class="wikitable sortable" style="text-align:center"> | |||
<th>Name | |||
<th>Spell | |||
<th>Slots | |||
<th>Type | |||
<th>Hits | |||
<th>Combat | |||
<th colspan="2"> Damage | |||
<th>Wrestling | |||
<th>Armor | |||
<th>Magic Resist | |||
<th>AtkSpd | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Poison Resist | |||
<th>Special Resist | |||
<th>Stealth | |||
<th>Cooldown Ability | |||
<th>Innate Ability | |||
<th>Passive Ability]] | |||
for followerName, follower in pairs(followerArray) do | |||
local cooldownability = follower.cooldownability | |||
local innateability = follower.innateability | |||
local passiveability = follower.passiveability | |||
local summonType | |||
if type(follower.cooldownability) == "table" then | |||
cooldownability = "" | |||
for i, ability in ipairs(follower.cooldownability) do | |||
if i > 1 then | |||
cooldownability = cooldownability.."," | |||
end | |||
cooldownability = cooldownability..ability | |||
end | |||
end | |||
if type(follower.innateability) == "table" then | |||
innateability = "" | |||
for i, ability in ipairs(follower.innateability) do | |||
if i > 1 then | |||
innateability = innateability.."," | |||
end | |||
innateability = innateability..ability | |||
end | |||
end | |||
if type(follower.passiveability) == "table" then | |||
passiveability = "" | |||
for i, ability in ipairs(follower.passiveability) do | |||
if i > 1 then | |||
passiveability = passiveability.."," | |||
end | |||
passiveability = passiveability..ability | |||
end | |||
end | |||
if follower.necro and follower.necro == true then | |||
summonType = "[[Necromancy]]" | |||
else | |||
summonType = "[[Spirit Speak|Regular]]" | |||
end | |||
wikiTable = wikiTable .. [=[<tr> | |||
<td>[[]=] .. followerName .. [=[]] | |||
<td>]=] .. follower.spellname .. [[ | |||
<td>]] .. summonType .. [[ | |||
<td>]] .. follower.slots .. [[ | |||
<td>]] .. follower.hits .. [[ | |||
<td>]] .. follower.combat .. [[ | |||
<td colspan="2">]] .. follower.mindmg .. follower.maxdmg .. [[ | |||
<td>]] .. follower.wrestling .. [[ | |||
<td>]] .. follower.armor .. [[ | |||
<td>]] .. follower.magicresist .. [[ | |||
<td>]] .. follower.atkspd .. [[ | |||
<td>]] .. follower.poisontype .. [[ | |||
<td>]] .. follower.poisoning .. [[ | |||
<td>]] .. follower.poisonresist .. [[ | |||
<td>]] .. follower.specialresist .. [[ | |||
<td>]] .. follower.stealth .. [[ | |||
<td>]] .. cooldownability .. [[ | |||
<td>]] .. innateability .. [[ | |||
<td>]] .. passiveability | |||
end | |||
end | |||
wikiTable = wikiTable .. "</table>" | |||
return wikiTable | |||
end | |||
function p.listBosses(frame) | |||
local creatureArray = mw.loadData("Module:WildCreatureData") | |||
local bossesToList = frame.args[1] -- Main Boss | |||
local typeOfBoss = string.lower(bossesToList) | |||
local wikiTable = [[<table class="wikitable sortable" style="text-align:center"> | |||
<th>Name | |||
<th>Location | |||
<th>Slayer | |||
<th>Difficulty | |||
<th>Base Hits | |||
<th colspan="2">Melee Damage | |||
<th>Wrestling | |||
<th>Armor | |||
<th>Magic Resist | |||
<th>Parry | |||
<th>Magery | |||
<th colspan="2">Spell Damage | |||
<th>Poison | |||
<th>Poisoning | |||
<th>Poison Resist | |||
<th>Stealth]] | |||
for creatureName, creature in pairs(creatureArray) do | |||
if string.lower(creature.bosstype) == typeOfBoss or typeOfBoss == "all" then | |||
if creature.bosstype ~= "" and creature.bosstype ~= "Boss Summon" then | |||
local imageType = ".jpg" | |||
local imagePrefix = "" | |||
if creature.bosstype == "Main Boss" then | |||
imageType = ".gif" | |||
elseif creature.bosstype == "Shrine Boss" then | |||
imageType = ".png" | |||
elseif creature.bosstype == "Omni Boss" then | |||
imageType = ".gif" | |||
imagePrefix = "omni" | |||
end | |||
local formmatedName = string.gsub(string.lower(creatureName), "%s+", "") | |||
local imageName = imagePrefix .. string.gsub(formmatedName, "%p+", "") .. imageType | |||
wikiTable = wikiTable .. [[<tr> | |||
<td>]] .. "[[File:" .. imageName .. "|link=" .. creatureName .. "]]<br />[[" .. creatureName .. [=[]] | |||
<td>]=] .. creature.location .. [=[ | |||
<td>]=] .. creature.slayer .. [[ | |||
<td>]] .. creature.difficulty .. [[ | |||
<td>]] .. creature.hits .. [[ | |||
<td colspan="2">]] .. creature.minmeleedmg .. creature.maxmeleedmg .. [[ | |||
<td>]] .. creature.wrestling .. [[ | |||
<td>]] .. creature.armor .. creature.armormin .. [[ | |||
<td>]] .. creature.magicresist .. creature.magicresistmin .. [[ | |||
<td>]] .. creature.parry .. [[ | |||
<td>]] .. creature.magery .. [[ | |||
<td colspan="2">]] .. creature.minspelldmg .. creature.maxspelldmg .. [[ | |||
<td>]] .. creature.poisontype .. [[ | |||
<td>]] .. creature.poisoning .. [[ | |||
<td>]] .. creature.poisonresist .. creature.poisonresistmin .. [[ | |||
<td>]] .. creature.stealth | |||
end | |||
end | |||
end | |||
wikiTable = wikiTable .. "</table>" | |||
return wikiTable | |||
end | |||
function p.listAbilities(frame) | |||
local tameableArray = mw.loadData("Module:TameableCreatureData") | |||
local summonArray = mw.loadData("Module:SummonableCreatureData") | |||
local abilityArray = mw.loadData("Module:FollowerAbilityData") | |||
local creature = frame.args[1] -- Warpig | |||
local followerType = frame.args[2] -- Tameable/Summon | |||
local follower = "" | |||
if string.lower(followerType) ~= "summon" and tameableArray[creature] then | |||
follower = tameableArray[creature] | |||
elseif string.lower(followerType) ~= "tameable" and summonArray[creature] then | |||
follower = summonArray[creature] | |||
else | |||
follower = "undefined" | |||
end | |||
local wikiTable = "" | |||
if follower and follower ~= "undefined" then -- List a follower's abilities if a follower is given | |||
wikiTable = [[<table class="wikitable" style="text-align:center"> | |||
<th>Ability | |||
<th>Type | |||
<th>Description]] | |||
local abilities = {} | |||
for i, creatureAbility in pairs({ follower.cooldownability, follower.innateability, follower.passiveability }) do | |||
if creatureAbility and creatureAbility ~= "" and type(creatureAbility) == "table" then | |||
for index, ability in pairs(creatureAbility) do | |||
table.insert(abilities, ability) | |||
end | |||
elseif creatureAbility and creatureAbility ~= "" then | |||
table.insert(abilities, creatureAbility) | |||
end | |||
end | |||
for i, ability in pairs(abilities) do | |||
wikiTable = wikiTable .. [[<tr> | |||
<td>]] .. ability .. [[ | |||
<td>]] .. abilityArray[ability].type .. [[ | |||
<td style="text-align:left">]] .. abilityArray[ability].description | |||
end | |||
elseif follower == "undefined" then -- List all abilities and the followers that have them | |||
wikiTable = [[<table class="wikitable sortable" style="text-align:center"> | |||
<th>Ability | |||
<th>Type | |||
<th>Description | |||
<th>Creatures]] | |||
for abilityName, ability in pairs(abilityArray) do | |||
wikiTable = wikiTable .. [[<tr> | |||
<td>]] .. abilityName .. [[ | |||
<td>]] .. ability.type .. [[ | |||
<td style="text-align:left">]] .. ability.description .. [[<td>]] | |||
-- Find and list any followers with the ability | |||
for i, array in pairs({ tameableArray, summonArray }) do | |||
for followerName, followerStats in pairs(array) do | |||
local followerAbilityType = "" | |||
if ability.type == "Cooldown" then | |||
followerAbilityType = followerStats.cooldownability | |||
elseif ability.type == "Innate" then | |||
followerAbilityType = followerStats.innateability | |||
elseif ability.type == "Passive" then | |||
followerAbilityType = followerStats.passiveability | |||
end | |||
if type(followerAbilityType) == "table" then | |||
for creatureName, value in pairs(followerAbilityType) do | |||
if value == abilityName then | |||
if array == summonArray and tameableArray[followerName] and summonArray[followerName] then | |||
wikiTable = wikiTable .. "[[" .. followerName .. "|"..followerName.." (Summon)]],<br>" | |||
else | |||
wikiTable = wikiTable .. "[[" .. followerName .. "]],<br>" | |||
end | |||
end | |||
end | |||
elseif followerAbilityType == abilityName then | |||
if array == summonArray and tameableArray[followerName] and summonArray[followerName] then | |||
wikiTable = wikiTable .. "[[" .. followerName .. "|"..followerName.." (Summon)]],<br>" | |||
else | |||
wikiTable = wikiTable .. "[[" .. followerName .. "]],<br>" | |||
end | |||
end | |||
end | |||
end | |||
-- Cut out the extra line break | |||
if string.find(wikiTable, "<br>") then | |||
wikiTable = string.reverse(wikiTable) | |||
wikiTable = string.sub(wikiTable, 6) | |||
wikiTable = string.reverse(wikiTable) | |||
end | |||
end | |||
else -- If a follower is given but doesn't exist | |||
return | |||
'<h1 style="color:FireBrick;"><big>Follower Ability Table Template Error: No tamed/summoned follower found by the name "' .. | |||
creature .. '" (Case-sensitive)</big></h1>' | |||
end | |||
wikiTable = wikiTable .. "</table>" | |||
return wikiTable | |||
end | |||
function p.summonStatIncrease(frame) | |||
local summonArray = mw.loadData("Module:SummonableCreatureData") | |||
local summonName = frame.args[1] -- A summon given to display, defaults to {{PAGENAME}} | |||
local wikiTable = '<table class="wikitable" style="text-align:center">' | |||
local summon = summonArray[summonName] | |||
if summon then | |||
local stats = { | |||
["hits"] = summon.unformattedhits, | |||
["atkspd"] = summon.atkspd, | |||
["mindmg"] = summon.mindmg, | |||
["maxdmg"] = summon.maxdmg, | |||
["wrestling"] = summon.wrestling, | |||
["armor"] = summon.armor, | |||
["magicresist"] = summon.magicresist | |||
} | |||
for statName, stat in pairs(stats) do | |||
if type(stats[statName]) == "string" then | |||
stats[statName] = 0 | |||
end | |||
end | |||
wikiTable = wikiTable .. [=[<th colspan="6">[[File:]=] .. summon.spellicon .. [=[.png|center|link=]]<br>[[]=] .. summonName .. [=[]] | |||
<tr> | |||
<th rowspan="2">Stat | |||
<th colspan="5"> Spirit Speak Skill | |||
<tr> | |||
<th>Base | |||
<th>80 | |||
<th>100 | |||
<th>120 | |||
<th>150 | |||
<tr> | |||
<th>Hits | |||
<td>]=] .. stats.hits .. [[ | |||
<td>]] .. stats.hits * 1.5 * (80 / 100) .. [[ | |||
<td>]] .. stats.hits * 1.5 * (100 / 100) .. [[ | |||
<td>]] .. stats.hits * 1.5 * (120 / 100) .. [[ | |||
<td>]] .. stats.hits * 1.5 * (150 / 100) .. [[ | |||
<tr> | |||
<th>Attack Speed | |||
<td>]] .. stats.atkspd .. [[ | |||
<td>]] .. stats.atkspd * 1.125 * (80 / 100) .. [[ | |||
<td>]] .. stats.atkspd * 1.125 * (100 / 100) .. [[ | |||
<td>]] .. stats.atkspd * 1.125 * (120 / 100) .. [[ | |||
<td>]] .. stats.atkspd * 1.125 * (150 / 100) .. [[ | |||
<tr> | |||
<th>]] .. summon.combat .. [[ Damage | |||
<td>]] .. stats.mindmg .. " - " .. stats.maxdmg .. [[ | |||
<td>]] .. stats.mindmg * 1.25 * (80 / 100) .. " - " .. stats.maxdmg * 1.25 * (80 / 100) .. [[ | |||
<td>]] .. stats.mindmg * 1.25 * (100 / 100) .. " - " .. stats.maxdmg * 1.25 * (100 / 100) .. [[ | |||
<td>]] .. stats.mindmg * 1.25 * (120 / 100) .. " - " .. stats.maxdmg * 1.25 * (120 / 100) .. [[ | |||
<td>]] .. stats.mindmg * 1.25 * (150 / 100) .. " - " .. stats.maxdmg * 1.25 * (150 / 100) .. [[ | |||
<tr> | |||
<th>Wrestling | |||
<td>]] .. stats.wrestling .. [[ | |||
<td>]] .. stats.wrestling * 1.25 * (80 / 100) .. [[ | |||
<td>]] .. stats.wrestling * 1.25 * (100 / 100) .. [[ | |||
<td>]] .. stats.wrestling * 1.25 * (120 / 100) .. [[ | |||
<td>]] .. stats.wrestling * 1.25 * (150 / 100) .. [[ | |||
<tr> | |||
<th>Armor | |||
<td>]] .. stats.armor .. [[ | |||
<td>]] .. stats.armor + (25 * (80 / 100)) .. [[ | |||
<td>]] .. stats.armor + (25 * (100 / 100)) .. [[ | |||
<td>]] .. stats.armor + (25 * (120 / 100)) .. [[ | |||
<td>]] .. stats.armor + (25 * (150 / 100)) .. [[ | |||
<tr> | |||
<th>Magic Resist | |||
<td>]] .. stats.magicresist .. [[ | |||
<td>]] .. stats.magicresist + (50 * (80 / 100)) .. [[ | |||
<td>]] .. stats.magicresist + (50 * (100 / 100)) .. [[ | |||
<td>]] .. stats.magicresist + (50 * (120 / 100)) .. [[ | |||
<td>]] .. stats.magicresist + (50 * (150 / 100)) .. [[ | |||
</table>]] | |||
return wikiTable | |||
else | |||
return '<h1 style="color:FireBrick;"><big>Summon Stat Table Template Error: No summoned follower found by the name "' .. | |||
summonName .. '" (Case-sensitive)</big></h1>' | |||
end | |||
end | |||
function p.checkCreatureValue(frame) | |||
local creatureName = frame.args[1] -- Name of the creature to check for | |||
local creatureType = frame.args[2] -- Wild/Tameable/Summonable/Ships/Strangelands, defaults to Wild | |||
local creatureStat = frame.args[3] -- location/name/slayer | |||
local value = frame.args[4] -- Aegis Keep/Molten Mongbat/Deamonic/true, defaults to true (has value) | |||
local valueIfTrue = frame.args[5] | |||
local valueIfFalse = frame.args[6] | |||
if not creatureStat or creatureStat == "" then | |||
creatureStat = "name" | |||
end | |||
local dataSource | |||
-- Set the requested data source | |||
if creatureType and string.lower(creatureType) == "tameable" then | |||
dataSource = mw.loadData("Module:TameableCreatureData") | |||
elseif creatureType and string.lower(creatureType) == "summonable" then | |||
dataSource = mw.loadData("Module:SummonableCreatureData") | |||
elseif creatureType and string.lower(creatureType) == "ships" then | |||
dataSource = mw.loadData("Module:ShipCreatureData") | |||
elseif creatureType and string.lower(creatureType) == "tameable" then | |||
dataSource = mw.loadData("Module:TameableCreatureData") | |||
elseif creatureType and string.lower(creatureType) == "strangelands" then | |||
dataSource = mw.loadData("Module:StrangelandsCreatureData") | |||
else | |||
dataSource = mw.loadData("Module:WildCreatureData") | |||
end | |||
local creature = dataSource[creatureName] | |||
if creature then | |||
local stat = creature[creatureStat] | |||
if creatureStat == "name" then | |||
return true -- "creature match found in datasource" | |||
elseif not value or value == "" then | |||
if stat then | |||
return valueIfTrue -- "stat exists for this creature" | |||
else | |||
return valueIfFalse -- "stat does not exist for this creature" | |||
end | |||
else | |||
if stat and string.lower(stat) == string.lower(value) then | |||
return valueIfTrue -- "stat is equal to the value" | |||
else | |||
return valueIfFalse -- "stat is not equal to the value or doesn't exist" | |||
end | |||
end | |||
else | |||
return valueIfFalse -- "creature not found in datasource" | |||
end | |||
end | |||
function p.creaturePage(frame) | |||
local creature = frame.args[1] | |||
local imageOverride = frame.args[2] | |||
local page = "" | |||
if imageOverride and imageOverride ~= "" then | |||
imageOverride = "|image="..imageOverride | |||
end | |||
local creatureArray = mw.loadData("Module:WildCreatureData") | |||
local tameableArray = mw.loadData("Module:TameableCreatureData") | |||
local summonArray = mw.loadData("Module:SummonableCreatureData") | |||
local strangelandsArray = mw.loadData("Module:StrangelandsCreatureData") | |||
local shipsArray = mw.loadData("Module:ShipCreatureData") | |||
if creatureArray[creature] then | |||
page = page.."{{CreatureTable"..imageOverride.."}}\n" | |||
end | |||
if shipsArray[creature] then | |||
page = page.."== Ship Creature Stats ==\n{{CreatureTable|type=ships"..imageOverride.."}}\n" | |||
end | |||
if tameableArray[creature] then | |||
page = page.."== Tameable Stats ==\n{{FollowerTable|type=tameable"..imageOverride.."}}<br>{{FollowerAbilities|type=tameable}}<br>{{TamedScalarLevels}}\n" | |||
end | |||
if summonArray[creature] then | |||
page = page.."== Summoned Creature Stats ==\n{{FollowerTable|type=summon"..imageOverride.."}}<br>{{FollowerAbilities|type=summon}}<br>{{SummonStatIncrease}}\n" | |||
end | |||
if strangelandsArray[creature] then | |||
page = page.."== Strangelands Creature Stats==\n{{CreatureTable|type=strangelands"..imageOverride.."}}\n" | |||
end | |||
return page | |||
end | |||
function p.test() | |||
return "{{CreatureTable}}" | |||
end | |||
return p |
Revision as of 19:52, 10 November 2024
local p = {}
function p.singleCreature(frame)
local creatureName = frame.args[1] local creatureType = frame.args[2] local imageOverride = frame.args[3] local namespace = frame.args[4] local iconImage = ""
local wikiTable = "" local array -- Change the array being pulled from if a valid creatureType is provided, also formats the creatureType to be used in Err messages and sets an iconImage if string.find(string.lower(creatureType),"strangeland") then array = mw.loadData("Module:StrangelandsCreatureData") creatureType = " " .. creatureType .. ""
iconImage = "
"
elseif string.find(string.lower(creatureType),"ship") then array = mw.loadData("Module:ShipCreatureData") creatureType = " " .. creatureType .. ""
iconImage = "
"
else array = mw.loadData("Module:WildCreatureData") -- Array containing wild creature data from another module creatureType = " wild " end
local creature = array[creatureName]
if creature then local formmatedName = string.gsub(string.lower(creatureName), "%s+", "") local imageName = string.gsub(formmatedName, "%p+", "") .. ".jpg"
if imageOverride and imageOverride ~= "" then imageName = imageOverride end
-- Automaticly add categories if namespace == "" or namespace == nil then wikiTable = wikiTable .. "" wikiTable = wikiTable .. ""
if creature.bosstype ~= "" then wikiTable = wikiTable .. "" end end
wikiTable = [=[
[[File:]=] ..
imageName .. [=[|link=]] | ]=] ..
iconImage .. [=[ | |||||||
---|---|---|---|---|---|---|---|---|
[[]=] .. creatureName .. [=[]] | ||||||||
Slayer | Difficulty | Gold Value | Hits | Melee Damage | Wrestling | Armor | Magic Resist | |
]=] .. creature.slayer .. [=[ | ]=] .. creature.difficulty .. [=[ | ]=] .. creature.goldvalue .. [=[ | ]=] .. creature.hits .. [=[ | ]=] .. creature.minmeleedmg .. creature.maxmeleedmg .. [=[ | ]=] .. creature.wrestling .. [=[ | ]=] .. creature.armor .. creature.armormin .. [=[ | ]=] .. creature.magicresist .. creature.magicresistmin .. [=[ | |
Parry | Attack Speed | Magery | Spell Damage | Poison | Poison Resist | Stealth | AI | |
]=] .. creature.parry .. [=[ | ]=] .. creature.atkspd .. [=[ | ]=] .. creature.magery .. [=[ | ]=] .. creature.minspelldmg .. creature.maxspelldmg .. [=[ | ]=] .. creature.poisontype .. [=[ | ]=] .. creature.poisonresist .. creature.poisonresistmin .. [=[ | ]=] .. creature.stealth .. [=[ | ]=] .. creature.ai .. " |
"
return wikiTable else
return '
Creature Table Template Error: No' .. creatureType .. 'creature by the name "' .. creatureName .. '" was found (Case-sensitive)
'
end
end
function p.singleFollower(frame)
local creatureArray = mw.loadData("Module:WildCreatureData") local tameableArray = mw.loadData("Module:TameableCreatureData") local summonArray = mw.loadData("Module:SummonableCreatureData")
-- Parameters passed when the function is invoked local followerName = frame.args[1] -- Sun Wyrm local followerType = frame.args[2] -- tame/summon local imageOverride = frame.args[3] -- sunwyrm.png local namespace = frame.args[4] -- Template
local wikiTable = ""
local creature = creatureArray[followerName] local tameable = tameableArray[followerName] local summon = summonArray[followerName]
if not string.find(string.lower(followerType),"summon") and tameable then local formmatedName = string.gsub(string.lower(followerName), "%s+", "") local imageName = string.gsub(formmatedName, "%p+", "") .. ".jpg"
if imageOverride and imageOverride ~= "" then imageName = imageOverride end
-- Automaticlly add categories if namespace == "" or namespace == nil then if creature then wikiTable = wikiTable .. "" wikiTable = wikiTable .. "" end wikiTable = wikiTable .. "" wikiTable = wikiTable .. "" wikiTable = wikiTable .. "" end
wikiTable = [=[
[[File:]=] ..
imageName .. [=[|link=]] | [[File:icon-]=] ..
string.lower(tameable.class) .. [=[class.png|link=Animal_Taming#Tamed_Classes|]=] .. tameable.class .. [=[ Class|right]] | ||||||
---|---|---|---|---|---|---|---|
[[]=] .. followerName .. [=[]] | |||||||
Min Taming | Control Slots | Hits | Class | ]=] .. tameable.combat .. [=[ Damage | Armor | Wrestling | |
]=] .. tameable.taming .. [=[ | ]=] .. tameable.slots .. [=[ | ]=] .. tameable.hits .. [=[ | ]=] .. tameable.class .. [=[ | ]=] .. tameable.mindmg .. " - " .. tameable.maxdmg .. [=[ | ]=] .. tameable.armor .. tameable.armormin .. [=[ | ]=] .. tameable.wrestling .. [=[ | |
Attack Speed | Magic Resist | Poison Resist | Special Resist | Poison | Poisoning | Stealth | Underdog Scalar |
]=] .. tameable.atkspd .. [=[ | ]=] .. tameable.magicresist .. tameable.magicresistmin .. [=[ | ]=] .. tameable.poisonresist .. tameable.poisonresistmin .. [=[ | ]=] .. tameable.specialresist .. [=[ | ]=] .. tameable.poisontype .. [=[ | ]=] .. tameable.poisoning .. [=[ | ]=] .. tameable.stealth .. [=[ | ]=] .. tameable.underdogscalar .. " |
"
return wikiTable elseif not string.find(string.lower(followerType),"tame") and summon then local formmatedName = string.gsub(string.lower(followerName), "%s+", "") local imageName = string.gsub(formmatedName, "%p+", "") .. ".jpg" local spelliconImage = "[[File:" .. summon.spellicon .. ".png|44px|link=Spirit Speak#" .. summon.spellname .. "|" .. summon.spellname .. summon.tometier .. "|right]]"
if summon.necro == true then spelliconImage = spelliconImage ..
"
"
end
if imageOverride and imageOverride ~= "" then imageName = imageOverride end
-- Automaticlly add categories if namespace == "" or namespace == nil then if creature then wikiTable = wikiTable .. "" wikiTable = wikiTable .. "" end wikiTable = wikiTable .. "" end
wikiTable = [=[
[[File:]=] ..
imageName .. [=[|link=]] | ]=] ..
spelliconImage .. [=[ | |||||
---|---|---|---|---|---|---|
[[]=] .. followerName .. [=[]] | ||||||
Spell | Control Slots | Hits | ]=] .. summon.combat .. [=[ Damage | Armor | Wrestling | |
]=] .. summon.spellname .. summon.tometier .. [=[ | ]=] .. summon.slots .. [=[ | ]=] .. summon.hits .. [=[ | ]=] .. summon.mindmg .. " - " .. summon.maxdmg .. [=[ | ]=] .. summon.armor .. summon.armormin .. [=[ | ]=] .. summon.wrestling .. [=[ | |
Attack Speed | Magic Resist | Poison Resist | Special Resist | Poison | Poisoning | Stealth |
]=] .. summon.atkspd .. [=[ | ]=] .. summon.magicresist .. summon.magicresistmin .. [=[ | ]=] .. summon.poisonresist .. summon.poisonresistmin .. [=[ | ]=] .. summon.specialresist .. [=[ | ]=] .. summon.poisontype .. [=[ | ]=] .. summon.poisoning .. [=[ | ]=] .. summon.stealth .. " |
"
return wikiTable else
return '
FollowerTable Template Error: No tamed/summoned follower found by the name "' .. followerName .. '" (Case-sensitive)
'
end
end
function p.listSlayerGroup(frame)
local creatureArray = mw.loadData("Module:WildCreatureData")
local slayerGroup = frame.args[1] local position = frame.args[2] local wikiTable = ""
if position and string.find(string.lower(position), "start") then
wikiTable = [[
Name | Location | Slayer | Difficulty | Gold Value | Hits | Melee Dmg | Wrestling | Armor | Magic Resist | Parry | AtkSpd | Magery | Spell Dmg | Poison | Poisoning | Poison Resist | Stealth | AI | Speed | Unique Scalar]]
else wikiTable = "" end for creatureName, creature in pairs(creatureArray) do if creature.slayer == slayerGroup thenwikiTable = wikiTable .. [=[ | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[[]=] .. creatureName .. [=[]] | ]=] .. creature.location .. [=[ | ]=] .. creature.slayer .. [[ | ]] .. creature.difficulty .. [[ | ]] .. creature.goldvalue .. [[ | ]] .. creature.hits .. [[ | ]] .. creature.minmeleedmg .. creature.maxmeleedmg .. [[ | ]] .. creature.wrestling .. [[ | ]] .. creature.armor .. creature.armormin .. [[ | ]] .. creature.magicresist .. creature.magicresistmin .. [[ | ]] .. creature.parry .. [[ | ]] .. creature.atkspd .. [[ | ]] .. creature.magery .. [[ | ]] .. creature.minspelldmg .. creature.maxspelldmg .. [[ | ]] .. creature.poisontype .. [[ | ]] .. creature.poisoning .. [[ | ]] .. creature.poisonresist .. creature.poisonresistmin .. [[ | ]] .. creature.stealth .. [[ | ]] .. creature.ai .. [[ | ]] .. creature.speed .. [[ | ]] .. creature.uniquescalar
end end if position and position and string.find(string.lower(position), "end") thenwikiTable = wikiTable .. " |
"
end return wikiTable
end
function p.listLocationGroup(frame)
local locationGroup = frame.args[1] local position = frame.args[2] local wikiTable = ""
local array -- Change the array being pulled from if a valid creatureType is provided, also formats the creatureType to be used in Err messages and sets an iconImage if string.find(string.lower(locationGroup),"strangeland") then array = mw.loadData("Module:StrangelandsCreatureData") elseif string.find(string.lower(locationGroup),"ship") then array = mw.loadData("Module:ShipCreatureData") else array = mw.loadData("Module:WildCreatureData") end
if position and string.find(string.lower(position), "start") then
wikiTable = [[
Name | Slayer | Difficulty | Gold Value | Hits | Melee Dmg | Wrestling | Armor | Magic Resist | Parry | AtkSpd | Magery | Spell Dmg | Poison | Poisoning | Poison Resist | Stealth | AI | Speed | Unique Scalar]]
end for creatureName, creature in pairs(array) do if string.find(creature.location, "" .. locationGroup .. "") thenwikiTable = wikiTable .. [=[ | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[[]=] .. creatureName .. [=[]] | ]=] .. creature.slayer .. [[ | ]] .. creature.difficulty .. [[ | ]] .. creature.goldvalue .. [[ | ]] .. creature.hits .. [[ | ]] .. creature.minmeleedmg .. creature.maxmeleedmg .. [[ | ]] .. creature.wrestling .. [[ | ]] .. creature.armor .. creature.armormin .. [[ | ]] .. creature.magicresist .. creature.magicresistmin .. [[ | ]] .. creature.parry .. [[ | ]] .. creature.atkspd .. [[ | ]] .. creature.magery .. [[ | ]] .. creature.minspelldmg .. creature.maxspelldmg .. [[ | ]] .. creature.poisontype .. [[ | ]] .. creature.poisoning .. [[ | ]] .. creature.poisonresist .. creature.poisonresistmin .. [[ | ]] .. creature.stealth .. [[ | ]] .. creature.ai .. [[ | ]] .. creature.speed .. [[ | ]] .. creature.uniquescalar
end end if position and position and string.find(string.lower(position), "end") thenwikiTable = wikiTable .. " |
"
end
return wikiTable
end
function p.listFollowerGroup(frame)
local followerArray
local followerGroup = frame.args["group"] local wikiTable = ""
if string.find(string.lower(followerGroup),"tame") then followerArray = mw.loadData("Module:TameableCreatureData") local creatureArray = mw.loadData("Module:WildCreatureData")
wikiTable = [[
Name | Location | Slots | Taming | Class | Hits | Combat | Damage | Wrestling | Armor | Magic Resist | AtkSpd | Poison | Poisoning | Poison Resist | Special Resist | Stealth | Cooldown Ability | Innate Ability | Passive Ability | Underdog Scalar]]
for followerName, follower in pairs(followerArray) do local creature = creatureArray[followerName] local cooldownability = follower.cooldownability local innateability = follower.innateability local passiveability = follower.passiveability if type(follower.cooldownability) == "table" then cooldownability = "" for i, ability in ipairs(follower.cooldownability) do if i > 1 then cooldownability = cooldownability.."," end cooldownability = cooldownability..ability end end if type(follower.innateability) == "table" then innateability = "" for i, ability in ipairs(follower.innateability) do if i > 1 then innateability = innateability.."," end innateability = innateability..ability end end if type(follower.passiveability) == "table" then passiveability = "" for i, ability in ipairs(follower.passiveability) do if i > 1 then passiveability = passiveability.."," end passiveability = passiveability..ability end endwikiTable = wikiTable .. [=[ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[[]=] .. followerName .. [=[]] | ]=] .. creature.location .. [=[ | ]=] .. follower.slots .. [[ | ]] .. follower.taming .. [[ | ]] .. follower.class .. [[ | ]] .. follower.hits .. [[ | ]] .. follower.combat .. [[ | ]] .. follower.mindmg .. follower.maxdmg .. [[ | ]] .. follower.wrestling .. [[ | ]] .. follower.armor .. [[ | ]] .. follower.magicresist .. [[ | ]] .. follower.atkspd .. [[ | ]] .. follower.poisontype .. [[ | ]] .. follower.poisoning .. [[ | ]] .. follower.poisonresist .. [[ | ]] .. follower.specialresist .. [[ | ]] .. follower.stealth .. [[ | ]] .. cooldownability .. [[ | ]] .. innateability .. [[ | ]] .. passiveability .. [[ | ]] .. follower.underdogscalar
end elseif string.find(string.lower(followerGroup),"summon") then followerArray = mw.loadData("Module:SummonableCreatureData")wikiTable = [[
return wikiTable end function p.listBosses(frame) local creatureArray = mw.loadData("Module:WildCreatureData") local bossesToList = frame.args[1] -- Main Boss local typeOfBoss = string.lower(bossesToList)local wikiTable = [[
return wikiTable end function p.listAbilities(frame) local tameableArray = mw.loadData("Module:TameableCreatureData") local summonArray = mw.loadData("Module:SummonableCreatureData") local abilityArray = mw.loadData("Module:FollowerAbilityData") local creature = frame.args[1] -- Warpig local followerType = frame.args[2] -- Tameable/Summon local follower = "" if string.lower(followerType) ~= "summon" and tameableArray[creature] then follower = tameableArray[creature] elseif string.lower(followerType) ~= "tameable" and summonArray[creature] then follower = summonArray[creature] else follower = "undefined" end local wikiTable = "" if follower and follower ~= "undefined" then -- List a follower's abilities if a follower is givenwikiTable = [[
|