Modul:SkillInfoCard: Unterschied zwischen den Versionen

Aus Eco - Deutsches Wiki
Wechseln zu:Navigation, Suche
[unmarkierte Version][gesichtete Version]
K StalEF verschob die Seite Modul:Infobox Skill nach Modul:SkillInfoCard, ohne dabei eine Weiterleitung anzulegen
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 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')
local IconUtils = require('Module:IconUtils')


-- Grabs args from the parent frame
local Lang = Utils.getLanguageName()
-- Trims and parses the args into a table, then returns the table
function norm()
    local origArgs = mw.getCurrentFrame():getParent().args
    local args = {}
   
    for k, v in pairs( origArgs ) do
        v = mw.text.trim( tostring( v ) )
        if v ~= '' then
            args[k] = v
        end
    end
   
    return args
end


-- Main entry point for the Module
function p.main(frame)
function p.SkillMain()
local PageName = frame.args[1]
    -- get args from the Template
if (Lang == 'English') then SkillName = PageName else SkillName = Utils.SkillSearch(PageName) end
     local args = norm()
local SkillData = require( "Module:SkillData" )
      
    local Skill = SkillData.skills[SkillName]
-- create values outside of if statements to ensure they are available to whole function
    local RootSkill = SkillData.skills[Skill.RootSkill]
local skills = ''
     local ItemData = require( "Module:ItemData" )
local check = ''
     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 =''
    -- assign variables for skill or talent whatever is passed. Skill has priority so if both are passed only skill will continue.
WikiText = WikiText ..'__NOTOC__'
    if args.skill ~= nil then
WikiText = WikiText .. IconUtils.main{name = Skill.Name[Lang], id = Skill.SkillID , size = 32, style = 1} .. ' '
        skills = args.skill
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
        check = 'skill'
WikiText = WikiText .. Skill.Description[Lang] .. '<br>'
    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
    if skillTable == {} then
        if check == 'skill' then
            return skills .. ' konnte nicht in Modul: TestSkills gefunden werden.'
        else
            return skills .. ' konnte nicht in Modul: TalentData gefunden werden.'
        end
    end
 
    -- From now on using skillsTable."KeyValue" will return the value from that key. for most things a check for skills type is not necessary
 
-- Build an Infobox_Plant
-- string used to build the infobox
    local infobox = '{| class=\"infobox\"\n'
 
    -- name of the skill/talent
  infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skills .. '</big>\'\'\'\n'
   
      infobox = infobox .. '|- style=\"text-align: center;color: white; background-color: goldenrod;\"\n| colspan=\"2\"'
    if skillTable.root == true then
        infobox = infobox .. '| \'\'\'Beruf\'\'\'[[Category:Beruf]]\n'
    elseif skillTable.specialty == true then
        infobox = infobox .. '| \'\'\'Spezialität\'\'\'[[Category:Spezialität]]\n'
    elseif skillTable.group == 'Talents' then
        infobox = infobox .. '| \'\'\'Talent\'\'\'[[Category:Talent]]\n' 
else
        infobox = infobox .. '|\n'
    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
if (Skill.IsRoot == 'True') then
image = skillsimagename .. checkImage[i]
WikiText =  WikiText .. '<h3>Specialties</h3>'
if mw.title.makeTitle('File', image).file.exists then
WikiText = WikiText .. 'The '.. Skill.Name[Lang] .. ' Profession includes the following Specialties:<br>'
break
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">'
end
for Sname,Sdata in pairs(SkillData.skills) do
if table.getn(checkImage) == i then
if Sdata.IsRoot == 'False' and Sdata.RootSkill == SkillName then  
image = 'NoImage.png'  
if (Sdata.Name[Lang] == "") then SpecialtyName = Sdata.Name.English else SpecialtyName = Sdata.Name[Lang] end
if check == 'skill' then
if (Sdata.Description[Lang] == "") then SpecialtyDescription = Sdata.Description.English else SpecialtyDescription = Sdata.Description[Lang] end
image = image .. '|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. skillsimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_Icon]]'
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
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
end
WikiText = WikiText .. '</div></div>'
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
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'
WikiText = WikiText .. '<h3>How to learn</h3>'
end
if (Skill.PlayerDefaultSkill == 'True') then
if (SkillName == 'Self Improvement') then WikiText =  WikiText .. Skill.Name[Lang] .. ' Specialty is learned and have level 1 from the start of the game.'
  -- 'Description' section header
