macros += M 1 '
macros += M 2 .
macros += K2 1 +
macros += K2 2 .
macros += M 3 za
macros += M 4 zb
macros += M s zk
macros += M z z?
macros += M Z Z?
macros += M ` o
macros += M \{-265} f.\{27}
macros += M \{-266} zff
macros += M \{-250} ===toggle_autothrow
spell_slot ^= Apportation: f
#{ function c_answer_prompt(prompt) if prompt:find("Really attack near your") then return true end end }
always_show_zot = true
small_more = true
local aft = false
function toggle_autothrow()
  if aft then
    crawl.setopt("use_animations += beam")
    crawl.setopt("autofight_throw = false")
    crawl.mpr("Autofight_throw is off.")
  else
    crawl.setopt("use_animations -= beam")
    crawl.setopt("autofight_throw = true")
    crawl.mpr("Autofight_throw is on.")
  end
  aft = not aft
end
<
  function ready()
    AnnounceDamage()
  end
>
<
  local previous_hp = 0
  local previous_mp = 0
  local previous_form = ""
  local was_berserk_last_turn = false
 
  function AnnounceDamage()
    local current_hp, max_hp = you.hp()
    local current_mp, max_mp = you.mp()
    --Things that increase hp/mp temporarily really mess with this
    local current_form = you.transform()
    local you_are_berserk = you.berserk()
    local max_hp_increased = false
    local max_hp_decreased = false
    if (current_form ~= previous_form) then
      if (previous_form:find("dragon") or 
          previous_form:find("statue") or
          previous_form:find("tree") or
          previous_form:find("ice")) then
        max_hp_decreased = true
      elseif (current_form:find("dragon") or 
          current_form:find("statue") or
          current_form:find("tree") or
          current_form:find("ice")) then
        max_hp_increased = true
      end
    end
    if (was_berserk_last_turn and not you_are_berserk) then
      max_hp_decreased = true
    elseif (you_are_berserk and not was_berserk_last_turn) then
      max_hp_increased = true
    end
    
    --crawl.mpr(string.format("previous_form is: %s", previous_form))
    --crawl.mpr(string.format("current_form is: %s", current_form))
    --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False"))
    --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False"))
    
    --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False"))
    --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False"))
    
    
    --Skips message on initializing game
    if previous_hp > 0 then
      local hp_difference = previous_hp - current_hp
      local mp_difference = previous_mp - current_mp
      
      if max_hp_increased or max_hp_decreased then
        if max_hp_increased then 
          crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. "hp.")
        else
          crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
        end
      else
        --On losing health
        if (current_hp < previous_hp) then
          if current_hp <= (max_hp * 0.30) then
            crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
          elseif current_hp <= (max_hp * 0.50) then
            crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
          elseif current_hp <= (max_hp *  0.70) then
            crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
          elseif current_hp <= (max_hp * 0.90) then
            crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
          else
            crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
          end
          if hp_difference > (max_hp * 0.20) then
            crawl.mpr("NOW THAT'S A LOTTA DAMAGE!!")
          end
        end
  
        --On gaining more than 1 health
        if (current_hp > previous_hp) then
          --Removes the negative sign
          local health_inturn = (0 - hp_difference)
          if (health_inturn > 1) and not (current_hp == max_hp) then
            if current_hp <= (max_hp * 0.30) then
              crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
            elseif current_hp <= (max_hp * 0.50) then
              crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
            elseif current_hp <= (max_hp *  0.70) then
              crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
            elseif current_hp <= (max_hp * 0.90) then
              crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
            else
              crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
            end
          end
          if (current_hp == max_hp) then
            crawl.mpr("Health restored: " .. current_hp .. "")
          end
        end
 
        --On gaining more than 1 magic
        if (current_mp > previous_mp) then
          --Removes the negative sign
          local mp_inturn = (0 - mp_difference)
          if (mp_inturn > 1) and not (current_mp == max_mp) then
            if current_mp < (max_mp * 0.25) then 
              crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
            elseif current_mp < (max_mp * 0.50) then 
              crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")            else
              crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
            end
          end
          if (current_mp == max_mp) then
            crawl.mpr("MP restored: " .. current_mp .. "")
          end
        end
  
        --On losing magic
        if current_mp < previous_mp then
          if current_mp <= (max_mp / 5) then
            crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")      
          elseif current_mp <= (max_mp / 2) then
            crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
          else
            crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
          end
        end
      end
    end
    
    --Set previous hp/mp and form at end of turn
    previous_hp = current_hp
    previous_mp = current_mp
    previous_form = current_form
    was_berserk_last_turn = you_are_berserk
end
>
cloud_status = true
simple_targeting = false
skill_focus = false
tile_show_threat_levels = trivial, easy, tough, nasty
tile_filter_scaling = true
default_show_all_skills = true
default_manual_training = true
show_more = false
bold_brightens_foreground = true
autofight_caught = true
item_slot += weapon: ab
explore_delay = -1
travel_delay = -1
rest_delay = -1
show_travel_trail = false
travel_key_stop = false
easy_confirm = all
force_more_message -= vehumet offers you knowledge
tile_show_demon_tier = true
use_animations -= hp
#use_animations = false
hp_colour = 0:green
mp_colour = 0:blue
ability_slot ^=Heroism:b
ability_slot ^=Finesse:d
item_slot ^= potion of curing:q
item_slot ^= potion of heal wounds:w
item_slot ^= potion of haste:h
item_slot ^= potion of might:d
item_slot ^= potion of resistance:n
item_slot ^= scroll of identify:r
item_slot ^= scroll of remove curse:x
item_slot ^= scroll of teleportation:t
item_slot ^= scroll of blinking:z
item_slot ^= wand of digging:d
item_slot ^= condenser vane:v
item_slot ^= box of beasts:B
item_slot ^= ring of protection: p
item_slot ^= ring of protection from cold: k
item_slot ^= ring of resist corrosion: k
item_slot ^= ring of evasion: l
item_slot ^= ring of protection from fire: f
item_slot ^= ring of see invisible: i
item_slot ^= ring of protection from magic: m
item_slot ^= ring of poison resistance: o
item_slot ^= ring of slaying: j
autopickup_exceptions -= dangerous_item
menu_colour += cyan:brand weapon
menu_colour += cyan:enchant weapon
menu_colour += cyan:enchant armour
menu_colour += cyan:magic mapping
menu_colour += green:potions? of might
menu_colour += green:potions? of agility
menu_colour += green:potions? of brilliance
menu_colour += green:potions? of haste
menu_colour += green:potions? of resistance
menu_colour += green:potions? of berserk
menu_colour += cyan:wand of para
menu_colour += cyan:wand of conf
menu_colour += cyan:wand of poly
menu_colour += cyan:wand of ensl
menu_colour += cyan:wand of dis
{
add_autopickup_func(function(it, name)
if it.is_useless then return
end
if it.class(true) == "armour" then
local good_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots"}
st, _ = it.subtype()
if good_slots[st] ~= nil and items.equipped_at(good_slots[st]) == nil then return true
end
end
end)
}
autopickup_exceptions += >mulet of the acrobat
autopickup_exceptions += >mulet of faith
autopickup_exceptions += >mulet of guardian spirit
autopickup_exceptions += >mulet of magic regeneration
autopickup_exceptions += >mulet of reflection
autopickup_exceptions += >mulet of regeneration
autopickup_exceptions += >mulet of magic regeneration
autopickup_exceptions += >ing of willpower
autopickup_exceptions += >ing of dexterity
autopickup_exceptions += >ing of evasion
autopickup_exceptions += >ing of fire
autopickup_exceptions += >ing of flight
autopickup_exceptions += >ing of ice
autopickup_exceptions += >ing of intelligence
autopickup_exceptions += >ing of magical power
autopickup_exceptions += >ing of poison resistance
autopickup_exceptions += >ing of positive energy
autopickup_exceptions += >ing of protection
autopickup_exceptions += >ing of protection from cold
autopickup_exceptions += >ing of protection from fire
autopickup_exceptions += >ing of resist corrosion
autopickup_exceptions += >ing of see invisible
autopickup_exceptions += >ing of slaying
autopickup_exceptions += >ing of stealth
autopickup_exceptions += >ing of strength
autopickup_exceptions += >ing of wizardry
autopickup_exceptions +=