Neverwinter Wiki
Advertisement

Для документации этого модуля может быть создана страница Модуль:Project Set Weapon/doc

local p = {}

local itemIcon = require('Модуль:Item_icon')
local data = mw.loadData('Модуль:Project Set Weapon/Data')

local cargo = mw.ext.cargo

-- Check to see if the data module is loaded
function checkDataLoaded()
	if (data == nil)  then
		error("Data is not loaded!")
		return false
	end
	
	return true
end

function p.main(frame)
	tables = 'Items'
    fields = '_pageName,item_set,requires_class'
    local args = {
        where='item_set = "'.. frame.args[1] .. '" AND requires_class HOLDS "' .. frame.args['класс'] .. '"',
        orderBy = '_pageName',
    }

    local result = cargo.query( tables, fields, args )
	local r = result[1]
	
	if (frame.args[1] == nil) then
		return ""
	end
	
	if (checkDataLoaded() == false) then
		return
	end
	
	local setBonus = data[frame.args[1]]
	
	if (setBonus == nil) then
		error("Бонус комплекта с названием "..frame.args[1].." не существует")
		return
	end
	local setItems = {}
    for k,row in ipairs(result) do
        setItems[k] = '<div><span class="gray" style="margin-left: 1.25em;">'..row._pageName..'</span></div>'
    end
   
	set = '<div>Часть комплекта «' .. frame.args[1] .. '» (0/2)</div>' .. table.concat(setItems) ..'<span style="vertical-align: top; width: 111px;" class="gray">2 из комплекта:</span><span class="gray"> ' .. setBonus .. '</span>'
   
	return set
end

function p.set(frame)

tables = 'Items'
    fields = '_pageName,name,icon,item_set,set_item1,set_item2,set_bonus1,set_bonus2, stat_universal, stat_accuracy, stat_accuracy, stat_critical_severity, stat_awareness, stat_combat_advantage, stat_crit_chance, stat_crit_resist, stat_defense, stat_deflection'
    local args = {
        where='item_set="'..frame.args[1]..'"',
        groupBy = '_pageName',
        orderBy = '_pageName',
    }
    local result = cargo.query( tables, fields, args )
    local r = result[1]
	local tbl = mw.html.create('table')
	tbl:addClass('wikitable')
            tbl:tag("th"):wikitext("Предмет"):done()
            tbl:tag("th"):attr('style','width: 20%'):wikitext("Параметры"):done()
            tbl:tag("th"):wikitext("Бонус за комплект"):done()
		tbl:done()

        --Construct the rows in the table
        setBonus  = data[frame.args[1]]
        
		if (setBonus == nil) then
			error("Бонус комплекта с названием "..frame.args[1].." не существует")
			return
		end
		tr = tbl:tag("tr")
		tr:tag('td'):wikitext():done()
		tr:tag('td'):wikitext():done()
        tr:tag('td'):attr("rowspan", "6"):wikitext('2 из комплекта: ' .. setBonus):done()
		for _, row in ipairs(result) do
			tr = tbl:tag("tr")
			tr:tag('td'):wikitext(itemIcon.Main({args={row._pageName,""}})):done()
local stat_universal = ''
			local stat_accuracy = ''
			local stat_critical_severity = ''
			local stat_awareness = ''
			local stat_combat_advantage = ''
			local stat_crit_chance = ''
			local stat_crit_resist = ''
			local stat_defense = ''
	        local stat_deflection = ''
	        if row.stat_universal ~= '' then
				stat_universal = '+' .. row.stat_universal .. '<span class="slate"> Общий рейтинг</span><br>'
			end
			if row.stat_critical_severity ~= '' then
				stat_critical_severity = '+' .. row.stat_critical_severity ..'<span class="slate"> Критический урон</span><br>'
			end
			if row.stat_awareness ~= '' then
				stat_awareness = '+' .. row.stat_awareness ..'<span class="slate"> Осведомленность</span><br>'
			end
			if row.stat_crit_chance ~= '' then
				stat_crit_chance = '+' .. row.stat_crit_chance ..'<span class="slate"> Вер. критического удара</span><br>'
			end
			if row.stat_accuracy ~= '' then
				stat_accuracy = '+' .. row.stat_accuracy ..'<span class="slate"> Точность</span><br>'
			end
			if row.stat_deflection ~= '' then
				stat_deflection = '+' .. row.stat_deflection ..'<span class="slate"> Уклонение</span><br>'
			end
			if row.stat_combat_advantage ~= '' then
				stat_combat_advantage = '+' .. row.stat_combat_advantage ..'<span class="slate"> Боевое преимущество</span><br>'
			end
			if row.stat_crit_resist ~= '' then
				stat_crit_resist = '+' .. row.stat_crit_resist ..'<span class="slate"> Критическое уклонение</span><br>'
			end
			if row.stat_defense ~= '' then
				 stat_defense = '+' .. row.stat_defense ..'<span class="slate"> Оборона</span><br>'
			end
			tr:tag("td"):wikitext(stat_universal .. ' ' .. stat_critical_severity .. ' ' .. stat_awareness .. ' ' .. stat_crit_chance .. ' ' .. stat_accuracy .. ' ' .. stat_deflection .. ' ' .. stat_combat_advantage .. ' ' .. stat_crit_resist .. ' ' .. stat_defense):done() 
		end
	return tbl

end

return p
Advertisement