feat: 最后一区

This commit is contained in:
AncTe committed 2024-10-02 22:23:15 +08:00
1 parent 3ea0ab07f0
commit 8d8be07052
28 files changed
+549 -223

No files matched your search

+25 -29
View File
@@ -423,38 +423,34 @@ export class DamageEnemy<T extends EnemyIds = EnemyIds> {
// 这一句必须放到applyHalo之前
this.providedHalo.add(29);
const halo = (e: EnemyInfo, enemy: EnemyInfo) => {
const s = enemy.specialHalo!;
col.applyHalo(
type,
range,
this,
(e, enemy) => {
const s = enemy.specialHalo!;
for (const spe of s) {
e.special.add(spe);
}
// 如果是自身,就不进行特殊属性数值处理了
if (e === this.info) return;
// 然后计算特殊属性数值
for (const spec of s) {
const toChange = specialValue.get(spec);
if (!toChange) continue;
for (const key of toChange) {
// 这种光环应该获取怪物的原始数值,而不是真实数值
if (enemy.enemy.specialMultiply) {
e[key] ??= 1;
e[key] *= enemy[key] ?? 1;
} else {
e[key] ??= 0;
e[key] += enemy[key] ?? 0;
}
for (const spe of s) {
e.special.add(spe);
}
// 如果是自身,就不进行特殊属性数值处理了
if (e === this.info) return;
// 然后计算特殊属性数值
for (const spec of s) {
// 如果目标怪物拥有杀戮光环,且光环会加成此属性,则忽略
if (e.specialHalo?.includes(spec)) continue;
const toChange = specialValue.get(spec);
if (!toChange) continue;
for (const key of toChange) {
// 这种光环应该获取怪物的原始数值,而不是真实数值
if (enemy.enemy.specialMultiply) {
e[key] ??= 1;
e[key] *= enemy[key] ?? 1;
} else {
e[key] ??= 0;
e[key] += enemy[key] ?? 0;
}
}
},
// true表示递归计算,视为第一类光环
true
);
}
};
col.applyHalo(type, range, this, halo, true);
col.haloList.push({
type: 'square',
data: { x: this.x + dx, y: this.y + dy, d },
+9 -1
View File
@@ -129,7 +129,15 @@ export namespace BluePalace {
MT84: [
{ fx: 2, fy: 3, dir: 'right', tx: 12, ty: 3, toDir: 'left' },
{ fx: 2, fy: 11, dir: 'right', tx: 12, ty: 11, toDir: 'left' }
]
],
MT94: [{ fx: 12, fy: 11, dir: 'left', tx: 5, ty: 1, toDir: 'left' }],
MT95: [
{ fx: 13, fy: 14, dir: 'up', tx: 7, ty: 8, toDir: 'left' },
{ fx: 0, fy: 1, dir: 'right', tx: 14, ty: 1, toDir: 'left' },
{ fx: 6, fy: 13, dir: 'right', tx: 6, ty: 0, toDir: 'down' }
],
MT96: [{ fx: 6, fy: 11, dir: 'down', tx: 4, ty: 14, toDir: 'up' }],
MT97: [{ fx: 0, fy: 1, dir: 'right', tx: 8, ty: 9, toDir: 'right' }]
};
loading.once('coreInit', initPortals);