Module:Luacard2: Difference between revisions

From Archon Arcana - The KeyForge Wiki
Module:Luacard2
(Module:Luacard2)
(Module:Luacard2)
Line 23: Line 23:
end
end
return new
return new
end
function append(table, value)
table[#table+1] = value
end
end


Line 142: Line 146:
if(vars.is_multi) then
if(vars.is_multi) then
vars.cardhouse_color = ''
vars.cardhouse_color = ''
vars.categories[#vars.categories+1] = 'Multi'
append(vars.categories, 'Multi')
else
else
vars.cardhouse_color = vars.cardhouse_lower
vars.cardhouse_color = vars.cardhouse_lower
vars.categories[#vars.categories+1] = vars.cardhouse
append(vars.categories, vars.cardhouse)
end
end
end
end
Line 184: Line 188:
end
end
for i = 1, #split do
for i = 1, #split do
vars.categories[#vars.categories+1] = split[i]
append(vars.categories, split[i])
end
end
end
end
Line 205: Line 209:
vars.errata_version = errata_results[#errata_results]['ErrataData.Version']
vars.errata_version = errata_results[#errata_results]['ErrataData.Version']
if(string.find(vars.errata_version, 'Rulebook')) then
if(string.find(vars.errata_version, 'Rulebook')) then
vars.categories[#vars.categories+1] = 'Errata'
append(vars.categories, 'Errata')
else
else
vars.categories[#vars.categories+1] = 'Revised Cards'
append(vars.categories, 'Revised Cards')
end
end
end
end
Line 235: Line 239:
-- 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)
if(#official_results>0) then vars.categories[#vars.categories+1] = 'FAQ' end
if(#official_results>0) then append(vars.categories, 'FAQ') end


local ruling_results = rulequery('FFGRuling', vars.cardname_e)
local ruling_results = rulequery('FFGRuling', vars.cardname_e)
if(#ruling_results>0) then vars.categories[#vars.categories+1] = 'FFG Rulings' end
if(#ruling_results>0) then append(vars.categories, 'FFG Rulings') end


combine(official_results, ruling_results)
combine(official_results, ruling_results)
Line 257: Line 261:
vars.has_ruleoutstanding = #vars.ruleoutstanding > 0
vars.has_ruleoutstanding = #vars.ruleoutstanding > 0


if(has_ruleoutstanding or has_rulecommentary) then vars.categories[#vars.categories+1] = 'Commentary' end
if(has_ruleoutstanding or has_rulecommentary) then append(vars.categories, 'Commentary') end


vars.filter_rules_text = function(self)
vars.filter_rules_text = function(self)
Line 286: Line 290:
where='CardData.Name="'..name..'"'
where='CardData.Name="'..name..'"'
})
})
cards[#cards+1] = card_results[1]
append(cards, card_results[1])
end
end
end
end
Line 295: Line 299:
-- we use cardname_e and just show english rulings
-- we use cardname_e and just show english rulings
local related_set = relatedquery(vars.cardname_e)
local related_set = relatedquery(vars.cardname_e)
if(#related_set) then vars.has_related = true end
map(vars.related, function(item)
vars.related = related_set
map(related_set, function(item)
item['Text'] = item['Text']:gsub('this card', "'''"..vars.cardname_e.."'''")
item['Text'] = item['Text']:gsub('this card', "'''"..vars.cardname_e.."'''")
item['Cards'] = get_related_cards(frame.args.cardname, item)
item['Cards'] = get_related_cards(frame.args.cardname, item)
return item
return item
end)
end)
vars.related = {}
vars.cardnotes = {}
for row in related_set do
if row['Cards']~=nil and string.len(row['Cards'])>0 then
append(vars.related, row)
else
append(vars.cardnotes, row)
end
end
if(#vars.related) then vars.has_related = true end
if(#vars.cardnotes) then vars.has_notes = true end
end
end


Line 315: Line 328:
for r = 1, #vars.cardsets do
for r = 1, #vars.cardsets do
local result = vars.cardsets[r]
local result = vars.cardsets[r]
vars.categories[#vars.categories+1] = set_category[result['SetData.SetName']]
append(vars.categories, set_category[result['SetData.SetName']])
end
end
vars.shortset_from_name = function(self)
vars.shortset_from_name = function(self)
Line 360: Line 373:
vars.categories = {vars.cardtype, vars.cardrarity, 'Card'}
vars.categories = {vars.cardtype, vars.cardrarity, 'Card'}
if(string.find(vars.cardtext,vars.cardname)) then
if(string.find(vars.cardtext,vars.cardname)) then
vars.categories[#vars.categories+1] = 'Self-referential'
append(vars.categories, 'Self-referential')
end
end