### General settings hp_warning = 70 autofight_stop = 70 note_skill_levels = 1,3,6,9,12,15,18,21,24,27 note_chat_messages = true tile_web_mouse_control = true tile_layout_priority = minimap, inventory, command, spell, monster dump_message_count = 50 use_animations -= hp, player, pickup, branch_entry view_delay = 100 default_show_all_skills = true default_manual_training = true skill_focus = true travel_one_unsafe_move = true easy_floor_use = true action_panel_show = false show_game_time = false show_god_gift = yes cloud_status = true simple_targeting = false # force_spell_targeter = eringya's noxious bog # force_ability_targeter = sanctuary, word of chaos, recite, elemental force, oozemancy, disaster area, corrupt, foxfire swarm # fire_order = launcher, boomerang, rock, poisoned dart, javelin, stone tile_show_demon_tier = true show_more = false ### Autoexplore rules travel_delay = 1 explore_delay = -1 rest_delay = -1 show_travel_trail = false explore_auto_rest = true explore_stop = items,stairs,shops,altars,portals,branches,runed_doors explore_stop += greedy_pickup_smart,artefacts runrest_stop_message += You found a shaft runrest_ignore_message += blood rots? away runrest_ignore_message += Your icy armour runrest_ignore_message += Your skin is crawling a little less runrest_ignore_message += infusion is running out runrest_ignore_message += shroud begins to fray runrest_ignore_message += You feel.*sick runrest_ignore_message += You howl as the wereblood boils in your veins runrest_ignore_message += Your primal bloodlust ### EN0N's Mini-Map Color Scheme tile_upstairs_col = green tile_downstairs_col = red tile_branchstairs_col = #ffa500 tile_door_col = #c27149 tile_wall_col = #5a524c tile_explore_horizon_col = #aaaaaa tile_floor_col = #1e1b1a tile_item_col = #1e1b1a tile_feature_col = #d4be21 tile_plant_col = #4b6d39 tile_water_col = #0b5d79 tile_deep_water_col = #1212b3 tile_trap_col = #f447ff tile_transporter_col = #ff5656 tile_transporter_landing_col = #59ff89 tile_lava_col = #5f0a00 ### Menu colors: menu_colour += cyan:brand weapon menu_colour += cyan:enchant weapon menu_colour += cyan:enchant armour menu_colour += cyan:recharging menu_colour += cyan:magic mapping menu_colour += green:potions? of might menu_colour += green:potions? of agility menu_colour += green:potions? of brilliance menu_colour += green:potions? of haste menu_colour += green:potions? of resistance menu_colour += green:potions? of berserk menu_colour += cyan:wand of para menu_colour += cyan:wand of conf menu_colour += cyan:wand of poly menu_colour += cyan:wand of ensl menu_colour += cyan:wand of disi menu_colour += cyan:wand of char menu_colour += cyan:wand of mind ### Autopickup aditions and removes autoinscribe ^= scroll of silence:!r ae := autopickup_exceptions # nullifying the effect of the most annoying 0.24 commit: ae += >ring of (poi|resist cor|fli|see) ae += >amulet of (the acr|fai|the gou|gua|har|mag|rag|ref|reg) ae += wand of rand ae += >ring of (protection from (mag|fire|cold)|mag|ste|ice|fire|pos|wil|wiz) ae += >ring of (dex|int|str) ae ^= staff of as ^= End Transfo: t as ^= Evoke Invis: i as ^= Turn Visibl: j as ^= Evoke Fligh: l as ^= Spit: q as ^= Breath: q as ^= Rolling: r # conditional pickups : if you.race() == "Ghoul" or you.race() == "Mummy" then ae += scrolls? of torment : end : if you.race() == "Tengu" or you.race() == "Merfolk" or you.race() == "Barachi" or you.race() == "Octopode" then ae += >potions? of flight : end : if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then ae += >scrolls? of holy word : end : if you.god() == "Zin" then ae ^= potions? of ambro : end : if you.race() == "Barachi" then force_more_message += comes? into view : end ### Items fixed keys is := item_slot is ^= ^stone:j is ^= poisoned dart:k is ^= (^|[0-9] )boomerang:t is ^= silver boomerang:u is ^= (^|[0-9] )javelin:v is ^= large rock:w is ^= silver javelin:x is ^= curare:F is ^= datura:G is ^= atropa:J is ^= dispersal:K is ^= ring of protection from fire:f is ^= ring of protection from cold:c is ^= ring of protection from magic:m is ^= a ring of willpower:m is ^= ring of positive energy:n is ^= ring of poison resistance:o is ^= ring of see invisible:s is ^= ring of slaying:y is ^= of resist corrosion:g is ^= amulet of regeneration:r is ^= blowgun:q is ^= throwing net:Z is += scroll of noise:W is ^= scroll of identify:R is ^= scroll of teleportation:T is ^= scroll of magic map:M is ^= potion of flight:l is ^= potion of curing:Q is ^= potion of haste:H is ^= wand of digg:D is ^= wand of ensl:E is ^= wand of char:E is ^= wand of iceb:I is ^= wand of clou:O is ^= wand of para:P is ^= wand of scat:S is ^= wand of flam:V is ^= mirror:K is ^= vane:O is ^= box:X is ^= sack:N is ^= phial:U is ^= lamp:Y is ^= tin of t:Y ### Warnings (malmutations, torments, etc) confirm_action += Death's Door force_more_message -= You finish merging with the rock force_more_message += You have reached level force_more_message += You fall through a shaft force_more_message += You enter a teleport trap force_more_message += You are suddenly yanked force_more_message += interdimensional caravan force_more_message += distant snort force_more_message += Found a gateway leading out of the Abyss force_more_message += Found a gateway leading deeper into the Abyss force_more_message += Found .* abyssal rune of Zot force_more_message += Careful! force_more_message += You are starting to lose your buoyancy force_more_message += You miscast Flight #force_more_message += filled with .* inner flame #force_more_message += grabs you force_more_message += starts rolling force_more_message += looks more exp force_more_message += vile air hits you force_more_message += engulfs you in water force_more_message += breathes miasma force_more_message += You feel your flesh start force_more_message += Found * staircase leading down force_more_message += You are engulfed in seething chaos force_more_message += You are slowing down force_more_message += You are confused force_more_message += fire storm spell force_more_message += Your guardian golem overheats force_more_message += offers itself force_more_message += volcano erupts force_more_message += Uskayaw prepares the audience for your solo force_more_message += Your blazeheart golem falls apart, revealing its core! force_more_message += Something reaches out for you force_more_message += You become entangled in the net force_more_message += wield.* blowgun force_more_message += (the weather|forecast) force_more_message += you cannot.* because force_more_message += pie hits you force_more_message += goes berserk force_more_message += venomous gases #force_more_message += vanishes in a puff force_more_message += weaves a glowing orb force_more_message += Your transformation is almost over force_more_message += The ironbrand convoker begins to recite a word of recall force_more_message += Something unseen opens the door force_more_message += Your unholy channel is weakening runrest_stop_message += Your unholy channel is weakening force_more_message += centaur.* comes? into view force_more_message += hydra.* comes? into view #force_more_message += killer bee.* comes? into view force_more_message += electric eel.* comes? into view force_more_message += floating eye.* comes? into view force_more_message += carrying a wand force_more_message += serpent.* comes? into view force_more_message += demonologist.* comes? into view force_more_message += fiend.* comes? into view force_more_message += tzitzi.* comes? into view force_more_message += pandemonium lord.* comes? into view force_more_message += cacodemon.* comes? into view force_more_message += neqoxec.* comes? into view force_more_message += wretched star.* comes? into view force_more_message += shining eye.* comes? into view force_more_message += zyme.* comes? into view force_more_message += hellion.* comes? into view force_more_message += tormentor.* comes? into view force_more_message += orb.* of fire.* comes? into view #force_more_message += (?-i:[A-Z]).* comes? into view force_more_message += Found a gate leading to another region of Pandemonium force_more_message += You found a shaft force_more_message += monster_warning:tormentor force_more_message += monster_warning:fiend force_more_message += monster_warning:tzitzimi force_more_message += monster_warning:hell sentinel force_more_message += monster_warning:lurking horror force_more_message += monster_warning:shining eye force_more_message += monster_warning:cacodemon force_more_message += monster_warning:neqoxec force_more_message += monster_warning:catoblepas force_more_message += monster_warning:warmonger force_more_message += monster_warning:Sigmund force_more_message += monster_warning:Grinder force_more_message += monster_warning:Roka force_more_message += monster_warning:Tiamat force_more_message += monster_warning:Jorgrun force_more_message += monster_warning:Khufu force_more_message += (?!.(Here|Aim):).wielding.of (distortion|chaos) flash_screen_message += You are slowing down flash_screen_message += Ashenzari invites you to partake flash_screen_message += Ru believes you are ready to make a new sacrifice flash_screen_message += Vehumet offers you knowledge : if you.race() ~= "Gargoyle" and you.race() ~= "Revenant" and you.race() ~= "Mummy" and you.race() ~= "Djinni" then force_more_message += dream sheep.* comes? into view :end : if you.race() ~= "Gargoyle" then force_more_message += plume of calc :end ### Portals Warnings force_more_message += ticking.*clock force_more_message += dying ticks force_more_message += distant snort force_more_message += coins.*counted force_more_message += tolling.*bell force_more_message += roar of battle force_more_message += creaking.*portcullis force_more_message += portcullis is probably force_more_message += wave of frost force_more_message += crackling.*melting force_more_message += hiss.*sand force_more_message += sound.*rushing water force_more_message += rusting.*drain force_more_message += drain falling apart force_more_message += heat about you force_more_message += falling.*rocks force_more_message += rumble.*avalanche of rocks force_more_message += crackle.*arcane power force_more_message += crackle.*magical portal force_more_message += distant wind force_more_message += whistling.*wind force_more_message += rapidly growing quiet ### Msgs recolor (for danger/importance) msc := message_colour channel.monster_damage = plain channel.god = plain channel.monster_spell = plain channel.monster_enchant = plain channel.friend_spell = darkgrey channel.friend_enchant = darkgrey channel.monster_warning = yellow channel.timed_portal = lightgreen # Danger msc ^= red: you shout at msc ^= red: carrying a wand msc ^= red: floating eye.* comes? into view msc ^= red: You are slowing down msc ^= red: you cannot.* because msc ^= red: (the weather|forecast) msc ^= red: you will pay msc ^= red: flickers and vanishes msc ^= magenta: cacodemon.* comes? into view msc ^= magenta: neqoxec.* comes? into view msc ^= magenta: wretched star.* comes? into view msc ^= magenta: shining eye.* comes? into view : if you.race() == "Mummy" then msc ^= red: golden eye : end # Kills (is there a universal way to colour this?) msc ^= brown: you kill msc ^= brown: you destroy msc ^= brown: dies msc ^= brown: you blow up msc ^= brown: is destroyed msc ^= brown: is incinerated msc ^= brown: drowns # Misc msc ^= green: more experienced msc ^= green: you have finished your manual msc ^= darkgrey: you are exhausted msc ^= yellow: is nearby msc ^= yellow: there are.* nearby msc ^= darkgrey: You now have # mute useless messages # todo msc ^= mute: begin reading ### LUA CODE { local need_skills_opened = true local early_game_threats = true function untrain_all_skills() skill_list = {"Fighting","Short Blades","Long Blades","Axes","Maces & Flails", "Polearms","Staves","Unarmed Combat", "Throwing","Slings","Armour","Dodging","Shields","Spellcasting", "Conjurations","Hexes","Charms","Summonings","Necromancy", "Translocations","Forgecraft","Fire Magic","Ice Magic", "Air Magic","Earth Magic","Alchemy","Invocations", "Evocations","Stealth", "Shapeshifting"} for _, skills in ipairs(skill_list) do you.train_skill(skills, 0) end end function has_god() return (not (you.god() == "No God")) or you.race() == "Demigod" end function god_stop(message_buffer) local altar_is_founded = message_buffer:find("Found a faded altar of an unknown god.") local temple_is_founded = message_buffer:find("Found a staircase to the Ecumenical Temple") if ( altar_is_founded or temple_is_founded ) and ( has_god() == false ) then local get_god_alert_msg = "GET GOD" if(not message_buffer:find(get_god_alert_msg)) then crawl.mpr(get_god_alert_msg, "warning") crawl.more() end end end function annotate_v5(message_buffer) if message_buffer:find("Found a gate to the Vaults.") then crawl.sendkeys("!V5\r! DO NOT GO UNLESS READY. BAD STUFF HAPPENS HERE\r") end end function just_went_downwards(message_buffer) return message_buffer:find("You fly downwards.") or message_buffer:find("You climb downwards.") end function any_unidentified_specified_items(type) for index, item in ipairs(items.inventory()) do if item:class() == type then if item.is_identified == false then return true end end end return false end function has_id_scrolls() for index, item in ipairs(items.inventory()) do local item_name = item:name() if item_name:find("identify") then return true end end return false end function read_id_scrolls(message_buffer) if just_went_downwards(message_buffer) and has_id_scrolls() and (any_unidentified_specified_items("Scrolls") or any_unidentified_specified_items("Potions")) then crawl.sendkeys("r") end end function disable_some_early_game_threats() if you.xl() > 13 and early_game_threats then crawl.setopt("force_more_message -= centaur.* comes? into view") crawl.setopt("force_more_message -= hydra.* comes? into view") crawl.setopt("force_more_message -= killer bee.* comes? into view") crawl.setopt("force_more_message -= electric eel.* comes? into view") early_game_threats = false end end function ready() local message_buffer = crawl.messages(5) if you.turns() == 0 and need_skills_opened then need_skills_opened = false untrain_all_skills() crawl.sendkeys("m") end god_stop(message_buffer) annotate_v5(message_buffer) read_id_scrolls(message_buffer) disable_some_early_game_threats() end local function autopickup(it, name) local item_class = it.class(true) local equipped_weapon = items.equipped_at("Weapon") local equipped_shield = items.equipped_at("Shield") if it.is_useless then return false end if item_class == "armour" then local aux_slots = { cloak = "Cloak", helmet = "Helmet", gloves = "Gloves", boots = "Boots", shield = "Shield" } local subtype, _ = it.subtype() if aux_slots[subtype] == "Shield" then local one_handed = (equipped_weapon == nil or equipped_weapon.hands == 1) local no_shield_or_branded = (equipped_shield == nil or it.branded) if one_handed and no_shield_or_branded then return true end -- Pick up auxiliary armour if slot is empty elseif aux_slots[subtype] ~= nil and items.equipped_at(aux_slots[subtype]) == nil then return true elseif subtype ~= "body" and it.branded then return true end end return false end add_autopickup_func(autopickup) } ### skins :P # tile_player_tile = mons:murray # tile_player_tile = playermons