warscript 0.0.1-dev.2a08418 → 0.0.1-dev.2ad49fd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/types/frame.lua +47 -1
- package/core/types/sound.lua +1 -1
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +69 -11
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +8 -2
- package/engine/behaviour/ability.d.ts +11 -6
- package/engine/behaviour/ability.lua +31 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.lua +13 -3
- package/engine/buff.d.ts +58 -20
- package/engine/buff.lua +300 -152
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/fly-height.lua +3 -3
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +2 -9
- package/engine/internal/unit.lua +79 -121
- package/engine/local-client.d.ts +1 -1
- package/engine/local-client.lua +4 -4
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +84 -4
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/unit-type.d.ts +4 -0
- package/engine/object-data/entry/unit-type.lua +76 -32
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/unit.d.ts +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +3 -1
- package/engine/object-field.lua +177 -119
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +11 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/lualib_bundle.lua +1 -1
- package/objutil/buff.lua +9 -7
- package/objutil/object.lua +1 -1
- package/operation.lua +1 -4
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +2 -1
- package/utility/linked-set.lua +21 -0
- package/utility/records.lua +20 -1
- /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { UnitBehavior } from "./behaviour/unit";
|
|
|
13
13
|
import type { Widget } from "../core/types/widget";
|
|
14
14
|
import { Destructor } from "../destroyable";
|
|
15
15
|
import { Event } from "../event";
|
|
16
|
+
import { AbilityBehavior } from "./behaviour/ability";
|
|
16
17
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
17
18
|
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
18
19
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
@@ -30,8 +31,10 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
30
31
|
source?: Unit;
|
|
31
32
|
behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
|
|
32
33
|
abilityTypeIds?: Record<AbilityTypeId, {
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
readonly fields?: [
|
|
35
|
+
AbilityNumberField | AbilityNumberLevelField,
|
|
36
|
+
NumberParameterValueType
|
|
37
|
+
][];
|
|
35
38
|
/** Default `true`. */
|
|
36
39
|
readonly isButtonVisible?: boolean;
|
|
37
40
|
/** Default is the level of the source ability or 0 if it is absent. */
|
|
@@ -53,9 +56,11 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
53
56
|
damageIncrease?: NumberParameterValueType;
|
|
54
57
|
damageIncreaseFactor?: NumberParameterValueType;
|
|
55
58
|
armorIncrease?: NumberParameterValueType;
|
|
56
|
-
|
|
59
|
+
maxHealthIncrease?: NumberParameterValueType;
|
|
60
|
+
maxManaIncrease?: NumberParameterValueType;
|
|
57
61
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
58
62
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
63
|
+
manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
|
|
59
64
|
evasionProbability?: NumberParameterValueType;
|
|
60
65
|
missProbability?: NumberParameterValueType;
|
|
61
66
|
damageFactor?: NumberParameterValueType;
|
|
@@ -75,6 +80,9 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
75
80
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
76
81
|
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
77
82
|
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
83
|
+
absorbedDamageFactor?: NumberParameterValueType;
|
|
84
|
+
maximumDamageAbsorbed?: NumberParameterValueType;
|
|
85
|
+
destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
|
|
78
86
|
damageOnExpiration?: NumberParameterValueType;
|
|
79
87
|
healingOnExpiration?: NumberParameterValueType;
|
|
80
88
|
killsOnExpiration?: BooleanParameterValueType;
|
|
@@ -118,22 +126,26 @@ declare const enum BuffPropertyKey {
|
|
|
118
126
|
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
|
|
119
127
|
DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
120
128
|
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
ABSORBED_DAMAGE_FACTOR = 135,
|
|
130
|
+
MAXIMUM_DAMAGE_ABSORBED = 136,
|
|
131
|
+
DAMAGE_ABSORBED = 137,
|
|
132
|
+
DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 138,
|
|
133
|
+
TURNS_INTO_GHOST = 139,
|
|
134
|
+
STUNS = 140,
|
|
135
|
+
IGNORES_STUN_IMMUNITY = 141,
|
|
136
|
+
DISABLES_AUTO_ATTACK = 142,
|
|
137
|
+
PROVIDES_INVULNERABILITY = 143,
|
|
138
|
+
KILLS_ON_EXPIRATION = 144,
|
|
139
|
+
EXPLODES_ON_EXPIRATION = 145,
|
|
140
|
+
MISS_PROBABILITY = 146,
|
|
141
|
+
ABILITY_COOLDOWN_FACTOR = 147,
|
|
142
|
+
ABILITY_COOLDOWN_MODIFIER = 148
|
|
131
143
|
}
|
|
132
144
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
133
145
|
LEAST_DURATION = 0
|
|
134
146
|
}
|
|
135
147
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
136
|
-
export type BuffConstructorParameters<
|
|
148
|
+
export type BuffConstructorParameters<T extends Buff<BuffAdditionalParameters>> = T extends Buff<infer AdditionalParameters> ? [
|
|
137
149
|
...typeId: [ApplicableBuffTypeId] | [
|
|
138
150
|
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
139
151
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
@@ -141,10 +153,12 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
|
|
|
141
153
|
polarity: BuffPolarityParameterType,
|
|
142
154
|
resistanceType: BuffResistanceTypeParameterType,
|
|
143
155
|
...abilityOrParameters: [
|
|
144
|
-
ability?: Ability,
|
|
156
|
+
ability?: Ability | AbilityBehavior,
|
|
145
157
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
146
|
-
] | [
|
|
147
|
-
|
|
158
|
+
] | [
|
|
159
|
+
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
160
|
+
]
|
|
161
|
+
] : never;
|
|
148
162
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
149
163
|
private _unit;
|
|
150
164
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
@@ -183,6 +197,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
183
197
|
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
184
198
|
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
185
199
|
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
200
|
+
private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
|
|
201
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
|
|
202
|
+
private [BuffPropertyKey.DAMAGE_ABSORBED]?;
|
|
203
|
+
private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
|
|
186
204
|
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
187
205
|
private [BuffPropertyKey.STUNS]?;
|
|
188
206
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
@@ -197,10 +215,11 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
197
215
|
readonly typeId: ApplicableBuffTypeId;
|
|
198
216
|
readonly polarity: BuffPolarity;
|
|
199
217
|
readonly resistanceType: BuffResistanceType;
|
|
200
|
-
readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any :
|
|
218
|
+
readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : AdditionalParameters extends Record<PropertyKey, never> ? undefined : {
|
|
201
219
|
[K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
|
|
202
220
|
};
|
|
203
221
|
private readonly handle;
|
|
222
|
+
readonly previousBuff?: Buff;
|
|
204
223
|
private _timer?;
|
|
205
224
|
private readonly _level?;
|
|
206
225
|
private readonly _spellStealPriority?;
|
|
@@ -208,7 +227,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
208
227
|
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
209
228
|
private readonly _abilityTypeIds?;
|
|
210
229
|
private _behaviors?;
|
|
211
|
-
constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters
|
|
230
|
+
constructor(target: Unit, ...parameters: BuffConstructorParameters<Buff<AdditionalParameters>>);
|
|
212
231
|
get level(): number;
|
|
213
232
|
get remainingDamageOverDuration(): number;
|
|
214
233
|
set remainingDamageOverDuration(remainingDamageOverDuration: number);
|
|
@@ -236,6 +255,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
236
255
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
237
256
|
get armorIncrease(): number;
|
|
238
257
|
set armorIncrease(armorIncrease: number);
|
|
258
|
+
get maxHealthIncrease(): number;
|
|
259
|
+
set maxHealthIncrease(maxHealthIncrease: number);
|
|
260
|
+
get maxManaIncrease(): number;
|
|
261
|
+
set maxManaIncrease(maxManaIncrease: number);
|
|
239
262
|
get turnsIntoGhost(): boolean;
|
|
240
263
|
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
241
264
|
get stuns(): boolean;
|
|
@@ -264,9 +287,19 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
264
287
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
265
288
|
get evasionProbability(): number;
|
|
266
289
|
set evasionProbability(evasionProbability: number);
|
|
290
|
+
get manaRegenerationRateIncreaseFactor(): number;
|
|
291
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
|
|
267
292
|
get duration(): number;
|
|
293
|
+
set duration(duration: number);
|
|
268
294
|
get remainingDuration(): number;
|
|
269
295
|
set remainingDuration(remainingDuration: number);
|
|
296
|
+
get absorbedDamageFactor(): number;
|
|
297
|
+
set absorbedDamageFactor(absorbedDamageFactor: number);
|
|
298
|
+
get maximumDamageAbsorbed(): number;
|
|
299
|
+
set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
|
|
300
|
+
get damageAbsorbed(): number;
|
|
301
|
+
get destroysOnMaximumDamageAbsorbed(): boolean;
|
|
302
|
+
set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
|
|
270
303
|
get abilityCooldownFactor(): number;
|
|
271
304
|
set abilityCooldownFactor(abilityCooldownFactor: number);
|
|
272
305
|
onAbilityGained(ability: Ability): void;
|
|
@@ -275,7 +308,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
275
308
|
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
276
309
|
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
277
310
|
]): void;
|
|
278
|
-
flashSpecialEffect(...parameters: [
|
|
311
|
+
flashSpecialEffect(...parameters: [
|
|
312
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
313
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
314
|
+
]): void;
|
|
315
|
+
private flash;
|
|
316
|
+
expire(): void;
|
|
279
317
|
protected onCreate(): void;
|
|
280
318
|
protected onDestroy(): Destructor;
|
|
281
319
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|