summaryrefslogtreecommitdiffstats
path: root/crawl-ref/settings
diff options
context:
space:
mode:
authordploog <dploog@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-28 23:05:09 +0000
committerdploog <dploog@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-28 23:05:09 +0000
commit395829b30fde460c96a7429fb87428dd576ab5b8 (patch)
tree941a94eb1c0803f8feb74d3a189d434ed373e5ee /crawl-ref/settings
parent28364e961a56dcc73cf7d15562d253d392745642 (diff)
downloadcrawl-ref-395829b30fde460c96a7429fb87428dd576ab5b8.tar.gz
crawl-ref-395829b30fde460c96a7429fb87428dd576ab5b8.zip
Added several include files to the init.txt. These add colours to items in
the inventory (or other menus) and to messages. Most controversial will be food_colouring which colour codes chunks andcorpses based on their quality. Note that these files are included by default. Thanks go to a great many ##crawl activists, among them b0rsuk, doy, ekiM, stabwound. To do: Examining corpses and chunks should show their edible state as well. Several of the colours should be globally defined; see FR 1977121 for this. Also copy the highlighting of marked items. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5319 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/settings')
-rw-r--r--crawl-ref/settings/autopickup_exceptions.txt46
-rw-r--r--crawl-ref/settings/food_colouring.txt130
-rw-r--r--crawl-ref/settings/init.txt104
-rw-r--r--crawl-ref/settings/menu_colours.txt145
-rw-r--r--crawl-ref/settings/messages.txt38
-rw-r--r--crawl-ref/settings/pickup_butcher_tool.txt48
-rw-r--r--crawl-ref/settings/travel_stoppers.txt7
7 files changed, 468 insertions, 50 deletions
diff --git a/crawl-ref/settings/autopickup_exceptions.txt b/crawl-ref/settings/autopickup_exceptions.txt
new file mode 100644
index 0000000000..81902bac59
--- /dev/null
+++ b/crawl-ref/settings/autopickup_exceptions.txt
@@ -0,0 +1,46 @@
+ae := autopickup_exceptions
+
+#### inclusions ###
+
+# curare is always dangerous on the floor
+ae = <curare-tipped
+
+
+### exclusions ###
+
+# Don't autopickup in the Abyss
+< do
+local old_ch_autopickup = ch_autopickup or function() return true end
+function ch_autopickup(it)
+ return you.where() ~= "Abyss" and old_ch_autopickup(it)
+end
+end >
+
+# universally bad options and scrolls
+ae = potions? of (confusion | degeneration | poison | strong poison)
+ae = potions? of (slowing | paralysis | decay | water)
+ae = scrolls? of (paper | torment | immolation | curse weapon)
+ae = scrolls? of (curse armour | random uselessness | noise)
+
+# Excluding amulets as you only need one of each. Also for some rings.
+# There is some (intended) overlap with pickup.lua, which also exludes
+# the ring of hunger, for example.
+ae = amulet of (inaccuracy | gourmand | controlled flight | warding)
+ae = amulet of (resist mutation | resist slow | clarity | rage)
+ae = ring of (see invisible | levitation | poison resistance | hunger)
+ae = ring of (fire | ice | sustenance | invisibility)
+ae = ring of (magical power | regeneration)
+
+: if you.race() == "Mummy" or you.race() == "Ghoul" then
+ae = ring of life protection
+: end
+
+: if you.race() == "Kenku" then
+ae = potions? of levitation
+: end
+
+: if you.god() == "Trog" then
+ae = wizardry
+ae = staff
+: end
+
diff --git a/crawl-ref/settings/food_colouring.txt b/crawl-ref/settings/food_colouring.txt
new file mode 100644
index 0000000000..edf8ec99a9
--- /dev/null
+++ b/crawl-ref/settings/food_colouring.txt
@@ -0,0 +1,130 @@
+### Colouring of corpses, depending on whether you can eat them, and
+### whether it's safe to eat them. Contains spoilers!
+### Colours both on the ground and in inventory!
+
+msg := message_colour
+inv := menu_colour
+
+# Spriggans don't care for corpses and chunks.
+#
+: if you.race() == "Spriggan" then
+msg = darkgrey:.*corpse
+msg = darkgrey:.*chunk
+inv = darkgrey:.*chunks? of
+inv = darkgrey:.*corpse
+inv = yellow:.*food.*(bread ration|snozzcumber|slice of pizza)
+inv = yellow:.*food.*(orange|banana|lemon|pear|apple|apricot|choko)
+inv = yellow:.*food.*(rambutan|lychee|strawberry|grape|sultana)
+: end
+
+# Mummies don't care for food at all.
+#
+: if you.race() == "Mummy" then
+msg = darkgrey:.*corpse
+msg = darkgrey:.*chunk
+inv = darkgrey:.*food.*
+: end
+
+# Rotten chunks eaters: Ghouls, Ogres, Kobolds, Trolls, Hill Orcs
+#
+: if you.race() == "Ghoul" then
+msg = yellow:rot.*chunks? of
+msg = yellow:rot.*corpse
+inv = yellow:.*rot.*chunks? of
+< elseif you.race() == "Ogre" or
+ you.race() == "Kobold" or
+ you.race() == "Troll" or
+ you.race() == "Hill Orc" then >
+# color rotten chunks as normal chunks
+: else
+msg = lightred:rot.*chunks? of
+msg = lightred:rot.*corpse
+inv = lightred:.*rot.*chunks? of
+inv = lightred:.*rot.*corpse
+autopickup_exceptions = >rot.*chunks? of
+: end
+
+# Kobolds don't want fruits but meat.
+#
+: if you.race() == "Kobold" then
+inv = darkgrey:.*food.*(bread ration|snozzcumber|slice of pizza)
+inv = darkgrey:.*food.*(orange|banana|lemon|pear|apple|apricot)
+inv = darkgrey:.*food.*(rambutan|lychee|strawberry|grape|sultana)
+inv = yellow:.*chunks? of
+: end
+
+# Undead corpses/chunks
+#
+msg = lightred:chunks? of.*(ghoul|necrophage|death drake)
+msg = lightred:(ghoul | necrophage|death drake).*corpse
+inv = lightred:.*chunks? of.*(ghoul|necrophage|death drake)
+
+# Mutagenic corpses/chunks
+#
+msg = magenta:chunks? of.*(draining|orange brain|great orb)
+msg = magenta:chunks? of.*(guardian naga|shapeshifter|very ugly)
+msg = magenta:(draining|orange brain|great orb).*corpse
+msg = magenta:(guardian naga|shapeshifter|very ugly).*corpse
+inv = magenta:.*chunks? of.*(draining|orange brain|great orb)
+inv = magenta:.*chunks? of.*(guardian naga|shapeshifter|very ugly)
+
+# Poisonous corpses/chunks
+#
+msg = lightgreen:chunks? of.*(ant larva|kobold|beetle)
+msg = lightgreen:chunks? of.*(brain worm|green draconian)
+msg = lightgreen:chunks? of.*((black|brown|yellow) snake)
+msg = lightgreen:chunks? of.*(bee|death yak|slug|amoeba)
+msg = lightgreen:chunks? of.*(centipede|mite|snail|gila|hydra)
+msg = lightgreen:chunks? of.*(iron troll|naga|queen|wasp)
+msg = lightgreen:chunks? of.*(redback|(golden|mottled) dragon)
+msg = lightgreen:chunks? of.*((orange|green) rat)
+msg = lightgreen:chunks? of.*(scorpion|soldier ant|spiny|spider)
+msg = lightgreen:(ant larva|kobold|beetle).*corpse
+msg = lightgreen:(brain worm|green draconian).*corpse
+msg = lightgreen:((black|brown|yellow) snake).*corpse
+msg = lightgreen:(bee|death yak|slug|amoeba).*corpse
+msg = lightgreen:(centipede|mite|snail|gila|hydra).*corpse
+msg = lightgreen:(iron troll|naga|queen|wasp).*corpse
+msg = lightgreen:(redback|(golden|mottled) dragon).*corpse
+msg = lightgreen:((orange|green) rat).*corpse
+msg = lightgreen:(scorpion|soldier ant|spiny|spider).*corpse
+inv = lightgreen:.*chunks? of.*(ant larva|kobold|beetle)
+inv = lightgreen:.*chunks? of.*(brain worm|green draconian)
+inv = lightgreen:.*chunks? of.*((black|brown|yellow) snake)
+inv = lightgreen:.*chunks? of.*(bee|death yak|slug|amoeba)
+inv = lightgreen:.*chunks? of.*(centipede|mite|snail|gila|hydra)
+inv = lightgreen:.*chunks? of.*(iron troll|naga|queen|wasp)
+inv = lightgreen:.*chunks? of.*(redback|(golden|mottled) dragon)
+inv = lightgreen:.*chunks? of.*((orange|green) rat)
+inv = lightgreen:.*chunks? of.*(scorpion|soldier ant|spiny|spider)
+
+# Contaminated corpses/chunks
+#
+msg = brown:chunks? of.*(elf|human|drake|blowfly|cockroach)
+msg = brown:chunks? of.*((fire|hill|frost|stone) giant)
+msg = brown:chunks? of.*(mosquito|gnoll|goblin|jackal)
+msg = brown:chunks? of.*(manticore|minotaur|ogre|orc)
+msg = brown:chunks? of.*(war dog|warg|((rock|deep) )?troll)
+msg = brown:chunks? of.*(grey rat|ugly thing|draconian)
+msg = brown:chunks? of.*((quicksilver|iron|swamp|komodo) dragon)
+msg = brown:chunks? of.*(mer(folk|maid))
+msg = brown:(elf|human|drake|blowfly|cockroach).*corpse
+msg = brown:((fire|hill|frost|stone) giant).*corpse
+msg = brown:(mosquito|gnoll|goblin|jackal).*corpse
+msg = brown:(manticore|minotaur|ogre|orc).*corpse
+msg = brown:(war dog|warg|((rock|deep) )?troll).*corpse
+msg = brown:(grey rat|ugly thing|draconian).*corpse
+msg = brown:((quicksilver|iron|swamp|komodo) dragon).*corpse
+msg = brown:(mer(folk|maid)).*corpse
+inv = brown:.*chunks? of.*(elf|human|drake|blowfly|cockroach)
+inv = brown:.*chunks? of.*((fire|hill|frost|stone) giant)
+inv = brown:.*chunks? of.*(mosquito|gnoll|goblin|jackal)
+inv = brown:.*chunks? of.*(manticore|minotaur|ogre|orc)
+inv = brown:.*chunks? of.*(war dog|warg|((rock|deep) )?troll)
+inv = brown:.*chunks? of.*(grey rat|ugly thing|draconian)
+inv = brown:.*chunks? of.*((quicksilver|iron|swamp|komodo) dragon)
+inv = brown:.*chunks? of.*(mer(folk|maid))
+
+# Other food
+#
+inv = lightgrey:^food \ No newline at end of file
diff --git a/crawl-ref/settings/init.txt b/crawl-ref/settings/init.txt
index 5225d8c635..46ec4e4406 100644
--- a/crawl-ref/settings/init.txt
+++ b/crawl-ref/settings/init.txt
@@ -89,10 +89,15 @@ lua_file = lua/pickup.lua
#
##### 4-a Picking up and Dropping ###############
#
-# autopickup = $?!+"/%
-# autopickup_exceptions = scrolls? of random uselessness
-# autopickup_exceptions = <deck of cards
-#
+autopickup = $?!+"/%)
+
+# lua routines for automatically picking up one butchering tool
+# This require ) in autopickup and no further weapons are picked up.
+include pickup_butcher_tool.txt
+
+# There is a long list of autopickup exceptions in
+include autopickup_exceptions.txt
+
# default_autopickup = false
# autopickup_no_burden = true
# pickup_thrown = false
@@ -164,8 +169,6 @@ trap_item_brand = reverse
# tc_excluded = lightmagenta
# tc_exclude_circle = red
-# trap_prompt = false
-
# The following options are not default.
#
runrest_ignore_message = pray:
@@ -174,17 +177,16 @@ runrest_ignore_message = disappears in a puff of smoke
runrest_ignore_message = engulfed in a cloud of smoke
runrest_ignore_message = safely over a trap
runrest_ignore_message = You feel.*sick
-runrest_ignore_poison = 2:30
+runrest_ignore_poison = 2:30
runrest_ignore_monster = fish:2
-runrest_ignore_monster = butterfly:1
+runrest_ignore_monster = butterfly:0
# runrest_ignore_monster = swamp worm:3
+# trap_prompt = false
trapwalk_safe_hp = dart:20,needle:15,arrow:35,bolt:45,spear:40,axe:45,blade:95
-# You can use travel_stop_message to make autotravel stop for situations that
-# warrant your attention. This file (travel_stoppers.txt) contains a list of
-# travel_stop_message settings, with brief descriptions of what they do.
-
+# The file (travel_stoppers.txt) contains a list of travel_stop_message
+# settings, with brief descriptions of what they do.
include = travel_stoppers.txt
##### 4-h Stashes ###############################
@@ -225,38 +227,39 @@ include = travel_stoppers.txt
# mlist_allow_alternate_layout = true
# classic_hud = true
-# Colouring for the inventory
-menu_colour = inventory:lightred: cursed.*(worn|neck|hand|weapon)\)
-menu_colour = inventory:green:(worn|neck|hand|weapon)\)
-menu_colour = inventory:red: cursed
-menu_colour = inventory:red: rotting
+##### Colours (messages and menus) #####
+#
+# menu_colour_prefix_id = true
+menu_colour_prefix_class = true
+
+# Food is colour coded as follows:
+#
+# yellow = preferred food
+# lightgrey = normal food
+# darkgey = cannot be eaten at all
+# lightred = extremely dangerous
+# magenta = mutagenic
+# lightgreen = poisonous
+# brown = contaminated (may cause sickening)
+#
+include food_colouring.txt
+
+# There is elaborate colouring of items in the inventory (and other menus)
+# depending on their usefulness, taking race and other criteria into account.
+include menu_colours.txt
# Colouring of autoinscribed god gifts
menu_colour = pickup:green:god gift
-# Identified artefacts
-menu_colour = inventory:white:( [-+] the)
-
-# This block colours ego items; it requires annotate_item_class = true
-# menu_colour_prefix_id = true
-# menu_colour_prefix_class = true
-# menu_colour_prefix_id = true
-# menu_colour_prefix_class = true
-# menu_colour = inventory:green:(^identified armour .* pair of .* of )
-# menu_colour = inventory:lightgrey:(^identified armour .* pair of )
-# menu_colour = inventory:green:(^identified (weapon|armour) .* of )
+# Colouring of messages
+include messages.txt
# Colouring for the notes
menu_colour = notes:white:Reached XP level
-# Message colours
-message_colour = lightcyan:LOW MAGIC WARNING
-# for weapons of returning not returning to your pack
-message_colour = yellow:fails to return
-
# These lines will suppress extra feedback messages from
# travel/shift-running.
-
+#
# message_colour = mute:warning:comes into view
# message_colour = mute:You start (searching|resting)
# message_colour = mute:Done searching
@@ -320,26 +323,27 @@ tile_show_items = !?/%=([)X}+\_.
# dump_kill_places = (single | all | none)
# dump_item_origins = all,artifacts,ego_arm,ego_weap,jewellery,runes
# dump_item_origin_price = -1
-# dump_message_count = 7
-# dump_order = header,hiscore,stats,misc,notes,inventory,
-# dump_order += turns_by_place,skills,spells,overview,mutations,
-# dump_order += messages,screenshot,monlist,kills_by_place,kills
+# dump_message_count = 20
+# dump_order = header, hiscore, stats, misc, notes, inventory,
+# dump_order += turns_by_place, skills,s pells, overview, mutations,
+# dump_order += messages, screenshot, monlist, kills_by_place, kills
##### 5-b Notes #################################
#
# user_note_prefix=@@@
-# note_items = rod,book
-# note_monsters = orb of fire
-# ood_interesting = 8
-# note_hp_percent = 5
-# note_skill_levels = 1,5,10,15,27
-# note_all_skill_levels = true
-# note_skill_max = true
-# note_all_spells = true
-# note_all_spells = true
-
-# The following takes a note whenever the Abyss is left:
-# note_messages = You pass through the gate
+ood_interesting = 8
+note_hp_percent = 5
+note_skill_levels = 1,5,10,15,27
+note_all_skill_levels = true
+note_skill_max = true
+note_all_spells = true
+note_all_spells = true
+note_items = rod of, acquirement, preservation, running, of Zot
+note_messages = You pass through the gate
+note_messages = [bB]anish.*Abyss
+note_messages = Your scales start
+note_messages = protects you from harm
+note_monsters = orb of fire, ancient lich, Sigmund
##### 6- Miscellaneous #############################################
#
diff --git a/crawl-ref/settings/menu_colours.txt b/crawl-ref/settings/menu_colours.txt
new file mode 100644
index 0000000000..7164e12d7d
--- /dev/null
+++ b/crawl-ref/settings/menu_colours.txt
@@ -0,0 +1,145 @@
+# Changing colours of items in the inventory and other menus
+
+menu := menu_colour
+ae := autopickup_exceptions
+
+# Important game items
+#
+menu = lightmagenta:.*misc.*rune( of Zot)?
+menu = lightmagenta:.*orb.*Zot
+
+# Identified artefacts
+#
+menu = magenta:.*(weapon|armour|jewellery|staff).*[+-] the
+
+# Unidentified weapon artefacts
+#
+menu = magenta:.*weapon.* ((brightly|faintly) glowing|smoking|twisted)
+menu = magenta:.*weapon.* (bloodstained|shimmering|warped|crystal)
+menu = magenta:.*weapon.* (jewelled|transparent|encrusted|pitted|slimy)
+menu = magenta:.*weapon.* (polished|fine|crude|ancient|ichor-stained)
+menu = magenta:.*weapon.* (steaming|shiny|polka-dotted)
+menu = magenta:.*weapon.* (golden|purple|bone|serpentine|ruby|chunky)
+menu = magenta:.*weapon.* (thin|green|ivory|ephemeral|blackened)
+menu = magenta:.*weapon.* (sapphire|rusty|blue|brutal|adamantine|ebony)
+menu = magenta:.*weapon.* (mangy|mithril|black|very long|steel|tiny)
+menu = magenta:.*weapon.* flaming crossbow
+
+# Unidentified armour artefacts
+#
+menu = lightgrey:.*armour.* jewelled helm(et)?
+menu = magenta:.*armour.* ((brightly|faintly) glowing|smoking|twisted)
+menu = magenta:.*armour.* (bloodstained|shimmering|warped|heavily runed)
+menu = magenta:.*armour.* (jewelled|transparent|encrusted|pitted|slimy)
+menu = magenta:.*armour.* (polished|fine|crude|ancient|ichor-stained)
+menu = magenta:.*armour.* (steaming|distressingly furry|plaid|tie-dyed)
+menu = magenta:.*armour.* (dull|golden|silk|tattered|round|bronze)
+menu = magenta:.*armour.* (fabulously|vibrating|soft|smelly|red|thick)
+menu = magenta:.*armour.* (weird-looking|blue|black|dirty|paisley)
+menu = magenta:.*armour.* (chartreuse)
+
+# Unidentified jewellery artefacts
+#
+menu = magenta:.*jewellery.* ((brightly|faintly) glowing|smoking)
+menu = magenta:.*jewellery.* (shimmering|warped|crystal|diamond)
+menu = magenta:.*jewellery.* (transparent|pitted|slimy|polished|fine)
+menu = magenta:.*jewellery.* (crude|ancient|steaming|scintillating)
+menu = magenta:.*jewellery.* (sparkling|flickering|glittering)
+menu = magenta:.*jewellery.* (black |blood-stained|cast-iron)
+menu = magenta:.*jewellery.* (phosphorescent)
+menu = magenta:.*jewellery.* an (encrusted|emerald) (ring|amulet)
+menu = magenta:.*jewellery.* a (runed|twisted|shiny|ruby) (ring|amulet)
+menu = magenta:.*jewellery.* a (sapphire) ring
+menu = magenta:.*jewellery.* a (jade) amulet
+
+# Possible ego items
+#
+menu = lightblue:.*weapon.*(runed|glowing)
+menu = lightblue:.*armour.*(runed|glowing|embroidered|shiny|dyed)
+
+# Mummies' potions
+#
+: if you.race() == "Mummy" then
+menu_colour = darkgrey:.*potion.*
+: end
+
+# Emergency items
+#
+menu = cyan:.*scroll.*(blinking|teleport|fear)
+menu = cyan:.*wand.*(teleport|healing|hasting)
+menu = cyan:.*potion.*(heal|berserk|speed|resistance)
+menu = cyan:.*misc.*[lL]antern
+
+# Good items
+#
+menu = magenta:.*scroll.*(acquirement)
+menu = magenta:.*potion.*(gain (strength|dexterity|intelligence))
+menu = magenta:.*potion.*(experience|magic)
+: if not you_real_undead() then
+menu = magenta:.*potion.*(of mutation)
+: else
+menu = lightred:.*potion.*(of mutation)
+: end
+
+# Dangerous items
+#
+menu = lightred:.*scroll.*(forgetfulness|torment|curse armour)
+menu = lightred:.*scroll.*(immolation|curse weapon)
+menu = lightred:.*potion.*(slowing|degeneration|poison|confusion)
+menu = lightred:.*potion.*(paralysis|decay)
+menu = lightred:.*jewellery.*(inaccuracy|hunger)
+
+# Useless items
+#
+menu = darkgrey:.*scroll.*(random uselessness|paper|noise)
+menu = darkgrey:.*potion.*water
+
+: if you.race() == "Mummy" then
+menu = darkgrey:.*jewellery.*(sustenance)
+: end
+
+: if you_real_undead() then
+menu = darkgrey:.*jewellery.*(regeneration|rage)
+: end
+
+: if string.find(you.race(), "Draconian", 0, true) then
+menu = darkgrey:.*jewellery.*(controlled flight)
+ae = >amulet.*(controlled flight)
+: end
+
+: if you.race() == "Green Draconian" or you.race() == "Naga" then
+menu = darkgrey:.*jewellery.*(poison resistance)
+ae = >ring.*(poison resistance)
+: end
+
+< if you.race() == "Naga" or
+ you.race() == "Spriggan" or
+ you.race() == "Vampire" then >
+menu = darkgrey:.*jewellery.*(see invis)
+ae = >ring.*(see invis)
+:end
+
+: if you.race() == "Spriggan" then
+menu = darkgrey:.*jewellery.*(sustenance)
+ae = >ring.*(sustenance)
+:end
+
+# need to save and restore after temple if you get trog later
+: if you.god() == "Trog" then
+menu = darkgrey:.*jewellery.*(rage|wizardry)
+ae = >amulet.*(rage)
+ae = >ring.*(wizardry)
+: end
+
+# Exceptions
+#
+menu = yellow:.*potion.*(porridge|gluggy white)
+
+# Defaults for normal items
+#
+menu = lightgreen:uncursed.*\(.*(worn|neck|hand|weapon).*\)
+menu = lightred:cursed.*\(.*(worn|neck|hand|weapon).*\)
+menu = white:\(.*(worn|neck|hand|weapon).*\)
+menu = green:uncursed
+menu = red:cursed
+menu = lightgrey:^(scroll|potion|ring|amulet) \ No newline at end of file
diff --git a/crawl-ref/settings/messages.txt b/crawl-ref/settings/messages.txt
new file mode 100644
index 0000000000..91220a39cd
--- /dev/null
+++ b/crawl-ref/settings/messages.txt
@@ -0,0 +1,38 @@
+### Highlighting of various messages
+
+msc := message_colour
+
+# Really important messages
+#
+msc = lightred:drains you
+msc = lightred:feel drained
+msc = lightred:strangely unstable
+msc = lightred:curare-tipped.*hits you
+msc = lightred:Space warps.* around you
+msc = lightred:Space bends around you
+msc = lightred:is eaten away
+msc = lightred:you are carrying w.* destroyed
+msc = lightred:you are carrying catche?s? fire
+msc = lightred:you are carrying freezes? and shatters?
+msc = lightred:Some of your food is covered with spores
+msc = lightred:lose your buoyancy
+msc = lightred:sense of stasis
+msc = lightred:clumsily bash
+
+# Less urgent, but still significant messages
+#
+msc = yellow:ticking.*clock
+msc = yellow:snort
+msc = yellow:coins.*counted
+msc = yellow:tolling.*bell
+msc = lightcyan:LOW MAGIC WARNING
+msc = yellow:fails to return
+
+# Unimportant messages and combat clutter
+#
+message_colour = darkgrey:You start (resting|searching)
+message_colour = darkgrey:Unknown command
+message_colour = darkgrey:disappears in a puff of smoke
+#
+message_colour = darkgrey:miss(es)? (the|you|it)
+message_colour = darkgrey:but (do no|doesn't do any) damage
diff --git a/crawl-ref/settings/pickup_butcher_tool.txt b/crawl-ref/settings/pickup_butcher_tool.txt
new file mode 100644
index 0000000000..0a6e5e7f3e
--- /dev/null
+++ b/crawl-ref/settings/pickup_butcher_tool.txt
@@ -0,0 +1,48 @@
+# Pick up a butchering weapon if we don't already have one
+# This requires ) to be in the autopickup option line
+
+< do
+local old_ch_autopickup = ch_autopickup or function() return true end
+local function can_butcher(it)
+ if item.name(it):find("distort", 0, true) then
+ return false
+ end
+ local skill = item.weap_skill(it)
+ -- have to handle polearms separately, since only some of them can butcher
+ if skill == "Polearms" or skill == "Staves" then
+ local butcherable_polearms = {
+ "scythe", "lajatang", "halberd", "bardiche", "glaive"
+ }
+ for _, weap in ipairs(butcherable_polearms) do
+ if item.name(it):find(weap, 0, true) then return true end
+ end
+ return false
+ else
+ return skill:find("Blades", 0, true) or skill == "Axes"
+ end
+end
+function ch_autopickup(it)
+ if item.class(it, true) == "weapon" then
+ local need_blade = true
+ -- Trolls and Ghouls don't need weapons to butcher things, and Mummies
+ -- and Spriggans can't eat chunks. Ideally, we could detect a player
+ -- with the claws mutation here too, but that's not currently possible
+ if you.race() == "Troll" or
+ you.race() == "Ghoul" or
+ you.race() == "Mummy" or
+ you.race() == "Spriggan" then
+ need_blade = false
+ else
+ for _, inv_it in pairs(item.inventory()) do
+ if item.class(inv_it, true) == "weapon" and
+ can_butcher(inv_it) then
+ need_blade = false
+ end
+ end
+ end
+ return need_blade and not item.cursed(it) and can_butcher(it)
+ else
+ return old_ch_autopickup(it)
+ end
+end
+end > \ No newline at end of file
diff --git a/crawl-ref/settings/travel_stoppers.txt b/crawl-ref/settings/travel_stoppers.txt
index f71186eba5..30913a2bf1 100644
--- a/crawl-ref/settings/travel_stoppers.txt
+++ b/crawl-ref/settings/travel_stoppers.txt
@@ -24,3 +24,10 @@ stop = You fall through a shaft
# Ailments
#
stop = flesh start
+
+# Ghouls
+#
+: if you.race() == "Ghoul" then
+stop = smell.*(rott(ing|en)|decay)
+stop = something tasty in your inventory
+: end \ No newline at end of file