mirror of
https://github.com/motajs/template.git
synced 2026-08-14 20:52:29 +08:00
Compare commits
1 Commits
3c0d8cc138
...
7acfef16bd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7acfef16bd |
@ -1,7 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
CriticalableHeroStatus,
|
CriticalableHeroStatus,
|
||||||
IDamageCalculator,
|
IDamageCalculator,
|
||||||
IEnemyDamageInfoBase,
|
IEnemyDamageInfo,
|
||||||
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>
|
||||||
): IEnemyDamageInfoBase {
|
): IEnemyDamageInfo {
|
||||||
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,13 +176,11 @@ export class CombatFlow<TEnemy, THero>
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const script of this.scriptList) {
|
for (const script of this.scriptList) {
|
||||||
const skip = await script.before(damage, handler);
|
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,15 +793,6 @@ 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