From Dark and Darker Wiki
(init) |
m (removing debug_mode, still not working) |
||
(8 intermediate revisions by the same user not shown) | |||
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) | |||
if type(merge_spell) == "table" and merge_spell.args then -- if called via wikitext instead of lua | if type(merge_spell) == "table" and merge_spell.args then -- if called via wikitext instead of lua | ||
local frame = merge_spell | local frame = merge_spell | ||
merge_spell = frame.args[1] | merge_spell = frame.args[1] | ||
end | end | ||
Line 17: | Line 17: | ||
-- Draw them | -- Draw them | ||
wikitext = merge_spell .. "<br>" | 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 .. component_spell .. "<br>" | wikitext = wikitext .. "| [[File:Icon_Spell " .. component_spell .. ".png|link=|65px]] <br> " .. utils.insert_space_before_capitals(component_spell) .. "\n" | ||
end | end | ||
-- Return the drawn wikitext | -- Return the drawn wikitext | ||
return mw.getCurrentFrame():preprocess(wikitext) | |||
end | end | ||
return p | return p |
Latest revision as of 03:53, 22 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
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)
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]
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=|65px]] <br> " .. utils.insert_space_before_capitals(component_spell) .. "\n"
end
-- Return the drawn wikitext
return mw.getCurrentFrame():preprocess(wikitext)
end
return p