# TEAMCAPTAIN elliptic
bindkey = [^T] CMD_LUA_CONSOLE
# this rc is based off of simm's!! thank you
color.DARKGRAY = BLUE
{
function paranoid_rest() -- macro '5' to this
local hp, mhp = you.hp()
local mp, mmp = you.mp()
local can_heal = hp < mhp and you.race() ~= 'Deep Dwarf'
if can_heal or mp < mmp or you.confused() or you.slowed() or you.exhausted()
or you.teleporting() or you.anchored() or you.rooted() or you.poisoned()
or you.on_fire() or you.petrifying() or you.silencing() or
you.breath_timeout() or you.contaminated() > 0 or not you.feel_safe()
or crawl.yesno('Really rest?', false, 'n') then
crawl.sendkeys('5')
end
end
function search() -- macro '\{6}' (Ctrl-F) to this
local ctrlf = string.char(6)
local enter = string.char(13)
local esc = string.char(27)
local shortcuts = {
'armour', 'book', 'manual', 'altar', 'ego', 'dropped',
'blowgun|needle', 'cure mut|res.*abil', 'scroll.*ench',
'@corpse$&&!!rot|skel', 'artifact',
'short bl', 'long bl', 'axe', 'mace', 'polearm', 'stave',
'\\bbow', 'crossbow', 'throwable',
'rF\\+|ring.*fire', 'rC\\+|ring.*(cold|ice)',
'rPois|poison res', 'MR\\+|from magic',
'rCorr|resist corr', 'rMut|resist mut'
}--
local function print_header()
local function hilite(line)
return '' ..
line:gsub('(%w)=', '%1=') .. ''
end
crawl.clear_messages(true)
local line = ''
local sep = ' '
for i = 1, 26 do
local k = string.char(64 + i)
local v = shortcuts[i]
if v then
-- alias Ctrl-A and Shift-A, etc.
shortcuts[string.char(i)] = v
shortcuts[k] = v
local entry = k .. '=' .. v
if line == '' then
line = entry
elseif #(line .. sep .. entry) >= 79 then
crawl.mpr(hilite(line), 'prompt')
line = entry
else
line = line .. sep .. entry
end
end
end
if line then crawl.mpr(hilite(line), 'prompt') end
end
print_header()
crawl.mpr('Search for what [? for help]? ', 'prompt')
local letter = string.char(crawl.getch())
print_header()
shortcuts[string.char(13)] = nil
local sc = shortcuts[letter]
crawl.sendkeys(ctrlf .. (sc and sc .. enter or letter))
end
_ready = ready
function ready()
if _ready then _ready() end
if crawl.messages(1):match('Enter note: hi') then
crawl.mpr('\226\128\139hi ' .. you.name() .. '...')
end
local hp, mhp = you.hp()
crawl.setopt('mon_glyph += player :' .. (2*hp < mhp and 9785 or 9786))
if you.where() == 'Depths:1' or you.where() == 'Depths:2' then
crawl.setopt('feature += rock wall { , , lightblue }')
crawl.setopt('feature += floor { , , cyan }')
crawl.setopt('feature += tree { , , magic }')
elseif you.where():find('Depths') then
crawl.setopt('feature += rock wall { , , blue }')
crawl.setopt('feature += floor { , , cyan }')
crawl.setopt('feature += tree { , , magic }')
else
crawl.setopt('feature =')
end
crawl.setopt('feature += (shallow water|deep water|lava)$ { = }')
end
ready()
-- armour autopickup by medar, slightly tweaked by simmarine and lynn
local function armour_plus(it)
local plus = string.gsub(it.name(), '+', '', 1)
local s, _ = string.gsub(plus, '[^-%d]', '')
return tonumber(s)
end
local function autopickup(it, name)
if it.is_useless then return end
local class = it.class(true)
if class ~= 'armour' then return end
st, _ = it.subtype()
local good_slots = {cloak='Cloak', helmet='Helmet',
gloves='Gloves', boots='Boots'}
local cur
if good_slots[st] ~= nil then
if it.branded or it.artifact then return true end
cur = items.equipped_at(good_slots[st])
if not cur then return true end
if cur.branded or cur.artefact then return end
elseif st == 'body' then
cur = items.equipped_at('armour')
if not (cur and cur.name('qual') == it.name('qual')) then return end
if it.branded then return true end
if cur.branded or cur.artefact then return end
else
return
end
if cur then
local xi = armour_plus(it)
local xc = armour_plus(cur)
if xi and xi > xc or xc < 0 then return true end
end
end
add_autopickup_func(autopickup)
}
#####
# aliases !!!
#####
ae := autopickup_exceptions
stop := runrest_stop_message
ignore := runrest_ignore_message
more := force_more_message
menu := menu_colour
ai := autoinscribe
spell := spell_slot
item := item_glyph
msg := message_colour
: if you.god() == "Jiyva" then
msg ^= mute:You hear a distant slurping noise.
msg ^= mute:You hear a squelching noise.
msg ^= mute:You feel a little less hungry.
msg ^= mute:You feel a little better.
msg ^= mute:You feel your power returning.
: end
msg ^= green:.*is .*poisoned.
msg ^= lightmagenta:Your rod.*recharged.
# autopickup
ae += potions? of (berserk rage|blood|flight|invisibility|mutation)
ae += scrolls? of (amnesia|brand|holy word|vulnerability)
ae += wand of (confusion|digging|disintegration|draining|enslavement)
ae += wand of (fireball|flame|frost|invisibility|lightning|magic darts)
ae += wand of (paralysis|polymorph|random effects|slowing)
ae += ring of (fire|flight|ice|magical power|positive energy|protection )
ae += ring of (regeneration|stealth|sustain abilities|sustenance|teleport)
ae += ring of wizardry
: if you.god() == 'Nemelex Xobeh' then
ae += rainbows
small_more = true
# menu and message colours
menu += cyan:potions? of.*(agility|brilliance|might)
menu += cyan:scrolls? of (enchant|recharging)
menu += cyan:scrolls? of enchant
menu -= cyan:.*misc.*[lL]antern
# inscriptions
ai += (bad|dangerous)_item.*potion:!q
ai += (bad|dangerous)_item.*scroll:!r
ai += potion.*berserk rage:!q
ai += scroll.*silence:!r
ai += distortion:!w
ai += of faith:!P
ai += of stasis:!P
ai += staff of (conjuration|energy|power|wizardry|Wucad Mu):!a
ai += rod:!a
ai += blowgun:@w1
ai += (curare|dispersal):!f
ai += cancellation:remove Mark, Contam
ai += curing:@q1
ai += potions? of heal wounds:@q2
ai += wand of heal wounds:@v2
ai += potions? of haste:@q3
ai += wand of hasting:@v3
ai += scrolls? of teleportation:@r4
ai += wand of teleportation:@v4
ai += identify:@r1
: if you.race() == 'Vampire' then
ai += potions? of.*blood:@q4
: end
: if you.god() == 'Fedhas' then
ai += fruit:!e
: end
# body armour ac/intrinsics
ai += (robe|animal skin):2
ai += [^l] leather armour:3
ai += ring mail:5
ai += scale mail:6
ai += chain mail:8
ai += [^l] plate armour:10
ai += crystal plate armour:14
ai += troll leather armour:4 +Regen
ai += steam dragon armour:5 rSteam
ai += mottled dragon armour:6 rNapalm
ai += swamp dragon armour:7 rPois
ai += fire dragon armour:8 rF++ rC-
ai += ice dragon armour:9 rC++ rF-
ai += storm dragon armour:10 rElec
ai += shadow dragon armour:10 Stlth+4
ai += quicksilver dragon armour:10 MR+
ai += pearl dragon armour:10 rN+
ai += gold dragon armour:12 rF+ rC+ rPois
# max charge inscriptions
ai += wand of (invisibility|heal wounds|hasting|fireball|teleportation):9
ai += wand of (lightning|draining):24
ai += wand of (fire$|cold):30
ai += wand of (confusion|digging|disintegration|enslavement|flame|frost):48
ai += wand of (magic darts|paralysis|polymorph|random effects|slowing):48
# color some useful/useless stuff
item += (.+ ring$|\bring of) : "
item += potions? of.*(agility|brilliance|might):cyan
item += wand of (heal wounds|hasting|teleportation):yellow
item += corpse:lightgrey
item += mutagenic.*corpse:magenta
item += forbidden.*corpse:darkgrey
item += putrefying.*corpse:lightred
item += poisonous.*corpse:lightgreen
# spell slots
spell += Ozocubu's Armour:o
spell += Stoneskin:s
spell += Phase Shift:p
spell += Swiftness:w
spell += Repel Missiles:r
spell += Deflect Missiles:d
spell += Regeneration:R
spell += Control Teleport:t
spell += Condensation Shield:c
spell += Invisibility:i
spell += Apportation:A
spell += Haste:H
spell += Blink:B
spell += Controlled Blink:C
spell += Flight:l
spell += Sublimation of Blood:m
spell += Mephitic Cloud:m
spell += Shroud of Golubria:g
spell += Death's Door:PO
spell += Borgnjor's Revivification:PO
spell += .*:abcdefqwrvtgb
#"""