tile_font_crt_family = consola tile_font_stat_family = consola tile_font_msg_family = consola tile_font_tip_family = consola # Lua skilling by elliptic { skill_list = {"Fighting","Short Blades","Long Blades","Axes","Maces & Flails", "Polearms","Staves","Unarmed Combat","Bows","Crossbows", "Throwing","Slings","Armour","Dodging","Shields","Spellcasting", "Conjurations","Hexes","Charms","Summonings","Necromancy", "Translocations","Transmutations","Fire Magic","Ice Magic", "Air Magic","Earth Magic","Poison Magic","Invocations", "Evocations","Stealth"} function record_current_skills(maxlev) c_persist.skill_list = { } for _,sk in ipairs(skill_list) do if you.train_skill(sk) > 0 and you.base_skill(sk) < (maxlev or 27) then table.insert(c_persist.skill_list, sk) end end end function check_skills() if not c_persist.skill_list or not c_persist.target_skill then return end for _,sk in ipairs(c_persist.skill_list) do if you.base_skill(sk) >= c_persist.target_skill then crawl.formatted_mpr(sk .. " reached " .. c_persist.target_skill .. ".", "prompt") crawl.more() c_persist.target_skill = nil set_new_skill_training() return end end end function set_new_skill_training() c_persist.set_target_skill = 1 crawl.sendkeys('m') end function set_target_skill() record_current_skills() local str = "Currently training: " local first_skill = true for _,sk in ipairs(c_persist.skill_list) do val = you.base_skill(sk) if first_skill then str = str .. sk .. "(" .. val .. ")" else str = str .. ", " .. sk .. "(" .. val .. ")" end first_skill = false end str = str .. "." crawl.formatted_mpr(str, "prompt") crawl.formatted_mpr("Choose a target skill level: ", "prompt") c_persist.target_skill = tonumber(crawl.c_input_line()) record_current_skills(c_persist.target_skill) end function control(c) return string.char(string.byte(c) - string.byte('a') + 1) end function save_with_message() if you.turns() == 0 then crawl.sendkeys("S") return end crawl.formatted_mpr("Save game and exit?", "prompt") local res = crawl.getch() if not (string.char(res) == "y" or string.char(res) == "Y") then crawl.formatted_mpr("Okay, then.", "prompt") return end crawl.formatted_mpr("Leave a message: ", "prompt") local res = crawl.c_input_line() c_persist.message = res crawl.sendkeys(control("s")) end function first_turn_of_game() for key,_ in pairs(c_persist) do if key ~= "record" then c_persist[key] = nil end end set_new_skill_training() end local did_first_turn = false function ready() if not did_first_turn then did_first_turn = true if you.turns() == 0 then first_turn_of_game() end if c_persist.message and c_persist.message ~= "nil" and c_persist.message ~= "" then crawl.mpr("Message: " .. c_persist.message) c_persist.message = nil end end check_skills() if c_persist.set_target_skill == 0 then set_target_skill() c_persist.set_target_skill = nil elseif c_persist.set_target_skill then c_persist.set_target_skill = c_persist.set_target_skill - 1 end end } # Utility spells spell_slot += Dispel Undead:q spell_slot += Cause Fear:Q spell_slot += Alistair's Intoxication:Q spell_slot += Mass Confusion:Q spell_slot += Discord:Q spell_slot += Passage of Golubria:w spell_slot += Abjuration:W spell_slot += Aura of Abjuration:W spell_slot += Apportation:e spell_slot += Recall:r spell_slot += Summon Butterflies:R spell_slot += Control Teleport:t spell_slot += Metabolic Englaciation:T spell_slot += Ozocubu's Armour:aA spell_slot += Stoneskin:aA spell_slot += Phase Shift:aA spell_slot += Shroud of Golubria:aA spell_slot += Condensation Shield:aA spell_slot += Cigotuvi's Embrace:aA spell_slot += Swiftness:s spell_slot += Repel Missiles:d spell_slot += Deflect Missiles:d spell_slot += Darkness:D spell_slot += Flight:f spell_slot += Ring of Flames:F spell_slot += Regeneration:g spell_slot += Silence:G spell_slot += Haste:h spell_slot += Disjunction:H spell_slot += Invisibility:j spell_slot += Death's Door:J spell_slot += Borgnjor's Revivification:L spell_slot += Blink:b spell_slot += Controlled Blink:B spell_slot += Sublimation of Blood:n spell_slot += Passwall:N spell_slot += Necromutation:M spell_slot += Cure Poison:Z spell_slot += Death Channel:ZXC spell_slot += Simulacrum:ZXC spell_slot += Warp Weapon:ZXC spell_slot += Exruciating Wounds:ZXC spell_slot += Dispersal:ZXC spell_slot += Leda's Liquefaction:ZXC # Transformations spell_slot += Beastly Appendage:zxcv spell_slot += Spider Form:zxcv spell_slot += Ice Form:zxcv spell_slot += Blade Hands:zxcv spell_slot += Hydra Form:XC spell_slot += Statue Form:XC spell_slot += Dragon Form:XC # Summons spell_slot += Summon Small Mammal:zxc spell_slot += Call Imp:zxc spell_slot += Call Canine Familiar:zxcv spell_slot += Summon Ice Beast:zxcv spell_slot += Summon Demon:zxcv spell_slot += Shadow Creatures:zxcv spell_slot += Summon Guardian Golem:ZX spell_slot += Summon Lightning Spire:ZX spell_slot += Summon Forest:ZXC spell_slot += Monstrous Menagerie:ZXC spell_slot += Summon Mana Viper:xcv spell_slot += Summon Hydra:xcv spell_slot += Haunt:xcv spell_slot += Spellforged Servitor:XCV spell_slot += Malign Gateway:XCV spell_slot += Summon Greater Demon:XCV spell_slot += Summon Horrible Things:XCV spell_slot += Dragon's Call:XCV # Low-level spells spell_slot += Freeze:z spell_slot += Magic Dart:z spell_slot += Flame Tongue:z spell_slot += Pain:z spell_slot += Shock:z spell_slot += Sandblast:z spell_slot += Sting:z spell_slot += Ensorcelled Hibernation:z spell_slot += Infusion:z spell_slot += Throw Frost:zxc spell_slot += Throw Flame:zxc spell_slot += Searing Ray:zxc spell_slot += Portal Projectile:zxc spell_slot += Slow:zxc spell_slot += Inner Flame:zxc spell_slot += Teleport Other:zxc spell_slot += Tukima's Dance:zxc spell_slot += Corona:Z spell_slot += Animate Skeleton:Z spell_slot += Corpse Rot:Z spell_slot += Confusing Touch:ZX spell_slot += Sticks to Snakes:ZX spell_slot += Sure Blade:ZX spell_slot += Conjure Flame:ZX # Mid-level spells spell_slot += Stone Arrow:zxcv spell_slot += Dazzling Spray:zxcv spell_slot += Iskenderun's Mystic Blast:zxcv spell_slot += Force Lance:zxcv spell_slot += Sticky Flame:zxcv spell_slot += Throw Icicle:zxcv spell_slot += Venom Bolt:zxcv spell_slot += Airstrike:zxcv spell_slot += Agony:zxcv spell_slot += Petrify:zxcv spell_slot += Vampiric Draining:zxcv spell_slot += Song of Slaying:zxcv spell_slot += Spectral Weapon:zxcv spell_slot += Confuse:zxcv spell_slot += Gell's Gravitas:zxcv spell_slot += Mephitic Cloud:cC spell_slot += Static Discharge:ZX spell_slot += Control Undead:ZX spell_slot += Fulminant Prism:ZX spell_slot += Ignite Poison:ZX spell_slot += Battlesphere:XC spell_slot += Lee's Rapid Deconstruction:XC spell_slot += Poisonous Cloud:XC spell_slot += Freezing Cloud:XC spell_slot += Ozocubu's Refrigeration:XC spell_slot += Animate Dead:XC spell_slot += Twisted Resurrection:XC spell_slot += Olgreb's Toxic Radiance:XC spell_slot += Irradiate:XC # High-level spells spell_slot += Lightning Bolt:xcv spell_slot += Fireball:xcv spell_slot += Bolt of:xcv spell_slot += Iron Shot:xcv spell_slot += Poison Arrow:xcv spell_slot += Orb of Destruction:xcv spell_slot += Lehudib's Crystal Spear:xcv spell_slot += Conjure Ball Lightning:XCV spell_slot += Delayed Fireball:XCV spell_slot += Chain Lightning:XCV spell_slot += Fire Storm:V spell_slot += Glaciate:V spell_slot += Shatter:V spell_slot += Tornado:V spell_slot += Singularity:V # Default letters spell_slot += .*:yuiopYUIOP # Spellcasting spam reduction (by dianne) # Macro z and Z to ===force_cast_spell 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 { function force_cast_spell() crawl.mpr('Cast which spell?') crawl.flush_prev_message() crawl.process_keys('Z') end } show_more = false force_more_message += The mighty Pandemonium lord .* resides here force_more_message += Ouch! That really hurt! force_more_message += (starving|devoid of blood) force_more_message += lose consciousness force_more_message += A sentinel's mark forms upon you force_more_message += calcifying dust hits force_more_message += Space warps.*around you force_more_message += Space bends around you force_more_message += hits you.*distortion force_more_message += watched by something force_more_message += flickers and vanishes force_more_message += You are starting to lose your buoyancy force_more_message += You lose control over your flight force_more_message += Your transformation is almost over force_more_message += You feel yourself come back to life force_more_message += You start to feel a little slower force_more_message += You have finished your manual of force_more_message += You are(?!.*longer).*(confused|poisoned) force_more_message += increases to level easy_eat_chunks = true auto_eat_chunks = true show_travel_trail = true autoinscribe += bad_item.*potion:!q autoinscribe += potion.*mutation:!q autofight_stop = 60 auto_butcher = hungry confirm_butcher = never : if you.god() == "Fedhas" then ai += fruit:!e : end : if you.god() ~= "Lugonu" then ai += (distortion):!w :end ai := autoinscribe ai += (vampiric):!w ai += (bad|dangerous)_item.*potion:!q ai += (bad|dangerous)_item.*scroll:!r ai += of faith:!P ai += rod of:!a ai += lightning rod:!a ai += [^r]staff of (conj|energy|power):!a ai += manual of:!d ai += dispersal:!f ai += throwing net:!f ae += mapping:!r ae += cure:!q # Uniques and baddies more += 27-headed.*comes? into view. more += Agnes.*comes? into view. more += Aizul.*comes? into view. more += Antaeus.*comes? into view. more += Arachne.*comes? into view. more += Asmodeus.*comes? into view. more += Asterion.*comes? into view. more += Azrael.*comes? into view. more += Blork the orc.*comes? into view. more += Boris.*comes? into view. more += Cerebov.*comes? into view. more += Crazy Yiuf.*comes? into view. more += Dispater.*comes? into view. more += Dissolution.*comes? into view. more += Donald.*comes? into view. more += Dowan.*comes? into view. more += Duvessa.*comes? into view. more += Edmund.*comes? into view. more += Enchantress.*comes? into view. more += Ereshkigal.*comes? into view. more += Erica.*comes? into view. more += Erolcha.*comes? into view. more += Eustachio.*comes? into view. more += Fannar.*comes? into view. more += Frances.*comes? into view. more += Francis.*comes? into view. more += Frederick.*comes? into view. more += Gastronok.*comes? into view. more += Geryon.*comes? into view. more += Gloorx Vloq.*comes? into view. more += Grinder.*comes? into view. more += Grum.*comes? into view. more += Harold.*comes? into view. more += Ignacio.*comes? into view. more += Ijyb.*comes? into view. more += Ilsuiw.*comes? into view. more += Jorgrun.*comes? into view. more += Jory.*comes? into view. more += Jessica.*comes? into view. more += Joseph.*comes? into view. more += Josephine.*comes? into view. more += Jozef.*comes? into view. more += Khufu.*comes? into view. more += Kirke.*comes? into view. more += Lamia.*comes? into view. more += Lom Lobon.*comes? into view. more += Louise.*comes? into view. more += Mara.*comes? into view. more += Margery.*comes? into view. more += Maud.*comes? into view. more += Maurice.*comes? into view. more += Menkaure.*comes? into view. more += Mennas.*comes? into view. more += Mnoleg.*comes? into view. more += Murray.*comes? into view. more += Natasha.*comes? into view. more += Nergalle.*comes? into view. more += Nessos.*comes? into view. more += Nikola.*comes? into view. more += Norris.*comes? into view. more += Pikel.*comes? into view. more += Polyphemus.*comes? into view. more += Prince Ribbit.*comes? into view. more += Psyche.*comes? into view. more += Purgy.*comes? into view. more += Robin.*comes? into view. more += Roxanne.*comes? into view. more += Rupert.*comes? into view. more += Saint Roka.*comes? into view. more += Sigmund.*comes? into view. more += Snorg.*comes? into view. more += Sojobo.*comes? into view. more += Sonja.*comes? into view. more += Terence.*comes? into view. more += The Lernaean hydra.*comes? into view. more += The royal jelly.*comes? into view. more += The Serpent of Hell.*comes? into view. more += Tiamat.*comes? into view. more += Urug.*comes? into view. more += Vashnia.*comes? into view. more += Wiglaf.*comes? into view. more += Xtahua.*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 more += Your Shields skill increases to level 4 more += Your Shields skill increases to level 9 more += Your Shields skill increases to level 15 more += Your Shields skill increases to level 25 more += Your Short Blades skill increases to level 12 more += Your Short Blades skill increases to level 14 more += Your Long Blades skill increases to level 14 more += Your Long Blades skill increases to level 16 more += Your Long Blades skill increases to level 24 more += Your Maces & Flails skill increases to level 12 more += Your Maces & Flails skill increases to level 16 more += Your Maces & Flails skill increases to level 20 more += Your Maces & Flails skill increases to level 22 more += Your Axes skill increases to level 18 more += Your Axes skill increases to level 20 more += Your Axes skill increases to level 26 more += Your Polearms skill increases to level 14 more += Your Polearms skill increases to level 20 more += Your Polearms skill increases to level 26 more += Your Staves skill increases to level 12 more += Your Staves skill increases to level 14 more += Your Evocations skill increases to level 6 more += Your Evocations skill increases to level 10 more += Your Evocations skill increases to level 15 more += Your Invocations skill increases to level 10 more += You feel yourself slow down more += less insulated more += You are starting to lose your buoyancy more += You lose control over your flight more += Your hearing returns more += Your transformation is almost over more += You have a feeling this form more += You feel yourself come back to life more += uncertain more += time is quickly running out more += life is in your own hands more += is no longer charmed more += shroud falls apart more += You start to feel a little slower more += You flicker more += You feel less protected from missiles more += Your surroundings flicker more += You cannot teleport right now more += The writing blurs in front of your eyes more += You fall through a shaft more += A huge blade swings out and slices into you! more += (blundered into a|invokes the power of) Zot more += Ouch! That really hurt! more += dispelling energy hits you more += You convulse more += You are (blasted|electrocuted) more += You are.*confused more += flesh start more += (starving|devoid of blood) more += wrath finds you more += god:(sends|finds|silent|anger) more += You feel a surge of divine spite more += lose consciousness more += You are too injured to fight blindly more += calcifying dust hits more += Space warps horribly around you more += hits you.*distortion more += Space bends around you\. more += watched by something more += A sentinel's mark forms upon you more += Your limbs have turned to stone more += You are slowing down more += .*LOW HITPOINT WARNING.* more += warns you.*of distortion more += lethally poison more += space bends around your more += wielding.*of (distortion|chaos) default_manual_training = true autopickup = $?!:+"/%|\ ae := autopickup_exceptions ae += useless_item, dangerous_item, evil_item ae += >ring of protection from ae += staff ae += >ring of (ice|fire) ae += wand of (lightning|random|para|slow|confus|flame|poly|enslave) ae += >scroll of (immolation|holy|silence) ae += >ring of (strength|dexterity|intelligence|positive) ae += >rod item_slot += ration:c? : if you.race() ~= "Vampire" then ae += potions? of.*blood : end : if you.god() == "Nemelex Xobeh" then ae +=