<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MudletPackage>
<MudletPackage version="1.0">
    <ScriptPackage>
        <ScriptGroup isActive="yes" isFolder="yes">
            <name>elixsummary</name>
            <packageName></packageName>
            <script>function pairsByKeys (t, f) --table sorting function
  local a = {}
  -- build temporary table of the keys
  for n in pairs (t) do 
    table.insert (a, tostring(n)) 
  end
  table.sort (a, f)  -- sort using supplied function, if any
  local i = 0        -- iterator variable
  return function () -- iterator function
    i = i + 1
    return tonumber(a[i]) or a[i], t[tonumber(a[i]) or a[i]]
  end  -- iterator function
end -- pairsByKeys

return pairsByKeys
</script>
            <eventHandlerList/>
            <Script isActive="yes" isFolder="no">
                <name>elixsum</name>
                <packageName></packageName>
                <script>function elistParse(contents,sipnum)
	if string.find(normal_elix,string.lower(contents)) then
		elixsum[contents].sips = tonumber(elixsum[contents].sips) + tonumber(sipnum)
		elixsum[contents].vials = tonumber(elixsum[contents].vials) + 1
	elseif contents == &quot;empty&quot; then
		elixsum.empty.vials = tonumber(elixsum.empty.vials)+1
	end
end

normal_elix = &quot;mending|health|levitation|caloric|frost|venom|restoration|speed|epidermal|mana|immunity|mass&quot;

function elistReset()
	elixsum = {
		[&quot;mending&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;salve&quot;,
		},
		[&quot;health&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;levitation&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;caloric&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;salve&quot;,
		},
		[&quot;frost&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;venom&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;restoration&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;salve&quot;,
		},
		[&quot;speed&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;epidermal&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;salve&quot;,
		},
		[&quot;mana&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;immunity&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;elixir&quot;,
		},
		[&quot;mass&quot;] = {
			[&quot;sips&quot;] = 0,
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;salve&quot;,
		},
		[&quot;empty&quot;] = {
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;misc&quot;,
		},
		[&quot;rum&quot;] = {
			[&quot;vials&quot;] = 0,
			[&quot;type&quot;] = &quot;none&quot;,
		},
	}
end

displayElix = function ()
	echo(&quot;\nElixir&quot;..string.rep(&quot; &quot;,11)..&quot;sips&quot;..string.rep(&quot; &quot;,12)..&quot;vials\n&quot;)
	echo(string.rep(&quot;-&quot;,38))
	for k,v in pairsByKeys(elixsum) do
		if elixsum[k][&quot;type&quot;] == &quot;elixir&quot; then
			echo(&quot;\n&quot;..k..&quot;: &quot;..string.rep(&quot; &quot;,15-string.len(k))..elixsum[k][&quot;sips&quot;]..string.rep(&quot; &quot;,16-string.len(elixsum[k][&quot;sips&quot;]))..elixsum[k][&quot;vials&quot;])
		end
	end
	echo(&quot;\n\nSalve&quot;..string.rep(&quot; &quot;,12)..&quot;sips&quot;..string.rep(&quot; &quot;,12)..&quot;vials\n&quot;)
	echo(string.rep(&quot;-&quot;,38))
	for k,v in pairsByKeys(elixsum) do
		if elixsum[k][&quot;type&quot;] == &quot;salve&quot; then
			echo(&quot;\n&quot;..k..&quot;: &quot;..string.rep(&quot; &quot;,15-string.len(k))..elixsum[k][&quot;sips&quot;]..string.rep(&quot; &quot;,16-string.len(elixsum[k][&quot;sips&quot;]))..elixsum[k][&quot;vials&quot;])
		end
	end
	echo(&quot;\n\nMISC&quot;..string.rep(&quot; &quot;,29)..&quot;vials\n&quot;)
	echo(string.rep(&quot;-&quot;,38))
	for k,v in pairsByKeys(elixsum) do
		if elixsum[k][&quot;type&quot;] == &quot;misc&quot; then
			echo(&quot;\n&quot;..k..&quot;: &quot;..string.rep(&quot; &quot;,31-string.len(k))..elixsum[k][&quot;vials&quot;])
		end
	end
