-
Notifications
You must be signed in to change notification settings - Fork 4
TODO
These are bug fixes or small and medium sized projects that add features to qw.
Use distance mapping to move to hatches instead of map mode. Traps make map mode travel unreliable.
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.
See https://crawl.dcss.io/crawl/morgue/qw/morgue-qw-20230714-044458.txt
TODO: Describe this accurately.
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.
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.
Try some Cheibriados runs and possibly implement plans for Step from Time and Temporal Distortion.
When looking for portals and possibly in other cases.
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.
When is the delay for heavier armours worth in terms of the delay added (based on armour ER, Str, armour and ranged skill)
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.
The code to do this for distance map may be broken, or the get_move_towards()
code may be broken, or both.
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.
Especially for ranged users, instead of stair dancing, try taking alternate stairs, since this is more favorable for ranged combat.
Attack wands, hex wands, all the unrand evokers
When is it better to use e.g. penetrating throwing attack or wand compared to our normal ranged or melee weapon.