Mudanças entre as edições de "Módulo:Info"

De Wiki Gla
Ir para navegação Ir para pesquisar
(Criou página com '-- Módulo:Info -- Resolve metadados e skills de cada personagem local p = {} -- Paleta de cores pros marcadores local COLOR = { debuff = "#ff5252", -- vermelho atk =...')
 
m
 
(46 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
-- Módulo:Info
-- Módulo:Info — resolve metadados e skills (com Subskill e cores inline)
-- Resolve metadados e skills de cada personagem
-- Este módulo re-exporta funções dos submódulos para manter compatibilidade
 
local p = {}
local p = {}


-- Paleta de cores pros marcadores
-- Importar submódulos
local COLOR = {
local utils = require("Módulo:Info.Utils")
  debuff = "#ff5252", -- vermelho
local skills = require("Módulo:Info.Skills")
  atk    = "#ffcc00", -- laranja
local expand = require("Módulo:Info.Expand")
  def    = "#64b5f6", -- azul (defesa)
  ms    = "#43a047", -- verde (move speed)
  hp    = "#42a5f5", -- azul claro (vida/shield/heal)
  sec    = "#ffcc00", -- tempo
}
 
-- Aplica as cores nos marcadores {{tag:valor}}
local function colorize(txt)
  if not txt or txt == "" then return "" end
  return (txt:gsub("{{(%a+):([^}]+)}}", function(tag, inner)
    local hex = COLOR[tag]
    if not hex then return "{{" .. tag .. ":" .. inner .. "}}" end
    return string.format('<span style="color:%s;">%s</span>', hex, inner)
  end))
end
 
-- Pega dados crus do módulo do personagem
local function loadCharacterModule(charName)
  local ok, data = pcall(function() return require("Módulo:" .. charName) end)
  if ok and type(data) == "table" then
    return data
  end
  return {}
end
 
-- ====== API pública ======
 
-- Tier
function p.getTier(frame)
  local char = frame.args[1] or frame.args.nome or (frame:getParent() and frame:getParent().args.nome) or ""
  local data = loadCharacterModule(char)
  return data.tier or ""
end
 
-- Tags / classes
function p.getTags(frame)
  local char = frame.args[1] or frame.args.nome or (frame:getParent() and frame:getParent().args.nome) or ""
  local data = loadCharacterModule(char)
  if not data.tags then return "" end
  return table.concat(data.tags, " / ")
end
 
-- Monta um JSON de skill (usado pela Predefinição:Skill)
function p.skill(frame)
  local a    = frame.args
  local m    = tonumber(a.M) or 0
  local char = a.char or (frame:getParent() and frame:getParent().args.nome) or ""
  local lang = (a.lang or (frame:getParent() and frame:getParent().args.lang) or "pt"):lower()
 
  local data = loadCharacterModule(char)
  local order = data.order or {}
  local key  = order[m] or ""
  local sk    = (data.skills or {})[key] or {}


  -- resolve nome e descrição
-- Re-exportar funções de utils (para compatibilidade caso alguém use diretamente)
  local name = sk.name or key or ""
p.trim = utils.trim
  local desc = ""
p.safeArgs = utils.safeArgs
  if type(sk.desc) == "table" then
p.collectJsonObjects = utils.collectJsonObjects
    desc = sk.desc[lang] or sk.desc["pt"] or ""
p.requireCharacterModule = utils.requireCharacterModule
  else
p.resolveCharFromFrames = utils.resolveCharFromFrames
    desc = sk.desc or ""
p.colorize = utils.colorize
  end
p.I18N = utils.I18N
  desc = colorize(desc)
p.COLOR = utils.COLOR


  -- monta objeto final juntando com os números da predef
-- Re-exportar funções de skills
  local obj = {
p.skill = skills.skill
    name    = name,
p.subskill = skills.subskill
    icon    = a.icon or "Nada.png",
p.emote = skills.emote
    level    = a.level or "NIVEL",
p.weapon = skills.weapon
    desc    = desc,
    energy  = a.energy ~= "" and a.energy or nil,
    powerpve = a.powerpve ~= "" and a.powerpve or nil,
    powerpvp = a.powerpvp ~= "" and a.powerpvp or nil,
    cooldown = a.cooldown ~= "" and a.cooldown or nil,
    video    = a.video or "",
  }


  return mw.text.jsonEncode(obj)
-- Re-exportar funções de expand
end
p.getTier = expand.getTier
p.getTags = expand.getTags
p.expandTier = expand.expandTier
p.expandTags = expand.expandTags


return p
return p

Edição atual tal como às 00h18min de 27 de novembro de 2025

A documentação para este módulo pode ser criada em Módulo:Info/doc

-- Módulo:Info — resolve metadados e skills (com Subskill e cores inline)
-- Este módulo re-exporta funções dos submódulos para manter compatibilidade
local p = {}

-- Importar submódulos
local utils = require("Módulo:Info.Utils")
local skills = require("Módulo:Info.Skills")
local expand = require("Módulo:Info.Expand")

-- Re-exportar funções de utils (para compatibilidade caso alguém use diretamente)
p.trim = utils.trim
p.safeArgs = utils.safeArgs
p.collectJsonObjects = utils.collectJsonObjects
p.requireCharacterModule = utils.requireCharacterModule
p.resolveCharFromFrames = utils.resolveCharFromFrames
p.colorize = utils.colorize
p.I18N = utils.I18N
p.COLOR = utils.COLOR

-- Re-exportar funções de skills
p.skill = skills.skill
p.subskill = skills.subskill
p.emote = skills.emote
p.weapon = skills.weapon

-- Re-exportar funções de expand
p.getTier = expand.getTier
p.getTags = expand.getTags
p.expandTier = expand.expandTier
p.expandTags = expand.expandTags

return p