warscript 0.0.1-dev.c15015e → 0.0.1-dev.c1c578a

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 (165) hide show
  1. package/attributes.d.ts +5 -0
  2. package/attributes.lua +8 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +14 -6
  6. package/core/types/effect.lua +131 -35
  7. package/core/types/frame.d.ts +4 -0
  8. package/core/types/frame.lua +71 -0
  9. package/core/types/sound.d.ts +17 -24
  10. package/core/types/sound.lua +99 -24
  11. package/core/types/timer.d.ts +6 -7
  12. package/core/types/timer.lua +18 -21
  13. package/core/util.d.ts +1 -1
  14. package/core/util.lua +18 -1
  15. package/decl/native.d.ts +840 -786
  16. package/engine/behavior.d.ts +2 -2
  17. package/engine/behavior.lua +6 -6
  18. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  19. package/engine/behaviour/ability/always-enabled.lua +31 -0
  20. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  21. package/engine/behaviour/ability/apply-buff.lua +32 -0
  22. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  23. package/engine/behaviour/ability/damage.d.ts +9 -3
  24. package/engine/behaviour/ability/damage.lua +26 -38
  25. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  26. package/engine/behaviour/ability/emulate-impact.lua +35 -0
  27. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  28. package/engine/behaviour/ability/instant-impact.lua +4 -19
  29. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  30. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  31. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  32. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  33. package/engine/behaviour/ability.d.ts +20 -4
  34. package/engine/behaviour/ability.lua +111 -38
  35. package/engine/behaviour/unit.d.ts +2 -0
  36. package/engine/buff.d.ts +62 -42
  37. package/engine/buff.lua +312 -234
  38. package/engine/internal/ability.d.ts +16 -13
  39. package/engine/internal/ability.lua +80 -76
  40. package/engine/internal/item/ability.lua +106 -0
  41. package/engine/internal/item.d.ts +4 -3
  42. package/engine/internal/item.lua +56 -25
  43. package/engine/internal/mechanics/ability-duration.lua +1 -1
  44. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  45. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  46. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  47. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  48. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  49. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  50. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  51. package/engine/internal/object-data/evasion-probability.lua +16 -0
  52. package/engine/internal/unit/ability.d.ts +10 -1
  53. package/engine/internal/unit/ability.lua +36 -14
  54. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  55. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  56. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  57. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  58. package/engine/internal/unit/bonus.d.ts +2 -0
  59. package/engine/internal/unit/bonus.lua +17 -0
  60. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  61. package/engine/internal/unit/ignore-events-items.lua +5 -0
  62. package/engine/internal/{unit+item.d.ts → unit/item.d.ts} +5 -4
  63. package/engine/internal/{unit+item.lua → unit/item.lua} +32 -11
  64. package/engine/internal/unit/main-selected.d.ts +13 -0
  65. package/engine/internal/unit/main-selected.lua +51 -0
  66. package/engine/internal/unit+damage.d.ts +2 -11
  67. package/engine/internal/unit+damage.lua +10 -14
  68. package/engine/internal/unit+spellSteal.lua +1 -2
  69. package/engine/internal/unit-missile-launch.lua +24 -5
  70. package/engine/internal/unit.d.ts +39 -9
  71. package/engine/internal/unit.lua +247 -113
  72. package/engine/internal/utility.lua +12 -0
  73. package/engine/lightning.d.ts +12 -5
  74. package/engine/lightning.lua +48 -14
  75. package/engine/local-client.d.ts +7 -2
  76. package/engine/local-client.lua +82 -0
  77. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  78. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  79. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  80. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  81. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  82. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  83. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  84. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  85. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  86. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  87. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  88. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  89. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  90. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  91. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  92. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  93. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  94. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  95. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  96. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  97. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  98. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  99. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  100. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  101. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  102. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  103. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  104. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  105. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  106. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  107. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  108. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  109. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  110. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  111. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  112. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  113. package/engine/object-data/entry/ability-type/web.lua +52 -0
  114. package/engine/object-data/entry/ability-type.d.ts +19 -17
  115. package/engine/object-data/entry/ability-type.lua +89 -33
  116. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  117. package/engine/object-data/entry/buff-type.d.ts +6 -12
  118. package/engine/object-data/entry/buff-type.lua +13 -29
  119. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  120. package/engine/object-data/entry/item-type.d.ts +15 -1
  121. package/engine/object-data/entry/item-type.lua +93 -2
  122. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  123. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  124. package/engine/object-data/entry/sound-preset.lua +140 -0
  125. package/engine/object-data/entry/unit-type.d.ts +10 -3
  126. package/engine/object-data/entry/unit-type.lua +155 -92
  127. package/engine/object-data/entry/upgrade.d.ts +1 -1
  128. package/engine/object-data/entry/upgrade.lua +4 -4
  129. package/engine/object-data/entry.d.ts +16 -14
  130. package/engine/object-data/entry.lua +60 -32
  131. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  132. package/engine/object-field/ability.d.ts +10 -4
  133. package/engine/object-field/ability.lua +4 -1
  134. package/engine/object-field/unit.d.ts +46 -3
  135. package/engine/object-field/unit.lua +173 -7
  136. package/engine/object-field.d.ts +11 -3
  137. package/engine/object-field.lua +162 -76
  138. package/engine/standard/entries/buff-type.d.ts +3 -0
  139. package/engine/standard/entries/buff-type.lua +3 -0
  140. package/engine/standard/entries/sound-preset.d.ts +10 -0
  141. package/engine/standard/entries/sound-preset.lua +10 -0
  142. package/engine/standard/fields/ability.d.ts +2 -0
  143. package/engine/standard/fields/ability.lua +2 -0
  144. package/engine/unit.d.ts +3 -1
  145. package/engine/unit.lua +3 -1
  146. package/index.d.ts +1 -0
  147. package/index.lua +1 -0
  148. package/objutil/buff.lua +1 -2
  149. package/objutil/unit.lua +8 -0
  150. package/package.json +2 -2
  151. package/patch-lua.d.ts +0 -0
  152. package/patch-lua.lua +10 -0
  153. package/utility/arrays.d.ts +9 -1
  154. package/utility/arrays.lua +37 -3
  155. package/utility/functions.d.ts +1 -0
  156. package/utility/functions.lua +1 -0
  157. package/utility/lazy.d.ts +2 -0
  158. package/utility/lazy.lua +14 -0
  159. package/utility/linked-set.d.ts +1 -0
  160. package/utility/linked-set.lua +3 -0
  161. package/utility/lua-maps.d.ts +3 -0
  162. package/utility/lua-maps.lua +16 -0
  163. package/utility/lua-sets.d.ts +1 -0
  164. package/utility/lua-sets.lua +3 -0
  165. package/utility/reflection.lua +11 -7
