# ---------------------- CUSTOM SETTINGS START HERE --------------------------- # don't auto-explore over deep water travel_avoid_terrain = deep water # mini map size, [X] pixels per tile tile_map_pixels = 4 # no longer have to turn manual on for every starting character default_manual_training = true # display low HP warning when [X]% HP or below hp_warning = 25 # automatically butcher edible corpses upon standing on them # auto_butcher = true # char dump options note_hp_percent = 10 note_all_skill_levels = true # note_chat_message = true # font changes tile_font_crt_family = Lucida Console tile_font_stat_family = Lucida Console tile_font_msg_family = Lucida Console tile_font_lbl_family = Lucida Console # -------------------------- FORCE_MORE_MESSAGE ------------------------------ # force "more" when these happen # alias first more := force_more_message # only for manual exploring, otherwise it's too annoying #more += comes? into view # dangerous monsters in sight # corrupters, temporary or permanent more += (giant eyeball|shining eye|cacodemon|neqoxec|corrupter|wretched star).*into view # tormentors more += (curse toe|curse skull|fiend|tzitzimitl|tormentor|mummy priest|greater mummy).*into view # damnators more += (deep elf high priest|deep elf sorcerer|draconian scorcher|draconian zealot|hell sentinel|hellion).*into view # summoners and displacers more += (deep elf demonologist|doom hound|draconian shifter|guardian serpent|ironbrand convoker|shadow demon).*into view # just plain strong more += (ancient lich|caustic shrike|iron giant|juggernaut|orb of fire).*into view # nasty statuses more += (ancient zyme|death cob|death drake|entropy weaver|flayed ghost|ghost moth|moth of wrath|starcursed mass|vault warden|warmonger).*into view # uniques or pan lords, also Killer Klown, Orb Guardian and some others more += (?-i:[A-Z]).* comes? into view # dispel undead : if (you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Vampire") then more += (anubis guard|revenant).*into view : end # distortion weapons more += Space warps horribly around you more += Space bends around you more += hits you.*distortion more += warns you.*of distortion more += is wielding.*of distortion # holy wrath weapons : if (you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Vampire") then more += hits you.*holy wrath more += warns you.*of holy wrath more += is wielding.*of holy wrath : end # invisible ghost moth more += watched by something # hit by Airstrike while flying more += The air twists around and violently strikes you in flight # ironbrand convoker's delayed summon more += begins to recite a word of recall # teleported onto exact same tile more += Your surroundings flicker # manual gone more += You have finished your manual # transmutation spell starts to run out more += Your transformation is almost over # RMsl taken down more += You feel less protected from missiles # bad mutations! (some will have the same text for multiple levels) # berserk more += You feel a little pissed off more += You feel angry more += You feel extremely angry at everything! # blurry vision more += Your vision blurs # teleportitis more += You feel weirdly uncertain more += You feel even more weirdly uncertain # deformed body more += Your body twists and deforms # frail more += You feel frail # --spell power +wiz more += Your connection to magic feels subdued more += Your connection to magic feels more subdued more += Your connection to magic feels nearly dormant # -wiz ++spell power more += You feel less in control of your magic more += You feel your magical power running wild # no device heal (only lvl 2-3) more += Your system mostly rejects artificial healing more += Your system completely rejects artificial healing # low regen (only lvl 3) - text changed in trunk on 19th Sep '16 more += Your regeneration stops completely # hit by a catopblepas' petrifying cloud more += The blast of calcifying dust hits you # petrification setting in more += You are slowing down # Fainting level of hunger, this is for hungry ghosts more += You are fainting from starvation # entering a rune level in Pandemonium more += The mighty Pandemonium lord .* resides here # entering holy Pan more += The tension of great conflict fills the air! # ----------------------- ADDITIONAL NOTE MESSAGES --------------------------- # draconian color note_messages += Your scales start # monsters banished by the player; for the OpAK challenge, might leave it here note_messages += tear in reality # ------------------------ AUTOPICKUP EXCEPTIONS ----------------------------- ae := autopickup_exceptions # inclusions ae += scrolls? of (amnesia|silence) # ------------------ CONSTANT ABILITY AND SPELL SLOTS ------------------------ spell_slot ^= Regeneration:q spell_slot ^= Repel Missiles:w spell_slot ^= Summon Lightning Spire:f spell_slot ^= Apportation:a spell_slot ^= Portal Projectile:c spell_slot ^= Passage of Golubria:d item_slot ^= bread ration:d # ------------------- CONDITIONAL FORCE MORE MESSAGES ------------------------ # Taken from gammafunk's force_mores.lua and modified # Force more messages on certain monsters' appearance depending on the player's # current stats. Only monsters not already included in the constant setting # earlier in the .rc file are here. I hope it works, ha ha. { last_turn = you.turns() -- Conditions are in the fm_patterns array. For now only one condition -- per monster is allowed until (if) I get better at lua to modify -- the script further. Each array entry works as follows: -- pattern = monster name -- cond = attribute to check; behaviour is defined later on -- cutoff = if attribute's value is equal or higher, don't force more for these -- name = an identifier for the entry in the array fm_patterns = { -- early threats {pattern = "adder|gnoll", cond = "xl", cutoff = 5, name = "XL5"}, -- early poisonous threats -- {pattern = "worker ant|scorpion", cond = "xl", cutoff = 7, name = "XL7"), -- the frog of doom and a merry lizard {pattern = "spiny frog|komodo dragon", cond = "xl", cutoff = 12, name = "XL12"}, -- biggest lair threats {pattern = "death yak|dire elephant|black mamba|wolf spider|hydra", cond = "xl", cutoff = 15, name = "XL15"}, -- biggest orc threat {pattern = "orc warlord", cond = "xl", cutoff = 17, name = "XL17"}, -- no rF {pattern = "fire giant|balrug", cond = "rf", cutoff = 1, name = "rF1"}, -- no rC {pattern = "ice giant|white draconian|blizzard demon|azure jelly", cond = "rc", cutoff = 1, name = "rC1"}, -- no rElec {pattern = "spark wasp|titan", cond = "relec", cutoff = 1, name = "rE1"}, -- no rPois {pattern = "swamp drake|swamp dragon|green draconian|golden dragon", cond = "rpois", cutoff = 1, name = "rP1"}, -- no rCorr (boolean) {pattern = "rust devil|acid blob", cond = "rcorr", cutoff = 999, name = "rA1"}, -- low MR (MR not directly exposed to clua yet) -- {pattern = "basilisk|deep elf archer|bog body|faun|ogre mag", cond = "mr", cutoff = 40, name = "MR1"}, -- {pattern = "orc sorcerer|siren|satyr|great orb of eyes", cond = "mr", cutoff = 80, name = "MR2"}, -- {pattern = "merfolk avatar|vault sentinel|vampire knight|golden eye|wizard|sphinx", cond = "mr", cutoff = 120, name = "MR3"}, -- no rN {pattern = "deep elf death mag|eidolon", cond = "rn", cutoff = 1, name = "rN1"}, -- airstrike (boolean) {pattern = "wind drake|spriggan air mag", cond = "fly", cutoff = 999, name = "fly"}, -- HP {pattern = "annihilator", cond = "mhp", cutoff = 120, name = "HP3"} } -- end fm_patterns active_fm = {} -- Set to true to get a message when the fm change notify_fm = false 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 = "(" .. v.pattern .. ").*into view" local action = nil local fm_name = v.pattern if v.name then fm_name = v.name end if not v.cond and not active_fm[i] then action = "+" elseif v.cond == "xl" then if active_fm[i] and you.xl() >= v.cutoff then action = "-" elseif not active_fm[i] and you.xl() < v.cutoff then action = "+" end elseif v.cond == "rf" then if active_fm[i] and you.res_fire() >= v.cutoff then action = "-" elseif not active_fm[i] and you.res_fire() < v.cutoff then action = "+" end elseif v.cond == "rc" then if active_fm[i] and you.res_cold() >= v.cutoff then action = "-" elseif not active_fm[i] and you.res_cold() < v.cutoff then action = "+" end elseif v.cond == "relec" then if active_fm[i] and you.res_shock() >= v.cutoff then action = "-" elseif not active_fm[i] and you.res_shock() < v.cutoff then action = "+" end elseif v.cond == "rpois" then if active_fm[i] and you.res_poison() >= v.cutoff then action = "-" elseif not active_fm[i] and you.res_poison() < v.cutoff then action = "+" end elseif v.cond == "rcorr" then if active_fm[i] and you.res_corr() then action = "-" elseif not active_fm[i] and not you.res_corr() then action = "+" end elseif v.cond == "rn" then if active_fm[i] and you.res_draining() >= v.cutoff then action = "-" elseif not active_fm[i] and you.res_draining() < v.cutoff then action = "+" end elseif v.cond == "fly" then if active_fm[i] and not you.flying() then action = "-" elseif not active_fm[i] and you.flying() then action = "+" end elseif v.cond == "mhp" 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() -- -------------------- READY FUNCTION -------------------- -- function ready() force_mores() end }