# RC edited by Alipheese from xtahua # https://github.com/hexophile/crawl # Thanks to pipel for all help with this RC # Many thanks to bart for RC # Thanks to Pikaro and Lasty for their RC files # Thanks to Vidiiot for speedrunning part # https://github.com/crawl/crawl/blob/master/crawl-ref/docs/options_guide.txt # You can find there 95% of this pretty primitive RC ##################### ##################### clua main body section ##################### include = advanced_optioneering.txt bindkey = [s] CMD_LUA_CONSOLE # # Please be aware where do you place functions calls - always after declaration. # Function ready() can stop working if you mess up one function, most of errors # will show up in crawl message log, but there can be 'errors' that won't be # error for interpreter at all, like calling function BEFORE declaration. # # Please note in function("regex") size of letters matters. # { --##################### Send command to crawl function Cmd(cmd) crawl.setopt(cmd) end --##################### Print message to log function Msg(log_msg) crawl.mpr(log_msg) end --##################### Wielded item - bool function IsWielded() return items.equipped_at("Weapon") end --##################### Wielded item function IsWielded(item) if items.equipped_at("Weapon") then return string.find(items.equipped_at("Weapon").name(), item) else return false end end --##################### Speedrunning mode local SpeedMode = false function SpeedrunMode() if IsWielded("meat ration") or IsWielded("bread ration") then if not SpeedMode then SpeedMode = true Cmd("force_more_message += .*into view") else return end else if SpeedMode then SpeedMode = false Cmd("force_more_message -= .*into view") else return end end end --##################### If for all untiled races except naga. They're ugly. if you.race() ~= "Naga" then tile_show_player_species = true end } # mechanics, travel, rest, chunk, lua, butcher, misc, damage, eating, tile, ##################### ##################### End of clua main body section ##################### ##################### ##################### Player status information ##################### { playerMainSkill = "" player = { XL = 0, god = "", HP = 0, baseHP = 0, MP = 0, baseMP = 0, hunger = 0, gold = 0, turns = 0 } resist = { rF = 0, rC = 0, rN = 0, rPois = 0, rElec = 0, rCorr = 0, rMut = 0, MR = 0 } power = { sInv = 0, sustAt = 0, clar = 0, gourm = 0, spirit = 0, ward = 0, stasis = 0, stealth = 0 } attr = { str = 0, int = 0, dex = 0 } stat = { fly = 0, rage = 0, conf = 0, para = 0, caught = 0, fast = 0, slow = 0, exh = 0, tele = 0, root = 0, pois = 0, corr = 0, inv = 0, mesm = 0, onFire = 0, petr = 0, sil = 0, regen = 0, might = 0, agile = 0, brill = 0, sick = 0, contam = 0 } earlierPlayer = { XL = 0, god = "", HP = 0, baseHP = 0, MP = 0, baseMP = 0, hunger = 0, gold = 0, turns = 0 } function PlayerUpdate() player["XL"] = you.xl() player["god"] = you.god() player["baseHP"] = you.hp() player["baseMP"] = you.base_mp() player["hunger"] = you.hunger() player["gold"] = you.gold() player["turns"] = you.turns() end function HealthUpdate() player["HP"], player["baseHP"] = you.hp() end function AnnounceHP( hp, maxhp ) if hp > 0.90 * maxhp then Msg("You have now: "..hp.."/"..maxhp.." HP.") elseif hp > 0.60 * maxhp then Msg("You have now: "..hp.."/"..maxhp.." HP.") elseif hp > 0.30 * maxhp then Msg("You have now: "..hp.."/"..maxhp.." HP.") elseif hp > 0.15 * maxhp then Msg("You have now: "..hp.."/"..maxhp.." HP.") else Msg("You have now: "..hp.."/"..maxhp.." HP.") end end function AnnounceDiff() local modifiedHP = 0 if earlierPlayer["baseHP"] > player["baseHP"] then earlierPlayer["baseHP"] = player["baseHP"] modifiedHP = 0 elseif earlierPlayer["baseHP"] < player["baseHP"] then modifiedHP = player["baseHP"] - earlierPlayer["baseHP"] Msg("You got additional "..modifiedHP.." HP.") end -- There is thing with this, when you start the game you will get message about additional HP -- equal your base HP. This can be solved by placing earlierPlayer["baseHP"] = player["baseHP"] -- before ready() loop. I like it, so if you find this annoying, fix it by yourself. :) (same for HP) local HP = 0 if earlierPlayer["HP"] < player["HP"]-1 then HP = player["HP"] - earlierPlayer["HP"] Msg("Restored "..HP.." HP.") AnnounceHP( player["HP"], player["baseHP"] ) elseif earlierPlayer["HP"] > player["HP"] then HP = earlierPlayer["HP"]-player["HP"] if HP > 0.20 * player["baseHP"] and HP > 5 and modifiedHP == 0 then Msg("!MASSIVE DAMAGE! YOU LOST "..HP.." HP!") else Msg("You lost "..HP.." HP.") end AnnounceHP( player["HP"], player["baseHP"] ) end end function HealthStatement() HealthUpdate() AnnounceDiff() earlierPlayer["HP"] = player["HP"] earlierPlayer["baseHP"] = player["baseHP"] end function ResistUpdate() resist["rF"] = you.res_fire() resist["rC"] = you.res_cold() resist["rN"] = you.res_draining() resist["rPois"] = you.res_poison() resist["rCorr"] = you.res_corr() resist["rMut"] = you.res_mutation() end function PowerUpdate() power["sInv"] = you.see_invisible() power["gourm"] = you.gourmand() power["spirit"] = you.spirit_shield() --help! power["clar"] = you.???() --halp! power["ward"] = you.???() -- ;-; power["stasis"] = you.???() --helpz power["stealth"] = you.???() end function AttributesUpdate() attr["str"] = you.strength() attr["int"] = you.intelligence() attr["dex"] = you.dexterity() end function StatusUpdate() stat["fly"] = you.flying() stat["rage"] = you.berserk() stat["conf"] = you.confused() stat["para"] = you.paralysed() stat["caught"] = you.caught() stat["fast"] = you.hasted() stat["slow"] = you.slowed() stat["exh"] = you.exhausted() stat["tele"] = you.teleporting() stat["root"] = you.rooted() stat["pois"] = you.poisoned() stat["corr"] = you.corrosion() stat["inv"] = you.invisible() stat["mesm"] = you.mesmerised() stat["onFire"] = you.on_fire() stat["petr"] = you.petrifying() stat["sil"] = you.silencing() stat["regen"] = you.regenerating() stat["might"] = you.mighty() stat["agile"] = you.agile() stat["brill"] = you.brilliant() stat["sick"] = you.sick() stat["contam"] = you.contaminated() end } Tags: status, resists, player, character, ##################### ##################### End of player status information ##################### ##################### ##################### Colouring ##################### # Definitions of colours $bad := red $verybad := lightred $dangerous := magneta $helpful := brown $artefact := yellow $useless := darkgrey $decent := white $good := green $verygood := lightgreen $magic := lightblue $important := cyan $survival := lightcyan $unknown := lightmagneta menu := menu_colour menu = menu += $useless:(melded) menu += $bad:.*evil_item.* menu += $verybad:[^n] cursed.* menu += inventory:$verybad:[^n] cursed.* menu += inventory:$important:.*equipped.* menu += $useless:.*useless_item.* menu += $artefact:.*artefact.* menu += $useless:amulet of inaccuracy menu += $magic:amulet of (guardian spirit|stasis|warding) menu += $good:amulet of (faith|rage|resist corrosion) menu += $verygood:amulet of (clarity|regeneration|resist mutation|the gourmand) menu += $good:\+.*(buckler|shield|mail|armour|robe|hat|helmet) menu += $magic:.*(runed|dyed|shiny|glowing|enchanted).*(armour|shield|buckler|robe|hat|helmet).* menu += $magic:.*(runed|dyed|shiny|glowing|enchanted).*(sword|dagger|rapier|axe|spear|bardiche|glaive|trident|bow|crossbow|sling).* menu += $useless:inert menu += $survival:disc of storms menu += $dangerous:tome of Destruction menu += $magic:box of beasts menu += $useless:lantern of shadows menu += $helpful:stone of tremors menu += $survival:fan of gales menu += $helpful:lamp of fire menu += $helpful:phial of floods menu += $magic:sack of spiders menu += $helpful:phantom mirror menu += $magic:crystal ball of energy menu += $bad:evil_eating menu += $dangerous:rot-inducing menu += $dangerous:poisonous menu += $useless:inedible menu += $good:(bread ration|meat ration) menu += $good:preferred menu += $helpful:(corpse|chunk) menu += $dangerous:mutagenic menu += $dangerous:potions? of (berserk|mutation) menu += $good:potions? of (flight|restore) menu += $helpful:potions? of (agility|brilliance|invisibility|resistance) menu += $verygood:potions? of curing menu += $survival:potions? of (haste|heal wounds|cancellation|might) menu += $important:potions? of (beneficial|cure mutation|experience|gain) menu += $magic:potions? of magic # XL depend: lignification menu += $bad:scrolls? of torment menu += $dangerous:scrolls? of (noise|random|immolation) menu += $helpful:scrolls? of (amnesia|holy word|identify|remove curse) menu += $good:scrolls? of (silence|summoning|vulnerability) menu += $verygood:scrolls? of (brand|enchant|magic mapping|recharging) menu += $survival:scrolls? of (blinking|teleportation|fog|acquirement|fear) menu += $useless:wand of (flame|frost|magic darts|random effects) menu += $helpful:wand of (confusion|enslavement|paralysis|polymorph|slowing) menu += $good:wand of (digging|disintegration|draining) menu += $verygood:wand of (cold|fire|fireball|lightning) menu += $survival:wand of (teleportation|invisibility|heal wounds|hasting) menu += $verybad:ring of \-.*(dexterity|evasion|intelligence|protection|slaying|strength) menu += $helpful:ring of (fire|ice) menu += $useless:ring of (flight|loudness) menu += $good:ring of (.*evasion|invisibility|magical power|.*protection|stealth|sustain abilities|wizardry) menu += $verygood:ring of (poison resistance|protection from cold|protection from fire|protection from magic|see invisible) menu += $important:ring of (teleport|.*slaying|sustain abilities) ##################### XL depend colouring : if you.xl() >= 22 then menu += $helpful:potions? of (lignification) : else menu += $survival:potions? of (lignification) : end ##################### Glyph colouring (console/log) glyph := item_glyph glyph = glyph += $bad:.*evil_item.* glyph += $verybad:[^n] cursed.* glyph += inventory:$verybad:[^n] cursed.* glyph += inventory:$important:.*equipped.* glyph += $useless:.*useless_item.* glyph += $artefact:.*artefact.* glyph += $useless:amulet of inaccuracy glyph += $magic:amulet of (guardian spirit|stasis|warding) glyph += $good:amulet of (faith|rage|resist corrosion) glyph += $verygood:amulet of (clarity|regeneration|resist mutation|the gourmand) glyph += $good:\+.*(buckler|shield|mail|armour|robe|hat|helmet) glyph += $magic:.*(runed|dyed|shiny|glowing|enchanted).*(armour|weapon|shield).* glyph += $survival:disc of storms glyph += $dangerous:tome of Destruction glyph += $magic:box of beasts glyph += $useless:lantern of shadows glyph += $helpful:stone of tremors glyph += $survival:fan of gales glyph += $helpful:lamp of fire glyph += $helpful:phial of floods glyph += $magic:sack of spiders glyph += $helpful:phantom mirror glyph += $magic:crystal ball of energy glyph += $bad:evil_eating glyph += $dangerous:rot-inducing glyph += $dangerous:poisonous glyph += $useless:inedible glyph += $good:(bread ration|meat ration) glyph += $good:preferred glyph += $helpful:(corpse|chunk) glyph += $dangerous:mutagenic glyph += $dangerous:potions? of (berserk|mutation) glyph += $good:potions? of (flight|restore) glyph += $helpful:potions? of (agility|brilliance|invisibility|resistance) glyph += $verygood:potions? of curing glyph += $survival:potions? of (haste|heal wounds|cancellation|might) glyph += $important:potions? of (beneficial|cure mutation|experience|gain) glyph += $magic:potions? of magic glyph += $bad:scrolls? of torment glyph += $dangerous:scrolls? of (noise|random|immolation) glyph += $helpful:scrolls? of (amnesia|holy word|identify|remove curse) glyph += $good:scrolls? of (silence|summoning|vulnerability) glyph += $verygood:scrolls? of (brand|enchant|magic mapping|recharging) glyph += $survival:scrolls? of (blinking|teleportation|fog|acquirement|fear) glyph += $useless:wand of (flame|frost|magic darts|random effects) glyph += $helpful:wand of (confusion|enslavement|paralysis|polymorph|slowing) glyph += $good:wand of (digging|disintegration|draining) glyph += $verygood:wand of (cold|fire|fireball|lightning) glyph += $survival:wand of (teleportation|invisibility|heal wounds|hasting) glyph += $verybad:ring of \-.*(dexterity|evasion|intelligence|protection|slaying|strength) glyph += $helpful:ring of (fire|ice) glyph += $useless:ring of (flight|loudness) glyph += $good:ring of (.*evasion|invisibility|magical power|.*protection|stealth|sustain abilities|wizardry) glyph += $verygood:ring of (poison resistance|protection from cold|protection from fire|protection from magic|see invisible) glyph += $important:ring of (teleport|.*slaying|sustain abilities) ##################### Stats colouring (numbers) status_caption_colour = green hp_colour = 100:lightgreen, 90:green, 60:yellow, 30:lightred, 15:red stat_colour = 125:white, 50:lightgreen, 14:green, 9:yellow, 6:lightred, 3:red mp_colour = 100:lightcyan, 85:cyan, 60:lightblue, 30:blue, 15:red # Tags: stats, colours, colouring, menu, glyphs, hp, mp, health, mana, ##################### ##################### End of colouring ##################### ##################### ##################### Autoinscription ##################### # Great thanks to bart for his/her RC and/or true author of this part. ai := autoinscribe autoinscribe_cursed = false ai += bad_item.*potion:!q ai += potion.*mutation:!q ai += wand of heal wounds:!V ai += wand of teleportation:!V ai += wand of haste:!V ai += wand of invisibility:!V ai += trishula:!d ai += staff of air:rElec ai += staff of cold:rC+ ai += staff of death:rN+ ai += staff of energy:channel ai += staff of fire:rF+ ai += staff of poison:rPois ai += staff of power:MP+15 ai += staff of wizardry:Wiz+ ai += fire dragon (armour|hide):rF++ rC- ai += gold dragon (armour|hide):rC+ rF+ rPois ai += ice dragon (armour|hide):rC++ rF- ai += mottled dragon (armour|hide):rSticky ai += pearl dragon (armour|hide):rN+ ai += quicksilver dragon armour:MR+ ai += shadow dragon (armour|hide):Stlth++++ ai += steam dragon (armour|hide):rSteam ai += storm dragon (armour|hide):rElec ai += swamp dragon (armour|hide):rPois ai += troll (hide|leather armour):regen ai += (leather armour|mail|plate armour|robe|skin) of cold resistance:rC+ ai += (leather armour|mail|plate armour|robe|skin) of fire resistance:rF+ ai += (leather armour|mail|plate armour|robe) of magic resistance:MR+ ai += (leather armour|mail|plate armour|robe) of positive energy:rN+ ai += (leather armour|mail|plate armour) of poison resistance:rPois ai += troll leather armour of cold resistance:regen rC+ ai += troll leather armour of fire resistance:regen rF+ ai += plate armour of ponderousness:Speed- ai += robe of resistance:rC+ rF+ ai += robe of the archmagi:Spellpower+ ai += (barding|boots|buckler|cloak|gloves|hat|helmet|shield) of cold resistance:rC+ ai += (barding|boots|buckler|cloak|gloves|hat|helmet|shield) of fire resistance:rF+ ai += (barding|boots) of flight:Fly ai += (barding|boots) of stealth:Stlth+ ai += (barding|boots) of running:Speed+ ai += (barding|boots) of jumping:+Jump ai += (buckler|cloak|shield) of poison resistance:rPois ai += (buckler|shield) of positive energy:rN+ ai += (buckler|shield) of protection:AC+3 ai += (buckler|shield) of reflection:Reflect ai += (buckler|shield) of resistance:rC+, rF+ ai += (cloak|hat|helmet) of magic resistance:MR+ ai += (hat|helmet) of intelligence:Int+3 ai += (hat|helmet) of see invisible:SInv ai += cloak of darkness:+Inv ai += gloves of strength:Str+3 ai += gloves of dexterity:Dex+3 ai += gloves of archery:RNG Slay+4 ai += ring of fire:rF+ rC- ai += ring of flight:+Fly ai += ring of ice:rC+ rF- ai += ring of invisibility:+Inv ai += ring of loudness:Stlth- ai += ring of magical power:MP+9 ai += ring of poison resistance:rPois ai += ring of positive energy:rN+ ai += ring of protection from cold:rC+ ai += ring of protection from fire:rF+ ai += ring of protection from magic:MR+ ai += ring of see invisible:SInv ai += ring of stealth:Stlth+ ai += ring of sustain abilities:SustAb ai += ring of teleportation:+/*tele ai += ring of wizardry:Wiz+ ai += amulet of clarity:Clar ai += amulet of faith:Faith ai += amulet of guardian spirit:Spirit ai += amulet of rage:+Rage ai += amulet of regeneration:+Regen ai += amulet of resist corrosion:rCorr ai += amulet of resist mutation:rMut ai += amulet of stasis:Stasis ai += amulet of the gourmand:Gourm ai += amulet of warding:Ward rN+ ai += potions? of might:Str+5 DMG+1d10 ai += potions? of agility:Stlth+ Dex+5 EV+5 ai += potions? of brilliance:Archmagi Int+5 Wiz++ ai += potions? of resistance:rF+ rC+ rPois rElec rCorr ai += throwing net:+f # Tags: autoinscription, au, ai, autoinscribe, description, ego, brand ##################### ##################### End of autoinscription ##################### ##################### ##################### Autobinding spells ##################### sp := spell_slot sp += Apportation:z sp += Controlled Blink:a # spells, autobind, bind, casting, keys, ##################### ##################### End of autobinding spells ##################### ##################### ##################### Autobinding items ##################### it := item_slot it += trishula:w it += bread ration:r it += throwing net:F it += wand of heal wounds:V it += wand of teleportation:G it += wand of haste:Y it += wand of invisibility:H it += wand of digging:b it += wand of disintegration:c it += disc of storms:v it += fan of gales:f # items, autobind, bind, evocable, scrolls, keys, ##################### ##################### End of autobinding items ##################### ##################### ##################### Autopickup & exceptions ##################### # $ = gold # ? = scroll # ! = potion # : or + = book # " or = = jewellery # / = wand # % = food # } = miscellaneous # \ = rods # | = staves # ) = weapon # ( = missiles # [ = armour ap := autopickup #ap = ap -= \| ap += $ ##################### Auto-not-grab - exceptions of your kleptomania ae := autopickup_exceptions ae = ae ^= <(unidentified).*(scrolls?|wand|jewellery|book).* : if you.race() == "Mummy" then ae ^= >(unidentified).*potions? : else ae ^= <(unidentified).*potions? : end ae ^= scrolls? of holy word : else ae ^= >scrolls? of torment ae ^= useless_item, >bad_item, >evil_item, >deck of.* ae ^= >wand of.*(frost|flame|magic darts|enslavement|paralyze|confusion|polymorph|random effects|slowing) ae ^= >wand of.*(digging|disintegration) ae ^= >ring of (ice|fire|protection from .*|positive energy) ae ^= >ring of (wizardry|magicial power|stealth|flight|sustain abilities) ae ^= >ring of (strength|intelligence|dexterity|see invisible) ae ^= <(phial|lamp|disc|fan) of.* : if you.race() ~= "Mummy" then ae ^= <(meat rations?|bread rations?|chunks?.*|fruits?|royal jelly) : else ae ^= >(meat rations?|bread rations?|chunks?.*|fruits?|royal jelly) : end { --##################### Autopickup management function function Autopickup(item, t) if t then Cmd("autopickup_exceptions ^= <"..item) else Cmd("autopickup_exceptions ^= >"..item) end end --##################### XL depend autopickup function AutopickupByXL() if you.xl() < 24 then Autopickup("potions? of.*lignification", true) else Autopickup("potions? of.*lignification", false) end if you.xl() < 13 then Autopickup("(throwing nets?|needles?).*", true) else Autopickup("(throwing nets?|needles?).*", false) end if you.xl() < 16 then Autopickup("wand of.*(fire|cold|draining|lighting|fireball)", true) else Autopickup("wand of.*(fire|cold|draining|lighting|fireball)", false) end end --##################### Race depend autopickup function AutopickupByRace() if not you.race() == "Troll" then Autopickup("beef jerk.*", false) Autopickup(".*pizza.*", false) end if you.race() == "Troll" or you.race() == "Ogre" then Autopickup("large rocks?", true) end end --##################### Autopickup for certain items Autopickup("potions? of.*flight", false) Autopickup(".*rod", false) --##################### Autopickup rules function local function AutopickupSpecific(item, name) if not item.is_useless and item.artefact then return true end end add_autopickup_func(AutopickupSpecific) } # Tags: autopickup, expceptions, items, grab, unidentified ##################### ##################### End of autopickup ##################### ##################### ##################### Ignore log messages ##################### ignore := runrest_ignore_message ignore += Jiyva gurgles merrily ignore += Jiyva appreciates your sacrifice ignore += Jiyva says: Divide and consume ignore += You hear.*splatter ignore += You feel.*sick ignore += disappears in a puff of smoke ignore += engulfed in a cloud of smoke ignore += standing in the rain ignore += engulfed in white fluffiness ignore += safely over a trap ignore += A.*toadstool withers and dies ignore += toadstools? grow ignore += You walk carefully through the ignore += grinding sound ignore += contamination has completely ignore += chunks of flesh in your inventory.*rotted away ignore += rod.*has recharged ignore += your breath back ignore += the plant is engulfed ignore += the walls burn your ignore += the wall burns your ignore += absorbed by ash ignore += .*quivers ignore += .*jiggles # Tags: log, messages, ignore, runrest ##################### ##################### End of ignore ##################### ##################### ##################### Stop log messages ##################### show_more = false stop := runrest_stop_message stop += Your transformation is almost over # lichform, transformation, almost, over, transmutation, poison ##################### ##################### End of stop ##################### ##################### ##################### Force 'more' message events ##################### # force("regex", true|false) # Where true means "add" and false "remove" { --##################### Force more function function force(rng, t) if t then Cmd("force_more_message += "..rng) else Cmd("force_more_message -= "..rng) end end force("Trog sends monsters to punish you", true) force(".*skill increases.*", true) force(".*LOW HITPOINT.*", true) force(".*MASSIVE.*", true) force("Your transformation is almost over.", true) force("seraph.*into view", true) force("You fail to use your ability", true) force("You miscast", true) force("You feel your control is inadequate", true) force("Your surroundings flicker", true) force("is wielding.*distortion", true) force("sense of stasis", true) force("You have reached level", true) force("You have finished your manual of", true) force("Agnes.*into view", true) force("Aizul.*into view", true) force("Antaeus.*into view", true) force("Asmodeus.*into view", true) force("Asterion.*into view", true) force("Azrael.*into view", true) force("Blork the orc.*into view", true) force("Boris.*into view", true) force("Cerebov.*into view", true) force("Crazy Yiuf.*into view", true) force("Dispater.*into view", true) force("Dissolution.*into view", true) force("Donald.*into view", true) force("Dowan.*into view", true) force("Duvessa.*into view", true) force("Edmund.*into view", true) force("the Enchantress.*into view", true) force("Ereshkigal.*into view", true) force("Erica.*into view", true) force("Erolcha.*into view", true) force("Eustachio.*into view", true) force("Fannar.*into view", true) force("Frances.*into view", true) force("Frederick.*into view", true) force("Gastronok.*into view", true) force("Geryon.*into view", true) force("Gloorx Vloq.*into view", true) force("Grinder.*into view", true) force("Grum.*into view", true) force("Harold.*into view", true) force("Ignacio.*into view", true) force("Ijyb.*into view", true) force("Ilsuiw.*into view", true) force("Jessica.*into view", true) force("Jorgrun.*into view", true) force("Jory.*into view", true) force("Joseph.*into view", true) force("Josephine.*into view", true) force("Khufu.*into view", true) force("Kirke.*into view", true) force("Lamia.*into view", true) force("the Lernaean hydra.*into view", true) force("Lom Lobon.*into view", true) force("Louise.*into view", true) force("Mara.*into view", true) force("Margery.*into view", true) force("Maud.*into view", true) force("Maurice.*into view", true) force("Menkaure.*into view", true) force("Mennas.*into view", true) force("Mnoleg.*into view", true) force("Murray.*into view", true) force("Natasha.*into view", true) force("Nergalle.*into view", true) force("Nessos.*into view", true) force("Nikola.*into view", true) force("Norris.*into view", true) force("Pikel.*into view", true) force("Plog.*into view", true) force("Polyphemus.*into view", true) force("Prince Ribbit.*into view", true) force("Psyche.*into view", true) force("Purgy.*into view", true) force("Robin.*into view", true) force("Roxanne.*into view", true) force("the royal jelly.*into view", true) force("Rupert.*into view", true) force("Saint Roka.*into view", true) force("the Serpent of Hell.*into view", true) force("Sigmund.*into view", true) force("Snorg.*into view", true) force("Sonja.*into view", true) force("Terence.*into view", true) force("Tiamat.*into view", true) force("Urug.*into view", true) force("Vashnia.*into view", true) force("Wiglaf.*into view", true) force("Xtahua.*into view", true) force(".*ghost of.*into view", true) --##################### force_more by XL function ForceByXL() if you.xl() < 25 then force("juggernaut.*into view", true) force(".*distortion.*into view", true) else force("juggernaut.*into view", false) force(".*distortion.*into view", false) end if you.xl() < 20 then force(".*dragon.*into view", true) force(".*ugly.*into view", true) force("catoblepas.*into view", true) else force(".*dragon.*into view", false) force(".*ugly.*into view", false) force("catoblepas.*into view", false) end if you.xl() < 15 then force(".*hydra.*into view", true) force("dire elephant.*into view", true) force("death yak.*into view", true) force("ettin.*into view", true) force(".*electrocution.*into view", true) else force(".*hydra.*into view", false) force("dire elephant.*into view", false) force("death yak.*into view", false) force("ettin.*into view", false) force(".*electrocution.*into view", false) end if you.xl() < 13 then force("spiny frog.*into view", true) force("hill giant.*into view", true) else force("spiny frog.*into view", false) force("hill giant.*into view", false) end if you.xl() < 10 then force("orc warrior.*into view", true) force("orc priest.*into view", true) force("ogre.*into view", true) else force("orc warrior.*into view", false) force("orc priest.*into view", false) force("ogre.*into view", false) end if you.xl() < 5 then force("gnoll.*halberd.*into view", true) else force("gnoll.*halberd.*into view", false) end end --##################### End of force_more by XL --##################### force_more by resists function ForceByRes() if you.res_fire() <= 0 then force(".*flaming.*into view", true) force(".*fire.*into view", true) else force(".*flaming.*into view", false) force(".*fire.*into view", false) end if you.res_cold() <= 0 then force(".*freezing.*into view", true) force(".*ice.*into view", true) else force(".*freezing.*into view", false) force(".*ice.*into view", false) end if you.res_draining() <= 0 then force(".*draining.*into view", true) force(".*shadow.*into view", true) else force(".*draining.*into view", false) force(".*shadow.*into view", false) end if you.res_shock() <= 0 then force(".*electrocution.*into view", true) force(".*storm.*into view", true) else force(".*electrocution.*into view", false) force(".*storm.*into view", false) end if you.res_mutation() <= 0 and not you.god():find("Zin") then force("neqoxec.*into view", true) force("cacodemon.*into view", true) force("shining eye.*into view", true) force("orb of fire.*into view", true) else force("neqoxec.*into view", false) force("cacodemon.*into view", false) force("shining eye.*into view", false) force("orb of fire.*into view", false) end end --##################### End of force_more by resists } # Nested if statement doesn't seem to work here. # Tags: force, more, force_more_message, resists, stats, XL ##################### ##################### End of force_more_message ##################### ##################### ##################### Auto change tile ##################### { --##################### Tile change function function ChangeTile(tile) Cmd("tile_player_tile = mons:"..tile) end --##################### Automatic tile change function function AutoChangeTile() if you.race() == "Hill Orc" then if you.xl() < 5 then ChangeTile("orc") elseif you.xl() < 10 then ChangeTile("orc priest") elseif you.xl() < 15 then ChangeTile("orc warrior") elseif you.xl() < 20 then ChangeTile("orc knight") elseif you.xl() < 25 then ChangeTile("orc warlord") else ChangeTile("saint roka") end elseif you.god():find("Jiyva") then if you.xl() < 6 then ChangeTile("ooze") elseif you.xl() < 12 then ChangeTile("acid blob") elseif you.xl() < 18 then ChangeTile("dissolution") else ChangeTile("the royal jelly") end elseif you.god():find("the Shining One") then if you.xl() < 15 then ChangeTile("cherub") elseif you.xl() < 20 then ChangeTile("angel") elseif you.xl() < 24 then ChangeTile("daeva") else ChangeTile("seraph") end elseif you.god():find("Zin") then if you.xl() < 15 then ChangeTile("cherub") elseif you.xl() < 20 then ChangeTile("angel") elseif you.xl() < 24 then ChangeTile("daeva") else ChangeTile("mennas") end elseif you.race() == "Troll" then if you.xl() < 10 then ChangeTile("purgy") elseif you.xl() < 15 then ChangeTile("snorg") elseif you.xl() < 20 then ChangeTile("deep troll") else ChangeTile("iron troll") end elseif you.god():find("Makhleb") then if you.xl() < 5 then ChangeTile("crimson imp") elseif you.xl() < 13 then ChangeTile("red devil") elseif you.xl() < 18 then ChangeTile("balrug") elseif you.xl() < 24 then ChangeTile("hell sentinel") elseif you.race() == "high elf" or you.race() == "deep elf" or you.race() == "human" then ChangeTile("asmodeus") elseif you.race() == "ogre" or you.race() == "troll" or you.race() == "naga" or you.race() == "hill orc" then ChangeTile("cerebov") else ChangeTile("pandemonium lord") end elseif you.god():find("Vehumet") or you.god():find("Sif muna") then if you.xl() < 10 then ChangeTile("wizard") elseif you.xl() < 15 then ChangeTile("dowan") elseif you.xl() < 20 then ChangeTile("hellbinder") elseif you.xl() < 26 then ChangeTile("wretched star") else ChangeTile("lom lobon") end end end --##################### End of AutoChangeTile function } # Tags: tile, autochange, player ##################### ##################### End of auto change tile ##################### ##################### ##################### Main loop ##################### { function ready() SpeedrunMode() HealthStatement() PlayerUpdate() ResistUpdate() PowerUpdate() AttributesUpdate() StatusUpdate() ForceByRes() if player["XL"] ~= earlierPlayer["XL"] then earlierPlayer["XL"] = player["XL"] AutopickupByXL() ForceByXL() AutoChangeTile() end end } ##################### ##################### End of main loop ##################### ##################### ##################### Non-LUA mechanics ##################### confirm_butcher = never easy_eat_chunks = true auto_eat_chunks = true auto_sacrifice = true rest_wait_both = true travel_delay = -1 explore_delay = -1 rest_delay = -1 explore_stop = items,stairs,shops,altars,portals,branches,runed_doors : if you.race() ~= "Merfolk" then travel_avoid_terrain = deep water : end easy_unequip = true equip_unequip = true fire_order += inscribed pickup_thrown = false enable_recast_spell = true show_gold_turns = true show_game_turns = true explore_wall_bias = 0 explore_improved = true hp_warning = 40 mp_warning = 30 autofight_stop = 35 default_manual_training = true { --##################### Open skills window player["turns"] = you.turns() if player["turns"] == 0 then crawl.sendkeys("m") end } # Tags: hp, tab, autofight, warning, skills window, start, ##################### ##################### End of non-LUA mechanics ##################### ##################### ##################### Notes ##################### note_all_skill_levels = true user_note_prefix=-- dump_message_count = 50 dump_order = header, hiscore, stats, misc, mutations, inventory, spells, skills, overview, vaults, monlist, messages, action_counts, notes, turns_by_place, kills_by_place, kills # Tags: dump, notes, order, prefix, ##################### ##################### End of notes #####################