warscript 0.0.1-dev.f5421e8 → 0.0.1-dev.f70428f

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.
Files changed (122) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/core/types/frame.lua +24 -21
  4. package/core/types/player.d.ts +15 -0
  5. package/core/types/player.lua +56 -14
  6. package/core/types/playerCamera.d.ts +2 -0
  7. package/core/types/playerCamera.lua +123 -5
  8. package/core/types/sound.lua +5 -0
  9. package/core/types/tileCell.d.ts +11 -1
  10. package/core/types/tileCell.lua +97 -0
  11. package/core/types/timer.d.ts +3 -1
  12. package/core/types/timer.lua +27 -2
  13. package/decl/native.d.ts +846 -790
  14. package/engine/behavior.d.ts +12 -1
  15. package/engine/behavior.lua +172 -70
  16. package/engine/behaviour/ability/apply-buff.lua +1 -1
  17. package/engine/behaviour/ability/damage.d.ts +6 -3
  18. package/engine/behaviour/ability/damage.lua +24 -36
  19. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  20. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  21. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  22. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  23. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  24. package/engine/behaviour/ability/restore-mana.lua +6 -6
  25. package/engine/behaviour/ability.lua +8 -17
  26. package/engine/behaviour/unit/stun-immunity.d.ts +11 -5
  27. package/engine/behaviour/unit/stun-immunity.lua +53 -28
  28. package/engine/behaviour/unit.d.ts +34 -2
  29. package/engine/behaviour/unit.lua +192 -6
  30. package/engine/buff.d.ts +12 -5
  31. package/engine/buff.lua +125 -87
  32. package/engine/internal/ability.d.ts +7 -1
  33. package/engine/internal/ability.lua +49 -9
  34. package/engine/internal/item/ability.lua +63 -11
  35. package/engine/internal/item+owner.lua +12 -6
  36. package/engine/internal/item.d.ts +18 -17
  37. package/engine/internal/item.lua +135 -49
  38. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  39. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  40. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  41. package/engine/internal/misc/frame-coordinates.lua +21 -0
  42. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  43. package/engine/internal/misc/get-terrain-z.lua +11 -0
  44. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  45. package/engine/internal/misc/player-local-handle.lua +5 -0
  46. package/engine/internal/unit/ability.d.ts +35 -0
  47. package/engine/internal/unit/ability.lua +98 -9
  48. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  49. package/engine/internal/unit/allowed-targets.lua +9 -1
  50. package/engine/internal/unit/fly-height.d.ts +7 -0
  51. package/engine/internal/unit/fly-height.lua +20 -0
  52. package/engine/internal/unit/main-selected.lua +12 -27
  53. package/engine/internal/unit/order.d.ts +20 -0
  54. package/engine/internal/unit/order.lua +136 -0
  55. package/engine/internal/unit/scale.d.ts +7 -0
  56. package/engine/internal/unit/scale.lua +20 -0
  57. package/engine/internal/unit+ability.lua +10 -1
  58. package/engine/internal/unit+damage.d.ts +2 -11
  59. package/engine/internal/unit+damage.lua +10 -14
  60. package/engine/internal/unit+spellSteal.lua +1 -2
  61. package/engine/internal/unit-missile-launch.lua +45 -14
  62. package/engine/internal/unit.d.ts +39 -19
  63. package/engine/internal/unit.lua +329 -169
  64. package/engine/local-client.d.ts +2 -0
  65. package/engine/local-client.lua +30 -0
  66. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  67. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  68. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  69. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  70. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  71. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  72. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  73. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  74. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  75. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  76. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  77. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  78. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  79. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  80. package/engine/object-data/entry/ability-type.lua +11 -3
  81. package/engine/object-data/entry/buff-type/applicable.lua +5 -0
  82. package/engine/object-data/entry/buff-type.d.ts +5 -11
  83. package/engine/object-data/entry/buff-type.lua +11 -27
  84. package/engine/object-data/entry/unit-type.d.ts +13 -4
  85. package/engine/object-data/entry/unit-type.lua +153 -85
  86. package/engine/object-field/ability.d.ts +4 -4
  87. package/engine/object-field/ability.lua +7 -6
  88. package/engine/object-field/unit.d.ts +69 -3
  89. package/engine/object-field/unit.lua +264 -7
  90. package/engine/object-field.d.ts +23 -6
  91. package/engine/object-field.lua +309 -126
  92. package/engine/random.d.ts +9 -0
  93. package/engine/random.lua +13 -0
  94. package/engine/standard/entries/buff-type.d.ts +3 -0
  95. package/engine/standard/entries/buff-type.lua +3 -0
  96. package/engine/standard/fields/unit.d.ts +6 -0
  97. package/engine/standard/fields/unit.lua +11 -0
  98. package/engine/synchronization.d.ts +11 -0
  99. package/engine/synchronization.lua +77 -0
  100. package/engine/text-tag.d.ts +36 -2
  101. package/engine/text-tag.lua +250 -10
  102. package/engine/unit.d.ts +3 -0
  103. package/engine/unit.lua +3 -0
  104. package/net/socket.lua +1 -1
  105. package/objutil/buff.lua +2 -3
  106. package/package.json +2 -2
  107. package/patch-lualib.lua +1 -1
  108. package/utility/arrays.d.ts +2 -0
  109. package/utility/arrays.lua +11 -0
  110. package/utility/callback-array.d.ts +17 -0
  111. package/utility/callback-array.lua +61 -0
  112. package/utility/functions.d.ts +8 -0
  113. package/utility/functions.lua +13 -0
  114. package/utility/linked-set.d.ts +2 -0
  115. package/utility/linked-set.lua +22 -1
  116. package/utility/lua-maps.d.ts +15 -2
  117. package/utility/lua-maps.lua +53 -2
  118. package/utility/lua-sets.d.ts +2 -0
  119. package/utility/lua-sets.lua +7 -0
  120. package/utility/types.d.ts +3 -0
  121. package/core/types/order.d.ts +0 -25
  122. package/core/types/order.lua +0 -55
