Commit graph

16 commits

Author SHA1 Message Date
GaboGG
166539e845 v0.14.33 - In-game gear analysis module
New src/gear-analysis.js — ports analyze_gear.py scoring to JS:
- gearScoreArmor() / gearScoreWeapon() — same weights as Python
- gearDetectSlot() / gearIsTwoHandWeapon() / gearUsable()
- analyzeGear() — scores equipped vs armory vs buy per slot

UI on Armory pages (above equiplist):
- 🔍 Analyze Gear — rescrapes current page, shows per-slot panel
  with top 4 candidates, scores, prices, and upgrade highlights
- 🔄 Clear Buy + Rescan — wipes stale buy data, rescrapes, analyzes

scrapeBuyPage() now also scavenges the full dynjs_eqstore for items
not visible in the current filter tab — one Purchase visit captures
the entire store (429+ items), no need to click through tabs.

Console API: HV.analyzeGear(), HV.gearPanel(), HV.clearBuy()
2026-07-31 07:07:38 -04:00
GaboGG
94ab29a82c v0.14.18 - Spirit Stance burst toggle for 7+ mob Rending Blow
- When 7+ enemies and OC >= 60: toggles Spirit Stance ON before casting
  Rending Blow, then toggles OFF after one skill
- Uses 3-state flag: press1=toggleON, press2=castSkill, press3=toggleOFF
- Only triggers on normal (non-panic) Rending Blow — step 0e emergency
  skill still fires without spirit to avoid delay
- Resets on battle init and when conditions change
2026-07-27 20:14:21 -04:00
GaboGG
d95409026f v0.14.15 - Retry gear scrape until dynjs_equip store loads
- equip-UID.js loads asynchonously after document-end, so dynjs_equip
  might not exist when init() first runs
- Now retries up to 10 times (500ms apart, 5 seconds total) waiting for
  the store to populate before scraping
- Added HV.gearStore() to check whether the store is loaded
- If store never loads, falls back to name/ID scrape without stats
2026-07-27 15:51:22 -04:00
GaboGG
329e9403b4 v0.14.14 - V2 gear scraper: reads from HV in-memory JS store (no hovers)
- Previously: tried equips.set() + 300ms delays + popup_box polling
  which was fragile, async, and often saved stats to wrong slots
- Now: reads window.dynjs_equip / dynjs_eqstore which contains ALL
  item data pre-loaded on page load (name, quality, full tooltip HTML)
- Uses DOMParser to parse the embedded .eq HTML into structured stats
  (type, level, condition, burden, ADB, mit, attributes, etc.)
- Zero hover, zero delays, zero popup_box interaction — instant stats
- Works on Character Equipment page AND Armory pages simultaneously
- Removed triggerAllTooltips() and captureAllTooltips() — obsolete
2026-07-27 15:46:36 -04:00
GaboGG
a7a304f5d4 v0.14.9 - Rewrite gear scraper with correct DOM selectors
- Character Equipment page (?s=Character&ss=eq): reads #eqsb > .eqb
  divs with onmouseover='equips.set(ID,...)' for item names and IDs
- triggerAllTooltips() calls equips.set() for each item to populate
  the #popup_box tooltip, then parses full stat blocks (ADB, damage,
  mitigation, attributes, burden, interference, condition)
- Armory Organize page: reads #equiplist table rows with
  onmouseover='hover_equip(ID)' and checkbox values
- Reads right-side #equipinfo preview for condition and stats
- Modify detail page: reads full stat tables
2026-07-27 15:12:28 -04:00
GaboGG
d60233d205 v0.14.7 - Gear scraper: captures full equipment stats to localStorage
- New module: gear-scraper.js (10K, 200+ lines)
- Auto-scrapes Character page (?ss=ch) for equipped gear with full stat
  blocks: ADB, damage, crit, parry, evade, burden, mitigation, stats
- Auto-scrapes Armory inventory page for all items with IDs, names,
  categories, potency, durability
- Scrapes Modify detail page for one item's complete stat table
- Stores everything in localStorage['hvunified_geardb']
- ParseHV.advice() now includes gear info
- Public API: getGearDB() returns full gear database
2026-07-27 14:55:48 -04:00
GaboGG
31799a7261 v0.13.22 - Cache base MP costs at battle start (dynamic, not hardcoded)
- Removed SPELL_COSTS hardcoded table
- Base MP costs are now read from the magic pane's onmouseover
  tooltip at battle init and cached in STATE._baseMpCosts
- Cache is populated during parseBattleState() and persists
  for the entire battle, avoiding channeling's 1-MP display