else 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>)' end
    infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Beschreibung\'\'\'\n'
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>'
if skillTable.description == nil then
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]].'
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'Keiner\'\'\'\n'
end
elseif skillTable.description == '' then
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'Keiner\'\'\'\n'
else
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. skillTable.description .. '\n'
end
 
--SKILL
if check == 'skill' then
  -- 'Skill Information' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Fähigkeitsinformationen\'\'\'\n'
-- Professsion .rootSkill
WikiText = WikiText .. '<h3>Benefits and item availability by level:</h3>'
if skillTable.rootSkill ~= nil then
if (SkillName ~= 'Self Improvement') then
infobox = infobox .. '|-\n| Beruf:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.rootSkill .. '\n'
WikiText =  WikiText .. 'The study of specialization start from level 0'
if (Skill.PlayerDefaultSkill == 'False') then WikiText = WikiText .. ' when learning a [[File:SkillScroll_Icon.png|32px|link=]] <b>' ..  SkillScroll.Name[Lang] .. '</b>' end
WikiText =  WikiText .. ' and increases to level 1 by spending a star.'
else
WikiText = WikiText .. 'For increasing any specialization by 1 level you will receive 20 experience points of ' .. Skill.Name[Lang] .. ' Specialty.'
end
end
-- Specialty     .specialitySkill
WikiText =  WikiText .. '</br>The maximum level of ' .. Skill.Name[Lang] .. ' specialization that can be achieved is level <b>' .. Skill.MaxLevel .. '</b>.'
if skillTable.specialitySkill ~= nil then
infobox = infobox .. '|-\n| Spezialität:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.specialitySkill .. '\n'
WikiText =  WikiText .. '<h4>Amount of Specialty XP Per Level:</h4>'
end
WikiText =  WikiText .. Utils.SpecialtyXP(Skill.Tier)
WikiText =  WikiText ..'* Based on default server settings (SpecialtyExperiencePerLevelSquared=25)'
WikiText = WikiText .. '<h3>Talents:</h3>'
local TalentData = require( "Module:TalentData" )
local TalentList = TalentData.talents
local TalentThreeCount = 0
local TalentSixCount = 0
local TalentsThree = {}
local TalentsSix = {}
-- Skills Required .prerequisites
for Tname,Tdata in pairs(TalentList) do
if skillTable.prerequisites ~= nil then
if (Tdata.SkillID == Skill.SkillID) then  
infobox = infobox .. '|-\n| Fähigkeiten benötigt:\n| style=\"text-align: right; padding: 3px;\" |[[ ' .. skillTable.prerequisites .. ']]\n'
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
end
-- Leads to childSkills
WikiText = WikiText .. '<h4>At 3rd level, the player can choose one of two proposed talents:</h4>'
        if skillTable.childSkills ~= nil then
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">'
            for i,v in pairs(skillTable.childSkills) do
infobox = infobox .. '|-\n| Führt zu:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.childSkills[i] .. '</br>\n'
            end
        end
