Content added Content deleted
Horblegorble (talk | contribs) No edit summary |
Horblegorble (talk | contribs) No edit summary |
||
(27 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local |
local weapons_table = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='User:Horblegorble/Sandbox/Template/Weapons.json'}) |
||
local weapons_table = mw.text.jsonDecode(frame:expandTemplate{title='Template:Horblegorble/Sandbox/Weapons.json'}) |
|||
local p = {} |
local p = {} |
||
Line 9: | Line 8: | ||
end |
end |
||
local weapon_found = false |
|||
local weapon_info = {} |
local weapon_info = {} |
||
local findWeapon = function(page_name) |
|||
page_name = frame.args[1] |
|||
if weapon_found then |
|||
for i, v in ipairs(weapons_table) do |
|||
return |
|||
if v['name'] == page_name then |
|||
end |
|||
weapon_info['poise'] = v['poise'] |
|||
for _, v in pairs(weapons_table) do |
|||
weapon_info['power'] = v['power'] |
|||
weapon_found = true |
|||
weapon_info['speed'] = v['speed'] |
|||
if v['name'] == page_name then |
|||
weapon_info['critchance'] = v['critchance'] |
|||
-- general |
|||
weapon_info['type'] = v['type'] |
|||
weapon_info[' |
weapon_info['name' ] = v['name' ] |
||
weapon_info[' |
weapon_info['kind' ] = v['kind' ] |
||
weapon_info[' |
weapon_info['hands' ] = v['hands' ] |
||
weapon_info[' |
weapon_info['desc' ] = v['desc' ] |
||
weapon_info['craftable' ] = v['craftable' ] |
|||
break |
|||
-- displayed stats |
|||
weapon_info['quality' ] = v['quality' ] |
|||
weapon_info['power' ] = v['power' ] |
|||
weapon_info['speed' ] = v['speed' ] |
|||
weapon_info['poise' ] = v['poise' ] |
|||
weapon_info['critchance'] = v['critchance'] |
|||
weapon_info['range' ] = v['range' ] |
|||
weapon_info['efficiency'] = v['efficiency'] |
|||
weapon_info['buff' ] = v['buff' ] |
|||
weapon_info['bufftype' ] = v['bufftype' ] |
|||
-- detailed stats |
|||
weapon_info['equiptime' ] = v['equiptime' ] |
|||
-- assets |
|||
weapon_info['path' ] = v['path' ] |
|||
weapon_info['vox' ] = v['vox' ] |
|||
weapon_info['ron' ] = v['ron' ] |
|||
weapon_info['manifest' ] = v['manifest' ] |
|||
break |
|||
end |
|||
end |
end |
||
end |
end |
||
-- general |
|||
p.getWeaponImage = function() |
|||
return "veloren_" .. weapon_info['name'] .. ".png" |
|||
p.getWeaponName = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['name'] |
|||
end |
end |
||
p. |
p.getWeaponKind = function(frame) |
||
findWeapon(frame.args[1]) |
|||
return weapon_info['kind'] |
|||
findWeapon(page_name) |
|||
end |
|||
return 10 * round(weapon_info['rating'], 2) |
|||
p.getWeaponHands = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['hands'] |
|||
end |
|||
p.getWeaponDesc = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['desc'] |
|||
end |
|||
p.getWeaponCraftable = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['craftable'] |
|||
end |
|||
-- displayed stats |
|||
p.getWeaponQuality = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return frame:expandTemplate{ title = weapon_info['quality'] } |
|||
end |
|||
p.getWeaponPower = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return 10 * weapon_info['power'] |
|||
end |
|||
p.getWeaponSpeed = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['speed'] |
|||
end |
end |
||
p.getWeaponPoise = function(frame) |
p.getWeaponPoise = function(frame) |
||
findWeapon(frame.args[1]) |
|||
findWeapon(page_name) |
|||
return 10 * weapon_info['poise'] |
return 10 * weapon_info['poise'] |
||
end |
end |
||
p.getWeaponCritChance = function(frame) |
p.getWeaponCritChance = function(frame) |
||
findWeapon(frame.args[1]) |
|||
findWeapon(page_name) |
|||
return round(weapon_info['critchance'], 2) .. "%" |
return round(weapon_info['critchance'], 2) .. "%" |
||
end |
end |
||
p. |
p.getWeaponRange = function(frame) |
||
findWeapon(frame.args[1]) |
|||
return weapon_info['range'] |
|||
findWeapon(page_name) |
|||
return weapon_info['name'] |
|||
end |
end |
||
p. |
p.getWeaponEfficiency = function(frame) |
||
findWeapon(frame.args[1]) |
|||
return weapon_info['efficiency'] |
|||
findWeapon(page_name) |
|||
return weapon_info['path'] |
|||
end |
end |
||
p. |
p.getWeaponBuff = function(frame) |
||
findWeapon(frame.args[1]) |
|||
return weapon_info['buff'] |
|||
findWeapon(page_name) |
|||
return frame:expandTemplate{ title = weapon_info['quality'] } |
|||
end |
end |
||
p. |
p.getWeaponBuffType = function(frame) |
||
findWeapon(frame.args[1]) |
|||
return weapon_info['bufftype'] |
|||
findWeapon(page_name) |
|||
return weapon_info['desc'] |
|||
end |
end |
||
-- detailed stats |
|||
p.getWeaponDamage = function(frame) |
|||
local weapon = frame.args[1] |
|||
p.getWeaponEquipTime = function(frame) |
|||
for k, v in pairs(weapons_table) do |
|||
findWeapon(frame.args[1]) |
|||
if v['name'] == weapon then |
|||
return weapon_info['equiptime'] .. ' seconds' |
|||
damage = v['power'] * 10 |
|||
end |
|||
end |
|||
return damage |
|||
end |
end |
||
-- assets |
|||
p.getWeaponSpeed = function(frame) |
|||
local page_name = frame.args[1] |
|||
p.getWeaponPath = function(frame) |
|||
findWeapon(page_name) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['speed'] |
|||
return weapon_info['path'] |
|||
end |
|||
p.getWeaponImage = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return "Veloren_" .. weapon_info['name'] .. ".png" |
|||
end |
|||
p.getWeaponVox = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['vox'] |
|||
end |
|||
p.getWeaponRon = function(frame) |
|||
findWeapon(frame.args[1]) |
|||
return weapon_info['ron'] |
|||
end |
end |
||
p. |
p.getWeaponManifest = function(frame) |
||
findWeapon(frame.args[1]) |
|||
return weapon_info['manifest'] |
|||
findWeapon(page_name) |
|||
image = weapon_info['name'] |
|||
name = weapon_info['name'] |
|||
w_type = weapon_info['type'] |
|||
path = weapon_info['path'] |
|||
quality = weapon_info['quality'] |
|||
damage = weapon_info['damage'] * 10 |
|||
speed = weapon_info['speed'] |
|||
critchance = weapon_info['critchance'] |
|||
desc = weapon_info['desc'] |
|||
txt = frame:expandTemplate{ title = 'Template:Horblegorble/Sandbox/Infobox weapon', args = { image = image .. '.png', title = name, description = desc, power = damage, quality = quality, speed = speed, critchance = critchance .. '%'} } |
|||
return txt |
|||
end |
end |
||
Latest revision as of 08:19, 25 August 2022
Documentation for this module may be created at Module:Horblegorble/Sandbox/Weapon/doc
local weapons_table = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='User:Horblegorble/Sandbox/Template/Weapons.json'})
local p = {}
function round(number, decimals)
local power = 10 ^ decimals
return math.floor(number * power) / power
end
local weapon_found = false
local weapon_info = {}
local findWeapon = function(page_name)
if weapon_found then
return
end
for _, v in pairs(weapons_table) do
weapon_found = true
if v['name'] == page_name then
-- general
weapon_info['name' ] = v['name' ]
weapon_info['kind' ] = v['kind' ]
weapon_info['hands' ] = v['hands' ]
weapon_info['desc' ] = v['desc' ]
weapon_info['craftable' ] = v['craftable' ]
-- displayed stats
weapon_info['quality' ] = v['quality' ]
weapon_info['power' ] = v['power' ]
weapon_info['speed' ] = v['speed' ]
weapon_info['poise' ] = v['poise' ]
weapon_info['critchance'] = v['critchance']
weapon_info['range' ] = v['range' ]
weapon_info['efficiency'] = v['efficiency']
weapon_info['buff' ] = v['buff' ]
weapon_info['bufftype' ] = v['bufftype' ]
-- detailed stats
weapon_info['equiptime' ] = v['equiptime' ]
-- assets
weapon_info['path' ] = v['path' ]
weapon_info['vox' ] = v['vox' ]
weapon_info['ron' ] = v['ron' ]
weapon_info['manifest' ] = v['manifest' ]
break
end
end
end
-- general
p.getWeaponName = function(frame)
findWeapon(frame.args[1])
return weapon_info['name']
end
p.getWeaponKind = function(frame)
findWeapon(frame.args[1])
return weapon_info['kind']
end
p.getWeaponHands = function(frame)
findWeapon(frame.args[1])
return weapon_info['hands']
end
p.getWeaponDesc = function(frame)
findWeapon(frame.args[1])
return weapon_info['desc']
end
p.getWeaponCraftable = function(frame)
findWeapon(frame.args[1])
return weapon_info['craftable']
end
-- displayed stats
p.getWeaponQuality = function(frame)
findWeapon(frame.args[1])
return frame:expandTemplate{ title = weapon_info['quality'] }
end
p.getWeaponPower = function(frame)
findWeapon(frame.args[1])
return 10 * weapon_info['power']
end
p.getWeaponSpeed = function(frame)
findWeapon(frame.args[1])
return weapon_info['speed']
end
p.getWeaponPoise = function(frame)
findWeapon(frame.args[1])
return 10 * weapon_info['poise']
end
p.getWeaponCritChance = function(frame)
findWeapon(frame.args[1])
return round(weapon_info['critchance'], 2) .. "%"
end
p.getWeaponRange = function(frame)
findWeapon(frame.args[1])
return weapon_info['range']
end
p.getWeaponEfficiency = function(frame)
findWeapon(frame.args[1])
return weapon_info['efficiency']
end
p.getWeaponBuff = function(frame)
findWeapon(frame.args[1])
return weapon_info['buff']
end
p.getWeaponBuffType = function(frame)
findWeapon(frame.args[1])
return weapon_info['bufftype']
end
-- detailed stats
p.getWeaponEquipTime = function(frame)
findWeapon(frame.args[1])
return weapon_info['equiptime'] .. ' seconds'
end
-- assets
p.getWeaponPath = function(frame)
findWeapon(frame.args[1])
return weapon_info['path']
end
p.getWeaponImage = function(frame)
findWeapon(frame.args[1])
return "Veloren_" .. weapon_info['name'] .. ".png"
end
p.getWeaponVox = function(frame)
findWeapon(frame.args[1])
return weapon_info['vox']
end
p.getWeaponRon = function(frame)
findWeapon(frame.args[1])
return weapon_info['ron']
end
p.getWeaponManifest = function(frame)
findWeapon(frame.args[1])
return weapon_info['manifest']
end
return p