v0.13.29 - Aggressive SP management for Spark of Life survival
- Raised spiritPotionSP threshold from 30% to 60% - Added Spirit item check at step 2b in Adept and Veteran tiers: if SP < 55%, consume Spirit Draught/Potion immediately - Spark of Life costs 50% max SP when triggered. If SP is too low, Spark fails and you die. Keeping SP above 55% ensures Spark always has enough fuel to save you from a killing blow on IWBTH
This commit is contained in:
parent
e1269cd3fe
commit
b6d78067ce
5 changed files with 69 additions and 9 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.13.28
|
||||
// @version 0.13.29
|
||||
// @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.13.28';
|
||||
const VERSION = '0.13.29';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -35,7 +35,7 @@ const CFG = {
|
|||
cureRegenHP: 0.65, // Cast Regen below this HP
|
||||
manaGemMP: 0.45, // Use mana gems below this MP
|
||||
manaPotionMP: 0.25, // Use mana potions at this MP
|
||||
spiritPotionSP: 0.30, // Use spirit gems/potions below this SP
|
||||
spiritPotionSP: 0.60, // Use spirit gems/potions below this SP (Spark costs 50%)
|
||||
spiritStanceOC: 80, // Manual spirit stance only (auto-disable at 65% SP for Spark)
|
||||
skillOC: 75, // Use weapon skills at this OC
|
||||
useAttackSpells: false, // Don't use attack spells (let channel proc naturally)
|
||||
|
|
@ -1150,6 +1150,16 @@ function strategyAdept() {
|
|||
if (c) return { type: 'spell', name: c, selfTarget: true };
|
||||
}
|
||||
|
||||
// 2b. Spirit items — Spark of Life costs 50% SP. Keep SP above 55% so
|
||||
// Spark can actually save us.
|
||||
if (STATE.sp < 0.55) {
|
||||
for (const [slot, info] of Object.entries(STATE.itemsKnown)) {
|
||||
if (slot === 'p') continue;
|
||||
const def = ITEMS[parseInt(info)];
|
||||
if (def && def.t === 'spirit') return { type: 'item', id: slot, selfTarget: true };
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Buffs
|
||||
// On first round, cast cheapest-first to proc channeling
|
||||
{
|
||||
|
|
@ -1275,6 +1285,16 @@ function strategyVeteran() {
|
|||
if (c) return { type: 'spell', name: c, selfTarget: true };
|
||||
}
|
||||
|
||||
// 2b. Spirit items — Spark of Life costs 50% SP. Keep SP above 55% so
|
||||
// Spark can actually save us. Use spirit draughts/potions proactively.
|
||||
if (STATE.sp < 0.55) {
|
||||
for (const [slot, info] of Object.entries(STATE.itemsKnown)) {
|
||||
if (slot === 'p') continue;
|
||||
const def = ITEMS[parseInt(info)];
|
||||
if (def && def.t === 'spirit') return { type: 'item', id: slot, selfTarget: true };
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Buffs
|
||||
// On first round, cast cheapest-first to proc channeling
|
||||
if (CFG.autoBuff) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.13.28
|
||||
// @version 0.13.29
|
||||
// @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.13.28';
|
||||
const VERSION = '0.13.29';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -35,7 +35,7 @@ const CFG = {
|
|||
cureRegenHP: 0.65, // Cast Regen below this HP
|
||||
manaGemMP: 0.45, // Use mana gems below this MP
|
||||
manaPotionMP: 0.25, // Use mana potions at this MP
|
||||
spiritPotionSP: 0.30, // Use spirit gems/potions below this SP
|
||||
spiritPotionSP: 0.60, // Use spirit gems/potions below this SP (Spark costs 50%)
|
||||
spiritStanceOC: 80, // Manual spirit stance only (auto-disable at 65% SP for Spark)
|
||||
skillOC: 75, // Use weapon skills at this OC
|
||||
useAttackSpells: false, // Don't use attack spells (let channel proc naturally)
|
||||
|
|
@ -1150,6 +1150,16 @@ function strategyAdept() {
|
|||
if (c) return { type: 'spell', name: c, selfTarget: true };
|
||||
}
|
||||
|
||||
// 2b. Spirit items — Spark of Life costs 50% SP. Keep SP above 55% so
|
||||
// Spark can actually save us.
|
||||
if (STATE.sp < 0.55) {
|
||||
for (const [slot, info] of Object.entries(STATE.itemsKnown)) {
|
||||
if (slot === 'p') continue;
|
||||
const def = ITEMS[parseInt(info)];
|
||||
if (def && def.t === 'spirit') return { type: 'item', id: slot, selfTarget: true };
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Buffs
|
||||
// On first round, cast cheapest-first to proc channeling
|
||||
{
|
||||
|
|
@ -1275,6 +1285,16 @@ function strategyVeteran() {
|
|||
if (c) return { type: 'spell', name: c, selfTarget: true };
|
||||
}
|
||||
|
||||
// 2b. Spirit items — Spark of Life costs 50% SP. Keep SP above 55% so
|
||||
// Spark can actually save us. Use spirit draughts/potions proactively.
|
||||
if (STATE.sp < 0.55) {
|
||||
for (const [slot, info] of Object.entries(STATE.itemsKnown)) {
|
||||
if (slot === 'p') continue;
|
||||
const def = ITEMS[parseInt(info)];
|
||||
if (def && def.t === 'spirit') return { type: 'item', id: slot, selfTarget: true };
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Buffs
|
||||
// On first round, cast cheapest-first to proc channeling
|
||||
if (CFG.autoBuff) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// CONFIG — default settings
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
|
||||
const VERSION = '0.13.28';
|
||||
const VERSION = '0.13.29';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -20,7 +20,7 @@ const CFG = {
|
|||
cureRegenHP: 0.65, // Cast Regen below this HP
|
||||
manaGemMP: 0.45, // Use mana gems below this MP
|
||||
manaPotionMP: 0.25, // Use mana potions at this MP
|
||||
spiritPotionSP: 0.30, // Use spirit gems/potions below this SP
|
||||
spiritPotionSP: 0.60, // Use spirit gems/potions below this SP (Spark costs 50%)
|
||||
spiritStanceOC: 80, // Manual spirit stance only (auto-disable at 65% SP for Spark)
|
||||
skillOC: 75, // Use weapon skills at this OC
|
||||
useAttackSpells: false, // Don't use attack spells (let channel proc naturally)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.13.28
|
||||
// @version 0.13.29
|
||||
// @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse
|
||||
// @author GaboGG + Hermes
|
||||
// @match *://*.hentaiverse.org/*
|
||||
|
|
|
|||
|
|
@ -464,6 +464,16 @@ function strategyAdept() {
|
|||
if (c) return { type: 'spell', name: c, selfTarget: true };
|
||||
}
|
||||
|
||||
// 2b. Spirit items — Spark of Life costs 50% SP. Keep SP above 55% so
|
||||
// Spark can actually save us.
|
||||
if (STATE.sp < 0.55) {
|
||||
for (const [slot, info] of Object.entries(STATE.itemsKnown)) {
|
||||
if (slot === 'p') continue;
|
||||
const def = ITEMS[parseInt(info)];
|
||||
if (def && def.t === 'spirit') return { type: 'item', id: slot, selfTarget: true };
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Buffs
|
||||
// On first round, cast cheapest-first to proc channeling
|
||||
{
|
||||
|
|
@ -589,6 +599,16 @@ function strategyVeteran() {
|
|||
if (c) return { type: 'spell', name: c, selfTarget: true };
|
||||
}
|
||||
|
||||
// 2b. Spirit items — Spark of Life costs 50% SP. Keep SP above 55% so
|
||||
// Spark can actually save us. Use spirit draughts/potions proactively.
|
||||
if (STATE.sp < 0.55) {
|
||||
for (const [slot, info] of Object.entries(STATE.itemsKnown)) {
|
||||
if (slot === 'p') continue;
|
||||
const def = ITEMS[parseInt(info)];
|
||||
if (def && def.t === 'spirit') return { type: 'item', id: slot, selfTarget: true };
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Buffs
|
||||
// On first round, cast cheapest-first to proc channeling
|
||||
if (CFG.autoBuff) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue