0.2: qw 0.2.0
0.2.0 (2023-06-16)
This version supports DCSS 0.30.
Release Highlights
- Support for ranged combat with launchers.
- Greatly improved within-level pathing.
- Use of exclusions for unreachable monsters.
Configuration and Performance
- The default 15-rune route now attempts Slime before converting to TSO.
- The
Orbgoal now only has qw seek and pick up the Orb of Zot. This can be
used with subsequent non-winning goals to do challenges like Orb run Tomb. - A new
Escapegoal that has qw exit on D:1 (regardless of having the Orb). - A new
Wingoal that executes theOrbgoal followed byEscape. This goal
is always selected when the end of the goal list is reached. - qw assumes 32MB of max memory available to lua and will halt execution if 90%
of this limit is reached. Crawl has a new-lua-max-memoryargument that
should be used to increase the memory available to clua to at least 32MB. - A
COROUTINE_THROTTLEvariable to enable or disable use of yielding to
break up cpu-intensive calculations. - Crawl should be run with the
-no-throttleargument for WebTiles or
dgamelaunch servers, since we can't guarantee that qw won't trigger crawl's
lua throttle even if qw's coroutine throttle is enabled. - Gameplans are now referred to as goals in both documentation and code.
Debug
- New functions
reset_coroutine()andresume_qw()to aid in debugging when
qw halts due to an error. - An
override_goal()function to set which has qw attempt the specified goal. - New functions
print_traversal_map(),print_unexcluded_map(),
print_distance_maps(), andprint_distance_map()to display sections of
map data in the message log.
Exploration and Map
- Use of distance mapping to navigate many previously unsolveable pathing
situations:- Unreachable monsters without
los_no_transthat still prevent resting or
autoexplore. - Unreachable monsters with
los_no_transthat we can't move to and that
can't move to us. - Unreachable travel destinations due to firewood monsters blocking the path.
- Moving towards unexplored areas to satisfy exploration goals when
autoexplore is unable to reach these areas.
- Unreachable monsters without
- Use of exclusions for unreachable monsters:
- Unreachable monsters we can't attack with ranged.
- Unreachable monsters that get us to low HP while we try to use ranged
attacks. - Consider whether we have digging and want to dig out a currently
unreachable monster instead of excluding it. - Move past excluded monsters to the next feature we need to take for travel
purposes. - Mark excluded stairs in exclusions as unsafe. Don't stairdance up a
staircase if its destination staircase is unsafe.
- Move towards the abyssal runelights to help find the abyssal rune.
- Move towards the abyssal rune even with hostiles around if HP is not low.
- The Orb run and Abyss are handled in what is now the single move plan list.
This allows attempting non-Win goals after the Orb has been obtained, e.g.
Orbrun Tomb. - Waypoints are used on every level, allowing execution of plans that use
distance mapping in the Abyss, Pan, and in portals. - Monster pathing checks now considers each monster's specific traversal
abilities. - qw can recover from missing
c_persistdata and will visit any levels as
necessary to re-record data.
Items and Equipment
- Assessment and use of launcher weapons for characters that start with one.
- Dex and Str from items are valued according to which stat qw's weapon uses.
- On weapons, value the spectral brand twice as much and the electrocution
brand half as much. The new heavy brand is valued 33% more than
flaming/freezing. - More accurately keep currently unfavorable items based on future goals:
- Items that won't be disliked by future gods.
- Items that don't remove availability of MP required for future gods.
- Correct evaluation of future god MP requirements for items.
- Evaluation of Str and Dex based on which stat our weapon uses.
Strategy and Tactics
- Targeting for throwing and launchers that chooses the best enemy based on
relevant criteria like distance, threat, damage level, etc. - A new tatical step that tries to move away from slimy walls.
- The water movement tactical step can activate if we have a ranged target even
if we have no adjacent enemies.