# TEAMCAPTAIN ShadowRider38 ## do you play console? is it hard to look at webtiles? ## ## these options will make webtiles look like console: ## action_panel_glyphs = true tile_display_mode = tiles ############# # Autofight # ############# # make sure to adjust these to your playstyle!!! # if you enable the latter, tab is autofight_no_move # Do/don't throw stuff when autofighting #autofight_throw = true #autofight_throw_nomove = true # probably better to have a separate key for that. here it is: bindkey = [;] CMD_AUTOFIGHT_NOMOVE # If true. items are autofired stopping at the monsters feet (same as firing using .) autofight_fire_stop = false show_more = false small_more = true # Prevent me from tab-fighting to death by keeping this high : if you.race() ~= "Deep Dwarf" then autofight_stop = 70 : else autofight_stop = 40 : end ### this section is sorta outdated cuz you can quiver spells, that said, it could cool to have both maybe ## Enable this if you want automagic attacks #automagic_enable = false #automagic_slot = a ## Percentage of MP to stop automagic at #automagic_stop = 50 ## If set to true, resort to melee when automagic_stop is active #automagic_fight = true default_manual_training = true default_show_all_skills = true skill_focus = true hp_warning = 55 mp_warning = 40 hp_colour = 100:green, 99:lightgrey, 80:yellow, 70:lightred, 50:red mp_colour = 100:green, 99:lightgrey, 70:yellow, 55:lightred, 40:red stat_colour = 3:red, 7:lightred, 19:lightgrey, 99:lightgreen show_god_gift = yes sort_menus = true spell_menu = true # equip_unequip = true # this means if you try to wield what you're already wielding, you unwield it. # this has not proven terribly useful for me, i'd rather wield "-" explicitly ## AUTO TRAVEL/EXPLORE ## travel_delay = -1 explore_delay = -1 show_travel_trail = true travel_open_doors = true autofight_caught = true explore_stop = glowing_items,artefacts,greedy_pickup_smart explore_stop += stairs,shops explore_stop += altars,portals,branches,runed_doors explore_stop += greedy_visited_item_stack explore_wall_bias = 5 travel_key_stop = true # don't blunder into krakens in shoals while flying! # set to shallow water for extra safety if you want travel_avoid_terrain = deep water : if you.god() == ("Trog" or "Xom") and you.spirit_shield() == 0 then rest_wait_both = false : else rest_wait_both = true : end explore_auto_rest = true rest_wait_ancestor = true ################ ### Messages ### ################ channel.multiturn = mute msc := message_colour msc += mute:returns to your side msc += mute:a demon appears 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 += 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) 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 += 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 += 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|air elemental).*into view # Paralysis/Petrify/Banish more += (orc sorcerer|(?> note_items += experience,of resistance, Archmagi note_items += crystal plate armour,pearl dragon scales note_items += artefact 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,turns_by_place,xp_by_level # Portals more += ticking.*clock more += dying ticks more += distant snort more += coins.*counted more += tolling.*bell more += roar of battle more += creaking.*portcullis more += portcullis is probably more += wave of frost more += crackling.*melting more += hiss.*sand more += sound.*rushing water more += rusting.*drain more += drain falling apart more += heat about you more += falling.*rocks more += rumble.*avalanche of rocks more += crackle.*arcane power more += crackle.*magical portal more += distant wind more += whistling.*wind more += rapidly growing quiet # Flash flash := flash_screen_message flash += Your life is in your own hands flash += Your time is quickly running out ## Glyphs # mild interpolation of the alternate glyph sets for features display_char = wall:▒ display_char = permawall:█ display_char = wall_magic:░ display_char = floor:· display_char = floor_magic:◦ display_char = door_open:⸬ display_char = door_closed:◼ display_char = trap:^ display_char = stairs_down:> display_char = stairs_up:< display_char = grate:⊞ display_char = altar:π display_char = arch:∩ display_char = fountain:⌠ display_char = wavy:≈ display_char = statue:⁑ display_char = invis_exposed:∆ display_char = item_detected:{ display_char = item_orb:⊛ display_char = item_rune:φ display_char = item_weapon:) display_char = item_armour:[ display_char = item_wand:/ display_char = item_food:% display_char = item_corpse:‰ display_char = item_skeleton:‱ display_char = item_scroll:? display_char = item_ring:= display_char = item_potion:! display_char = item_missile:( display_char = item_book:∞ display_char = item_staff:| display_char = item_miscellany:} display_char = item_gold:$ display_char = item_amulet:" display_char = cloud:❋ display_char = cloud_weak:✼ display_char = cloud_fading:✢ display_char = cloud_terminal:∘ display_char = tree:♣ display_char = transporter:∈ display_char = transporter_landing:∋ display_char = fired_bolt:# display_char = fired_zap:* display_char = fired_burst:÷ display_char = fired_debug:X display_char = fired_missile:⋆ display_char = explosion:# display_char = frame_horiz:═ display_char = frame_vert:║ display_char = frame_top_left:╔ display_char = frame_top_right:╗ display_char = frame_bottom_left:╚ display_char = frame_bottom_right:╝ # fancier feature declarations # Walls and floors feature += crystal wall {░} feature += stone wall {≣} feature += metal wall {▓} feature += Golubria {Ω} feature += collapsed entrance {∩,∩,lightgrey} feature += escape hatch in the ceiling {«} feature += escape hatch in the floor {»} feature += web {✳} # Fancy god altars # "shattered" feature += Ashenzari {※} # "rough hewn" feature += Beogh {⁂} feature += Cheibriados {◴} feature += Dithmenos {ᚤ} # staff of aesculapius for the healer feature += Elyvilon {⚕} feature += Fedhas {❀} feature += Gozag {₪} # funeral urn of the ancestor feature += Hepliaklqana {⚱} feature += Jiyva {☣} feature += Kikubaaqudgha {☠} # "corrupted" feature += Lugonu {▚} # just because lowercase omega looks like flames feature += Makhleb {ω} feature += Nemelex Xobeh {⚜} feature += Okawaru {⚔} # meteorological symbol for thunderstorm feature += Qazlal {☈} feature += Ru {⚖} # mimic the tile feature += Sif Muna {♟} feature += Trog {†} feature += Uskayaw {♪} # 16 pointed star. "radiant" feature += Vehumet {✺} feature += Wu Jian {ॻ} feature += Xom {⸘} # a plain basalt altar sticks out in this flashy crowd feature += Yredelemnul {☗} # a quarter moon is the alchemical symbol for silver feature += Zin {☽} # alchemical gold feature += Shining One {☉} # Monsters mons := mon_glyph # Monsters that can be easy to miss mons += * : ✱ mons += dancing weapon : lightcyan { mons += spectral weapon : lightcyan { # Fancy Demons mons += 1 : ➊ mons += 2 : ➋ mons += 3 : ➌ mons += 4 : ➍ mons += 5 : ➎ mons += 6 : ➏ mons += demonspawn blood saint : ➅ mons += demonspawn warmonger : ➅ mons += demonspawn corrupter : ➅ mons += demonspawn black sun : ➅ mons += & : ᚱ mons += R : ® # Terrible horrors mons += x : ᛣ mons += X : ᚸ mons += tentacled monstrosity : ᛤ mons += G : ಠ mons += glowing orange brain : ದ mons += u : ᛟ # Mummies and friends mons += M : 𓀾 mons += W : צ mons += spectral thing : צ mons += L : ל # Constructs mons += 8 : ᛝ # Monsters that are really features mons += statue : ⁑ mons += P : ❦ # Except those that are not mons += wandering mushroom : ❡ mons += deathcap : ❡ mons += oklob plant : ❡ mons += ballistomycete : ❡ mons += burning bush : ❡ mons += oklob sapling : ❡ # Vortices mons += v : ¤ # Hep to hep mons += ancestor : ಕ mons += hexer : ಟ mons += knight : ಗ mons += battlemage : ಸ # AUTO EXCLUDE # Forcemore any uniques and any pan lords more += (?-i:[A-Z]).* comes? into view ## dangerous monsters ## auto_exclude += ancient lich, death drake, hydra, ice statue, jelly, orb of fire ## paralysing monsters and uniques ## auto_exclude += [^c] wizard, ancient lich, Ereshkigal, Erolcha, eyeball, Grinder, Jory, lich auto_exclude += Norris, ogre-mage, orb of eyes, orc sorcerer, Rupert, sphinx, vampire knight ## other uniques and unique followers ## auto_exclude += Agnes, Aizul, Arachne, Asterion, Blork, Boris, Crazy Yiuf, Donald, Dowan auto_exclude += Duvessa, Edmund, Erica, Eustachio, Fannar, Frances, Frederick, Gastronok auto_exclude += Grum, Harold, Ijyb, Jessica, Jorgrun, Joseph, Kirke, Louise, Mara, Maud auto_exclude += Maurice, Menkaure, Mennas, Natasha, Nergalle, Nessos, Nikola, Pikel auto_exclude += Polyphemus, Prince Ribbit, Psyche, Roxanne, Saint Roka, Sigmund, Snorg auto_exclude += Sojobo, Sonja, Terence, Urug, Wiglaf, Xtahua, hog, lemure ########### ### 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) --------------------------- ---- Begin 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, a 'cond' field giving the condition type, and a 'cutoff' field giving -- the max value for where the force_more will apply. Possible values for -- 'cond' are xl and maxhp. -- -- The 'pattern' field's value can be either a regexp string or array of regexp -- strings matching the appropriate monster(s). Any values are joined by "|" to -- make a new force_more of the form: -- -- ((?!spectral )VALUE1|VALUE2|...)(?! (skeleton|zombie|simularcrum)).*into view". -- -- To allow derived undead forms of a monster to match, include 'spectral ' at -- the beginning of and/or ' (skeleton|zombie|simularcrum)' at the end of your -- pattern for that monster. 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(?! warrior)|meliai|yaktaur(?! captain)"}, {name = "80mhp", cond = "maxhp", cutoff = 80, pattern = "gargoyle|orc (warlord|knight)"}, {name = "90mhp", cond = "maxhp", cutoff = 90, pattern = {"centaur warrior", "deep elf archer", "efreet", "molten gargoyle", "tengu conjurer"} }, {name = "110mhp", cond = "maxhp", cutoff = 110, pattern = {"centaur warrior", "deep elf (mage|knight)", "cyclops", "efreet", "molten gargoyle", "tengu conjurer", "yaktaur captain", "necromancer", "deep troll earth mage", "hell knight", "stone giant", "ghost moth" } }, {name = "160mhp", cond = "maxhp", cutoff = 160, pattern = {"(fire|ice|quicksilver|shadow|storm) dragon", "(fire|frost) giant", "war gargoyle", "moth of wrath", "draconian (knight|stormcaller"} }, } -- 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 = "(?= 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 ---- ------------------------- # The ready() function is needed # for code that has to process each turn # or UI action. { function ready() -- Open skill screen on turn 0. if not skills_set and you.turns() == 0 then crawl.sendkeys("m") skills_set = true end -- force_mores.lua force_mores() end } #tile_cell_pixels = 64