- Cache resets on new battle, so level-ups or stat changes
  are picked up when starting a new arena
2026-07-26 15:08:23 -04:00
GaboGG
25ea8b4543 v0.13.15 - Fix stale Mystic Gem state, add debug logging to Q press
- Mystic Gem usage now tracked with STATE._mysticUsed flag
  Prevents re-triggering the gem check after it's been consumed
  (stale STATE.itemsKnown was causing infinite 'item → p' loops)
- Flag resets on new battle initialization
- Added buff durations + channeling status to Q-key console output
  Shows: ch=true/false mp=X% oc=X buffs: heartseeker=47 haste=24 ...
2026-07-26 14:01:48 -04:00
GaboGG
23f00450be v0.13.14 - Fix observer crash, raise channeling threshold to 30
- Removed call to undefined finalizeBattleLog() that was spamming
  ReferenceErrors and potentially corrupting the MutationObserver
- Raised channeling score threshold from 5 to 30: now only picks a
  buff for channeling if it's at least 30% empty on a 100-MP spell
  or 60% empty on a 50-MP spell
- Spark at 30/60 turns (50% empty, score 44) now falls to cheap
  damage fallback instead of wasting channeling
2026-07-26 13:53:01 -04:00
GaboGG
71da9b1214 v0.13.9 - Fix ReferenceError: battleLog is not defined
- The vitals observer check 'battleLog && !battleLog.summary' referenced
  an undefined variable, throwing on every observer tick
- Simplified to just check for pane_completion existence
- This crash may have been interfering with state parsing on the observer
2026-07-26 13:35:12 -04:00
GaboGG
bbf7c95fb9 v0.13.7 - Channeling prioritized before buff priority loop
- Moved findBestChannelingTarget() BEFORE the BUFF_PRIORITY loop
- When Q is pressed and channeling is active, the script now picks the most
  expensive buff for the channeling charge instead of wasting it on the
  first buff in priority order (Haste at 32 MP instead of Heartseeker at 175)
- Reverted the vitals auto-execute (Q-key workflow, not auto-battle)
- All three tiers: channeling check fires after castInitialBuffs but
  before the regular shouldBuff loop
2026-07-26 13:27:24 -04:00
GaboGG
28a13449bd v0.13.6 - Auto-execute on vitals observer (no hover required)
- Added action execution to the vitals MutationObserver so the script
  fires on every round tick, not only when hovering a monster
- This fixes buffs expiring and channeling being wasted when the user
  isn't actively hovering a monster during auto-battle
- Removed unused STATE.battleRound
2026-07-26 13:26:19 -04:00
GaboGG
badfcde640 v0.13.3 - Auto-sell/salvage preset on settings page
- New settings-page.js: adds a toolbar above the auto-salvage table
  on Character Settings (ss=se) with bulk preset buttons
- Preset 1: Sell <=Fair (value 2) / Salvage <=Average (value 3)
- Preset 2: Sell <=Crude (value 1) / Salvage <=Fair (value 2)
- Disable All: reset both to No Auto-Sell/Salvage
- Shows current state summary (Sell X | Salvage Y)
- Also fixes init.js and build.sh to include new file
2026-07-26 12:42:56 -04:00
GaboGG
1669167373 v0.13.1 - Smart Armory, removed broken sell/salvage buttons
- Removed enhanceEquipShop() — broken bulk sell/salvage from equip shop page
- Rewrote enhanceArmory() with actionable equipment management panel:
  - Parses all equipment from the Armory (ss=am) page
  - Grades each piece by quality: Keep (Magnificent+), Keep (Superior),
    Salvage (Average-Fair), Sell (Crude)
  - Bulk Sell / Bulk Salvage buttons that click native game buttons
  - Shows slot separators, quality colors, status icons (equipped/locked/stored)
  - Sorting: equipped/pinned first, then by quality, then by level
  - Summary counts for each action category
2026-07-26 11:28:21 -04:00
GaboGG
4bc90d9332 Monster Lab floating panel + page detection, Beast recommendation
- Monster Lab page detected via ss=ml
- Floating draggable panel replaces inline UI (was messing layout)
- Feed All + Happy Pills All buttons
- Class recommendation for first monster
- Drag-to-move via header grab
2026-07-20 20:35:14 -04:00
GaboGG
402db6bb2f Initial commit: HV Unified v0.11.0 structure
- 23 source files in src/ (build via scripts/build.sh)
- Forum-sourced player knowledge in references/
- DESIGN.md with architecture and corrections
- References to existing scripts (Monsterbation, jpx, HV Utils)
2026-07-20 19:30:26 -04:00