From 91d53e0f1cf951cddd2c4bc854b929784962a56a Mon Sep 17 00:00:00 2001 From: GaboGG Date: Mon, 27 Jul 2026 14:49:50 -0400 Subject: [PATCH] v0.14.6 - High-threat weapon skills step 0d (before buffs/items) - Added step 0d in Veteran: if 2+ monsters have SP >85%, fire weapon skills BEFORE buffs, items, debuffs, or anything else - Only needs OC >= 20 (one skill's worth, builds fast from basic attacks) - Rending Blow > Shatter Strike > Great Cleave, targeting most dangerous monster - Formerly: weapon skills were at step 11, after all buffs and items. Enemies got multiple turns to special attack during the buff-up phase. Now dangerous monsters get shut down immediately. --- scripts/hv-unified.user.js | 28 ++++++++++++++++++++++++++-- scripts/latest.user.js | 28 ++++++++++++++++++++++++++-- src/config.js | 2 +- src/header.user.js | 2 +- src/strategy-engine.js | 24 ++++++++++++++++++++++++ 5 files changed, 78 insertions(+), 6 deletions(-) diff --git a/scripts/hv-unified.user.js b/scripts/hv-unified.user.js index f5e5065..da19a1c 100644 --- a/scripts/hv-unified.user.js +++ b/scripts/hv-unified.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name HV Unified // @namespace hvunified -// @version 0.14.5 +// @version 0.14.6 // @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse // @author GaboGG + Hermes // @match *://*.hentaiverse.org/* @@ -17,7 +17,7 @@ // CONFIG — default settings // ═══════════════════════════════════════════════════════════════════════ -const VERSION = '0.14.5'; +const VERSION = '0.14.6'; const CFG = { // — Battle automation @@ -1428,6 +1428,30 @@ function strategyVeteran() { return { type: 'toggle_spirit', _reason: 'sp_safety' }; } + // 0d. HIGH-THREAT WEAPON SKILLS — before buffs/items/debuffs + // If 2+ enemies have >85% SP bar, kill/stun them NOW before they + // use special attacks. Don't waste turns buffing while monsters charge. + if (hasHighThreat(THREAT_PX) && STATE.oc >= 20) { + // Rending Blow: AoE armor pen vs 3+ enemies + if (STATE.monsters.length >= 3 && STATE.skillsKnown.includes('Rending Blow')) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Rending Blow', target: t, _reason: 'threat_early' }; + } + // Shatter Strike: AoE stun vs 3+ (needs Penetrated Armor) + if (STATE.monsters.length >= 3 && STATE.skillsKnown.includes('Shatter Strike')) { + const hasArmorBreak = STATE.monsters.some((m, i) => checkMonsterDebuff(i, 'penetrated_armor')); + if (hasArmorBreak) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Shatter Strike', target: t, _reason: 'stun_early' }; + } + } + // Great Cleave: single-target finisher + if (STATE.skillsKnown.includes('Great Cleave')) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Great Cleave', target: t, _reason: 'cleave_early' }; + } + } + // 1. Health items — safe to use early if (STATE.hp < CFG.cureItemHP) { const gem = hasUsableGem('heal'); diff --git a/scripts/latest.user.js b/scripts/latest.user.js index f5e5065..da19a1c 100644 --- a/scripts/latest.user.js +++ b/scripts/latest.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name HV Unified // @namespace hvunified -// @version 0.14.5 +// @version 0.14.6 // @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse // @author GaboGG + Hermes // @match *://*.hentaiverse.org/* @@ -17,7 +17,7 @@ // CONFIG — default settings // ═══════════════════════════════════════════════════════════════════════ -const VERSION = '0.14.5'; +const VERSION = '0.14.6'; const CFG = { // — Battle automation @@ -1428,6 +1428,30 @@ function strategyVeteran() { return { type: 'toggle_spirit', _reason: 'sp_safety' }; } + // 0d. HIGH-THREAT WEAPON SKILLS — before buffs/items/debuffs + // If 2+ enemies have >85% SP bar, kill/stun them NOW before they + // use special attacks. Don't waste turns buffing while monsters charge. + if (hasHighThreat(THREAT_PX) && STATE.oc >= 20) { + // Rending Blow: AoE armor pen vs 3+ enemies + if (STATE.monsters.length >= 3 && STATE.skillsKnown.includes('Rending Blow')) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Rending Blow', target: t, _reason: 'threat_early' }; + } + // Shatter Strike: AoE stun vs 3+ (needs Penetrated Armor) + if (STATE.monsters.length >= 3 && STATE.skillsKnown.includes('Shatter Strike')) { + const hasArmorBreak = STATE.monsters.some((m, i) => checkMonsterDebuff(i, 'penetrated_armor')); + if (hasArmorBreak) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Shatter Strike', target: t, _reason: 'stun_early' }; + } + } + // Great Cleave: single-target finisher + if (STATE.skillsKnown.includes('Great Cleave')) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Great Cleave', target: t, _reason: 'cleave_early' }; + } + } + // 1. Health items — safe to use early if (STATE.hp < CFG.cureItemHP) { const gem = hasUsableGem('heal'); diff --git a/src/config.js b/src/config.js index ccfb92e..8fb44a7 100644 --- a/src/config.js +++ b/src/config.js @@ -2,7 +2,7 @@ // CONFIG — default settings // ═══════════════════════════════════════════════════════════════════════ -const VERSION = '0.14.5'; +const VERSION = '0.14.6'; const CFG = { // — Battle automation diff --git a/src/header.user.js b/src/header.user.js index 6f335d6..a60c57a 100644 --- a/src/header.user.js +++ b/src/header.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name HV Unified // @namespace hvunified -// @version 0.14.5 +// @version 0.14.6 // @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse // @author GaboGG + Hermes // @match *://*.hentaiverse.org/* diff --git a/src/strategy-engine.js b/src/strategy-engine.js index 4b3e457..8a1fb63 100644 --- a/src/strategy-engine.js +++ b/src/strategy-engine.js @@ -703,6 +703,30 @@ function strategyVeteran() { return { type: 'toggle_spirit', _reason: 'sp_safety' }; } + // 0d. HIGH-THREAT WEAPON SKILLS — before buffs/items/debuffs + // If 2+ enemies have >85% SP bar, kill/stun them NOW before they + // use special attacks. Don't waste turns buffing while monsters charge. + if (hasHighThreat(THREAT_PX) && STATE.oc >= 20) { + // Rending Blow: AoE armor pen vs 3+ enemies + if (STATE.monsters.length >= 3 && STATE.skillsKnown.includes('Rending Blow')) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Rending Blow', target: t, _reason: 'threat_early' }; + } + // Shatter Strike: AoE stun vs 3+ (needs Penetrated Armor) + if (STATE.monsters.length >= 3 && STATE.skillsKnown.includes('Shatter Strike')) { + const hasArmorBreak = STATE.monsters.some((m, i) => checkMonsterDebuff(i, 'penetrated_armor')); + if (hasArmorBreak) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Shatter Strike', target: t, _reason: 'stun_early' }; + } + } + // Great Cleave: single-target finisher + if (STATE.skillsKnown.includes('Great Cleave')) { + const t = findDangerousMonster(); + if (t >= 0) return { type: 'skill', name: 'Great Cleave', target: t, _reason: 'cleave_early' }; + } + } + // 1. Health items — safe to use early if (STATE.hp < CFG.cureItemHP) { const gem = hasUsableGem('heal');