# On Unix systems (such as Mac OS X, Linux and the BSDs), you must copy # init.txt to ~/.crawlrc or ~/.crawl/init.txt as: # cp init.txt ~/.crawlrc # # Lines beginning with '#' are comments. The basic syntax is: # # field = value or field.subfield = value # # Only one specification is allowed per line. # # The terms are typically case-insensitive except in the fairly obvious # cases (the character's name and specifying files or directories when # on a system that has case-sensitive filenames). # # White space is stripped from the beginning and end of the line, as # well as immediately before and after the '='. If the option allows # multiple comma/semicolon-separated terms (such as # This is based on MarvinPA's rc file, by the way. # Thanks for pivotal for pointing it out to me! #Jeff view_max_width = 81 view_max_height = 71 include += hugedmg.rc ############## # Autopickup # ############## autopickup = $?!:"/%| drop_filter += useless_item drop_mode = multi pickup_mode = multi default_friendly_pickup = none automagic_slot = z automagic_enable = true automagic_fight = true automagic_stop = 20 # To-do: re-implement autopickup in Lua ae := autopickup_exceptions ae += useless_item, dangerous_item, evil_item ae += ancient heavily glowing book ae += scrolls? of (detect|torment) ae += potions? of water ae += wand of (confusion|enslavement|flame|frost) ae += wand of (magic darts|random effects|slowing) ae += 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 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 -- Autopickup of stackable items local function pickup_stackable(it, name) local class = it.class(true) local subtype = it.subtype() local ego = it.ego(true) if class == "potion" or class == "scroll" or class == "missile" then if it.stacks() then return true end elseif class == "miscellaneous" and (subtype == "fan of gales" or subtype == "lamp of fire" or subtype == "phial of floods" or subtype == "stone of tremors" or subtype == "disc of storms" or subtype == "lantern of shadows") then if it.stacks() then return false else return true end end return end clear_autopickup_funcs() add_autopickup_func(pickup_equipment) add_autopickup_func(pickup_stackable) } # Ammo autopickup, adapted from egopickup by rriegs { local pickup_missile = true local pickup_snakable = true local pickup_sandblast = true local function init_spells() local sp_list = {} for _, sp_name in ipairs(you.spells()) do sp_list[sp_name] = true end return sp_list end local function ammo_pickup(it, name) local class = it.class(true) local sp = init_spells() local top_ranged_skill = math.max( you.skill("Slings"), you.skill("Bows"), you.skill("Crossbows")) if pickup_missile then -- Pick up ammunition needed by our skills if class == "missile" then if you.skill("Slings") > top_ranged_skill / 3 then if name:find("stone") then return true end if name:find("bullet") then return true end end if you.skill("Bows") > top_ranged_skill / 3 then if name:find("arrow") then return true end end if you.skill("Crossbows") > top_ranged_skill / 3 then if name:find("bolt") then return true end end end end if pickup_snakable then if sp["Sticks to Snakes"] and it.snakable then if name:find("arrow") then return true end end end if pickup_sandblast then if sp["Sandblast"] then if name:find("stone") then return true end end end return end add_autopickup_func(ammo_pickup) } ############### # Spell slots # ############### # Utility spells spell_slot += Dispel undead:q spell_slot += Alistair's intoxication:Q spell_slot += Abjuration:w spell_slot += Mass abjuration:W spell_slot += Apportation:e spell_slot += Recall:r spell_slot += Summon butterflies:R spell_slot += Control teleport:t spell_slot += Insulation:i spell_slot += Ozocubu's armour:aA spell_slot += Stoneskin:aA spell_slot += Phase shift:aA spell_slot += Shroud of golubria:aA spell_slot += Swiftness:s spell_slot += Repel missiles:d spell_slot += Deflect missiles:d spell_slot += Darkness:D spell_slot += Flight:f spell_slot += Levitation:f spell_slot += Ring of flames:F spell_slot += Regeneration:g spell_slot += Silence:G spell_slot += Haste:h spell_slot += Invisibility:j spell_slot += Death's door:J spell_slot += Borgnjor's revivification:L spell_slot += Blink:b spell_slot += Controlled blink:B spell_slot += Projected noise:N spell_slot += Sublimation of blood:n spell_slot += Necromutation:M # Transformations spell_slot += Beastly appendage:zxc spell_slot += Spider form:zx spell_slot += Ice form:zxc spell_slot += Blade hands:zxc spell_slot += Statue form:XC spell_slot += Dragon form:XC # Low-level spells spell_slot += Freeze:z spell_slot += Magic dart:z spell_slot += Flame tongue:z spell_slot += Pain:z spell_slot += Shock:z spell_slot += Sandblast:z spell_slot += Sting:z spell_slot += Ensorcelled hibernation:z spell_slot += Corona:z spell_slot += Confusing touch:Z spell_slot += Confuse:x spell_slot += Slow:x spell_slot += Vampiric draining:x spell_slot += Summon small mammals:zx spell_slot += Throw frost:zx spell_slot += Throw flame:zx spell_slot += Call imp:zx spell_slot += Static discharge:ZX spell_slot += Mephitic cloud:c # Mid-level spells spell_slot += Stone arrow:zxc spell_slot += Iskenderun's mystic blast:zxc spell_slot += Sticky flame:zxc spell_slot += Throw icicle:zxc spell_slot += Venom bolt:zxc spell_slot += Summon scorpions:zxc spell_slot += Summon demon:zxc spell_slot += Airstrike:zxc spell_slot += Agony:zxc spell_slot += Lee's rapid deconstruction:XC spell_slot += Poisonous cloud:XC spell_slot += Freezing cloud:XC spell_slot += Ozocubu's refrigeration:ZX # High-level spells spell_slot += Lightning bolt:xcv spell_slot += Fireball:xcv spell_slot += Bolt of:xcv spell_slot += Iron shot:xcv spell_slot += Poison arrow:xcv spell_slot += Orb of destruction:xcv spell_slot += Lehudib's crystal spear:xcv spell_slot += Chain lightning:XCV spell_slot += Fire storm:V spell_slot += Ice storm:V spell_slot += Shatter:V spell_slot += Tornado:V # Default letters spell_slot += .*:yuopYUOP ########## # Travel # ########## travel_delay = -1 explore_stop = items,greedy_pickup_smart #explore_stop = items,greedy_items,greedy_pickup,greedy_pickup_gold explore_stop += greedy_visited_item_stack,shops,altars,gates auto_exclude += oklob,statue,curse skull,roxanne,hyperactive trapwalk_safe_hp = dart:20,needle:15,arrow:35,bolt:45,spear:40,axe:45,blade:95 explore_stop_pickup_ignore += chunks stop := runrest_stop_message ignore := runrest_ignore_message explore_stop_pickup_ignore += chunks # Annoyances : if you.god() == "Jiyva" then ignore += Jiyva gurgles merrily ignore += Jiyva appreciates your sacrifice ignore += Jiyva says: Divide and consume ignore += You hear.*splatter : end ignore += You feel.*sick ignore += Zin protects you from ignore += disappears in a puff of smoke ignore += engulfed in a cloud of smoke ignore += standing in the rain ignore += engulfed in white fluffiness ignore += safely over a trap ignore += A.*toadstool withers and dies ignore += toadstools? grow ignore += You walk carefully through the ignore += grinding sound ignore += contamination has completely ignore += chunks of flesh in your inventory.*rotted away runrest_ignore_poison = 2:10 runrest_ignore_monster += butterfly:1 # Bad things stop += found.*trap stop += You fall through a shaft stop += An alarm trap emits a blaring wail stop += (blundered into a|invokes the power of) Zot stop += A huge blade swings out and slices into you! stop += sense of stasis stop += flesh start stop += (starving|devoid of blood) stop += wrath finds you stop += lose consciousness # Expiring effects stop += You feel yourself slow down stop += less insulated stop += You are starting to lose your buoyancy stop += You lose control over your flight stop += Your hearing returns stop += Your transformation is almost over stop += back to life stop += uncertain 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 :if you.god() == "Xom" then stop += god: :else ignore += god: :end ignore += pray: ignore += talk: ignore += talk_visual: ignore += friend_spell: ignore += friend_enchant: ignore += friend_action: ignore += sound: ############# # Interface # ############# equip_unequip = true allow_self_target = no easy_confirm = all confirm_butcher = never auto_eat_chunks = true auto_butcher = true auto_drop_chunks = true easy_eat_contaminated = true sort_menus = inv: true : equipped, freshness, charged hp_warning = 25 mp_warning = 25 autofight_stop = 55 hp_colour = 100:green, 99:lightgray, 75:yellow, 50:lightred, 25:red mp_colour = 100:green, 99:lightgray, 75:yellow, 50:lightred, 25:red stat_colour = 3:red, 7:lightred small_more = false show_inventory_weights = true show_gold_turns = true show_game_turns = true default_manual_training = true skill_focus = true # 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 } ################### # Message colours # ################### msc := message_colour menu := menu_colour # Multi-turn channel.multiturn = mute # Allies msc += mute:returns to your side msc += mute:A demon appears 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:You swap places msc += mute:Your.*(looks stronger|shudders|resist) msc += mute:(stumbles backwards|holds.*ground) msc += mute:(Something|Your).*(misses|does no damage) msc += mute:Your.*(blinks|safely over|gestures) msc += mute:(phases out.*|misses) (your|something).* msc += mute:your.*but does no damage msc += mute:Your.*(picks up|drops) msc += mute:Your.*basks in the mutagenic energy # Prayer channel.pray = mute # Jiyva : if you.god() == "Jiyva" then msc += mute:slurping|squelching msc += mute:splits in two msc += mute:You feel.*(less hungry|power returning|better) : end # Interface msc += mute:Cast which spell\? \( msc += mute:Casting.* msc += mute:Confirm with \. or Enter, or press \? or \* to list all spells\. msc += mute:Press\: \? - help, Shift-Dir - straight line, f - you msc += mute:for a list of commands and other information msc += mute:melds.* msc += mute:Switching to.* msc += mute:Switching back.* # Other msc += mute:This raw flesh tastes terrible msc += mute:melds into your body msc += mute:begins to bleed from.*wounds msc += mute:writhes in agony as.*flesh msc += mute:An air elemental.*itself.*the air menu += inventory:white:\w \+\s menu += inventory:white:\w \#\s menu += darkgrey:(melded) menu += darkgrey:.*useless_item.* menu += red:.*evil_item.* menu += lightred: cursed menu += inventory:lightgreen:.*equipped.* menu += lightmagenta:.*misc.*rune( of Zot)? menu += lightmagenta:.*orb.*Zot menu += white:^unidentified .*artefact.* # menu += lightblue:^unidentified .*(potion|scroll|wand|jewellery).* # menu += lightblue:^unidentified .*weapon.*(runed|glowing) # menu += lightblue:^unidentified .*armour.*(runed|glowing|embroidered|shiny|dyed) #################### # Autoinscriptions # #################### autoinscribe += (distortion|vampiric):!w autoinscribe += (bad|dangerous)_item.*potion:!q autoinscribe += (bad|dangerous)_item.*scroll:!r autoinscribe += of faith:!P autoinscribe += rod of:!a : if you.race() == "Vampire" then autoinscribe += of blood:@*1 autoinscribe += of coagulated blood:@*2 : else autoinscribe += chunks? of:@*1 : end : if you.god() == "Fedhas" then autoinscribe += fruit:!e : end ########## # Macros # ########## # Useless commands bindkey = [R] CMD_NO_CMD_DEFAULT bindkey = [T] CMD_NO_CMD_DEFAULT bindkey = [O] CMD_NO_CMD_DEFAULT bindkey = [`] CMD_NO_CMD_DEFAULT bindkey = [|] CMD_NO_CMD_DEFAULT # Targeting bindkey = [\] CMD_TARGET_OBJ_CYCLE_FORWARD bindkey = [^I] CMD_TARGET_CYCLE_FORWARD # Other bindkey = [+] CMD_EXPLORE bindkey = [-] CMD_WEAPON_SWAP bindkey = [^S] CMD_SAVE_GAME ######### # Notes # ######### dump_message_count = 30 dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += screenshot,monlist,messages,spell_usage,vaults,notes,kills ood_interesting = 6 note_hp_percent = 10 note_all_skill_levels = true note_items += of Zot note_messages += Your scales start note_messages += protects you from harm note_messages += You fall through a shaft ################# # Miscellaneous # ################# mon_glyph += dancing weapon:7