########## # Spells # ########## # Non-attack spells spell_slot += shroud of golubria:s spell_slot += regeneration:r spell_slot += flight:c spell_slot += control teleport:t spell_slot += swiftness:z spell_slot += repel missiles:x spell_slot += haste:H spell_slot += insulation:iI spell_slot += invisibility:i spell_slot += apportation:aA spell_slot += blink:B spell_slot += controlled blink:C spell_slot += borgnjor's revivification:R spell_slot += stoneskin:v spell_slot += ozocubu's armour:v spell_slot += necromutation:N spell_slot += recall:rR spell_slot += agony:h spell_slot += sublimation of blood:b spell_slot += projected noise:n spell_slot += cure poison:p spell_slot += death's door:D spell_slot += dig:D spell_slot += poison weapon:h spell_slot += blade hands:f spell_slot += ice form:d spell_slot += spider form:s spell_slot += shroud of golubria:s # low level spells spell_slot += call imp:s spell_slot += pain:f spell_slot += throw f.*:b spell_slot += confuse:e spell_slot += ensorcelled hibernation:f spell_slot += vampiric draining:e spell_slot += static discharge:s spell_slot += call canine familiar:d spell_slot += summon ice beast:f # mid-level spells spell_slot += stone arrow:f spell_slot += sticky flame:s spell_slot += throw icicle:f spell_slot += agony:h spell_slot += lee's rapid deconstruction:d spell_slot += iron shot:g spell_slot += poison arrow:h spell_slot += fireball:f spell_slot += bolt of.*:g spell_slot += ^.*cloud:g spell_slot += airstrike:s # high-level spells spell_slot += fire storm:F spell_slot += ice storm:F spell_slot += shatter:F spell_slot += tornado:F ############# # autofight # ############# # Trigger autofight stop at 50% HP autofight_stop += 50 # change DD autofight to stop at 30% : if you.race() == "Deep Dwarf" then autofight_stop += 30 : end ######################### # convenience functions # ######################### { local function autopickup(it, name) if it.artefact then return true end local class = it.class(true) if class == "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 if class == "weapon" then if name:find("demon") or name:find("quick") or name:find("double") or name:find("distortion") then return true end end if class == "missile" then if name:find("curare") then return true end end return false end add_autopickup_func(autopickup) } ############## # autopickup # ############## autopickup = $?!+"/% { local function ammo_pickup(it, name) local class = it.class(true) if class == "missile" then if you.skill("Slings") >= 3 then if name:find("stone") then return true end if name:find("bullet") then return true end end if you.skill("Bows") >= 3 then if name:find("arrow") then return true end end if you.skill("Crossbows") >= 3 then if name:find("bolt") then return true end end end return false end add_autopickup_func(ammo_pickup) } ae := autopickup_exceptions ae += useless_item ae += dangerous_item ae += evil_item ae += amulet of (inaccuracy|the gourmand|controlled flight|warding|stasis) ae += amulet of (resist .*|clarity|rage|conservation|guardian spirit|faith) ae += ring of (see invisible|levitation|poison resistance|teleportation) ae += ring of (invisibility|teleport control) ae += ring of (sustain abilities|sustenance|wizardry|life protection) ae += scroll of (unholy creation) ae += potion of restore abilities ae += wand of (random effects|confusion|paralysis|enslavement|slowing) ae += wand of (frost|flame|magic darts|lightning) ae += rod of striking ae += staff of .* ae += <.*curare ae +=