Module:SkillInfoCard: Difference between revisions
From Eco - English Wiki
| [checked revision] | [checked revision] |
No edit summary |
No edit summary |
||
| Line 12: | Line 12: | ||
local Skill = SkillData.skills[SkillName] | local Skill = SkillData.skills[SkillName] | ||
local RootSkill = SkillData.skills[Skill.RootSkill] | local RootSkill = SkillData.skills[Skill.RootSkill] | ||
local ItemData = require( "Module:ItemData" ) | |||
local SkillBook = Skill.Name.English .. ' Skill Book' | |||
local SkillBook = ItemData.items[SkillBook] | |||
local SkillScroll = Skill.Name.English .. ' Skill Scroll' | |||
local SkillScroll = ItemData.items[SkillScroll] | |||
local ClaimPaper = ItemData.items['Claim Paper Item'] | |||
local WikiText ='' | local WikiText ='' | ||
| Line 36: | Line 42: | ||
else | else | ||
WikiText = WikiText .. '<h3>How to learn</h3>' | WikiText = WikiText .. '<h3>How to learn</h3>' | ||
if (Skill.PlayerDefaultSkill == 'True') then | |||
WikiText = WikiText .. Skill.Name[Lang] .. 'Specialty is learned and available from the start of the game in the Skill Book (key <kbd class="keyboard-key nowrap">Z</kbd>)' | |||
else | |||
WikiText = WikiText .. Skill.Name[Lang] .. ' is learned by [[File:RMB.png|15px|alt=RMB|link=]] RMB on [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b>, what was obtained from the [[File:SkillBook_Icon.png|32px|link=]] <b>' .. SkillBook.Name[Lang] .. '</b>.</br>' | |||
WikiText = WikiText .. 'When learning a [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b>, depending on the server settings, the player can also receive several [[' .. ClaimPaper.Name[Lang] .. ']] to expand [[Residency|Homestead]].' | |||
end | |||
WikiText = WikiText .. '<h3>Benefits and item availability by level:</h3>' | WikiText = WikiText .. '<h3>Benefits and item availability by level:</h3>' | ||
WikiText = WikiText .. '<h3>Talents:</h3>' | WikiText = WikiText .. '<h3>Talents:</h3>' | ||
local TalentData = require( "Module:TalentData" ) | local TalentData = require( "Module:TalentData" ) | ||
Revision as of 08:17, 24 July 2025
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 ItemData = require( "Module:ItemData" )
local SkillBook = Skill.Name.English .. ' Skill Book'
local SkillBook = ItemData.items[SkillBook]
local SkillScroll = Skill.Name.English .. ' Skill Scroll'
local SkillScroll = ItemData.items[SkillScroll]
local ClaimPaper = ItemData.items['Claim Paper Item']
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>'
if (Skill.PlayerDefaultSkill == 'True') then
WikiText = WikiText .. Skill.Name[Lang] .. 'Specialty is learned and available from the start of the game in the Skill Book (key <kbd class="keyboard-key nowrap">Z</kbd>)'
else
WikiText = WikiText .. Skill.Name[Lang] .. ' is learned by [[File:RMB.png|15px|alt=RMB|link=]] RMB on [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b>, what was obtained from the [[File:SkillBook_Icon.png|32px|link=]] <b>' .. SkillBook.Name[Lang] .. '</b>.</br>'
WikiText = WikiText .. 'When learning a [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b>, depending on the server settings, the player can also receive several [[' .. ClaimPaper.Name[Lang] .. ']] to expand [[Residency|Homestead]].'
end
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