# TEAMCAPTAIN prozacelf # Crawl Init file ############### ### Display ### ############### view_delay = 300 hp_colour = 100:green, 99:lightgray, 75:yellow, 50:lightred, 25:red mp_colour = 100:green, 99:lightgray, 75:yellow, 50:lightred, 25:red hp_warning = 50 monster_list_colour = monster_list_colour += friendly:green,neutral:brown monster_list_colour += good_neutral:brown,strict_neutral:brown monster_list_colour += trivial:darkgrey,easy:lightgrey monster_list_colour += tough:yellow,nasty:lightred ############### ### Console ### ############### # Enable use of darkgrey. # needed in 0.20 bold_brightens_foreground=true best_effort_brighten_background=false ## For item_glyph, subsequent matches override previous ones. item := item_glyph ## Reasonable defaults item += potion:lightgrey item += scroll:lightgrey item += wand:lightgrey item += dangerous_item:blue item += useless_item:darkgrey ### Potions ### item += potions? of.*(lignification|mutation):blue item += potions? of.*heal wounds:lightred item += potions? of.*(curing|flight):lightgrey item += potions? of.*(experience|beneficial mutation):white item += potions? of.*berserk:brown item += potions? of.*might:yellow item += potions? of.*brilliance:green item += potions? of.*(invisibility|agility):lightgreen item += potions? of.*cancellation:cyan item += potions? of.*cure mutation:lightcyan item += potions? of.*(magic|ambrosia):magenta item += potions? of.*(haste|resistance):lightmagenta ### Scrolls ### item += scroll.*noise:blue item += scroll.*recharging:lightred item += scroll.*(amnesia|curse):lightgrey item += scroll.*acquirement:white : if you.race() == "Vampire" or you.race() == "Mummy" : or you.race() == "Ghoul" then item += scroll.*holy word:blue item += scroll.*torment:brown : else item += scroll.*holy word:brown item += scroll.*torment:blue : end item += scroll.*(summoning):yellow item += scroll.*(silence|vulnerability|immolation):green item += scroll.*(enchant|brand weapon):lightgreen item += scroll.*identify:cyan item += scroll.*magic mapping:lightcyan item += scroll.*(fog|teleport):magenta item += scroll.*(fear|blink):lightmagenta ### Wands ### item += wand of.*random effects:blue item += wand of.*heal wounds:lightred # frost/mdart not needed in 0.18 item += wand of.*(flame|frost|magic dart):lightgrey item += wand of.*iceblast:white # fire/cold/drain not needed in 0.18 item += wand of.*(acid|fire|cold|drain):yellow # fireball not needed in 0.18 item += wand of.*(lightning|fireball):brown item += wand of.*(slowing|confusion|polymorph):green item += wand of.*(invisibility|paralysis|enslavement):lightgreen item += wand of.*(digging|disintegration):cyan item += wand of.*teleportation:magenta item += wand of.*hasting:lightmagenta ### General Identification ### item += ( rod ):yellow item += (identified|known).*(jewellery|magical staff):brown item += identified.*spellbook:magenta item += unidentified.*(potion|scroll|jewellery|wand|rod|magical staff).*:lightblue item += unidentified.*book:lightmagenta item += manual:lightcyan item += manual of:cyan ### Jewellery ### item += known.*(ring of (dexterity|strength|intelligence|slaying|evasion|protection(?! from))|amulet of reflection):magenta item += identified.*artefact.*(jewellery):white item += unidentified.*artefact.*(jewellery).*:lightmagenta item += (a )?stones?$:lightgray ### Food ### item += chunks?.*flesh:lightgrey : if you.race() == "Vampire" then item += potions? of blood:lightgrey : end item += mutagenic.*chunk:blue item += evil_eating.*chunk:red item += inedible.*chunk:darkgrey item += fruit:brown item += (pizza|jerky|jerkies):yellow item += royal jell:green item += bread ration:lightgreen item += meat ration:lightred # Want this to override anything above item += useless:darkgrey # Only mark these types when forbidden; for other types it looks odd. item += forbidden.*(potion|scroll|food):red mons := mon_glyph # Monsters that can be easy to miss mons ^= * : ✱ mons ^= dancing weapon : cyan { mons ^= spectral weapon : lightcyan { # Classed Demonspawn mon += blood saint:9 # not needed in 0.18 mon += chaos champion:9 mon += warmonger:9 mon += corrupter:9 mon += black sun:9 # Wall glyphs; requires a font and terminal that can render these. feature += crystal wall {░} feature += stone wall {▒} feature += metal wall {▓} feature += unnaturally hard rock wall {█} feature += altar {⚑} ############# ### Tiles ### ############# tile_window_width = 1300 tile_window_height = 700 tile_full_screen = false tile_map_pixels = 3 ################### ### Menu Colors ### ################### # These should match the item_glyph colours exactly when possible. # For menu_colour, the first match ignores subsequent matches. menu := menu_colour menu = # Many of the entries below come from dat/defaults/menu_colours.txt, # which we have to duplicate here since we want only some of the # entries from that file. menu += notes:white:Reached XP level ### General Inventory### # Items currently not affecting you. menu += darkgrey:(melded) # Items disliked by your god. menu += red:forbidden # Useless items, comes here to override artefacts etc. menu += darkgrey:.*useless.* # Handle cursed and equipped items early to override other colour settings. menu += lightred:.*equipped.* cursed menu += red: (a|the) cursed menu += inventory:lightgreen:.*equipped.* # Colouring of autoinscribed god gifts menu += pickup:lightred:god gift # Highlight (partly) selected items menu_colour += inventory:white:\w \+\s menu_colour += inventory:white:\w \#\s ### Food ### # Color chunks, put ordinary ones on lightgrey. menu += red:evil_eating.*chunk menu += blue:mutagenic.*chunk menu += darkgrey:inedible menu += lightgrey: +(chunks?$|chunks? +) # These are analogous to chunks : if you.race() == "Vampire" then menu += lightgrey:potions? of blood : end # Other food menu += brown:fruit menu += yellow:(pizza|jerky|jerkies) menu += green:royal jell menu += lightgreen:bread ration menu += lightred:meat ration ### Potions ### # Mostly harmful menu += blue:potions? of.*(lignification|(?wand of (frost|flame|conf|para|ensl|random|dig|disint|magic|poly|slow) pickup_mode = multi ae += deck : end # Tend to not use these. ae += >scrolls? of silence ae += >(crystal ball of energy|disc of storm) # Don't ever need a second stave ae += staff of .* ################ ### Messages ### ################ channel.multiturn = mute msc := message_colour msc += mute:returns to your side msc += mute:a demon appears msc += lightgrey:The deck of cards disappears msc += mute:puff of smoke msc += mute:carefully avoids msc += mute:is recalled msc += mute:wall.*burn.*your msc += mute:dissolves? into (sparkling lights|shadows) msc += mute:(crumbles|melts) away\. msc += mute:(merges|forms) itself .* the air msc += mute:you swap places msc += mute:your.*(looks stronger|shudders|resists) msc += mute:your.*(stumbles backwards|holds.*ground) msc += mute:your.*(blinks|safely over) msc += mute:(phases out.*|misses) (your|something).* msc += mute:your.*(picks up|drops) msc += mute:your.*basks in the mutagenic energy msc += mute:your.*(struggles|tears|pulls away).*(web|net) more := force_more_message : if you.god() == "Ashenzari" then more += You have a vision of.*gates? : end more += The mighty Pandemonium lord .* resides here # Interrupts more += You don't .* that spell more += You fail to use your ability # 0.18 (Haste) more += You miscast.*(Blink|Borgnjor|Door|Haste|Invisibility) more += You can't (read|drink|do) more += You cannot .* while unable to breathe more += You cannot .* in your current state more += when .*silenced more += too confused more += There's something in the way more += There's nothing to (close|open) nearby more += not good enough to have a special ability more += You are too berserk more += no means to grasp more += That item cannot be evoked more += This wand has no charges more += You are held in a net more += You don't have any such object more += You can't unwield more += enough magic points more += You don't have the energy to cast that spell more += You are unable to access your magic # Bad things more += Your surroundings flicker more += You cannot teleport right now more += A sentinel's mark forms upon you more += (blundered into a|invokes the power of) Zot more += enter a teleport trap more += Ouch! That really hurt! more += dispelling energy hits you more += You are blasted by holy energy! more += You are (blasted|electrocuted)! more += You are.*(confused|poisoned) more += flesh rotting more += (starving|devoid of blood) more += god:(sends|finds|silent|anger) more += You feel a surge of divine spite more += disloyal to dabble more += lose consciousness more += You are too injured to fight blindly more += calcifying dust hits more += Space warps.*around you more += Space bends around you more += watched by something more += flickers and vanishes! more += doesn't seem very happy more += is no longer charmed # Hell effects more += hell_effect: # Expiring effects more += You feel yourself slow down more += You are starting to lose your buoyancy more += Your hearing returns more += Your transformation is almost over more += You have a feeling this form more += You feel yourself come back to life more += time is quickly running out more += life is in your own hands more += Your shroud falls apart more += You start to feel a little slower more += You feel less protected from missiles # Others more += You have reached level more += You rejoin the land of the living more += You have finished (your manual|forgetting about) more += Your scales start more += You feel monstrous more += Jiyva alters your body : if you.god() == "Xom" then more += god: : end # Dangerous monsters we force_more when first seen. # Eyes and bugs with ranged, irresistable effects. # 0.18 more += ((giant|floating|shining) eye|eye of draining).*into view more += (moth of wrath|ghost moth|torpor snail).*into view # Convokers/encirclers more += (guardian serpent|draconian shifter|convoker).*into view # Torment/flay more += (flayed ghost|greater mummy|mummy priest|fiend|tzitzimitl).*into view more += (tormentor|curse toe|curse skull).*into view # Hellfire more += (hellion|hell sentinel|deep elf sorcerer).*into view more += (deep elf high priest|zealout|scorcher).*into view # Rare, high damage things. more += (ancient lich|orb of fire|executioner|juggernaut|shrike).*into view # Any uniques and any pan lords more += (?-i:[A-Z]).* comes? into view # not needed in 0.18 more += the royal jelly.* comes? into view stop := runrest_stop_message ignore := runrest_ignore_message :if you.god() == "Xom" then stop += god: :else ignore += god: :end # Bad things stop += A huge blade swings out and slices into you stop += (starving|devoid of blood) stop += wrath finds you stop += lose consciousness stop += hell_effect: # Expiring effects stop += You feel yourself slow down stop += You are starting to lose your buoyancy stop += Your hearing returns stop += Your transformation is almost over stop += back to life stop += time is quickly running out stop += life is in your own hands stop += is no longer charmed : if you.race() == "Ghoul" then stop += smell.*(rott(ing|en)|decay) stop += something tasty in your inventory : end # Annoyances ignore += grinding sound ignore += contamination has completely ignore += rod.*has recharged ignore += your breath back ignore += pray: ignore += talk: ignore += talk_visual: ignore += friend_spell: ignore += friend_enchant: ignore += friend_action: ignore += sound: ########################### ### Spell/Ability slots ### ########################### # Move off `aa` so we don't mistrigger it. ability_slot += Berserk:k ability_slot += Fly|flight:lF ability_slot += Stop Flying:L ability_slot += Breathe:t ability_slot += Blink:IB ability_slot += Invisibility:iv # Use z for L1 damage/buff spells in starting books. # Prefer to use letters in a word of the spell name at (1) beginning, (2) end, # (3) anywhere, or (4) at the beggining of a school of the spell, in order of # preference. # Use vowels+s,r for self-enchantments or escape spells, all other available # letters for remaining spells. Use upper-case letters for spells like Blink # that are dangerous to miskey. spell_slot += Alistair's intoxication:txc spell_slot += Apportation:aoi spell_slot += Airstrike:ktA spell_slot += Aura of abjuration:uio spell_slot += Agony:yng spell_slot += Animate dead:dnt spell_slot += Animate skeleton:knt spell_slot += Beastly appendage:zbt spell_slot += Blade hands:bdt spell_slot += Blink:IKB spell_slot += Bolt of cold:bcd spell_slot += Bolt of draining:bdg spell_slot += Bolt of fire:bft spell_slot += Bolt of magma:bmt spell_slot += Borgnjor's revivification:BOE spell_slot += Call canine familiar:fcn spell_slot += Call imp:cpu spell_slot += Cause fear:xcf spell_slot += Controlled blink:oie spell_slot += Corona:zcn spell_slot += Chain lightning:cn spell_slot += Cigutovi's embrace:eio # not needed in 0.18 spell_slot += Condensation shield:eio spell_slot += Confusing touch:oxc spell_slot += Confuse:cfn spell_slot += Conjure flame:cfj spell_slot += Control undead:cld spell_slot += Corpse rot:ctp spell_slot += Cure poison:ieu spell_slot += Dazzling spray:dyz spell_slot += Darkness:EAS spell_slot += Death channel:dcn spell_slot += Death's door:EAS spell_slot += Deflect missiles:rei spell_slot += Discord:DCH spell_slot += Disjunction:iou spell_slot += Dispel undead:ndp spell_slot += Dispersal:dxp spell_slot += Dragon form:dfm spell_slot += Dragon's call:dcl spell_slot += Ensorcelled hibernation:zxc spell_slot += Excruciating wounds:wxd spell_slot += Fire storm:fmt spell_slot += Fireball:fbl spell_slot += Flame tongue:zfm spell_slot += Force lance:flc spell_slot += Freezing cloud:fcd spell_slot += Freeze:zfc spell_slot += Fulminant prism:fpt spell_slot += Gell's Gravitas:gvt spell_slot += Glaciate:gct # not needed in 0.19 spell_slot += Haste:eas spell_slot += Haunt:hnt spell_slot += Hydra form:hym spell_slot += Ice form:cfm spell_slot += Iron shot:tnT spell_slot += Infusion:ofn spell_slot += Inner flame:fxn spell_slot += Invisibility:vyx spell_slot += Irradiate:tdD spell_slot += Iskenderun's battlesphere:kdp spell_slot += Iskenderun's mystic blast:byd spell_slot += Leda's Liquefaction:lqd spell_slot += Lee's rapid deconstruction:ldt spell_slot += Lesser Beckoning:lgk spell_slot += Lehudib's crystal spear:bly spell_slot += Lightning bolt:lbt spell_slot += Magic dart:zdt spell_slot += Malign gateway:wyt # Not needed in 0.18 spell_slot += Mass confusion:mcf spell_slot += Mephitic cloud:mpc spell_slot += Metabolic englaciation:mgt spell_slot += Monstrous menagerie:mgt spell_slot += Necromutation:nmt spell_slot += Olgreb's toxic radiance:pxt spell_slot += Orb of destruction:dbt spell_slot += Ozocubu's armour:oua spell_slot += Ozocubu's refrigeration:cbz spell_slot += Pain:zpn spell_slot += Passage of golubria:uoi spell_slot += Passwall:wpP spell_slot += Petrify:pyt # Not needed in 0.18 spell_slot += Phase shift:eai spell_slot += Poison arrow:pwn spell_slot += Poisonous cloud:pcd spell_slot += Portal projectile:oei spell_slot += Recall:eaR spell_slot += Regeneration:eio spell_slot += Repel missiles:rei spell_slot += Ring of flames:fmn spell_slot += Sandblast:zbt spell_slot += Searing ray:ygn spell_slot += Shadow creatures:wcd spell_slot += Shatter:TSH spell_slot += Shock:zok spell_slot += Shroud of golubria:oua spell_slot += Simulacrum:cnm spell_slot += Silence:CN spell_slot += Slow:wox spell_slot += Song of slaying:oia spell_slot += Spectral weapon:wox spell_slot += Spellforged servitor:vto spell_slot += Spider form:pdm spell_slot += Static discharge:tdc spell_slot += Statue form:toS spell_slot += Sticks to snakes:tkc spell_slot += Sticky flame:yfk spell_slot += Sting:zpt spell_slot += Stone arrow:wtn # not needed in 0.18 spell_slot += Stoneskin:ieo spell_slot += Summon butterflies:UEI spell_slot += Summon demon:dmn spell_slot += Summon forest:ftm spell_slot += Summon greater demon:gdn spell_slot += Summon guardian golem:gdn spell_slot += Summon horrible things:htg spell_slot += Summon hydra:hyd spell_slot += Summon ice beast:bct spell_slot += Summon lightning spire:ltp spell_slot += Summon mana viper:vmp spell_slot += Summon small mammal:zml spell_slot += Swiftness:sie spell_slot += Teleport other:tpT spell_slot += Throw frost:ftw spell_slot += Throw flame:fmw spell_slot += Throw icicle:cwt spell_slot += Tornado:TDN spell_slot += Tukima's Dance:dkc spell_slot += Vampiric draining:vnd spell_slot += Venom bolt:bvm spell_slot += Warp weapon:wpn spell_slot += Yara's violent unraveling:yvg # Default letters spell_slot += .*:XYZ ################## ### Item slots ### ################## ## In order of letter used. # 0.18 item_slot += amulet of (stasis|harm) : A item_slot += amulet of rage : B item_slot += ring of (ice|protection from cold) : Cc item_slot += amulet of (warding|dismissal) : D item_slot += \+[0-9]+ ring of evasion : Ee item_slot += ring of .*fire : Ff item_slot += amulet of regeneration : g item_slot += amulet of guardian spirit : G item_slot += amulet of faith : H item_slot += \+[0-9]+ ring of intelligence : Ii # 0.18 item_slot += amulet of clarity : K item_slot += ring of flight : L item_slot += ring of protection from magic : Mm item_slot += ring of positive energy : Nn item_slot += \+[0-9]+ ring of protection : Oo item_slot += ring of poison resistance : P item_slot += ring of stealth : Qq # 0.18 item_slot += (amulet|ring) of resist corrosion : R item_slot += amulet of mana regeneration : r item_slot += \+[0-9]+ ring of strength : Ss item_slot += ring of teleportation : t item_slot += ring of sustain attributes : T item_slot += amulet of gourmand : U # 0.18 item_slot += amulet of resist mutation : u item_slot += ring of see invisible : v # 0.18 item_slot += ring of invisibility : V item_slot += ring of magical power : Ww item_slot += \+[0-9]+ ring of dexterity : Xx item_slot += \+[0-9]+ ring of slaying : Yy item_slot += ring of wizardry : Zz ######################## ### Autoinscriptions ### ######################## show_god_gift = unident ai := autoinscribe ai += (bad|dangerous)_item.*potion:!q ai += (bad|dangerous)_item.*scroll:!r ai += potions? of berserk rage:!q ai += scrolls? of silence:!r ai += of faith:!P ai += ( rod ):!a ai += manual of:!d ai += staff of (Wucad Mu|energy|channeling|wizardry|power|conjuration|summoning):!a ai += (large rock|throwing net|curare|of dispersal):=f # From simm's rc, helpful for realtime. 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 ai += remove curse:@r2 ai += blowgun:@w1 ai += (meat|bread) ration:@e1 ai += (beef jerk|fruit|pizza):@e2 ai += royal jell:@e3 ############## ### Morgue ### ############## note_hp_percent = 10 note_all_skill_levels = true note_chat_messages = false user_note_prefix = >> note_items += experience,of resistance, Archmagi # 0.18 note_items += crystal plate armour,pearl dragon (armour|scales) note_items += artefact,wand of (heal wounds|hasting|teleportation) note_messages += You feel monstrous note_messages += You pass through the gate note_messages += cast .* Abyss # Noteable monsters # Undead note_monsters += ancient lich,curse skull,curse toe,greater mummy # Depths note_monsters += caustic shrike # Special hall_of_zot spawns note_monsters += killer klown,electric golem,orb of fire dump_message_count = 30 dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += overview,screenshot,monlist,messages,skill_gains,action_counts dump_order += vaults,notes,kills { -- Equipment autopickup (by Medar and various others) local function pickup_equipment(it, name) if it.is_useless then return end local class = it.class(true) if class == "armour" then local good_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots"} st, _ = it.subtype() -- Autopickup found aux armour if 1) we don't have any or 2) it's artefact, -- or 3) if we don't have artefact or ego armour, and the found armour is -- ego. if good_slots[st] ~= nil then if good_slots[st] == "Gloves" and you.has_claws() > 0 then return end if it.artefact 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 end if it.branded then return true end -- Autopickup found body armour of the same kind we're wearing, according -- to conditions (2) and (3) above used for aux slots. elseif st == "body" then local cur = items.equipped_at("armour") if cur == nil then return end if cur.name("qual") ~= it.name("qual") then return end if it.artefact then return true end if cur.branded or cur.artefact then return end if it.branded then return true end end end return end add_autopickup_func(pickup_equipment) -- Spellcasting spam reduction by monqy local function generic_cast_spell(cmd) crawl.mpr('Cast which spell?') crawl.flush_prev_message() crawl.process_keys(cmd) end function cast_spell() generic_cast_spell('z') end function force_cast_spell() generic_cast_spell('Z') end ############# ### Debug ### ############# fsim_rounds = 10000