Module:Luacard2: Difference between revisions

From Archon Arcana - The KeyForge Wiki
Module:Luacard2
No edit summary
(Module:Luacard2)
Line 1: Line 1:
--Module:Luacard
--Module:Luacard2
local p = {}
local p = {}
local cargo = mw.ext.cargo
local cargo = mw.ext.cargo
Line 25: Line 25:
end
end


local templates = require('Module:LuacardTemplates')
local templates = require('Module:LuacardTemplates2')
local cardstyle = require('Module:LuacardStyle')
local cardstyle = require('Module:LuacardStyle')
local translations = require('Module:LocaleTable')
local translations = require('Module:LocaleTable')
Line 233: Line 233:


function apply_rulings(frame, vars)
function apply_rulings(frame, vars)
-- we use cardname_e and just show english rulings
local official_results = rulequery('FAQ', vars.cardname_e)
if(#official_results>0) then vars.categories[#vars.categories+1] = 'FAQ' end
local ruling_results = rulequery('FFGRuling', vars.cardname_e)
if(#ruling_results>0) then vars.categories[#vars.categories+1] = 'FFG Rulings' end
combine(official_results, ruling_results)
local commentary_results = rulequery('Commentary', vars.cardname_e)
local outstanding_results = rulequery('OutstandingIssues', vars.cardname_e)
vars.ruleofficial = official_results
vars.has_ruleofficial = #vars.ruleofficial > 0
vars.rulecommentary = commentary_results
vars.has_rulecommentary = #vars.rulecommentary > 0
vars.ruleoutstanding = filter(outstanding_results, function(ruling)
if string.find(ruling['RulesText'], '//') then
return true
else return false
end
end)
vars.has_ruleoutstanding = #vars.ruleoutstanding > 0
if(has_ruleoutstanding or has_rulecommentary) then vars.categories[#vars.categories+1] = 'Commentary' end
vars.filter_rules_text = function(self)
return self['RulesText']:gsub('this card', "'''"..vars.cardname_e.."'''")
end
end
function relatedquery(type, cardname)
return cargo_results(
'CardRelatedData',
'Pages, Text, Cards',
{
groupBy='Pages, Text, Cards',
where="Pages like '%•"..cardname.."•%' OR Cards like '%•"..cardname.."•%'",
orderBy='RulesDate ASC'
})
end
function apply_related(frame, vars)
-- we use cardname_e and just show english rulings
-- we use cardname_e and just show english rulings
local official_results = rulequery('FAQ', vars.cardname_e)
local official_results = rulequery('FAQ', vars.cardname_e)
Line 360: Line 403:
apply_errata(frame, vars)
apply_errata(frame, vars)
apply_rulings(frame, vars)
apply_rulings(frame, vars)
apply_related(frame, vars)


if not frame.args.locale then
if not frame.args.locale then