Skip to content

# 类 DamageEnemy ​

游戏进程类，渲染进程也可以使用

- 实例成员
  - `id`
  - `x`
  - `y`
  - `floorId`
  - `enemy`
  - `col`
  - `info`
  - `providedHalo`
- 实例方法
  - 构造器`constructor`
  - `reset`
  - `calAttribute`
  - `getRealInfo`
  - `getHaloSpecials`
  - `preProvideHalo`
  - `provideHalo`
  - `injectHalo`
  - `calDamage`
  - `calMapDamage`
  - `setMapDamage`
  - `calCritical`
  - `calDefDamage`
  - `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<number>

- 成员说明

  存储了这个怪物所有已经施加过的光环

## 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

- 方法说明

  接受来自其他怪物的光环，参考光环处理

## calDamage() ​

ts

    declare function calDamage(hero: Partial<HeroStatus> = core.status.hero): { damage: number }

- 参数说明

  - `hero`: 允许部分指定勇士信息，从而达到不修改勇士属性的情况下传入不同勇士信息的效果

- 方法说明

  计算怪物伤害

## calMapDamage() ​

ts

    declare function calMapDamage(
        damage: Record<string, MapDamage> = {},
        hero: Partial<HeroStatus> = getHeroStatusOn(Damage.realStatus)
    ): Record<string, MapDamage>

- 参数说明

  - `damage`: 地图伤害存入的对象
  - `hero`: 部分指定勇士的真实属性，即经过 buff 等加成的属性

- 方法说明

  计算地图伤害

## setMapDamage() ​

ts

    declare function setMapDamage(
        damage: Record<string, MapDamage>,
        loc: string,
        dam: number,
        type?: string
    ): void

## calCritical() ​

ts

    declare function calCritical(
        num: number = 1,
        hero: Partial<HeroStatus> = 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<HeroStatus> = core.status.hero
    ): DamageDelta

- 参数说明

  - `num`: 要加多少防御

- 方法说明

  计算 n 防减伤

- 接口 `DamageDelta`

  为接口 `CriticalDamageDelta` 去掉 `atkDelta` 属性

## getSeckillAtk() ​

ts

    declare function getSeckillAtk(): number

- 方法说明

  计算在一回合内击杀怪物所需要的攻击力，用于临界计算