@@ -11,6 +11,10 @@ import { Ability, UnitAbility } from "./ability";
11
11
  import { Widget } from "../../core/types/widget";
12
12
  import type { UnitTypeId } from "../object-data/entry/unit-type";
13
13
  import { CombatClassification, CombatClassifications } from "../object-data/auxiliary/combat-classification";
14
+ import { MovementType } from "../object-data/auxiliary/movement-type";
15
+ import { UnitAttribute } from "../object-data/auxiliary/unit-attribute";
16
+ import { AttackType } from "../object-data/auxiliary/attack-type";
17
+ import { AttributesHolder } from "../../attributes";
14
18
  export type UnitClassification = junittype;
15
19
  export declare namespace UnitClassification {
16
20
  const STRUCTURE: junittype;
@@ -19,6 +23,7 @@ export declare namespace UnitClassification {
19
23
  const GROUND: junittype;
20
24
  const SUMMONED: junittype;
21
25
  const MECHANICAL: junittype;
26
+ const WORKER: junittype;
22
27
  const ANCIENT: junittype;
23
28
  const SUICIDAL: junittype;
24
29
  const TAUREN: junittype;
@@ -36,15 +41,18 @@ type AbilityDispatcherTable<T extends any[] = []> = {
36
41
  readonly [id: number]: Event<[Unit, Ability, ...T]>;
37
42
  };
38
43
  type AbilityEventDispatcher<T extends any[] = []> = Event<[Unit, Ability, ...T]> & AbilityDispatcherTable<T>;
39
- export interface DamagingEvent {
44
+ export interface DamagingEvent extends AttributesHolder {
40
45
  amount: number;
41
- attackType: jattacktype;
46
+ attackType: AttackType;
42
47
  damageType: jdamagetype;
43
48
  weaponType: jweapontype;
49
+ metadata: unknown;
44
50
  readonly isAttack: boolean;
45
51
  readonly originalAmount: number;
52
+ readonly originalMetadata: unknown;
53
+ preventRetaliation(this: DamagingEvent): void;
46
54
  }
47
- export type DamageEvent = DamagingEvent & {
55
+ export type DamageEvent = Omit<DamagingEvent, "preventRetaliation"> & {
48
56
  preventDeath<P extends any[]>(this: DamageEvent, callback: (this: void, ...parameters: P) => any, ...parameters: P): void;
49
57
  };
50
58
  export type AttackDamageEvent = DamagingEvent & {
@@ -72,10 +80,14 @@ export declare class UnitWeapon {
72
80
  readonly unit: Unit;
73
81
  readonly index: 0 | 1;
74
82
  constructor(unit: Unit, index: 0 | 1);
83
+ get isEnabled(): boolean;
84
+ set isEnabled(isEnabled: boolean);
75
85
  get cooldown(): number;
76
86
  set cooldown(cooldown: number);
77
87
  get damage(): [minimumDamage: number, maximumDamage: number];
78
88
  set damage([minimumDamage, maximumDamage]: [number, number]);
89
+ get allowedTargetCombatClassifications(): CombatClassifications;
90
+ set allowedTargetCombatClassifications(allowedTargetCombatClassifications: CombatClassifications);
79
91
  get damageBase(): number;
80
92
  set damageBase(damageBase: number);
81
93
  get damageDiceCount(): number;
@@ -97,12 +109,13 @@ declare const enum UnitPropertyKey {
97
109
  SYNC_ID = 100,
98
110
  IS_PAUSED = 101,
99
111
  STUN_COUNTER = 102,
100
- DELAY_HEALTH_CHECKS_COUNTER = 103,
101
- DELAY_HEALTH_CHECKS_HEALTH_BONUS = 104,
102
- PREVENT_DEATH_HEALTH_BONUS = 105,
103
- IS_TEAM_GLOW_HIDDEN = 106,
104
- LAST_X = 107,
105
- LAST_Y = 108
112
+ FORCE_STUN_COUNTER = 103,
113
+ DELAY_HEALTH_CHECKS_COUNTER = 104,
114
+ DELAY_HEALTH_CHECKS_HEALTH_BONUS = 105,
115
+ PREVENT_DEATH_HEALTH_BONUS = 106,
116
+ IS_TEAM_GLOW_HIDDEN = 107,
117
+ LAST_X = 108,
118
+ LAST_Y = 109
106
119
  }
107
120
  export type UnitSyncId = number & {
108
121
  readonly __unitSyncId: unique symbol;
@@ -111,6 +124,7 @@ export declare class Unit extends Handle<junit> {
111
124
  readonly syncId: UnitSyncId;
112
125
  private [UnitPropertyKey.IS_PAUSED]?;
113
126
  private [UnitPropertyKey.STUN_COUNTER]?;
127
+ private [UnitPropertyKey.FORCE_STUN_COUNTER]?;
114
128
  private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
115
129
  private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
116
130
  private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
@@ -150,17 +164,19 @@ export declare class Unit extends Handle<junit> {
150
164
  isInRangeOf(unit: Unit, range: number): boolean;
151
165
  isAllyOf(unit: Unit): boolean;
152
166
  isEnemyOf(unit: Unit): boolean;
153
- playAnimation(animation: string, rarity?: jraritycontrol): void;
154
- playAnimation(animation: number): void;
167
+ playAnimation(...parameters: [animation: number] | [animation: string, rarity?: jraritycontrol]): void;
155
168
  resetAnimation(): void;
156
169
  queueAnimation(animation: string): void;
157
170
  get weapons(): [UnitWeapon, UnitWeapon];
158
171
  get firstWeapon(): UnitWeapon;
159
172
  get secondWeapon(): UnitWeapon;
173
+ chooseWeapon(target: Unit): UnitWeapon | undefined;
160
174
  get level(): number;
161
175
  set level(v: number);
162
176
  get xp(): number;
163
177
  set xp(v: number);
178
+ get primaryAttribute(): UnitAttribute;
179
+ set primaryAttribute(primaryAttribute: UnitAttribute);
164
180
  get strengthBase(): number;
165
181
  set strengthBase(strengthBase: number);
166
182
  get strengthBonus(): number;
@@ -204,8 +220,6 @@ export declare class Unit extends Handle<junit> {
204
220
  set facing(v: number);
205
221
  get speed(): number;
206
222
  set speed(v: number);
207
- get flyHeight(): number;
208
- set flyHeight(v: number);
209
223
  get x(): number;
210
224
  set x(v: number);
211
225
  get y(): number;
@@ -229,12 +243,12 @@ export declare class Unit extends Handle<junit> {
229
243
  get isInvulnerable(): boolean;
230
244
  get vertexColor(): Color;
231
245
  set vertexColor(v: Color);
232
- get scale(): number;
233
- set scale(v: number);
234
246
  get timeScale(): number;
235
247
  set timeScale(v: number);
236
248
  get collisionSize(): number;
237
249
  get pathingCollisionRange(): number;
250
+ get movementType(): MovementType;
251
+ set movementType(movementType: MovementType);
238
252
  set pathing(v: boolean);
239
253
  isSelected(player: Player): boolean;
240
254
  explode(): void;
@@ -252,17 +266,18 @@ export declare class Unit extends Handle<junit> {
252
266
  dropItemTarget(item: Item, target: Widget): boolean;
253
267
  dropItemSlot(item: Item, slot: number): boolean;
254
268
  itemInSlot(slot: number): Item | null;
255
- addAbility(abilityId: number): UnitAbility | null;
269
+ addAbility(abilityId: number): UnitAbility | undefined;
256
270
  makeAbilityPermanent(abilityId: number, permanent: true): boolean;
257
271
  setAbilityLevel(abilityId: number, level: number): number;
258
272
  getAbilityLevel(abilityId: number): number;
259
273
  hasAbility(abilityId: number): boolean;
260
- getAbilityById(abilityId: number): UnitAbility | undefined;
261
- removeAbility(abilityId: number): boolean;
274
+ getAbility(abilityId: number): UnitAbility | undefined;
275
+ removeAbility(abilityTypeId: number): boolean;
262
276
  hideAbility(abilityId: number, flag: boolean): void;
263
277
  getAbilityRemainingCooldown(abilityId: number): number;
264
278
  startAbilityCooldown(abilityId: number, cooldown: number): void;
265
279
  endAbilityCooldown(abilityId: number): void;
280
+ interruptMovement(): void;
266
281
  interruptAttack(): void;
267
282
  interruptCast(abilityId: number): void;
268
283
  getDistanceTo(target: Unit | Vec2): number;
@@ -277,6 +292,8 @@ export declare class Unit extends Handle<junit> {
277
292
  unpauseEx(): void;
278
293
  incrementStunCounter(): void;
279
294
  decrementStunCounter(): void;
295
+ incrementForceStunCounter(): void;
296
+ decrementForceStunCounter(): void;
280
297
  set waygateActive(v: boolean);
281
298
  get waygateActive(): boolean;
282
299
  set waygateDestination(v: Vec2);
@@ -285,6 +302,7 @@ export declare class Unit extends Handle<junit> {
285
302
  get onUnitInRange(): Record<number, Event<[Unit]>>;
286
303
  get onManaEqual(): Record<number, Event<[Unit, number]>>;
287
304
  get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
305
+ get targetAcquiredEvent(): Event;
288
306
  get onSelect(): Event;
289
307
  get onDeselect(): Event;
290
308
  get onImmediateOrder(): Event<[number]>;
@@ -337,7 +355,8 @@ export declare class Unit extends Handle<junit> {
337
355
  static itemDroppedEvent: UnitTriggerEvent<[Item]>;
338
356
  static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
339
357
  static itemUsedEvent: UnitTriggerEvent<[Item]>;
340
- static itemStackedEvent: UnitTriggerEvent<[Item]>;
358
+ static itemStackedEvent: UnitTriggerEvent<[target: Item, source: Item]>;
359
+ static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
341
360
  static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
342
361
  static get itemMoveOrderEvent(): Event<[
343
362
  unit: Unit,
@@ -356,5 +375,6 @@ export declare class Unit extends Handle<junit> {
356
375
  setField(field: junitstringfield, value: string): boolean;
357
376
  toString(): string;
358
377
  static getBySyncId(syncId: UnitSyncId): Unit | undefined;
378
+ static synchronize: (player: Player, object: Unit | undefined) => Promise<Unit | undefined>;
359
379
  }
360
380
  export {};