Content added Content deleted
No edit summary |
No edit summary |
||
Line 16: | Line 16: | ||
end |
end |
||
end |
end |
||
image = " |
image = "Veloren_" .. image .. ".png" |
||
return image |
return image |
||
end |
end |
||
Line 35: | Line 35: | ||
for k, v in pairs(weapons_table) do |
for k, v in pairs(weapons_table) do |
||
if v['name'] == weapon then |
if v['name'] == weapon then |
||
poise = v['poise'] * 10 |
poise = (v['poise']-1) * 10 |
||
end |
end |
||
end |
end |
||
return poise |
return round(poise, 2) .. "%" |
||
end |
|||
p.getWeaponRange = function(frame) |
|||
local weapon = frame.args[1] |
|||
local range = 0 |
|||
for k, v in pairs(weapons_table) do |
|||
if v['name'] == weapon then |
|||
if v['range'] ~= nil then range = (v['range']-1) * 10 end |
|||
end |
|||
end |
|||
return round(range, 2) .. "%" |
|||
end |
|||
p.getWeaponEnergy = function(frame) |
|||
local weapon = frame.args[1] |
|||
local energy = 0 |
|||
for k, v in pairs(weapons_table) do |
|||
if v['name'] == weapon then |
|||
if v['energy'] ~= nil then energy = (v['energy']-1) * 10 end |
|||
end |
|||
end |
|||
return round(energy, 2) .. "%" |
|||
end |
|||
p.getWeaponBuff = function(frame) |
|||
local weapon = frame.args[1] |
|||
local buff = 0 |
|||
for k, v in pairs(weapons_table) do |
|||
if v['name'] == weapon then |
|||
if v['buff'] ~= nil then buff = (v['buff']-1) * 10 end |
|||
end |
|||
end |
|||
return round(buff, 2) .. "%" |
|||
end |
end |
||
Line 105: | Line 138: | ||
for k, v in pairs(weapons_table) do |
for k, v in pairs(weapons_table) do |
||
if v['name'] == weapon then |
if v['name'] == weapon then |
||
speed = v['speed'] |
speed = (v['speed']-1)*10 |
||
end |
end |
||
end |
end |
||
return speed |
return round(speed, 2) .. "%" |
||
end |
end |
||
Line 121: | Line 154: | ||
quality = v['quality'] |
quality = v['quality'] |
||
damage = v['damage'] * 10 |
damage = v['damage'] * 10 |
||
rating = v['rating'] |
|||
poise = v['poise'] |
|||
speed = v['speed'] |
speed = v['speed'] |
||
critchance = v['critchance'] |
critchance = v['critchance'] |
||
desc = v['desc'] |
desc = v['desc'] |
||
range = 1 |
|||
energy = 1 |
|||
buff = 1 |
|||
if v['range'] ~= nil then range = v['range'] end |
|||
if v['energy'] ~= nil then energy = v['energy'] end |
|||
if v['buff'] ~= nil then buff = v['buff'] end |
|||
end |
end |
||
end |
end |
||
txt = frame:expandTemplate{ title = 'Infobox weapon', args = { |
txt = frame:expandTemplate{ title = 'Infobox weapon', args = { |
||
image = image .. '.png', |
|||
title = name, |
|||
description = desc, |
|||
power = damage, |
|||
quality = quality, |
|||
rating = rating, |
|||
poise = (poise-1)*10 .. '%', |
|||
speed = (speed-1)*10 .. '%', |
|||
critchance = critchance*10 .. '%', |
|||
range = (range-1)*10 .. '%', |
|||
energy = (energy-1)*10 .. '%', |
|||
buff = (buff-1)*10 .. '%', |
|||
} } |
|||
return txt |
return txt |
||
end |
end |
Revision as of 23:26, 14 September 2022
Documentation for this module may be created at Module:Weapon/doc
local weapons_table = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='Template:Weapons.json'})
local p = {}
function round(number, decimals)
local power = 10^decimals
return math.floor(number * power) / power
end
p.getWeaponImage = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
image = v['name']
end
end
image = "Veloren_" .. image .. ".png"
return image
end
p.getWeaponRating = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
rating = v['rating']
end
end
return round(rating, 2) * 10
end
p.getWeaponPoise = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
poise = (v['poise']-1) * 10
end
end
return round(poise, 2) .. "%"
end
p.getWeaponRange = function(frame)
local weapon = frame.args[1]
local range = 0
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
if v['range'] ~= nil then range = (v['range']-1) * 10 end
end
end
return round(range, 2) .. "%"
end
p.getWeaponEnergy = function(frame)
local weapon = frame.args[1]
local energy = 0
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
if v['energy'] ~= nil then energy = (v['energy']-1) * 10 end
end
end
return round(energy, 2) .. "%"
end
p.getWeaponBuff = function(frame)
local weapon = frame.args[1]
local buff = 0
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
if v['buff'] ~= nil then buff = (v['buff']-1) * 10 end
end
end
return round(buff, 2) .. "%"
end
p.getWeaponCritChance = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
critchance = v['critchance'] * 100
end
end
return round(critchance, 2) .. "%"
end
p.getWeaponName = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
name = v['name']
end
end
return name
end
p.getWeaponPath = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
path = v['path']
end
end
return path
end
p.getWeaponQuality = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
quality = v['quality']
end
end
return frame:expandTemplate{ title = quality }
end
p.getWeaponDesc = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
desc = v['desc']
end
end
return desc
end
p.getWeaponDamage = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
damage = v['power'] * 10
end
end
return damage
end
p.getWeaponSpeed = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
speed = (v['speed']-1)*10
end
end
return round(speed, 2) .. "%"
end
p.getWeapon = function(frame)
local weapon = frame.args[1]
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
image = v['name']
name = v['name']
w_type = v['type']
path = v['path']
quality = v['quality']
damage = v['damage'] * 10
rating = v['rating']
poise = v['poise']
speed = v['speed']
critchance = v['critchance']
desc = v['desc']
range = 1
energy = 1
buff = 1
if v['range'] ~= nil then range = v['range'] end
if v['energy'] ~= nil then energy = v['energy'] end
if v['buff'] ~= nil then buff = v['buff'] end
end
end
txt = frame:expandTemplate{ title = 'Infobox weapon', args = {
image = image .. '.png',
title = name,
description = desc,
power = damage,
quality = quality,
rating = rating,
poise = (poise-1)*10 .. '%',
speed = (speed-1)*10 .. '%',
critchance = critchance*10 .. '%',
range = (range-1)*10 .. '%',
energy = (energy-1)*10 .. '%',
buff = (buff-1)*10 .. '%',
} }
return txt
end
return p