# currently, most recent version should be at CBRO, then CSZO # 2015 Mar 12 # TODO: new spells?, autopickup: neg armour, shields include += HUGEDMG.rc # Crawl Init file ##### 1- Starting Screen ############################################ # restart_after_game = true default_manual_training = true ##### 2- File System ############################################### # ##### 3- Interface ################################################# # ##### 3-a Picking up and Dropping ############### # autopickup = $?!:"/%\ ae := autopickup_exceptions ae += wand of (frost|flame|conf|para|ensl|random|dig|disint|magic|poly|slow) pickup_mode = multi ##### 3-b Targetting ############################ # ##### 3-c Passive Sightings ##################### # ##### 3-d Branding ############################## # ##### 3-e Level Map Functions ################### # ##### 3-f Viewport Options ################### # ##### 3-g Travel and Exploration ################# # travel_delay = -1 rest_delay = -1 auto_sacrifice = true runrest_ignore_monster ^= wandering mushroom:3 runrest_ignore_message ^= You feel.*sick stop := runrest_stop_message stop += duration:. : if you.god() == "Xom" then stop += god:. : end ##### 3-h Command Enhancements ################## # # Let me actually use rods bindkey = [v] CMD_FORCE_EVOKE_WIELDED equip_unequip = true easy_eat_chunks = true easy_eat_gourmand = true auto_eat_chunks = true auto_drop_chunks = rotten autofight_stop = 0 autofight_throw_nomove = false sort_menus += inv: true : equipped, freshness, charged, qualname # spell slots, organisation inspired by elliptic spell := spell_slot # spells that will (nearly) always have the same letter... spell += summon butterflies:qQ spell += regeneration:r spell += flight:fF spell += shroud of golubria:geE spell += abjuration:A spell += ozocubu's armour:eEo spell += stoneskin:eEs spell += phase shift:eEp spell += repel missiles:mM spell += swiftness:s spell += control teleport:t spell += ^blink:B spell += sublimation of blood:xX spell += apportation:a spell += dig:dg spell += dispersal:QDE spell += darkness:qQ spell += ring of flames:F spell += haste:H spell += invisibility:V spell += disjunction:J spell += necromutation:DM spell += borgnjor's revivification:G spell += deflect missiles:mM spell += silence:S spell += statue form:S spell += alistair's intoxication:cCQ spell += controlled blink:b spell += passwall:p spell += death's door:D spell += recall:R #brands spell += warp weapon:w spell += excruciating woundsp:w spell += poisonous cloud:cCQ spell += freezing cloud:cCQ spell += ozocubu's refrigeration:cCQ spell += conjure ball lightning:CcQ spell += chain lightning:cCQ spell += Discord:CcQ #zombies spell += animate dead:zZ spell += twisted resurrection:zZ spell += control undead:zZQ spell += animate skeleton:zZ # big stuff: YKUHLJN if there's not a better place spell += fire storm:CYKUHLJN spell += glaciate:YKUHLJN spell += shatter:SYKUHLJN spell += tornado:TYKUHLJN spell += summon horrible things:YKUHLJN spell += dragon's call:YKUHLJN spell += summon greater demon:YKUHLJN spell += haunt:YKUHLJN spell += malign gateway:YKUHLJN spell += dragon form:YKUHLJN # oddball spells spell += passage of golubria:g spell += confusing touch:w spell += sure blade:w spell += condensation shield:eE spell += corpse rot:cCQ spell += portal projectile:fp spell += simulacrum:wWX spell += metabolic englaciation:cC spell += ignite poison:pP spell += sticks to snakes:wW spell += death channel:W spell += cure poison:p spell += mass confusion:cCQ spell += olgreb's toxic radiance:cCQ spell += cause fear:cCQ spell += static discharge:cC spell += leda's liquefaction:TQ # defaults (attack / summon / transform / conflicts) go on numpad spell += .*:ykuhljnYKUHLJN ##### 3-i Messages and Display Enhancements ##### # hp_warning = 40 mp_warning = 30 hp_colour = 70:yellow, 40:red use_animations -= hp menu := menu_colour menu += lightred:legendary deck of destruction menu += red:deck of destruction menu += lightblue:legendary deck of war menu += blue:deck of war menu += yellow:legendary deck of escape menu += brown:deck of escape menu += lightgreen:legendary deck of summoning menu += green:deck of summoning menu += lightmagenta:legendary deck of wonders menu += magenta:deck of wonders menu += lightcyan:legendary deck of menu += white:deck of cards menu += cyan:deck of menu += lightblue: wand of (invis|fireball) menu += cyan:wand of (cold|draining|lightning|fire) menu += lightgreen: wand of (flame|frost|magic) menu += brown: wand of (dig|disint) menu += white: wand of (enslave|para|poly) menu += lightblue:^unidentified .*(potion|scroll|wand|jewellery).* menu += lightcyan:potions? of.*(agility|brilliance|might) menu += lightgreen:scroll.*enchant menu += green:scroll.*(brand|recharg) menu += white:scroll.*(identify|remove) ##### 3-j Colours (messages and menus) ########## # # You can also enforce a --more-- prompt for messages msc := message_colour msc += yellow:.* is unaffected msc ^= mute:Your icy envelope dissipates! : if you.god() == "Zin" then channel.multiturn = white : end fmm := force_more_message fmm += You have reached level fmm += You fall through a shaft fmm += .*at an altar fmm += LOW HITPOINT WARNING fmm += You are starving fmm += You feel drained fmm += .*orbs? of fire.* comes? into view fmm += .*pandemonium* comes? into view fmm += .*lich.* comes? into view fmm += .*greater mumm.* comes? into view fmm += .*(s|player) ghost.* comes? into view fmm += .*Fiend.* comes? into view fmm += .*Hell Sentinel.* comes? into view fmm += You have finished your manual fmm += Found .* abyssal rune of Zot fmm += Okawaru sends forces against you! fmm += Trog sends monsters to punish you : if you.god() == "Xom" then fmm += god:. : end ##### 3-k Firing Commands ####################### # ##### 3-l Channels ############################## # ##### 3-m Inscriptions ########################## # ai := autoinscribe ai += bad_item.*potion:!q ai += potion[^b]*mutation:!q : if you.god() == "Fedhas" then ai += fruit:!e : end #rods of not striking ai += rod of .[^t]:!a ai += lightning rod:!a ai += staff of wizardry:!a ai += staff of power:!a ai += staff of energy:!a ai += staff of conjuration:!a ai += staff of summoning:!a ai += arrow.*dispersal:=f ai += bolt.*penetration:=f ai += scroll.*identify:@r1 ai += blowgun:@w1 ##### 3-n Macro related Options ################# # ##### 3-o Tile related Options ################## # ##### 4- Dump File ################################################# # ##### 4-a Saving ################################ # ##### 4-b Items and Kill List ################### # dump_kill_places = all dump_item_origins = artifacts,ego_arm,ego_weap,jewellery dump_message_count = 50 dump_order += vaults ##### 4-c Notes ################################# # note_all_skill_levels = true note_chat_messages = true ##### 5- Miscellaneous ############################################# # ##### 5-a All OS ################################ # #show_player_species = true mons := mon_glyph item := item_glyph : if you.god() == "Jiyva" then #show_player_species = false mons ^= player : J : end : if you.god() == "Beogh" then #show_player_species = false : end { local pglyphs = { Centaur = "♐", ["Deep Dwarf"] = "g", ["Deep Elf"] = "ε", ["Demigod"] = "♀", Draconian = "δ", Demonspawn = "Ж", Felid = "h", Formicid = "a", Ghoul = "n", Gargoyle = "γ", Halfling = "g", ["High Elf"] = "ε", ["Hill Orc"] = "ω", Human = "♂", Kobold = "K", Merfolk = "μ", Minotaur = "H", Mummy = "M", Naga = "N", Ogre = "ζ", Octopode = "x", Spriggan = "♥", Tengu = "H", Troll = "T", Vampire = "V", ["Vine Stalker"] = "f",} glyph = pglyphs[you.race()] if glyph == nil then glyph = "♥" end crawl.setopt("mon_glyph ^= player : " .. glyph) } #x263c sun mons ^= orb of fire : ☼ mons ^= dancing weapon : { mons ^= spectral weapon : { #x266b eighth notes (sensed monsters) mons ^= { : ♫ cset ^= invis_exposed : ♫ #great darkblue culling (not all monsters) mons ^= lurking horror: lightblue mons ^= lorocyproca: cyan mons ^= blue devil: lightcyan mons ^= Grinder: lightblue mons ^= gelid demonspawn: cyan mons ^= Roxanne: brown mons ^= Donald: cyan mons ^= Eustachio: brown mons ^= goliath beetle: lightblue mons ^= steam dragon: green mons ^= fire dragon: lightred mons ^= wyvern: green k mons ^= Pikel: lightblue mons ^= naga warrior: cyan mons ^= tengu conjurer: red mons ^= black mamba: lightblue mons ^= shock serpent: cyan mons ^= phantom: yellow mons ^= starcursed mass: lightmagenta mons ^= dire elephant: lightgreen mons ^= raven: lightblue mons ^= black draconian: lightblue mons ^= deep elf conjurer: red mons ^= Duvessa: cyan mons ^= Ijyb: lightblue mons ^= black bear: lightblue mons ^= polar bear: white mons ^= warg: green mons ^= iguana: lightblue mons ^= draconian monk: green mons ^= porcupine: lightblue mons ^= baby alligator: cyan mons ^= trivial sensed monster: lightblue #noticing these is good mons ^= ancient lich: lightmagenta mons ^= greater mummy: lightmagenta #no tricky berserked Cs, please mons ^= fire giant: lightred C mons ^= hill giant: lightgreen C mons ^= Brimstone Fiend: fire mons ^= Ice Fiend: ice mons ^= Shadow Fiend: unholy mons ^= Hell Sentinel: iron # Ж cyrillic zhe mons ^= &: Ж item ^= corpse: & #demonspawn are lesser panlords no longer mons ^= 6: π # £ pound sign xa3 : if you.god() == "Fedhas" then mons ^= oklob plant : @ mons ^= toadstool : f : else mons ^= plant : xa3 mons ^= toadstool : xa3 : end mons ^= bush : xa3 mons ^= burning bush : xa3 mons ^= briar patch : xa3 mons ^= fungus : xa3 # ∞ #infinity symbol x221e # item ^= rune of Zot : x221e item ^= rune of Zot : ∞ #actually default #feature = mangrove {♣} #feature = tree {♣} feature = staircase leading out of the dungeon { α } # ☺ smily face x263a cset ^= cloud : x263a # Ω #omega x3a9 cset ^= item_orb : x3a9 #colouring stuff on the ground, inspired by simmarine (simm) item += potion:lightgrey item += wand:lightgrey item += good_item:cyan item += emergency_item:yellow item += dangerous_item:magenta item += wand of (invis|fireball):lightblue item += wand of (cold|draining|lightning|fire):cyan item += wand of (flame|frost|magic):lightgreen item += wand of (dig|disint):brown item += wand of (enslave|para|poly):white item += potions? of.*(agility|brilliance|might):lightcyan item += (forbidden|useless).*(potion|scroll|wand):darkgrey item += unidentified.*(potion|scroll|wand).*:lightblue item += scroll.*enchant:lightgreen item += scroll.*(brand|recharg):green item += scroll.*(identify|remove):white : if you.race() == "Vampire" then item += preferred:yellow : end ##### 5-b Windows console ####################### # ##### 5-c Unix console ########################## # ##### 5-d Alternative keybinding files ########## # # autopickup by Medar { local function armour_plus(it) local plus = string.gsub(it.name(), "+", "", 1) return tonumber(string.gsub(plus, "[^-%d]", "")) end local function autopickup(it, name) if it.is_useless then return false end if it.artefact then return true end local class = it.class(true) if class == "armour" then local good_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots"} st, _ = it.subtype() if good_slots[st] ~= nil then if it.branded then return true end local cur = items.equipped_at(good_slots[st]) if cur == nil then return true end if cur.branded or cur.artefact then return false end if armour_plus(it) ~= nil then if armour_plus(it) > armour_plus(cur) then return true end else if armour_plus(cur) < 0 then return true end end elseif st == "body" then local cur = items.equipped_at("armour") if cur == nil then return false end if cur.name("qual") ~= it.name("qual") then return false end if it.branded then return true end if cur.branded or cur.artefact then return false end if armour_plus(it) ~= nil then if armour_plus(it) > armour_plus(cur) then return true end else if armour_plus(cur) < 0 then return true end end end end if class == "missile" then if name:find("curare") then return true end end return end add_autopickup_func(autopickup) } # Skill menu at game start by rwbarton # needs to preserve ready for hugedmg (rchandra) # now includes autodump from qw { local dump_count = you.turns() local need_skills_opened = true local oldready = ready function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end if you.turns() >= dump_count then dump_count = dump_count+1000 crawl.dump_char() end oldready() end } #I bind the following functions to shift-tab and tab, respectively. #assisted by |amethyst { function autofight_throw() AUTOFIGHT_THROW = true hit_closest_nomove() end function autofight_nothrow() AUTOFIGHT_THROW = false hit_closest_nomove() end } { function testing_lua() crawl.mpr(dgnlvl.level_name()) end }