<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AOffering</id>
	<title>Module:Offering - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AOffering"/>
	<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:Offering&amp;action=history"/>
	<updated>2026-04-06T15:55:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://mbwiki.stairwaygames.work/w/index.php?title=Module:Offering&amp;diff=6885&amp;oldid=prev</id>
		<title>Admin coral island: Created page with &quot;local p = {} local lib = require(&#039;Module:Feature&#039;) local Icon = require(&#039;Module:Icon&#039;)._main local category = mw.html.create()  function p.main(frame) 	local args = require(&#039;Module:Arguments&#039;).getArgs(frame, { 		parentFirst = true, 		removeBlanks = false, 		wrapper = { &#039;Template:Offering&#039; } 	}) 	return p._main(args) end  function p._main(args) 	local _table = mw.html.create(&#039;table&#039;):addClass(&#039;article-table fandom-table tdc2 tdc1 thc1 thc2 thc3 thc4 tdbg1&#039;) 	local options...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:Offering&amp;diff=6885&amp;oldid=prev"/>
		<updated>2023-08-09T10:39:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {} local lib = require(&amp;#039;Module:Feature&amp;#039;) local Icon = require(&amp;#039;Module:Icon&amp;#039;)._main local category = mw.html.create()  function p.main(frame) 	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, { 		parentFirst = true, 		removeBlanks = false, 		wrapper = { &amp;#039;Template:Offering&amp;#039; } 	}) 	return p._main(args) end  function p._main(args) 	local _table = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;article-table fandom-table tdc2 tdc1 thc1 thc2 thc3 thc4 tdbg1&amp;#039;) 	local options...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local lib = require(&amp;#039;Module:Feature&amp;#039;)&lt;br /&gt;
local Icon = require(&amp;#039;Module:Icon&amp;#039;)._main&lt;br /&gt;
local category = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		parentFirst = true,&lt;br /&gt;
		removeBlanks = false,&lt;br /&gt;
		wrapper = { &amp;#039;Template:Offering&amp;#039; }&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local _table = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;article-table fandom-table tdc2 tdc1 thc1 thc2 thc3 thc4 tdbg1&amp;#039;)&lt;br /&gt;
	local options = {&lt;br /&gt;
		delim = args.delim or &amp;#039;;&amp;#039;,&lt;br /&gt;
		amount_delim = args.amount_delim or &amp;#039;*&amp;#039;,&lt;br /&gt;
		quality_delim = args.quality_delim or &amp;#039;/&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	--headers&lt;br /&gt;
	local tr = _table:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	tr:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Offering&amp;#039;)&lt;br /&gt;
	tr:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;No of items&amp;#039;)&lt;br /&gt;
	tr:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Possible items&amp;#039;)&lt;br /&gt;
	tr:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Rewards&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	local i = &amp;#039;1&amp;#039;&lt;br /&gt;
	while args[i .. &amp;#039;_name&amp;#039;] do&lt;br /&gt;
		local tr = _table:tag(&amp;#039;tr&amp;#039;):attr(&amp;#039;id&amp;#039;, args[i .. &amp;#039;_name&amp;#039;])&lt;br /&gt;
		tr:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;[[File:&amp;#039;, args[i .. &amp;#039;_name&amp;#039;], &amp;#039; Offering.png|60px|link=]]&amp;lt;br /&amp;gt;&amp;#039;, args[i .. &amp;#039;_name&amp;#039;])&lt;br /&gt;
		tr:tag(&amp;#039;td&amp;#039;):wikitext(args[i .. &amp;#039;_amount&amp;#039;] or &amp;#039;5&amp;#039;)&lt;br /&gt;
		options.str = args[i .. &amp;#039;_items&amp;#039;]&lt;br /&gt;
		tr:tag(&amp;#039;td&amp;#039;):node(p.parseItems(options, 2, &amp;#039;Offering needs&amp;#039;))&lt;br /&gt;
		options.str = args[i .. &amp;#039;_reward&amp;#039;]&lt;br /&gt;
		tr:tag(&amp;#039;td&amp;#039;):node(p.parseItems(options, false, &amp;#039;Offering rewards&amp;#039;))&lt;br /&gt;
		i = tostring(tonumber(i)+1)&lt;br /&gt;
	end&lt;br /&gt;
	_table:node(require(&amp;#039;Module:Namespace detect&amp;#039;).main{main=category})&lt;br /&gt;
	return _table&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.checkQuality(entry, notePattern)&lt;br /&gt;
	if notePattern then&lt;br /&gt;
		item, quality = entry:match(notePattern)&lt;br /&gt;
		if item == nil then -- will be nil if note is not present&lt;br /&gt;
			return entry&lt;br /&gt;
		end&lt;br /&gt;
		return item, quality&lt;br /&gt;
	end&lt;br /&gt;
	return entry&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parseItems(data, columns, catPrefix)&lt;br /&gt;
	if not tostring(data.str) then return &amp;#039;&amp;#039; end&lt;br /&gt;
	local itemDelim = data.delim&lt;br /&gt;
	local countDelim = data.amount_delim&lt;br /&gt;
	local qualityDelim = data.quality_delim&lt;br /&gt;
	&lt;br /&gt;
	-- put all text after the first qualityDelim into the second capture&lt;br /&gt;
	local qualityPattern&lt;br /&gt;
	if lib.isNotEmpty(qualityDelim) then&lt;br /&gt;
		qualityPattern = &amp;#039;^(.-)&amp;#039; .. qualityDelim .. &amp;#039;(.*)$&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local items = mw.html.create():tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
	if tonumber(columns) ~= nil then&lt;br /&gt;
		items:addClass(&amp;#039;columntemplate&amp;#039;):css{ [&amp;#039;-moz-column-count&amp;#039;] = columns, [&amp;#039;-webkit-column-count&amp;#039;] = columns, [&amp;#039;column-count&amp;#039;] = columns }&lt;br /&gt;
	end&lt;br /&gt;
	-- mw.logObject(data) -- debug&lt;br /&gt;
	for i, entry in ipairs(lib.split(data.str, itemDelim, {noTrim=true})) do&lt;br /&gt;
		if not lib.isEmpty(entry) then&lt;br /&gt;
			local item, quality = p.checkQuality(entry, qualityPattern) --check for item quality&lt;br /&gt;
			local item_parts = lib.split(item, countDelim) --check for item amount&lt;br /&gt;
			local name = item_parts[1]&lt;br /&gt;
			local amount = item_parts[2] or &amp;#039;1&amp;#039;&lt;br /&gt;
			items:node(Icon{&lt;br /&gt;
				name = name,&lt;br /&gt;
				amount = amount or 1,&lt;br /&gt;
				q = quality or &amp;#039;0&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
			if catPrefix then&lt;br /&gt;
				category:wikitext(&amp;#039;[[Category:&amp;#039;, catPrefix, &amp;#039; &amp;#039;, string.lower(name) ,&amp;#039;]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return items&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin coral island</name></author>
	</entry>
</feed>