# 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 #"""