#### Keybinds bindkey = [y] CMD_MOVE_LEFT bindkey = [n] CMD_MOVE_DOWN bindkey = [e] CMD_MOVE_UP bindkey = [o] CMD_MOVE_RIGHT bindkey = [j] CMD_MOVE_UP_LEFT bindkey = [f] CMD_MOVE_UP_RIGHT bindkey = [k] CMD_MOVE_DOWN_LEFT bindkey = [l] CMD_MOVE_DOWN_RIGHT bindkey = [Y] CMD_RUN_LEFT bindkey = [N] CMD_RUN_DOWN bindkey = [E] CMD_RUN_UP bindkey = [O] CMD_RUN_RIGHT bindkey = [J] CMD_RUN_UP_LEFT bindkey = [F] CMD_RUN_UP_RIGHT bindkey = [K] CMD_RUN_DOWN_LEFT bindkey = [L] CMD_RUN_DOWN_RIGHT bindkey = [y] CMD_TARGET_LEFT bindkey = [n] CMD_TARGET_DOWN bindkey = [e] CMD_TARGET_UP bindkey = [o] CMD_TARGET_RIGHT bindkey = [j] CMD_TARGET_UP_LEFT bindkey = [f] CMD_TARGET_UP_RIGHT bindkey = [k] CMD_TARGET_DOWN_LEFT bindkey = [l] CMD_TARGET_DOWN_RIGHT bindkey = [Y] CMD_TARGET_DIR_LEFT bindkey = [N] CMD_TARGET_DIR_DOWN bindkey = [E] CMD_TARGET_DIR_UP bindkey = [O] CMD_TARGET_DIR_RIGHT bindkey = [J] CMD_TARGET_DIR_UP_LEFT bindkey = [F] CMD_TARGET_DIR_UP_RIGHT bindkey = [K] CMD_TARGET_DIR_DOWN_LEFT bindkey = [L] CMD_TARGET_DIR_DOWN_RIGHT bindkey = [y] CMD_MAP_MOVE_LEFT bindkey = [n] CMD_MAP_MOVE_DOWN bindkey = [e] CMD_MAP_MOVE_UP bindkey = [o] CMD_MAP_MOVE_RIGHT bindkey = [j] CMD_MAP_MOVE_UP_LEFT bindkey = [f] CMD_MAP_MOVE_UP_RIGHT bindkey = [k] CMD_MAP_MOVE_DOWN_LEFT bindkey = [l] CMD_MAP_MOVE_DOWN_RIGHT bindkey = [Y] CMD_MAP_JUMP_LEFT bindkey = [N] CMD_MAP_JUMP_DOWN bindkey = [E] CMD_MAP_JUMP_UP bindkey = [O] CMD_MAP_JUMP_RIGHT bindkey = [J] CMD_MAP_JUMP_UP_LEFT bindkey = [F] CMD_MAP_JUMP_UP_RIGHT bindkey = [K] CMD_MAP_JUMP_DOWN_LEFT bindkey = [L] CMD_MAP_JUMP_DOWN_RIGHT # replace (e) with (b) bindkey = [b] CMD_TARGET_EXCLUDE bindkey = [b] CMD_MAP_EXCLUDE_AREA bindkey = [B] CMD_EXPERIENCE_CHECK bindkey = [B] CMD_MAP_FIND_EXCLUDED bindkey = [^B] CMD_TOGGLE_TRAVEL_SPEED bindkey = [^B] CMD_MAP_CLEAR_EXCLUDES # replace (o) with (u) bindkey = [u] CMD_EXPLORE bindkey = [u] CMD_MAP_EXPLORE bindkey = [u] CMD_TARGET_WIZARD_GIVE_ITEM bindkey = [U] CMD_OPEN_DOOR bindkey = [U] CMD_MAP_FIND_STASH_REVERSE bindkey = [^U] CMD_DISPLAY_OVERMAP # replace (f) with (h) bindkey = [h] CMD_FIRE bindkey = [h] CMD_TARGET_SELECT bindkey = [H] CMD_TARGET_WIZARD_MAKE_FRIENDLY bindkey = [H] CMD_MAP_FIND_WAYPOINT bindkey = [^H] CMD_SEARCH_STASHES bindkey = [^H] CMD_MAP_FORGET # Rebind autofight with t and shout with tab (ya control I seems to map to tab) bindkey = [t] CMD_AUTOFIGHT bindkey = [T] CMD_REST bindkey = [^I] CMD_SHOUT # extra stuff bindkey = ["] CMD_WEAPON_SWAP bindkey = ['] CMD_LIST_JEWELLERY #### Spell/Ability slots automagic_enable = false # 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 # Okawaru ability_slot += Heroism:h ability_slot += Finesse:f # Ru ability_slot += Power Leap:P ability_slot += Draw Out Power:D ability_slot += Apocalypse:A # 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 beginning 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 += Flame wave:fwv spell_slot += Force lance:flc spell_slot += Fox fire:zfi spell_slot += Freezing cloud:fcd spell_slot += Freeze:zfc spell_slot += Frozen ramparts:frt 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 += Scorch:srh 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 += Wereblood:wbd spell_slot += Yara's violent unraveling:yvg # Default letters spell_slot += .*:XYZ { ----------------------------- ---- Begin char_defaults ---- ----------------------------- -- See README.md for documentation. weapon_skills = {"Unarmed Combat", "Short Blades", "Long Blades", "Axes", "Maces & Flails", "Polearms", "Staves"} ranged_skills = {"Throwing", "Bows", "Crossbows", "Slings"} other_skills = {"Fighting", "Armour", "Dodging", "Shields", "Spellcasting", "Conjurations", "Hexes", "Charms", "Summonings", "Necromancy", "Translocations", "Transmutations", "Fire Magic", "Ice Magic", "Air Magic", "Earth Magic", "Poison Magic", "Invocations", "Evocations","Stealth"} skill_glyphs = { [1] = "+", [2] = "*" } chdat = nil char_combo = you.race() .. you.class() loaded_attempted = 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 skill_message(prefix, skill, skill_type, value) local msg = "" if prefix then msg = prefix .. ";" end if skill_type then msg = msg .. skill_type .. "(" .. skill .. "):" .. value else msg = msg .. skill .. ":" .. value end return msg end function save_char_defaults(quiet) if you.class() == "Wanderer" then return end if not c_persist.char_defaults then c_persist.char_defaults = { } end c_persist.char_defaults[char_combo] = { } chdat = c_persist.char_defaults[char_combo] local msg = nil local have_weapon = false for _,sk in ipairs(weapon_skills) do if you.train_skill(sk) > 0 then chdat["Weapon"] = you.train_skill(sk) msg = skill_message(nil, sk, "Weapon", skill_glyphs[chdat["Weapon"]]) have_weapon = true break end end if not have_weapon then chdat["Weapon"] = nil end local have_ranged = false for _,sk in ipairs(ranged_skills) do if you.train_skill(sk) > 0 then chdat["Ranged"] = you.train_skill(sk) msg = skill_message(msg, sk, "Ranged", skill_glyphs[chdat["Ranged"]]) have_ranged = true break end end if not have_ranged then chdat["Ranged"] = nil end for _,sk in ipairs(other_skills) do if you.train_skill(sk) > 0 then chdat[sk] = you.train_skill(sk) msg = skill_message(msg, sk, nil, skill_glyphs[chdat[sk]]) else chdat[sk] = nil end end if not quiet then mpr("Saved default for " .. char_combo .. ": " .. msg) end end function have_defaults() return you.class() ~= "Wanderer" and c_persist.char_defaults ~= nil and c_persist.char_defaults[char_combo] ~= nil end function load_char_defaults(quiet) if not have_defaults() then return end local msg = nil local found_weapon = false chdat = c_persist.char_defaults[char_combo] for _,sk in ipairs(weapon_skills) do if you.base_skill(sk) > 0 and chdat["Weapon"] then you.train_skill(sk, chdat["Weapon"]) msg = skill_message(msg, sk, "Weapon", skill_glyphs[chdat["Weapon"]]) found_weapon = true else you.train_skill(sk, 0) end end if chdat["Weapon"] and not found_weapon then you.train_skill("Unarmed Combat", chdat["Weapon"]) msg = skill_message(msg, "Unarmed Combat", "Weapon", skill_glyphs[chdat["Weapon"]]) end local found_ranged = false for _,sk in ipairs(ranged_skills) do if you.base_skill(sk) > 0 and chdat["Ranged"] then you.train_skill(sk, chdat["Ranged"]) msg = skill_message(msg, sk, "Ranged", skill_glyphs[chdat["Ranged"]]) found_ranged = true else you.train_skill(sk, 0) end end if chdat["Ranged"] and not found_ranged then you.train_skill("Throwing", chdat["Ranged"]) msg = skill_message(msg, "Throwing", "Ranged", skill_glyphs[chdat["Ranged"]]) end for _,sk in ipairs(other_skills) do if chdat[sk] then you.train_skill(sk, chdat[sk]) msg = skill_message(msg, sk, nil, skill_glyphs[chdat[sk]]) else you.train_skill(sk, 0) end end if not quiet and msg ~= "" then mpr("Loaded default for " .. char_combo .. ": " .. msg) end end function char_defaults(quiet) if you.turns() ~= 0 then return end if not load_attempted then load_char_defaults(quiet) load_attempted = true -- Open the skill menu if we don't have settings to load. if not have_defaults() then crawl.sendkeys("m") end end end --------------------------- ---- End char_defaults ---- --------------------------- } ########### ### Lua ### ########### { -- To automatically open the skill menu when starting a new game local need_skills_opened = true function ready() char_defaults() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } #### Autopickup # DEBUG disable autopickup while I figure out how the default one works #autopickup = $/?!}: #ae := autopickup_exceptions #ae = # Exclusions #ae += (useless|evil)_item #ae += dangerous_item.*scrolls? of (holy word|noise|torment) # ae += scrolls? of (immolation|vulnerability) # I like potions? # ae += potions? of (berserk rage|flight|lignification|mutation) # ae += wands? of flame # ae += pieces? from Xom's chessboard # Inclusions #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("body 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 stackable items add_autopickup_func(function (it, name) return it.stacks() or nil end) -- Autopickup uncollected misc items add_autopickup_func(function (it, name) if it.class(true) ~= "misc" then return end local itname = it.name(true) if not string.find(itname, "ziggurat") then for inv in iter.invent_iterator:new(items.inventory()) do if itname == inv.name() then return false end end end return end) } default_autopickup = true pickup_thrown = true assign_item_slot = forward pickup_menu_limit = 1 drop_filter = drop_filter += useless_item auto_hide_spells = false #### Travel & exploration travel_delay = -1 explore_delay = -1 rest_delay = -1 explore_greedy = true explore_stop = explore_stop += items,stairs,shops,altars,portals,branches,runed_doors explore_stop += greedy_items,greedy_pickup_smart,greedy_visited_item_stack explore_wall_bias = 0 travel_key_stop = true travel_one_unsafe_move = false auto_exclude = auto_exclude += oklob,statue,roxanne,lightning spire #### Resting delay_safe_poison = 80:100 runrest_ignore_monster = runrest_ignore_monster += ^butterfly$:1 runrest_ignore_monster += ^wandering mushroom$:1 rest_wait_both = true rest_wait_ancestor = false rest_wait_percent = 100 explore_auto_rest = true #### Interface & commands default_manual_training = true autopickup_starting_ammo = true auto_switch = false travel_open_doors = true easy_unequip = true equip_unequip = true jewellery_prompt = false easy_confirm = all simple_targeting = true allow_self_target = no ability_menu = false easy_floor_use = true sort_menus = true:equipped,identified,basename,art,ego,glowing,qualname,slot autofight_stop = 0 autofight_warning = 0 autofight_throw = false autofight_throw_nomove = false autofight_fire_stop = false autofight_caught = true autofight_wait = true autofight_prompt_range = false fail_severity_to_confirm = 0 warn_hatches = false enable_recast_spell = false regex_search = false autopickup_search = false bad_item_prompt = false fire_items_start = a fire_order = launcher,throwing,inscribed,spell,evokable,ability fail_severity_to_quiver = 2 launcher_autoquiver = true #### Messages & display hp_warning = 50 mp_warning = 0 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 status_caption_colour = brown enemy_hp_colour = green green brown brown magenta red clear_messages = false show_more = true small_more = true show_newturn_mark = true show_game_time = true equip_bar = false animate_equip_bar = false item_stack_summary_minimum = 4 mlist_min_height = 4 mlist_allow_alternate_layout = false monster_item_view_coordinates = false monster_item_view_features = monster_item_view_features += stair,trap messages_at_top = false msg_condense_repeats = false msg_condense_short = false show_travel_trail = true skill_focus = true default_show_all_skills = false view_delay = 600 use_animations = use_animations += beam,range darken_beyond_range = true cloud_status = true always_show_zot = false tile_display_mode = tiles bold_brightens_foreground = true #### Character dump & notes dump_kill_places = single dump_on_save = true dump_item_origins = none dump_item_origin_price = -1 dump_message_count = 30 dump_order = header,hiscore,stats,misc,inventory dump_order += skills,spells,overview,mutations,messages,screenshot dump_order += monlist,notes,action_counts dump_order += vaults,turns_by_place,kills_by_place note_items = note_items += of Zot,experience,acquirement note_items += of resistance,Archmagi,crystal plate armour,dragon scales note_monsters = note_monsters += orb of fire,ancient lich,dead lich note_hp_percent = 10 note_all_skill_levels = true note_xom_effects = true note_messages = note_messages += Your scales start note_messages += You feel monstrous note_messages += protects you from harm note_messages += You (fall|are sucked) into a shaft note_chat_messages = false note_dgl_messages = true #### Autoinscriptions 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 += staff of Wucad Mu:!a ai += scrolls? of identify:@r1 ai += potions? of curing:@q1 ai += potions? of heal wounds:@q2 ai += potions? of haste:@q3 ai += scrolls? of teleportation:@r4 show_god_gift = unident #### Key bindings # Useless commands bindkey = [R] CMD_NO_CMD_DEFAULT # Macro keys bindkey = [`] CMD_NO_CMD_DEFAULT bindkey = [1] CMD_NO_CMD_DEFAULT bindkey = [2] CMD_NO_CMD_DEFAULT bindkey = [3] CMD_NO_CMD_DEFAULT bindkey = [4] CMD_NO_CMD_DEFAULT bindkey = [6] CMD_NO_CMD_DEFAULT bindkey = [7] CMD_NO_CMD_DEFAULT bindkey = [8] CMD_NO_CMD_DEFAULT bindkey = [9] CMD_NO_CMD_DEFAULT bindkey = [0] CMD_NO_CMD_DEFAULT # Wizmode bindkey = [&] CMD_NO_CMD_DEFAULT ### Macros macros += M 1 zzh macros += M 2 zxh macros += M 3 zmh macros += M 4 zch macros += M 6 \{32} macros += M 7 \{32} macros += M 8 \{32} macros += M 9 zMh macros += M 0 tah macros += M z ===force_cast_spell macros += M Z ===force_cast_spell : if you.race() == "Naga" or you.race():find("Draconian") : or you.race() == "Palentonga" then macros += M ` ahh : else macros += M ` \{32} : end #### Item colours item := item_glyph item = item += (potion|scroll|wand|jewellery):lightgrey item += spellbook:red item += scrolls? of (blinking|teleportation):yellow item += potions? of (haste|heal wounds):yellow item += scrolls? of (acquirement|brand weapon|enchant):cyan item += potions? of experience:cyan item += unidentified.*(potion|scroll|book|wand):lightblue item += unidentified.*(jewellery|magical staff):lightblue item += unidentified.*manual:white item += useless_item.*(potion|scroll):darkgrey #### Messages # TODO: recheck all of this ignore := runrest_ignore_message ignore = stop := runrest_stop_message stop = more := force_more_message more = # Annoyances ignore += Jiyva gurgles merrily ignore += Jiyva appreciates your sacrifice ignore += Divide and consume ignore += You hear.*splatter ignore += You feel.*sick ignore += disappears in a puff of smoke ignore += foxfire dissipates 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? grow ignore += You walk carefully through the ignore += The winds around you calm down. ignore += Lightning arcs down from a storm cloud ignore += (crumbles|melts) away\. ignore += grinding sound ignore += contamination has completely ignore += your breath back ignore += talk: ignore += talk_visual: ignore += friend_spell: ignore += friend_enchant: ignore += friend_action: ignore += sound: # Bad things stop += found.*trap stop += (blundered into a|invokes the power of) Zot stop += You (fall|are sucked) into a shaft stop += A sentinel's mark forms upon you\. stop += You are suddenly yanked towards stop += (starving|devoid of blood) stop += wrath finds you stop += lose consciousness # 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.god() == "Xom" then stop += god: :else ignore += god: :end stop += hell_effect: # Important features : if you.god() == "Ashenzari" then more += You have a vision of.*gates? : else more += interdimensional caravan more += distant snort more += roar of battle more += wave of frost more += hiss of flowing sand more += sound of rushing water more += heat about you more += crackle of arcane power more += distant wind : end more += Pandemonium lord.* resides here more += The tension of great conflict fills the air more += You pick up the .* rune and feel its power # Religion more += press .* to convert to Beogh more += welcomes you( back)?! more += You have lost your religion more += grants you.*(gift|ammunition|weapon|armour) more += offers you knowledge of more += believes you are ready to make a new sacrifice more += may now remember your ancestor more += invites you to partake of # Abyss more += is wielding.*distortion more += there is a.*distortion more += of distortion comes into view. more += You are cast .*into the Abyss more += The Abyss bends around you more += Found a gateway leading out of the Abyss more += a gateway leading .* appears more += Found .* abyssal rune of Zot # Interrupts more += You don't .* that spell more += You fail to use your ability more += You miscast.*(Blink|Borgnjor|Door|Invisibility|Coupling) 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 # Bad things more += Your surroundings seem slightly different more += Your surroundings flicker more += You cannot teleport right now more += You (fall|are sucked) into a shaft stop += You are suddenly yanked towards more += You fall into the water more += You fall into the lava more += Careful! more += You focus on prolonging your flight 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 convulse more += You are blasted by holy energy! more += You are (blasted|electrocuted)! more += You are.*(confused|poisoned) : if you.race() ~= "Ghoul" then more += flesh rotting :end 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 += You are slowing down more += Space warps.*around you more += Space bends around you more += watched by something more += flickers and vanishes! more += breaks free of your control 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 # Prompts more += You bow before the missionary of Beogh more += You .* the altar of more += will bless one of your weapons more += will bloody your weapon with pain more += will brand one of your weapons more += It is a scroll of amnesia more += It is a scroll of brand weapon more += It is a scroll of enchant armour more += It is a scroll of enchant weapon more += It is a scroll of identify more += It is a scroll of recharging more += This is a scroll of acquirement more += You feel more experienced more += A flood of memories washes over you more += There's only one card left more += The deck only has .* cards more += The deck has exactly five cards more += You draw the first five cards more += You deal a card # Others more += You have reached level more += You rejoin the land of the living more += You have finished your manual more += Your scales start more += You feel monstrous more += Jiyva alters your body : if you.god() == "Xom" then more += god: : end #### Menu colours menu := menu_colour menu = # Items currently not affecting you or (in some cases) not usable menu += darkgrey:(melded) menu += darkgrey:(inert) # Bad items menu += lightred:.*bad_item.* # Useless items, comes here to override artefacts etc. menu += darkgrey:.*useless_item.* # Items disliked by your god. menu += $forbidden:.*forbidden.* # Handle cursed and equipped items early to override other colour settings. menu += lightred:.*equipped.* cursed menu += red: (a|the) cursed menu += inventory:lightgreen:.*equipped.* # Important game items # menu += lightmagenta:.*misc.*rune of Zot menu += lightmagenta:.*orb.*Zot # Artefacts # menu += white:.*artefact.* #menu += white:.*identified.*artefact.* #menu += lightblue:.*unidentified.*artefact.* # Possible egos menu += lightblue:^unidentified .*weapon.*(runed|glowing) menu += lightblue:^unidentified .*armour.*(runed|glowing|embroidered|shiny|dyed) # Enchanté menu += green:enchanted menu += green:staff of menu += green:ego # Emergency items menu += yellow:.*emergency_item.* # Good items menu += cyan:.*good_item.* # Dangerous (but still useful) items menu += $dangerous:.*dangerous_item.* # Defaults for normal items menu += lightblue:unidentified.*(potion|scroll|wand|jewellery|magical staff) # Colouring of autoinscribed god gifts menu += pickup:green:god gift # Highlight (partly) selected items menu += inventory:white:\w \+\s menu += inventory:white:\w \#\s menu += inventory:white:\w \*\s # Not really menu. menu += notes:white:Reached XP level ### 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 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) ### Wands ### # Can be harmful menu += blue:wand of.*random effects # High level damage menu += brown:wand of.*lightning menu += yellow:wand of.*acid 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) ### 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) #### Message colours # TODO: recheck all of this $danger := lightred $warning := yellow $boring := darkgrey msc := message_colour msc = # Multi-turn channel.multiturn = mute # Allies 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:(something|your).*(misses|does no damage) 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) msc += mute:constricts?.*no damage # Jiyva msc += mute:slurping|squelching msc += mute:splits in two msc += mute:You feel.*(power returning|better) # Uskayaw msc += mute:force your foes to # Spellcasting spam reduction (by dianne) # Macro z and Z to ===force_cast_spell 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 { function force_cast_spell() crawl.mpr('Cast which spell?') crawl.flush_prev_message() crawl.process_keys('Z') end } # Other msc += mute:meld.*your body msc += mute:begins to bleed from.*wounds msc += mute:writhes in agony as.*flesh msc += mute:You feel a.*surge of power msc += mute:Your legs become a tail as you enter the water msc += mute:You cannot train any new skill msc += mute:Moving in this stuff is going to be slow # Default colours msc += $danger:drains you msc += $danger:feel drained msc += $danger:strangely unstable msc += $danger:curare-tipped.*hits you msc += $danger:Space warps.* around you msc += $danger:Space bends around you msc += $danger:sense of stasis msc += $danger:clumsily bash msc += $danger:goes berserk msc += $danger:The blast of calcifying dust hits you msc += $danger:You are engulfed in calcifying dust msc += $danger:is moving more slowly msc += lightgrey:Something appears (at your feet|before you) msc += $danger:^Something .* you msc += $danger:You block its attack msc += $danger:constricts you msc += $danger:you convulse msc += $danger:You feel a build-up of mutagenic energy msc += $danger:place you under penance msc += $danger:cause instant excommunication msc += $warning:corrodes you msc += $warning:rotting away msc += $warning:ticking.*clock msc += $warning:dying ticks msc += $warning:distant snort msc += $warning:odd grinding sound msc += $warning:creaking of ancient gears msc += $warning:floor suddenly vibrates msc += $warning:a sudden draft msc += $warning:coins.*counted msc += $warning:tolling.*bell msc += $warning:roar of battle msc += $warning:creaking.*portcullis msc += $warning:portcullis is probably msc += $warning:wave of frost msc += $warning:crackling.*melting msc += $warning:hiss.*sand msc += $warning:sound.*rushing water msc += $warning:rusting.*drain msc += $warning:drain falling apart msc += $warning:oppressive heat msc += $warning:rumble.*avalanche of rocks msc += $warning:crackle.*arcane power msc += $warning:crackle.*magical portal msc += $warning:distant wind msc += $warning:whistling.*wind msc += $warning:fails to return msc += $warning:no longer ripe msc += $boring:You start (resting|waiting) msc += $boring:Unknown command msc += $boring:but (do no|doesn't do any) damage msc += $boring:(prevent|prevents) you from hitting # Selected items menu += inventory:white:\w \+\s menu += inventory:white:\w \#\s menu += darkgrey:(melded) menu += red:.*evil_item.* menu += lightred: cursed menu += darkgrey:.*useless_item.* menu += inventory:lightgreen:.*equipped.* menu += white:.*artefact.* menu += lightblue:^unidentified .*(potion|scroll|book|wand).* menu += lightblue:^unidentified .*(jewellery|magical staff).* menu += lightblue:^unidentified .*weapon.*(runed|glowing) menu += lightblue:^unidentified .*armour.*(runed|glowing) menu += lightblue:^unidentified .*armour.*(embroidered|shiny|dyed) menu += yellow:potions? of (haste|heal wounds)