bindkey += [6] CMD_LUA_CONSOLE include += HDamage.rc include += HDAColors.rc # Allow targeting yourself with risky magic (e.g., the spell # Bolt of Fire or a wand of slowing.) # When set to 'yes', you are a valid target. When set to 'no', # you cannot target yourself with such spells. When set to # 'prompt' (the default), you will be required to confirm # self-targeting. This option has no effect on area-effect # spells, such as Mephitic Cloud, where you are always a valid target. allow_self_target = no # If this is true, 'W'ear will also allow you to 'T'ake off worn # armour, and vice versa, and the same is true for 'P'utting on/ # 'R'emoving jewellery. equip_unequip = true jewellery_prompt = false # Don't prompt if more than one message is displayed at once show_more = false default_manual_training=true show_travel_trail=true autofight_stop = 50 : if you.race() == "Deep Dwarf" then autofight_stop = 40 : end auto_sacrifice = true sacrifice_before_explore = true # 1 means Near Starving autofight_hunger_stop = 1 hp_warning=70 # escape nets autofight_caught = true # wait until enemies come to you autofight_wait = true # autofight_throw = false # autofight_throw_nomove = true fire_order = launcher, return fire_order += rock, javelin, tomahawk, stone rest_wait_percent = 95 # How long travel waits after each move (milliseconds) travel_delay = -1 # How long auto-explore waits after each move (milliseconds). Depends on explore_delay = -1 # How long resting waits after each move (milliseconds). Depends on rest_delay = -1 view_delay = 50 explore_auto_rest = true # If never, you will automatically butcher the first available corpse, # even if there are multiple corpses on the square. confirm_butcher = never # If this is set to true then when using the (e)at command, the # game will automatically determine the oldest chunk that is safe # to eat, and eat it without prompting. easy_eat_chunks = true easy_eat_gourmand = true # Setting this option to true will allow you to automatically eat a chunk # if you get hungry while you are travelling, auto-exploring or resting. # Automatic eating is disabled whenever autopickup is disabled, whether # with ctrl-a or because of an invisible monster. auto_eat_chunks = true ########## # 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 += force lance:f spell_slot += dazzling spray:s 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 += iskenderun's.+blast:fd spell_slot += agony:h spell_slot += lee's rapid deconstruction:d spell_slot += iron shot:fg spell_slot += poison arrow:h spell_slot += fireball:fg spell_slot += bolt of.*:fg spell_slot += ^.*cloud:g spell_slot += airstrike:s spell_slot += prism$:he # high-level spells spell_slot += chain lightning:DF spell_slot += crystal spear:F spell_slot += fire storm:F spell_slot += ice storm:F spell_slot += shatter:FD spell_slot += tornado:F show_gold_turns = true show_game_turns = true { local need_skills_opened = true function ready() AnnounceDamage() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end -- if (you.turns() > stopturn) then -- crawl.setopt("force_more_message += into view") -- stopturn = standby -- end end } # ) Weapons # ( Missiles # [ Armour # / Wands # % Food # ? Scrolls # " or = Jewellery # ! Potions # + or : Books # | Staves # \ Rods # 0 Orbs # } Misc. items # X Corpses # $ Gold autopickup= $?!+"/%|\} drop_mode = multi pickup_menu = true default_friendly_pickup = none drop_filter += useless_item, forbidden ae := autopickup_exceptions ae += useless_item, dangerous_item, evil_item ae += >ring of protection from ae += you found a: " .. what .. "") return true end return end local function ap2(it, name) local class = it.class(true) local armour_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots", body="Armour", shield="Shield"} if (class == "armour") then if it.is_useless then return false end sub_type = it.subtype() equipped_item = items.equipped_at(armour_slots[sub_type]) if (sub_type == "cloak") or (sub_type == "helmet") or (sub_type == "gloves") or (sub_type == "boots") then if not equipped_item then return true -- announce_get(true, name) else return it.artefact or it.branded or it.ego -- announce_get(it.artefact or it.branded or it.ego, name) end end if (sub_type == "body") then if equipped_item then local armourname = equipped_item.name() if equipped_item.artefact or equipped_item.branded or equipped_item.ego or (equipped_item.plus > 2) or armourname:find("dragon") or armourname:find("troll") or armourname:find("crystal") then return it.artefact -- announce_get(it.artefact, name) else return it.artefact or it.branded or it.ego -- announce_get(it.artefact or it.branded or it.ego, name) end end return true -- announce_get(true, name) end if (sub_type == "shield") and equipped_item then return it.artefact or it.branded or it.ego -- announce_get(it.artefact or it.branded or it.ego, name) end end if (class == "weapon") then if it.is_useless then return false end local weapon = items.equipped_at("Weapon") if weapon then if (weapon.branded or weapon.artefact and not (it.artefact or it.branded or it.ego)) then return false else local weapon_name = weapon.name() local sb = you.skill("Short Blades") local lb = you.skill("Long Blades") local axe = you.skill("Axes") local mf = you.skill("Maces & Flails") local pole = you.skill("Polearms") local staff = you.skill("Staves") if announce_get(sb > 4 and name:find("quick blade"), name) or announce_get(lb > 7 and (name:find("demon blade") or name:find("bastard sword") or name:find("double sword"))) or announce_get(lb > 13 and (name:find("claymore") or name:find("triple sword")), what) or announce_get(axe > 7 and mf <= 8 and (name:find("battleaxe") or name:find("broad axe") or name:find("war axe") or name:find("executioner")), what) or announce_get(axe > 17 and (name:find("executioner")), what) or announce_get(mf > 7 and staff <= 8 and axe <= 8 and (name:find("eveningstar") or name:find("demon whip") or name:find("sacred scourge") or name:find("dire flail")), what) or announce_get(mf > 13 and staff <= 14 and axe <= 14 and (name:find("great mace")), what) or announce_get(pole > 7 and staff <= 8 and (name:find("trident") or name:find("demon trident") or name:find("trishula")), what) or announce_get(pole > 13 and staff <= 14 and (name:find("glaive") or name:find("bardiche")), what) or announce_get(staff > 7 and (name:find("lajatang")), what) then return true end end elseif (you.skill("Unarmed Combat") < 3) then return true end end end -- clear_autopickup_funcs() add_autopickup_func(ap2) } macros += M \{9} ===hit_closest_nomove macros += M s ===hit_closest autopickup_search = true