v0.14.28 - OC-building priority: skip debuffs/buffs when AoE ready but OC low

New step 2c: when 5+ monsters, Rending Blow is ready, and OC < 60,
skip Imperil/Absorb/buff loops and basic attack to build OC.

In your log, RB was ready (sk:RRGR) from turn 1 at OC=20, but the
script spent 20 turns on Imperil x3 + Absorb (999!) + Curx3 +
items before finally firing RB at turn 21 when monsters were at
100+ SP. Now it basic-attacks aggressively to hit OC=60 faster,
then fires RB as soon as threshold is reached.
This commit is contained in:
GaboGG 2026-07-28 10:36:34 -04:00
parent 206c682d9e
commit e48ef78121
5 changed files with 45 additions and 6 deletions

View file

@ -1,7 +1,7 @@
// ==UserScript==
// @name HV Unified
// @namespace hvunified
// @version 0.14.27
// @version 0.14.28
// @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.27';
const VERSION = '0.14.28';
const CFG = {
// — Battle automation
@ -1503,6 +1503,19 @@ function strategyVeteran() {
}
}
// 2c. OC-building priority: when 5+ monsters, OC < 60, and AoE skills ready,
// skip debuffs/non-essential buffs and basic attack to build OC fast.
const needsOC = STATE.monsters && STATE.monsters.length >= 5
&& STATE.oc < (CFG.skillOC || 60)
&& STATE.skillsKnown.includes('Rending Blow')
&& document.querySelector(`.btqs[onmouseover*="set_infopane_spell('Rending Blow'"], .btsd[onmouseover*="set_infopane_spell('Rending Blow'"]`)
?.hasAttribute('onclick');
if (needsOC && STATE.hp > 0.40 && STATE.mp > 0.20) {
const t = hasHighThreat(THREAT_PX) ? findDangerousMonster() : findOptimalDominoTarget();
if (t >= 0 && STATE.monsters[t] && STATE.monsters[t].hasAttribute('onclick'))
return { type: 'attack', target: t, _reason: 'oc_build' };
}
// 3. Buffs
// On first round, cast cheapest-first to proc channeling
if (CFG.autoBuff) {

View file

@ -1,7 +1,7 @@
// ==UserScript==
// @name HV Unified
// @namespace hvunified
// @version 0.14.27
// @version 0.14.28
// @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.27';
const VERSION = '0.14.28';
const CFG = {
// — Battle automation
@ -1503,6 +1503,19 @@ function strategyVeteran() {
}
}
// 2c. OC-building priority: when 5+ monsters, OC < 60, and AoE skills ready,
// skip debuffs/non-essential buffs and basic attack to build OC fast.
const needsOC = STATE.monsters && STATE.monsters.length >= 5
&& STATE.oc < (CFG.skillOC || 60)
&& STATE.skillsKnown.includes('Rending Blow')
&& document.querySelector(`.btqs[onmouseover*="set_infopane_spell('Rending Blow'"], .btsd[onmouseover*="set_infopane_spell('Rending Blow'"]`)
?.hasAttribute('onclick');
if (needsOC && STATE.hp > 0.40 && STATE.mp > 0.20) {
const t = hasHighThreat(THREAT_PX) ? findDangerousMonster() : findOptimalDominoTarget();
if (t >= 0 && STATE.monsters[t] && STATE.monsters[t].hasAttribute('onclick'))
return { type: 'attack', target: t, _reason: 'oc_build' };
}
// 3. Buffs
// On first round, cast cheapest-first to proc channeling
if (CFG.autoBuff) {

View file

@ -2,7 +2,7 @@
// CONFIG — default settings
// ═══════════════════════════════════════════════════════════════════════
const VERSION = '0.14.27';
const VERSION = '0.14.28';
const CFG = {
// — Battle automation

View file

@ -1,7 +1,7 @@
// ==UserScript==
// @name HV Unified
// @namespace hvunified
// @version 0.14.27
// @version 0.14.28
// @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse
// @author GaboGG + Hermes
// @match *://*.hentaiverse.org/*

View file

@ -777,6 +777,19 @@ function strategyVeteran() {
}
}
// 2c. OC-building priority: when 5+ monsters, OC < 60, and AoE skills ready,
// skip debuffs/non-essential buffs and basic attack to build OC fast.
const needsOC = STATE.monsters && STATE.monsters.length >= 5
&& STATE.oc < (CFG.skillOC || 60)
&& STATE.skillsKnown.includes('Rending Blow')
&& document.querySelector(`.btqs[onmouseover*="set_infopane_spell('Rending Blow'"], .btsd[onmouseover*="set_infopane_spell('Rending Blow'"]`)
?.hasAttribute('onclick');
if (needsOC && STATE.hp > 0.40 && STATE.mp > 0.20) {
const t = hasHighThreat(THREAT_PX) ? findDangerousMonster() : findOptimalDominoTarget();
if (t >= 0 && STATE.monsters[t] && STATE.monsters[t].hasAttribute('onclick'))
return { type: 'attack', target: t, _reason: 'oc_build' };
}
// 3. Buffs
// On first round, cast cheapest-first to proc channeling
if (CFG.autoBuff) {