14,472
edits
m (that was bad) |
(Correct RegenerationInterval attributes) |
||
(9 intermediate revisions by 2 users 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 = {' | ["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 416: | Line 418: | ||
--- Slayer functions | --- Slayer functions | ||
-- | -- | ||
function p.getSlayerTierByID(tierID) -- returns a full table | function p.getSlayerTierByID(tierID, slayerLevel) -- returns a full table | ||
if | if slayerLevel == nil then | ||
slayerLevel = 99 -- this might upgrade to 120 in some update | |||
end | |||
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 424: | Line 429: | ||
local result = Shared.clone(ConstantData.Slayer.Tiers[tierID + 1]) | local result = Shared.clone(ConstantData.Slayer.Tiers[tierID + 1]) | ||
result.id = tierID | result.id = tierID | ||
result.minQuantity = 10*(tierID+1) + 4 | |||
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 | 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 | if tier.minLevel <= level and (tier.maxLevel == nil or tier.maxLevel >= level) then | ||
return p.getSlayerTierByID(i - 1) | |||
end | end | ||
end | end | ||
end | end | ||
-- | -- | ||
-- the following | -- the following functions just return subsets of the slayer functions above | ||
-- | -- | ||
function p.getSlayerTierName( | function p.getSlayerTierName(tierID, fallback) | ||
return type(tierID) == 'number' and ConstantData.slayerTier[tierID] or "ERROR: Invalid Slayer tier[[Category:Pages with script errors]]" | |||
end | end | ||
function p.getSlayerTierNameByLevel(lvl, fallback) | function p.getSlayerTierNameByLevel(lvl, fallback) | ||
local tier = p.getSlayerTierByLevel(lvl) | local tier = p.getSlayerTierByLevel(lvl) | ||
if tier | 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 | end | ||
Line 535: | 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 | ['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) |