修复取消方向伤害造成的错误

This commit is contained in:
AncTe committed 2023-08-02 15:20:39 +08:00
1 parent b8711e2014
commit 7ce6acb664
8 files changed
+72 -104

No files matched your search

+18 -24
View File
@@ -60,26 +60,23 @@ export function getDefDamage(
const max = 100 - Math.floor(addDef / ratio);
for (let i = 0; i <= max; i++) {
const dam = enemy.enemy.calEnemyDamage(
{
atk: core.status.hero.atk + addAtk,
def: core.status.hero.def + addDef + i * ratio
},
'none'
);
const dam = enemy.enemy.calDamage({
atk: core.status.hero.atk + addAtk,
def: core.status.hero.def + addDef + i * ratio
});
if (res.length === 0) {
origin = dam[0].damage;
origin = dam.damage;
if (has(origin)) {
res.push([addDef + i * ratio, origin]);
last = origin;
}
continue;
}
if (!isFinite(dam[0].damage)) continue;
if (dam[0].damage === res.at(-1)?.[1]) continue;
last = dam[0].damage;
res.push([ratio * i + addDef, dam[0].damage]);
if (!isFinite(dam.damage)) continue;
if (dam.damage === res.at(-1)?.[1]) continue;
last = dam.damage;
res.push([ratio * i + addDef, dam.damage]);
}
return res;
@@ -103,26 +100,23 @@ export function getCriticalDamage(
const max = 100 - Math.floor(addAtk / ratio);
for (let i = 0; i <= max; i++) {
const dam = enemy.enemy.calEnemyDamage(
{
atk: core.status.hero.atk + addAtk + i * ratio,
def: core.status.hero.def + addDef
},
'none'
);
const dam = enemy.enemy.calDamage({
atk: core.status.hero.atk + addAtk + i * ratio,
def: core.status.hero.def + addDef
});
if (res.length === 0) {
origin = dam[0].damage;
origin = dam.damage;
if (has(origin)) {
res.push([addAtk + i * ratio, origin]);
last = origin;
}
continue;
}
if (!isFinite(dam[0].damage)) continue;
if (dam[0].damage === res.at(-1)?.[1]) continue;
last = dam[0].damage;
res.push([ratio * i + addAtk, dam[0].damage]);
if (!isFinite(dam.damage)) continue;
if (dam.damage === res.at(-1)?.[1]) continue;
last = dam.damage;
res.push([ratio * i + addAtk, dam.damage]);
}
return res;
+4 -3
View File
@@ -13,8 +13,9 @@ const show = debounce((ev: MouseEvent) => {
if (!flags.mouseLoc) return;
flags.clientLoc = [ev.clientX, ev.clientY];
const [mx, my] = getLocFromMouseLoc(...flags.mouseLoc);
const e = core.status.thisMap.enemy.list.find(v => {
v.x === mx && v.y === my;
return v.x === mx && v.y === my;
});
if (!e) return;
@@ -68,8 +69,8 @@ export function getDetailedEnemy(
const dam = enemy.calDamage().damage;
const cri = enemy.calCritical(1)[0];
const critical = core.formatBigNumber(cri?.atkDelta);
const criticalDam = core.formatBigNumber(cri?.delta);
const defDam = core.formatBigNumber(enemy.calDefDamage(ratio).damage);
const criticalDam = core.formatBigNumber(-cri?.delta);
const defDam = core.formatBigNumber(-enemy.calDefDamage(ratio).delta);
const damage = core.formatBigNumber(dam);
const fromFunc = (