模块:Weapon

来自乐园数据管理室

此模块的文档可以在模块:Weapon/doc创建

local p = {}
local Driver = require("Module:Driver")
local html = require("Module:Html")
-- local getArgs = require("Module:Arguments").getArgs

local weaponInfo = {
  ["圣杯之剑"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 3,
    ["JustRangeMax"] = 7,
    ID = 1
  },
  ["弯刀"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 3,
    ["JustRangeMax"] = 7,
    ID = 2
  },
  ["双环刃"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 2,
    ["JustRangeMax"] = 8,
    ID = 3
  },
  ["花之盾"] = {
    ["Role"] = {"防御", "回复"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 4
  },
  ["花之臂"] = {
    ["Role"] = {"攻击", "防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 5
  },
  ["花之佩剑"] = {
    ["Role"] = {"攻击", "防御", "回复"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 6,
    ID = 6
  },
  ["军刀"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 6,
    ID = 7
  },
  ["大剑"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 4,
    ["JustRangeMax"] = 8,
    ID = 8
  },
  ["双镰刀"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 2,
    ["JustRangeMax"] = 6,
    ID = 9
  },
  ["战斧"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 3,
    ["JustRangeMax"] = 7,
    ID = 10
  },
  ["长枪"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 5,
    ["JustRangeMax"] = 10,
    ID = 11
  },
  ["以太巨炮"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 10,
    ["JustRangeMax"] = 20,
    ID = 12
  },
  ["战锤"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 13
  },
  ["刀"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 6,
    ID = 14
  },
  ["弹击球"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 5,
    ["JustRangeMax"] = 15,
    ID = 15
  },
  ["钩爪拳套"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 16
  },
  ["自制剑"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 3,
    ["JustRangeMax"] = 7,
    ID = 17
  },
  ["太刀"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 2,
    ["JustRangeMax"] = 8,
    ID = 18
  },
  ["大镰"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 3,
    ["JustRangeMax"] = 7,
    ID = 20
  },
  ["长刀"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 5,
    ["JustRangeMax"] = 10,
    ID = 21
  },
  ["扇"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 8,
    ID = 22
  },
  ["小太刀"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 2,
    ["JustRangeMax"] = 8,
    ID = 23
  },
  ["大炮"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 10,
    ["JustRangeMax"] = 20,
    ID = 24
  },
  ["手甲"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 25
  },
  ["旋棍"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 26
  },
  ["锡杖"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 2,
    ["JustRangeMax"] = 6,
    ID = 31
  },
  ["枪刀"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 8,
    ID = 32
  },
  ["莫纳德"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 2,
    ["JustRangeMax"] = 6,
    ID = 33
  },
  ["小刀"] = {
    ["Role"] = {"回复"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 34
  },
  ["双剑"] = {
    ["Role"] = {"攻击"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 4,
    ID = 35
  },
  ["打刀"] = {
    ["Role"] = {"防御"},
    ["JustRangeMin"] = 0,
    ["JustRangeMax"] = 6,
    ID = 36
  }
}

function p.weaponTypePageHeader()
  local title = mw.title.getCurrentTitle()
  title = tostring(title)

  local justRange = mw.ustring.format("%d ~ %d", weaponInfo[title]["JustRangeMin"], weaponInfo[title]["JustRangeMax"])

  mw.smw.set {
    ["JustRange"] = {justRange},
    ["战斗类别"] = weaponInfo[title]["Role"]
  }

  return mw.ustring.format(
    [[{| class="wikitable"
    |-
    ! 战斗类别 !! JustRange
    |-
    | %s || %s
    |}]],
    table.concat(weaponInfo[title]["Role"], "、"),
    justRange
  )
end

function p.showArts()
  local title = mw.title.getCurrentTitle()
  title = tostring(title)

  local WpnId = weaponInfo[title].ID

  local DriverList = {
    "莱克斯",
    "尼娅",
    "齐格",
    "虎",
    "凡达姆",
    "梅勒芙",
    [20] = "真",
    [21] = "霞",
    [22] = "光",
    [23] = "米诺奇",
    [24] = "迦具土",
    [25] = "绵津见"
  }

  local out = ""
  for driverId, driverName in pairs(DriverList) do
    local queryResult = Driver.getArtsByDriverIdAndWpnType(driverId, WpnId)

    if #queryResult > 0 then
      local ns = ""
      if driverId >= 20 then
        out = out .. html.h3("[[黄金之国伊拉:" .. driverName .. "]]")
      else
        out = out .. html.h3("[[" .. driverName .. "]]")
      end
      out = out .. Driver.outputArtsSection(Driver.formatArtsData(queryResult), WpnId)
    end
  end

  return out
end

return p