Module:Magic

From Melvor Idle
Revision as of 18:35, 6 October 2020 by Falterfire (talk | contribs) (Slight rework to how getting spells is handled)

Data pulled from Module:GameData/data


local p = {}

local MagicData = mw.loadData('Module:Magic/data')

local Shared = require('Module:Shared')
local Icons = require('Module:Icons')

function processSpell(section, index)
  local result = Shared.clone(MagicData[section][index])
  result.id = index + 1
  result.type = section
  return result
end

function p.getSpell(name, type)
  local section = type
  if type == nil or type == 'Spell' or type == 'Standard' then
    section = 'Spells'
  elseif type == 'Curse' then
    section = 'Curses'
  elseif type == 'Aurora' then
    section = 'Auroras'
  elseif type == 'Alt Magic' or type == 'Alternative Magic' then
    section='AltMagic'
  end
  
  if MagicData[section] ~= nil then
    local result = nil
    for i, spell in pairs(MagicData[section]) do
      if spell.name == name then
        result = processSpell(section, i)
      end
    end
    return result
  else
    return nil
  end
end

function p.getSpellByID(type, id)
  local section = type
  if type == nil or type == 'Spell' or type == 'Standard' then
    section = 'Spells'
  elseif type == 'Curse' then
    section = 'Curses'
  elseif type == 'Aurora' then
    section = 'Auroras'
  elseif type == 'Alt Magic' or type == 'Alternative Magic' then
    section='AltMagic'
  end
  
  if MagicData[section] ~= nil then
    return processSpell(section, id - 1)
  else
    return nil
  end
end

return p