<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Thursday, June 11, 2009, 2:24 AM -->
<!-- MuClient version 4.37 -->

<!-- Plugin "Rats" generated by Plugin Wizard -->

<muclient>
<plugin
   name="Rats"
   author="Aviolana"
   id="4fee48c248ecfed068fd3f29"
   language="Lua"
   purpose="Rat Gold Tracker"
   date_written="2009-06-11 02:17:48"
   requires="4.37"
   version="1.0"
   >
<description trim="y">
<![CDATA[
Using the alias rat gold will show you how much gold you have from killing rats, and rat reset will reset the amount of gold you have to 0. If you wish to track the rats you have in your hand, you will need to use the rat reset alias every time you sell them. 
]]>
</description>

</plugin>


<!--  Triggers  -->

<triggers>
  <trigger
   enabled="y"
   ignore_case="y"
   keep_evaluating="y"
   match="^You have slain an? (black rat|old rat|rat|young rat|baby rat), retrieving the corpse\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>rats.num = rats.num + 1
rats.gold = rats.gold  + rats.table["%1"]
rats.killed["%1"] = rats.killed["%1"] + 1
rats.show ()</send>
  </trigger>
</triggers>

<!--  Aliases  -->

<aliases>
  <alias
   match="^rat gold$"
   enabled="y"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>rats.complex ()</send>
  </alias>
  <alias
   match="^rat reset$"
   enabled="y"
   regexp="y"
   send_to="12"
   ignore_case="y"
   sequence="100"
  >
  <send>AnsiNote (ansicolor (), "Rat gold reset.")
for k, v in pairs (rats.killed) do rats.killed[k] =  0 end
rats.gold = 0
rats.num = 0</send>
  </alias>
</aliases>

<!--  Script  -->


<script>
<![CDATA[
ansicolor = function (fore, back)
  local bold = false
  local fore = tonumber (fore) or 7
  if fore >= 0 and fore <= 7 then
    fore = fore + 30
  elseif fore >= 8 and fore <= 15 then
    fore = fore + 22
    bold = true
  else
    fore = 37
  end -- if
  local back = tonumber (back) or 0
  if back > 0 and back <= 7 then
    back = back + 40
  else
    back = 40
  end -- if
  if not bold then
    return ANSI (0, fore, back)
  else
    return ANSI (0, fore, 1, back)
  end -- if
end -- func



rats = {}

rats.num = 0

rats.gold = 0

rats.killed = {}
rats.killed["black rat"] = 0
rats.killed["old rat"] = 0
rats.killed["rat"] = 0
rats.killed["young rat"] = 0
rats.killed["baby rat"] = 0

rats.table = {}
rats.table["black rat"] = 35
rats.table["old rat"] = 28
rats.table["rat"] = 21
rats.table["young rat"] = 14
rats.table["baby rat"] = 7

rats.complex = function ()
  AnsiNote (ansicolor (), string.format ("%-9s %4s %s\n", "rat", "num", "gold"))
  for k, v in ipairs ({"black rat", "old rat", "rat", "young rat", "baby rat"}) do
    AnsiNote (ansicolor (), string.format ("%-9s %4s (%s)", v, rats.killed[v], rats.table[v] * rats.killed[v]))
  end
  Note ()
  rats.show ()
  Send ()
end

rats.show = function ()
   AnsiNote (ansicolor (), "You have killed " .. rats.num .. " rats, worth ".. rats.gold .. " gold.")
end


]]>
</script>


<!--  Plugin help  -->

<aliases>
  <alias
   script="OnHelp"
   match="Rats:help"
   enabled="y"
  >
  </alias>
</aliases>

<script>
<![CDATA[
function OnHelp ()
  world.Note (world.GetPluginInfo (world.GetPluginID (), 3))
end
]]>
</script> 

</muclient>
