mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-30 19:33:24 +08:00
287 lines
5.1 KiB
Markdown
287 lines
5.1 KiB
Markdown
# 类 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<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
|
|
```
|
|
|
|
- 方法说明
|
|
|
|
接受来自其他怪物的光环,参考[光环处理](../../guide/battle.md#光环处理)
|
|
|
|
## 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`](#calcritical) 去掉 `atkDelta` 属性
|
|
|
|
## getSeckillAtk()
|
|
|
|
```ts
|
|
declare function getSeckillAtk(): number
|
|
```
|
|
|
|
- 方法说明
|
|
|
|
计算在一回合内击杀怪物所需要的攻击力,用于临界计算
|