Module:Horblegorble/Sandbox/Weapon: Difference between revisions

From Veloren Wiki
Content added Content deleted
No edit summary
No edit summary
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
local weapons_table = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='Template:Horblegorble/Sandbox/Weapons.json'})
local weapons_table = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{title='User:Horblegorble/Sandbox/Template/Weapons.json'})


local p = {}
local p = {}


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 14: Line 14:
return
return
end
end
for i, v in ipairs(weapons_table) do
for _, v in pairs(weapons_table) do
weapon_found = true
weapon_found = true
if v['name'] == page_name then
if v['name'] == page_name then
-- general
weapon_info['poise'] = v['poise']
weapon_info['power'] = v['power']
weapon_info['name' ] = v['name' ]
weapon_info['speed'] = v['speed']
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['critchance'] = v['critchance']
weapon_info['type'] = v['type']
weapon_info['range' ] = v['range' ]
weapon_info['path'] = v['path']
weapon_info['efficiency'] = v['efficiency']
weapon_info['name'] = v['name']
weapon_info['buff' ] = v['buff' ]
weapon_info['desc'] = v['desc']
weapon_info['bufftype' ] = v['bufftype' ]
-- detailed stats
weapon_info['damage'] = v['damage']
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
break
end
end
Line 31: Line 45:
end
end


-- general
p.getWeaponImage = function(frame)

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


p.getWeaponKind = function(frame)
findWeapon(frame.args[1])
return weapon_info['kind']
end


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

rating = v['rating']
p.getWeaponDesc = function(frame)
end
findWeapon(frame.args[1])
end
return round(rating, 2) * 10
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)
local weapon = frame.args[1]
findWeapon(frame.args[1])
return 10 * weapon_info['poise']
for k, v in pairs(weapons_table) do
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]
findWeapon(frame.args[1])
return round(weapon_info['critchance'], 2) .. "%"
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
critchance = v['critchance'] * 100
end
end
return round(critchance, 2) .. "%"
end
end


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


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


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


p.getWeaponDesc = function(frame)
p.getWeaponBuffType = function(frame)
local weapon = frame.args[1]
findWeapon(frame.args[1])
return weapon_info['bufftype']
for k, v in pairs(weapons_table) do
if v['name'] == weapon then
desc = v['desc']
end
end
return 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 weapon = frame.args[1]
p.getWeaponPath = function(frame)
for k, v in pairs(weapons_table) do
findWeapon(frame.args[1])
if v['name'] == weapon then
return weapon_info['path']
speed = v['speed']
end
end
return speed
end
end


p.getWeapon = function(frame)
p.getWeaponImage = function(frame)
local weapon = frame.args[1]
findWeapon(frame.args[1])
return "Veloren_" .. weapon_info['name'] .. ".png"
for k, v in pairs(weapons_table) do
end
if v['name'] == weapon then
p.getWeaponVox = function(frame)
image = v['name']
findWeapon(frame.args[1])
name = v['name']
return weapon_info['vox']
w_type = v['type']
end
path = v['path']

quality = v['quality']
p.getWeaponRon = function(frame)
damage = v['damage'] * 10
findWeapon(frame.args[1])
speed = v['speed']
return weapon_info['ron']
critchance = v['critchance']
end
desc = v['desc']

end
p.getWeaponManifest = function(frame)
end
findWeapon(frame.args[1])
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 weapon_info['manifest']
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
Cookies help us deliver our services. By using our services, you agree to our use of cookies.