warscript 0.0.1-dev.5dbd5af → 0.0.1-dev.5e33506

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