Parser fix: parseEquipHTML now captures the direct-child divs of the
tooltip that were previously skipped:
- Proc lines: 'Penetrated Armor: 21.7% chance' -> stats['Proc Penetrated Armor']
- Base damage: '+708 Piercing Damage' -> stats['Weapon Damage']
- Elemental lines: '+25 Fire Damage' / '+30 Elec Strike' -> stats['Elemental Fire']
Scorer (gearScoreWeapon + analyze_gear.py):
- Weapon Damage x 0.30 (base damage matters)
- Elemental damage x 0.25 per element
- Proc bonuses by type: CC procs (stun/freeze) x0.45, armor break
x0.35, DoT x0.25, generic x0.15
- All multiplied by the same quality multiplier afterward
So an elemental weapon with a strike proc now gets its due — the
short-margin stat winner may no longer win once damage+proc count.
Note: re-scrape the armory/store after updating so the new fields
get captured (old entries lack Weapon Damage/Proc keys).
AGY built a full 60-round arena simulator (hv-battle-sim.py) using
the user's actual gear/stats and ran 10 iterations:
Original: 0/10 survived (0%)
Improved: 10/10 survived (100%)
Critical changes from simulation findings:
- Health items + Cure moved to TOP of priority chain (before skills)
- Dynamic HP threshold: 60% when 7+ mobs, normal threshold otherwise
- SP threshold raised from 55% to 60% for Spark safety buffer
- Mana maintenance raised to prevent spell lockout
- AoE crowd control prioritized for 4+ mobs
Full report in agy_sim_output.txt
- scrapeBuyPage() scrapes equipment for sale from Bazaar Buy tab
(URL: ss=am&screen=buy or ss=bi), marks as source='buy'
- Stores merge with existing: buy items don't overwrite equipped/armory
- Auto-detect routing handles buy page URL patterns
- analyze_gear.py updated with 3-source output:
🟢 Equipped = currently worn
📦 Stored = in armory inventory
🛒 For Sale = purchasable from Bazaar
- Shows level limits (Lv155 + 15 = Lv170 cap), prices where available
- Re-scrape after visiting Buy tab to include market items
- skillOC default lowered from 75 to 60 — with 300ms Q debounce, it took
~6 presses to go from 50 to 70 OC (too slow against IWBTH enemies)
- Threat threshold lowered from 85% (102px) to 70% (84px) — triggers
earlier when monsters have high SP bars
- Added single-monster emergency: if ANY enemy >90% SP, fire skills
even without 2+ monsters (catches the lone special attacker)
- Step 0d high-threat check now fires for solitary imminent threats too