mirror of
https://github.com/motajs/template.git
synced 2026-11-02 15:04:30 +08:00
refactor: 将旧样板怪物移植单独提取出来
This commit is contained in:
1 parent
6c1acb990e
commit
39e91b241f
6 files changed
+72
-14
No files matched your search
@@ -13,6 +13,7 @@ import {
|
||||
import { IEnemyAttributes } from './enemy/types';
|
||||
import {
|
||||
CommonAuraConverter,
|
||||
EnemyLegacyBridge,
|
||||
GuardAuraConverter,
|
||||
MainEnemyFinalEffect,
|
||||
MainMapDamageConverter,
|
||||
@@ -38,9 +39,18 @@ export class CoreState implements ICoreState {
|
||||
this.idNumberMap = new Map();
|
||||
this.numberIdMap = new Map();
|
||||
|
||||
//#region 怪物初始化
|
||||
|
||||
// 怪物管理器初始化
|
||||
this.enemyManager = new EnemyManager();
|
||||
registerSpecials(this.enemyManager);
|
||||
const enemyManager = new EnemyManager(new EnemyLegacyBridge());
|
||||
enemyManager.setAttributeDefaults('hp', 0);
|
||||
enemyManager.setAttributeDefaults('atk', 0);
|
||||
enemyManager.setAttributeDefaults('def', 0);
|
||||
enemyManager.setAttributeDefaults('exp', 0);
|
||||
enemyManager.setAttributeDefaults('money', 0);
|
||||
enemyManager.setAttributeDefaults('point', 0);
|
||||
registerSpecials(enemyManager);
|
||||
this.enemyManager = enemyManager;
|
||||
// 怪物上下文初始化
|
||||
const enemyContext = new EnemyContext<IEnemyAttributes>();
|
||||
const damageSystem = new DamageSystem(enemyContext);
|
||||
@@ -54,6 +64,8 @@ export class CoreState implements ICoreState {
|
||||
enemyContext.registerFinalEffect(new MainEnemyFinalEffect());
|
||||
enemyContext.resize(TILE_WIDTH, TILE_HEIGHT);
|
||||
this.enemyContext = enemyContext;
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
||||
saveState(): IStateSaveData {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
export * from './aura';
|
||||
export * from './damage';
|
||||
export * from './final';
|
||||
export * from './legacy';
|
||||
export * from './mapDamage';
|
||||
export * from './special';
|
||||
@@ -0,0 +1,19 @@
|
||||
import { IEnemyLegacyBridge } from '@user/data-base';
|
||||
import { IEnemyAttributes } from './types';
|
||||
|
||||
export class EnemyLegacyBridge implements IEnemyLegacyBridge<IEnemyAttributes> {
|
||||
fromLegacyEnemy(
|
||||
enemy: Enemy,
|
||||
defaultAttr: Partial<IEnemyAttributes>
|
||||
): IEnemyAttributes {
|
||||
return {
|
||||
hp: enemy.hp ?? defaultAttr.hp ?? 0,
|
||||
atk: enemy.atk ?? defaultAttr.atk ?? 0,
|
||||
def: enemy.def ?? defaultAttr.def ?? 0,
|
||||
money: enemy.money ?? defaultAttr.money ?? 0,
|
||||
exp: enemy.exp ?? defaultAttr.exp ?? 0,
|
||||
point: enemy.point ?? defaultAttr.point ?? 0,
|
||||
guard: defaultAttr.guard ?? new Set()
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,7 @@ export interface IHaloValue {
|
||||
export function registerSpecials(
|
||||
manager: IEnemyManager<IEnemyAttributes>
|
||||
): void {
|
||||
manager.registerAttribute('guard', new Set());
|
||||
manager.setAttributeDefaults('guard', new Set());
|
||||
|
||||
// 0 - 空
|
||||
manager.registerSpecial(
|
||||
|
||||
Reference in new issue
Block a user