Documentation for this module may be created at Module:Horblegorble/Sandbox/Weapon/doc
local weapons_table = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='Template:Horblegorble/Sandbox/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 wep in weapons_table do
weapon_found = true
if wep['name'] == page_name then
weapon_info['name' ] = wep['name' ]
weapon_info['kind' ] = wep['kind' ]
weapon_info['hands' ] = wep['hands' ]
weapon_info['quality' ] = wep['quality' ]
weapon_info['power' ] = wep['power' ]
weapon_info['speed' ] = wep['speed' ]
weapon_info['poise' ] = wep['poise' ]
weapon_info['critchance'] = wep['critchance']
weapon_info['desc' ] = wep['desc' ]
weapon_info['path' ] = wep['path' ]
break
end
end
end
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.getWeaponImage = function(frame)
findWeapon(frame.args[1])
return "veloren_" .. weapon_info['name'] .. ".png"
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.getWeaponPath = function(frame)
findWeapon(frame.args[1])
return weapon_info['path']
end
p.getWeaponQuality = function(frame)
findWeapon(frame.args[1])
return frame:expandTemplate{ title = weapon_info['quality'] }
end
p.getWeaponDesc = function(frame)
findWeapon(frame.args[1])
return weapon_info['desc']
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
return p