Модуль:SkillInfoCard
Материал из Eco - Русская Wiki
ВНИМАНИЕ! Data файлы генерируются на игровом сервере и не предназначены для ручного редактирования.
Предупреждение об использовании
Что бы предотвратить многократный вызов массива данных используйте функцию: local SkillInfoCard = mw.loadData("Модуль: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] .. ' это [[Навыки|Профессия]].<br>' else WikiText = WikiText .. Skill.Name[Lang] .. ' это [[Навыки|Специализация]], относящаяся к Профессии [[' .. RootSkill.Name[Lang] ..']].<br>' end
WikiText = WikiText .. Skill.Description[Lang] .. '<br>'
if (Skill.IsRoot == 'True') then
WikiText = WikiText .. '<h3>Специальности</h3>'
WikiText = WikiText .. 'В профессию '.. Skill.Name[Lang] .. ' включены следующие специализации:<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>Как изучить</h3>'
if (Skill.PlayerDefaultSkill == 'True') then
WikiText = WikiText .. 'Специализация ' .. Skill.Name[Lang] .. ' является изученой и доступна со старта игры в книге навыков (кнопка <kbd class="keyboard-key nowrap">Z</kbd>)'
else
WikiText = WikiText .. 'Специализация ' .. Skill.Name[Lang] .. ' изучается при [[File:RMB.png|15px|alt=правая кнопка мыши|link=]] ПКМ по [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b> которую можно получить из [[File:SkillBook_Icon.png|32px|link=]] <b>' .. SkillBook.Name[Lang] .. '</b>.</br>'
WikiText = WikiText .. 'При изучении [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b> в зависимости от настроек сервера, игрок так же может получить несколько [[' .. ClaimPaper.Name[Lang] .. ']] для расширения Усадьбы.'
end
WikiText = WikiText .. '<h3>Преимущества и доступность предметов по уровню:</h3>'
WikiText = WikiText .. 'Изучение специализации продвигается от 0 уровня '
if (Skill.PlayerDefaultSkill == 'False') then WikiText = WikiText .. 'при изучении [[File:SkillScroll_Icon.png|32px|link=]] <b>' .. SkillScroll.Name[Lang] .. '</b> ' end
WikiText = WikiText .. 'и поднимается до 1 уровня при трате звезды.</br>'
WikiText = WikiText .. 'Для дальнейшего повышения уровня требуется производить крафт рецептов с требование специализации или использовать связанный инструмент. Максимальный достигаемый уровень специализации ' .. Skill.Name[Lang] .. ' составляет ' .. Skill.MaxLevel .. ' уровень.'
WikiText = WikiText .. '<h3>Таланты:</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>На 3 уровне игрок может выбрать один из двух предложенных талантов:</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>На 6 уровне игрок может выбрать один из двух предложенных талантов:</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>Как использовать значок в игре</h3>'
WikiText = WikiText .. '<p> Значок ' .. Skill.Name[Lang] .. ' может быть использован на любой табличке/вывеске, которая имеет компонент текста, включая [[Техника|Технику]]:</br>'
WikiText = WikiText .. 'Значок с фоном: <icon name="' .. Skill.SkillID .. '"></br>'
WikiText = WikiText .. 'Значок без фона: <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