allow_extended_colours = true ##### wheals's crawl rc file ######################################## # The basic syntax is: # field = value or field.subfield = value #include += safe_move_shift.txt # advanced_optioneering.txt { local need_skills_opened = true function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } # 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) } ##### 1 Starting Screen ############################################ default_manual_training = true ##### 3 Interface ################################################# ##### 3-a Picking up and Dropping ############### ae := autopickup_exceptions # don't autopickup awful items ae += lignification # don't need some things when no spells are being cast : if you.god() == "Trog" then ae += potion of magic, brilliance, magical power : end ##### 3-g Travel and Exploration ################# # explore_wall_bias = 0 explore_stop = items,shops,portals,branches explore_stop += greedy_pickup_smart,glowing_items : if you.god() ~= "Elyvilon" then explore_stop += greedy_sacrificeable : end auto_sacrifice = before_explore : if you.god() == "Elyvilon" then auto_sacrifice = false : end auto_exclude += Sigmund, Grinder # runrest options rim := runrest_ignore_monster rim += fish:2 rim += swamp worm:2 rim += mushroom:2 dontstop := runrest_ignore_message dontstop += steam dontstop += chunks dontstop += really disgusting dontstop += You feel hungry dontstop += You feel very hungry dontstop += Wow! : if you.god() == "Jiyva" then dontstop ^= mute:Jiyva appreciates your sacrifice. dontstop ^= mute:You hear a distant slurping noise. dontstop ^= mute:You hear a squelching noise. dontstop ^= mute:You feel a little less hungry. dontstop ^= mute:You feel a little better. : end // Allow memorising while poisoned interrupt_memorise -= hp_loss interrupt_memorise -= stat ##### 3-h Command Enhancements ################## easy_eat_chunks = true auto_eat_chunks = true confirm_butcher = never auto_drop_chunks = yes ss := spell_slot ss ^= Haste:H ss ^= Apportation:A ss ^= Blink:B ss ^= Cure Poison:C ss ^= Deflect Missiles:D ss ^= Regeneration:E ss ^= Flight:F ss ^= Ozocubu's Armour:O ss ^= Phase Shift:P ss ^= Repel Missiles:R ss ^= Swiftness:S autofight_stop = 50 # Having this "true" makes using shift-tab to not move around exceedingly annoying autofight_throw_nomove = false autofight_wait = true autofight_caught = true ##### 3-i Messages and Display Enhancements ##### hp_warning = 40 mp_warning = 30 clear_messages = true show_inventory_weights = true mlist_targetting = true cloud_status = true ##### Colours (messages and menus) ##### menu := menu_colour menu ^= resists:white:r menu -= green:uncursed # Strategic items in cyan menu += cyan:.*brand weapon.* menu += cyan:.*enchant weapon.* menu += cyan:.*enchant armour.* menu += cyan:.*recharging.* menu += cyan:.*magic mapping.* # Tempbuff items in green menu += green:.*potions? of might.* menu += green:.*potions? of agility.* menu += green:.*potions? of brilliance.* menu += green:.*potions? of haste.* menu += green:.*potions? of resistance.* menu += green:.*potions? of berserk ra.* msg := message_colour msg ^= mute:Something in your msg ^= mute:meld msg ^= mute:Shift-Dir - straight li : if you.god() == "Jiyva" then msg ^= mute:Jiyva appreciates your sacrifice. 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. : end fmm := force_more_message # Avoid wasting turns with aborted actions fmm += This wand has no charges fmm += stands defiantly in death's doorway # Skill/character levels: need the second for multiple levels fmm += skill has reached fmm += skill gained fmm += skill increases # Don't die doing stupid things #fmm += monster_warning: fmm += unsafe for travelling fmm += Ouch! That fmm += Careful! fmm += You are pushed out of the doorway! fmm += Your surroundings seem slightly different. fmm += Miasma billows fmm += wields a blowgun fmm += LOW HITPOINT fmm += cannot teleport right # Abyss + portals fmm += Space warps horribly around you fmm += hits you.*distortion fmm += Space bends around you fmm += on this level fmm += Found a gateway fmm += a giant spore comes into view fmm += toss it away fmm += feel less protected from mi ##### 3-j Firing Commands ####################### # Maybe uncomment for ranged chars? #view_delay = 0 ##### 3-l Inscriptions ########################## aui := autoinscribe aui += bad_item.*potion:!q aui += good_item.*potion:!q aui += potions? of mutation:!q aui += silence:!r aui += staff.*wizardry:!a aui += staff.*energy:!a aui += staff.*conjuration:!a aui += staff.*power:!a aui += ambrosia:!e aui += blood:@q1 autoinscribe_cursed = false show_god_gift = yes ##### 4 Dump File ################################################# dump_item_origins = all dump_message_count = 100 dump_book_spells = false dump_kill_places = all d_o := dump_order d_o = header, hiscore, stats, misc, inventory d_o += skills, spells, overview, mutations, messages d_o += screenshot, monlist, kills, notes, action_counts, vaults d_o += turns_by_place, kills_by_place note_chat_messages = true user_note_prefix=@: note_skill_levels = 1,5,10,15,20,27 note_skill_max = true ##### 5 Miscellaneous ############################################# #language = !!! #note that this is the symbol, not the letter, so it's LTR #display_char = door_open : ℸ mon_glyph += lost soul : yellow s mon_glyph += revenant : brown R mon_glyph += orb of fire : fire 0 mon_glyph += great orb of eyes : lightgreen 0 mon_glyph += orb of destruction : white 0 mon_glyph += Killer Klown : @ mon_glyph += Mennas : silver mon_glyph += Natasha : blue h mon_glyph += shadow dragon : darkgrey #food today, food tomorrow, food forever mon_glyph += death cob : yellow % # Thanks 1KB! mon_glyph += sensed monster : white ⍟ mon_glyph += trivial sensed monster : lightgray ① mon_glyph += easy sensed monster : brown ② mon_glyph += tough sensed monster : red ③ mon_glyph += nasty sensed monster : lightred ④ mon_glyph += friendly sensed monster : green ☺ mon_glyph += fulminant prism : ▲ item_glyph += axe : darkgrey item_glyph += tomahawk : darkgrey item_glyph += helmet : darkgrey item_glyph += hat : magenta item_glyph += throwing net : lightred feature += explore horizon {.,,lightred} # Runey runes - use the 27th unicode rune for runes display_char += item_rune : ᚹ # kind of a Hack display_char += invis_exposed : I # Shamelessly stolen from Grunt's rcfile, with gigantic edits: :skill_name = you.best_skill() :best = you.skill(skill_name) :melee = false :casting = false :melee_skills = {"Fighting", "Short Blades", "Long Blades", "Axes", : "Maces & Flails", "Polearms", "Staves", "Slings", "Bows", : "Crossbows", "Throwing", "Armour", "Dodging", "Shields", : "Unarmed Combat"} :casting_skills = {"Spellcasting", "Conjurations", "Charms", "Hexes", : "Summonings", "Necromancy", "Translocations", : "Transmutations", "Fire Magic", "Ice Magic", "Air Magic", : "Earth Magic", "Poison Magic"} :for i, name_of_skill in ipairs(melee_skills) do : if skill_name == name_of_skill then : melee = true : end :end :for i, name_of_skill in ipairs(casting_skills) do : if skill_name == name_of_skill then : casting = true : end :end :if you.race() == "High Elf" or you.race() == "Deep Elf" then show_player_species = false : if skill_name == "Summonings" then : if best < 21 then mon_glyph += player : deep elf summoner : elseif best >= 21 then mon_glyph += player : deep elf demonologist : end : elseif skill_name == "Invocations" then : if best < 15 then mon_glyph += player : deep elf priest : else mon_glyph += player : deep elf high priest : end : elseif skill_name == "Conjurations" then : if best < 21 then mon_glyph += player : deep elf conjurer : else mon_glyph += player : deep elf annihilator : end : elseif skill_name == "Necromancy" then mon_glyph += player : deep elf death mage : elseif casting == true then : if best < 21 then mon_glyph += player : deep elf mage : else mon_glyph += player : deep elf sorcerer : end : elseif skill_name == "Bows" then mon_glyph += player : deep elf master archer : elseif skill_name == "Short Blades" then mon_glyph += player : deep elf blademaster : elseif melee == true then : if best < 10 then mon_glyph += player : deep elf fighter : else mon_glyph += player : deep elf knight : end : else mon_glyph += player : elf : end # RIP qwarf monsters :elseif you.race() == "Deep Dwarf" then show_player_species = false : if you.god() == "Yredelemnul" then mon_glyph += player : green q : elseif you.god() == "Trog" then mon_glyph += player : lightred q : elseif skill_name == "Evocations" then mon_glyph += player : blue q : elseif skill_name == "Necromancy" then mon_glyph += player : magenta q : else mon_glyph += player : brown q : end :elseif you.race() == "Hill Orc" or you.race() == "Lava Orc" then show_player_species = false : if you.god() == "Beogh" then show_player_species = true : elseif melee == true then : if best >= 10 and best < 15 then mon_glyph += player : orc warrior : elseif best >= 15 and best < 20 then mon_glyph += player : orc knight : elseif best >= 20 then mon_glyph += player : orc warlord : end : elseif casting == true then : if best >= 15 then mon_glyph += player : orc sorcerer : else mon_glyph += player : orc wizard : end : else mon_glyph += player : orc : end :elseif you.race() == "Kobold" then show_player_species = false : if skill_name == "Summonings" then mon_glyph += player : kobold demonologist : elseif best >= 15 then mon_glyph += player : big kobold : else mon_glyph += player : kobold : end :elseif you.race() == "Spriggan" then show_player_species = false : if you.god() == "Trog" then mon_glyph += player : spriggan berserker : elseif skill_name == "Air Magic" then mon_glyph += player : spriggan air mage : elseif skill_name == "Stealth" or skill_name == "Hexes" then mon_glyph += player : magenta i : elseif melee == true and best >= 15 then mon_glyph += player : spriggan defender : else mon_glyph += player : spriggan : end :elseif you.race() == "Ogre" then show_player_species = false : if skill_name == "Spellcasting" then mon_glyph += player : ogre mage : else mon_glyph += player : ogre : end :elseif you.race() == "Troll" then show_player_species = false : if you.god() == "Trog" then mon_glyph += player : Snorg : elseif skill_name == "Earth Magic" then mon_glyph += player : deep troll earth mage : elseif skill_name == "Invocations" then mon_glyph += player : deep troll shaman : elseif best >= 15 then mon_glyph += player : deep troll : else mon_glyph += player : troll : end :elseif you.race() == "Naga" then show_player_species = false : if melee == true and best >= 15 then mon_glyph += player : naga warrior : elseif casting == true then : if best >= 15 then mon_glyph += player : greater naga : else mon_glyph += player : naga mage : end : else mon_glyph += player : naga : end :elseif you.race() == "Centaur" then show_player_species = false : if melee == true and best >= 15 then mon_glyph += player : centaur warrior : else mon_glyph += player : centaur : end :elseif you.race() == "Merfolk" then show_player_species = false : if skill_name == "Throwing" then mon_glyph += player : merfolk javelineer : elseif skill_name == "Ice Magic" then mon_glyph += player : merfolk aquamancer : elseif skill_name == "Polearms" and best >= 15 then mon_glyph += player : merfolk impaler : else mon_glyph += player : merfolk : end :elseif you.race() == "Minotaur" then show_player_species = false : if you.god() == "Makhleb" then # old asterion, never forget mon_glyph += player:fire H : else mon_glyph += player : minotaur : end :elseif you.race() == "Tengu" then show_player_species = false : if best == 27 then mon_glyph += player : sojobo : elseif casting == true and best >= 15 then mon_glyph += player : tengu conjurer : elseif melee == true and best >= 15 then mon_glyph += player : tengu warrior : else mon_glyph += player : tengu : end :elseif you.race() == "Gargoyle" then show_player_species = false : if melee == true and best >= 15 then mon_glyph += player : war gargoyle : elseif skill_name == "Fire Magic" or skill_name == "Earth Magic" then mon_glyph += player : molten gargoyle : else mon_glyph += player : gargoyle : end :elseif you.race() == "Formicid" then show_player_species = false : if skill_name == "Poison Magic" then # remember these guys? mon_glyph += player:magenta a : else mon_glyph += player : formicid : end :elseif you.race() == "Demonspawn" then show_player_species = false : if you.god() == "Trog" or you.god() == "Okawaru" then mon_glyph += player : warmonger : elseif you.god() == "Makhleb" or you.god() == "Vehumet" then mon_glyph += player : blood saint : elseif you.god() == "Xom" then mon_glyph += player : chaos champion : elseif you.god() == "Kikubaaqudgha" or you.god() == "Yredelemnul" then # XXX: not that black mon_glyph += player : black sun : elseif you.god() == "Lugonu" or you.god() == "Jiyva" then mon_glyph += player : corrupter : else mon_glyph += player : demonspawn : end :elseif you.race() == "Mummy" then show_player_species = false : if best >= 15 then mon_glyph += player : greater mummy : elseif skill_name == "Invocations" then mon_glyph += player : mummy priest : elseif melee == true then mon_glyph += player : guardian mummy : else mon_glyph += player : mummy : end :elseif you.race() == "Ghoul" then show_player_species = false : if skill_name == "Ice Magic" then mon_glyph += player : bog body : elseif best >= 15 then mon_glyph += player : ghoul : else mon_glyph += player : necrophage : end :elseif you.race() == "Vampire" then show_player_species = false : if melee == true and best >= 15 then mon_glyph += player : vampire knight : elseif casting == true and best >= 15 then mon_glyph += player : vampire mage : else mon_glyph += player : vampire : end :elseif you.race() == "Octopode" then show_player_species = false : if skill_name == "Summonings" then mon_glyph += player : worldbinder : elseif skill_name == "Hexes" or skill_name == "Stealth" then # WTF? mon_glyph += player : magenta x : elseif melee == true and best >= 15 then mon_glyph += player : octopode crusher : else mon_glyph += player : octopode : end :elseif you.race() == "Vine Stalker" then show_player_species = false : if you.class() == "Wanderer" then mon_glyph += player : wandering mushroom : else mon_glyph += player : vine stalker : end :else show_player_species = true :end