# TEAMCAPTAIN WindshieldViper # Crawl Init file # See the README for further details: # https://github.com/gammafunk/dcss-rc/blob/master/README.md # NOTE: This RC has things for RandomTiles.rc and gammaspeed.rc enabled only # for my username. If you copy gammafunk.rc to your own RC file, it's a good # idea to find and remove sections in `if' statments that look like this: # # if you.name() == "gammafunk" then # ... # end # # and either remove these sections completely if you don't want # RandomTiles.rc/gammaspeed.rc, or, if you do want those files, remove only the # containing if statments so that those files are loaded in your RC. ################ ### RC files ### ################ # Only load RandomTiles.rc and gammaspeed.rc under my username. { if you.name() == "chance672" then -- Prevent gammaspeed.rc from trying to load this file twice. chace672_rc_loaded = true # crawl.read_options("RandomTiles.rc") -- Only load gammaspeed.rc if we haven't already. if not gammaspeed_rc_loaded then crawl.read_options("gammaspeed.rc") end end } ############### ### 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 = 70 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 equip_bar = true ## 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.*(curing|flight):lightgrey : if you.race() == "Vampire" then item += potions? of blood:lightgrey : end item += potions? of.*berserk:brown item += potions? of.*might:yellow item += potions? of.*cancellation:cyan : if tonumber(crawl.version("major")) <= 0.19 then item += potions? of.*heal wounds:lightred item += potions? of.*(experience|beneficial mutation):white 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 : else item += potions? of.*ambrosia:blue item += potions? of.*experience:lightred item += potions? of.*heal wounds:white item += potions? of.*(resistance|agility):green item += potions? of.*(haste|invisibility):lightgreen item += potions? of.*mutation:lightcyan item += potions? of.*brilliance:magenta item += potions? of.*magic:lightmagenta :end ### Scrolls ### : if you.race() == "Vampire" or you.race() == "Mummy" : or you.race() == "Ghoul" then item += scroll.*holy word:darkgrey item += scroll.*torment:brown : else item += scroll.*holy word:brown item += scroll.*torment:darkgrey : end item += scroll.*acquirement:white item += scroll.*(summoning):yellow item += scroll.*identify:cyan item += scroll.*magic mapping:lightcyan : if tonumber(crawl.version("major")) <= 0.19 then item += scroll.*noise:blue item += scroll.*recharging:lightred item += scroll.*(amnesia|curse):lightgrey item += scroll.*(silence|vulnerability|immolation):green item += scroll.*(enchant|brand weapon):lightgreen item += scroll.*(fog|teleport):magenta item += scroll.*(fear|blink):lightmagenta :else item += scroll.*(silence|vulnerability|immolation):blue item += scroll.*remove curse:lightgrey item += scroll.*(fog|teleport):green item += scroll.*(fear|blink):lightgreen item += scroll.*(recharging):magenta item += scroll.*(enchant|brand weapon):lightmagenta :end ### Wands ### # Sometimes dangerous item += wand of.*random effects:blue # Single target piercing. item += wand of.*lightning:brown item += wand of.*acid:yellow : if tonumber(crawl.version("major")) <= 0.19 then item += wand of.*heal wounds:lightred item += wand of.*flame:lightgrey item += wand of.*iceblast:white item += wand of.*(slowing|confusion|polymorph):green item += wand of.*(paralysis|enslavement):lightgreen item += wand of.*disintegration:cyan item += wand of.*digging:lightcyan item += wand of.*teleportation:magenta item += wand of.*hasting:lightmagenta : else item += wand of.*flame:lightgrey item += wand of.*clouds:white item += wand of.*digging:green # Single-turn AOE item += wand of.*iceblast:cyan item += wand of.*scattershot:lightcyan item += wand of.*(disintegration|confusion|polymorph):magenta item += wand of.*(paralysis|enslavement):lightmagenta : end ### General Identification ### # rods gone in 0.20 : if tonumber(crawl.version("major")) < 0.20 then item += ( rod ):yellow : end item += (identified|known).*(jewellery|magical staff):brown item += identified.*spellbook:magenta # rods gone in 0.20 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 item += mutagenic.*chunk:blue item += evil_eating.*chunk:red item += inedible.*chunk:darkgrey : if tonumber(crawl.version("major")) <= 0.19 then item += fruit:brown item += (pizza|jerky|jerkies):yellow item += royal jell:green :else item += fruit:green item += royal jell:yellow :end 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 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 ### Food ### # Color chunks, put ordinary ones on lightgrey. menu += red:evil_eating.*chunk menu += blue:mutagenic.*chunk menu += darkgrey:inedible menu += lightgrey: +(chunks?$|chunks? +) # Other food : if tonumber(crawl.version("major")) <= 0.19 then menu += brown:fruit menu += yellow:(pizza|jerky|jerkies) menu += green:royal jell : else menu += green:fruit menu += yellow:royal jell : end menu += lightgreen:bread ration menu += lightred:meat ration ### Potions ### : if you.race() == "Vampire" then menu += lightgrey:potions? of blood : end menu += lightgrey:potions? of.*(curing|flight) menu += brown:potions? of.*berserk menu += yellow:potions? of.*might menu += cyan:potions? of.*cancellation : if tonumber(crawl.version("major")) <= 0.19 then menu += blue:potions? of.*(lignification|mutation) menu += lightred:potions? of.*heal wounds menu += white:potions? of.*(experience|beneficial mutation) menu += green:potions? of.*brilliance menu += lightgreen:potions? of.*(invisibility|agility) menu += cyan:potions? of.*cancellation menu += lightcyan:potions? of.*cure mutation menu += magenta:potions? of.*(magic|ambrosia) menu += lightmagenta:potions? of.*(haste|resistance) : else menu += blue:potions? of.*(lignification|ambrosia) menu += lightred:potions? of.*experience menu += white:potions? of.*heal wounds menu += green:potions? of.*(resistance|agility) menu += lightgreen:potions? of.*(haste|invisibility) menu += lightcyan:potions? of.*mutation menu += magenta:potions? of.*brilliance menu += lightmagenta:potions? of.*magic :end ### Scrolls ### : if you.race() == "Vampire" or you.race() == "Mummy" : or you.race() == "Ghoul" then menu += darkgrey:scroll.*holy word menu += brown:scroll.*torment : else menu += brown:scroll.*holy word menu += darkgrey:scroll.*torment : end menu += white:scroll.*acquirement menu += yellow:scroll.*(summoning) menu += cyan:scroll.*identify menu += lightcyan:scroll.*magic mapping : if tonumber(crawl.version("major")) <= 0.19 then menu += blue:scroll.*noise menu += lightred:scroll.*recharging menu += lightgrey:scroll.*(amnesia|curse) menu += green:scroll.*(silence|vulnerability|immolation) menu += lightgreen:scroll.*(enchant|brand weapon) menu += magenta:scroll.*(fog|teleport) menu += lightmagenta:scroll.*(fear|blink) :else menu += blue:scroll.*(noise|silence|vulnerability|immolation) menu += lightgrey:scroll.*remove curse menu += green:scroll.*(fog|teleport) menu += lightgreen:scroll.*(fear|blink) menu += magenta:scroll.*(recharging) menu += lightmagenta:scroll.*(enchant|brand weapon) :end ### Wands ### # Can be harmful menu += blue:wand of.*random effects # High level damage menu += brown:wand of.*lightning menu += yellow:wand of.*acid : if tonumber(crawl.version("major")) <= 0.19 then menu += lightred:wand of.*heal wounds menu += lightgrey:wand of.*flame menu += white:wand of.*iceblast menu += green:wand of.*(slowing|confusion|polymorph) menu += lightgreen:wand of.*(paralysis|enslavement) menu += cyan:wand of.*disintegration menu += lightcyan:wand of.*digging menu += magenta:wand of.*teleportation menu += lightmagenta:wand of.*hasting : else menu += lightgrey:wand of.*flame menu += white:wand of.*clouds menu += green:wand of.*digging menu += cyan:wand of.*iceblast menu += lightcyan:wand of.*scattershot menu += magenta:wand of.*(disintegration|confusion|polymorph) menu += lightmagenta:wand of.*(paralysis|enslavement) : end ### General identification ### menu += cyan:manual of menu += lightcyan:manual menu += lightmagenta:unidentified.*artefact.* menu += white:.*artefact.* menu += lightblue:unidentified .*(potion|scroll|wand|jewellery|spellbook|rod|magical staff) menu += magenta:.*known .*(ring of (dexterity|strength|intelligence|slaying|evasion|protection(?! from))|amulet of reflection) menu += inventory:lightgray:.*(book|jewellery|magical staff) # Ego items menu += lightblue:unidentified.*weapon.*(runed|glowing|enchanted) menu += lightblue:unidentified.*armour.*(runed|glowing|embroidered|shiny|dyed) ################# ### Interface ### ################# default_manual_training = true easy_eat_chunks = true equip_unequip = true sort_menus = true:equipped,identified,basename,art,ego,glowing,qualname,curse,charged,slot ability_menu = false autofight_stop = 70 autofight_caught = true autofight_wait = false auto_butcher = true ############################ ### Travel & Exploration ### ############################ rest_wait_both = true auto_sacrifice = true travel_delay = -1 explore_delay = -1 rest_delay = -1 show_travel_trail = false explore_stop += greedy_items ################## ### Autopickup ### ################## # Add staves, rods, misc; note you can't use += with this option. autopickup = $?!:"/%}|\ ae := autopickup_exceptions 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 more += You miscast.*(Blink|Borgnjor|Door|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. # Things with ranged (or extremely fast), irresistable effects. more += ((floating|shining) eye|dream sheep|death drake).*into view more += (wretched star|apocalypse crab|death drake).*into view more += (entropy weaver|torpor snail|spriggan druid).*into view more += (vault (warden|sentinel)|merfolk (avatar|siren)).*into view more += (guardian serpent|draconian shifter|convoker|death cob).*into view more += (phantasmal warrior).*into view # Paralysis/Petrify/Banish more += (orc sorcerer|wizard|ogre mage|great orb of eyes|sphinx).*into view more += (vampire knight|basilisk|deep elf (sorcerer|demonologist)).*into view # Torment/flay or hellfire more += (flayed ghost|greater mummy|mummy priest|fiend|tzitzimitl).*into view more += (tormentor|curse toe|curse skull|hell sentinel|hellion).*into view more += (deep elf (sorcerer|high priest)|draconian scorcher).*into view # Things that can hit for over 90+ damage in a turn that is either ranged or # very fast. more += ((deep elf|draconian) annihilator|tengu reaver).*into view more += (lich|orb of fire|executioner|juggernaut|shrike).*into view # Any uniques and any pan lords more += (?-i:[A-Z]).* 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 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 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 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 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 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. item_slot += amulet of 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 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 item_slot += 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 += amulet of gourmand : U item_slot += ring of see invisible : 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 += of faith:!P # Rods removed in 0.20 : if tonumber(crawl.version("major")) < 0.20 then ai += ( rod ):!a : end ai += manual of:!d ai += staff of (Wucad Mu|energy|wizardry|power|conjuration|summoning):!a ai += (large rock|throwing net|curare|of dispersal):=f ############## ### Morgue ### ############## note_hp_percent = 10 note_all_skill_levels = true note_chat_messages = false user_note_prefix = >> note_items += experience,of resistance, Archmagi note_items += crystal plate armour,pearl dragon 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 ############ ## Macros ## ############ # To set the target skill manually. macros += M ] ===set_target_skill # Only make these macros for my username. Needs to be set in lua instead of # directly as RC statments for the name condition to work. { if you.name() == "chance672" then crawl.setopt("macros += M 1 zz") crawl.setopt("macros += M S ===save_with_message") crawl.setopt("macros += M 8 ===new_random_tile") crawl.setopt("macros += M 9 ===set_tile_by_name") crawl.setopt("macros += M 0 ===toggle_tile_timer") crawl.setopt("macros += M - ===toggle_random_tile") end } ########### ### Lua ### ########### { -- 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 } # Note: My final rc file has the code from foce_mores.lua, load_message.lua, # and target_skill.lua starting from the line below. { --------------------------------------- ---- Begin conditional force_mores ---- --------------------------------------- -- See README.md for documentation. last_turn = you.turns() -- Each entry must have a name field with a descriptive name, a pattern field -- giving the regexp matching the appropriate monster(s), a cond field giving -- the condition type, and a cutoff field giving the max value where the -- force-more is active. Possible values for cond are xl and maxhp. Note that -- the final force_more pattern will be "(PATTERN).*into view" where PATTERN is -- the value from the pattern field if that is a string, or if pattern is an -- array, a string made from joining the entries in pattern with '|'. fm_patterns = { -- Fast, early game Dungeon problems for chars with low mhp. {name = "30mhp", cond = "maxhp", cutoff = 30, pattern = "adder|hound"}, -- Dungeon monsters that can damage you for close to 50% of your mhp with a -- ranged attack. {name = "40mhp", cond = "maxhp", cutoff = 40, pattern = "orc priest|electric eel"}, {name = "60mhp", cond = "maxhp", cutoff = 60, pattern = "acid dragon|steam dragon|manticore"}, {name = "70mhp", cond = "maxhp", cutoff = 70, pattern = "centaur|meliai|yaktaur"}, {name = "80mhp", cond = "maxhp", cutoff = 80, pattern = "gargoyle|orc (warlord|knight)"}, {name = "90mhp", cond = "maxhp", cutoff = 90, pattern = "centaur warrior|efreet|molten gargoyle|tengu conjurer"}, {name = "110mhp", cond = "maxhp", cutoff = 110, pattern = {"centaur warrior", "deep elf", "cyclops", "efreet", "molten gargoyle", "tengu conjurer", "yaktaur captain", "necromancer", "deep troll earth mage", "hell knight", "stone giant"} }, {name = "160mhp", cond = "maxhp", cutoff = 160, pattern = {"(fire|ice|quicksilver|shadow|storm) dragon", "(fire|frost) giant", "war gargoyle"} }, } -- end fm_patterns active_fm = {} -- Set to true to get a message when the fm change notify_fm = false -- Wrapper of crawl.mpr() that prints text in white by default. if not mpr then mpr = function (msg, color) if not color then color = "white" end crawl.mpr("<" .. color .. ">" .. msg .. "") end end function init_force_mores() for i,v in ipairs(fm_patterns) do active_fm[#active_fm + 1] = false end end function update_force_mores() local activated = {} local deactivated = {} local hp, maxhp = you.hp() for i,v in ipairs(fm_patterns) do local msg = nil if type(v.pattern) == "table" then for j, p in ipairs(v.pattern) do if msg == nil then msg = p else msg = msg .. "|" .. p end end else msg = v.pattern end msg = "(" .. msg .. ").*into view" local action = nil local fm_name = v.pattern if v.name then fm_name = v.name end if not v.cond and not active_fm[i] then action = "+" elseif v.cond == "xl" then if active_fm[i] and you.xl() >= v.cutoff then action = "-" elseif not active_fm[i] and you.xl() < v.cutoff then action = "+" end elseif v.cond == "maxhp" then if active_fm[i] and maxhp >= v.cutoff then action = "-" elseif not active_fm[i] and maxhp < v.cutoff then action = "+" end end if action == "+" then activated[#activated + 1] = fm_name elseif action == "-" then deactivated[#deactivated + 1] = fm_name end if action ~= nil then local opt = "force_more_message " .. action .. "= " .. msg crawl.setopt(opt) active_fm[i] = not active_fm[i] end end if #activated > 0 and notify_fm then mpr("Activating force_mores: " .. table.concat(activated, ", ")) end if #deactivated > 0 and notify_fm then mpr("Deactivating force_mores: " .. table.concat(deactivated, ", ")) end end local last_turn = nil function force_mores() if last_turn ~= you.turns() then update_force_mores() last_turn = you.turns() end end init_force_mores() ------------------------- ---- End force_mores ---- ------------------------- ---------------------------- ---- Begin load_message ---- ---------------------------- -- See README.md for documentation. message_color = "white" -- Wrapper of crawl.mpr() that prints text in white by default. if not mpr then mpr = function (msg, color) if not color then color = "white" end crawl.mpr("<" .. color .. ">" .. msg .. "") end 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 load_message() if c_persist.message and c_persist.message ~= "nil" and c_persist.message ~= "" then mpr("MESSAGE: " .. c_persist.message, message_color) c_persist.message = nil end end ----------------------------------- ---- End leave message on save ---- ----------------------------------- } # The ready() function is needed for code that has to process each turn or UI # action. { function ready() -- char_defaults.lua; this must come before the call to target_skill(). -- Enabled only for my username. if you.name() == "gammafunk" then char_defaults() end -- Enable these only for my username. if you.name() == "blahblah" then -- speedrun rest.lua speedrun_rest() -- load_message.lua load_message() -- RandomTiles random_tile() end end } ############# ### Debug ### ############# fsim_rounds = 10000 #####chance autoinscribe += potion:!q autoinscribe += scroll:!r autoinscribe += wand:!v autoinscribe += food:!e autoinscribe += quarterstaff:ffs crawl this is not a staff autoinscribe += staff:!a autoinscribe += rod:!a autoinscribe += javelin:=f autoinscribe += tomahawk:=f autoinscribe += throwing net:=f : if you.race() == "Ogre" then ae ^=