autofight_stop = 60 autopickup += $?!"/%}\( ### armour and weapon pickup?? ## autobutcher # Set Alias for Autopickup Exceptions ae := autopickup_exceptions ae += useless_item, dangerous_item, evil_item # Autopickup artefacts ae += 2) or armourname:find("dragon") or armourname:find("troll") then return it.artefact else return it.artefact or it.branded or it.ego end end return true end if (sub_type == "shield") then if equipped_item then return it.artefact or it.branded or it.ego end end end if (class == "weapon") then if it.is_useless then return false end if (you.xl() < 12) or (you.god():find("Nemelex") or (you.god():find("Yred")) or (you.god():find("Beogh"))) then if it.branded and not (it.name() == "club") then return false end end local weapon = items.equipped_at("Weapon") if weapon then if (weapon.branded or weapon.artefact) then return false else local weapon_name = weapon.name() local sb = you.skill("Short Blades") local lb = you.skill("Long Blades") local axe = you.skill("Axes") local mf = you.skill("Maces & Flails") local pole = you.skill("Polearms") local staff = you.skill("Staves") if sb > 6 then if name:find("quick blade") then return true end end if lb > 8 then if name:find("demon blade") then return true end if name:find("bastard sword") then return true end if name:find("double sword") then return true end end if lb > 14 then if name:find("claymore") then return true end if name:find("triple sword") then return true end end if axe > 8 and mf <= 8 then if name:find("battleaxe") then return true end if name:find("broad axe") then return true end if name:find("war axe") then return true end if name:find("executioner") then return true end end if axe > 18 then if name:find("executioner") then return true end end if mf > 8 and staff <= 8 and axe <= 8 then if name:find("eveningstar") then return true end if name:find("demon whip") then return true end if name:find("sacred scourge") then return true end if name:find("dire flail") then return true end end if mf > 14 and staff <= 14 and axe <= 14 then if name:find("great mace") then return true end end if pole > 8 and staff <= 8 then if name:find("trident") then return true end if name:find("demon trident") then return true end if name:find("trishula") then return true end end if pole > 14 and staff <= 14 then if name:find("glaive") then return true end if name:find("bardiche") then return true end end if staff > 8 then if name:find("lajatang") then return true end end end elseif (you.skill("Unarmed Combat") < 3) then return true end end end) } travel_delay = 1 explore_stop = glowing_items,artefacts,greedy_pickup_smart explore_stop += greedy_visited_item_stack,stairs,shops explore_stop += altars,portals,branches,runed_doors,greedy_sacrificeable # Adjusts how much autoexplore favours attempting to discover room perimeters and corners. # At values higher than 0, autoexplore will more heavily favour visiting squares that are next to walls # reasonable values range from 0 to 10 maybe? explore_wall_bias = 3 # Only stop resting when both HP/MP are full rest_wait_both = true allow_self_target = prompt sort_menus = true #WARNING TO KEYPAD USERS: The number 7 is mapped to the letter 'y' easy_confirm = all confirm_butcher = never easy_eat_chunks = true auto_eat_chunks = true auto_drop_chunks = yes easy_eat_contaminated = true equip_unequip = true 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 stat_colour = 3:red, 7:lightred # Removes the more prompts when outputting more than one screen of messages show_more = false small_more = true msg_min_height=7 msg_max_height=10 default_manual_training = true function can_eat_chunks() if you.race()=="Spriggan" then return end if you.gourmand() or you.race()=="Kobold" or you.race()=="Felid" then return you.hunger()<6 end return you.hunger()<4 end function edible_corpse(item) if not can_eat_chunks() then return end if food.rotting(item) and not you.saprovorous() then return end if food.dangerous(item) then return end return string.find(item.name(),"corpse") end function over_corpse() for item_under_you in iter.invent_iterator:new(you.floor_items()) do if string.find(item_under_you.name(),"corpse") then return true end end end function over_edible_corpse() for item_under_you in iter.invent_iterator:new(you.floor_items()) do if edible_corpse(item_under_you) then return true end end end function walk_over_edible_corpses(item) return edible_corpse(item) and not over_edible_corpse() end function ready() if not default_options then default_options=options.runrest_stop_message crawl.setopt("confirm_butcher=never") crawl.setopt("auto_eat_chunks=true") end if can_eat_chunks() then crawl.setopt("runrest_stop_message+=corpse") else crawl.setopt("runrest_stop_message="..default_options) end if you.feel_safe() and over_edible_corpse() then crawl.sendkeys("c") crawl.process_command() end end add_autopickup_func(walk_over_edible_corpses)