Skip to content
gammafunk edited this page Jul 23, 2023 · 4 revisions

Overview

These are bug fixes or small and medium sized projects that add features to qw.

Branches

Tomb

Use distance mapping to move to hatches instead of map mode. Traps make map mode travel unreliable.

Waypoints

Eventually we'd like to not recreate the waypoint every time we enter a Tomb level and record state for which hatch is which. This is complicated by the fact that for Tomb:1 gauntlet and Tomb:2 arrival we can't be 100% certain which is which. We may get teleported off our usual arrival position for these areas by an exploration teleport trap.

Exploration and Travel

Bug: Mysterious stair cycling:

See https://crawl.dcss.io/crawl/morgue/qw/morgue-qw-20230714-044458.txt

Bug: Teleports to disconnected areas with only downstairs or down hatches.

TODO: Describe this accurately.

Resolve discrepancies between traversal data and the map memory

Due to the way autotravel works, we may have incorrect traversal data if qw wasn't interrupted as it moved through an area. This happens often for highly enclosed areas near corners where there's a chance nothing of interest has generated. Hence plan_move_towards_unexplored() often has qw move pointlessly to explore areas that are actually fully explored.

To fix this, during plan_move_towards_unexplored(), for unseen square that's seen as adjacent adjacent to an explored square, check that the map memory agrees that the square is unseen. If not, do something like update_map_cells() but with a starting set that's just the cells with a discrepancy. Then select the closest of the remaining cells that are confirmed as unseen and adjacent to an explored cell.

Exclusions and travel finalization

If we haven't found a branch in a level range and all levels in that range are explored, visit the levels that have exclusions in order. Clear the exclusions upon arrival for each of these levels so we can autoexplore any missing areas. This way making exclusions won't prevent us from finding required branch entrances.

Probably indicate that the exclusions of a level should be cleared directly in the c_persist exclusion state data. Then have update_exclusions() check this and remove any exclusions for the level marked for removal.

Gods

Cheibriados

Try some Cheibriados runs and possibly implement plans for Step from Time and Temporal Distortion.

Items

Use of scrolls of revelation

When looking for portals and possibly in other cases.

Talismans and equipment group planning

Try to assess whether we want 1h melee + shield vs 2h melee + shield vs 1h ranged + shield vs 2h ranged + shield vs UC + talisman. For the melee configurations, also consider whether we want beast talisman, maw talisman, statue talisman, or death talisman. Currently qw simply selects weapon/armour/jewellery in that fixed order, with weapon being decided by starting skill or species and handedness by an rc variable. This project would give qw the ability to assess the best "build" based on what's available.

To choose a build, qw will need autopickup have it assess build items as it finds them. This will require determining the value of a set of items and comparing between those sets. Aptitudes, current skill levels, and current stats would also be factors. This is a substantial project and may take a large amount of time to implement and bug fix.

Ranged: Plan for heavier armours

When is the delay for heavier armours worth in terms of the delay added (based on armour ER, Str, armour and ranged skill)

Movement

Retreating to corridors

Especially for ranged and melee without cleave, try to efficiently and correctly retreate to corridors or choke points when we see many incoming enemies. This would probably be a tactical step, but even if not it would need to coordinate with the hiding and surrounded tactical steps to some degree.

Don't step on traps when possible

The code to do this for distance map may be broken, or the get_move_towards() code may be broken, or both.

Combat

Teleport immediately when entering Vaults:5 in some cases.

If we don't have a vampiric axe, it may be best to teleport immediately. This can be a one-time entry plan, but it may need a check for an acceptable landing position. If teleport lands us within some minimum distance of stairs, we would want to teleport again. We could also try taking a down hatch on V:4 if one is available.

Retreat up and take alternate stairs

Especially for ranged users, instead of stair dancing, try taking alternate stairs, since this is more favorable for ranged combat.

Use of wands and other evocables

Attack wands, hex wands, all the unrand evokers

Comparing ranged attacks to each other and melee.

When is it better to use e.g. penetrating throwing attack or wand compared to our normal ranged or melee weapon.