##### Crawl Init file ############################################### # For descriptions of all options, as well as some more in-depth information # on setting them, consult the file # options_guide.txt # in your /docs directory. If you can't find it, the file is also available # online at: # https://github.com/crawl/crawl/blob/master/crawl-ref/docs/options_guide.txt # # Crawl uses the first file of the following list as its option file: # * init.txt in the -rcdir directory (if specified) # * .crawlrc in the -rcdir directory (if specified) # * init.txt (in the Crawl directory) # * ~/.crawl/init.txt (Unix only) # * ~/.crawlrc (Unix only) # * ~/init.txt (Unix only) # * settings/init.txt (in the Crawl directory) ##### Some basic explanation of option syntax ####################### # 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 # autopickup_exceptions), all whitespace around the separator is also # trimmed. All other whitespace is left intact. # # There are three broad types of Crawl options: true/false values (booleans), # arbitrary values, and lists of values. The first two types use only the # simple =, with later options - which includes your options that are different # from the defaults - overriding earlier ones. List options allow using +=, ^=, # -=, and = to append, prepend, remove, and reset, respectively. Usually you will # want to use += to add to a list option. Lastly, there is := which you can use # to create an alias, like so: # ae := autopickup_exceptions # From there on, 'ae' will be treated as if it you typed autopickup_exceptions, # so you can save time typing it. # ##### Other files ################################################### # You can include other files from your options file using the 'include' # option. Crawl will treat it as if you copied the whole text of that file # into your options file in that spot. You can uncomment some of the following # lines by removing the beginning '#' to include some of the other files in # this folder. # Some useful, more advanced options, implemented in LUA. # include = advanced_optioneering.txt # Alternative vi bindings for Dvorak users. # include = dvorak_command_keys.txt # Alternative vi bindings for Colemak users. # include = colemak_command_keys.txt # Override the vi movement keys with a non-command. # include = no_vi_command_keys.txt # Turn the shift-vi keys into safe move, instead of run. # include = safe_move_shift.txt ##### Ancient versions ############################################## # If you're used to the interface of ancient versions of Crawl, you may # get back parts of it by uncommenting the following options: # include = 034_command_keys.txt # And to revert monster glyph and colouring changes: # include = 052_monster_glyphs.txt # include = 060_monster_glyphs.txt # include = 071_monster_glyphs.txt # include = 080_monster_glyphs.txt # include = 0.9_monster_glyphs.txt # include = 0.12_monster_glyphs.txt # include = 0.13_monster_glyphs.txt # include = 0.14_monster_glyphs.txt auto_eat_chunks = true easy_eat = true pizza = crack rocks item_glyph = #item_glyph += potion:blue #item_glyph += scroll:white #watch out for confusion with useless being darkgrey item_glyph += helmet:darkgrey item_glyph += hat:magenta item_glyph += axe:darkgrey item_glyph += book:brown item_glyph += manual:white item_glyph += jewellery:green item_glyph += jewellery.*artefact:lightgreen item_glyph += wand:yellow item_glyph += rod:yellow item_glyph += magical staff:brown use_animations = tile_map_pixels = 1 tile_display_mode = glyphs show_travel_trail = false pickup_menu = true pickup_menu_limit = 0 travel_key_stop = false ############### # Spell Slots ##################################################### ############### # spells that we don't normally want to use (list might change): # animate skeleton, corona, all summons, confusing touch, corpse rot, # cure poison, searing ray, slow, sticks to snakes, inner flame, passwall, # portal projectile, teleport other, tukima's dance, alistair's intoxication, # cause fear, leda's liquefaction, petrify, force lance, ignite poison, # metabolic englaciation, silence, twisted resurrection, simulacrum, # darkness, discord # spells that will (nearly) always have the same letter... # not many attack spells here spell_slot += regeneration:c spell_slot += ensorcelled hibernation:e spell_slot += flight:f spell_slot += shroud of golubria:g spell_slot += ozocubu's armour:o spell_slot += stoneskin:o spell_slot += phase shift:p spell_slot += repel missiles:r spell_slot += swiftness:s spell_slot += ^blink:v spell_slot += dispel undead:x spell_slot += sublimation of blood:z spell_slot += apportation:A spell_slot += blade hands:B spell_slot += mephitic cloud:C spell_slot += dazzling spray:C spell_slot += dispersal:DE spell_slot += delayed fireball:DE spell_slot += dragon form:DE spell_slot += ring of flames:F spell_slot += haste:H spell_slot += invisibility:I spell_slot += ice form:I spell_slot += summon ice beast:I spell_slot += disjunction:J spell_slot += necromutation:L spell_slot += borgnjor's revivification:P spell_slot += deflect missiles:rR spell_slot += statue form:S spell_slot += controlled blink:V spell_slot += warp weapon:W spell_slot += death's door:Y # low-level attack spells: ag or abg spell_slot += freeze:ag spell_slot += magic dart:ag spell_slot += flame tongue:ag spell_slot += pain:ag spell_slot += shock:ag spell_slot += sandblast:ag spell_slot += sting:ag spell_slot += beastly appendage:ag spell_slot += throw frost:abg spell_slot += throw flame:abg spell_slot += call imp:abg spell_slot += confuse:abg spell_slot += static discharge:abg spell_slot += vampiric draining:abg spell_slot += spider form:abg # utility attack spells: deg spell_slot += conjure flame:deg spell_slot += poisonous cloud:deg spell_slot += freezing cloud:deg spell_slot += ozocubu's refrigeration:deg spell_slot += conjure ball lightning:deg spell_slot += animate dead:deg spell_slot += recall:deg spell_slot += fireball:deg spell_slot += airstrike:deg spell_slot += iskenderun's battlesphere:deg spell_slot += fulminant prism:deg # bolts: Bde spell_slot += bolt:Bde # staple spells for killing stuff: abqw or qwde or qwabQW spell_slot += stone arrow:abqw spell_slot += iskenderun's mystic blast:abqw spell_slot += throw icicle:abqw spell_slot += agony:qwde spell_slot += lee's rapid deconstruction:qwde spell_slot += sticky flame:qwabQW spell_slot += iron shot:qwabQW spell_slot += poison arrow:qwabQW spell_slot += orb of destruction:qwabQW spell_slot += lehudib's crystal spear:qwabQW spell_slot += chain lightning:qwabQW # big stuff: QW spell_slot += fire storm:QW spell_slot += glaciate:QW spell_slot += shatter:QW spell_slot += tornado:QW # other spells I might rarely use: inm (sometimes min) spell_slot += passage of golubria:inm spell_slot += sure blade:inm spell_slot += condensation shield:inm spell_slot += death channel:inm spell_slot += control undead:inm spell_slot += mass confusion:min spell_slot += olgreb's toxic radiance:inm # Use defaults that don't intersect other assignments. # Some spells are missing from the above lists and should be given better # defaults than this at some point. spell_slot += .*:ZXUMKGukl ############# # Autofight ########################################################## ############# autofight_stop = 60 ############## # Autopickup ######################################################### ############## autopickup = $?!+"%=/ ae := autopickup_exceptions ae = ae += useless_item ae += dangerous_item ae += evil_item ae += amulet of (inaccuracy|the gourmand|harm|dismissal|mana regeneration) ae += amulet of (rage|regeneration|guardian spirit|faith) ae += ring of (see invisible|flight|poison resistance|teleportation) ae += ring of (resist corrosion|sustain attributes) ae += ring of (wizardry|positive energy) ae += potions? of lignification ae += potions? of ambrosia : if you.race() ~= "Vampire" then ae += potion of blood : end ae += staff of .* default_friendly_pickup = none autopickup_no_burden = true { local function autopickup(it, name) if it.stacks() then return true end if it.is_useless then return false end if name:find("dangerous_item") or name:find("evil_item") 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 and items.equipped_at(good_slots[st]) == nil then return true end if name:find("dragon") or name:find("crystal") then return true end end if class == "wand" then if name:find("acid") or name:find("confusion") or name:find("enslavement") or name:find("flame") or name:find("iceblast") or name:find("lightning") or name:find("paralysis") or name:find("polymorph") or name:find("random effects") or name:find("slowing") then return false end end end clear_autopickup_funcs() add_autopickup_func(autopickup) } ########## # Travel ############################################################## ########## travel_delay = -1 rest_delay = -1 explore_stop = items,greedy_pickup,greedy_pickup_gold explore_stop += stairs,shops,altars,gates stop := runrest_stop_message ignore := runrest_ignore_message stop = ignore = stop += god:^($|[^J]|J($|[^i]|i($|[^y]))) stop += The alarm trap emits a blaring wail stop += A sentinel's mark forms upon you stop += You are starting to lose your buoyancy stop += You start to feel a little slower stop += Your transformation is almost over stop += Your skin is crawling a little less now stop += Your magical contamination has completely faded away stop += found.*trap stop += You have blundered into a Zot trap stop += You fall through a shaft stop += Deactivating autopickup stop += Your icy armour starts to melt stop += you are ready to make a new : if you.race() == "Ghoul" then stop += flesh rotting away : end ignore += bardiche of holy wrath glows black briefly ignore += You can no longer pass through a line of other dancers ignore += pray: ignore += talk: ignore += talk_visual: ignore += friend_spell: ignore += friend_enchant: ignore += friend_action: ignore += sound: ignore += You feel.*sick ignore += disappears in a puff of smoke ignore += engulfed in a cloud of smoke ignore += safely over a trap ignore += Jiyva gurgles merrily ignore += Jiyva appreciates your sacrifice ignore += Jiyva says: Divide and consume ignore += You hear.*splatter ignore += You hear.*slurping noise ignore += You feel.*less hungry ignore += You feel.*better ignore += You feel your power returning ignore += engulfed in a cloud of smoke ignore += standing in the rain ignore += engulfed in white fluffiness ignore += A.*toadstool withers and dies ignore += toadstools? grows ignore += You walk carefully through the ignore += You found a web trap! ignore += the chunks of flesh ignore += Eating ignore += This raw flesh ignore += You continue eating runrest_ignore_poison = 2:10 runrest_ignore_monster += fish:2 runrest_ignore_monster += shark:2 runrest_ignore_monster += butterfly:1 ########### # Prompts ########################################################### ########### more := force_more_message more = more += grants you a gift more += Your scales start more += Careful! more += Found a gateway leading out of the Abyss more += Found .* abyssal rune of Zot more += You are starting to lose your buoyancy more += You start to feel a little slower more += Your transformation is almost over more += You have a feeling this form more += You feel yourself come back to life more += You fall through a shaft more += The alarm trap emits a blaring wail more += time is quickly running out more += life is in your own hands more += dispelling energy hits you more += You convulse more += god:(sends|finds|silent|anger) more += divine experience more += You have finished your manual more += You are (blasted|electrocuted)! more += Your surroundings flicker more += The writing blurs in front of your eyes more += Space warps.* around you more += Space bends around you more += The blast of calcifying dust hits you more += You feel less protected from missiles more += you are ready to make a new more += offers you knowledge of ############# # Interface ######################################################### ############# hp_warning = 25 show_gold_turns = true show_game_turns = true show_inventory_weights = true default_manual_training = true skill_focus = false clear_messages = true auto_exclude = ################ # Inscriptions ######################################################## ################ autoinscribe += distortion:!w autoinscribe += potion.*mutation:!q autoinscribe += potion.*berserk rage:!q autoinscribe += potion.*lignif:!q autoinscribe += scroll.*torment:!r autoinscribe += scroll.*silence:!r #autoinscribe += slaying:mikee autoinscribe += of faith:!P autoinscribe += rod of:!a autoinscribe += staff of (Wucad Mu|energy|wizardry|power):!a autoinscribe += staff of (conjuration|summoning|poison):!a ########## # Macros ########################################################## ########## #bindkey = [&] CMD_NO_CMD_DEFAULT ######### # Notes ############################################################## ######### dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += messages,screenshot,monlist,kills,notes,vaults,action_counts ood_interesting = 6 note_hp_percent = 20 note_skill_levels = 1,3,6,9,12,15,18,21,24,27 note_all_spells = true note_items = note_items += of Zot note_messages = note_messages += Your scales start note_messages += protects you from harm note_messages += You fall through a shaft note_monsters = note_monsters += orb of fire, ancient lich, electric golem ################# # Miscellaneous ############################################# ################# char_set = ascii cset = cloud:xa4 cset_ascii=item_orb:0 use_fake_player_cursor = true { skill_list = {"Fighting","Short Blades","Long Blades","Axes","Maces & Flails", "Polearms","Staves","Unarmed Combat","Bows","Crossbows", "Throwing","Slings","Armour","Dodging","Shields","Spellcasting", "Conjurations","Hexes","Charms","Summonings","Necromancy", "Translocations","Transmutations","Fire Magic","Ice Magic", "Air Magic","Earth Magic","Poison Magic","Invocations", "Evocations","Stealth"} function record_current_skills(maxlev) c_persist.skill_list = { } for _,sk in ipairs(skill_list) do if you.train_skill(sk) > 0 and you.base_skill(sk) < (maxlev or 27) then table.insert(c_persist.skill_list, sk) end end end function check_skills() if not c_persist.skill_list or not c_persist.target_skill then return end for _,sk in ipairs(c_persist.skill_list) do if you.base_skill(sk) >= c_persist.target_skill then crawl.formatted_mpr(sk .. " reached " .. c_persist.target_skill .. ".", "prompt") crawl.more() c_persist.target_skill = nil set_new_skill_training() return end end end function set_new_skill_training() c_persist.set_target_skill = 1 crawl.sendkeys('m') end function set_target_skill() record_current_skills() local str = "Currently training: " local first_skill = true for _,sk in ipairs(c_persist.skill_list) do val = you.base_skill(sk) if first_skill then str = str .. sk .. "(" .. val .. ")" else str = str .. ", " .. sk .. "(" .. val .. ")" end first_skill = false end str = str .. "." crawl.formatted_mpr(str, "prompt") crawl.formatted_mpr("Choose a target skill level: ", "prompt") c_persist.target_skill = tonumber(crawl.c_input_line()) record_current_skills(c_persist.target_skill) end function control(c) return string.char(string.byte(c) - string.byte('a') + 1) end function save_with_message() if you.turns() == 0 then crawl.sendkeys("S") return end crawl.formatted_mpr("Save game and exit?", "prompt") local res = crawl.getch() if not (string.char(res) == "y" or string.char(res) == "Y") then crawl.formatted_mpr("Okay, then.", "prompt") return end crawl.formatted_mpr("Leave a message: ", "prompt") local res = crawl.c_input_line() c_persist.message = res crawl.sendkeys(control("s")) end function first_turn_of_game() for key,_ in pairs(c_persist) do if key ~= "record" then c_persist[key] = nil end end set_new_skill_training() end local did_first_turn = false function ready() if not did_first_turn then did_first_turn = true if you.turns() == 0 then first_turn_of_game() end if c_persist.message and c_persist.message ~= "nil" and c_persist.message ~= "" then crawl.mpr("Message: " .. c_persist.message) c_persist.message = nil end end check_skills() if c_persist.set_target_skill == 0 then set_target_skill() c_persist.set_target_skill = nil elseif c_persist.set_target_skill then c_persist.set_target_skill = c_persist.set_target_skill - 1 end end }