Skip to content

# 类 EnemyCollection ​

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

- 实例成员
  - `floorId`
  - `list`
  - `range`
  - `mapDamage`
  - `haloList`
- 实例方法
  - 构造器`constructor`
  - `get`
  - `extract`
  - `calRealAttribute`
  - `calMapDamage`
  - `applyHalo`
  - `preBalanceHalo`
  - `render`

## floorId ​

ts

    declare var floorId: string

- 成员说明

  怪物集合所属楼层

## list ​

ts

    declare var list: DamageEnemy[]

- 成员说明

  这个怪物集合中所有的怪物

## mapDamage ​

ts

    declare var mapDamage: Record<LocString, MapDamage>

- 成员说明

  存储了当前楼层的所有地图伤害，键为位置，格式为 `x,y`，值为这一点的伤害信息

- 接口 `MapDamage`

  ts

      interface MapDamage {
          damage: number;
          type: Set<string>;
          repulse?: LocArr[];
          ambush?: DamageEnemy[];
      }

  - `damage`: 这一点的伤害值
  - `type`: 这一点的伤害类型集合，例如阻击夹击伤害等
  - `repulse`: 阻击信息
  - `ambush`: 捕捉信息

## haloList ​

ts

    declare var haloList: HaloData[]

## constructor() ​

ts

    interface EnemyCollection {
        new(floorId: string): EnemyCollection
    }

## get() ​

ts

    declare function get(x: number, y: number): DamageEnemy | undefined

- 方法说明

  获取指定位置的怪物实例，不存在则返回 `undefined`

## extract() ​

ts

    declare function extract(): void

- 方法说明

  解析当前地图的怪物信息，将每个怪物都生成一个 `DamageEnemy` 实例，并添加到 `list` 中

## calRealAttribute() ​

ts

    declare function calRealAttribute(): void

- 方法说明

  计算怪物的真实属性，即经过各种属性光环等加成后的属性

## calMapDamage() ​

ts

    declare function calMapDamage(): void

- 方法说明

  计算当前地图的地图伤害信息

## applyHalo() ​

ts

    declare function applyHalo(
        type: string,
        data: any,
        enemy: DamageEnemy,
        halo: HaloFn | HaloFn[],
        recursion: boolean = false
    ): void

- 参数说明

  - `type`: 光环范围类型，例如方形范围等
  - `data`: 范围参数，例如方形范围就要传入位置即边长
  - `enemy`: 施加光环的怪物
  - `halo`: 光环执行函数，用于给怪物增加属性，如果传入数组，那么每个都会执行
  - `recursion`: 对于一般光环，填 `false` 即可，对于可以加光环或者特殊属性的光环，需要填 `true`

- 方法说明

  给同楼层的怪物施加光环

## preBalanceHalo() ​

ts

    declare function preBalanceHalo(): void

- 方法说明

  预平衡光环，用于处理可以加光环或者特殊属性的光环

## render() ​

ts

    declare function render(): void

- 方法说明

  渲染所有的伤害信息，包括地图伤害与临界