# For seeded runs
#game_seed = 12168637415130783165
default_manual_training = true
autopickup_starting_ammo = true
pickup_thrown = true
explore_greedy = true
explore_wall_bias = 1
autofight_stop = 70
autofight_caught = true
show_more = false
tile_window_width = 1500
tile_window_height = 1000
easy_confirm = all
autofight_throw = true
autofight_throw_nomove = true
default_manual_training = true
stop = Your transformation is almost over.
show_more = false
travel_delay = -1
travel_open_doors = open
fail_severity_to_confirm = 0
view_delay = 100
mlist_min_height = 10
msg_min_height = 7
msg_max_height = 20
tile_show_threat_levels = tough nasty
# Macros
macros += M [ G<
macros += M ] G>
macros += M \{-265} \{9}o
macros += M \{-266} \{6}@\{13}
macros += M z Z*
macros += M \{-269} Za
macros += M \{-270} Zb
macros += M \{-271} Zc
macros += M \{-272} Zd
# Transmuter
spell_slot ^= Beastly Appendage:A
spell_slot ^= Spider Form:a
spell_slot ^= Ice Form:b
spell_slot ^= Blade Hands:c
# Just stopsrun
flash_screen_message += Your transformation is almost over.
#########################
# Aliases and Variables #
#########################
# Set Alias
menu := menu_colour
# Clear defaults
menu =
# Variables (Worst to Best)
$evil := red
$negative := brown
$danger := lightred
$warning := yellow
$boring := darkgrey
$decent := white
$good := lightblue
$positive := green
$verypositive := lightgreen
$awesome := lightmagenta
# Unusual Variables
$mp := lightcyan
$equipped := cyan
$mutation := magenta
##################
# Basic Settings #
##################
# General Categories
menu += $boring:(melded)
menu += $boring:.*useless_item.*
menu += $evil:.*evil_item.*
menu += $danger:[^n]cursed
menu += inventory:$danger:[^n]cursed
menu += inventory:$equipped:.*equipped.*
menu += $decent:.*artefact.*
# Unidentified Items
menu += $warning:^unidentified .*(jewellery|potion|scroll|wand).*
menu += $good:^unidentified .*armour.*(embroidered|dyed|glowing|shiny|runed)
menu += $good:^unidentified .*weapon.*(glowing|runed)
#################
# Various Items #
#################
# Amulets
menu += $boring:amulet of inaccuracy
menu += $good:amulet of (guardian spirit|stasis|warding)
menu += $positive:amulet of (faith|rage|resist corrosion)
menu += $verypositive:amulet of (clarity|regeneration|resist mutation|the gourmand)
# Decks (keep warning as default in case of new decks)
menu += $evil:deck of punishments
menu += $warning:deck of (changes|destruction)
menu += $decent:deck of cards
menu += $good:deck of war
menu += $positive:deck of (defence|summoning)
menu += $verypositive:deck of escape
menu += $awesome:deck of wonders
menu += $warning:deck of
# Evokables
menu += blue:inert
menu += $warning:disc of storms
menu += $warning:tome of Destruction
menu += $decent:box of beasts
menu += $decent:lantern of shadows
menu += $decent:stone of tremors
menu += $good:fans? of gales
menu += $good:lamps? of fire
menu += $good:phials? of floods
menu += $good:sack of spiders
menu += $positive:phantom mirror
menu += $mp:crystal ball of energy
# Food
menu += $evil:evil_eating
menu += $danger:rot-inducing
menu += $warning:poisonous
menu += $boring:inedible
menu += $good:bread ration
menu += $good:meat ration
menu += $good:preferred
menu += $good:(corpse|chunk)
menu += $mutation:mutagenic
# Potions
menu += $danger:potions? of berserk
menu += $decent:potions? of (flight|lignification|restore)
menu += $good:potions? of (agility|brilliance|invisibility|might|resistance)
menu += $positive:potions? of curing
menu += $verypositive:potions? of (haste|heal wounds)
menu += $awesome:potions? of (beneficial|cancellation|cure mutation|experience|gain)
menu += $mp:potions? of magic
menu += $mutation:potions? of mutation
# Rings
menu += $negative:ring of \-.*(dexterity|evasion|intelligence|protection|slaying|strength)
menu += $negative:ring of loudness
menu += $warning:ring of (fire|ice)
menu += $decent:ring of flight
menu += $good:ring of (.*evasion|invisibility|magical power|.*protection|stealth|sustain abilities|wizardry)
menu += $positive:ring of (poison resistance|protection from cold|protection from fire|protection from magic|see invisible)
menu += $verypositive:ring of (regeneration|.*slaying)
menu += $awesome:ring of teleport
# Rods
menu += $verypositive:rod
# Scrolls
menu += $danger:scrolls? of torment
menu += $boring:scrolls? of (noise|random)
menu += $decent:scrolls? of (amnesia|holy word|identify|remove curse)
menu += $good:scrolls? of (fear|fog|immolation|silence|summoning|vulnerability)
menu += $positive:scrolls? of (brand|enchant|magic mapping|recharging)
menu += $verypositive:scrolls? of acquirement
menu += $awesome:scrolls? of (blinking|teleportation)
# Staves
menu += $mp:staff of (energy|Wucad Mu)
menu += $positive:[^r]staff of
# Wands
menu += $boring:wand of (flame|frost|magic darts|random effects)
menu += $decent:wand of (confusion|enslavement|paralysis|polymorph|slowing)
menu += $good:wand of (cold|digging|disintegration|draining)
menu += $good:wand of (fire|fireball|invisibility|lightning)
menu += $positive:wand of hasting
menu += $verypositive:wand of heal wounds
menu += $awesome:wand of teleportation
# Other
menu += $negative:shield of the gong
menu += $good:throwing net
menu += $awesome:.*misc.*rune( of Zot)?
menu += $awesome:.*orb.*Zot
menu += $awesome:manual
# Ask HilariousDeathArtist to fix things
# To use this you must add have a call to AnnounceDamage() in the ready() function like below:
# This is important if you override this ready() function
<
function ready()
AnnounceDamage()
end
>
###############
# Damage Calc #
###############
<
local previous_hp = 0
local previous_mp = 0
local previous_form = ""
local was_berserk_last_turn = false
function AnnounceDamage()
local current_hp, max_hp = you.hp()
local current_mp, max_mp = you.mp()
--Things that increase hp/mp temporarily really mess with this
local current_form = you.transform()
local you_are_berserk = you.berserk()
local max_hp_increased = false
local max_hp_decreased = false
if (current_form ~= previous_form) then
if (previous_form:find("dragon") or
previous_form:find("statue") or
previous_form:find("tree") or
previous_form:find("ice")) then
max_hp_decreased = true
elseif (current_form:find("dragon") or
current_form:find("statue") or
current_form:find("tree") or
current_form:find("ice")) then
max_hp_increased = true
end
end
if (was_berserk_last_turn and not you_are_berserk) then
max_hp_decreased = true
elseif (you_are_berserk and not was_berserk_last_turn) then
max_hp_increased = true
end
--crawl.mpr(string.format("previous_form is: %s", previous_form))
--crawl.mpr(string.format("current_form is: %s", current_form))
--crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False"))
--crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False"))
--crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False"))
--crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False"))
--Skips message on initializing game
if previous_hp > 0 then
local hp_difference = previous_hp - current_hp
local mp_difference = previous_mp - current_mp
if max_hp_increased or max_hp_decreased then
if max_hp_increased then
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("MASSIVE DAMAGE!!")
end
end
--On gaining more than 1 health
if (current_hp > previous_hp) then
--Removes the negative sign
local health_inturn = (0 - hp_difference)
if (health_inturn > 1) and not (current_hp == max_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
else
crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.")
end
end
if (current_hp == max_hp) then
crawl.mpr("Health restored: " .. current_hp .. "")
end
end
--On gaining more than 1 magic
if (current_mp > previous_mp) then
--Removes the negative sign
local mp_inturn = (0 - mp_difference)
if (mp_inturn > 1) and not (current_mp == max_mp) then
if current_mp < (max_mp * 0.25) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
else
crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.")
end
end
if (current_mp == max_mp) then
crawl.mpr("MP restored: " .. current_mp .. "")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
else
crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.")
end
end
end
end
--Set previous hp/mp and form at end of turn
previous_hp = current_hp
previous_mp = current_mp
previous_form = current_form
was_berserk_last_turn = you_are_berserk
end
>