end</script>
                <eventHandlerList/>
            </Script>
            <Script isActive="yes" isFolder="no">
                <name>venomlist</name>
                <packageName></packageName>
                <script>function vlistParse(contents,dosenum)
	if string.find(normal_venom,string.lower(contents)) then
		venomsum[contents].doses = tonumber(venomsum[contents].doses) + tonumber(dosenum)
		venomsum[contents].vials = tonumber(venomsum[contents].vials) + 1
	end
end

normal_venom = &quot;xentio|oleander|eurypteria|kalmia|digitalis|darkshade|curare|epteth|prefarar|monkshood|colocasia|oculus|vernalius|epseth|larkspur|slike|voyria|delphinium|euphorbia|vardrax|loki|aconite|selarnia|gecko&quot;


displayVenom = function ()
	echo(&quot;\nVenom&quot;..string.rep(&quot; &quot;,11)..&quot;Doses&quot;..string.rep(&quot; &quot;,11)..&quot;vials\n&quot;)
	echo(string.rep(&quot;-&quot;,38))
	for k,v in pairsByKeys(venomsum) do
			echo(&quot;\n&quot;..k..&quot;: &quot;..string.rep(&quot; &quot;,15-string.len(k))..venomsum[k][&quot;doses&quot;]..string.rep(&quot; &quot;,16-string.len(venomsum[k][&quot;doses&quot;]))..venomsum[k][&quot;vials&quot;])
	end
end


