default_manual_training = true autopickup_starting_ammo = true pickup_thrown = true explore_greedy = true explore_wall_bias = 1 autofight_stop = 70 autofight_caught = true show_more = false tile_window_width = 1500 tile_window_height = 1000 easy_confirm = all autofight_throw = false autofight_throw_nomove = true default_manual_training = true travel_delay = -1 travel_open_doors = open fail_severity_to_confirm = 0 view_delay = 100 mlist_min_height = 10 equip_bar = true animate_equip_bar = true msg_min_height = 7 msg_max_height = 20 autopickup = $?!+="/ tile_show_threat_levels = tough nasty autopickup_exceptions ^= macros += M \{-265} p o macros += M \{-266} \{6}@\{13} macros += M \{-267} \{6}@&&artifact\{13} macros += M z Z* macros += M \{-269} Za macros += M \{-270} Zb macros += M \{-271} Zc macros += M \{-272} Zd # Autofight\Explore BINDKEY = [p] CMD_AUTOFIGHT_NOMOVE # Transmuter spell_slot ^= Beastly Appendage:A spell_slot ^= Spider Form:a spell_slot ^= Ice Form:b spell_slot ^= Blade Hands:c # Just stopsrun flash_screen_message += Your transformation is almost over. ######################### # Aliases and Variables # ######################### # Set Alias menu := menu_colour # Clear defaults menu = # Variables (Worst to Best) $evil := red $negative := brown $danger := lightred $warning := yellow $boring := darkgrey $decent := white $good := lightblue $positive := green $verypositive := lightgreen $awesome := lightmagenta # Unusual Variables $mp := lightcyan $equipped := cyan $mutation := magenta ################## # Basic Settings # ################## # General Categories menu += $boring:(melded) menu += $boring:.*useless_item.* menu += $evil:.*evil_item.* menu += $danger:[^n]cursed menu += inventory:$danger:[^n]cursed menu += inventory:$equipped:.*equipped.* menu += $decent:.*artefact.* # Unidentified Items menu += $warning:^unidentified .*(jewellery|potion|scroll|wand).* menu += $good:^unidentified .*armour.*(embroidered|dyed|glowing|shiny|runed) menu += $good:^unidentified .*weapon.*(glowing|runed) ################# # Various Items # ################# # Amulets menu += $boring:amulet of inaccuracy menu += $good:amulet of (guardian spirit|stasis|warding) menu += $positive:amulet of (faith|rage|resist corrosion) menu += $verypositive:amulet of (clarity|regeneration|resist mutation|the gourmand) # Decks (keep warning as default in case of new decks) menu += $evil:deck of punishments menu += $warning:deck of (changes|destruction) menu += $decent:deck of cards menu += $good:deck of war menu += $positive:deck of (defence|summoning) menu += $verypositive:deck of escape menu += $awesome:deck of wonders menu += $warning:deck of # Evokables menu += blue:inert menu += $warning:disc of storms menu += $warning:tome of Destruction menu += $decent:box of beasts menu += $decent:lantern of shadows menu += $decent:stone of tremors menu += $good:fans? of gales menu += $good:lamps? of fire menu += $good:phials? of floods menu += $good:sack of spiders menu += $positive:phantom mirror menu += $mp:crystal ball of energy # Food menu += $evil:evil_eating menu += $danger:rot-inducing menu += $warning:poisonous menu += $boring:inedible menu += $good:bread ration menu += $good:meat ration menu += $good:preferred menu += $good:(corpse|chunk) menu += $mutation:mutagenic # Potions menu += $danger:potions? of berserk menu += $decent:potions? of (flight|lignification|restore) menu += $good:potions? of (agility|brilliance|invisibility|might|resistance) menu += $positive:potions? of curing menu += $verypositive:potions? of (haste|heal wounds) menu += $awesome:potions? of (beneficial|cancellation|cure mutation|experience|gain) menu += $mp:potions? of magic menu += $mutation:potions? of mutation # Rings menu += $negative:ring of \-.*(dexterity|evasion|intelligence|protection|slaying|strength) menu += $negative:ring of loudness menu += $warning:ring of (fire|ice) menu += $decent:ring of flight menu += $good:ring of (.*evasion|invisibility|magical power|.*protection|stealth|sustain abilities|wizardry) menu += $positive:ring of (poison resistance|protection from cold|protection from fire|protection from magic|see invisible) menu += $verypositive:ring of (regeneration|.*slaying) menu += $awesome:ring of teleport # Rods menu += $verypositive:rod # Scrolls menu += $danger:scrolls? of torment menu += $boring:scrolls? of (noise|random) menu += $decent:scrolls? of (amnesia|holy word|identify|remove curse) menu += $good:scrolls? of (fear|fog|immolation|silence|summoning|vulnerability) menu += $positive:scrolls? of (brand|enchant|magic mapping|recharging) menu += $verypositive:scrolls? of acquirement menu += $awesome:scrolls? of (blinking|teleportation) # Staves menu += $mp:staff of (energy|Wucad Mu) menu += $positive:[^r]staff of # Wands menu += $boring:wand of (flame|frost|magic darts|random effects) menu += $decent:wand of (confusion|enslavement|paralysis|polymorph|slowing) menu += $good:wand of (cold|digging|disintegration|draining) menu += $good:wand of (fire|fireball|invisibility|lightning) menu += $positive:wand of hasting menu += $verypositive:wand of heal wounds menu += $awesome:wand of teleportation # Other menu += $negative:shield of the gong menu += $good:throwing net menu += $awesome:.*misc.*rune( of Zot)? menu += $awesome:.*orb.*Zot menu += $awesome:manual # Ask HilariousDeathArtist to fix things # To use this you must add have a call to AnnounceDamage() in the ready() function like below: # This is important if you override this ready() function < function ready() AnnounceDamage() end > ## Auto set training { -- Open skills menu at start of runs local is_gnoll = you.race() == "Gnoll" local need_skills_opened = not is_gnoll local userRace = { ["Hill Orc"] = "HO", ["Minotaur"] = "Mi", ["Merfolk"] = "Me", ["Gargoyle"] = "Ga", ["Palentoga"] = "Pa", ["Draconian"] = "Dr", ["Troll"] = "Tr", ["Ghoul"] = "Gh", ["Gnoll"] = "Gn", ["Human"] = "Hu", ["Kobald"] = "Ko", ["Demonspawn"] = "Ds", ["Djinni"] = "Dj", ["Spriggan"] = "Sp", ["Tengu"] = "Te", ["Deep Elf"] = "DE", ["Ogre"] = "Og", ["Barachi"] = "Br", ["Vine Stalker"] = "VS", ["Vampire"] = "Va", ["Demigod"] = "Dg", ["Formicid"] = "Fo", ["Naga"] = "Na", ["Octopode"] = "Op", ["Felid"] = "Fe", ["Meteoran"] = "Me", ["Mummy"] = "Mu"} local userClass = { ["Fighter"] = "Fi", ["Gladiator"] = "Gl", ["Monk"] = "Mo", ["Hunter"] = "Hu", ["Brigand"] = "Br", ["Artificer"] = "Ar", ["Wanderer"] = "Wa", ["Delver"] = "De", ["Berserker"] = "Be", ["Abyssal Knight"] = "AK", ["Cinder Acolyte"] = "CA", ["Chaos Knight"] = "CK", ["Transmuter"] = "Tr", ["Warper"] = "Wr", ["Arcane Marksman"] = "AM", ["Enchanter"] = "En", ["Hedge Wizard"] = "Wz", ["Conjurer"] = "Cj", ["Summoner"] = "Su", ["Necromancer"] = "Ne", ["Fire Elementalist"] = "FE", ["Ice Elementalist"] = "IE", ["Air Elementalist"] = "AE", ["Earth Elementalist"] = "EE", ["Venom Mage"] = "VM"} local trainKey = nil local trainRace = userRace[you.race()] local trainClass = userClass[you.class()] if trainRace ~= nil and trainClass ~= nil then trainKey = trainRace .. trainClass end local TrainSets = {} -- Spriggan Brigand TrainSets["SpBr"] = { ["stealth"] = {12, 0}, ["short blades"] = {10, 2}, ["fighting"] = {10, 1}, ["dodging"] = {5, 1}, ["armour"] = {8, 0}, ["ranged weapons"] = {12, 0}, ["throwing"] = {12, 0}, ["shields"] = {7.2, 0}} -- Spriggan Hunter TrainSets["SpHu"] = { ["stealth"] = {12, 0}, ["bows"] = {16, 2}, ["fighting"] = {5, 1}, ["dodging"] = {12, 0}, ["armour"] = {4, 0}, ["shields"] = {7.2, 0}} -- Octopode Venom Mage TrainSets["OpVM"] = { ["dodging"] = {5,1}, ["spellcasting"] = {5,1}, ["transmutations"] = {3,1}, ["poison magic"] = {8,2}, ["stealth"] = {12,1}} -- Troll Warper TrainSets["TrWr"] = { ["throwing"] = {0, 0}, ["translocations"] = {10, 2}, ["spellcasting"] = {3, 1}, ["shields"] = {7.2, 0}, ["armour"] = {8, 0}} TrainSets["Dj"] = { ["spellcasting"] = {0,2}, ["stealth"] = {0, 0}, ["dodging"] = {10, 1}} local trainSet = TrainSets[trainKey] or TrainSets[trainRace] or TrainSets[trainClass] if trainSet ~= nil then if you.turns() == 0 then crawl.mpr(" Auto Training ") for k, v in pairs(trainSet) do crawl.mpr(" Setting " .. k .. " at " .. v[1] .. "(" .. v[2] .. ")") you.set_training_target(k, v[1]) you.train_skill(k, v[2]) end need_skills_opened = false else return end end if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end } ############### # Damage Calc # ############### < 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 if hp_difference > (max_hp * 0.20) then crawl.mpr("MASSIVE DAMAGE!!") end end --On gaining more than 1 health if (current_hp > previous_hp) then --Removes the negative sign local health_inturn = (0 - hp_difference) if (health_inturn > 1) and not (current_hp == max_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") end end if (current_hp == max_hp) then crawl.mpr("Health restored: " .. current_hp .. "") end end --On gaining more than 1 magic if (current_mp > previous_mp) then --Removes the negative sign local mp_inturn = (0 - mp_difference) if (mp_inturn > 1) and not (current_mp == max_mp) then if current_mp < (max_mp * 0.25) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") elseif current_mp < (max_mp * 0.50) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") else crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") end end if (current_mp == max_mp) then crawl.mpr("MP restored: " .. current_mp .. "") end end --On losing magic if current_mp < previous_mp then if current_mp <= (max_mp / 5) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") elseif current_mp <= (max_mp / 2) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") else crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") 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 > # For seeded runs #game_seed = 2986116096646105071 #game_seed = 13213751892009936783