mirror of
				https://github.com/unanmed/HumanBreak.git
				synced 2025-11-01 04:42:58 +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] 优化 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] 鼠标放到光环怪上时高亮它产生的光环 | ||||
|  | ||||
| @ -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( | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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', | ||||
|  | ||||
| @ -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); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -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' | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user