diff --git a/scripts/hv-unified.user.js b/scripts/hv-unified.user.js index c50bc6e..d87efb8 100644 --- a/scripts/hv-unified.user.js +++ b/scripts/hv-unified.user.js @@ -1006,11 +1006,14 @@ function strategyAdept() { } } - // 6. Spirit Stance at OC 60 — with cooldown to prevent flip-flopping - if (STATE.oc >= 60 && !STATE.spiritStance && STATE.sp > 0.10 && !STATE._spiritCooldown) { + // 6. Spirit Stance at OC 60 — only if we have enough SP to sustain it + // Costs 1 SP + 10% OC per round (wiki formula) + // Minimum 20% SP = ~10 rounds of sustain before we run out + if (STATE.oc >= 60 && !STATE.spiritStance && STATE.sp > 0.20 && !STATE._spiritCooldown) { STATE._spiritCooldown = 3; return { type: 'toggle_spirit' }; } + // Toggle off when SP is critically low if (STATE.sp < 0.03 && STATE.spiritStance && !STATE._spiritCooldown) { STATE._spiritCooldown = 3; return { type: 'toggle_spirit' }; diff --git a/scripts/latest.user.js b/scripts/latest.user.js index c50bc6e..d87efb8 100644 --- a/scripts/latest.user.js +++ b/scripts/latest.user.js @@ -1006,11 +1006,14 @@ function strategyAdept() { } } - // 6. Spirit Stance at OC 60 — with cooldown to prevent flip-flopping - if (STATE.oc >= 60 && !STATE.spiritStance && STATE.sp > 0.10 && !STATE._spiritCooldown) { + // 6. Spirit Stance at OC 60 — only if we have enough SP to sustain it + // Costs 1 SP + 10% OC per round (wiki formula) + // Minimum 20% SP = ~10 rounds of sustain before we run out + if (STATE.oc >= 60 && !STATE.spiritStance && STATE.sp > 0.20 && !STATE._spiritCooldown) { STATE._spiritCooldown = 3; return { type: 'toggle_spirit' }; } + // Toggle off when SP is critically low if (STATE.sp < 0.03 && STATE.spiritStance && !STATE._spiritCooldown) { STATE._spiritCooldown = 3; return { type: 'toggle_spirit' }; diff --git a/src/strategy-engine.js b/src/strategy-engine.js index d879721..4391f36 100644 --- a/src/strategy-engine.js +++ b/src/strategy-engine.js @@ -363,11 +363,14 @@ function strategyAdept() { } } - // 6. Spirit Stance at OC 60 — with cooldown to prevent flip-flopping - if (STATE.oc >= 60 && !STATE.spiritStance && STATE.sp > 0.10 && !STATE._spiritCooldown) { + // 6. Spirit Stance at OC 60 — only if we have enough SP to sustain it + // Costs 1 SP + 10% OC per round (wiki formula) + // Minimum 20% SP = ~10 rounds of sustain before we run out + if (STATE.oc >= 60 && !STATE.spiritStance && STATE.sp > 0.20 && !STATE._spiritCooldown) { STATE._spiritCooldown = 3; return { type: 'toggle_spirit' }; } + // Toggle off when SP is critically low if (STATE.sp < 0.03 && STATE.spiritStance && !STATE._spiritCooldown) { STATE._spiritCooldown = 3; return { type: 'toggle_spirit' };