v0.14.25 - Stalling: refresh buffs when 1 enemy remains (gives skill CDs time)
- New stalling logic: when exactly 1 normal enemy remains (not rare, not high threat), refresh any buff below 15 turns instead of attacking - This naturally delays the killing blow by 1 turn, letting Rending Blow and Shatter Strike cooldowns tick down before the round ends - Result: next round starts with skills ready + higher buff uptime - Edge case: one-tapping the last enemy would end the round with skills still on cooldown — now avoided
This commit is contained in:
parent
7c714eb589
commit
3618198081
5 changed files with 48 additions and 6 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.24
|
||||
// @version 0.14.25
|
||||
// @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.24';
|
||||
const VERSION = '0.14.25';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -1644,6 +1644,20 @@ function strategyVeteran() {
|
|||
if (ch) return ch;
|
||||
}
|
||||
|
||||
// ── Stalling: when 1 normal enemy remains, prefer buff refreshes over killing
|
||||
// This gives weapon skill cooldowns time to tick down before next round.
|
||||
if (STATE.monsters && STATE.monsters.length === 1 && !anyRareMonster() && !hasHighThreat(THREAT_PX)) {
|
||||
for (const b of BUFF_PRIORITY) {
|
||||
const dur = buffDuration(b.icon);
|
||||
if (dur === 0 || dur < 15) {
|
||||
if (b.icon === 'regen' && STATE.hp >= CFG.cureRegenHP) continue;
|
||||
if (hasReadySpell(b.spell) && STATE.mp > 0.15) {
|
||||
return { type: 'spell', name: b.spell, selfTarget: true, _reason: 'stall' };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const t = hasHighThreat(THREAT_PX) ? findDangerousMonster() : (STATE.monsters.length > 2 ? findOptimalDominoTarget() : findWeakestMonster());
|
||||
if (t >= 0 && STATE.monsters[t] && STATE.monsters[t].hasAttribute('onclick'))
|
||||
return { type: 'attack', target: t, _reason: hasHighThreat(THREAT_PX) ? 'threat' : 'fallback' };
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.24
|
||||
// @version 0.14.25
|
||||
// @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.24';
|
||||
const VERSION = '0.14.25';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -1644,6 +1644,20 @@ function strategyVeteran() {
|
|||
if (ch) return ch;
|
||||
}
|
||||
|
||||
// ── Stalling: when 1 normal enemy remains, prefer buff refreshes over killing
|
||||
// This gives weapon skill cooldowns time to tick down before next round.
|
||||
if (STATE.monsters && STATE.monsters.length === 1 && !anyRareMonster() && !hasHighThreat(THREAT_PX)) {
|
||||
for (const b of BUFF_PRIORITY) {
|
||||
const dur = buffDuration(b.icon);
|
||||
if (dur === 0 || dur < 15) {
|
||||
if (b.icon === 'regen' && STATE.hp >= CFG.cureRegenHP) continue;
|
||||
if (hasReadySpell(b.spell) && STATE.mp > 0.15) {
|
||||
return { type: 'spell', name: b.spell, selfTarget: true, _reason: 'stall' };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const t = hasHighThreat(THREAT_PX) ? findDangerousMonster() : (STATE.monsters.length > 2 ? findOptimalDominoTarget() : findWeakestMonster());
|
||||
if (t >= 0 && STATE.monsters[t] && STATE.monsters[t].hasAttribute('onclick'))
|
||||
return { type: 'attack', target: t, _reason: hasHighThreat(THREAT_PX) ? 'threat' : 'fallback' };
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// CONFIG — default settings
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
|
||||
const VERSION = '0.14.24';
|
||||
const VERSION = '0.14.25';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.24
|
||||
// @version 0.14.25
|
||||
// @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse
|
||||
// @author GaboGG + Hermes
|
||||
// @match *://*.hentaiverse.org/*
|
||||
|
|
|
|||
|
|
@ -918,6 +918,20 @@ function strategyVeteran() {
|
|||
if (ch) return ch;
|
||||
}
|
||||
|
||||
// ── Stalling: when 1 normal enemy remains, prefer buff refreshes over killing
|
||||
// This gives weapon skill cooldowns time to tick down before next round.
|
||||
if (STATE.monsters && STATE.monsters.length === 1 && !anyRareMonster() && !hasHighThreat(THREAT_PX)) {
|
||||
for (const b of BUFF_PRIORITY) {
|
||||
const dur = buffDuration(b.icon);
|
||||
if (dur === 0 || dur < 15) {
|
||||
if (b.icon === 'regen' && STATE.hp >= CFG.cureRegenHP) continue;
|
||||
if (hasReadySpell(b.spell) && STATE.mp > 0.15) {
|
||||
return { type: 'spell', name: b.spell, selfTarget: true, _reason: 'stall' };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const t = hasHighThreat(THREAT_PX) ? findDangerousMonster() : (STATE.monsters.length > 2 ? findOptimalDominoTarget() : findWeakestMonster());
|
||||
if (t >= 0 && STATE.monsters[t] && STATE.monsters[t].hasAttribute('onclick'))
|
||||
return { type: 'attack', target: t, _reason: hasHighThreat(THREAT_PX) ? 'threat' : 'fallback' };
|
||||
|
|
|
|||
Loading…
Reference in a new issue