From Dark and Darker Wiki
m (simplify debug_mode example again) Tag: Manual revert |
m (add spaces before capital letters) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local merge_spells = mw.loadJsonData("Data:MergeSpells.json") | local merge_spells = mw.loadJsonData("Data:MergeSpells.json") | ||
local utils = require("Module:Utilities") | |||
function p.draw_merge_recipe(merge_spell, debug_mode) | function p.draw_merge_recipe(merge_spell, debug_mode) | ||
Line 17: | Line 18: | ||
-- Draw them | -- Draw them | ||
wikitext = "| [[File:Icon_Spell " .. merge_spell .. ".png|link=|96px]] <br> " .. merge_spell .. "\n" | wikitext = "| [[File:Icon_Spell " .. merge_spell .. ".png|link=|96px]] <br> " .. utils.insert_space_before_capitals(merge_spell) .. "\n" | ||
for i, component_spell in ipairs(component_spells) do | for i, component_spell in ipairs(component_spells) do | ||
wikitext = wikitext .. "| [[File:Icon_Spell " .. component_spell .. ".png|link=|96px]] <br> " .. component_spell .. "\n" | wikitext = wikitext .. "| [[File:Icon_Spell " .. component_spell .. ".png|link=|96px]] <br> " .. utils.insert_space_before_capitals(component_spell) .. "\n" | ||
end | end | ||
Revision as of 01:16, 21 December 2024
Overview
Functions for Sorcerer's Merge Spells and their component spells. Data comes from Data:MergeSpells.json
Functions
draw_merge_recipe
Draws a visual for the components that make up a given merge spell
Parameters
- merge_spell - 1st parameter - the name of the merge spell without spaces but capitalized properly, i.e. ElementalBolt
- debug_mode - optional, named parameter - true/false, defaults to false - true will output the raw wikitext, false will preprocess the wikitext sorry its not working
Example
{| class="wikitable sortable jquery-tablesorter ClassesTable" style="min-width:360px;> ! style="width:15%" class="headerSort" role="columnheader button" title="Sort ascending" | Merge Spell ! style="width:15%" class="headerSort" role="columnheader button" title="Sort ascending" | Parent Spell 1 ! style="width:15%" class="headerSort" role="columnheader button" title="Sort ascending" | Parent Spell 2 |- | {{#invoke:MergeSpells|draw_merge_recipe|ElementalBolt}} |}
Merge Spell | Parent Spell 1 | Parent Spell 2 |
---|---|---|
Elemental Bolt |
Fire Arrow |
Water Bolt |
local p = {}
local merge_spells = mw.loadJsonData("Data:MergeSpells.json")
local utils = require("Module:Utilities")
function p.draw_merge_recipe(merge_spell, debug_mode)
if type(merge_spell) == "table" and merge_spell.args then -- if called via wikitext instead of lua
local frame = merge_spell
merge_spell = frame.args[1]
debug_mode = frame.args["debug_mode"]
end
-- Validate and cast to bool
if debug_mode == nil then debug_mode = false else debug_mode = true end
-- Retrieve the merge spell's component spells
component_spells = merge_spells[merge_spell]
if component_spells == nil then return merge_spell .. " is not a valid merge spell" end
-- Draw them
wikitext = "| [[File:Icon_Spell " .. merge_spell .. ".png|link=|96px]] <br> " .. utils.insert_space_before_capitals(merge_spell) .. "\n"
for i, component_spell in ipairs(component_spells) do
wikitext = wikitext .. "| [[File:Icon_Spell " .. component_spell .. ".png|link=|96px]] <br> " .. utils.insert_space_before_capitals(component_spell) .. "\n"
end
-- Return the drawn wikitext
if debug_mode then
return wikitext
else
return mw.getCurrentFrame():preprocess(wikitext)
end
end
return p