re-enable it (whoops) and clean up its code.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5698 c06c8d41-db1a-0410-9941-cceddc491573
Q5YUZONIIPGRWOIQNL6DHRGLKF4V3K5XSZCBH2SL7DP4WPLDNOSQC
26OIELYSIJCJWYEFGIMLOUFROF5T3DW5VQ4H4YDHBIOEOXZ7KWVAC
SQUBRQGLCJ6QRKDFXTEW4G7KIRKZJXZSGENVL6HCSYUXDBIMFOMQC
QGUV5IINCOK6AXWQ2QTZMPDJTEZPON5O565ANT2EE236I5OAPAVAC
ALHRVZZEWK6YGOVB422CRLBKHV6ANAWMPP2EIWURXLKEWSHPHXCAC
4GYZYBY7FFORRNPIEFTV4ZM2C7Z6D2KTQOM537ZCC2YBXT2TNSHAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
3D6NWJ44UYHLZMD3BOQIWXJUEGITAVCHK6Z2WWDQONVQC4HSBRXQC
NGW2XPEX2XRK3CYC37DNUZSSB5IQLECMKRB6NX257I2X3G35LMPAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
EEZCC5GUYHETFQV4KSZJSJ6BTTWZHKS7RXQ25XQ6ODGKLDD4XFRAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
4D4U3FNTYBIIM7Q67O4ISUTYBMT5DP746B7VKLXXJDWPTARPAKDQC
GKA3ZGZ2P6F22FDNSYNQDMCS3N7HNZD5QCOSQ6VJRAU2K5U4YYTQC
RX6575DZOHRUXQUZH34YZGPZJF4STUPLBQDIVTINA2L6LVCKRIGQC
UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC
JGKYRZ34S3I23PMJX6IUBR7EHEFD6I4XXEGXNT7GKT2M2VIRBSMQC
SXTWWMONWAVOGIYRQP6ALJLLNCDNT4NNDTE2HXCUOVP6HZ7XNXFQC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
O2GH2BHUL4XXIIJSMKNV2NIC4KQACE6HLMUL4KEUDFNFEAGMZSZAC
45QV77UI6QFW4234P365LD3FGJYRVWTT5455DPB324NG2NFQMKTQC
CAHE52HL2ZGRJPBYZ3DS4BVKUD2XC7N3SG25TGG7JGHGJDST4P3QC
UBUOMGDTBC5WVGCZWLPC7JXZRPKNODQODFEPWB5ECSJT5J445JLQC
L2BH25YQXSIQ7B66SXO7Q3IWUFVX7HTERRJZ5ZJJZS54ZETVFP6AC
TDAVD56MGLFSMJLPLSYLEVW7MBRMT7V5BNII4TRWVDIHH47CD2OAC
JLCSPMTVGUYTGZNCWPMFITEZZ2CDHL2JF67FFODO5L44OVAW4WWAC
RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC
3ZX3OFVURH4SQETNKSZBESRSV2XX7OYY2V3ZE3YATTRGWAJ53NZAC
WL5WZXFJ6TONUQRSHUY4GQ5USU47ILWNN5X2JDQZO4CRJJZSRQIAC
XPCGZBHHSL6MB3ORMUJI64BAERU6AZTIY6RK56BBW7SNB3IK24IAC
TTGCXNOSKYDDDJYGJV2RKHKJTWZROB7RNOZCXIO2TVXVYIDNIAWQC
---------------------------------------------------------------------------
-- eat.lua:
-- Pick up a butchering weapon if we don't already have one.
-- This requires ) to be in the autopickup option line.
--
-- To use this, add this line to your init.txt:
-- lua_file = lua/pickup.lua
---------------------------------------------------------------------------
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 string.find( item.name(it, "a"), weap ) then
return true
end
end
return false
else
return string.find( skill, "Blades" ) or skill == "Axes"
end
end
function ch_autopickup(it)
if item.class(it, true) == "weapon" then
-- 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
return false
end
-- The item is not a good butchering tool, either.
if item.cursed(it) or not can_butcher(it) then
return false
end
-- Check the inventory for butchering tools.
local inv = item.inventory()
for _, inv_it in ipairs(inv) do
if item.class(inv_it, true) == "weapon"
and can_butcher(inv_it)
and not item.cursed(inv_it) then
return false
end
end
end
-- If we got here, we found no butchering tool in the inventory
-- AND this weapon is a good candidate tool for a butchering tool.
-- Ergo: pick it up.
return true
end
if (slot1 < 0 || slot1 >= ENDOFPACK ||
slot2 < 0 || slot2 >= ENDOFPACK ||
slot1 == slot2 || !is_valid_item(you.inv[slot1]))
if (slot1 < 0 || slot1 >= ENDOFPACK
|| slot2 < 0 || slot2 >= ENDOFPACK
|| slot1 == slot2 || !is_valid_item(you.inv[slot1]))
{
{ "easy_open", &Options.easy_open, option_hboolean },
{ "colour_map", &Options.colour_map, option_hboolean },
{ "clean_map", &Options.clean_map, option_hboolean },
{ "easy_open", &Options.easy_open, option_hboolean },
{ "colour_map", &Options.colour_map, option_hboolean },
{ "clean_map", &Options.clean_map, option_hboolean },
{ "easy_open", &Options.easy_open, option_hboolean },
{ "easy_armour", &Options.easy_unequip, option_hboolean },
{ "easy_unequip", &Options.easy_unequip, option_hboolean },
{ "easy_butcher", &Options.easy_butcher, option_hboolean },
{ "easy_open", &Options.easy_open, option_hboolean },
{ "easy_armour", &Options.easy_unequip, option_hboolean },
{ "easy_unequip", &Options.easy_unequip, option_hboolean },
{ "easy_butcher", &Options.easy_butcher, option_hboolean },
{ "note_skill_max", &Options.note_skill_max, option_hboolean },
{ "delay_message_clear", &Options.delay_message_clear, option_hboolean },
{ "no_dark_brand", &Options.no_dark_brand, option_hboolean },
{ "auto_list", &Options.auto_list, option_hboolean },
{ "pickup_thrown", &Options.pickup_thrown, option_hboolean },
{ "pickup_dropped", &Options.pickup_dropped, option_hboolean },
{ "show_waypoints", &Options.show_waypoints, option_hboolean },
{ "item_colour", &Options.item_colour, option_hboolean },
{ "note_skill_max", &Options.note_skill_max, option_hboolean },
{ "delay_message_clear", &Options.delay_message_clear, option_hboolean },
{ "no_dark_brand", &Options.no_dark_brand, option_hboolean },
{ "auto_list", &Options.auto_list, option_hboolean },
{ "pickup_thrown", &Options.pickup_thrown, option_hboolean },
{ "pickup_dropped", &Options.pickup_dropped, option_hboolean },
{ "show_waypoints", &Options.show_waypoints, option_hboolean },
{ "item_colour", &Options.item_colour, option_hboolean },
{ "target_wrap", &Options.target_wrap, option_hboolean },
{ "easy_exit_menu", &Options.easy_exit_menu, option_hboolean },
{ "target_wrap", &Options.target_wrap, option_hboolean },
{ "easy_exit_menu", &Options.easy_exit_menu, option_hboolean },
# Pick up a butchering weapon if we don't already have one
< do
return false
end
return false
end
return true
end
end
end
add_autopickup_func(pickup_butcher)
end >
for _, inv_it in pairs(item.inventory()) do
if can_butcher(inv_it, item.name(inv_it)) then
return false
end
end
return true
return false
function pickup_butcher(it, name)
if you.has_claws() > 0 then
return false
end
if not you.can_consume_corpses() and not you.god_likes_butchery() then
return false
end
if not can_butcher(it, name) then
if item.cursed(it) then
return false
end
if name:find("distort", 0, true) then
local function can_butcher(it, name)
if not item.can_cut_meat(it) then
# 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
# Note that ")" have to be in the above list for pickup.lua
# (autopickup a butchering tool if you don't already have one)
# to work.