Module:Infobox Boss
From ALttP Speedrunning Wiki
Documentation for this module may be created at Boss/doc&action=edit&redlink=1 Module:Infobox Boss/doc
-- <nowiki> local p = {} local sprdmg = require('Module:Sprite Damage') local weapon_names = { 'boomerang', 'sword 1', 'sword 2', 'sword 3', 'sword 4', 'sword 5', 'arrow', 'hookshot', 'bomb', 'silver', 'powder', 'fire rod', 'ice rod', 'bombos', 'ether', 'quake' } local unique_damage = { [0xF9] = 'Fairy', [0xFA] = 'Slime', [0xFB] = 'Short stun', [0xFC] = 'Stun', [0xFD] = 'Burn', [0xFE] = 'Freeze', [0xFF] = 'Long stun' } function p.main(frame) local args = frame:getParent().args local spr_id = tonumber(args.id:gsub('0x', ''), 16) local hp = tonumber(args.hp, 10) local spr_dmg = { ['boomerang'] = sprdmg._getDamageForId(spr_id, 'boomerang'), ['sword 1'] = sprdmg._getDamageForId(spr_id, 'sword 1'), ['sword 2'] = sprdmg._getDamageForId(spr_id, 'sword 2'), ['sword 3'] = sprdmg._getDamageForId(spr_id, 'sword 3'), ['sword 4'] = sprdmg._getDamageForId(spr_id, 'sword 4'), ['sword 5'] = sprdmg._getDamageForId(spr_id, 'sword 5'), ['arrow'] = sprdmg._getDamageForId(spr_id, 'arrow'), ['hookshot'] = sprdmg._getDamageForId(spr_id, 'hookshot'), ['bomb'] = sprdmg._getDamageForId(spr_id, 'bomb'), ['silver'] = sprdmg._getDamageForId(spr_id, 'silver'), ['powder'] = sprdmg._getDamageForId(spr_id, 'powder'), ['fire rod'] = sprdmg._getDamageForId(spr_id, 'fire rod'), ['ice rod'] = sprdmg._getDamageForId(spr_id, 'ice rod'), ['bombos'] = sprdmg._getDamageForId(spr_id, 'bombos'), ['ether'] = sprdmg._getDamageForId(spr_id, 'ether'), ['quake'] = sprdmg._getDamageForId(spr_id, 'quake') } if (args.byrna or ''):lower() == 'no' then spr_dmg['byrna'] = 0 else spr_dmg['byrna'] = spr_dmg['sword 1'] end if (args.somaria or ''):lower() == 'no' then spr_dmg['somaria'] = 0 else spr_dmg['somaria'] = spr_dmg['sword 1'] end if (args.hammer or ''):lower() == 'no' then spr_dmg['hsmmer'] = 0 else spr_dmg['hammer'] = spr_dmg['sword 3'] end local ret = mw.html.create('table') :class('wikitable') ret :tag('caption') :wikitext(boss_name) :done() :tag('tbody') :tag('tr') :tag('td') :attr('colspan', '6') :wikitext(string.format('[[File:%s|240px|center]]')) :done() :done() :tag('tr') :tag('th') :attr('colspan', '2') :wikitext('Location') :done() :tag('th') :attr('colspan', '4') :wikitext(location) :done() :done() :tag('tr') :tag('th') :wikitext('HP') :done() :tag('td') :css('font-weight', 'bold') :wikitext(hp) :done() :tag('td') :wikitext('[[File:Icon Bow.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['arrow'], hp)) :done() :tag('td') :wikitext('[[File:Icon Silver Bow.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['silver'], hp)) :done() :done() :tag('tr') :tag('td') :wikitext('[[File:Icon L1 Sword.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['sword 1'], hp)) :done() :tag('td') :wikitext('[[File:Icon Cane of Somaria.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['somaria'], hp)) :done() :tag('td') :wikitext('[[File:Icon Cane of Byrna.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['byrna'], hp)) :done() :done() :tag('tr') :tag('td') :wikitext('[[File:Icon L2 Sword.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['sword 2'], hp)) :done() :tag('td') :wikitext('[[File:Icon Fire Rod.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['fire rod'], hp)) :done() :tag('td') :wikitext('[[File:Icon Ice Rod.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['ice rod'], hp)) :done() :done() :tag('tr') :tag('td') :wikitext('[[File:Icon L3 Sword.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['sword 3'], hp)) :done() :tag('td') :wikitext('[[File:Icon Hammer.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['hammer'], hp)) :done() :tag('td') :wikitext('[[File:Icon Bombs.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['bomb'], hp)) :done() :done() :tag('tr') :tag('td') :wikitext('[[File:Icon L4 Sword.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['sword 4'], hp)) :done() :tag('td') :wikitext('[[File:Icon Boomerang.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['boomerang'], hp)) :done() :tag('td') :wikitext('[[File:Icon Hookshot.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['hookshot'], hp)) :done() :done() :tag('tr') :tag('td') :wikitext('[[File:Icon Bombos.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['bombos'], hp)) :done() :tag('td') :wikitext('[[File:Icon Ether.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['ether'], hp)) :done() :tag('td') :wikitext('[[File:Icon Quake.png|link=]]') :done() :tag('td') :wikitext(fmtdmg(spr_dmg['quake'], hp)) :done() :done() :tag('tr') :tag('td') :wikitext('[[File:Icon Green Mail.png|link=]]') :done() :tag('td') :css('text-align', 'right') :wikitext(args.mail1) :done() :tag('td') :wikitext('[[File:Icon Blue Mail.png|link=]]') :done() :tag('td') :css('text-align', 'right') :wikitext(args.mail2) :done() :tag('td') :wikitext('[[File:Icon Red Mail.png|link=]]') :done() :tag('td') :css('text-align', 'right') :wikitext(args.mail3) :done() :done() :tag('tr') :tag('td') :addClass('prevBoss') :attr('colspan', '3') :wikitext(args['prev_boss']) :done() :tag('td') :addClass('nextBoss') :attr('colspan', '3') :wikitext(args['prev_boss']) :done() :done() :done() :done() return ret end local function fmtdmg(damage, hp) if unique_damage[damage] then return string.format('<span class="damage">%s</span>', unique_damage[damage]) elseif damage >= hp then return string.format('<span class="damage spr-ohko">%s</span>', damage) else if damage == 0 then damage = '-' end return string.format('<span class="damage">%s</span>', damage) end end return p