Editing Module:Infobox Skill

From Eco - English Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
-- Credit: Original Infobox (now known as Infobox_Item) created by Pradoxzon was then edited by Nesphit and TreeNuts0. Fyre (FishAus) and Scotty (ZeelNightwolf) further edited the Infobox_Item. They then duplicated and used as a base for Infobox_Skill, Infobox_Plant, and Infobox_Animal.
local p = {}
local p = {}
local Utils = require('Module:Utils')


-- Grabs args from the parent frame
-- Grabs args from the parent frame
Line 20: Line 17:
end
end


-- Main entry point for the Module
 
function p.SkillMain()
-- Build an Infobox_Skill
    -- get args from the Template
function skillBox( args, skillData)
     local args = norm()
    -- check that all necessary arguments are passed correctly
     if args.name == nil or args.name == '' then
        return '\'name\' must be specified.'
    end
      
      
-- create values outside of if statements to ensure they are available to whole function
local skill = args.name
local skills = ''
 
local check = ''
local skillimagename = string.gsub(skill, ' ', '')
local skillTable = skillData.skills[skill]
if skillTable == nil then
            if item ~= nil then
return item .. ' could not be found in Module:Skills.'
            end
end   
     -- assign variables for skill or talent whatever is passed. Skill has priority so if both are passed only skill will continue.
     -- string used to build the infobox
     if args.skill ~= nil then
     local infobox = '{| class=\"infobox\"\n'
        skills = args.skill
   
        check = 'skill'
    -- name of the skill
     elseif args.talent ~= nil then
     infobox = infobox .. '|- style=\"background-color: darkred; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skill .. '</big>\'\'\'\n'
        skills = args.talent
     
        check = 'talent'
     -- Prof,Spec,Skill box
    end
     infobox = infobox .. '|- style=\"text-align: center; background-color: #af8d33;\"\n| colspan=\"2\"'
 
    if skillTable ~= nil then
-- check to see if skills was actually passed in
        if skillTable.root == true then
if skills == '' then
            infobox = infobox .. '| \'\'\'Profession\'\'\'\n'
return 'skill or talent must be specified.'
         elseif skillTable.specialty == true then
    end
             infobox = infobox .. '| \'\'\'Specialty\'\'\'\n'
 
         else  
local skillData = {}
             infobox = infobox .. '| \'\'\'Skill\'\'\'\n'    
local skillTable = {}
 
     -- checks if skill  and assigns correct modules based on check
     if check == 'skill' then
        skillData = require( "Module:SkillData" )
        skillTable = skillData.skills[skills]
    else
        skillData = require( "Module:TalentData" )
        skillTable = skillData.talents[skills]
    end
 
    -- checks if skills can be found in plant data or tree data based on what was requested
    if skillTable == {} then
         if check == 'skill' then
             return skills .. ' could not be found in Module:Skills.'
         else
             return skills .. ' could not be found in Module:TalentData.'
         end
         end
     end
     end
 
    -- From now on using skillsTable."KeyValue" will return the value from that key. for most things a check for skills type is not necessary
        -- Skill Icon Image
 
     local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. skillimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_icon]]'
-- Build an Infobox_Plant
     if mw.title.makeTitle('File', skillimagename .. '_Icon.png').file.exists then
-- string used to build the infobox
         image = skillimagename .. '_Icon.png'
     local infobox = '{| class=\"infobox\"\n'
     elseif mw.title.makeTitle('File', skillimagename .. '_Icon.jpg').file.exists then
 
         image = skillimagename .. '_Icon.jpg'
    -- name of the skill/talent
  infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skills .. '</big>\'\'\'\n'
      infobox = infobox .. '|- style=\"text-align: center;color: white; background-color: goldenrod;\"\n| colspan=\"2\"'
     if skillTable.root == true then
        infobox = infobox .. '| \'\'\'Profession\'\'\'[[Category:Profession]]\n'
    elseif skillTable.specialty == true then
         infobox = infobox .. '| \'\'\'Specialty\'\'\'[[Category:Specialty]]\n'
     elseif skillTable.group == 'Talents' then
        infobox = infobox .. '| \'\'\'Talent\'\'\'[[Category:Talent]]\n' 
else
         infobox = infobox .. '|\n'
     end
     end
 
   
-- Skill or Talent Image
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|frameless|95px]]\n'
local SkillIcon = Utils.checkImage(skillTable.skillID)
if check == 'skill' then
  -- 'Description' section header
        infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. SkillIcon .. '|center|link=]] \n'
     infobox = infobox .. '|- style=\"background-color: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n'
 
end
 
-- 'Description' section header
     infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n'
if skillTable.description == nil then
if skillTable.description == nil then
Line 102: Line 75:
end
end


--SKILL
if check == 'skill' then
  -- 'Related Skills' section header
  -- 'Skill Information' section header
    infobox = infobox .. '|- style=\"background-color: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'Related Skills\'\'\'\n'
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Skill Information\'\'\'\n'
-- Professsion  .rootSkill
if skillTable.rootSkill ~= nil then
        infobox = infobox .. '|-\n| Profession:\n| style=\"text-align: right;\" | ' .. skillTable.rootSkill .. '\n'
    end
-- Specialty    .specialitySkill
if skillTable.specialitySkill ~= nil then
        infobox = infobox .. '|-\n| Specialty:\n| style=\"text-align: right;\" | ' .. skillTable.specialitySkill .. '\n'
    end
-- Skills Required .prerequisites
    if skillTable.prerequisites ~= nil then
        infobox = infobox .. '|-\n| Skills Required:\n| style=\"text-align: right;\" |[[ ' .. skillTable.prerequisites .. ']]\n'
    end
