Module:SkillInfoCard
From Eco - English Wiki
ATTENTION! Data files are generated using game data and are not intended for manual editing.
Warning about use
To prevent multiple call of data array, you must use the function: local SkillInfoCard = mw.loadData("Module:SkillInfoCard")
local p = {}
local Utils = require('Module:Utils')
local IconUtils = require('Module:IconUtils')
local L = require('Module:Localization')
local Lang = Utils.getLanguageName()
function p.main(frame)
local PageName = frame.args[1]
if (Lang == 'English') then SkillName = PageName else SkillName = Utils.SkillSearch(PageName) end
local SkillData = require( "Module:SkillData" )
local Skill = SkillData.skills[SkillName]
local RootSkill = SkillData.skills[Skill.RootSkill]
local WikiText =''
WikiText = WikiText .. IconUtils.main{name = Skill.Name[Lang], id = Skill.SkillID , size = 32, style = 1} .. ' '
if (Skill.IsRoot == 'True') then WikiText = WikiText .. Skill.Name[Lang] .. ' is [[Skills|Profession]].<br>' else WikiText = WikiText .. Skill.Name[Lang] .. ' is [[Skills|Specialty]] related to the profession of [[' .. RootSkill.Name[Lang] ..']].<br>' end
WikiText = WikiText .. Skill.Description[Lang] .. '<br>'
if (Skill.IsRoot == 'True') then
WikiText = WikiText .. '<h3>Specialties</h3>'
WikiText = WikiText .. 'The '.. Skill.Name[Lang] .. ' Profession includes the following Specialties:<br>'
WikiText = WikiText .. '<div class="container-fluid" id="icon-grid"><div class="row row-cols-1 row-cols-sm-1 row-cols-md-2 row-cols-lg-2 g-4 py-5">'
for Sname,Sdata in pairs(SkillData.skills) do
if Sdata.IsRoot == 'False' and Sdata.RootSkill == SkillName then
if (Sdata.Name[Lang] == "") then SpecialtyName = Sdata.Name.English else SpecialtyName = Sdata.Name[Lang] end
if (Sdata.Description[Lang] == "") then SpecialtyDescription = Sdata.Description.English else SpecialtyDescription = Sdata.Description[Lang] end
WikiText = WikiText .. '<div class="col d-flex align-items-start">'
if (Utils.checkImage(Sdata.SkillID .. '_Icon.png') == "Y") then IconName = Sdata.SkillID else IconName = 'NoItem' end
WikiText = WikiText .. '[[file:' .. IconName.. '_Icon.png|64px|link='.. SpecialtyName .. '|class=IconGrid]]'
WikiText = WikiText .. '<div><h5 class="fw-bold mb-0 fs-4 text-body-emphasis">[[' .. SpecialtyName .. ']]</h5><p>' .. SpecialtyDescription .. '</p></div>'
WikiText = WikiText .. '</div>'
end
end
WikiText = WikiText .. '</div></div>'
else
WikiText = WikiText .. '<h3>How to learn</h3>'
WikiText = WikiText .. '<h3>Benefits and item availability by level:</h3>'
WikiText = WikiText .. '<h3>Talents:</h3>'
local TalentData = require( "Module:TalentData" )
local TalentList = TalentData.talents
local TalentThreeCount = 0
local TalentSixCount = 0
local TalentsThree = {}
local TalentsSix = {}
for Tname,Tdata in pairs(TalentList) do
if (Tdata.SkillID == Skill.SkillID) then
if (Tdata.Level == '3') then TalentThreeCount = TalentThreeCount + 1; TalentsThree[TalentThreeCount] = Tname; end
if (Tdata.Level == '6') then TalentSixCount = TalentSixCount + 1; TalentsSix[TalentSixCount] = Tname; end
end
end
WikiText = WikiText .. '<h4>At 3rd level, the player can choose one of two proposed talents:</h4>'
WikiText = WikiText .. '<div class="container-fluid" id="icon-grid"><div class="row row-cols-1 row-cols-sm-1 row-cols-md-2 row-cols-lg-2 g-4 py-4">'
if (TalentList[TalentsThree[1]].Name[Lang] == "") then TalentThreeName = TalentList[TalentsThree[1]].Name.English else TalentThreeName = TalentList[TalentsThree[1]].Name[Lang] end
if (TalentList[TalentsThree[1]].Description[Lang] == "") then TalentsThreeDescription = TalentList[TalentsThree[1]].Description.English else TalentsThreeDescription = TalentList[TalentsThree[1]].Description[Lang] end
if (Utils.checkImage(TalentList[TalentsThree[1]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsThree[1]].IconName else IconName = 'NoItem' end
WikiText = WikiText .. '<div class="col d-flex align-items-start">'
WikiText = WikiText .. '[[file:' .. IconName.. '_Icon.png|64px|link=|class=IconGrid]]'
WikiText = WikiText .. '<div><h5 class="fw-bold mb-0 fs-4 text-body-emphasis">' .. TalentThreeName .. '</h5><p>' .. TalentsThreeDescription .. '</p></div>'
WikiText = WikiText .. '</div>'
if (TalentList[TalentsThree[2]].Name[Lang] == "") then TalentThreeName = TalentList[TalentsThree[2]].Name.English else TalentThreeName = TalentList[TalentsThree[2]].Name[Lang] end
if (TalentList[TalentsThree[2]].Description[Lang] == "") then TalentsThreeDescription = TalentList[TalentsThree[2]].Description.English else TalentsThreeDescription = TalentList[TalentsThree[2]].Description[Lang] end
if (Utils.checkImage(TalentList[TalentsThree[2]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsThree[2]].IconName else IconName = 'NoItem' end
WikiText = WikiText .. '<div class="col d-flex align-items-start">'
WikiText = WikiText .. '[[file:' .. IconName.. '_Icon.png|64px|link=|class=IconGrid]]'
WikiText = WikiText .. '<div><h5 class="fw-bold mb-0 fs-4 text-body-emphasis">' .. TalentThreeName .. '</h5><p>' .. TalentsThreeDescription .. '</p></div>'
WikiText = WikiText .. '</div>'
WikiText = WikiText .. '</div></div>'
WikiText = WikiText .. '<h4>At 6th level, the player can choose one of two proposed talents:</h4>'
WikiText = WikiText .. '<div class="container-fluid" id="icon-grid"><div class="row row-cols-1 row-cols-sm-1 row-cols-md-2 row-cols-lg-2 g-4 py-4">'
if (TalentList[TalentsSix[1]].Name[Lang] == "") then TalentsSixName = TalentList[TalentsSix[1]].Name.English else TalentsSixName = TalentList[TalentsSix[1]].Name[Lang] end
if (TalentList[TalentsSix[1]].Description[Lang] == "") then TalentsSixDescription = TalentList[TalentsSix[1]].Description.English else TalentsSixDescription = TalentList[TalentsSix[1]].Description[Lang] end
if (Utils.checkImage(TalentList[TalentsSix[1]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsSix[1]].IconName else IconName = 'NoItem' end
WikiText = WikiText .. '<div class="col d-flex align-items-start">'
WikiText = WikiText .. '[[file:' .. IconName.. '_Icon.png|64px|link=|class=IconGrid]]'
WikiText = WikiText .. '<div><h5 class="fw-bold mb-0 fs-4 text-body-emphasis">' .. TalentsSixName .. '</h5><p>' .. TalentsSixDescription .. '</p></div>'
WikiText = WikiText .. '</div>'
if (TalentList[TalentsSix[2]].Name[Lang] == "") then TalentsSixName = TalentList[TalentsSix[2]].Name.English else TalentsSixName = TalentList[TalentsSix[2]].Name[Lang] end
if (TalentList[TalentsSix[2]].Description[Lang] == "") then TalentsSixDescription = TalentList[TalentsSix[2]].Description.English else TalentsSixDescription = TalentList[TalentsSix[2]].Description[Lang] end
if (Utils.checkImage(TalentList[TalentsSix[2]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsSix[2]].IconName else IconName = 'NoItem' end
WikiText = WikiText .. '<div class="col d-flex align-items-start">'
WikiText = WikiText .. '[[file:' .. IconName.. '_Icon.png|64px|link=|class=IconGrid]]'
WikiText = WikiText .. '<div><h5 class="fw-bold mb-0 fs-4 text-body-emphasis">' .. TalentsSixName .. '</h5><p>' .. TalentsSixDescription .. '</p></div>'
WikiText = WikiText .. '</div>'
WikiText = WikiText .. '</div></div>'
end
WikiText = WikiText .. '<h3>How use Icon</h3>'
WikiText = WikiText .. '<p>The ' .. Skill.Name[Lang] .. ' icon can be used on any sign that has a text component, including on [[Vehicles]]:</br>'
WikiText = WikiText .. 'Icon with background: <icon name="' .. Skill.SkillID .. '"></br>'
WikiText = WikiText .. 'Icon without background: <icon name="' .. Skill.SkillID .. '" type="nobg"></p>'
if (Lang ~= 'English') then WikiText = WikiText .. '[[en:' .. Skill.Name.English .. ']]' end
if (Lang ~= 'Russian') then WikiText = WikiText .. '[[ru:' .. Skill.Name.Russian .. ']]' end
if (Lang ~= 'German') then WikiText = WikiText .. '[[de:' .. Skill.Name.German .. ']]' end
if (Lang ~= 'French') then WikiText = WikiText .. '[[fr:' .. Skill.Name.French .. ']]' end
return WikiText
end
return p