@@ -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,13 +41,15 @@ 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;
46
53
  }
47
54
  export type DamageEvent = DamagingEvent & {
48
55
  preventDeath<P extends any[]>(this: DamageEvent, callback: (this: void, ...parameters: P) => any, ...parameters: P): void;
@@ -94,20 +101,29 @@ export declare class UnitWeapon {
94
101
  set missileSpeed(missileSpeed: number);
95
102
  }
96
103
  declare const enum UnitPropertyKey {
97
- IS_PAUSED = 100,
98
- STUN_COUNTER = 101,
99
- DELAY_HEALTH_CHECKS_COUNTER = 102,
100
- DELAY_HEALTH_CHECKS_HEALTH_BONUS = 103,
101
- PREVENT_DEATH_HEALTH_BONUS = 104,
102
- IS_TEAM_GLOW_HIDDEN = 105
104
+ SYNC_ID = 100,
105
+ IS_PAUSED = 101,
106
+ STUN_COUNTER = 102,
107
+ DELAY_HEALTH_CHECKS_COUNTER = 103,
108
+ DELAY_HEALTH_CHECKS_HEALTH_BONUS = 104,
109
+ PREVENT_DEATH_HEALTH_BONUS = 105,
110
+ IS_TEAM_GLOW_HIDDEN = 106,
111
+ LAST_X = 107,
112
+ LAST_Y = 108
103
113
  }
114
+ export type UnitSyncId = number & {
115
+ readonly __unitSyncId: unique symbol;
116
+ };
104
117
  export declare class Unit extends Handle<junit> {
118
+ readonly syncId: UnitSyncId;
105
119
  private [UnitPropertyKey.IS_PAUSED]?;
106
120
  private [UnitPropertyKey.STUN_COUNTER]?;
107
121
  private [UnitPropertyKey.DELAY_HEALTH_CHECKS_COUNTER]?;
108
122
  private [UnitPropertyKey.DELAY_HEALTH_CHECKS_HEALTH_BONUS]?;
109
123
  private [UnitPropertyKey.PREVENT_DEATH_HEALTH_BONUS]?;
110
124
  private [UnitPropertyKey.IS_TEAM_GLOW_HIDDEN]?;
125
+ private [UnitPropertyKey.LAST_X]?;
126
+ private [UnitPropertyKey.LAST_Y]?;
111
127
  private _owner?;
112
128
  private _timeScale?;
113
129
  private events?;
@@ -128,6 +144,7 @@ export declare class Unit extends Handle<junit> {
128
144
  get isAlive(): boolean;
129
145
  get isDead(): boolean;
130
146
  get isIllusion(): boolean;
147
+ get isStunned(): boolean;
131
148
  get combatClassifications(): CombatClassifications;
132
149
  set combatClassifications(combatClassifications: CombatClassifications);
133
150
  hasCombatClassification(combatClassification: CombatClassification): boolean;
@@ -142,6 +159,7 @@ export declare class Unit extends Handle<junit> {
142
159
  isEnemyOf(unit: Unit): boolean;
143
160
  playAnimation(animation: string, rarity?: jraritycontrol): void;
144
161
  playAnimation(animation: number): void;
162
+ resetAnimation(): void;
145
163
  queueAnimation(animation: string): void;
146
164
  get weapons(): [UnitWeapon, UnitWeapon];
147
165
  get firstWeapon(): UnitWeapon;
@@ -150,6 +168,8 @@ export declare class Unit extends Handle<junit> {
150
168
  set level(v: number);
151
169
  get xp(): number;
152
170
  set xp(v: number);
171
+ get primaryAttribute(): UnitAttribute;
172
+ set primaryAttribute(primaryAttribute: UnitAttribute);
153
173
  get strengthBase(): number;
154
174
  set strengthBase(strengthBase: number);
155
175
  get strengthBonus(): number;
@@ -224,6 +244,8 @@ export declare class Unit extends Handle<junit> {
224
244
  set timeScale(v: number);
225
245
  get collisionSize(): number;
226
246
  get pathingCollisionRange(): number;
247
+ get movementType(): MovementType;
248
+ set movementType(movementType: MovementType);
227
249
  set pathing(v: boolean);
228
250
  isSelected(player: Player): boolean;
229
251
  explode(): void;
@@ -288,7 +310,7 @@ export declare class Unit extends Handle<junit> {
288
310
  static getInRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
289
311
  static getInCollisionRange(x: number, y: number, range: number, predicate?: (unit: Unit) => boolean): Unit[];
290
312
  static getInSector(pos: Vec2, range: number, offsetAngle: number, centralAngle: number): Unit[];
291
- static getSelectionOf(player: Player): Unit[];
313
+ static getSelectionOf(player: Player, target?: Unit[]): Unit[];
292
314
  static readonly deathEvent: UnitTriggerEvent<[Unit]>;
293
315
  static readonly onDecay: UnitTriggerEvent<[]>;
294
316
  static readonly onResurrect: InitializingEvent<[Unit], void>;
@@ -327,6 +349,13 @@ export declare class Unit extends Handle<junit> {
327
349
  static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
328
350
  static itemUsedEvent: UnitTriggerEvent<[Item]>;
329
351
  static itemStackedEvent: UnitTriggerEvent<[Item]>;
352
+ static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
353
+ static get itemMoveOrderEvent(): Event<[
354
+ unit: Unit,
355
+ item: Item,
356
+ slotFrom: 0 | 1 | 2 | 3 | 4 | 5,
357
+ slotTo: 0 | 1 | 2 | 3 | 4 | 5
358
+ ]>;
330
359
  static get onCreate(): EventDispatcher<[Unit], [Unit]>;
331
360
  static get destroyEvent(): EventDispatcher<[Unit], [Unit]>;
332
361
  getField(field: junitintegerfield | junitrealfield): number;
@@ -337,5 +366,6 @@ export declare class Unit extends Handle<junit> {
337
366
  setField(field: junitbooleanfield, value: boolean): boolean;
338
367
  setField(field: junitstringfield, value: string): boolean;
339
368
  toString(): string;
369
+ static getBySyncId(syncId: UnitSyncId): Unit | undefined;
340
370
  }
341
371
  export {};