mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-01-31 23:29:27 +08:00
feat: 性能优化 & 战争号角属性
This commit is contained in:
parent
ac3b0c0fc2
commit
4189f80866
6
idea.md
6
idea.md
@ -85,7 +85,7 @@ dam4.png ---- 存档 59
|
|||||||
[x] 自定义快捷键
|
[x] 自定义快捷键
|
||||||
[x] 优化 ui 控制系统
|
[x] 优化 ui 控制系统
|
||||||
[x] 优化游戏进程与渲染进程间的通讯
|
[x] 优化游戏进程与渲染进程间的通讯
|
||||||
[] 优化资源分离,音乐放到 bgm 目录下
|
[x] 优化资源分离,音乐放到 bgm 目录下
|
||||||
[] 一次性道具拾取与清怪
|
[] 一次性道具拾取与清怪
|
||||||
[] 重构数据统计
|
[] 重构数据统计
|
||||||
[] 优化路径显示,瞬移可以闪一下再熄灭
|
[] 优化路径显示,瞬移可以闪一下再熄灭
|
||||||
@ -94,7 +94,7 @@ dam4.png ---- 存档 59
|
|||||||
[] 楼层转换加入随机小贴士
|
[] 楼层转换加入随机小贴士
|
||||||
[x] ui 中如果元素发生改变,那么做出背景亮一下再熄灭的效果
|
[x] ui 中如果元素发生改变,那么做出背景亮一下再熄灭的效果
|
||||||
[] 双击怪物手册拐点可以直接在拖动条上定位
|
[] 双击怪物手册拐点可以直接在拖动条上定位
|
||||||
[] 重构技能树结构
|
[x] 重构技能树结构
|
||||||
[] 技能树允许自动升级
|
[] 技能树允许自动升级
|
||||||
[] 重构装备系统
|
[] 重构装备系统
|
||||||
[x] 弹幕系统
|
[x] 弹幕系统
|
||||||
@ -118,3 +118,5 @@ dam4.png ---- 存档 59
|
|||||||
[x] 对 vnode 进行简单的包装,提供出显示文字、显示图片等 api 以及修改 css 的 api
|
[x] 对 vnode 进行简单的包装,提供出显示文字、显示图片等 api 以及修改 css 的 api
|
||||||
[] mapDamage 注册
|
[] mapDamage 注册
|
||||||
[] Box 组件右下角添加 resize 按钮
|
[] Box 组件右下角添加 resize 按钮
|
||||||
|
[] 被光环加成的怪显示受到了哪些加成
|
||||||
|
[x] 鼠标放到光环怪上时高亮它产生的光环
|
||||||
|
@ -180,7 +180,7 @@ export abstract class RenderItem<E extends ERenderItemEvent = ERenderItemEvent>
|
|||||||
protected cacheDirty: boolean = true;
|
protected cacheDirty: boolean = true;
|
||||||
/** 是否启用缓存机制 */
|
/** 是否启用缓存机制 */
|
||||||
readonly enableCache: boolean = true;
|
readonly enableCache: boolean = true;
|
||||||
/** 是否启用transform下穿机制 */
|
/** 是否启用transform下穿机制,即画布的变换是否会继续作用到下一层画布 */
|
||||||
readonly transformFallThrough: boolean = false;
|
readonly transformFallThrough: boolean = false;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -104,6 +104,12 @@ export class Animate extends Sprite {
|
|||||||
|
|
||||||
this.setRenderFn((canvas, transform) => {
|
this.setRenderFn((canvas, transform) => {
|
||||||
const { ctx } = canvas;
|
const { ctx } = canvas;
|
||||||
|
if (
|
||||||
|
this.absoluteAnimates.size === 0 &&
|
||||||
|
this.staticAnimates.size === 0
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
ctx.save();
|
ctx.save();
|
||||||
this.drawAnimates(this.absoluteAnimates, canvas);
|
this.drawAnimates(this.absoluteAnimates, canvas);
|
||||||
transformCanvas(canvas, transform);
|
transformCanvas(canvas, transform);
|
||||||
|
@ -340,7 +340,8 @@ export class Damage extends Sprite<EDamageEvent> {
|
|||||||
};
|
};
|
||||||
block.add(dam1).add(dam2);
|
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 = {
|
const dam3: DamageRenderable = {
|
||||||
align: 'right',
|
align: 'right',
|
||||||
baseline: 'top',
|
baseline: 'top',
|
||||||
@ -365,7 +366,7 @@ export class Damage extends Sprite<EDamageEvent> {
|
|||||||
};
|
};
|
||||||
block.add(dam4);
|
block.add(dam4);
|
||||||
}
|
}
|
||||||
if (enemy.col && real.special.has(33)) {
|
if (enemy.col && hasHorn) {
|
||||||
const dam5: DamageRenderable = {
|
const dam5: DamageRenderable = {
|
||||||
align: 'right',
|
align: 'right',
|
||||||
baseline: 'top',
|
baseline: 'top',
|
||||||
|
@ -2,6 +2,7 @@ import { getHeroStatusOf, getHeroStatusOn } from '@/game/state/hero';
|
|||||||
import { Range } from '../util/range';
|
import { Range } from '../util/range';
|
||||||
import { ensureArray, has, manhattan } from '@/plugin/game/utils';
|
import { ensureArray, has, manhattan } from '@/plugin/game/utils';
|
||||||
import EventEmitter from 'eventemitter3';
|
import EventEmitter from 'eventemitter3';
|
||||||
|
import { hook } from '../game';
|
||||||
|
|
||||||
// todo: 光环划分优先级,从而可以实现光环的多级运算
|
// todo: 光环划分优先级,从而可以实现光环的多级运算
|
||||||
|
|
||||||
@ -152,6 +153,7 @@ export class EnemyCollection extends EventEmitter<EnemyCollectionEvent> {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
this.emit('extract');
|
this.emit('extract');
|
||||||
|
hook.emit('enemyExtract', this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -70,7 +70,7 @@ export const specials: SpecialDeclaration[] = [
|
|||||||
name: '抱团',
|
name: '抱团',
|
||||||
desc: enemy =>
|
desc: enemy =>
|
||||||
`怪物周围5×5范围内每有一个拥有该属性的怪物(不包括自身),则对方攻防就增加${enemy.together}%(线性叠加)` +
|
`怪物周围5×5范围内每有一个拥有该属性的怪物(不包括自身),则对方攻防就增加${enemy.together}%(线性叠加)` +
|
||||||
`,受加成怪物会在右上角显示当前周围有多少个怪物`,
|
`,受加成怪物会在右上角以绿色字体显示当前周围有多少个怪物`,
|
||||||
color: '#fa4'
|
color: '#fa4'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -240,11 +240,15 @@ export const specials: SpecialDeclaration[] = [
|
|||||||
name: '乾坤挪移',
|
name: '乾坤挪移',
|
||||||
desc: enemy => {
|
desc: enemy => {
|
||||||
const [dx, dy] = enemy.translation!;
|
const [dx, dy] = enemy.translation!;
|
||||||
return `此怪物在场时,所有光环向${
|
let str = `此怪物在场时,所有光环`;
|
||||||
dx < 0 ? '左' : '右'
|
if (dx !== 0) {
|
||||||
}平移${Math.abs(dx)}格,向${dy < 0 ? '上' : '下'}平移${Math.abs(
|
str += `向${dx < 0 ? '左' : '右'}平移${Math.abs(dx)}格,`;
|
||||||
dy
|
}
|
||||||
)}格。不同怪物间为加算叠加`;
|
if (dy !== 0) {
|
||||||
|
str += `向${dy < 0 ? '上' : '下'}平移${Math.abs(dy)}格,`;
|
||||||
|
}
|
||||||
|
str += `不同怪物间为加算叠加`;
|
||||||
|
return str;
|
||||||
},
|
},
|
||||||
color: '#FDCD0B'
|
color: '#FDCD0B'
|
||||||
},
|
},
|
||||||
@ -272,7 +276,7 @@ export const specials: SpecialDeclaration[] = [
|
|||||||
if (hp) str += `生命值增加${hp}%,`;
|
if (hp) str += `生命值增加${hp}%,`;
|
||||||
if (atk) str += `攻击增加${atk}%,`;
|
if (atk) str += `攻击增加${atk}%,`;
|
||||||
if (def) str += `防御增加${def}%,`;
|
if (def) str += `防御增加${def}%,`;
|
||||||
str += '线性叠加';
|
str += '线性叠加。该怪物会在右上角以黄色字体显示当前地图有多少怪物';
|
||||||
return str;
|
return str;
|
||||||
},
|
},
|
||||||
color: '#fff866'
|
color: '#fff866'
|
||||||
|
Loading…
Reference in New Issue
Block a user