##### Crawl Init file ############################################### # For descriptions of all options, as well as some more in-depth information # on setting them, consult the file # options_guide.txt # in your /docs directory. If you can't find it, the file is also available # online at: # https://gitorious.org/crawl/crawl/source/HEAD:crawl-ref/docs/options_guide.txt # # Crawl uses the first file of the following list as its option file: # * init.txt in the -rcdir directory (if specified) # * .crawlrc in the -rcdir directory (if specified) # * init.txt (in the Crawl directory) # * ~/.crawl/init.txt (Unix only) # * ~/.crawlrc (Unix only) # * ~/init.txt (Unix only) # * settings/init.txt (in the Crawl directory) ##### Some basic explanation of option syntax ####################### # Lines beginning with '#' are comments. The basic syntax is: # # field = value or field.subfield = value # # Only one specification is allowed per line. # # The terms are typically case-insensitive except in the fairly obvious # cases (the character's name and specifying files or directories when # on a system that has case-sensitive filenames). # # White space is stripped from the beginning and end of the line, as # well as immediately before and after the '='. If the option allows # multiple comma/semicolon-separated terms (such as # autopickup_exceptions), all whitespace around the separator is also # trimmed. All other whitespace is left intact. # # There are three broad types of Crawl options: true/false values (booleans), # arbitrary values, and lists of values. The first two types use only the # simple =, with later options - which includes your options that are different # from the defaults - overriding earlier ones. List options allow using +=, ^=, # -=, and = to append, prepend, remove, and reset, respectively. Usually you will # want to use += to add to a list option. Lastly, there is := which you can use # to create an alias, like so: # ae := autopickup_exceptions # From there on, 'ae' will be treated as if it you typed autopickup_exceptions, # so you can save time typing it. # ##### Other files ################################################### # You can include other files from your options file using the 'include' # option. Crawl will treat it as if you copied the whole text of that file # into your options file in that spot. You can uncomment some of the following # lines by removing the beginning '#' to include some of the other files in # this folder. # Some useful, more advanced options, implemented in LUA. # include = advanced_optioneering.txt # Alternative vi bindings for Dvorak users. # include = dvorak_command_keys.txt # Alternative vi bindings for Colemak users. # include = colemak_command_keys.txt # Override the vi movement keys with a non-command. # include = no_vi_command_keys.txt # Turn the shift-vi keys into safe move, instead of run. # include = safe_move_shift.txt ##### Ancient versions ############################################## # If you're used to the interface of ancient versions of Crawl, you may # get back parts of it by uncommenting the following options: # include = 034_command_keys.txt # And to revert monster glyph and colouring changes: # include = 034_monster_glyphs.txt # include = 052_monster_glyphs.txt # include = 060_monster_glyphs.txt # include = 071_monster_glyphs.txt # include = 080_monster_glyphs.txt # include = 0.9_monster_glyphs.txt # include = 0.12_monster_glyphs.txt # include = 0.13_monster_glyphs.txt # include = 0.14_monster_glyphs.txt more += distortion force_more_message += transformation, weakening force_more_message += toss it force_more_message += malevolance runrest_stop_message += friend_action: runrest_stop_message += melt, evaporates, transformation, flicker, weakening auto_sacrifice = true auto_butcher = true explore_auto_rest = true autofight_stop = 70 #rest_wait_percent = 80 tile_web_mouse_control = false auto_exclude += web screen_flash += distortion { safe_move_toggle = true toggle_hurt_allies = false crawl.setopt("mon_glyph += player : green") function toggle_safe_move() if safe_move_toggle then safe_move_toggle = false crawl.message("safe move off", 0) crawl.setopt("mon_glyph += player : red") else safe_move_toggle = true crawl.message("safe move on", 0) crawl.setopt("mon_glyph += player : green") end end function toggle_hurt_allies() if toggle_hurt_allies then toggle_hurt_allies = false crawl.message("hurt allies off", 0) crawl.setopt("mon_glyph += player : red") else toggle_hurt_allies = true crawl.message("hurt allies on", 0) crawl.setopt("mon_glyph += player : green") end end function toggles() if crawl.yesno("Toggle safe mode?", true, 'n') == 1 then toggle_safe_move() end if crawl.yesno("Toggle hurt allies?", true, 'n') == 1 then toggle_hurt_allies() end end } { safe = you.feel_safe() function update_safe() local old_safe = safe safe = you.feel_safe() if not safe and old_safe and safe_move_toggle then crawl.mpr("Danger!", "warning") crawl.more() end end function ready() update_safe() end local contam = 0 function smart_invis() contam = you.contaminated() if contam > 0 then crawl.mpr("Too much contam") else crawl.sendkeys("zI") end contam = 0 end function swap_for_autoexplore() local w = items.equipped_at("Weapon") if w and string.find(w.inscription, "autoexplore") then return nil else for i, j in ipairs(items.inventory()) do if string.find(j.inscription, "autoexplore") then return items.index_to_letter(j.slot) end end return nil end end function custom_autoexplore() if not you.feel_safe() then crawl.mpr("But you're not safe!") return end if string.find(you.status(), "On berserk cooldown") then crawl.mpr("Cooling down") crawl.sendkeys("5") return end if you.slowed() then crawl.mpr("Speeding up") crawl.sendkeys("5") return end local action = "" local swap = swap_for_autoexplore() if swap then action = "w" .. swap end local dummy, mmp = you.mp() local mp_threshold = math.max(3, math.ceil(mmp / 2)) crawl.sendkeys(action .. "o") end function hp_percent() a,b=you.hp() return 100*a/b end function mp_percent() a,b=you.mp() return 100*a/b end function custom_rest() if not you.feel_safe() then crawl.mpr("But you're not safe!") return end local swap = swap_for_autoexplore() if swap then action = "w" .. swap end crawl.sendkeys(action) if ((not you.breath_timeout()) and (hp_percent() == 100 and you.race() == "Djinni" or hp_percent() == 100 and mp_percent() == 100 or mp_percent() == 100 and you.race() == "Deep Dwarf")) then if crawl.yesno("Wait 100 turns?", true, 'n') == 1 then crawl.sendkeys("5") end else crawl.sendkeys("5") end end } --this function is module, so don't change its name { if prompt.find("Really attack near" and toggle_hurt_allies then return true end } macros += M o ===custom_autoexplore macros += M 5 ===custom_rest macros += M ` ===toggles macros += M e ===smart_invis