test: add regression tests for NPC interaction and TownManager
Adds 41 tests covering the highest-risk production paths:
test/npc/test_npc_manager.py (14 tests):
- _action_btns_visible: missing NPC, white found, nothing found
- open_npc_menu: fast path (Bug 6), name-tag in ROI (Bug 3),
ROI gate blocks outside-ROI click (Bug 7), pose-distance gate (Bug 4),
body+pose confirmed triggers click, timeout returns False
- press_npc_btn: white/blue/grayscale fallback chain, red=cannot-afford, nothing found
test/town/test_town_manager.py (27 tests):
- get_act_from_location: all five acts + sub-locations, bad input
- identify: True never returned (Bug 1), A5 fallback (Bug 5),
A5-also-fails returns new_loc, _cain_failed_acts skip
- open_wp: budget increment, exhaustion fast-path (Bug 9), reset, success
- buy_consumables: unknown loc, trade-menu failure (Bug 10), success, no-need skip
- stash: current-act delegation, A5 travel when act can't stash
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>