v0.14.3 - Add reason tags to castInitialBuffs (init/initCh)
- castInitialBuffs now tags actions with _reason='init' (cheapest-first sort, no channeling) or _reason='initCh' (most-expensive-first, channeling already charged) - Makes the log clearly show which buff path fired
This commit is contained in:
parent
205f1cd631
commit
48e5103655
5 changed files with 15 additions and 12 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.2
|
||||
// @version 0.14.3
|
||||
// @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.2';
|
||||
const VERSION = '0.14.3';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -963,15 +963,16 @@ function castInitialBuffs() {
|
|||
|
||||
if (candidates.length === 0) return null;
|
||||
|
||||
// Log which mode we're in
|
||||
if (STATE.channeling) {
|
||||
// Channeling is charged — cast the MOST expensive buff for best value
|
||||
candidates.sort((a, b) => b.mpCost - a.mpCost);
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true, _reason: 'initCh' };
|
||||
} else {
|
||||
// No channeling — cast the CHEAPEST buff first for more proc attempts
|
||||
candidates.sort((a, b) => a.mpCost - b.mpCost);
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true, _reason: 'init' };
|
||||
}
|
||||
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true };
|
||||
}
|
||||
|
||||
function kickstartChanneling() {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.2
|
||||
// @version 0.14.3
|
||||
// @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.2';
|
||||
const VERSION = '0.14.3';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -963,15 +963,16 @@ function castInitialBuffs() {
|
|||
|
||||
if (candidates.length === 0) return null;
|
||||
|
||||
// Log which mode we're in
|
||||
if (STATE.channeling) {
|
||||
// Channeling is charged — cast the MOST expensive buff for best value
|
||||
candidates.sort((a, b) => b.mpCost - a.mpCost);
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true, _reason: 'initCh' };
|
||||
} else {
|
||||
// No channeling — cast the CHEAPEST buff first for more proc attempts
|
||||
candidates.sort((a, b) => a.mpCost - b.mpCost);
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true, _reason: 'init' };
|
||||
}
|
||||
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true };
|
||||
}
|
||||
|
||||
function kickstartChanneling() {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// CONFIG — default settings
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
|
||||
const VERSION = '0.14.2';
|
||||
const VERSION = '0.14.3';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.2
|
||||
// @version 0.14.3
|
||||
// @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse
|
||||
// @author GaboGG + Hermes
|
||||
// @match *://*.hentaiverse.org/*
|
||||
|
|
|
|||
|
|
@ -238,15 +238,16 @@ function castInitialBuffs() {
|
|||
|
||||
if (candidates.length === 0) return null;
|
||||
|
||||
// Log which mode we're in
|
||||
if (STATE.channeling) {
|
||||
// Channeling is charged — cast the MOST expensive buff for best value
|
||||
candidates.sort((a, b) => b.mpCost - a.mpCost);
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true, _reason: 'initCh' };
|
||||
} else {
|
||||
// No channeling — cast the CHEAPEST buff first for more proc attempts
|
||||
candidates.sort((a, b) => a.mpCost - b.mpCost);
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true, _reason: 'init' };
|
||||
}
|
||||
|
||||
return { type: 'spell', name: candidates[0].spell, selfTarget: true };
|
||||
}
|
||||
|
||||
function kickstartChanneling() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue