############## # Meatsprint # ############## # channel.god = mute # channel.intrinsic_gain = mute # heap_brand = none # default_autopickup = false # { # function choose_stat_gain() # crawl.sendkeys('d') # end # } ############## # Autopickup # ############## pickup_mode = multi autopickup = $?!:"/%|\ ae := autopickup_exceptions ae = ae += useless_item ae += (amulet|ring|staff|rod|tome) of ae += scrolls? of (fear|immolation|torment|noise|curse) ae += potions? of (invisibility|flight|.*blood) ae += potions? of (mutation|paralysis|.*poison|slowing|decay|degeneration) ae += wand of (confusion|enslavement|flame|frost|invisibility) ae += wand of (magic darts|random effects|slowing) ae += <(phial|lamp|stone|fan) of : local branch = you.branch() : if branch == "Pan" or branch:find("Zig") then autopickup = $ ae += Cast which spell?') crawl.flush_prev_message() crawl.process_keys(cmd) end function cast_spell() generic_cast_spell('z') end function force_cast_spell() generic_cast_spell('Z') end } ################### # Message colours # ################### $inedible := darkgrey $evil := red $preferred := yellow $rot-inducing := lightred $mutagenic := magenta $dangerous := magenta $poisonous := lightgreen $contaminated := brown ### standard colours to be used for message highlighting $danger := lightred $warning := yellow $boring := darkgrey $item_dmg := $danger msc := message_colour msc = menu := menu_colour menu = # Multi-turn channel.multiturn = mute # Allies 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 away msc += mute:you swap places msc += mute:your.*(looks stronger|shudders|resists) msc += mute:(stumbles backwards|holds.*ground) msc += mute:(something|your).*(misses|does no damage) msc += mute:your.*(blinks|safely over|gestures) msc += mute:(phases out.*|misses) (your|something).* msc += mute:your.*but does no damage msc += mute:your.*(picks up|drops) msc += mute:your.*basks in the mutagenic energy msc += mute:constricts?.*no damage # Prayer channel.pray += mute # Jiyva : if you.god() == "Jiyva" then msc += mute:slurping|squelching msc += mute:splits in two msc += mute:You feel.*(less hungry|power returning|better) : end # Interface 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 msc += mute:melds.* msc += mute:Switching to.* msc += mute:Switching back.* # Other msc += mute:This raw flesh tastes terrible msc += mute:melds into your body msc += mute:begins to bleed from.*wounds msc += mute:writhes in agony as.*flesh msc += mute:An air elemental.*itself.*the air 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 # 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:Forgetting.* will destroy the book msc += $danger:The blast of calcifying dust hits you msc += $danger:You are engulfed in calcifying dust msc += $danger:is moving more slowly msc += $danger:^It .* 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 += $item_dmg:acid corrodes msc += $item_dmg:catch(es)? fire msc += $item_dmg:freezes? and shatters? msc += $item_dmg:covered with spores msc += $item_dmg:devours some of your food msc += $item_dmg:rots? 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.*oriflamme msc += $warning:oriflamme 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: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 menu += inventory:white:\w \+\s menu += inventory:white:\w \#\s menu += darkgrey:(melded) menu += darkgrey:.*useless_item.* menu += red:.*evil_item.* menu += lightred: cursed menu += inventory:lightgreen:.*equipped.* menu += lightmagenta:.*misc.*rune( of Zot)? menu += lightmagenta:.*orb.*Zot menu += white:.*artefact.* menu += lightblue:^unidentified .*(potion|scroll|wand|jewellery).* menu += lightblue:^unidentified .*weapon.*(runed|glowing) menu += lightblue:^unidentified .*armour.*(runed|glowing) menu += lightblue:^unidentified .*armour.*(embroidered|shiny|dyed) menu += yellow:heal wounds # Food menu += $inedible:.*inedible.* menu += $evil:.*evil_eating.* menu += $rot-inducing:.*rot-inducing.* menu += $mutagenic:.*mutagenic.* menu += $poisonous:.*poisonous.* menu += $contaminated:.*contaminated.* ######### # Items # ######### item := item_glyph item += potion:lightgrey item += (hasting|teleportation|heal wounds|blinking|speed|magic):yellow item += useless.*(potion|scroll):darkgrey item += unidentified.*(potion|scroll).*:lightblue #################### # Autoinscriptions # #################### autoinscribe += (bad|dangerous)_item.*potion:!q autoinscribe += (bad|dangerous)_item.*scroll:!r autoinscribe += of faith:!P autoinscribe += rod of:!a autoinscribe += lightning rod:!a autoinscribe += manual of:!d autoinscribe += staff of (Wucad Mu|energy|wizardry|power):!a autoinscribe += ambrosia:!e autoinscribe += wands? of (heal wounds|hasting|teleportation):!d : if you.race() == "Vampire" then autoinscribe += of blood:@*1 autoinscribe += of coagulated blood:@*2 autoinscribe += chunks? of:@*3 : else autoinscribe += chunks? of:@*1 : end : if you.god() == "Fedhas" then autoinscribe += fruit:!e : end ############### # Keybindings # ############### # Useless commands bindkey = [R] CMD_NO_CMD_DEFAULT bindkey = [T] CMD_NO_CMD_DEFAULT bindkey = [O] CMD_NO_CMD_DEFAULT bindkey = [|] CMD_NO_CMD_DEFAULT bindkey = [D] 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 # Targeting bindkey = [\] CMD_TARGET_OBJ_CYCLE_FORWARD bindkey = [^I] CMD_TARGET_CYCLE_FORWARD # Saving bindkey = [S] CMD_SAVE_GAME_NOW ######### # Notes # ######### dump_message_count = 30 dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += screenshot,monlist,messages,action_counts,vaults,notes,kills note_hp_percent = 10 note_all_skill_levels = true ################# # Miscellaneous # ################# char_set = unicode show_player_species = true # Features cset_unicode = item_gold:£ cset_unicode = cloud:# feature = explore horizon {.,,green} feature = (closed|runed|sealed) door {+,,} # Glyph todo: steal st_'s 'p'eople # # Redefined glyphs: Q (winged hybrids), g (dwarves, goblins), # q (classed draconians), B (insects), y (flying insects), # W (incorporeal undead), Z (derived undead) # # Free glyphs: (, 6, I, p, k mon := mon_glyph # Winged hybrids mon = hippogriff:Q mon = griffon:Q mon = sphinx:Q mon = tengu:Q mon = tengu conjurer:Q mon = tengu reaver:Q mon = tengu reaver:Q mon = Sojobo:Q mon = shedu:Q # Dwarves mon = Wiglaf:lightcyan g mon = Jorgrun:lightmagenta g mon = dwarf:lightgreen g mon = deep dwarf:lightblue g mon = deep dwarf berserker:lightred g mon = deep dwarf death knight:green g # Draconians mon = red draconian:lightred mon = draconian caller:q mon = draconian monk:q mon = draconian zealot:q mon = draconian shifter:q mon = draconian annihilator:q mon = draconian knight:q mon = draconian scorcher:q # Insects mon = giant cockroach:B mon = boring beetle:yellow B mon = giant mite:B mon = giant centipede:B mon = demonic crawler:B # Flying insects mon = queen bee:lightgreen y mon = killer bee:y mon = giant firefly:y mon = vampire mosquito:lightgrey y # Mimics mon = inept item mimic:red x mon = item mimic:cyan x mon = ravenous item mimic:lightmagenta x mon = inept feature mimic:red x mon = feature mimic:cyan x mon = ravenous feature mimic:lightmagenta x # Incorporeal undead mon = phantom:W mon = hungry ghost:W mon = flayed ghost:W mon = shadow:magenta W mon = shadow wraith:lightmagenta W mon = silent spectre:W mon = wraith:lightgrey W mon = eidolon:brown W mon = player ghost:W # Derived undead mon = small zombie:brown Z mon = small skeleton:lightgrey Z mon = small simulacrum:lightblue Z mon = large zombie:yellow Z mon = large skeleton:white Z mon = large simulacrum:lightcyan Z mon = spectral thing:green Z # Others mon = ice beast:ice Y mon = sky beast:mutagenic Y mon = boggart:magenta i mon = dancing weapon:7 mon = spectral weapon:7 mon = ancient champion:lightmagenta z mon = greater mummy:lightmagenta M mon = ancient lich:lightmagenta L mon = hellion:lightred 2 # Sensed monsters mon = tough sensed monster:lightred mon = nasty sensed monster:red ################## # Lua autopickup # ################## # Disabled/unfinished { local function autopickup(it, name) local class = it.class(true) local branch = you.branch() -- For multi-Zig runs. local zigscumming = false if it.is_useless then return false end -- For Pan runs. if branch == "Pandemonium" or branch:find("Zig") then if class == "wand" and not zigscumming then if name:find("heal wounds") or name:find("hasting") or name:find("teleportation") then return true end end if class == "scroll" then if name:find("acquirement") or name:find("identify") or name:find("magic mapping") then return true end if not zigscumming and (name:find("amnesia") or name:find("blinking") or name:find("enchant armour") or name:find("enchant weapon") or name:find("fog") or name:find("holy word") or name:find("recharging") or name:find("remove curse") or name:find("teleportation")) then return true end end if class == "jewellery" and not it.identified then return true end if class == "potion" then if name:find("cure mutation") or name:find("experience") or name:find("gain") or name:find("magic") or name:find("restore abilities") then return true end if not zigscumming and (name:find("curing") or name:find("heal wounds") or name:find("porridge")) then return true end end if class == "food" then if name:find("ambrosia") or name:find("royal jelly") then return true end end -- For normal gameplay. elseif not zigscumming then -- Armour autopickup by rwbarton. if class == "armour" then local good_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots"} st, _ = it.subtype() if good_slots[st] ~= nil and items.equipped_at(good_slots[st]) == nil then return true end end if class == "wand" then if name:find("confusion") or name:find("enslavement") or name:find("flame") or name:find("frost") or name:find("magic dart") or name:find("random effects") or name:find("slowing") then return false else return true end end if class == "scroll" then if name:find("detect curse") or name:find("fear") or name:find("torment") or name:find("unholy creation") or name:find("vorpalise weapon") or name:find("vulnerability") then return false else return true end end if class == "jewellery" and not it.identified then return true end if class == "potion" then if name:find("blood") and you.race() ~= "Vampire" or name:find("levitation") or name:find("water") then return false else return true end end if class == "book" then if name:find("tome of Destruction") then return false else return true end end if class == "staff" and not it.identified then return true end if class == "food" then if name:find("ambrosia") or name:find("honeycomb") or name:find("ration") or name:find("royal jelly") then return true end end end if you.god() == "Nemelex Xobeh" and class == "miscellaneous" and name:find("deck") then return true end return false end -- add_autopickup_func(autopickup) } :function can_eat_chunks() : if you.race()=="Spriggan" then return end : if you.gourmand() or you.race()=="Kobold" or you.race()=="Felid" then : return you.hunger()<6 : end : return you.hunger()<4 :end :function edible_corpse(item) : if not can_eat_chunks() then return end : if food.rotting(item) and not you.saprovorous() then return end : if food.dangerous(item) then return end : return string.find(item.name(),"corpse") :end :function over_corpse() : for item_under_you in iter.invent_iterator:new(you.floor_items()) do : if string.find(item_under_you.name(),"corpse") then return true end : end :end :function over_edible_corpse() : for item_under_you in iter.invent_iterator:new(you.floor_items()) do : if edible_corpse(item_under_you) then return true end : end :end :function walk_over_edible_corpses(item) : return edible_corpse(item) and not over_edible_corpse() :end :function ready() : if not default_options then : default_options=options.runrest_stop_message : crawl.setopt("confirm_butcher=never") : crawl.setopt("auto_eat_chunks=true") : end : if can_eat_chunks() then : crawl.setopt("runrest_stop_message+=corpse") : else : crawl.setopt("runrest_stop_message="..default_options) : end : if you.feel_safe() and over_edible_corpse() then : crawl.sendkeys("c") : crawl.process_command() : end :end :add_autopickup_func(walk_over_edible_corpses)