warscript 0.0.1-dev.a3723da → 0.0.1-dev.a44a461

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