# TODO: write a dialog for ecounters # Sanity # auto_switch = true auto_butcher = true confirm_butcher = never easy_eat_chunks = true default_manual_training = true restart_after_game = true travel_key_stop = true # Autobutcher is handled in ready() # Autoexplore travel_open_doors = false explore_wall_bias = 2 rest_wait_both = true explore_auto_rest = true runrest_ignore_poison= 2:10 runrest_ignore_monster = ^butterfly$:1 runrest_stop_message = You are starting to lose your boyancy runrest_stop_message = You float gracefully downwards # Autopickup autopickup = $?!+"/%(|}0\ # Autofight autofight_stop = 50 hp_warning = 50 #autofight_throw = true autofight_fire_stop = true fire_order = launcher, return fire_order += javelin/tomahawk/bullet/stone/rock/net # Automagic automagic_fight = true automagic_enable = true automagic_stop = 30 fail_severity_to_confirm = 1 ## Messages ## clear_messages = true small_more = true show_more = false message_colour += mute:No target in view! message_colour += mute:You miscast Sting message_colour += mute:You miscast Magic Dart message_colour += mute:You miscast Ensorcelled Hibernation message_colour += mute:You miscast Pain message_colour += mute:Some of the chunks message_colour += mute:This raw flesh tastes terrible. message_colour += mute:You have reached level 2! message_colour += mute:A nearby toadstool withers and dies message_colour += ghost says more := force_more_message # Good stuff more += You have reached level more -= You have reached level 2 more -= You have reached level 3 more -= You have reached level 4 more += skill increases more += You now have enough gold # Bad stuff more += You miscast more += LOW HITPOINT WARNING more += Your shroud falls apart more += You feel drained more += flickers more += You fail to use your ability. # Expiring stuff more += finished your manual more += Your shroud begins to fray more += You are starting to lose your boyancy more += You float gracefully downwards runrest_stop_message += All of the chunks of flesh in your inventory have rotted away. # God stuff more += You can now stomp more += You can now pass # Vault messages more += of a .*drain more += avalanche ## Item slots ## item_slot += blowgun:cd item_slot += stone:Z item_slot += bullet:Y item_slot += needle:X item_slot += net:W item_slot += bolt:V item_slot += arrow:U item_slot += robe:e item_slot += armour:fghijk item_slot += book:zyxwv ## Spell slots ## # Utility spells spell_slot += Alistair's Intoxication:p spell_slot += Apportation:gG spell_slot += Blink:b spell_slot += Cause Fear:f #spell_slot += Cigotuvi's Embrace:eE spell_slot += Controlled Blink:B #spell_slot += Control Teleport:t spell_slot += Darkness:D #spell_slot += Deflect Missiles:dD spell_slot += Discord:D #spell_slot += Disjunction:H spell_slot += Dispel Undead:q spell_slot += Dispersal:Dd spell_slot += Flight:fF #spell_slot += Invisibility:iIjJ spell_slot += Leda's Liquefaction:Ll spell_slot += Ozocubu's Armour:oO spell_slot += Passage of Golubria:wW spell_slot += Passwall:pP spell_slot += Recall:r spell_slot += Regeneration:rR spell_slot += Repel Missiles:rR #spell_slot += Ring of Flames:FrR spell_slot += Shroud of Golubria:sgSG spell_slot += Silence:GS spell_slot += Slow:sS spell_slot += Sublimation of Blood:n spell_slot += Summon Butterflies:B spell_slot += Swiftness:s # Transformations spell_slot += Beastly Appendage:zxcv spell_slot += Blade Hands:zxcv spell_slot += Dragon Form:XC spell_slot += Hydra Form:XC spell_slot += Ice Form:zxcv spell_slot += Spider Form:zxcv spell_slot += Statue Form:XC # Summons spell_slot += Call Imp:zxc spell_slot += Call Canine Familiar:zxcv spell_slot += Dragon's Call:XCV spell_slot += Haunt:xcv spell_slot += Malign Gateway:XCV spell_slot += Monstrous Menagerie:ZXC spell_slot += Shadow Creatures:zxcv spell_slot += Summon Demon:zxcv #spell_slot += Summon Forest:ZXC spell_slot += Summon Greater Demon:XCV spell_slot += Summon Guardian Golem:ZX spell_slot += Summon Horrible Things:XCV spell_slot += Summon Hydra:xcv spell_slot += Summon Ice Beast:zxcv spell_slot += Summon Lightning Spire:ZX spell_slot += Summon Mana Viper:xcv spell_slot += Summon Small Mammal:zxc #spell_slot += Spellforged Servitor:XCV # Low-level spells spell_slot += Animate Skeleton:ZA spell_slot += Corona:gG spell_slot += Corpse Rot:Z spell_slot += Confusing Touch:cC spell_slot += Conjure Flame:ZX spell_slot += Ensorcelled Hibernation:ZsS spell_slot += Freeze:az spell_slot += Flame Tongue:z spell_slot += Infusion:i spell_slot += Inner Flame:zxc spell_slot += Magic Dart:azx spell_slot += Pain:azp spell_slot += Portal Projectile:Pp spell_slot += Searing Ray:zxcsS spell_slot += Sandblast:azx spell_slot += Shock:azx spell_slot += Song of Slaying:sS spell_slot += Sticks to Snakes:sS spell_slot += Sting:azx spell_slot += Teleport Other:T spell_slot += Throw Frost:azxc spell_slot += Throw Flame:azxc spell_slot += Tukima's Dance:tT # Mid-level spells spell_slot += Agony:zxcv spell_slot += Airstrike:zxcv spell_slot += Animate Dead:XC spell_slot += Battlesphere:XC spell_slot += Confuse:cC spell_slot += Control Undead:ZX spell_slot += Dazzling Spray:dD spell_slot += Freezing Cloud:XC spell_slot += Force Lance:zxcv spell_slot += Fulminant Prism:fF spell_slot += Gell's Gravitas:gG spell_slot += Ignite Poison:iI spell_slot += Iskenderun's Mystic Blast:mM spell_slot += Irradiate:XC spell_slot += Lee's Rapid Deconstruction:XC spell_slot += Mephitic Cloud:cC spell_slot += Poisonous Cloud:pP spell_slot += Ozocubu's Refrigeration:XC spell_slot += Olgreb's Toxic Radiance:tTpP spell_slot += Petrify:zxcv spell_slot += Spectral Weapon:SwW spell_slot += Static Discharge:ZX spell_slot += Sticky Flame:zxcv spell_slot += Stone Arrow:zxcv spell_slot += Throw Icicle:zxcv spell_slot += Twisted Resurrection:XC spell_slot += Venom Bolt:zxcv spell_slot += Vampiric Draining:vVdD # 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 { --Lua skilling by elliptic local did_first_turn = false 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 --Autoflight 0.0.1a by sharkfinsouperman --I need to add a routine to prevent fliers from being flewn after landing --Could somehow record the way flight ended and us that to determine the result --Could add a check for foes and how far away they are to cause 5-15 Tengu to fly function auto_flight() local level = you.xl() if level >= 14 and intrinsic_flight() == true and you.flying() == false or level >= 5 and you.race() == "Tengu" and you.flying() == false then if cmp() >= 3 and not you.rooted() and starving() == false then for letter, abil in pairs(you.ability_table()) do if abil == "Fly" then crawl.process_keys("a" .. letter) end end end end end function starving() if you.hunger_name() == "starving" or you.hunger_name() == "fainting" then return true else return false end end function cmp() local mp, mmp = you.mp() return mp end function intrinsic_flight() local sp = you.race() if sp == "Gargoyle" or sp == "Tengu" or sp == "Black Draconian" then return true else return false end end --Here's Johnny! function ready() --for autoskilling 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 --a little something to handle Fedhasites --should I give Trolls and Kobolds extra treatment? if you.race == "Troll" then crawl.setopt("auto_butcher = true") else crawl.setopt("auto_butcher = hungry") if you.god == "Fedhas" then crawl.setopt("auto_butcher = very hungry") end end if you.race() == "Grey Draconian" and you.branch() == "Shoals" and you.god()== "Fedhas" then crawl.setopt("travel_avoid_terrain = deep water") elseif you.race() == "Grey Draconian" and you.god()== "Fedhas" then crawl.setopt("travel_avoid_terrain = false") else end --autoflight 0.0.1a --auto_flight() end }