# https://github.com/gammafunk/dcss-rc#randomtiles include += RandomTiles.rc auto_butcher=true confirm_butcher=never easy_eat_chunks=true auto_eat_chunks=true explore_wall_bias=0 explore_delay=-1 travel_delay=-1 rest_delay=-1 show_travel_trail=true explore_auto_rest=true show_more=false easy_confirm=all autofight_stop=75 hp_warning=50 default_manual_training=true force_more_message+=increases to level force_more_message+=You have reached level force_more_message+=You have finished your manual force_more_message+=You feel strangely unstable force_more_message+=Your battlesphere expends the last of its energy and dissipates runrest_stop_message+=Your icy armour runrest_stop_message+=Your shroud runrest_stop_message+=Your battlesphere wavers and loses cohesion runrest_stop_message+=You feel your bond with your battlesphere wane tile_show_player_species = true { local valid_skill_table = { "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 print_skill_watch_list() local str = "Skill alert currently watching: " local first_skill = true for skill_name, val in pairs(c_persist.skill_alerts) do if first_skill then str = str .. "" .. skill_name .. "[" .. you.base_skill(skill_name) .. "|" .. tostring(val) .. "]" else str = str .. ", " .. skill_name .. "[" .. you.base_skill(skill_name) .. "|" .. tostring(val) .. "]" end first_skill = false end crawl.mpr(str) end function set_skill_alert() print_skill_watch_list() crawl.mpr("Select skill to watch / unwatch: ", "prompt") local new_skill = crawl.c_input_line() if new_skill == '' or new_skill == nil then return end local valid_skill = false for _,skill_name in pairs(valid_skill_table) do if string.find(string.lower(skill_name), string.lower(new_skill)) then valid_skill = true new_skill = skill_name break end end if valid_skill == false then crawl.mpr("Invalid skill name") return end local skill_found = false for skill_name,_ in pairs(c_persist.skill_alerts) do if string.find(skill_name, new_skill) then skill_found = true end end if skill_found then crawl.mpr("Unwatching skill: " .. new_skill .. "[" .. you.base_skill(new_skill) .. "]") c_persist.skill_alerts[new_skill] = nil else crawl.mpr("Watching skill: " .. new_skill .. "[" .. you.base_skill(new_skill) .. "]") crawl.mpr("Alert at value: ", "prompt") local skill_val_string = crawl.c_input_line() if skill_val_string == nil or skill_val_string == "" or tonumber(skill_val_string) == nil then crawl.mpr("Invalid number") return end local new_skill_value = math.floor(tonumber(skill_val_string)) c_persist.skill_alerts[new_skill] = new_skill_value end print_skill_watch_list() end function check_skill_alerts() local skill_alert_triggered = false if c_persist.skill_alerts == nil then c_persist.skill_alerts = {} end for skill_name, trigger_level in pairs(c_persist.skill_alerts) do local cur_skill_level = math.floor(tonumber(you.base_skill(skill_name))) if cur_skill_level >= trigger_level then crawl.mpr("Watched skill " .. skill_name .. " reached level " .. tostring(cur_skill_level) .. "") skill_alert_triggered = true c_persist.skill_alerts[skill_name] = nil end end if skill_alert_triggered then crawl.more() crawl.sendkeys("m") end end } { function safe_upstairs() if you.branch() == "Lab" then crawl.formatted_mpr("Really leave this labyrinth?", "prompt") local res = crawl.getch() if string.lower(string.char(res)) == "y" then crawl.sendkeys("<") end else crawl.sendkeys("<") end end } { 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) } { local need_skills_opened = true function ready() random_tile() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end check_skill_alerts() end } ##### 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://github.com/crawl/crawl/blob/master/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 = 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