-- maxlevel .maxLevel
if skillTable.maxLevel ~= nil then
infobox = infobox .. '|-\n| Maximales Level:\n| style=\"text-align: right; padding: 3px;\" | Level ' .. skillTable.maxLevel .. '\n'
end
-- items given .itemsGiven
if skillTable.itemsGiven ~= nil then
infobox = infobox .. '|-\n| Artikel gegeben:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.itemsGiven .. '\n'
end
-- Related Talents
if (TalentList[TalentsThree[1]].Name[Lang] == "") then TalentThreeName = TalentList[TalentsThree[1]].Name.English else TalentThreeName = TalentList[TalentsThree[1]].Name[Lang] end
if skillTable.talents ~= nil then
if (TalentList[TalentsThree[1]].Description[Lang] == "") then TalentsThreeDescription = TalentList[TalentsThree[1]].Description.English else TalentsThreeDescription = TalentList[TalentsThree[1]].Description[Lang] end
local listTalents3 = ''
if (Utils.checkImage(TalentList[TalentsThree[1]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsThree[1]].IconName else IconName = 'NoItem' end
local listTalents6 = ''
WikiText = WikiText .. '<div class="col d-flex align-items-start">'
local talent3 = skillTable.talents.level3
WikiText = WikiText .. '[[file:' .. IconName.. '_Icon.png|64px|link=|class=IconGrid]]'
local talent6 = skillTable.talents.level6
WikiText = WikiText .. '<div><h5 class="fw-bold mb-0 fs-4 text-body-emphasis">' .. TalentThreeName .. '</h5><p>' .. TalentsThreeDescription .. '</p></div>'
WikiText = WikiText .. '</div>'
-- for each item in the listTalents3 (b is position, c is value)           
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
-- for each item in the listTalents6 (e is position, d is value)           
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
-- 'Talent Information' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Talentinformationen\'\'\'\n'
infobox = infobox .. '|- style=\"border-bottom: solid #7BC2CE;\"\n| Level 3 Talente:\n| style=\"text-align: right; padding: 3px;\" | ' .. listTalents3 .. ' \n'
infobox = infobox .. '|-\n| Level 6 Talente:\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)
if (TalentList[TalentsThree[2]].Name[Lang] == "") then TalentThreeName = TalentList[TalentsThree[2]].Name.English else TalentThreeName = TalentList[TalentsThree[2]].Name[Lang] end
infobox = infobox .. '|- valign=\"center\"\n| Artikel-ID:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillID .. '\n'
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>'
-- id number (type id)
WikiText =  WikiText .. '</div></div>'
infobox = infobox .. '|- valign=\"center\"\n| ID-Nummer:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillIDNum .. '\n'
WikiText =  WikiText .. '<h4>At 6th level, the player can choose one of two proposed talents:</h4>'
end
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">'
--TALENT
if (TalentList[TalentsSix[1]].Name[Lang] == "") then TalentsSixName = TalentList[TalentsSix[1]].Name.English else TalentsSixName = TalentList[TalentsSix[1]].Name[Lang] end
if check == 'talent' then  
if (TalentList[TalentsSix[1]].Description[Lang] == "") then TalentsSixDescription = TalentList[TalentsSix[1]].Description.English else TalentsSixDescription = TalentList[TalentsSix[1]].Description[Lang] end
-- 'Talent Information' section header
if (Utils.checkImage(TalentList[TalentsSix[1]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsSix[1]].IconName else IconName = 'NoItem' end
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Talentinformationen\'\'\'\n'
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>'
-- Talent Type
if (TalentList[TalentsSix[2]].Name[Lang] == "") then TalentsSixName = TalentList[TalentsSix[2]].Name.English else TalentsSixName = TalentList[TalentsSix[2]].Name[Lang] end
if skillTable.talentType ~= nil then
if (TalentList[TalentsSix[2]].Description[Lang] == "") then TalentsSixDescription = TalentList[TalentsSix[2]].Description.English else TalentsSixDescription = TalentList[TalentsSix[2]].Description[Lang] end
infobox = infobox .. '|-\n| Talenttyp:\n| style=\"text-align: right; padding: 3px;\" |[[' .. skillTable.talentType .. ']]\n'
if (Utils.checkImage(TalentList[TalentsSix[2]].IconName .. '_Icon.png') == "Y") then IconName = TalentList[TalentsSix[2]].IconName else IconName = 'NoItem' end
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>'
-- Skill Needed
WikiText = WikiText .. '</div></div>'
if skillTable.owningSkill ~= nil then
infobox = infobox .. '|-\n| Geschicklichkeit erforderlich:\n| style=\"text-align: right; padding: 3px;\" |[[' .. skillTable.owningSkill .. ']]\n'
end
-- Talents Active at Level
WikiText = WikiText .. '<h3>Upgrade modules:</h3>'
if skillTable.activeLevel ~= nil then
WikiText = WikiText .. '<h3>Clothing:</h3>'
infobox = infobox .. '|-\n| Aktiv auf Stufe:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.activeLevel .. '\n'
end
end
end
    infobox = infobox .. '|}'
    return infobox
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>'
 
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
end


return p
return p

Aktuelle Version vom 6. Februar 2026, 20:22 Uhr

Dokumentation

[Quelltext bearbeiten]

Dieses Modul bietet die Back-End-Funktionalität der Vorlage: Infobox_Skill.

Wenn die Vorlage übergeben wird, wird eine Infobox mit Details aus den folgenden Modulen erstellt:

Translating Module

[Quelltext bearbeiten]

This Module is a copy of the EN Module of the same name.
RULES FOR TRANSLATING THE LUA MODULES
IF IN DOUBT ASK IN DISCORD
IF ONLY 99.99% SURE ASK IN DISCORD
'string' --Anything using single quotes is a string HARDCODED in this file, these should be translated where appropriate.
'|- Valign \n' -- EXCEPTION if it looks like HTML styling,
local variable -- don't edit or change variable names
speciesTable.idealGrowthRate -- don't edit names of getters or methods

Die von Pradoxzon erstellte Original-Infobox (jetzt als Infobox_Item bekannt) wurde dann von Nesphit und TreeNuts0 bearbeitet. Fyre (FishAus) und Scotty (ZeelNightwolf) haben das Infobox_Item weiter bearbeitet. Sie wurden dann dupliziert und als Basis für Infobox_Skill, Infobox_Plant und Infobox_Animal verwendet.


local p = {}

local Utils = require('Module:Utils')
local IconUtils = require('Module:IconUtils')

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 ..'__NOTOC__'
	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
				if (SkillName == 'Self Improvement') then WikiText =  WikiText .. Skill.Name[Lang] .. ' Specialty is learned and have level 1 from the start of the game.'
				else 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>)' end
			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>'
		if (SkillName ~= 'Self Improvement') then
			WikiText =  WikiText .. 'The study of specialization start from level 0'
			if (Skill.PlayerDefaultSkill == 'False') then WikiText =  WikiText .. ' when learning a [[File:SkillScroll_Icon.png|32px|link=]] <b>' ..  SkillScroll.Name[Lang] .. '</b>' end
			WikiText =  WikiText .. ' and increases to level 1 by spending a star.'
		else
			WikiText =  WikiText .. 'For increasing any specialization by 1 level you will receive 20 experience points of ' .. Skill.Name[Lang] .. ' Specialty.'
		end
		
		WikiText =  WikiText .. '</br>The maximum level of ' .. Skill.Name[Lang] .. ' specialization that can be achieved is level <b>' .. Skill.MaxLevel .. '</b>.'
		
		WikiText =  WikiText .. '<h4>Amount of Specialty XP Per Level:</h4>'
		WikiText =  WikiText .. Utils.SpecialtyXP(Skill.Tier)
		WikiText =  WikiText ..'* Based on default server settings (SpecialtyExperiencePerLevelSquared=25)'
		
		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>'
		
		WikiText =  WikiText .. '<h3>Upgrade modules:</h3>'
		WikiText =  WikiText .. '<h3>Clothing:</h3>'
	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>'

	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