v0.14.5 - Conservative debuffs: Imperil only on bosses/rares or 5+ mobs
- Imperil no longer casts on every 2-mob wave (Estoc's native Penetrated Armor handles armor-breaking for <5 targets) - Imperil threshold raised from MP>20% to MP>35% - Imperil now only fires on bosses/rares OR 5+ monster waves (Grindfest) - Weaken now only on high-threat (SP>85%) or bosses, not every 3-mob wave - Formerly: Imperil on 2+ mobs, Weaken on 3+ mobs — drained MP fast
This commit is contained in:
parent
0a41f9d7c5
commit
9af0237754
5 changed files with 45 additions and 42 deletions
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.4
|
||||
// @version 0.14.5
|
||||
// @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.4';
|
||||
const VERSION = '0.14.5';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -1337,14 +1337,15 @@ function strategyAdept() {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Debuffs — Imperil on 2+ mobs or bosses; Weaken on high-threat
|
||||
if (CFG.autoDebuff && STATE.mp > 0.20) {
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 2)) {
|
||||
// 4. Debuffs — conservative: Imperil on bosses/rares or 5+ mobs
|
||||
// Weaken only on high-threat or bosses. Estoc handles <5.
|
||||
if (CFG.autoDebuff && STATE.mp > 0.35) {
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 5)) {
|
||||
const b = findStrongestMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'imperil'))
|
||||
return { type: 'spell', name: 'Imperil', target: b, _reason: 'imperil' };
|
||||
}
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(80) || STATE.monsters.length >= 3)) {
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(THREAT_PX))) {
|
||||
const b = findDangerousMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'weaken'))
|
||||
return { type: 'spell', name: 'Weaken', target: b, _reason: 'weaken' };
|
||||
|
|
@ -1497,18 +1498,18 @@ function strategyVeteran() {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Debuffs — Imperil on any 2+ mobs or bosses; Weaken on high-threat enemies
|
||||
// On IWBTH, non-boss elites hit hard — debuffs are worth the MP cost
|
||||
if (CFG.autoDebuff && STATE.mp > 0.20) {
|
||||
// Imperil: reduce physical mitigation by 25-50% (stacks with Penetrated Armor)
|
||||
// Use on any tanky enemy when facing 2+ monsters or a rare
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 2)) {
|
||||
// 4. Debuffs — conservative: Imperil only on bosses/rares or 5+ mobs (Grindfest)
|
||||
// Weaken only on high-threat (SP >85%) or bosses. Estoc already applies
|
||||
// Penetrated Armor natively, so Imperil on 2-mob waves is wasteful.
|
||||
if (CFG.autoDebuff && STATE.mp > 0.35) {
|
||||
// Imperil: bosses only, or 5+ mobs in Grindfest (Estoc handles <5)
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 5)) {
|
||||
const b = findStrongestMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'imperil'))
|
||||
return { type: 'spell', name: 'Imperil', target: b, _reason: 'imperil' };
|
||||
}
|
||||
// Weaken: reduce incoming damage by 50% — use on high-threat or 3+ mobs
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(80) || STATE.monsters.length >= 3)) {
|
||||
// Weaken: only on monsters about to use special attacks (high SP) or bosses
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(THREAT_PX))) {
|
||||
const b = findDangerousMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'weaken'))
|
||||
return { type: 'spell', name: 'Weaken', target: b, _reason: 'weaken' };
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.4
|
||||
// @version 0.14.5
|
||||
// @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.4';
|
||||
const VERSION = '0.14.5';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
@ -1337,14 +1337,15 @@ function strategyAdept() {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Debuffs — Imperil on 2+ mobs or bosses; Weaken on high-threat
|
||||
if (CFG.autoDebuff && STATE.mp > 0.20) {
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 2)) {
|
||||
// 4. Debuffs — conservative: Imperil on bosses/rares or 5+ mobs
|
||||
// Weaken only on high-threat or bosses. Estoc handles <5.
|
||||
if (CFG.autoDebuff && STATE.mp > 0.35) {
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 5)) {
|
||||
const b = findStrongestMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'imperil'))
|
||||
return { type: 'spell', name: 'Imperil', target: b, _reason: 'imperil' };
|
||||
}
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(80) || STATE.monsters.length >= 3)) {
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(THREAT_PX))) {
|
||||
const b = findDangerousMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'weaken'))
|
||||
return { type: 'spell', name: 'Weaken', target: b, _reason: 'weaken' };
|
||||
|
|
@ -1497,18 +1498,18 @@ function strategyVeteran() {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Debuffs — Imperil on any 2+ mobs or bosses; Weaken on high-threat enemies
|
||||
// On IWBTH, non-boss elites hit hard — debuffs are worth the MP cost
|
||||
if (CFG.autoDebuff && STATE.mp > 0.20) {
|
||||
// Imperil: reduce physical mitigation by 25-50% (stacks with Penetrated Armor)
|
||||
// Use on any tanky enemy when facing 2+ monsters or a rare
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 2)) {
|
||||
// 4. Debuffs — conservative: Imperil only on bosses/rares or 5+ mobs (Grindfest)
|
||||
// Weaken only on high-threat (SP >85%) or bosses. Estoc already applies
|
||||
// Penetrated Armor natively, so Imperil on 2-mob waves is wasteful.
|
||||
if (CFG.autoDebuff && STATE.mp > 0.35) {
|
||||
// Imperil: bosses only, or 5+ mobs in Grindfest (Estoc handles <5)
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 5)) {
|
||||
const b = findStrongestMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'imperil'))
|
||||
return { type: 'spell', name: 'Imperil', target: b, _reason: 'imperil' };
|
||||
}
|
||||
// Weaken: reduce incoming damage by 50% — use on high-threat or 3+ mobs
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(80) || STATE.monsters.length >= 3)) {
|
||||
// Weaken: only on monsters about to use special attacks (high SP) or bosses
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(THREAT_PX))) {
|
||||
const b = findDangerousMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'weaken'))
|
||||
return { type: 'spell', name: 'Weaken', target: b, _reason: 'weaken' };
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// CONFIG — default settings
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
|
||||
const VERSION = '0.14.4';
|
||||
const VERSION = '0.14.5';
|
||||
|
||||
const CFG = {
|
||||
// — Battle automation
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// ==UserScript==
|
||||
// @name HV Unified
|
||||
// @namespace hvunified
|
||||
// @version 0.14.4
|
||||
// @version 0.14.5
|
||||
// @description HV Unified — battle automation, guidance, and UI enhancements for HentaiVerse
|
||||
// @author GaboGG + Hermes
|
||||
// @match *://*.hentaiverse.org/*
|
||||
|
|
|
|||
|
|
@ -612,14 +612,15 @@ function strategyAdept() {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Debuffs — Imperil on 2+ mobs or bosses; Weaken on high-threat
|
||||
if (CFG.autoDebuff && STATE.mp > 0.20) {
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 2)) {
|
||||
// 4. Debuffs — conservative: Imperil on bosses/rares or 5+ mobs
|
||||
// Weaken only on high-threat or bosses. Estoc handles <5.
|
||||
if (CFG.autoDebuff && STATE.mp > 0.35) {
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 5)) {
|
||||
const b = findStrongestMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'imperil'))
|
||||
return { type: 'spell', name: 'Imperil', target: b, _reason: 'imperil' };
|
||||
}
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(80) || STATE.monsters.length >= 3)) {
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(THREAT_PX))) {
|
||||
const b = findDangerousMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'weaken'))
|
||||
return { type: 'spell', name: 'Weaken', target: b, _reason: 'weaken' };
|
||||
|
|
@ -772,18 +773,18 @@ function strategyVeteran() {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Debuffs — Imperil on any 2+ mobs or bosses; Weaken on high-threat enemies
|
||||
// On IWBTH, non-boss elites hit hard — debuffs are worth the MP cost
|
||||
if (CFG.autoDebuff && STATE.mp > 0.20) {
|
||||
// Imperil: reduce physical mitigation by 25-50% (stacks with Penetrated Armor)
|
||||
// Use on any tanky enemy when facing 2+ monsters or a rare
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 2)) {
|
||||
// 4. Debuffs — conservative: Imperil only on bosses/rares or 5+ mobs (Grindfest)
|
||||
// Weaken only on high-threat (SP >85%) or bosses. Estoc already applies
|
||||
// Penetrated Armor natively, so Imperil on 2-mob waves is wasteful.
|
||||
if (CFG.autoDebuff && STATE.mp > 0.35) {
|
||||
// Imperil: bosses only, or 5+ mobs in Grindfest (Estoc handles <5)
|
||||
if (hasReadySpell('Imperil') && (anyRareMonster() || STATE.monsters.length >= 5)) {
|
||||
const b = findStrongestMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'imperil'))
|
||||
return { type: 'spell', name: 'Imperil', target: b, _reason: 'imperil' };
|
||||
}
|
||||
// Weaken: reduce incoming damage by 50% — use on high-threat or 3+ mobs
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(80) || STATE.monsters.length >= 3)) {
|
||||
// Weaken: only on monsters about to use special attacks (high SP) or bosses
|
||||
if (hasReadySpell('Weaken') && (anyRareMonster() || hasHighThreat(THREAT_PX))) {
|
||||
const b = findDangerousMonster();
|
||||
if (b >= 0 && !checkMonsterDebuff(b, 'weaken'))
|
||||
return { type: 'spell', name: 'Weaken', target: b, _reason: 'weaken' };
|
||||
|
|
|
|||
Loading…
Reference in a new issue