# 类 DamageEnemy 游戏进程类,渲染进程也可以使用 - 实例成员 - [`id`](#id) - [`x`](#x) - [`y`](#y) - [`floorId`](#floorid) - [`enemy`](#enemy) - [`col`](#col) - [`info`](#info) - [`providedHalo`](#providedhalo) - 实例方法 - 构造器[`constructor`](#constructor) - [`reset`](#reset) - [`calAttribute`](#calattribute) - [`getRealInfo`](#getrealinfo) - [`getHaloSpecials`](#gethalospecials) - [`preProvideHalo`](#preprovidehalo) - [`provideHalo`](#providehalo) - [`injectHalo`](#injecthalo) - [`calDamage`](#caldamage) - [`calMapDamage`](#calmapdamage) - [`setMapDamage`](#setmapdamage) - [`calCritical`](#calcritical) - [`calDefDamage`](#caldefdamage) - [`getSeckillAtk`](#getseckillatk) ## id ```ts declare var id: string ``` - 成员说明 怪物的 id ## x ```ts declare var x: number | undefined ``` ## y ```ts declare var y: number | undefined ``` ## floorId ```ts declare var floorId: string ``` ## enemy ```ts declare var enemy: Enemy ``` - 成员说明 怪物的原始信息,即在造塔界面中填写的信息,不可修改 ## col ```ts declare var col: EnemyCollection | undefined ``` - 成员说明 该怪物所属的怪物集合,也可以是 `undefined`,表示不属于任何集合 ## info ```ts declare var info: EnemyInfo ``` - 成员说明 描述了这个怪物在计算真实属性后的属性,经过光环等加成 ## providedHalo ```ts declare var providedHalo: Set ``` - 成员说明 存储了这个怪物所有已经施加过的光环 ## constructor() ```ts interface DamageEnemy { new( enemy: Enemy, x?: number, y?: number, floorId?: string, col?: EnemyCollection ): DamageEnemy } ``` ## reset() ```ts declare function reset(): void ``` - 方法说明 重设怪物信息,恢复至原始信息,计算怪物真实属性第零步 ## calAttribute() ```ts declare function calAttribute(): void ``` - 方法说明 计算怪物在不计光环下的属性,在 inject 光环之前,预平衡光环之后执行,计算怪物属性第二步 ## getRealInfo() ```ts declare function getRealInfo(): void ``` - 方法说明 计算怪物的真实属性,在 inject 光环后执行,计算怪物属性的第四步,也是最后一步 ## getHaloSpecials() ```ts declare function getHaloSpecials(): number[] ``` - 方法说明 获取到所有还未施加过的光环属性 ## preProvideHalo() ```ts declare function preProvideHalo(): void ``` - 方法说明 光环预提供,用于平衡所有怪的光环属性,避免出现不同情况下光环效果不一致的现象,计算怪物属性的第一步 ## provideHalo() ```ts declare function provideHalo(): void ``` - 方法说明 向其他怪物提供光环,计算怪物属性的第三步 ## injectHalo() ```ts declare function injectHalo(halo: HaloFn, enemy: EnemyInfo): void ``` - 方法说明 接受来自其他怪物的光环,参考[光环处理](../../guide/battle.md#光环处理) ## calDamage() ```ts declare function calDamage(hero: Partial = core.status.hero): { damage: number } ``` - 参数说明 - `hero`: 允许部分指定勇士信息,从而达到不修改勇士属性的情况下传入不同勇士信息的效果 - 方法说明 计算怪物伤害 ## calMapDamage() ```ts declare function calMapDamage( damage: Record = {}, hero: Partial = getHeroStatusOn(Damage.realStatus) ): Record ``` - 参数说明 - `damage`: 地图伤害存入的对象 - `hero`: 部分指定勇士的真实属性,即经过 buff 等加成的属性 - 方法说明 计算地图伤害 ## setMapDamage() ```ts declare function setMapDamage( damage: Record, loc: string, dam: number, type?: string ): void ``` ## calCritical() ```ts declare function calCritical( num: number = 1, hero: Partial = core.status.hero ): CriticalDamageDelta[] ``` - 参数说明 - `num`: 计算前多少个临界 - 方法说明 计算怪物的临界,使用二分法 - 接口 `CriticalDamageDelta` ```ts interface CriticalDamageDelta { /** 跟最小伤害值的减伤 */ delta: number; damage: number; info: { damage: number }; /** 勇士的攻击增量 */ atkDelta: number; } ``` - `damage`: 伤害大小 ## calDefDamage() ```ts declare function calDefDamage( num: number = 1, hero: Partial = core.status.hero ): DamageDelta ``` - 参数说明 - `num`: 要加多少防御 - 方法说明 计算 n 防减伤 - 接口 `DamageDelta` 为接口 [`CriticalDamageDelta`](#calcritical) 去掉 `atkDelta` 属性 ## getSeckillAtk() ```ts declare function getSeckillAtk(): number ``` - 方法说明 计算在一回合内击杀怪物所需要的攻击力,用于临界计算