HumanBreak/docs/api/class/damage-enemy.md
2024-03-01 19:52:30 +08:00

5.1 KiB

类 DamageEnemy

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

id

declare var id: string
  • 成员说明

    怪物的 id

x

declare var x: number | undefined

y

declare var y: number | undefined

floorId

declare var floorId: string

enemy

declare var enemy: Enemy
  • 成员说明

    怪物的原始信息,即在造塔界面中填写的信息,不可修改

col

declare var col: EnemyCollection | undefined
  • 成员说明

    该怪物所属的怪物集合,也可以是 undefined,表示不属于任何集合

info

declare var info: EnemyInfo
  • 成员说明

    描述了这个怪物在计算真实属性后的属性,经过光环等加成

providedHalo

declare var providedHalo: Set<number>
  • 成员说明

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

constructor()

interface DamageEnemy {
    new(
        enemy: Enemy,
        x?: number,
        y?: number,
        floorId?: string,
        col?: EnemyCollection
    ): DamageEnemy
}

reset()

declare function reset(): void
  • 方法说明

    重设怪物信息,恢复至原始信息,计算怪物真实属性第零步

calAttribute()

declare function calAttribute(): void
  • 方法说明

    计算怪物在不计光环下的属性,在 inject 光环之前,预平衡光环之后执行,计算怪物属性第二步

getRealInfo()

declare function getRealInfo(): void
  • 方法说明

    计算怪物的真实属性,在 inject 光环后执行,计算怪物属性的第四步,也是最后一步

getHaloSpecials()

declare function getHaloSpecials(): number[]
  • 方法说明

    获取到所有还未施加过的光环属性

preProvideHalo()

declare function preProvideHalo(): void
  • 方法说明

    光环预提供,用于平衡所有怪的光环属性,避免出现不同情况下光环效果不一致的现象,计算怪物属性的第一步

provideHalo()

declare function provideHalo(): void
  • 方法说明

    向其他怪物提供光环,计算怪物属性的第三步

injectHalo()

declare function injectHalo(halo: HaloFn, enemy: EnemyInfo): void
  • 方法说明

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

calDamage()

declare function calDamage(hero: Partial<HeroStatus> = core.status.hero): { damage: number }
  • 参数说明

    • hero: 允许部分指定勇士信息,从而达到不修改勇士属性的情况下传入不同勇士信息的效果
  • 方法说明

    计算怪物伤害

calMapDamage()

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

    • damage: 地图伤害存入的对象
    • hero: 部分指定勇士的真实属性,即经过 buff 等加成的属性
  • 方法说明

    计算地图伤害

setMapDamage()

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

calCritical()

declare function calCritical(
    num: number = 1,
    hero: Partial<HeroStatus> = core.status.hero
): CriticalDamageDelta[]
  • 参数说明

    • num: 计算前多少个临界
  • 方法说明

    计算怪物的临界,使用二分法

  • 接口 CriticalDamageDelta

    interface CriticalDamageDelta {
        /** 跟最小伤害值的减伤 */
        delta: number;
        damage: number;
        info: { damage: number };
        /** 勇士的攻击增量 */
        atkDelta: number;
    }
    
    • damage: 伤害大小

calDefDamage()

declare function calDefDamage(
    num: number = 1,
    hero: Partial<HeroStatus> = core.status.hero
): DamageDelta
  • 参数说明

    • num: 要加多少防御
  • 方法说明

    计算 n 防减伤

  • 接口 DamageDelta

    为接口 CriticalDamageDelta 去掉 atkDelta 属性

getSeckillAtk()

declare function getSeckillAtk(): number
  • 方法说明

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