### RC FILE last updated July 8, 2020 for Version 0.26(trunk)
### Lots of credit to HilariousDeathArtist as it forms the core of this rcfile.
<
function ready()
char_dump()
load_message()
AnnounceDamage()
OpenSkills()
fmore_early_threats()
end
>
####################
# Opens skill menu #
####################
{
local need_skills_opened = true
function OpenSkills()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
end
end
}
## Warns before leaving upstairs from a Lab
## Note, need to macro > to ===safe_upstairs
## Or add the following:
## macros += M < ===safe_upstairs
{
function safe_upstairs()
if you.branch() == "Gauntlet" then
crawl.formatted_mpr("Really leave this Gauntlet?", "prompt")
local res = crawl.getch()
if string.lower(string.char(res)) == "y" then
crawl.sendkeys("<")
end
else
crawl.sendkeys("<")
end
end
}
{
----------------------------
---- Begin load_message ----
----------------------------
function control(c)
return string.char(string.byte(c) - string.byte('a') + 1)
end
-- See README.md for documentation.
message_color = "white"
-- Wrapper of crawl.mpr() that prints text in white by default.
if not mpr then
mpr = function (msg, color)
if not color then
color = "white"
end
crawl.mpr("<" .. color .. ">" .. msg .. "" .. color .. ">")
end
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 load_message()
if c_persist.message and c_persist.message ~= "nil"
and c_persist.message ~= "" then
mpr("MESSAGE: " .. c_persist.message, message_color)
c_persist.message = nil
end
end
-----------------------------------
---- End leave message on save ----
-----------------------------------
}
{
-------------------------
---- Begin char_dump ----
-------------------------
-- See README.md for documentation.
local dump_count = you.turns()
local dump_period = 500
function char_dump()
if you.turns() >= dump_count then
dump_count = dump_count + dump_period
crawl.dump_char()
end
end
-----------------------
---- End char_dump ----
-----------------------
}
{
local fmet = true
function fmore_early_threats()
if you.xl() > 13 and fmet then
crawl.setopt("force_more_message -= centaur.* comes? into view")
crawl.setopt("force_more_message -= hydra.* comes? into view")
crawl.setopt("force_more_message -= killer bee.* comes? into view")
crawl.setopt("force_more_message -= electric eel.* comes? into view")
fmet = false
end
end
}
{
local cheiwalk = true
function toggle_cheiwalk()
if cheiwalk then
crawl.setopt("force_more_message -= comes? into view")
crawl.mpr("Cheiwalk mode is off.")
else
crawl.setopt("force_more_message += comes? into view")
crawl.mpr("Cheiwalk mode is on.")
end
cheiwalk = not cheiwalk
end
}
###############
# Damage Calc #
###############
{
local previous_hp = 0
local previous_mp = 0
local previous_form = ""
local was_berserk_last_turn = false
function AnnounceDamage()
local current_hp, max_hp = you.hp()
local current_mp, max_mp = you.mp()
--Things that increase hp/mp temporarily really mess with this
local current_form = you.transform()
local you_are_berserk = you.berserk()
local max_hp_increased = false
local max_hp_decreased = false
if (current_form ~= previous_form) then
if (previous_form:find("dragon") or
previous_form:find("statue") or
previous_form:find("tree") or
previous_form:find("ice")) then
max_hp_decreased = true
elseif (current_form:find("dragon") or
current_form:find("statue") or
current_form:find("tree") or
current_form:find("ice")) then
max_hp_increased = true
end
end
if (was_berserk_last_turn and not you_are_berserk) then
max_hp_decreased = true
elseif (you_are_berserk and not was_berserk_last_turn) then
max_hp_increased = true
end
--crawl.mpr(string.format("previous_form is: %s", previous_form))
--crawl.mpr(string.format("current_form is: %s", current_form))
--crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False"))
--crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False"))
--crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False"))
--crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False"))
--Skips message on initializing game
if previous_hp > 0 then
local hp_difference = previous_hp - current_hp
local mp_difference = previous_mp - current_mp
if max_hp_increased or max_hp_decreased then
if max_hp_increased then
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("MASSIVE DAMAGE!!")
end
end
--On gaining more than 1 health
if (current_hp > previous_hp) then
--Removes the negative sign
local health_inturn = (0 - hp_difference)
if (health_inturn > 1) and not (current_hp == max_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
end
if (current_hp == max_hp) then
crawl.mpr("Health restored: " .. current_hp .. "")
end
end
--On gaining more than 1 magic
if (current_mp > previous_mp) then
--Removes the negative sign
local mp_inturn = (0 - mp_difference)
if (mp_inturn > 1) and not (current_mp == max_mp) then
if current_mp < (max_mp * 0.25) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
else
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
end
end
if (current_mp == max_mp) then
crawl.mpr("MP restored: " .. current_mp .. "")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
else
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
end
end
end
end
--Set previous hp/mp and form at end of turn
previous_hp = current_hp
previous_mp = current_mp
previous_form = current_form
was_berserk_last_turn = you_are_berserk
end
}
# 1 - Starting Screen
# -------------------
default_manual_training = true
# 3 - Interface
# -------------
# 3-a : Pickup / Dropping
# -----------------------
# Used
# $ = gold
# ? = scroll
# ! = potion
# : = book
# " = jewellery
# / = wand
# % = food
# } = miscellaneous
# | = staves
: if (you.god():find("Trog")) then
autopickup += $?!:"/}
: else
autopickup += $?!:"/}|
: end
# Unused
# ) = weapon
# ( = missiles
# [ = armour
# Set Alias for Autopickup Exceptions
ae := autopickup_exceptions
ae += useless_item, dangerous_item, evil_item
# 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
if equipped_item.artefact or equipped_item.branded or equipped_item.ego or (equipped_item.plus > 2) then
return it.artefact or it.branded or it.ego
else
return true
end
else
return it.artefact or it.branded or it.ego
end
end
end
end)
}
# 3-f : Travel and Exploration
# ----------------------------
travel_delay = -1
rest_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
# 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 = 6
# Disables key press from stopping autoexplore
travel_key_stop = false
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
# Qazlal
ignore += The plant is engulfed
ignore += You destroy the (bush|fungus|plant)
ignore += You displace your
# Bad things -- Stop autotravel for these events
stop += (blundered into a|invokes the power of) Zot
#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
stop += You fall into a shaft
# Expiring effects -- Stop autotravel for spells beginning to expire (to allow recasts)
# Deaths Door
stop += time is quickly running out
stop += life is in your own
# Enslavement
stop += is no longer charmed
# Flight
stop += You are starting to lose your buoyancy
stop += You lose control over your flight
# Haste
stop += You feel yourself slow down
# Necromutation
stop += Your transformation is almost over
stop += You have a feeling this form
stop += You feel yourself come back to life
# Shroud
stop += shroud begins to fray
stop += shroud unravels
# Swiftness
stop += start to feel a little slower
# Ghouls
: if you.race() == "Ghoul" then
stop += smell.*(rott(ing|en)|decay)
stop += something tasty in your inventory
: end
# Good things - Bad things wearing off
stop += You are no longer firmly anchored in space
#Ally actions?
#ignore += pray:
#ignore += friend_spell:
#ignore += friend_enchant:
#ignore += friend_action:
#ignore += sound:
delay_safe_poison = 50:30
runrest_ignore_monster += butterfly:1
rest_wait_both = true
rest_wait_ancestor = true
explore_auto_rest = true
# 3-g : Command Enhancements
# --------------------------
sort_menus = true
equip_unequip = true
easy_confirm = all
allow_self_target = prompt
confirm_butcher = never
easy_eat_chunks = true
# Spell slots
# Set Alias for Spell Slots
slot := spell_slot
# Try to keep in alphabetic order (by keybind)
slot += Freeze:ab
slot += Magic Dart:ab
slot += Sting:ab
slot += Searing Ray:ab
slot += Ensorcelled Hibernation:b
slot += Sublimation of Blood:b
slot += Call Canine Familiar:c
slot += Call Imp:b
slot += Confusing Touch:ca
slot += Stone Arrow:c
slot += Conjure Flame:c
slot += Spider Form:c
slot += Summon Lighting Spire:d
slot += Animate Dead:d
slot += Petrify:d
slot += Statue Form:e
slot += Fireball:f
slot += Fire Storm:f
slot += Apportation:g
slot += Freezing Cloud:g
slot += Borgnjor's Vile Clutch:h
slot += Tornado:h
slot += Irradiate:i
slot += Iron Shot:j
slot += Necromutation:j
slot += Shroud of Golubria:s
slot += Slow:s
slot += Sticky Flame:d
slot += Spellforged Servitor:n
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 += Vampiric Draining:x
slot += Iskenderun's Battlesphere:z
slot += Lee's Rapid Deconstruction:d
slot += Animate Skeleton:A
slot += Ozocubu's Armour:A
slot += Blink:B
slot += Death's Door:L
slot += Borgnjor's Revivification:R
slot += Swiftness:S
item_slot ^= ring of protection from fire:F
item_slot ^= ring of protection from cold:C
item_slot ^= ring of protection from magic:M
ability_slot ^= Potion Petition:A
autofight_stop = 30
autofight_throw = false
autofight_fire_stop = true
autofight_caught = true
# 3-h : Messages and Display Enhancements
-----------------------------------------
#hp_warning = 25 -- Damage Calc overrides these
#mp_warning = 25 -- Damage Calc overrides these
hp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red
mp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red
stat_colour = 3:red, 7:lightred
show_more = false
small_more = true
view_delay = 300
use_animations -= branch_entry
# Set Alias
more := force_more_message
more =+ You can't wield that with a shield
# Important dungeon features
more += invites you to visit
more += interdimensional caravan
more += The mighty Pandemonium lord.*resides here
more += distant snort
more += Found a gateway leading out of the Abyss
more += Found a staircase to the Ecumenical Temple
more += wave of frost
more += roar of battle
more += There is an entrance to a bailey on this level
more += oppressive heat
more += tolling of a bell
more += sound of rushing water
more += Found a frozen archway
more += Found a labyrinth entrance
more += You have a vision of.*gates?
more += Fedhas invokes the elements against you
more += Lugonu sends minions to punish you
# more += Done waiting
more += (The|Your).*falls away!
more += cast banishment
more += cast paralyse
more += cast Torment
more += Your body shudders with the violent release of wild energies
more += is duplicated
more += You feel sluggish
more += You are shrouded in an aura of darkness
more += You really shouldn't be using
more += Mutagenic energies flood into your body
more += You are surrounded by a storm which can block enemy attacks
more += resistances upon receiving elemental damage
# Translocations
more += You.*teleport [^f]
more += You blink
more += Your surroundings suddenly seem different
more += You feel strangely (unstable|stable)
more += You cannot teleport right now
more += You cannot blink right now
# Wands/Potions/Scrolls/evokes used by monsters
more += zaps a (wand|rod)
more += drinks a potion
more += reads a scroll
more += evokes.*(amulet|ring)
# Abyssal Rune
more += Found .* abyssal rune of Zot
# Dangerous Monsters
more += giant eyeball.*comes? into view
more += oklob.* comes? into view
more += tormentor.*comes? into view
more += flayed ghost.*comes? into view
more += fiend.*comes? into view
more += hellion.*comes? into view
more += curse skull.*comes? into view
more += ironbrand convoker.*comes? into view
more += Lich.*comes? into view
more += shrike.*comes? into view
more += juggernaut.*comes? into view
more += dream sheep.*comes? into view
more += The blast of calcifying dust hits you[^r]
more += You are engulfed in calcifying dust
more += begins to recite a word of recall
more += You are engulfed in dark miasma
more += swoops through the air toward you
more += orange crystal statue.*comes? into view
more += Its appearance distorts for a moment
more += You feel haunted
more += Mara shimmers
more += There is a horrible. sudden wrenching feeling in your soul
more += Mara seems to draw the.*out of itself
# Interrupts for unexpected situations
# more += The.*shudders
more += Something interferes with your magic
more += You feel a genetic drift
more += You don't.* that spell
more += You fail to use your ability
more += You miscast
more += You cannot teleport right now
more += It doesn't seem very happy
more += You are held in a net
more += do not work when you're silenced
more += You cannot cast spells when silenced
more += The barbed spikes dig painfully into your body as you move
more += The water nymph flows with the water
more += You can't unwield
more += You don't have enough magic
more += You haven't enough magic at the moment
more += You have finished your manual
more += You feel your power leaking away
more += You feel your power drain away
more += Space warps horribly around you
more += Space bends around you
more += The.*grabs you[^r]
more += Your attempt to break free
more += You are blown backwards
more += goes berserk
more += You feel less protected from missiles
more += Your body is wracked with pain
more += surroundings become eerily quiet
more += The pull of.*song draws you forwards
more += Wisps of shadow swirl around
more += begins to accept its allies' injuries
more += Miasma billows from the
more += You feel.*firmly anchored in space
more += You stumble into the trap
more += drinks a potion
more += You stop (a|de)scending the stairs
more += too hungry
more += You cannot cast spells while unable to breathe
more += You are wearing\:
more += The walls and floor vibrate strangely for a moment
# Interrupts for Bad things
more += Your surroundings flicker
more += Your icy (shield|armour) evaporates
more += Your.*(shield|armour) melts away
more += The writing blurs in front of your eyes
more += You fall through a shaft
more += You fall into a shaft
more += (blundered into a|invokes the power of) Zot
more += Ouch! That really hurt!
more += dispelling energy hits you
more += You convulse
more += You feel drained
more += You are (blasted|electrocuted)
more += You feel uncertain
more += (You are|You're) poisoned
#more += (You are|You're) more poisoned
more += (You are|You're) lethally poisoned
more += (You are|You're) confused
#more += (You are|You're) more confused
more += (You are|You're) too confused
more += (starving|devoid of blood)
more += You are engulfed in mutagenic fog
more += wrath finds you
more += lose consciousness
more += You are too injured to fight blindly
more += Green shoots are pushing up through the earth
more += shoots a curare
more += You are knocked back by the lance of force
more += You are knocked back by the blast of cold
more += You are knocked back by the great wave of water
more += You stumble backwards
more += You are trampled
more += Okawaru sends forces against you
more += You are slowing down.
more += You flicker for a moment.
more += The.*is unaffected
more += You (become entangled|are caught) in (a|the) (web|net)
more += The forest starts to sway and rumble
more += Vines fly forth from the trees!
more += A tree reaches out and hits you!
more += You are hit by a branch
more += The air twists around and violently strikes you in flight
more += The.*engulfs you in water
more += The power of Zot is invoked against you
more += The air around.*erupts in flames
more += Terrible wounds (open|spread) all over you
more += You are encased in ice
more += You suddenly stop moving
more += Your surroundings seem slightly different
more += Your resistance to elements expires
more += You feel a (horrible|terrible) chill
more += You are burned terribly
more += You are mesmerised
more += The barbed spikes become lodged in your body
more += mark forms upon you
more += blows on a signal horn
more += silver sears you
more += The.*seems to speed up
more += steals.*your
more += infuriates you
more += \'s.*reflects
more += You can move again
more += You slip out of the net
more += You.*and break free
more += staircase.*moves
# Interrupts for Hell effects
more += You will not leave this place
more += Die. mortal
more += We do not forgive those who trespass against us
more += Trespassers are not welcome here
more += You do not belong in this place
more += Leave now. before it is too late
more += We have you now
more += You smell brimstone
more += Brimstone rains from above
more += You feel lost and a long. long way from home
more += You shiver with fear
more += You feel a terrible foreboding
more += Something frightening happens
more += You sense an ancient evil watching you
more += You suddenly feel all small and vulnerable
more += You sense a hostile presence
more += A gut-wrenching scream fills the air
more += You hear words spoken in a strange and terrible language
more += You hear diabolical laughter
# Interrupts for Expiring spell effects
more += You feel yourself slow down
more += You are starting to lose your buoyancy
more += Your hearing returns
more += Your transformation is almost over
more += You have a feeling this form
more += You feel yourself come back to life
more += time is quickly running out
more += life is in your own
more += is no longer charmed
more += Your shroud falls apart
more += Your extra speed is starting to run out
more += You are firmly grounded in the material plane once more
# Uniques
more += 27-headed.*(comes? into view|opens the)
more += Agnes.*(comes? into view|opens the)
more += Aizul.*(comes? into view|opens the)
more += Antaeus.*(comes? into view|opens the)
more += Arachne.*(comes? into view|opens the)
more += Asmodeus.*(comes? into view|opens the)
more += Asterion.*(comes? into view|opens the)
more += Azrael.*(comes? into view|opens the)
more += Bai Shuzen.*(comes? into view|opens the)
more += Blork the orc.*(comes? into view|opens the)
more += Boris.*(comes? into view|opens the)
more += Cerebov.*(comes? into view|opens the)
more += Crazy Yiuf.*(comes? into view|opens the)
more += Dispater.*(comes? into view|opens the)
more += Dissolution.*(comes? into view|opens the)
more += Donald.*(comes? into view|opens the)
more += Dowan.*(comes? into view|opens the)
more += Duvessa.*(comes? into view|opens the)
more += Edmund.*(comes? into view|opens the)
more += Ereshkigal.*(comes? into view|opens the)
more += Erica.*(comes? into view|opens the)
more += Erolcha.*(comes? into view|opens the)
more += Eustachio.*(comes? into view|opens the)
more += Fannar.*(comes? into view|opens the)
more += Frances.*(comes? into view|opens the)
more += Francis.*(comes? into view|opens the)
more += Frederick.*(comes? into view|opens the)
more += Gastronok.*(comes? into view|opens the)
more += Geryon.*(comes? into view|opens the)
more += Gloorx Vloq.*(comes? into view|opens the)
more += Grinder.*(comes? into view|opens the)
more += Grum.*(comes? into view|opens the)
more += Harold.*(comes? into view|opens the)
more += Ignacio.*(comes? into view|opens the)
more += Ijyb.*(comes? into view|opens the)
more += Ilsuiw.*(comes? into view|opens the)
more += Jessica.*(comes? into view|opens the)
more += Jorgrun.*(comes? into view|opens the)
more += Jory.*(comes? into view|opens the)
more += Joseph.*(comes? into view|opens the)
more += Josephine.*(comes? into view|opens the)
more += Jozef.*(comes? into view|opens the)
more += Khufu.*(comes? into view|opens the)
more += Kirke.*(comes? into view|opens the)
more += Lom Lobon.*(comes? into view|opens the)
more += Louise.*(comes? into view|opens the)
more += Mara.*(comes? into view|opens the)
more += Margery.*(comes? into view|opens the)
more += Maurice.*(comes? into view|opens the)
more += Menkaure.*(comes? into view|opens the)
more += Mennas.*(comes? into view|opens the)
more += Mnoleg.*(comes? into view|opens the)
more += Murray.*(comes? into view|opens the)
more += Natasha.*(comes? into view|opens the)
more += Nergalle.*(comes? into view|opens the)
more += Nessos.*(comes? into view|opens the)
more += Nikola.*(comes? into view|opens the)
more += Norris.*(comes? into view|opens the)
more += Pikel.*(comes? into view|opens the)
more += Polyphemus.*(comes? into view|opens the)
more += Prince Ribbit.*(comes? into view|opens the)
more += Psyche.*(comes? into view|opens the)
more += Purgy.*(comes? into view|opens the)
more += Robin.*(comes? into view|opens the)
more += Roxanne.*(comes? into view|opens the)
more += Rupert.*(comes? into view|opens the)
more += Saint Roka.*(comes? into view|opens the)
more += Sigmund.*(comes? into view|opens the)
more += Snorg.*(comes? into view|opens the)
more += Sojobo.*(comes? into view|opens the)
more += Sonja.*(comes? into view|opens the)
more += Terence.*(comes? into view|opens the)
more += The Lernaean hydra.*(comes? into view|opens the)
more += The royal jelly.*(comes? into view|opens the)
more += The Serpent of Hell.*(comes? into view|opens the)
more += Tiamat.*(comes? into view|opens the)
more += Urug.*(comes? into view|opens the)
more += Vashnia.*(comes? into view|opens the)
more += Xtahua.*(comes? into view|opens the)
# More dangerous monsters
more += shadow demons?.*(comes? into view|opens the)
more += boggarts?.*(comes? into view|opens the)
more += giant orange brains?.*(comes? into view|opens the)
# Others
more += Something appears at your feet
more += You can now
more += You.*no longer.*bleed smoke
more += You can no longer
more += Your.*can no longer
more += You feel monstrous
more += Jiyva alters your body
: if you.god() == "Xom" then
more += god:
: end
: if not string.find(you.god(), "Jiyva") then
more += splits in two
:end
cloud_status = true
# 3-i : Colours (messages and menu)
# ---------------------------------
## menu_colour options
# Set Alias
menu := menu_colour
# Clear defaults
menu =
# Variables
$decent := white
$mp := lightcyan
$interface := cyan
$danger := lightred
$item_dmg := red
$warning := yellow
$boring := darkgrey
$negative := brown
$positive := green
$good := lightblue
$verypositive := lightgreen
$awesome := lightmagenta
# General
menu += $boring:(melded)
menu += $boring:.*useless_item.*
menu += $item_dmg:.*evil_item.*
menu += $danger:[^n]cursed
menu += inventory:$danger:[^n]cursed
menu += inventory:$interface:.*equipped.*
menu += $decent:.*artefact.*
menu += $negative:shield of the gong
menu += $danger:.*artefact.* cursed
menu += $awesome:manual
menu += $warning:^unidentified .*(jewellery|potion|scroll|wand).*
menu += $good:^unidentified .*weapon.*(runed|glowing)
menu += $good:^unidentified .*armour.*(runed|glowing|embroidered)
menu += $good:^unidentified .*armour.*(shiny|dyed)
# Staves
menu += $mp:staff of energy
menu += $positive:[^r]staff of
# Wands
menu += $boring:wand of (random effects)
menu += $decent:wand of (flame|paralysis|polymorph|disintegration|enslavement|iceblast)
menu += $good:wand of (acid|digging|clouds|scattershot)
# Food
menu += $good:(corpse|chunk)
menu += $good:(ration)
# Scrolls
menu += $danger:scrolls? of torment
menu += $boring:scrolls? of (noise|random)
menu += $decent:scrolls? of (amnesia|holy word|identify|immolation|remove curse)
menu += $good:scrolls? of (fear|fog|silence|summoning|vulnerability)
menu += $positive:scrolls? of (brand|enchant|magic mapping)
menu += $verypositive:scrolls? of acquirement
menu += $awesome:scrolls? of (blinking|teleportation)
# Potions
menu += $danger:potions? of berserk
menu += magenta:potions? of mutation
menu += $decent:potions? of (flight|lignification|ambrosia)
menu += $good:potions? of (stabbing|brilliance|cancellation|invisibility|might|resistance)
menu += $positive:potions? of curing
menu += $mp:potions? of magic
menu += $verypositive:potions? of (haste|heal wounds)
menu += $awesome:potions? of experience
# Amulets
menu += $boring:amulet of (inaccuracy|harm)
menu += $good:amulet of (guardian spirit|the acrobat)
menu += $positive:amulet of (faith|reflection|magic regeneration)
menu += $verypositive:amulet of (regeneration)
# Rings
menu += $negative:ring of (attention|teleportation)
menu += $negative:ring of \-.*(dexterity|evasion|intelligence|protection|slaying|strength)
menu += $warning:ring of (fire|ice|stealth)
menu += $decent:ring of flight
menu += $verypositive:ring of (.*slaying)
menu += $positive:ring of (poison resistance|protection from cold|protection from fire|protection from magic|see invisible|resist corrosion)
menu += $good:ring of (.*evasion|.*protection|magical power|wizardry)
#menu += $awesome:
# Misc items
menu += blue:inert
menu += $good:throwing net
menu += $good:fan of gales
menu += $good:tin of tremorstones
menu += $good:phial of floods
menu += $good:lightning rod
menu += $decent:box of beasts
menu += $decent:sack of spiders
menu += $decent:Horn of Geryon
menu += $mp:crystal ball of energy
menu += $mp:Staff of Wucad Mu
menu += $awesome:Figurine of a ziggurat
# Deck colouring
menu += $verypositive:deck of escape
menu += $positive:deck of summoning
menu += $danger:deck of destruction
## message_colour options
####################
# Message coloring #
####################
# black, blue, green, cyan, red, magenta, brown, lightgrey,
# darkgrey, lightblue, lightgreen, lightcyan, lightred,
# lightmagenta, yellow, white
# Standard colours to be used for message highlighting
$danger := lightred
$item_dmg := red
$warning := yellow
$boring := darkgrey
$negative := brown
$good := lightblue
$positive := green
$verypositive := lightgreen
$awesome := lightmagenta
$interface := cyan
$takesaction := blue
$godaction := magenta
$mp := lightcyan
# 3-k Message Channels
# --------------------
#Channels
#channel.plain =
channel.prompt = $interface
channel.god = $godaction
channel.duration = $warning
channel.danger = $danger
channel.warning = $danger
channel.recovery = $verypositive
channel.talk = $warning
channel.talk_visual = $boring
channel.timed_portal = $warning
channel.intrinsic_gain = $awesome
#channel.mutation = --either danger/warning/awesome
channel.monster_spell = $takesaction
#channel.monster_enchant = --either danger/warning/boring/takesaction
channel.friend_spell = $takesaction
#channel.friend_enchant = --either danger/warning/boring/takesaction
channel.friend_action = $takesaction
channel.monster_damage = mute
#channel.banishment = --either positive or danger
channel.equipment = $interface
#channel.floor =
channel.multiturn = $boring
#channel.examine =
#channel.examine_filter =
#channel.diagnostics =
#channel.error =
#channel.tutorial =
channel.orb = $awesome
#channel.hell_effect = -either danger/warning/boring
# 3-l Inscriptions
# ----------------
####################
# Autoinscriptions #
####################
# Set Alias
ai := autoinscribe
# Overwrite annoying inscriptions with your own
# Inscribe distortion weapons if you are not worshipping Lugonu
: if you.god() ~= "Lugonu" then
ai += distortion:!w
: end
ai += (bad|dangerous)_item.*potion:!q
ai += potion of berserk rage:!q
ai += (bad|dangerous)_item.*scroll:!r
ai += dispersal:=f
ai += large rock:!d
ai += throwing net:=f, !d
# Armour
ai += fire dragon scale:rF++, rC-
ai += gold dragon scale:rC+, rF+, rP+
ai += ice dragon scale:rC++, rF-
ai += pearl dragon scale:rN+
ai += storm dragon scale:rElec
ai += swamp dragon scale:rP+
ai += quicksilver dragon scale:MR+
ai += shadow dragon scale:Stlth+
ai += troll hide:regen
ai += troll leather armour:regen
# Consumables
ai += curing:@q1, !d
ai += potions? of heal wounds:@q2, !d
ai += scrolls? of blinking:!r!d
ai += scrolls? of teleportation:!r!d, @r3
ai += scrolls? of identify: @r1
ai += scrolls? of remove curse: @r2, !d
ai += scrolls? of holy word:!r
ai += scrolls? of torment:!r
ai += scrolls? of magic mapping:!r
ai += scrolls? of vulnerability:!r
# Amulets
ai += amulet of faith:Faith, !P
# Rings
ai += ring of fire:rF+, rC-
ai += ring of flight:+Fly
ai += ring of ice:rC+, rF-
ai += ring of magical power:MP+9
ai += ring of poison resistance:rP+
ai += ring of positive energy:rN+
ai += ring of protection from cold:rC+
ai += ring of protection from fire:rF+
ai += ring of protection from magic:MR+
ai += ring of see invisible:sInv
ai += ring of stealth:Stlth+
ai += ring of teleportation:*tele
ai += ring of wizardry:wiz+
# Staves
ai += staff of air:rElec
ai += staff of cold:rC+
ai += staff of death:rN+
ai += staff of fire:rF+
ai += staff of poison:rP+
show_god_gift = unident
# 3-m Macro related Options.
# ------------------------------
macros += M S ===save_with_message
macros += M / z.@
macros += M \{-1011} za@
macros += M \{-1012} zb@
macros += M \{-1020} ===toggle_cheiwalk
macros += M < ===safe_upstairs
bindkey = [~] CMD_LUA_CONSOLE
# 3-n Tiles Options
# ---------------------
tile_runrest_rate = 25
tile_web_mouse_control = false
# 4- Character Dump.
# ===================
# 4-a Saving.
# ---------------
dump_on_save = true
# 4-b Items and Kills.
# ------------------------
dump_kill_places = all
dump_item_origins = all
dump_item_origin_price = 100
dump_message_count = 100
dump_order += vaults, turns_by_place, kills_by_place
# 4-c Notes.
# --------------
user_note_prefix = NOTE:
note_monsters += orb of fire,ancient lich
note_hp_percent = 50
note_all_skill_levels = true
note_xom_effects = true
note_chat_messages = true
flash_screen_message += Ashenzari invites you to partake
flash_screen_message += Ru believes you are ready to make a new sacrifice
flash_screen_message += distortion
autofight_wait = true
macros += M \{9} ===hit_closest_nomove