fix(paladin): resolve F1-F4 reviewer findings and combat-pipeline regressions

This commit is contained in:
troytt 2026-09-24 13:21:09 +00:00
parent 48183d3b82
commit bafa83df55
2 changed files with 6 additions and 4 deletions

View File

@ -433,8 +433,7 @@ export function executeSUnitDmg(
if (!isSpellWithoutFlatPhys && (srcDam > 0 || hasFlatPhys)) {
const weapMin256 = (attacker.weaponMinPhys ?? 25) * FIXED_ONE
const weapMax256 = (attacker.weaponMaxPhys ?? 45) * FIXED_ONE
const hasFlatPhys = (packet.flatPhysMin256 !== undefined && packet.flatPhysMin256 > 0) || (packet.flatPhysMax256 !== undefined && packet.flatPhysMax256 > 0)
const effectiveSrcDam = hasFlatPhys ? (packet.srcDam ?? 0) : srcDam
const effectiveSrcDam = srcDam
const avgWeap256 = effectiveSrcDam > 0 ? Math.trunc(((weapMin256 + weapMax256) / 2) * effectiveSrcDam / 128) : 0
const flatAvg256 = Math.trunc(((packet.flatPhysMin256 ?? 0) + (packet.flatPhysMax256 ?? 0)) / 2)
const dmgPctBonus = attacker.statList.getModifierBonus('damagepercent')
@ -608,7 +607,7 @@ export function executeSUnitDmg(
? 0
: Math.max(0, Math.trunc((remRawPhys256 * (100 - physResRec.effectiveRes)) / 100))
let finalElem256 = isFireGolemAbsorb || elemResRec.isImmune || defender.statList.getAccruedStat(resStatKey) >= 100
let finalElem256 = isFireGolemAbsorb || elemResRec.isImmune
? 0
: Math.max(0, Math.trunc((remRawElem256 * (100 - elemResRec.effectiveRes)) / 100))

View File

@ -5243,7 +5243,7 @@ export const BATCH1_SKILLS: Readonly<Record<number, Batch1SkillDef>> = Object.fr
74: { id: 74, name: 'Corpse Explosion', classCode: 'nec', charClass: 'necromancer', type: 'area', mana: 15, lvlmana: 1, minmana: 1, manashift: 8, delay: 0, hitshift: 8, emin: 0, emax: 0, elev1: 0, elev2: 0, elev3: 0, elev4: 0, elev5: 0, srcDamage: 0 },
// Paladin (6 skills)
96: { id: 96, name: 'Sacrifice', classCode: 'pal', charClass: 'paladin', type: 'melee', mana: 0, lvlmana: 0, minmana: 0, manashift: 8, delay: 0, hitshift: 8, emin: 0, emax: 0, elev1: 0, elev2: 0, elev3: 0, elev4: 0, elev5: 0, srcDamage: 128 },
96: { id: 96, name: 'Sacrifice', classCode: 'pal', charClass: 'paladin', type: 'melee', mana: 0, lvlmana: 0, minmana: 0, manashift: 8, delay: 0, hitshift: 8, emin: 0, emax: 0, elev1: 0, elev2: 0, elev3: 0, elev4: 0, elev5: 0, srcDamage: 128, castOverlay: 'blood1' },
97: { id: 97, name: 'Smite', classCode: 'pal', charClass: 'paladin', type: 'melee', mana: 2, lvlmana: 0, minmana: 2, manashift: 8, delay: 0, hitshift: 8, emin: 0, emax: 0, elev1: 0, elev2: 0, elev3: 0, elev4: 0, elev5: 0, srcDamage: 0 },
101: { id: 101, name: 'Holy Bolt', classCode: 'pal', charClass: 'paladin', type: 'projectile', mana: 16, lvlmana: 1, minmana: 1, manashift: 5, delay: 0, hitshift: 8, emin: 8, emax: 16, elev1: 4, elev2: 8, elev3: 12, elev4: 16, elev5: 20, srcDamage: 0, range: 450, speed: 450 },
106: { id: 106, name: 'Zeal', classCode: 'pal', charClass: 'paladin', type: 'melee', mana: 2, lvlmana: 0, minmana: 2, manashift: 8, delay: 0, hitshift: 8, emin: 0, emax: 0, elev1: 0, elev2: 0, elev3: 0, elev4: 0, elev5: 0, srcDamage: 128 },
@ -5466,6 +5466,9 @@ export function getSkillCooldownTicks(skillId: number): number {
if (skillId === 64) {
return 25
}
if (skillId === 121) {
return 25
}
const def = getBatch1SkillDef(skillId)
return def?.delay ?? 0
}