48
edits
(Update for v1.1) |
(Add "For Each Unholy Mark stack on the enemy:" to unholy prayers) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local Shared = require('Module:Shared') | local Shared = require('Module:Shared') | ||
Line 19: | Line 17: | ||
function p.getPrayers(checkFunc) | function p.getPrayers(checkFunc) | ||
return GameData.getEntities(' | return GameData.getEntities('prayers', checkFunc) | ||
end | |||
--Returns the expansion icon for the prayer if it has one | |||
function p.getExpansionIcon(frame) | |||
local prayerName = frame.args ~= nil and frame.args[1] or frame | |||
local prayer = p.getPrayer(prayerName) | |||
if prayer == nil then | |||
return Shared.printError('No prayer named "' .. prayerName .. '" exists in the data module') | |||
end | |||
return Icons.getExpansionIcon(prayer.id) | |||
end | end | ||
Line 43: | Line 52: | ||
local chr = asList and '* ' or '' | local chr = asList and '* ' or '' | ||
local bonusLines = {} | local bonusLines = {} | ||
if prayer.isUnholy then | |||
table.insert(bonusLines, "For each Unholy Mark stack on the enemy:") | |||
end | |||
if type(prayer.modifiers) == 'table' then | if type(prayer.modifiers) == 'table' then | ||
for bonusKey, bonusVal in Shared.skpairs(prayer.modifiers) do | for bonusKey, bonusVal in Shared.skpairs(prayer.modifiers) do | ||
Line 76: | Line 89: | ||
local prayer = p.getPrayer(prayerName) | local prayer = p.getPrayer(prayerName) | ||
if prayer == nil then | if prayer == nil then | ||
return | return Shared.printError('No prayer named "' .. prayerName .. '" exists in the data module') | ||
end | end | ||
Line 90: | Line 103: | ||
return p.getPrayerEffect(prayer) | return p.getPrayerEffect(prayer) | ||
elseif statName == 'prayerLevel' then | elseif statName == 'prayerLevel' then | ||
return Icons._SkillReq('Prayer', prayer | return Icons._SkillReq('Prayer', prayer.level) | ||
else | else | ||
return prayer[statName] | return prayer[statName] | ||
Line 101: | Line 114: | ||
local prayer = p.getPrayer(prayerName) | local prayer = p.getPrayer(prayerName) | ||
if prayer == nil then | if prayer == nil then | ||
return | return Shared.printError('No prayer named "' .. prayerName .. '" exists in the data module') | ||
end | end | ||
Line 115: | Line 128: | ||
local prayer = p.getPrayer(prayerName) | local prayer = p.getPrayer(prayerName) | ||
if prayer == nil then | if prayer == nil then | ||
return | return Shared.printError('No prayer named "' .. prayerName .. '" exists in the data module') | ||
end | end | ||
Line 122: | Line 135: | ||
function p.getPrayerTable(frame) | function p.getPrayerTable(frame) | ||
return p.getPrayerTableFiltered(frame, function(prayer) return true end) | |||
end | |||
function p.getUnholyPrayerTable(frame) | |||
return p.getPrayerTableFiltered(frame, function(prayer) return prayer.isUnholy end) | |||
end | |||
function p.getPrayerTableFiltered(frame, prayerPredicate) | |||
local result = '{| class="wikitable sortable stickyHeader"' | local result = '{| class="wikitable sortable stickyHeader"' | ||
result = result..'\r\n|-class=headerRow-0' | result = result..'\r\n|-class=headerRow-0' | ||
result = result..'\r\n!colspan="2"|Prayer!!'..Icons.Icon({"Prayer", type="skill", notext=true})..' | result = result..'\r\n!colspan="2"|Prayer!!'..Icons.Icon({"Prayer", type="skill", notext=true})..' Level' | ||
result = result..'!!Effects!!Point Cost' | result = result..'!!Effects!!Point Cost' | ||
local prayerList = p.getPrayers( | local prayerList = p.getPrayers(prayerPredicate) | ||
table.sort(prayerList, function(a, b) | table.sort(prayerList, function(a, b) | ||
if a.level == b.level then | if a.level == b.level then | ||
Line 139: | Line 160: | ||
result = result..'\r\n|-' | result = result..'\r\n|-' | ||
result = result..'\r\n|'..Icons.Icon({prayer.name, type='prayer', notext=true, size='50'}) | result = result..'\r\n|'..Icons.Icon({prayer.name, type='prayer', notext=true, size='50'}) | ||
result = result..'||'..Icons.Icon({prayer.name, type='prayer', noicon=true})..'||'..prayer. | result = result..'||' .. Icons.getExpansionIcon(prayer.id) .. Icons.Icon({prayer.name, type='prayer', noicon=true}) | ||
result = result..'||style="text-align:right;"| '..prayer.level | |||
result = result..'||'..p._getPrayerEffect(prayer) | result = result..'||'..p._getPrayerEffect(prayer) | ||
result = result..'||'..p.getPrayerCost(prayer) | result = result..'||'..p.getPrayerCost(prayer) | ||
Line 158: | Line 180: | ||
result = result..'\r\n|-' | result = result..'\r\n|-' | ||
result = result..'\r\n|'..Icons.Icon({item.name, type='item', notext=true, size='50'}) | result = result..'\r\n|'..Icons.Icon({item.name, type='item', notext=true, size='50'}) | ||
result = result..'||'..Icons.Icon({item.name, type='item', noicon=true}) | result = result..'||' .. Icons.getExpansionIcon(item.id) .. Icons.Icon({item.name, type='item', noicon=true}) | ||
result = result..'||style="text-align:right;"|'..Shared.formatnum(item.prayerPoints) | result = result..'||style="text-align:right;"|'..Shared.formatnum(item.prayerPoints) | ||
result = result..'||'..ItemSources._getItemSources(item, false, false) | result = result..'||'..ItemSources._getItemSources(item, false, false) |
edits