# Frees up the 7th line for messages
# Local Tiles/console: adds "+" at the start of the last row
# Web Tiles: just decreases the interval between rows
# Note: it should be set before anything that prints messages
: if crawl.is_webtiles() and crawl.is_tiles() then
small_more = true
: end
# Fonts for WebTiles
msg_webtiles_height = 8
# Tablet fonts
#msg_webtiles_height = 6
tile_font_crt_family = Iosevka Fixed SS09 Extended
tile_font_stat_family = Input
tile_font_msg_family = Iosevka Fixed SS09 Extended
tile_font_lbl_family = Iosevka Fixed SS09 Extended
tile_font_crt_size = 17
tile_font_msg_size = 15
# Tablet fonts
#tile_font_msg_size = 12
#tile_font_stat_size = 12
# Colors
allow_extended_colours=true
colour.blue = lightblue
hp_colour = 50:yellow, 25:red
mp_colour = 50:yellow, 25:red
# Show more messages in the char dumps (the default is 40)
dump_message_count = 50
note_messages += magical essence is drained by the effort
# Stop for skills rising
: stop_for_skills = false
# Don't stop for boring stacks and boring items
explore_stop -= greedy_visited_item_stack,items
# Don't scale the map in X mode
tile_map_scale = 1
# Versions 0.23- won't display the last action's duration
show_game_time = false
# Zot clock, 0.26+
always_show_zot = true
# Wait until both HP and MP are restored before exploring
explore_auto_rest = true
# Autoexplore delay & trail
explore_delay = 20
show_travel_trail = true
travel_delay = -1
# Turn off mouse support
mouse_input = false
tile_web_mouse_control = false
# Make ranged weapons less annoying
allow_self_target = no
force_spell_targeter -= alistair's intoxication,discord,ignition,maxwell's capacitive coupling,dazzling flash
force_ability_targeter -= recite
# Auto-fight options
autofight_throw = false
# Note: Disable for speed runs
autofight_throw_nomove = false
autofight_wait = true
# Note: setting autofight_wait = true is not enough:
# in a @R.g situation pressing Tab swaps me with my ancestor instead of waiting.
# The following macro for Tab solves that problem
# Note: Disable for speed runs
macros += M \{9} ===hit_closest_nomove
#=================================
# OLD Custom macros
#macros += M s zs
#macros += M ; zkf
#macros += M e zE
#macros += M c zC
# OTR
#macros += M 1 zr
# Apportation
#macros += M 2 zgf
# Sublimation of Blood
#macros += M 3 za
# Statue Form
#macros += M 4 zb
#=================================
#=================================
#NEW MACROS
macros += M 1 Za
macros += M 2 Zb
macros += M 3 Zc
macros += M 4 Zd
#=================================
macros += M 6 ===toggle_fire_stop
# Toggles the autofight_fire_stop option (false by default)
{
local fire_stop = false
function toggle_fire_stop()
if fire_stop then
crawl.setopt("autofight_fire_stop = false")
crawl.mpr("Fire stop is OFF")
else
crawl.setopt("autofight_fire_stop = true")
crawl.mpr("Fire stop is ON")
end
fire_stop = not fire_stop
end
}
macros += M 7 ===toggle_stop_for_all
# Stop for all enemies and don't open doors (except when in wizard mode)
# Note: When travel_open_doors is set to "avoid", autoexplore/travel
# will treat closed doors like walls.
# If the only way for exploration or travel to continue is
# through a closed door, it will stop by a closed door.
{
local stop_for_all = true
if you.wizard() then
stop_for_all = false
crawl.mpr("Wiz-mode detected, Stop for All is OFF")
else
crawl.setopt("force_more_message += comes? into view")
crawl.setopt("travel_open_doors = avoid")
crawl.mpr("Stop for All is ON")
end
function toggle_stop_for_all()
if stop_for_all then
crawl.setopt("force_more_message -= comes? into view")
crawl.setopt("travel_open_doors = open")
crawl.mpr("Stop for All is OFF")
else
crawl.setopt("force_more_message += comes? into view")
crawl.setopt("travel_open_doors = avoid")
crawl.mpr("Stop for All is ON")
end
stop_for_all = not stop_for_all
end
}
macros += M 8 ===toggle_autothrow
macros += M 9 ===toggle_keep_transmutations
# Ignore Transformations expiring messages by default
runrest_ignore_message += Your transformation is almost over
{
local ignore_forms_expiring = false
function toggle_keep_transmutations()
if ignore_forms_expiring then
crawl.setopt("runrest_stop_message -= Your transformation is almost over")
crawl.setopt("runrest_ignore_message += Your transformation is almost over")
crawl.mpr("Stop run/rest for Transmutations expiring is OFF")
else
crawl.setopt("runrest_ignore_message -= Your transformation is almost over")
crawl.setopt("runrest_stop_message += Your transformation is almost over")
crawl.mpr("Stop run/rest for Transmutations expiring is ON")
end
ignore_forms_expiring = not ignore_forms_expiring
end
}
# F2
macros += M \{-266} *f@ego||artefact||jewel||troll||scales||shield\{13}
# F1
macros += M \{-1011} ===show_macros_info
{
function show_macros_info()
crawl.mpr("F1: Help, " ..
"F2: @search, " ..
";: zkf, " ..
"e: zE, " ..
"c: zC, " ..
"1: zr, " ..
"2: zgf, " ..
"3: za, " ..
"4: zb, " ..
"6: toggle Fire Stop (ff/f.), " ..
"7: toggle Stop for All, " ..
"8: toggle Auto Throwing, " ..
"9: stop run/rest for Transmutations ending")
end
}
# Note: macros are available on Ctrl-d
bindkey = [~] CMD_LUA_CONSOLE
#ability_menu = false
# Turn off animations for projectiles, the screen flashing when low on HP,
# and player spells (OR, OTR)
#use_animations -= beam, hp, player
# Show a status message for standing in a cloud
cloud_status = true
# Turn off the "show more" prompt for long messages
show_more = false
# Run tile animations in real time
tile_realtime_anim = true
# Speed up animations (default: 600ms)
view_delay = 1500
# Use a custom tile when playing a Felid
: if you.race() == "Felid" then
: crawl.setopt("tile_player_tile = tile:felid_2")
: end
# Set a hot-key for Palentonga's Charge
ability_slot ^= Rolling Charge:R
: if you.race() == "Palentonga" then
: crawl.setopt("macros += M c aRf")
: end
# Ignore silly questions about harming my battlesphere or breaking ice spells
{
function c_answer_prompt(prompt)
if string.sub(prompt, -23) == "near your battlesphere?"
or string.sub(prompt, -33) == "will break if you move. Continue?" then
return true
end
end
}
# Automatically pick up gloves, boots, etc.
# when the corresponding armour slot is empty
{
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)
}
# Don't auto-train skills
default_manual_training = true
# Stop auto-fighting after losing 35% of HP
autofight_stop = 65
# Ignore poison damage
runrest_safe_poison = 80:100
# Only stop resting after restoring both HP and MP
rest_wait_both = true
# Override bcrawl's default value, 95%
rest_wait_percent = 100
# Autopick up settings (default + misc + artefacts + scrolls - rings)
autopickup = $?!+"/}
autopickup_exceptions += ring of (stealth|positive energy|fire|ice|magical power|strength|intelligence|dexterity|wizardry|protection from|willpower|resist corrosion)
autopickup_exceptions ^= >(datura|atropa)
# Note: "+=" doesn't work, because these are dangerous items
: if you.race() ~= "Ghoul" and you.race() ~= "Mummy" then
autopickup_exceptions ^=