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 = {}


Line 19: Line 17:
end
end


-- Main entry point for the Module
function p.SkillMain()
    -- get args from the Template
    local args = norm()
   
-- create values outside of if statements to ensure they are available to whole function
local skills = ''
local check = ''
    -- assign variables for skill or talent whatever is passed. Skill has priority so if both are passed only skill will continue.
    if args.skill ~= nil then
        skills = args.skill
        check = 'skill'
    elseif args.talent ~= nil then
        skills = args.talent
        check = 'talent'
    end
 
-- check to see if skills was actually passed in
if skills == '' then
return 'skill or talent must be specified.'
    end
 
local skillData = {}
local skillTable = {}
 
    -- checks if skill  and assigns correct modules based on check
    if check == 'skill' then
        skillData = require( "Module:Skills" )
        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
-- Build an Infobox_Skill
     if skillTable == {} then
function skillBox( args, skillData)
        if check == 'skill' then
     -- check that all necessary arguments are passed correctly
            return skills .. ' could not be found in Module:Skills.'
     if args.name == nil or args.name == '' then
        else
        return '\'name\' must be specified.'
            return skills .. ' could not be found in Module:TalentData.'
        end
     end
     end
   
local skill = args.name


    -- From now on using skillsTable."KeyValue" will return the value from that key. for most things a check for skills type is not necessary
local skillimagename = string.gsub(skill, ' ', '')
 
-- Build an Infobox_Plant
local skillTable = skillData.skills[skill]
-- string used to build the infobox
if skillTable == nil then
return item .. ' could not be found in Module:Skills.'
end   
    -- string used to build the infobox
     local infobox = '{| class=\"infobox\"\n'
     local infobox = '{| class=\"infobox\"\n'
 
   
     -- name of the skill/talent
     -- name of the skill
  infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skills .. '</big>\'\'\'\n'
    infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skill .. '</big>\'\'\'\n'
     
      infobox = infobox .. '|- style=\"text-align: center;color: white; background-color: goldenrod;\"\n| colspan=\"2\"'
    -- Prof,Spec,Skill box
    infobox = infobox .. '|- style=\"text-align: center; background-color: #af8d33;\"\n| colspan=\"2\"'
     if skillTable.root == true then
     if skillTable.root == true then
         infobox = infobox .. '| \'\'\'Profession\'\'\'[[Category:Profession]]\n'
         infobox = infobox .. '| \'\'\'Profession\'\'\'\n'
     elseif skillTable.specialty == true then
     elseif skillTable.specialty == true then
         infobox = infobox .. '| \'\'\'Specialty\'\'\'[[Category:Specialty]]\n'
         infobox = infobox .. '| \'\'\'Specialty\'\'\'\n'
     elseif skillTable.group == 'Talents' then
     else
         infobox = infobox .. '| \'\'\'Talent\'\'\'[[Category:Talent]]\n' 
         infobox = infobox .. '| \'\'\'Skill\'\'\'\n'    
else
        infobox = infobox .. '|\n'
     end
     end
 
-- Skill or Talent Image
local checkImage = {'_Icon.png','_Icon.jpg'}
local image = ''
if skillTable.skillID ~= nil then
skillId = skillTable.skillID
skillEN = string.sub (skillId, 1, -6)
skillsimagename = string.gsub(skillEN, ' ', '')
elseif skillTable.untranslated ~= nil then
talentEN = skillTable.untranslated
skillsimagename = string.gsub(talentEN, ' ', '')
end
for i,v in ipairs(checkImage) do
        -- Skill Icon Image
image = skillsimagename .. checkImage[i]
    local image = 'NoImage.png|link=https://eco.gamepedia.com/index.php?title=Special:Upload&wpDestFile=' .. skillimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_icon]]'
if mw.title.makeTitle('File', image).file.exists then
    if mw.title.makeTitle('File', skillimagename .. '_Icon.png').exists then
break
        image = skillimagename .. '_Icon.png'
end
    elseif mw.title.makeTitle('File', skillimagename .. '_Icon.jpg').exists then
if table.getn(checkImage) == i then
        image = skillimagename .. '_Icon.jpg'
image = 'NoImage.png'
    end
if check == 'skill' then
   
image = image .. '|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. skillsimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_Icon]]'
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|frameless|95px]]\n'
end
if check == 'talent' then  
image = image .. '|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. skillsimagename .. '_Icon.png|[[Category:Pages_with_missing_talent_Icon]]'
end
end
end
if check == 'skill' then
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconOrange]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n'
elseif check == 'talent' then
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconBrown]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n'
else
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconBlue]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n'
end
   -- 'Description' section header
   -- 'Description' section header
     infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n'
     infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n'
Line 132: Line 71:
end
end


--SKILL
if check == 'skill' then
  -- 'Related Skills' section header
  -- 'Skill Information' section header
    infobox = infobox .. '|- style=\"background-color: #4688C0; 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; padding: 3px;\" | ' .. skillTable.rootSkill .. '\n'
    end
-- 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
        infobox = infobox .. '|-\n| Leads to:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.childSkills .. '\n'
    end 
 
  -- 'Skill Information' section header
    infobox = infobox .. '|- style=\"background-color: #4688C0; 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; padding: 3px;\" | 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; padding: 3px;\" | ' .. skillTable.itemsGiven .. '\n'
end
    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'
   
    -- id number (type id)
    infobox = infobox .. '|- valign=\"center\"\n| ID Number:\n| style=\"text-align: right; padding: 3px;\" | ' .. 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, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)

Template used on this page: