mirror of
https://github.com/motajs/template.git
synced 2026-08-02 23:43:01 +08:00
chore: 战斗返回值调整
This commit is contained in:
parent
9f62d8768e
commit
566ffc586a
@ -1,7 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
CriticalableHeroStatus,
|
CriticalableHeroStatus,
|
||||||
IDamageCalculator,
|
IDamageCalculator,
|
||||||
IEnemyDamageInfo,
|
IEnemyDamageInfoBase,
|
||||||
IReadonlyEnemyHandler
|
IReadonlyEnemyHandler
|
||||||
} from '@user/data-system';
|
} from '@user/data-system';
|
||||||
import { IEnemyAttr, IHeroAttr } from '@user/data-common';
|
import { IEnemyAttr, IHeroAttr } from '@user/data-common';
|
||||||
@ -18,7 +18,7 @@ export class MainDamageCalculator implements IDamageCalculator<
|
|||||||
|
|
||||||
calculate(
|
calculate(
|
||||||
handler: IReadonlyEnemyHandler<IEnemyAttr, IHeroAttr>
|
handler: IReadonlyEnemyHandler<IEnemyAttr, IHeroAttr>
|
||||||
): IEnemyDamageInfo {
|
): IEnemyDamageInfoBase {
|
||||||
const { enemy, locator, hero } = handler;
|
const { enemy, locator, hero } = handler;
|
||||||
const hp = hero.getBaseAttribute('hp');
|
const hp = hero.getBaseAttribute('hp');
|
||||||
const atk = hero.getFinalAttribute('atk');
|
const atk = hero.getFinalAttribute('atk');
|
||||||
|
|||||||
@ -176,11 +176,13 @@ export class CombatFlow<TEnemy, THero>
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const script of this.scriptList) {
|
for (const script of this.scriptList) {
|
||||||
await script.before(damage, handler);
|
const skip = await script.before(damage, handler);
|
||||||
|
if (skip) return damage;
|
||||||
}
|
}
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
this.forEachHook(hook => hook.onBeforeCombat?.(damage))
|
this.forEachHook(hook => hook.onBeforeCombat?.(damage))
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const script of this.scriptList) {
|
for (const script of this.scriptList) {
|
||||||
await script.after(damage, handler);
|
await script.after(damage, handler);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -793,6 +793,15 @@ export interface ICombatScript<TEnemy, THero> {
|
|||||||
): Promise<void>;
|
): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ICombatResult<TEnemy, THero> {
|
||||||
|
/** 是否通过战前脚本跳过了战斗流程 */
|
||||||
|
readonly skipped: boolean;
|
||||||
|
/** 战斗伤害信息对象 */
|
||||||
|
readonly damageInfo: IEnemyDamageInfo<TEnemy, THero>;
|
||||||
|
/** 怪物信息对象 */
|
||||||
|
readonly enemyHandler: IReadonlyEnemyHandler<TEnemy, THero>;
|
||||||
|
}
|
||||||
|
|
||||||
export interface ICombatFlow<TEnemy, THero>
|
export interface ICombatFlow<TEnemy, THero>
|
||||||
extends IHookable<ICombatFlowHook<TEnemy, THero>>, IStateBaseExtended {
|
extends IHookable<ICombatFlowHook<TEnemy, THero>>, IStateBaseExtended {
|
||||||
/** 勇士属性对象 */
|
/** 勇士属性对象 */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user