# 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 +=