easy_confirm = all confirm_butcher = never easy_eat_chunks = true auto_eat_chunks = true auto_drop_chunks = yes easy_eat_contaminated = true equip_unequip = true pizza = Papa Xom's: splat in 30 minutes or less, or it's free! item_glyph = item_glyph += potion:blue item_glyph += scroll:white #watch out for confusion with useless being darkgrey item_glyph += helmet:darkgrey item_glyph += hat:magenta item_glyph += axe:darkgrey item_glyph += book:brown item_glyph += manual:white item_glyph += jewellery:green item_glyph += jewellery.*artefact:lightgreen item_glyph += wand:yellow item_glyph += rod:yellow item_glyph += magical staff:brown use_animations = tile_map_pixels = 1 ;tile_display_mode = glyphs show_travel_trail = false pickup_menu = false pickup_menu_limit = 0 travel_key_stop = false ############### # Spell Slots ##################################################### ############### # spells that we don't normally want to use (list might change): # animate skeleton, corona, all summons, confusing touch, corpse rot, # cure poison, searing ray, slow, sticks to snakes, inner flame, passwall, # portal projectile, teleport other, tukima's dance, alistair's intoxication, # cause fear, leda's liquefaction, petrify, force lance, ignite poison, # metabolic englaciation, silence, twisted resurrection, simulacrum, # darkness, discord # spells that will (nearly) always have the same letter... # not many attack spells here spell_slot += regeneration:c spell_slot += ensorcelled hibernation:e spell_slot += flight:f spell_slot += shroud of golubria:g spell_slot += ozocubu's armour:o spell_slot += stoneskin:o spell_slot += phase shift:p spell_slot += repel missiles:r spell_slot += swiftness:s spell_slot += ^blink:v spell_slot += dispel undead:x spell_slot += sublimation of blood:z spell_slot += apportation:A spell_slot += blade hands:B spell_slot += mephitic cloud:C spell_slot += dazzling spray:C spell_slot += dispersal:DE spell_slot += delayed fireball:DE spell_slot += dragon form:DE spell_slot += ring of flames:F spell_slot += haste:H spell_slot += invisibility:I spell_slot += ice form:I spell_slot += summon ice beast:I spell_slot += disjunction:J spell_slot += necromutation:L spell_slot += borgnjor's revivification:P spell_slot += deflect missiles:rR spell_slot += statue form:S spell_slot += controlled blink:V spell_slot += warp weapon:W spell_slot += death's door:Y # low-level attack spells: ag or abg spell_slot += freeze:ag spell_slot += magic dart:ag spell_slot += flame tongue:ag spell_slot += pain:ag spell_slot += shock:ag spell_slot += sandblast:ag spell_slot += sting:ag spell_slot += beastly appendage:ag spell_slot += throw frost:abg spell_slot += throw flame:abg spell_slot += call imp:abg spell_slot += confuse:abg spell_slot += static discharge:abg spell_slot += vampiric draining:abg spell_slot += spider form:abg # utility attack spells: deg spell_slot += conjure flame:deg spell_slot += poisonous cloud:deg spell_slot += freezing cloud:deg spell_slot += ozocubu's refrigeration:deg spell_slot += conjure ball lightning:deg spell_slot += animate dead:deg spell_slot += recall:deg spell_slot += fireball:deg spell_slot += airstrike:deg spell_slot += iskenderun's battlesphere:deg spell_slot += fulminant prism:deg # bolts: Bde spell_slot += bolt:Bde # staple spells for killing stuff: abqw or qwde or qwabQW spell_slot += stone arrow:abqw spell_slot += iskenderun's mystic blast:abqw spell_slot += throw icicle:abqw spell_slot += agony:qwde spell_slot += lee's rapid deconstruction:qwde spell_slot += sticky flame:qwabQW spell_slot += iron shot:qwabQW spell_slot += poison arrow:qwabQW spell_slot += orb of destruction:qwabQW spell_slot += lehudib's crystal spear:qwabQW spell_slot += chain lightning:qwabQW # big stuff: QW spell_slot += fire storm:QW spell_slot += glaciate:QW spell_slot += shatter:QW spell_slot += tornado:QW # other spells I might rarely use: inm (sometimes min) spell_slot += passage of golubria:inm spell_slot += sure blade:inm spell_slot += condensation shield:inm spell_slot += death channel:inm spell_slot += control undead:inm spell_slot += mass confusion:min spell_slot += olgreb's toxic radiance:inm # Use defaults that don't intersect other assignments. # Some spells are missing from the above lists and should be given better # defaults than this at some point. spell_slot += .*:ZXUMKGukl ############# # Autofight # ############# # Do/don't throw stuff when autofighting autofight_throw = false autofight_throw_nomove = false # If true. items are autofired stopping at the monsters feet (same as firing using .) autofight_fire_stop = false fire_order = launcher, return fire_order += rock, javelin, tomahawk, stone # Prevent me from tab-fighting to death by keeping this high autofight_stop = 60 # Enables automagic attacks automagic_enable = false automagic_slot = a # Percentage of MP to stop automagic at automagic_stop = 50 # If set to true, resort to melee when automagic_stop is active automagic_fight = true ############## # Autopickup # ############## # Used # $ = gold # ? = scroll # ! = potion # : = book # " = jewellery # / = wand # % = food # } = miscellaneous # \ = rods # | = staves : if (you.god():find("Trog")) then autopickup += $?!:"/%}\ : else autopickup += $?!:"/%}\| : end # Unused # ) = weapon # ( = missiles # [ = armour # X = corpses # Allows easily dropping multiple items drop_mode += multi # Always show the full list of items when you pick up a stack pickup_mode += multi # Allows followers to pick up ANYTHING (take care not to lose artefacts) default_friendly_pickup += all # Set Alias for Autopickup Exceptions ae := autopickup_exceptions ae += useless_item, dangerous_item, evil_item # Don't pick up potion(s) of [coagulated] blood if you are not a vampire : if you.race() ~= "Vampire" then ae += potions? of.*blood : end # Autopickup artefacts ae += 2) or armourname:find("dragon") or armourname:find("troll") then return it.artefact else return it.artefact or it.branded or it.ego end end return true end if (sub_type == "shield") then if equipped_item then return it.artefact or it.branded or it.ego end end end if (class == "weapon") then if it.is_useless then return false end if (you.xl() < 12) or (you.god():find("Nemelex") or (you.god():find("Yred")) or (you.god():find("Beogh"))) then if it.branded and not (it.name() == "club") then return false end end local weapon = items.equipped_at("Weapon") if weapon then if (weapon.branded or weapon.artefact) 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 sb > 6 then if name:find("quick blade") then return true end end if lb > 8 then if name:find("demon blade") then return true end if name:find("bastard sword") then return true end if name:find("double sword") then return true end end if lb > 14 then if name:find("claymore") then return true end if name:find("triple sword") then return true end end if axe > 8 and mf <= 8 then if name:find("battleaxe") then return true end if name:find("broad axe") then return true end if name:find("war axe") then return true end if name:find("executioner") then return true end end if axe > 18 then if name:find("executioner") then return true end end if mf > 8 and staff <= 8 and axe <= 8 then if name:find("eveningstar") then return true end if name:find("demon whip") then return true end if name:find("sacred scourge") then return true end if name:find("dire flail") then return true end end if mf > 14 and staff <= 14 and axe <= 14 then if name:find("great mace") then return true end end if pole > 8 and staff <= 8 then if name:find("trident") then return true end if name:find("demon trident") then return true end if name:find("trishula") then return true end end if pole > 14 and staff <= 14 then if name:find("glaive") then return true end if name:find("bardiche") then return true end end if staff > 8 then if name:find("lajatang") then return true end end end elseif (you.skill("Unarmed Combat") < 3) then return true end end end) } ############### # Auto Travel # ############### # Set travel delay to -1 for instant-travel, set to 1 to see travel paths travel_delay = -1 explore_stop = glowing_items,artefacts,greedy_pickup_smart explore_stop += greedy_visited_item_stack,stairs,shops explore_stop += altars,portals,branches,runed_doors,greedy_sacrificeable # Adjusts how much autoexplore favours attempting to discover room perimeters and corners. # At values higher than 0, autoexplore will more heavily favour visiting squares that are next to walls # reasonable values range from 0 to 10 maybe? explore_wall_bias = 3 # Make auto travel sacrifice corpses sacrifice_before_explore = true auto_sacrifice = true # Disables key press from stopping autoexplore travel_key_stop = false runrest_ignore_poison = 3:30 runrest_ignore_monster += butterfly:1 trapwalk_safe_hp = dart:15,needle:25,arrow:25,bolt:30,spear:20,axe:40,blade:50 # Only stop resting when both HP/MP are full rest_wait_both = true # Set Alias' stop := runrest_stop_message ignore := runrest_ignore_message ignore += You regained.*mp # Annoyances -- Don't stop autotravel for these events ignore += A.*toadstool withers and dies ignore += disappears in a puff of smoke ignore += engulfed in a cloud of smoke ignore += engulfed in white fluffiness ignore += grinding sound ignore += in your inventory.*rotted away ignore += safely over a trap ignore += standing in the rain ignore += toadstools? grow ignore += You feel.*sick ignore += You walk carefully through the # Jiyva Messages ignore += Jiyva appreciates your sacrifice ignore += Jiyva gurgles merrily ignore += Jiyva says: Divide and consume ignore += You hear.*splatter # Qazlal ignore += The plant is engulfed ignore += You destroy the (bush|fungus|plant) ignore += You displace your # Bad things -- Stop autotravel for these events (duplicates some of HDAForceMore) stop += (blundered into a|invokes the power of) Zot stop += (devoid of blood|starving) stop += A huge blade swings out and slices into you[^r] stop += An alarm trap emits a blaring wail stop += flesh start stop += found a zot trap stop += hear a soft click stop += lose consciousness stop += sense of stasis stop += Wait a moment stop += wrath finds you stop += You fall through a shaft # Expiring spells effects -- Stop to allow recasts (duplicates some of HDAForceMore) # Control Teleport stop += you feel uncertain # Death's Door more += time is quickly running out more += life is in your own # Enslavement more += is no longer charmed # Flight more += You are starting to lose your buoyancy stop += You lose control over your flight # Haste more += You feel yourself slow down # Phase Shift more += You feel closer to the material plane # Repel/Deflect stop += missiles spell is about to expire # Shroud of Golubria stop += shroud begins to fray stop += shroud unravels more += Your shroud falls apart # Swiftness stop += start to feel a little slower # Transmutations more += Your transformation is almost over more += You have a feeling this form more += Your skin feels tender more += You feel yourself come back to life # Ghouls (Not part of HDAForceMore) : if you.race() == "Ghoul" then stop += smell.*(rott(ing|en)|decay) stop += something tasty in your inventory : end # Good things - Bad things wearing off (Duplicates some of HDAForceMore) stop += contamination has completely stop += You are no longer firmly anchored in space #Ally actions? #ignore += pray: #ignore += friend_spell: #ignore += friend_enchant: #ignore += friend_action: #ignore += sound: ########### # Prompts ########################################################### ########### more := force_more_message more = more += Your scales start more += Careful! more += Found a gateway leading out of the Abyss more += Found .* abyssal rune of Zot more += You are starting to lose your buoyancy more += You start to feel a little slower more += Your transformation is almost over more += You have a feeling this form more += You feel yourself come back to life more += You fall through a shaft more += The alarm trap emits a blaring wail more += time is quickly running out more += life is in your own hands more += dispelling energy hits you more += You convulse more += god:(sends|finds|silent|anger) more += divine experience more += You have finished your manual more += You are (blasted|electrocuted)! more += Your surroundings flicker more += The writing blurs in front of your eyes more += Space warps.* around you more += Space bends around you more += The blast of calcifying dust hits you more += You feel less protected from missiles ############# # Interface ######################################################### ############# hp_warning = 25 show_gold_turns = true show_game_turns = true show_inventory_weights = true default_manual_training = true skill_focus = false clear_messages = true auto_exclude = ################ # Inscriptions ######################################################## ################ autoinscribe += distortion:!w autoinscribe += potion.*mutation:!q autoinscribe += potion.*berserk rage:!q autoinscribe += potion.*lignif:!q autoinscribe += scroll.*torment:!r autoinscribe += scroll.*silence:!r autoinscribe += slaying:mikee autoinscribe += of faith:!P autoinscribe += rod of:!a autoinscribe += staff of (Wucad Mu|energy|wizardry|power):!a autoinscribe += staff of (conjuration|summoning|poison):!a ########## # Macros ########################################################## ########## #bindkey = [&] CMD_NO_CMD_DEFAULT ######### # Notes ############################################################## ######### dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += messages,screenshot,monlist,kills,notes,vaults,action_counts ood_interesting = 6 note_hp_percent = 20 note_skill_levels = 1,3,6,9,12,15,18,21,24,27 note_all_spells = true note_items = note_items += of Zot note_messages = note_messages += Your scales start note_messages += protects you from harm note_messages += You fall through a shaft note_monsters = note_monsters += orb of fire, ancient lich, electric golem ################# # Miscellaneous ############################################# ################# char_set = ascii cset = cloud:xa4 cset_ascii=item_orb:0 use_fake_player_cursor = true { skill_list = {"Fighting","Short Blades","Long Blades","Axes","Maces & Flails", "Polearms","Staves","Unarmed Combat","Bows","Crossbows", "Throwing","Slings","Armour","Dodging","Shields","Spellcasting", "Conjurations","Hexes","Charms","Summonings","Necromancy", "Translocations","Transmutations","Fire Magic","Ice Magic", "Air Magic","Earth Magic","Poison Magic","Invocations", "Evocations","Stealth"} function record_current_skills(maxlev) c_persist.skill_list = { } for _,sk in ipairs(skill_list) do if you.train_skill(sk) > 0 and you.base_skill(sk) < (maxlev or 27) then table.insert(c_persist.skill_list, sk) end end end function check_skills() if not c_persist.skill_list or not c_persist.target_skill then return end for _,sk in ipairs(c_persist.skill_list) do if you.base_skill(sk) >= c_persist.target_skill then crawl.formatted_mpr(sk .. " reached " .. c_persist.target_skill .. ".", "prompt") crawl.more() c_persist.target_skill = nil set_new_skill_training() return end end end function set_new_skill_training() c_persist.set_target_skill = 1 crawl.sendkeys('m') end function set_target_skill() record_current_skills() local str = "Currently training: " local first_skill = true for _,sk in ipairs(c_persist.skill_list) do val = you.base_skill(sk) if first_skill then str = str .. sk .. "(" .. val .. ")" else str = str .. ", " .. sk .. "(" .. val .. ")" end first_skill = false end str = str .. "." crawl.formatted_mpr(str, "prompt") crawl.formatted_mpr("Choose a target skill level: ", "prompt") c_persist.target_skill = tonumber(crawl.c_input_line()) record_current_skills(c_persist.target_skill) end function control(c) return string.char(string.byte(c) - string.byte('a') + 1) end function save_with_message() if you.turns() == 0 then crawl.sendkeys("S") return end crawl.formatted_mpr("Save game and exit?", "prompt") local res = crawl.getch() if not (string.char(res) == "y" or string.char(res) == "Y") then crawl.formatted_mpr("Okay, then.", "prompt") return end crawl.formatted_mpr("Leave a message: ", "prompt") local res = crawl.c_input_line() c_persist.message = res crawl.sendkeys(control("s")) end function first_turn_of_game() for key,_ in pairs(c_persist) do if key ~= "record" then c_persist[key] = nil end end set_new_skill_training() end local did_first_turn = false function ready() if not did_first_turn then did_first_turn = true if you.turns() == 0 then first_turn_of_game() end if c_persist.message and c_persist.message ~= "nil" and c_persist.message ~= "" then crawl.mpr("Message: " .. c_persist.message) c_persist.message = nil end end check_skills() if c_persist.set_target_skill == 0 then set_target_skill() c_persist.set_target_skill = nil elseif c_persist.set_target_skill then c_persist.set_target_skill = c_persist.set_target_skill - 1 end end } ############### # Spell slots # ############### # Set Alias for Spell Slots slot := spell_slot # Try to keep in alphabetic order (by keybind) slot += Freeze:a slot += Shroud:a slot += Blink:b slot += Call Canine Familiar:c slot += Call Imp:c slot += Confuse:c slot += Conjure Flame:c slot += Control Undead:c slot += Freezing Aura:c slot += Petrify:c slot += Spider Form:c slot += Deflect Missiles:d slot += Lethal Infusion:d slot += Repel Missiles:d slot += Fire Brand:f slot += Fireball:f slot += Apportation:g slot += Haste:h slot += Sublimation of Blood:m slot += Abjuration:q slot += Recall:r slot += Regeneration:r slot += Condensation Shield:s slot += Shroud of Golubria:s slot += Slow:s slot += Sticks to Snakes:s slot += Sticky Flame:s slot += Stoneskin:s slot += Swiftness:s slot += Passwall:w slot += Corona:v slot += Blade Hands:x slot += Iskenderun's Mystic Blast:x slot += Lightning Bolt:x slot += Mephitic Cloud:x slot += Stone Arrow:x slot += Throw Flame:x slot += Throw Frost:x slot += Throw Icicle:x slot += Vampiric Draining:x slot += Iskenderun's Battlesphere:z slot += Lee's Rapid Deconstruction:z slot += Spectral Weapon:z slot += Animate Dead:A slot += Animate Skeleton:A slot += Ozocubu's Armour:A slot += Controlled Blink:B slot += Summon Butterflies:B slot += Control Teleport:C slot += Death's Door:D slot += Flight:F slot += Cure Poison:P slot += Borgnjor's Revivification:R slot += Phase Shift:S slot += Song of Slaying:S