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 +=