# TEAMCAPTAIN elliptic
# this rc is based off of simm's!! thank you
# color.DARKGRAY = BLUE
{
local dmg_old_hp = 0
function DmgTrack()
local bot_hp, bot_mhp = you.hp()
local dmg_inturn = 0
local huge_int = 0
local percent_hp = 0
local percent_old_hp = 0
local percent_hp_txt = "--%"
if dmg_old_hp > 0 then
if bot_hp < dmg_old_hp then
dmg_inturn = dmg_old_hp - bot_hp
percent_old_hp = math.ceil((dmg_old_hp*100)/bot_mhp)
percent_hp = math.ceil((bot_hp*100)/bot_mhp)
percent_hp_txt = percent_hp .. "%"
if percent_hp < 30 then
percent_hp_txt = "" .. percent_hp_txt .. ""
elseif percent_hp < 55 then
percent_hp_txt = "" .. percent_hp_txt .. ""
elseif percent_hp < 75 then
percent_hp_txt = "" .. percent_hp_txt .. ""
end
percent_hp_txt = percent_hp_txt .. "(" .. bot_hp
.. "hp)"
if dmg_inturn > (bot_hp*0.25) then
huge_dmg_note(dmg_inturn)
crawl.mpr("Huge Dmg: -" ..
(percent_old_hp-percent_hp) .. "%(-" .. dmg_inturn ..
"hp)" .. " hp: " .. percent_hp_txt)
dmg_old_hp = bot_hp
crawl.flush_prev_message()
crawl.more()
crawl.more_autoclear(true)
else
if dmg_inturn > (bot_hp*0.15) then
crawl.mpr("Damage: -" ..
(percent_old_hp-percent_hp).."%(-" .. dmg_inturn ..
"hp)" .. " hp: " .. percent_hp_txt)
else
crawl.mpr("Damage: -".. (percent_old_hp-percent_hp)
.. "%(-" .. dmg_inturn .. "hp)" ..
" hp: " .. percent_hp_txt)
end
end
crawl.flush_prev_message()
end
end
dmg_old_hp = bot_hp
end
function huge_dmg_note(x)
crawl.take_note("Huge Dmg: " .. x .. " dmg")
end
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
DmgTrack()
if crawl.messages(1):match('Enter note: hi') then
crawl.mpr('\226\128\139hi ' .. you.name() .. '...')
end
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
end
-- 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
: if you.god() == "Qazlal" then
msg ^= mute:The (plant|fungus) is.*
msg ^= mute:You destroy the (plant|fungus).
: end
msg ^= green:.*is .*poisoned.
msg ^= green:.*even sicker.
msg ^= green:.*sick as possible!
msg ^= mute:.*flesh.*inventory.*rotted away.
# 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 +=