# Crawl Init file tile_web_mouse_control = false ############### ### Display ### ############### view_delay = 300 hp_colour = 100:green, 99:lightgray, 75:yellow, 50:lightred, 25:red mp_colour = 100:green, 99:lightgray, 75:yellow, 50:lightred, 25:red hp_warning = 50 monster_list_colour = monster_list_colour += friendly:green,neutral:brown monster_list_colour += good_neutral:brown,strict_neutral:brown monster_list_colour += trivial:darkgrey,easy:lightgrey monster_list_colour += tough:yellow,nasty:lightred ############### ### Console ### ############### # Enable use of darkgrey. # needed in 0.20 bold_brightens_foreground=true best_effort_brighten_background=false ## For item_glyph, subsequent matches override previous ones. item := item_glyph ## Reasonable defaults item += potion:lightgrey item += scroll:lightgrey item += wand:lightgrey item += dangerous_item:blue item += useless_item:darkgrey ### Potions ### item += potions? of.*(lignification|mutation):blue item += potions? of.*heal wounds:lightred item += potions? of.*(curing|flight):lightgrey item += potions? of.*(experience|beneficial mutation):white item += potions? of.*berserk:brown item += potions? of.*might:yellow item += potions? of.*brilliance:green item += potions? of.*(invisibility|agility):lightgreen item += potions? of.*cancellation:cyan item += potions? of.*cure mutation:lightcyan item += potions? of.*(magic|ambrosia):magenta item += potions? of.*(haste|resistance):lightmagenta ### Scrolls ### item += scroll.*noise:blue item += scroll.*recharging:lightred item += scroll.*(amnesia|curse):lightgrey item += scroll.*acquirement:white : if you.race() == "Vampire" or you.race() == "Mummy" : or you.race() == "Ghoul" then item += scroll.*holy word:blue item += scroll.*torment:brown : else item += scroll.*holy word:brown item += scroll.*torment:blue : end item += scroll.*(summoning):yellow item += scroll.*(silence|vulnerability|immolation):green item += scroll.*(enchant|brand weapon):lightgreen item += scroll.*identify:cyan item += scroll.*magic mapping:lightcyan item += scroll.*(fog|teleport):magenta item += scroll.*(fear|blink):lightmagenta ### Wands ### item += wand of.*random effects:blue item += wand of.*heal wounds:lightred # frost/mdart not needed in 0.18 item += wand of.*(flame|frost|magic dart):lightgrey item += wand of.*iceblast:white # fire/cold/drain not needed in 0.18 item += wand of.*(acid|fire|cold|drain):yellow # fireball not needed in 0.18 item += wand of.*(lightning|fireball):brown item += wand of.*(slowing|confusion|polymorph):green item += wand of.*(invisibility|paralysis|enslavement):lightgreen item += wand of.*(digging|disintegration):cyan item += wand of.*teleportation:magenta item += wand of.*hasting:lightmagenta ### General Identification ### item += ( rod ):yellow item += (identified|known).*(jewellery|magical staff):brown item += identified.*spellbook:magenta item += unidentified.*(potion|scroll|jewellery|wand|rod|magical staff).*:lightblue item += unidentified.*book:lightmagenta item += manual:lightcyan item += manual of:cyan ### Jewellery ### item += known.*(ring of (dexterity|strength|intelligence|slaying|evasion|protection(?! from))|amulet of reflection):magenta item += identified.*artefact.*(jewellery):white item += unidentified.*artefact.*(jewellery).*:lightmagenta item += (a )?stones?$:lightgray ### Food ### item += chunks?.*flesh:lightgrey : if you.race() == "Vampire" then item += potions? of blood:lightgrey : end item += mutagenic.*chunk:blue item += evil_eating.*chunk:red item += inedible.*chunk:darkgrey item += fruit:brown item += (pizza|jerky|jerkies):yellow item += royal jell:green item += bread ration:lightgreen item += meat ration:lightred # Want this to override anything above item += useless:darkgrey # Only mark these types when forbidden; for other types it looks odd. item += forbidden.*(potion|scroll|food):red mons := mon_glyph # Monsters that can be easy to miss mons ^= * : ✱ mons ^= dancing weapon : cyan { mons ^= spectral weapon : lightcyan { # Classed Demonspawn mon += blood saint:9 # not needed in 0.18 mon += chaos champion:9 mon += warmonger:9 mon += corrupter:9 mon += black sun:9 # Wall glyphs; requires a font and terminal that can render these. feature += crystal wall {░} feature += stone wall {▒} feature += metal wall {▓} feature += unnaturally hard rock wall {█} feature += altar {⚑} ############# ### Tiles ### ############# tile_window_width = 1300 tile_window_height = 700 tile_full_screen = false tile_map_pixels = 3 ## To set up RandomTiles, you need (1) the include below and (2) to add/modify ## the ready() function in your rc. See my ready() section below and the ## project page: https://github.com/gammafunk/dcss-rc#randomtiles ################### ### Menu Colors ### ################### # These should match the item_glyph colours exactly when possible. # For menu_colour, the first match ignores subsequent matches. menu := menu_colour menu = # Many of the entries below come from dat/defaults/menu_colours.txt, # which we have to duplicate here since we want only some of the # entries from that file. menu += notes:white:Reached XP level ### General Inventory### # Items currently not affecting you. menu += darkgrey:(melded) # Items disliked by your god. menu += red:forbidden # Useless items, comes here to override artefacts etc. menu += darkgrey:.*useless.* # Handle cursed and equipped items early to override other colour settings. menu += lightred:.*equipped.* cursed menu += red: (a|the) cursed menu += inventory:lightgreen:.*equipped.* # Colouring of autoinscribed god gifts menu += pickup:lightred:god gift # Highlight (partly) selected items menu_colour += inventory:white:\w \+\s menu_colour += inventory:white:\w \#\s ### Food ### # Color chunks, put ordinary ones on lightgrey. menu += red:evil_eating.*chunk menu += blue:mutagenic.*chunk menu += darkgrey:inedible menu += lightgrey: +(chunks?$|chunks? +) # These are analogous to chunks : if you.race() == "Vampire" then menu += lightgrey:potions? of blood : end # Other food menu += brown:fruit menu += yellow:(pizza|jerky|jerkies) menu += green:royal jell menu += lightgreen:bread ration menu += lightred:meat ration ### Potions ### # Mostly harmful menu += blue:potions? of.*(lignification|(?> note_items += experience,of resistance, Archmagi # 0.18 note_items += crystal plate armour,pearl dragon (armour|scales) note_items += artefact,wand of (heal wounds|hasting|teleportation) note_messages += You feel monstrous note_messages += You pass through the gate note_messages += cast .* Abyss # Noteable monsters # Undead note_monsters += ancient lich,curse skull,curse toe,greater mummy # Depths note_monsters += caustic shrike # Special hall_of_zot spawns note_monsters += killer klown,electric golem,orb of fire dump_message_count = 30 dump_order = header,hiscore,stats,misc,mutations,skills,spells,inventory dump_order += overview,screenshot,monlist,messages,skill_gains,action_counts dump_order += vaults,notes,kills ############ ## Macros ## ############ macros += M 1 za macros += M 2 zb macros += M 3 zc ########### ### Lua ### ########### { 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 }