feat: 性能优化 & 战争号角属性

This commit is contained in:
unanmed 2024-10-01 23:19:47 +08:00
parent ac3b0c0fc2
commit 4189f80866
6 changed files with 27 additions and 12 deletions

View File

@ -85,7 +85,7 @@ dam4.png ---- 存档 59
[x] 自定义快捷键
[x] 优化 ui 控制系统
[x] 优化游戏进程与渲染进程间的通讯
[] 优化资源分离,音乐放到 bgm 目录下
[x] 优化资源分离,音乐放到 bgm 目录下
[] 一次性道具拾取与清怪
[] 重构数据统计
[] 优化路径显示,瞬移可以闪一下再熄灭
@ -94,7 +94,7 @@ dam4.png ---- 存档 59
[] 楼层转换加入随机小贴士
[x] ui 中如果元素发生改变,那么做出背景亮一下再熄灭的效果
[] 双击怪物手册拐点可以直接在拖动条上定位
[] 重构技能树结构
[x] 重构技能树结构
[] 技能树允许自动升级
[] 重构装备系统
[x] 弹幕系统
@ -118,3 +118,5 @@ dam4.png ---- 存档 59
[x] 对 vnode 进行简单的包装,提供出显示文字、显示图片等 api 以及修改 css 的 api
[] mapDamage 注册
[] Box 组件右下角添加 resize 按钮
[] 被光环加成的怪显示受到了哪些加成
[x] 鼠标放到光环怪上时高亮它产生的光环

View File

@ -180,7 +180,7 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
protected cacheDirty: boolean = true;
/** 是否启用缓存机制 */
readonly enableCache: boolean = true;
/** 是否启用transform下穿机制 */
/** 是否启用transform下穿机制,即画布的变换是否会继续作用到下一层画布 */
readonly transformFallThrough: boolean = false;
constructor(

View File

@ -104,6 +104,12 @@ export class Animate extends Sprite {
this.setRenderFn((canvas, transform) => {
const { ctx } = canvas;
if (
this.absoluteAnimates.size === 0 &&
this.staticAnimates.size === 0
) {
return;
}
ctx.save();
this.drawAnimates(this.absoluteAnimates, canvas);
transformCanvas(canvas, transform);

View File

@ -340,7 +340,8 @@ export class Damage extends Sprite<EDamageEvent> {
};
block.add(dam1).add(dam2);
if (real.special.has(8) && real.togetherNum) {
const hasHorn = real.special.has(33);
if (real.special.has(8) && real.togetherNum && !hasHorn) {
const dam3: DamageRenderable = {
align: 'right',
baseline: 'top',
@ -365,7 +366,7 @@ export class Damage extends Sprite<EDamageEvent> {
};
block.add(dam4);
}
if (enemy.col && real.special.has(33)) {
if (enemy.col && hasHorn) {
const dam5: DamageRenderable = {
align: 'right',
baseline: 'top',

View File

@ -2,6 +2,7 @@ import { getHeroStatusOf, getHeroStatusOn } from '@/game/state/hero';
import { Range } from '../util/range';
import { ensureArray, has, manhattan } from '@/plugin/game/utils';
import EventEmitter from 'eventemitter3';
import { hook } from '../game';
// todo: 光环划分优先级,从而可以实现光环的多级运算
@ -152,6 +153,7 @@ export class EnemyCollection extends EventEmitter<EnemyCollectionEvent> {
);
});
this.emit('extract');
hook.emit('enemyExtract', this);
}
/**

View File

@ -70,7 +70,7 @@ export const specials: SpecialDeclaration[] = [
name: '抱团',
desc: enemy =>
`怪物周围5×5范围内每有一个拥有该属性的怪物不包括自身则对方攻防就增加${enemy.together}%(线性叠加)` +
`,受加成怪物会在右上角显示当前周围有多少个怪物`,
`,受加成怪物会在右上角以绿色字体显示当前周围有多少个怪物`,
color: '#fa4'
},
{
@ -240,11 +240,15 @@ export const specials: SpecialDeclaration[] = [
name: '乾坤挪移',
desc: enemy => {
const [dx, dy] = enemy.translation!;
return `此怪物在场时,所有光环向${
dx < 0 ? '左' : '右'
}${Math.abs(dx)}${dy < 0 ? '上' : '下'}${Math.abs(
dy
)}`;
let str = `此怪物在场时,所有光环`;
if (dx !== 0) {
str += `${dx < 0 ? '左' : '右'}平移${Math.abs(dx)}格,`;
}
if (dy !== 0) {
str += `${dy < 0 ? '上' : '下'}平移${Math.abs(dy)}格,`;
}
str += `不同怪物间为加算叠加`;
return str;
},
color: '#FDCD0B'
},
@ -272,7 +276,7 @@ export const specials: SpecialDeclaration[] = [
if (hp) str += `生命值增加${hp}%`;
if (atk) str += `攻击增加${atk}%`;
if (def) str += `防御增加${def}%`;
str += '线性叠加';
str += '线性叠加。该怪物会在右上角以黄色字体显示当前地图有多少怪物';
return str;
},
color: '#fff866'