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()
| |
| -- 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: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 | | -- 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
| | end |
| infobox = infobox .. '|\n' | | |
| | -- Skill Icon Image |
| | 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', skillimagename .. '_Icon.png').exists then |
| | image = skillimagename .. '_Icon.png' |
| | elseif mw.title.makeTitle('File', skillimagename .. '_Icon.jpg').exists then |
| | image = skillimagename .. '_Icon.jpg' |
| 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'
| |
| | |
| end | |
| | |
| -- '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 102: |
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 |