function vlistReset()
	venomsum = {
		[&quot;xentio&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;oleander&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;eurypteria&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;kalmia&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;digitalis&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;darkshade&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;curare&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;epteth&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;prefarar&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;monkshood&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;colocasia&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;oculus&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;vernalius&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;epseth&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;larkspur&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;slike&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;voyria&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;euphorbia&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;delphinium&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;vardrax&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;loki&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;aconite&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;selarnia&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
		[&quot;gecko&quot;] = {
			[&quot;doses&quot;] = 0,
			[&quot;vials&quot;] = 0,
		},
	}
end</script>
                <eventHandlerList/>
            </Script>
        </ScriptGroup>
    </ScriptPackage>
    <TriggerPackage>
        <TriggerGroup isActive="yes" isFolder="yes" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
            <name>evsum</name>
            <script></script>
            <triggerType>0</triggerType>
            <conditonLineDelta>99</conditonLineDelta>
            <mStayOpen>0</mStayOpen>
            <mCommand></mCommand>
            <packageName></packageName>
            <mFgColor>#ff0000</mFgColor>
            <mBgColor>#ffff00</mBgColor>
            <mSoundFile></mSoundFile>
            <colorTriggerFgColor>#000000</colorTriggerFgColor>
            <colorTriggerBgColor>#000000</colorTriggerBgColor>
            <regexCodeList/>
            <regexCodePropertyList/>
            <TriggerGroup isActive="no" isFolder="yes" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                <name>elixsum</name>
                <script></script>
                <triggerType>0</triggerType>
                <conditonLineDelta>99</conditonLineDelta>
                <mStayOpen>0</mStayOpen>
                <mCommand></mCommand>
                <packageName></packageName>
                <mFgColor>#ff0000</mFgColor>
                <mBgColor>#ffff00</mBgColor>
                <mSoundFile></mSoundFile>
                <colorTriggerFgColor>#000000</colorTriggerFgColor>
                <colorTriggerBgColor>#000000</colorTriggerBgColor>
                <regexCodeList/>
                <regexCodePropertyList/>
                <Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                    <name>elist2</name>
                    <script>elistParse(matches[2],matches[3])
deleteLine()</script>
                    <triggerType>0</triggerType>
                    <conditonLineDelta>99</conditonLineDelta>
                    <mStayOpen>0</mStayOpen>
                    <mCommand></mCommand>
                    <packageName></packageName>
                    <mFgColor>#ff0000</mFgColor>
                    <mBgColor>#ffff00</mBgColor>
                    <mSoundFile></mSoundFile>
                    <colorTriggerFgColor>#000000</colorTriggerFgColor>
                    <colorTriggerBgColor>#000000</colorTriggerBgColor>
                    <regexCodeList>
                        <string>^(?:\w+)\s+(?:a|an|red|blue|green|yellow|purple|gold|black)?\s(?:elixir|salve)?\s?(?:of)?\s?(\w+)\s?(?:salve)?\s+(\d+)\s+((\d+)|---)$</string>
                    </regexCodeList>
                    <regexCodePropertyList>
                        <integer>1</integer>
                    </regexCodePropertyList>
                </Trigger>
                <Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="yes" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                    <name>end elixsum</name>
                    <script>displayElix()
disableTrigger(&quot;elixsum&quot;)
send(&quot; &quot;)</script>
                    <triggerType>0</triggerType>
                    <conditonLineDelta>1</conditonLineDelta>
                    <mStayOpen>0</mStayOpen>
                    <mCommand></mCommand>
                    <packageName></packageName>
                    <mFgColor>#ff0000</mFgColor>
                    <mBgColor>#ffff00</mBgColor>
                    <mSoundFile></mSoundFile>
                    <colorTriggerFgColor>#000000</colorTriggerFgColor>
                    <colorTriggerBgColor>#000000</colorTriggerBgColor>
                    <regexCodeList>
                        <string>^(?:\w+)\s+(?:a|an|red|blue|green|yellow|purple|gold|black)?\s(?:elixir|salve)?\s?(?:of)?\s?(\w+)\s?(?:salve)?\s+(\d+)\s+((\d+)|---)$</string>
                        <string>return isPrompt()</string>
                    </regexCodeList>
                    <regexCodePropertyList>
                        <integer>1</integer>
                        <integer>4</integer>
                    </regexCodePropertyList>
                </Trigger>
                <Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                    <name>egag</name>
                    <script>deleteLine()</script>
                    <triggerType>0</triggerType>
                    <conditonLineDelta>0</conditonLineDelta>
                    <mStayOpen>0</mStayOpen>
                    <mCommand></mCommand>
                    <packageName></packageName>
                    <mFgColor>#ff0000</mFgColor>
                    <mBgColor>#ffff00</mBgColor>
                    <mSoundFile></mSoundFile>
                    <colorTriggerFgColor>#000000</colorTriggerFgColor>
                    <colorTriggerBgColor>#000000</colorTriggerBgColor>
                    <regexCodeList>
                        <string>Vial                          Elixir                   Sips      Months Left</string>
                        <string>----------------------------------------------------------------------------</string>
                    </regexCodeList>
                    <regexCodePropertyList>
                        <integer>3</integer>
                        <integer>3</integer>
                    </regexCodePropertyList>
                </Trigger>
            </TriggerGroup>
            <TriggerGroup isActive="no" isFolder="yes" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                <name>venomsum</name>
                <script></script>
                <triggerType>0</triggerType>
                <conditonLineDelta>99</conditonLineDelta>
                <mStayOpen>0</mStayOpen>
                <mCommand></mCommand>
                <packageName></packageName>
                <mFgColor>#ff0000</mFgColor>
                <mBgColor>#ffff00</mBgColor>
                <mSoundFile></mSoundFile>
                <colorTriggerFgColor>#000000</colorTriggerFgColor>
                <colorTriggerBgColor>#000000</colorTriggerBgColor>
                <regexCodeList/>
                <regexCodePropertyList/>
                <Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                    <name>vlist2</name>
                    <script>vlistParse(matches[2],matches[3])
deleteLine()</script>
                    <triggerType>0</triggerType>
                    <conditonLineDelta>3</conditonLineDelta>
                    <mStayOpen>0</mStayOpen>
                    <mCommand></mCommand>
                    <packageName></packageName>
                    <mFgColor>#ff0000</mFgColor>
                    <mBgColor>#ffff00</mBgColor>
                    <mSoundFile></mSoundFile>
                    <colorTriggerFgColor>#000000</colorTriggerFgColor>
                    <colorTriggerBgColor>#000000</colorTriggerBgColor>
                    <regexCodeList>
                        <string>^Vial\d+\s+the venom (\w+)\s+(\d+)\s+\d+$</string>
                    </regexCodeList>
                    <regexCodePropertyList>
                        <integer>1</integer>
                    </regexCodePropertyList>
                </Trigger>
                <Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="no" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                    <name>vgag</name>
                    <script>deleteLine()</script>
                    <triggerType>0</triggerType>
                    <conditonLineDelta>40</conditonLineDelta>
                    <mStayOpen>0</mStayOpen>
                    <mCommand></mCommand>
                    <packageName></packageName>
                    <mFgColor>#ff0000</mFgColor>
                    <mBgColor>#ffff00</mBgColor>
                    <mSoundFile></mSoundFile>
                    <colorTriggerFgColor>#000000</colorTriggerFgColor>
                    <colorTriggerBgColor>#000000</colorTriggerBgColor>
                    <regexCodeList>
                        <string>-----------------------------------------------------------------------</string>
                        <string>Vial                     Venom                    Doses     Months Left</string>
                    </regexCodeList>
                    <regexCodePropertyList>
                        <integer>3</integer>
                        <integer>3</integer>
                    </regexCodePropertyList>
                </Trigger>
                <Trigger isActive="yes" isFolder="no" isTempTrigger="no" isMultiline="yes" isPerlSlashGOption="no" isColorizerTrigger="no" isFilterTrigger="no" isSoundTrigger="no" isColorTrigger="no" isColorTriggerFg="no" isColorTriggerBg="no">
                    <name>end venomsum</name>
                    <script>displayVenom()
disableTrigger(&quot;venomsum&quot;)</script>
                    <triggerType>0</triggerType>
                    <conditonLineDelta>1</conditonLineDelta>
                    <mStayOpen>0</mStayOpen>
                    <mCommand></mCommand>
                    <packageName></packageName>
                    <mFgColor>#ff0000</mFgColor>
                    <mBgColor>#ffff00</mBgColor>
                    <mSoundFile></mSoundFile>
                    <colorTriggerFgColor>#000000</colorTriggerFgColor>
                    <colorTriggerBgColor>#000000</colorTriggerBgColor>
                    <regexCodeList>
                        <string>^Vial\d+\s+the venom (\w+)\s+(\d+)\s+\d+$</string>
                        <string>return isPrompt()</string>
                    </regexCodeList>
                    <regexCodePropertyList>
                        <integer>1</integer>
                        <integer>4</integer>
                    </regexCodePropertyList>
                </Trigger>
            </TriggerGroup>
        </TriggerGroup>
    </TriggerPackage>
    <AliasPackage>
        <AliasGroup isActive="yes" isFolder="yes">
            <name>evsum</name>
            <script></script>
            <command></command>
            <packageName></packageName>
            <regex></regex>
            <Alias isActive="yes" isFolder="no">
                <name>^elixsum$</name>
                <script>elistReset()
send(&quot;elist2&quot;,false)
enableTrigger(&quot;elixsum&quot;)</script>
                <command></command>
                <packageName></packageName>
                <regex>^elixsum$</regex>
            </Alias>
            <Alias isActive="yes" isFolder="no">
                <name>^vsum$</name>
                <script>vlistReset()
send(&quot;vlist2&quot;,false)
enableTrigger(&quot;venomsum&quot;)</script>
                <command></command>
                <packageName></packageName>
                <regex>^vsum$</regex>
            </Alias>
        </AliasGroup>
    </AliasPackage>
</MudletPackage>