-- Leads to  childSkills
    if skillTable.childSkills ~= nil then
        infobox = infobox .. '|-\n| Leads to:\n| style=\"text-align: right;\" | ' .. skillTable.childSkills .. '\n'
    end 
 
  -- 'Skill Information' section header
    infobox = infobox .. '|- style=\"background-color: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'Skill Information\'\'\'\n'
-- maxlevel .maxLevel
    if skillTable.maxLevel ~= nil then
        infobox = infobox .. '|-\n| Max Level:\n| style=\"text-align: right;\" | Level ' .. skillTable.maxLevel .. '\n'
    end
-- Professsion  .rootSkill
-- items given .itemsGiven
if skillTable.rootSkill ~= nil then
    if skillTable.itemsGiven ~= nil then
infobox = infobox .. '|-\n| Profession:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.rootSkill .. '\n'
        infobox = infobox .. '|-\n| Items Given:\n| style=\"text-align: right;\" | ' .. skillTable.itemsGiven .. '\n'
end
    end
    -- 'IDs' section header
    infobox = infobox .. '|- style=\"background-color: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n'
   
    -- skill id (type)
    infobox = infobox .. '|- valign=\"center\"\n| Item ID:\n| style=\"text-align: right;\" | ' .. skillTable.skillID .. '\n'
   
    -- id number (type id)
    infobox = infobox .. '|- valign=\"center\"\n| ID Number:\n| style=\"text-align: right;\" | ' .. skillTable.skillIDNum .. '\n'
-- Specialty    .specialitySkill
if skillTable.specialitySkill ~= nil then
infobox = infobox .. '|-\n| Specialty:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.specialitySkill .. '\n'
end
-- Skills Required .prerequisites
if skillTable.prerequisites ~= nil then
infobox = infobox .. '|-\n| Skills Required:\n| style=\"text-align: right; padding: 3px;\" |[[ ' .. skillTable.prerequisites .. ']]\n'
end
-- Leads to  childSkills
        if skillTable.childSkills ~= nil then
            for i,v in pairs(skillTable.childSkills) do
infobox = infobox .. '|-\n| Leads to:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.childSkills[i] .. '</br>\n'
            end
        end
-- maxlevel .maxLevel
if skillTable.maxLevel ~= nil then
infobox = infobox .. '|-\n| Max Level:\n| style=\"text-align: right; padding: 3px;\" | Level ' .. skillTable.maxLevel .. '\n'
end
-- items given .itemsGiven
if skillTable.itemsGiven ~= nil then
infobox = infobox .. '|-\n| Items Given:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.itemsGiven .. '\n'
end
-- Related Talents
if skillTable.talents ~= nil then
local listTalents3 = ''
local listTalents6 = ''
local talent3 = skillTable.talents.level3
local talent6 = skillTable.talents.level6
-- for each item in the listTalents3 (b is position, c is value)
            if talent3 ~= nil then
for b,c in ipairs(talent3) do
--if not these tags listed here
if c ~='[[]]'  then
-- add the tag to the list
listTalents3 = listTalents3 .. c
end
-- if not the last item in the list
if (c ~= talent3[#talent3]) then
-- add a comma
listTalents3 = listTalents3 .. ', </br>'
end
end
            end
-- for each item in the listTalents6 (e is position, d is value)           
            if talent6 ~= nil then
for e,d in ipairs(talent6) do
--if not these tags listed here
if d ~='[[]]'  then
-- add the tag to the list
listTalents6 = listTalents6 .. d
end
-- if not the last item in the list
if (d ~= talent6[#talent6]) then
-- add a comma
listTalents6 = listTalents6 .. ', </br>'
end
end
            end
-- 'Talent Information' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Talent Information\'\'\'\n'
infobox = infobox .. '|- style=\"border-bottom: solid #7BC2CE;\"\n| Level 3 Talents:\n| style=\"text-align: right; padding: 3px;\" | ' .. listTalents3 .. ' \n'
infobox = infobox .. '|-\n| Level 6 Talents:\n| style=\"text-align: right; padding: 3px;\" | ' .. listTalents6 .. ' \n'
end
-- 'IDs' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n'
-- skill id (type)
infobox = infobox .. '|- valign=\"center\"\n| Item ID:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillID .. '\n'
end
--TALENT
if check == 'talent' then
-- 'Talent Information' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Talent Information\'\'\'\n'
-- Talent Type
if skillTable.talentType ~= nil then
infobox = infobox .. '|-\n| Talent Type:\n| style=\"text-align: right; padding: 3px;\" |[[' .. skillTable.talentType .. ']]\n'
end
-- Skill Needed
if skillTable.owningSkill ~= nil then
infobox = infobox .. '|-\n| Skill Needed:\n| style=\"text-align: right; padding: 3px;\" |[[' .. skillTable.owningSkill .. ']]\n'
end
-- Talents Active at Level
if skillTable.activeLevel ~= nil then
infobox = infobox .. '|-\n| Active at Level:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.activeLevel .. '\n'
end
end
     infobox = infobox .. '|}'
     infobox = infobox .. '|}'
     return infobox
     return infobox
end
-- Main entry point for the Module
function p.SkillMain()
    -- get args from the Template
    local args = norm()
   
    -- get skill data
    local skillData = require( "Module:Skills" )
   
    return skillBox( args, skillData)
   
end
end


return p
return p
Please note that all contributions to Eco - English Wiki are considered to be released under the CC BY-NC-SA 4.0 (see Eco:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, please solve the following captcha:

Cancel Editing help (opens in new window)

Template used on this page: