diff --git a/src/panel/enemyCritical.vue b/src/panel/enemyCritical.vue
index b9f378f..963775d 100644
--- a/src/panel/enemyCritical.vue
+++ b/src/panel/enemyCritical.vue
@@ -124,21 +124,17 @@ const allDef = ref(originDef);
const addAtk = ref(0);
const addDef = ref(0);
-const originDamage = enemy.enemy.calEnemyDamage(core.status.hero, 'none')[0]
- .damage;
+const originDamage = enemy.enemy.calDamage(core.status.hero).damage;
// 转发core上的内容至当前作用域
const format = core.formatBigNumber;
const ratio = core.status.thisMap.ratio;
const nowDamage = computed(() => {
- const dam = enemy.enemy.calEnemyDamage(
- {
- atk: core.status.hero.atk + addAtk.value * ratio,
- def: core.status.hero.def + addDef.value * ratio
- },
- 'none'
- )[0].damage;
+ const dam = enemy.enemy.calDamage({
+ atk: core.status.hero.atk + addAtk.value * ratio,
+ def: core.status.hero.def + addDef.value * ratio
+ }).damage;
if (!isFinite(dam)) return ['???', '???'];
if (!isFinite(originDamage)) return [-dam, dam];
return [originDamage - dam, dam];
diff --git a/src/panel/enemySpecial.vue b/src/panel/enemySpecial.vue
index 91cd824..aac5b60 100644
--- a/src/panel/enemySpecial.vue
+++ b/src/panel/enemySpecial.vue
@@ -18,7 +18,7 @@
加攻
减伤
-
+
{{ format(cri.atkDelta) }}
{{ format(cri.delta) }}
@@ -39,7 +39,7 @@ const enemy = detailInfo.enemy!;
const info = getSpecialHint(enemy);
-const criticals = enemy.enemy.calCritical(isMobile ? 4 : 8, 'none');
+const criticals = enemy.enemy.calCritical(isMobile ? 4 : 8);
const format = core.formatBigNumber;
diff --git a/src/plugin/game/enemy/damage.ts b/src/plugin/game/enemy/damage.ts
index 15e3c4e..0553a40 100644
--- a/src/plugin/game/enemy/damage.ts
+++ b/src/plugin/game/enemy/damage.ts
@@ -712,7 +712,7 @@ export class DamageEnemy
{
if (i++ >= 10000) {
throw new Error(
`Unexpected endless loop in calculating critical.` +
- `Enemy loc: ${this.x},${this.y}. Floor: ${this.floorId}`
+ `Enemy Id: ${this.id}. Loc: ${this.x},${this.y}. Floor: ${this.floorId}`
);
}
}
diff --git a/src/plugin/ui/book.tsx b/src/plugin/ui/book.tsx
index 57ee632..e8d4a18 100644
--- a/src/plugin/ui/book.tsx
+++ b/src/plugin/ui/book.tsx
@@ -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;
diff --git a/src/plugin/ui/fixed.ts b/src/plugin/ui/fixed.ts
index 056eb6b..ac5a3d4 100644
--- a/src/plugin/ui/fixed.ts
+++ b/src/plugin/ui/fixed.ts
@@ -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 = (
diff --git a/src/ui/book.vue b/src/ui/book.vue
index 861a261..3559358 100644
--- a/src/ui/book.vue
+++ b/src/ui/book.vue
@@ -64,16 +64,14 @@ const specials = Object.fromEntries(
const enemy = core.getCurrentEnemys(floorId);
const toShow: ToShowEnemy[] = enemy.map(v => {
- const cri = v.enemy.calCritical(1, 'none')[0];
+ const e = v.enemy;
+ const dam = e.calDamage().damage;
+ const cri = e.calCritical(1);
const critical = core.formatBigNumber(cri[0]?.atkDelta);
const criticalDam = core.formatBigNumber(-cri[0]?.delta);
const ratio = core.status.maps[floorId].ratio;
- const defDam = core.formatBigNumber(
- -v.enemy.calDefDamage(ratio, 'none')[0]?.delta
- );
- const damage = core.formatBigNumber(
- v.enemy.damage?.[0]?.damage ?? Infinity
- );
+ const defDam = core.formatBigNumber(-e.calDefDamage(ratio).delta);
+ const damage = core.formatBigNumber(dam);
const fromFunc = (
func: string | ((enemy: Enemy) => string),
@@ -96,9 +94,7 @@ const toShow: ToShowEnemy[] = enemy.map(v => {
? special.slice(0, 2).concat(['...', '', '#fff'])
: special.slice();
- const damageColor = getDamageColor(
- v.enemy.damage?.[0]?.damage ?? Infinity
- ) as string;
+ const damageColor = getDamageColor(dam) as string;
return {
critical,
diff --git a/src/ui/fixed.vue b/src/ui/fixed.vue
index bcba79e..399caaa 100644
--- a/src/ui/fixed.vue
+++ b/src/ui/fixed.vue
@@ -9,25 +9,21 @@
v-model:width="width"
>
-
{{ enemy.name }}
+
{{ enemy.enemy.enemy.name }}
{{ text }}{{ text[0] }}
- {{ getLabel(a) }}
- {{ format(enemy[a] as number) }}
+ {{
+ a[1]
+ }}
+ {{
+ format(a[0])
+ }}
@@ -36,9 +32,10 @@