<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AWilderness_agility_calculator</id>
	<title>Module:Wilderness agility calculator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AWilderness_agility_calculator"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Wilderness_agility_calculator&amp;action=history"/>
	<updated>2026-05-01T17:30:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Wilderness_agility_calculator&amp;diff=38446&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local gePrice = require(&#039;Module:Exchange&#039;)._price local yesNo = require(&#039;module:Yesno&#039;) local coins = require(&#039;module:Coins&#039;)._amount local addCommas = require(&#039;module:Addcommas&#039;)._add  local p = {}  local lapRanges = {{1, 15}, {16, 30}, {31, 60}, {61, 65536}}  local angler = gePrice(&#039;Blighted anglerfish&#039;) angler = angler - math.floor(0.01 * angler) local manta = gePrice(&#039;Blighted manta ray&#039;) manta = manta - math.floor(0.01 * angler) local kbwan = gePrice(&#039;Blighted karam...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Wilderness_agility_calculator&amp;diff=38446&amp;oldid=prev"/>
		<updated>2024-10-17T10:24:11Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local gePrice = require(&amp;#039;Module:Exchange&amp;#039;)._price local yesNo = require(&amp;#039;module:Yesno&amp;#039;) local coins = require(&amp;#039;module:Coins&amp;#039;)._amount local addCommas = require(&amp;#039;module:Addcommas&amp;#039;)._add  local p = {}  local lapRanges = {{1, 15}, {16, 30}, {31, 60}, {61, 65536}}  local angler = gePrice(&amp;#039;Blighted anglerfish&amp;#039;) angler = angler - math.floor(0.01 * angler) local manta = gePrice(&amp;#039;Blighted manta ray&amp;#039;) manta = manta - math.floor(0.01 * angler) local kbwan = gePrice(&amp;#039;Blighted karam...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local gePrice = require(&amp;#039;Module:Exchange&amp;#039;)._price&lt;br /&gt;
local yesNo = require(&amp;#039;module:Yesno&amp;#039;)&lt;br /&gt;
local coins = require(&amp;#039;module:Coins&amp;#039;)._amount&lt;br /&gt;
local addCommas = require(&amp;#039;module:Addcommas&amp;#039;)._add&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local lapRanges = {{1, 15}, {16, 30}, {31, 60}, {61, 65536}}&lt;br /&gt;
&lt;br /&gt;
local angler = gePrice(&amp;#039;Blighted anglerfish&amp;#039;)&lt;br /&gt;
angler = angler - math.floor(0.01 * angler)&lt;br /&gt;
local manta = gePrice(&amp;#039;Blighted manta ray&amp;#039;)&lt;br /&gt;
manta = manta - math.floor(0.01 * angler)&lt;br /&gt;
local kbwan = gePrice(&amp;#039;Blighted karambwan&amp;#039;)&lt;br /&gt;
kbwan = kbwan - math.floor(0.01 * kbwan)&lt;br /&gt;
local restore = gePrice(&amp;#039;Blighted super restore(4)&amp;#039;)&lt;br /&gt;
restore = restore - math.floor(0.01 * restore)&lt;br /&gt;
&lt;br /&gt;
local steelBody = gePrice(&amp;#039;Steel platebody&amp;#039;)&lt;br /&gt;
steelBody = steelBody - math.floor(0.01 * steelBody)&lt;br /&gt;
&lt;br /&gt;
local mithChain = gePrice(&amp;#039;Mithril chainbody&amp;#039;)&lt;br /&gt;
mithChain = mithChain - math.floor(0.01 * mithChain)&lt;br /&gt;
local mithLegs = gePrice(&amp;#039;Mithril platelegs&amp;#039;)&lt;br /&gt;
mithLegs = mithLegs - math.floor(0.01 * mithLegs)&lt;br /&gt;
local mithSkirt = gePrice(&amp;#039;Mithril plateskirt&amp;#039;)&lt;br /&gt;
mithSkirt = mithSkirt - math.floor(0.01 * mithSkirt)&lt;br /&gt;
&lt;br /&gt;
local addyFull = gePrice(&amp;#039;Adamant full helm&amp;#039;)&lt;br /&gt;
addyFull = addyFull - math.floor(0.01 * addyFull)&lt;br /&gt;
local addyLegs = gePrice(&amp;#039;Adamant platelegs&amp;#039;)&lt;br /&gt;
addyLegs = addyLegs - math.floor(0.01 * addyLegs)&lt;br /&gt;
local addyBody = gePrice(&amp;#039;Adamant platebody&amp;#039;)&lt;br /&gt;
addyBody = addyBody - math.floor(0.01 * addyBody)&lt;br /&gt;
&lt;br /&gt;
local runeChain = gePrice(&amp;#039;Rune chainbody&amp;#039;)&lt;br /&gt;
runeChain = runeChain - math.floor(0.01 * runeChain)&lt;br /&gt;
local runeKite = gePrice(&amp;#039;Rune kiteshield&amp;#039;)&lt;br /&gt;
runeKite = runeKite - math.floor(0.01 * runeKite)&lt;br /&gt;
local runeMed = gePrice(&amp;#039;Rune med helm&amp;#039;)&lt;br /&gt;
runeMed = runeMed - math.floor(0.01 * runeMed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function lapGroupValue(lowerLap, sellNoted)&lt;br /&gt;
	local sellNoted = yesNo(sellNoted)&lt;br /&gt;
	local lapVal = 0&lt;br /&gt;
	&lt;br /&gt;
	if lowerLap == 1 then&lt;br /&gt;
		if sellNoted then&lt;br /&gt;
			lapVal = lapVal + (8 * 4.5 * (angler + manta + kbwan) + 7 * 1.5 * restore) / 31&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		lapVal = lapVal + (2 * addyBody + 2 * runeMed + addyFull + addyLegs + mithChain + mithLegs + mithSkirt + steelBody) / 10&lt;br /&gt;
	&lt;br /&gt;
	elseif lowerLap == 16 then&lt;br /&gt;
		if sellNoted then&lt;br /&gt;
			lapVal = lapVal + (8 * 8.5 * (angler + manta + kbwan) + 7 * 2.5 * restore) / 31&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		lapVal = lapVal + (addyFull + addyBody + addyLegs + mithChain + mithLegs + mithSkirt + runeChain + runeKite + runeMed) / 9&lt;br /&gt;
&lt;br /&gt;
	elseif lowerLap == 31 then&lt;br /&gt;
		if sellNoted then&lt;br /&gt;
			lapVal = lapVal + (8 * 13 * (angler + manta + kbwan) + 7 * 4.5 * restore) / 31&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		lapVal = lapVal + (2 * runeChain + 2 * runeKite + addyFull + addyBody + addyLegs + mithLegs + mithSkirt + runeMed) / 10&lt;br /&gt;
&lt;br /&gt;
	else&lt;br /&gt;
		if sellNoted then&lt;br /&gt;
			lapVal = lapVal + (8 * 17 * (angler + manta + kbwan) + 7 * 6 * restore) / 31&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		lapVal = lapVal + (6 * runeChain + 6 * runeKite + 2 * addyBody + 2 * runeMed + addyFull + addyLegs + mithLegs + mithSkirt) / 20&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return lapVal&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function getXp(laps)&lt;br /&gt;
	local nonTicketXp = 571.4 * laps&lt;br /&gt;
	if laps &amp;lt;= 10 then&lt;br /&gt;
		return nonTicketXp + 200 * laps&lt;br /&gt;
	elseif laps &amp;lt;= 50 then&lt;br /&gt;
		return nonTicketXp + 210 * laps&lt;br /&gt;
	elseif laps &amp;lt;= 100 then&lt;br /&gt;
		return nonTicketXp + 220 * laps&lt;br /&gt;
	else&lt;br /&gt;
		return nonTicketXp + 230 * laps&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local laps = tonumber(args.laps or 80)&lt;br /&gt;
	local sellNoted = yesNo(args.sellNoted or true)&lt;br /&gt;
	&lt;br /&gt;
	return p.calc(laps, sellNoted)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.calc(laps, sellNoted)&lt;br /&gt;
	local totalVal = -150000&lt;br /&gt;
	for i, lapRange in ipairs(lapRanges) do&lt;br /&gt;
		local lowerLap = lapRange[1]&lt;br /&gt;
		local upperLap = lapRange[2]&lt;br /&gt;
		local lapsInRange = upperLap - lowerLap + 1&lt;br /&gt;
		if laps &amp;lt; lowerLap then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local groupVal = lapGroupValue(lowerLap, sellNoted)&lt;br /&gt;
		if laps &amp;gt; upperLap then&lt;br /&gt;
			totalVal = totalVal + groupVal * lapsInRange&lt;br /&gt;
		else&lt;br /&gt;
			totalVal = totalVal + groupVal * (laps - lowerLap + 1)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	totalXp = addCommas(getXp(laps))&lt;br /&gt;
	return string.format(&amp;quot;Completing &amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt; consecutive laps earns a profit of %s and &amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt; experience (after tax, not including clues and un-noted supplies).&amp;quot;, laps, coins(totalVal), totalXp)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>