Module:Horblegorble/Sandbox/Weapon: Difference between revisions

From Veloren Wiki
Content added Content deleted
No edit summary
No edit summary
Line 35: Line 35:
end
end
end
end

findWeapon()


p.getWeaponImage = function(frame)
p.getWeaponImage = function(frame)
findWeapon(frame)
-- local weapon = frame.args[1]
-- local weapon = frame.args[1]
-- for k, v in pairs(weapons_table) do
-- for k, v in pairs(weapons_table) do

Revision as of 12:14, 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 fields = {}
local weapon_index = -1
local weapon_info = {}
local weapon_found = false

local findWeapon = function(frame)
	if weapon_found then
		return
	end
	local page_name = frame.args[1]
	for i, v in ipairs(weapons_table) do
		weapon_found = true
		weapon_index = i
		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

p.getWeaponImage = function(frame)
	findWeapon(frame)
	-- local weapon = frame.args[1]
	-- for k, v in pairs(weapons_table) do
	-- 	if v['name'] == weapon then
	-- 		image = v['name']
	-- 	else
	-- 		image = frame.args[1]
	-- 	end
	-- end
	image = weapon_info['name']
	-- image = "veloren_" .. image .. ".png"
	return tostring(weapon_index)
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'] * 10
		end
	end
	return poise
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']
		end
	end
	return speed
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
			speed = v['speed']
			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 .. '%'} }
	return txt
end

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