# 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