Module:Sprite Damage

From ALttP Speedrunning Wiki
Revision as of 11:36, 6 June 2019 by Kan (talk | contribs)
Jump to: navigation, search

Documentation for this module may be created at Damage/doc&action=edit&redlink=1 Module:Sprite Damage/doc

local p = {}

local damage_table = mw.loadData('Module:Sprite Damage/weapon table')
local sprite_table = mw.loadData('Module:Sprite Damage/sprites table')
local bump_table = mw.loadData('Module:Sprite Damage/bump table')

function p.main(frame)
	local args = frame:getParent().args

	args[1] = args[1] or 'A'

	return p._main(args)
end

function p._getDamageForId(m, w)
	local d = sprite_table[m][w]

	return damage_table[w][d]
end

function p.getDamageForId(frame)
	local args = frame:getParent().args

	local m = args.id
	m = m:gsub('0x', '')
	m = tonumber(m, 16)

	local w = args.weapon

	return p._getDamageForId(m, w)
end

function p.getHPForId(frame)
	local args = frame:getParent().args

	local m = args.id
	m = m:gsub('0x', '')
	m = tonumber(m, 16)

	return p._getHPForId(m, w)
end

function p._getHPForId(m)
	return sprite_table[m].hp
end

local mails = { GREEN = 1, BLUE = 2, RED = 3 }

function p._getBumpForId(s, m)
	m = m:upper()
	return bump_table[sprite_table[s].bump][mails[m] or 1]
end

return p