Anonymous

Module:Constants: Difference between revisions

From Melvor Idle
Correct RegenerationInterval attributes
m (tier => tierID)
(Correct RegenerationInterval attributes)
(6 intermediate revisions by the same user not shown)
Line 65: Line 65:
["MaxHitPercent"] = { text = "{V}% Max Hit", skills = {'Combat'} },
["MaxHitPercent"] = { text = "{V}% Max Hit", skills = {'Combat'} },
["AltMagicSkillXP"] = { text = "{V}% Alt. Magic Skill XP", skills = {'Magic'} },
["AltMagicSkillXP"] = { text = "{V}% Alt. Magic Skill XP", skills = {'Magic'} },
["MinAirSpellDmg"] = { text = "{VX} Min Air Spell Dmg", skills = {'Combat'} },
["MinAirSpellDmg"] = { text = "{VX} Min Air Spell Dmg", skills = {'Magic'} },
["AutoEatEfficiency"] = { text = "{V}% Auto Eat Efficiency", skills = {'Combat'} },
["AutoEatEfficiency"] = { text = "{V}% Auto Eat Efficiency", skills = {'Combat'} },
["GPFromThieving"] = { text = "{V}% GP From Thieving", skills = {'Thieving'} },
["GPFromThieving"] = { text = "{V}% GP From Thieving", skills = {'Thieving'} },
Line 309: Line 309:
["PoisonReflectChance"] = { text = "{V}% chance to poison attackers when hit", skills = {'Combat'} },
["PoisonReflectChance"] = { text = "{V}% chance to poison attackers when hit", skills = {'Combat'} },
["rangedImmunity"] = { text = "Immune to Ranged attacks", skills = {'Combat'} },
["rangedImmunity"] = { text = "Immune to Ranged attacks", skills = {'Combat'} },
["RegenerationInterval"] = { text = "{VMS}s Hitpoint Regeneration interval", skills = {'Combat'} },
["RegenerationInterval"] = { text = "{VMS}s Hitpoint Regeneration interval", isIncreaseNegative = true, skills = {'Combat'} },
["slowImmunity"] = { text = "{V}% chance to ignore Slow effects", skills = {'Combat'} },
["slowImmunity"] = { text = "{V}% chance to ignore Slow effects", skills = {'Combat'} },
["SurgeSpellAccuracy"] = { text = "{V}% Accuracy Rating when using Surge spells", skills = {'Combat'} },
["SurgeSpellAccuracy"] = { text = "{V}% Accuracy Rating when using Surge spells", skills = {'Combat'} },
Line 409: Line 409:
return Shared.titleCase(styleName)
return Shared.titleCase(styleName)
end
end
elseif type(styleNum) == 'string' and type(ConstantData.attackType[string.lower(styleNum)]) == 'number' then
return Shared.titleCase(styleNum)
end
end
return "ERROR: Invalid combat style[[Category:Pages with script errors]]"
return "ERROR: Invalid combat style[[Category:Pages with script errors]]"
Line 420: Line 422:
slayerLevel = 99 -- this might upgrade to 120 in some update
slayerLevel = 99 -- this might upgrade to 120 in some update
end
end
if not type(tierID) == 'number' then
if type(tierID) ~= 'number' then
return nil
return nil
elseif ConstantData.Slayer.Tiers[tierID + 1] == nil then
elseif ConstantData.Slayer.Tiers[tierID + 1] == nil then
Line 430: Line 432:
result.maxQuantity = 10*(tierID+1) + 4*slayerLevel
result.maxQuantity = 10*(tierID+1) + 4*slayerLevel
return result
return result
end
end
function p.getSlayerTier(name)
local tierID = ConstantData.slayerTier[name]
if tierID == nil then
return nil
else
return p.getSlayerTierByID(tierID)
end
end
end
end


function p.getSlayerTierByLevel(level) -- returns a full table
function p.getSlayerTierByLevel(level) -- returns a full table
if not type(level) == 'number' or tier < 0 then
if type(level) ~= 'number' or level < 1 then
return "ERROR: Invalid Slayer level [[Category:Pages with script errors]]"
return "ERROR: Invalid Slayer level [[Category:Pages with script errors]]"
end
end
for i, tier in ipairs(ConstantData.Slayer.Tiers) do
for i, tier in ipairs(ConstantData.Slayer.Tiers) do
if tier.minLevel <= level then
if tier.minLevel <= level and (tier.maxLevel == nil or tier.maxLevel >= level) then
-- is tier.maxLevel == nil really necessary?
return p.getSlayerTierByID(i - 1)
if (tier.maxLevel == nil) or (tier.maxLevel >= level) then
return p.getSlayerTierByID(i - 1)
end
end
end
end
end
function p.getSlayerTierByName(name) -- returns a full table
local tierID = ConstantData.slayerTier[name]
if tierID == nil then
return nil
else
return p.getSlayerTierByID(tierID)
end
end
end
end
Line 461: Line 460:
--
--


function p.getSlayerTierName(tier, fallback)
function p.getSlayerTierName(tierID, fallback)
local tier = p.getSlayerTierByID(tier).display
return type(tierID) == 'number' and ConstantData.slayerTier[tierID] or "ERROR: Invalid Slayer tier[[Category:Pages with script errors]]"
if tier ~= nil then
return tier.display
else
return fallback or "ERROR: Invalid Slayer tier [[Category:Pages with script errors]]"
end
end
end


function p.getSlayerTierNameByLevel(lvl, fallback)
function p.getSlayerTierNameByLevel(lvl, fallback)
local tier = p.getSlayerTierByLevel(lvl)
local tier = p.getSlayerTierByLevel(lvl)
if tier ~= nil then
if type(tier) == 'table' then
return tier.display
return tier.display
else
else
return fallback or "ERROR: Invalid Slayer tier [[Category:Pages with script errors]]"
return fallback or "ERROR: Invalid Slayer tier[[Category:Pages with script errors]]"
end
end
end
function p.getSlayerTierIdByName(name)
return p.getSlayerTierByName(name).id
end
function p.getSlayerTier(name) -- consider removing this function (may break other pages)
return p.getSlayerTierIdByName(name)
end
end


Line 540: Line 525:
['VX'] = function(val) return val * 10 end,
['VX'] = function(val) return val * 10 end,
['VX100'] = function(val) return val * 100 end,
['VX100'] = function(val) return val * 100 end,
['V%+100'] = function(val) return val + 100 end,
['V+100'] = function(val) return val + 100 end,
['VMUL'] = function(val) return 2^val end,
['VMUL'] = function(val) return 2^val end,
['VITEM'] = function(val)
['VITEM'] = function(val)