# TEAMCAPTAIN TheMeInTeam tile_font_crt_family = Lucida Console tile_font_stat_family = Lucida Console tile_font_msg_family = Lucida Console tile_font_lbl_family = Lucida Console small_more = true always_show_zot = true # speedrun autofight_stop = 70 delay_safe_poison = 90:100 tile_key_repeat_delay = 0 unusual_monster_items = wand unusual_monster_items += disto,chaos unusual_monster_items += curare,atropa,datura,dispersal unusual_monster_items += throwing net note_all_skill_levels = false note_chat_messages = true dump_message_count = 50 travel_delay = -1 explore_delay = -1 rest_delay = -1 travel_avoid_terrain = deep water always_show_gems = true more_gem_info = true { local need_skills_opened = true function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end if crawl.messages(5):find("You enter a gauntlet") and (you.god()=="Lugonu" or you.god()=="Fedhas" or you.god()=="Sif Muna") then crawl.mpr("Break the walls!") end fmore_early_threats() end local fmet = false function fmore_early_threats() if you.xl() > 13 and fmet 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") fmet = false end end local aft = false function toggle_autothrow() if aft then crawl.setopt("use_animations += beam, monster") crawl.setopt("autofight_throw = false") crawl.mpr("Autofight_throw is off.") else crawl.setopt("use_animations -= beam, monster") crawl.setopt("autofight_throw = true") crawl.mpr("Autofight_throw is on.") end aft = not aft end local function autopickup(it, name) local class = it.class(true) local weap = items.equipped_at("Weapon") local shie = items.equipped_at("Shield") if it.is_useless then return false end if class == "armour" then local aux_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots", shield="Shield"} st, _ = it.subtype() if aux_slots[st] == "Shield" then if (weap == nil or weap.hands == 1) and (shie == nil or it.branded) then return true end elseif aux_slots[st] ~= nil and items.equipped_at(aux_slots[st]) == nil then return true elseif st ~= "body" and it.branded then return true end end return nil end add_autopickup_func(autopickup) } ### Macros macros += K1 \{-1018} \{27} macros += K2 \{-268} + macros += K2 \{-267} \{32} macros += K2 \{-266} + macros += K2 \{-265} . macros += K3 \{-1018} \{27} macros += M \{-269} zY macros += M \{-268} Za+ macros += M \{-267} za\{32} macros += M \{-266} f+ macros += M \{-265} f. macros += M \{-250} zb macros += M \{4} \{5} macros += M \{5} \{20} macros += M ( [ macros += M \{-1016} \{9} macros += M \{-1018} o macros += M [ ( macros += M ] ) macros += M z Z ### 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 use_animations -= hp, player, pickup, branch_entry view_delay = 0 default_show_all_skills = true default_manual_training = true skill_focus = true show_travel_trail = true travel_one_unsafe_move = false 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, plasma beam force_ability_targeter = sanctuary, word of chaos, recite, elemental force, oozemancy, disaster area, corrupt, foxfire swarm tile_web_mouse_control = false tile_show_threat_levels = nasty, unusual fire_order = launcher, boomerang, rock, poisoned dart, javelin, stone 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 runrest_safe_poison = 100:100 interrupt_armour_on -= hp_loss interrupt_armour_off -= hp_loss interrupt_memorise -= hp_loss interrupt_memorise -= monster explore_auto_rest = true explore_stop = items,stairs,shops,altars,portals,branches,runed_doors explore_stop += greedy_pickup_smart,artefacts tile_show_demon_tier = true 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 poly menu_colour += cyan:wand of char menu_colour += cyan:wand of mind autoinscribe ^= scroll of silence:!r #: if you.skill("Staves") < 5 then # autoinscribe += magical staff:!a #: end 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 += >scrolls? of (amn|noise) 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 := ability_slot as ^= End Transfo: t as ^= Evoke Invis: i as ^= Turn Visibl: j as ^= Evoke Fligh: l as ^= Fly: l as ^= Stop Flying: m as ^= Spit: f as ^= Breath: f as ^= Rolling: f ss := spell_slot ss ^= Apportation: g ss ^= Blink: d ss ^= Lesser Beck: e ss ^= Portal Proj: J ss ^= Teleport Ot: t ss ^= Passage of: z ss ^= Summon Fore: F ss ^= Ozocubu: b ss ^= Haste: H ss ^= Confus: x ss ^= Tukima's Da: t ss ^= Dazzling Sp: q ss ^= Sublimation: Z ss ^= Vampiric Dr: v ss ^= Control Und: U ss ^= Dispel Unde: u ss ^= Animate Dea: E ss ^= Borgnjor's : w ss ^= Irradiate: r ss ^= Passwall: c ss ^= Frozen Ramp: c ss ^= Petrify: p ss ^= Lee's Rapid: l ss ^= Summon Ligh: L ss ^= Freezing Cl: f ss ^= Conjure Fla: j ss ^= Mephitic Cl: m ss ^= Olgreb's To: t ss ^= Fireball: e 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 ^= dispersal:K is ^= ring of protection from fire:f is ^= ring of protection from cold:c is ^= 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 ^= throwing net:Z is ^= scroll of identify:R is ^= scroll of teleportation:T is ^= scroll of blinking:B is ^= scroll of revelation:M is ^= potion of enlightenment:l is ^= potion of curing:Q is ^= potion of haste:H is ^= wand of acid:A is ^= wand of digg:D is ^= wand of char:E is ^= wand of iceb:I is ^= wand of para:P is ^= wand of flam:V is ^= mirror:K is ^= vane:O is ^= box:X is ^= sack:N is ^= phial:U is ^= tin of t:Y force_more_message -= You finish merging with the rock 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 += 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 += Something reaches out for you force_more_message += You become entangled in the net 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 += 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 += revealing its core #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 += wielding.* distortion.* 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 more += 27-headed.*comes? into view. more += .*player ghost.* comes? into view more += .*Ancient Lich.*comes? into view. more += .*Orbs? of Fire.*comes? into view. more += .*Fiend.*comes? into view. more += .*Hellion.*comes? into view. more += .*Tormentor.*comes? into view. more += .*Hell Sentinel.*comes? into view. more += .*Executioner.*comes? into view. more += .*Neqoxec.*comes? into view. more += .*Cacodemon.*comes? into view. more += .*Shining Eye.*comes? into view. more += .*Greater Mummy.*comes? into view. more += .*Mummy Priest.*comes? into view. more += .*Curse Toe.*comes? into view. more += .*Curse Skull.*comes? into view. more += .*('s|s') ghost.*comes? into view. more += .*shrike.*comes? into view. more += .*wretched star.*comes? into view more += .*lurking horror.*comes? into view force_more_message += .*(Agnes|Aizul|Amaemon|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Grunn|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephina|Josephine|Khufu|Kirke|the Lernaean hydra|Lodul|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mlioglotl|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Parghit|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Vv|Xtahua|Zenata).*comes? into view force_more_message += (?-i:[A-Z]).* comes? into view #force_more_message += comes? into view force_more_message += Found a gate leading to another region of Pandemonium force_more_message += You found a shaft runrest_stop_message += You found a shaft flash_screen_message += You are slowing down flash_screen_message += wielding.* distortion.* comes? into view 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 flash_screen_message += .*(Agnes|Aizul|Amaemon|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Grunn|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephina|Josephine|Khufu|Kirke|the Lernaean hydra|Lodul|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mlioglotl|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Parghit|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Vv|Xtahua|Zenata).*comes? into view : if you.race() ~= "Gargoyle" 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 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 confirm_action += Death's Door ### Messages 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: distortion.* comes? into view 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 ### Squelch stupid prompts { function c_answer_prompt(prompt) if prompt == "Annotate level on other end of current stairs?" then return false end end } { function c_answer_prompt(prompt) if prompt == "Are you sure you want to leave the Dungeon? This will make you lose the game!" then return false end end } ### Species, Job, God conditions : if true and (you.race() == "Spriggan" or you.race() == "Gnoll") then default_autopickup = false : else default_autopickup = true : end : if you.race() == "Ogre" or you.race() == "Troll" then ae += potions? of brilliance ae += >potions? of berserk ae += >magical staff : end : if you.god() == "Zin" then ae ^= potions? of ambro : end show_more = false #autofight_throw = true { function ready() OpenSkills() hpWarning_Early() hpWarning_Mid() hpWarning_Late() hp_percent() mp_percent() AnnounceDamage() Vehumetoffer() Ruoffer() end } { function hp_percent() a,b=you.hp() return 100*a/b end } { function mp_percent() a,b=you.mp() return 100*a/b end } { function Petrifying_Check() if you.petrifying() then crawl.yesno("You are now petrifying so your action will be checked. (Y or N to confirm.)", false, false, true, true) crawl.mpr("Consider to using tele/blink, Yara, cancellation or other emergency measures......", 5) end end } { local need_skills_opened = true function OpenSkills() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") crawl.mpr("Pride is your worst enemy! Be on prudent way!", 3) end end } { local early = true function hpWarning_Early() if hp_percent() < 60 and you.xl() < 9 and early then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("The dice are ABSOLUTELY not on your side......", 5) early = false end if you.hp() > 10 and hp_percent() > 60 and you.xl() < 9 then early = true end end } { local mid = true function hpWarning_Mid() if hp_percent() < 60 and you.xl() < 20 and you.xl() > 8 and mid then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("Consider to using tele/blink, potion or other emergency measures......", 5) mid = false end if hp_percent() > 60 and you.xl() < 20 and you.xl() > 8 then mid = true end end } { local late = true function hpWarning_Late() if you.hp() < 60 and you.xl() == 27 and not you.status("death's door") and not you.status("death's door (expiring)") and late then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("Keep playing discreetly even on late-game......", 5) late = false end if you.hp() > 59 and you.xl() == 27 then late = true end end } { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 0 then local hp_difference = previous_hp - current_hp local mp_difference = previous_mp - current_mp if max_hp_increased or max_hp_decreased then if max_hp_increased then crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") end end end end --Set previous hp/mp and form at end of turn previous_hp = current_hp previous_mp = current_mp previous_form = current_form was_berserk_last_turn = you_are_berserk end } { local veh = true function Vehumetoffer() if string.find(crawl.messages(4), "Vehumet offers") and veh then crawl.yesno("Vehumet offers a spell for you! (Y or N to confirm.)", false, false, true, true) veh = false end if string.find(crawl.messages(4), "Vehumet accepts") then veh = true end end } { local ru = true function Ruoffer() if string.find(crawl.messages(4), "Ru believes") and ru then crawl.yesno("Ru offers sacrifice for you! (Y or N to confirm.)", false, false, true, true) ru = false end if string.find(crawl.messages(6), "Ru asks you to") or string.find(crawl.messages(6), "Ru will take longer") then ru = true end end } # zigmode { local zigmode = false function toggle_zigmode() zigmode = not zigmode if (zigmode) then crawl.setopt("use_animations = 0") crawl.setopt("show_more = false") crawl.setopt("view_delay = 0") crawl.setopt("travel_key_stop = false") crawl.setopt("explore_stop = 0") crawl.mpr("Zigmode is on.") else crawl.setopt("use_animations = beam, range, hp, monster_in_sight, pickup, monster, player") crawl.setopt("show_more = true") crawl.setopt("view_delay = 100") crawl.setopt("travel_key_stop = true") crawl.mpr("Zigmode is off.") end end } macros += M \{-270} ===toggle_zigmode # force more all { local forcemode = false function toggle_forcemode() forcemode = not forcemode if (forcemode) then crawl.setopt("force_more_message += comes? into view") crawl.mpr("Forcemode is on.") else crawl.setopt("force_more_message -= comes? into view") crawl.mpr("Forcmode is off.") end end } macros += M 0 ===toggle_forcemode