Module:CombatCardData

From Library of Ruina Wiki
Jump to navigation Jump to search

Module documentation: Module:CombatCardData/doc
Data stored in Module:CombatCardData/Data
Pages using this module

Outputs combat page data based on a given id or card name (ID preferred, as it is faster)
Card name argument is case insensitive, and ignores non-alphanumeric characters.
Example Usage:

{{#invoke:CombatCardData|getData|name|701001}}
{{#invoke:CombatCardData|getData|behavior|701001}}

True Trigram Formation
Mirinae, Harold, and Olivier's Exclusive Page
Gains additional effects depending on the Four Trigrams page (’Geon’, ’Gon’, ’Gam’, and ’Ri’) used during the Scene
PierceDiceIcon.png 7~10 
SlashDiceIcon.png 8~11  On Hit Deal 5 damage to target
BlockDiceIcon.png 6~9 


{{#invoke:CombatCardData|getData|name|TasTEmy FlamiNG bat!}}
{{#invoke:CombatCardData|getData|behavior|taste my flaming bat}}

Taste My Flaming Bat!
BlockDiceIcon.png 3~4 
EvadeDiceIcon.png 1~8  On Clash Win Boost next die’s max value by +3
BluntDiceIcon.png 3~3  On Hit Inflict 2 Burn


local getArgs = require('Module:Arguments').getArgs
local p = {}
local pageData = mw.loadData('Module:CombatCardData/Data')

function p.getData(frame)
	if not frame then return '' end
    local ID = frame.args[2]
    if not (pageData[ID]) then ID = frame:preprocess ( '{{ID|' .. ID .. '}}' ) end
    if not (pageData[ID]) then return 'card ' .. ID .. ' not found' end
    local property = frame.args[1]
    local result = pageData[ID][property]
	if not (result) then 
	    if property == 'art' then	    
	    	result = string.gsub(pageData[ID]['name'],"’","'")
	    	result = string.gsub(result," ","")
	    	result = string.gsub(result,":","")
	    	result = string.gsub(result,";","")
	    	result = string.gsub(result,",","")
	    	result = "Card".. result.."Art"
	    else
	    	result = ''
	    end
	end
    if property == 'art' then result = result .. ".png" end
    return frame:preprocess(result) or ''
end

return p