0.3.0 (2024-02-11)
This version supports DCSS 0.31.
Highlights
- Retreating tactics for characters using launchers.
- Greatly improved threat assessment.
- Attack comparison that lets qw use throwing or wands for nasty monsters.
Backgrounds and Species
- Support for Djinni and using HP as MP.
Configuration and Performance
- Scripts to run qw locally:
- The util/run-qw.sh script runs qw for a given number of iterations,
optionally keeping track of completed games. - This script will back up the save and c_persist files if it sees that a
crawl run did not remove its save file. - The util/batch-qw.sh script runs instances of run-qw.sh in parallel via
tmux, passing through command-line arguments as necessary.
- The util/run-qw.sh script runs qw for a given number of iterations,
- A
Save
goal for testing that saves and quits. Upon resumption of the game,
qw considers this goal complete. - A
Quit
goal that can be used for testing.
Debug
toggle_single_step()
enables/disables automatic mode.toggle_delay()
enables/disables the delay between actions.get_qw()
becomesget_vars()
, which now returns both theqw
andconst
tables.
Exploration and Map
- Take alternative stairs when threat levels are high at a destination
staircase:- Track the total threat levels last seen in LOS for all staircases.
- If at least one destination staircase has high threat level, take whichever
other staircase has the lowest threat level instead. - Unvisited stairs are considered to have high threat.
- Assume very high threat levels for unvisited arrival stairs on Vaults:5.
- If a destination staircase has very high threat levels, take a down-hatch
to the level instead when one is available. - If no hatch is available when all destination staircases have very high
threat levels, read teleport before taking one of the stairs.
- Exploration for and movement to the Abyssal rune is greatly improved:
- Move towards a reachable position that's both adjacent to unexplored areas
and as close as possible to the runelight/rune. - Always move towards positions related to the Abyssal rune goal if we're at
least 75% HP.
- Move towards a reachable position that's both adjacent to unexplored areas
- A plan for distance-mapped movement towards runes to cover cases when those
are blocked by plants, clouds, or traps. - Traps are considered traversable, but we try to avoid moving onto them when
possible.
Items and Equipment
- Use of the following wands for individual high threat monsters: acid,
iceblast, light, mindburst, paralysis, and quicksilver. - Use of might and haste potions based on threat.
- Use Fragile equipment. qw gives Fragile items the lowest min rating, but
doesn't penalize current or max rating. It will unequip/destroy Fragile items
when an upgrade is found, but never temporarily swap Fragile weapons. - Evaluate Okawaru's capstone gifts similar to how we evaluate acquirement
items. For armour, pick the item giving the biggest increase in utility
compared to what's currently in the slot. - Increase valuation of the penetration launcher ego (based on results seen
with Stormbow). - Evaluation for the Dreamshard Necklace.
- Pick up gems we happen to find.
Strategy and Tactics
- Retreating for characters using launchers. Evaluate nearby retreat squares
based on how many monsters could melee qw at that position compared to our
current position. Retreat distance and number of non-reaching ranged monsters
are also weighed when considering a potential retreat position. - Improved threat assessment.
- Monsters are evaluated based on threat level, with usage of buffs such as
Finesse, Heroism, Berserk, Might, and Haste being based on the cumulative
threat in los and on individual monsters having high threat. - Attempt to flee to upstairs if threat levels are extremely high and we
can't find a retreat position where two of fewer monsters can melee us. If
we can't flee in this situation, read teleport.
- Monsters are evaluated based on threat level, with usage of buffs such as
- Treat certain monsters such as moths of wrath, glass eyes, and hellions as
threats that should receive targeting priority over the default
considerations like distance and threat level. - Attempt to flee or teleport when in bad forms when no potions of cancellation
are available. - Track item identification and try to emergency quaff unided potions/read
unided scrolls when we need to heal wounds or teleport and those items aren't
identified yet. - Add enemy monsters crawl currently considers as "safe" to the enemy list so
we can attack them from safety.