Module:Horblegorble/Sandbox/Weapon: Difference between revisions

From Veloren Wiki
Content added Content deleted
No edit summary
No edit summary
Line 4: Line 4:


function round(number, decimals)
function round(number, decimals)
local power = 10^decimals
local power = 10 ^ decimals
return math.floor(number * power) / power
return math.floor(number * power) / power
end
end
Line 11: Line 11:
local weapon_info = {}
local weapon_info = {}
local findWeapon = function(page_name)
local findWeapon = function(page_name)
local frame = mw.getCurrentFrame()
page_name = frame.args[1]
if weapon_found then
if weapon_found then
return
return
Line 30: Line 32:
end
end
end
end

findWeapon('')


p.getWeaponImage = function(frame)
p.getWeaponImage = function(frame)
local page_name = frame.args[1]
-- local page_name = frame.args[1]
findWeapon(page_name)
-- findWeapon(page_name)
local image = "veloren_" .. weapon_info['name'] .. ".png"
local image = "veloren_" .. weapon_info['name'] .. ".png"
return image
return image
end
end



p.getWeaponRating = function(frame)
p.getWeaponRating = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return 10 * round(weapon_info['rating'], 2)
if v['name'] == weapon then
rating = v['rating']
end
end
return round(rating, 2) * 10
end
end


p.getWeaponPoise = function(frame)
p.getWeaponPoise = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return 10 * weapon_info['poise']
if v['name'] == weapon then
poise = v['poise'] * 10
end
end
return poise
end
end


p.getWeaponCritChance = function(frame)
p.getWeaponCritChance = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return round(weapon_info['critchance'], 2) .. "%"
if v['name'] == weapon then
critchance = v['critchance'] * 100
end
end
return round(critchance, 2) .. "%"
end
end


p.getWeaponName = function(frame)
p.getWeaponName = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
return weapon_info['name']
name = v['name']
end
end
return name
end
end


p.getWeaponPath = function(frame)
p.getWeaponPath = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return weapon_info['path']
if v['name'] == weapon then
path = v['path']
end
end
return path
end
end


p.getWeaponQuality = function(frame)
p.getWeaponQuality = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return frame:expandTemplate{ title = weapon_info['quality'] }
if v['name'] == weapon then
quality = v['quality']
end
end
return frame:expandTemplate{ title = quality }
end
end


p.getWeaponDesc = function(frame)
p.getWeaponDesc = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return weapon_info['desc']
if v['name'] == weapon then
desc = v['desc']
end
end
return desc
end
end


Line 120: Line 95:


p.getWeaponSpeed = function(frame)
p.getWeaponSpeed = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
return weapon_info['speed']
if v['name'] == weapon then
speed = v['speed']
end
end
return speed
end
end


p.getWeapon = function(frame)
p.getWeapon = function(frame)
local weapon = frame.args[1]
local page_name = frame.args[1]
findWeapon(page_name)
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
image = weapon_info['name']
image = v['name']
name = weapon_info['name']
name = v['name']
w_type = weapon_info['type']
w_type = v['type']
path = weapon_info['path']
path = v['path']
quality = weapon_info['quality']
damage = weapon_info['damage'] * 10
quality = v['quality']
speed = weapon_info['speed']
damage = v['damage'] * 10
critchance = weapon_info['critchance']
speed = v['speed']
desc = weapon_info['desc']
critchance = v['critchance']
desc = v['desc']
end
end
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 .. '%'} }
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
return txt

Revision as of 12:27, 15 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='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)
	local frame = mw.getCurrentFrame()
	page_name = frame.args[1]
	if weapon_found then
		return
	end
	for i, v in ipairs(weapons_table) do
		weapon_found = true
		if v['name'] == page_name then
			weapon_info['poise'] = v['poise']
			weapon_info['power'] = v['power']
			weapon_info['speed'] = v['speed']
			weapon_info['critchance'] = v['critchance']
			weapon_info['type'] = v['type']
			weapon_info['path'] = v['path']
			weapon_info['name'] = v['name']
			weapon_info['desc'] = v['desc']
			weapon_info['damage'] = v['damage']
			break
		end
	end
end

findWeapon('')

p.getWeaponImage = function(frame)
	-- local page_name = frame.args[1]
	-- findWeapon(page_name)
	local image = "veloren_" .. weapon_info['name'] .. ".png"
	return image
end

p.getWeaponRating = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return 10 * round(weapon_info['rating'], 2)
end

p.getWeaponPoise = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return 10 * weapon_info['poise']
end

p.getWeaponCritChance = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return round(weapon_info['critchance'], 2) .. "%"
end

p.getWeaponName = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return weapon_info['name']
end

p.getWeaponPath = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return weapon_info['path']
end

p.getWeaponQuality = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return frame:expandTemplate{ title = weapon_info['quality'] }
end

p.getWeaponDesc = function(frame)
	local page_name = frame.args[1]
	findWeapon(page_name)
	return weapon_info['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 page_name = frame.args[1]
	findWeapon(page_name)
	return weapon_info['speed']
end

p.getWeapon = function(frame)
	local page_name = frame.args[1]
	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

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.