This is an old revision of the document!
Name | dcss:brainstorm:interface: autoexplore |
---|---|
Summary | Please give a brief overview of the dcss:brainstorm:interface content. That is: tell us what you want to change, or add. Put your reasons for wanting it in the main body, not here! Keep it short and sweet. |
Further information | You might want to link to other relevant Wiki pages, SF FRs, or Mantis items - see here for how! You can add as many rows of further information as you need. |
Added by | ortoslon |
Added on | 2011-01-24 01:01 |
Autoexplore should stop immediately before or after entering silence, halos or the LOS of a magically detected monster or a previously seen sleeping monster. The latter would prevent unwanted alerts (but this interruption could be mildly irritating for unstealthy tankish characters so a keyboard toggle like for autopickup might be needed). This should also take magic-mapped terrain into account. Related to Ashenzari — ortoslon 2011-01-24 01:09
I don't see why that would slow you down or be annoying. Wouldn't autoexplore end on the very next turn without the change anyways? There's no reason that'd be any more annoying or in need of toggling than other autoexplore stoppers. — Brickman 2011-01-24 01:56
Autoexplore presently gives up if it realizes you can't travel to an unexplored tile, even if the tile is within LOS of a tile you can reach. This behavior is unintuitive because autoexplore reports that it “can't reach some places” before the tile is revealed, but that it is “done exploring” after you investigate yourself. This is also very annoying in places like Lair, where plants obscure travel to many pockets of wall that otherwise lead nowhere. It would be nice if autoexplore considered tiles with LOS to unexplored tiles as unexplored, as this should solve the problem. — rriegs 2011-06-05 16:21
Autoexplore will silently ignore a desirable item if it is an unreachable place, e.g. under a plant. Instead it would be helpful if it prompted the player that the item was visible as it does for items that are not autopickup. — Tenaya 2011-06-08 01:06
Consider the following not-so-uncommon occurance:
_########
#,,,,,,,#
#,,,,,,,#
#,,,,,,,##
#,,,,,,,,
#,,,,,,,#
######@##
Note the unexplored tile in the upper-left corner (an underscore because docuwiki can't stand leading spaces). This is almost certainly just a wall, but without fail, autoexploration darts to the corridor on the right, presumably because the unexplored tiles there are nearer. Afterwards, autoexplore often crosses the map a few times to fill in the corners it's missed. Yes, yes, optimizing these kinds problems away is practically impossible, but maybe autoexplore could favor unexplored tiles adjacent to diagonally adjacent walls, i.e. those that look like:
#
.#
Can anyone think of any other simple patterns that deserve a quick peek before exploration moves on? — rriegs 2011-07-12 02:42
The obvious example is Swamp, where autoexplore will typically circle the map up to 3 or 4 times before it's actually seen all the corners and edges. I've wondered a few times if anything can be done about this. Maybe autoexplore just needs some knowledge of where room corners and map edges are. This is information that's technically hidden from the player, but in reality a human can work these things out at a very quick glance, whereas programming an efficient AI to do the job is somewhat hard! — mumra
The adjacent-to-diagonally-adjacent-walls (ATDAW) method should actually work well for Swamp/Lair, because the majority of unexplored tiles are indeed just corners. Autoexplore would have to prioritize unexplored ATDAW tiles above all else, regardless of distance, for this to work, but such unexplored tiles won't last long if it does, so I doubt it would waste a bunch of time filling corners in. — rriegs 2011-07-13 17:34
Another idea is to (much more simply) prioritize tiles ordinally adjacent to walls (OATW; i.e. adjacent, but not diagonally adjacent) over all others, as these have a much greater chance of being walls themselves. The more adjacent walls, the higher the priority, so autoexploration will still fill in corners first. As for other map configurations:
This could leave holes in the middle of large rooms, but it's hard to fit a lot of large rooms on one map, so I doubt autoexplore would have a lot of running around to do after finishing with all the perimeters. — rriegs 2011-07-13 17:34
One thing I would find very useful would be for auto-explore to also visit squares with items that warrant visiting. Then add some type of in-game toggle or selection list for auto-explore parameters. For example, when:
hungry/gourmand/(hungry soon?) - stop on corpses, sacrifice diety - stop on corpses, Elyvilon - stop on weapons, fulsome distillation - stop on corpses, nemelex - stop on everything/stop on weapons/stop on armour/stop on wonder-ous items/etc, beogh - stop on orc corpses,
Thanks. — Tenaya 2011-09-07 00:27
Also, unvisited upstairs. — KiloByte 2011-09-07 12:34
Some effort has been put into addressing this in trunk: greedy_sacrificeable will visit (and stop exploration on) squares with items your god accepts, sacrifice_before_explore will sacrifice those items when exploration is resumed, and auto_sacrifice will sacrifice such items without even stopping exploration. This applies equally to corpse-loving gods as well as to Elyvilon, Nemelex, and Beogh.
Also, and though they're not yet in trunk, I've added a set of equivalent options to handle butchery: greedy_butcherable, butcher_before_explore, and auto_butcher. These butcher corpses that can be eaten as well as those that can be used for Sublimation/Simulacra (i.e., everything, if you have either spell). Exploration always pauses for corpses that could either be butchered or sacrificed, so players have a chance to decide what to do, but if they just hit Explore again, sacrifice takes precedence over butchery unless the player can eat the resulting chunks immediately (and has auto_eat_chunks set).
As mentioned, I've given some consideration to butchery for reasons other than food. Similarly, I've designed greedy_butcherable to visit (and pause on) chunks that Vampires could drain/bottle, even though they're not ordinarily interested in butchery. This prevents auto_sacrifice from slurping up corpses that Vampires might otherwise be interested in. Yet to be worked out is consideration of other corpse-driven spells: e.g., pausing for Animate Dead, or even using Animate Skeleton as a means of butchery. (I'm a bit leery of the latter; it feels a bit like botting, but it is strictly superior to butchery when available.)
Please see https://crawl.develz.org/mantis/view.php?id=6258 and linked https://gitorious.org/crawl/crawl/merge_requests/23 for more details and discussion. — rriegs 2012-09-25 07:15
Autoexplore uses the shortest route to travel. When the two other branch exit stairs (and optional upwards exit hatch) are discovered on the first floor of a branch, if the player does not travel them himself first, autoexplore will ignore them for calculating travel routes, even if they are shorter. All of these exits travel to the same place as the original entrance stairs; there are no surprises, they should automatically qualify and not require travel by the player to qualify them. — XuaXua 2011-12-22 19:27
The “stairs” group of the explore_stop option seems to group normal staircases, escape hatches, and vault entrances (ossuary, ice cave, bailey, etc), it would be nice to have separate groups for them, as players may want to ignore the common escape hatches (or even staircases) while autoexploring, but may not want to ignore or miss the rare vault entrances. — kurzedmetal 2012-03-14 23:13
Implemented. Now you can use “explore_stop = branches,portals” (for branch/hell/pan/abyss entrances or just “explore_stop -= stairs” to stop for branch entrances and portals but not other stairs. — neil = |amethyst 2012-03-19 07:46
To ensure you don't lose good parts of a level, and also to let autotravel work, it is good to visit every upstair. However, you currently need to do this manually. This is only a minor annoyance if there are no monsters around, but if there's any fight around, you often have to leave them unvisited and it will then be ignored by autoexplore.
This used to be the case for items as well, but after a recent change, you can xg the item, marking it for pickup once monsters are dealt with.
It'd be great if there was an option for autoexplore to visit unexcluded unvisited upstairs.
Here's something that happens to me at least once per DCSS session:
Meanwhile, where if i'd chosen minotaur berserker (of Trog obviously)
Suggestion: Have an RC file (init.txt) option that let's my Autoexplore ALWAYS visit tiles with a corpse on it, even if not worshipping a sacrifice-happy-god like trog.
For example: autoexplore_visit_corpse_tiles = ( all | no_poisonous_and_mutagenic | no_poisonous | no_mutagenic | none ) where the default would be none.