warscript 0.0.1-dev.9ee7706 → 0.0.1-dev.9f30788

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 (117) hide show
  1. package/attributes.d.ts +5 -0
  2. package/attributes.lua +8 -1
  3. package/core/types/effect.d.ts +1 -3
  4. package/core/types/effect.lua +26 -29
  5. package/core/types/frame.lua +24 -21
  6. package/core/types/player.lua +3 -1
  7. package/core/types/playerCamera.d.ts +2 -0
  8. package/core/types/playerCamera.lua +123 -5
  9. package/core/types/sound.lua +5 -0
  10. package/core/types/tileCell.d.ts +9 -0
  11. package/core/types/tileCell.lua +92 -0
  12. package/core/types/timer.d.ts +9 -8
  13. package/core/types/timer.lua +45 -23
  14. package/decl/native.d.ts +846 -790
  15. package/engine/behavior.d.ts +5 -0
  16. package/engine/behavior.lua +106 -27
  17. package/engine/behaviour/ability/apply-buff.lua +1 -1
  18. package/engine/behaviour/ability/damage.d.ts +6 -3
  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 +18 -3
  22. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  23. package/engine/behaviour/ability/restore-mana.lua +6 -6
  24. package/engine/behaviour/ability.d.ts +4 -1
  25. package/engine/behaviour/ability.lua +14 -21
  26. package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
  27. package/engine/behaviour/unit/stun-immunity.lua +52 -27
  28. package/engine/behaviour/unit.d.ts +33 -1
  29. package/engine/behaviour/unit.lua +190 -4
  30. package/engine/buff.d.ts +2 -4
  31. package/engine/buff.lua +68 -83
  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/order.d.ts +20 -0
  51. package/engine/internal/unit/order.lua +136 -0
  52. package/engine/internal/unit+ability.lua +10 -1
  53. package/engine/internal/unit+damage.d.ts +2 -11
  54. package/engine/internal/unit+damage.lua +10 -14
  55. package/engine/internal/unit+spellSteal.lua +1 -2
  56. package/engine/internal/unit-missile-launch.lua +45 -8
  57. package/engine/internal/unit.d.ts +26 -9
  58. package/engine/internal/unit.lua +251 -110
  59. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  60. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  61. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  62. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  63. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  64. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  65. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  66. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  67. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  68. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  69. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  70. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  71. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  72. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  73. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  74. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  75. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  76. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  77. package/engine/object-data/entry/ability-type.d.ts +11 -11
  78. package/engine/object-data/entry/ability-type.lua +31 -9
  79. package/engine/object-data/entry/buff-type/applicable.lua +5 -0
  80. package/engine/object-data/entry/buff-type.d.ts +5 -11
  81. package/engine/object-data/entry/buff-type.lua +11 -27
  82. package/engine/object-data/entry/unit-type.d.ts +13 -4
  83. package/engine/object-data/entry/unit-type.lua +153 -85
  84. package/engine/object-field/ability.d.ts +4 -4
  85. package/engine/object-field/ability.lua +7 -6
  86. package/engine/object-field/unit.d.ts +57 -3
  87. package/engine/object-field/unit.lua +207 -7
  88. package/engine/object-field.d.ts +17 -6
  89. package/engine/object-field.lua +188 -92
  90. package/engine/random.d.ts +9 -0
  91. package/engine/random.lua +13 -0
  92. package/engine/standard/entries/buff-type.d.ts +3 -0
  93. package/engine/standard/entries/buff-type.lua +3 -0
  94. package/engine/standard/fields/unit.d.ts +4 -0
  95. package/engine/standard/fields/unit.lua +7 -0
  96. package/engine/text-tag.d.ts +36 -2
  97. package/engine/text-tag.lua +249 -10
  98. package/engine/unit.d.ts +1 -0
  99. package/engine/unit.lua +1 -0
  100. package/objutil/buff.lua +2 -3
  101. package/package.json +2 -2
  102. package/patch-lualib.lua +1 -1
  103. package/utility/arrays.d.ts +2 -0
  104. package/utility/arrays.lua +11 -0
  105. package/utility/callback-array.d.ts +17 -0
  106. package/utility/callback-array.lua +61 -0
  107. package/utility/functions.d.ts +8 -0
  108. package/utility/functions.lua +13 -0
  109. package/utility/linked-set.d.ts +1 -0
  110. package/utility/linked-set.lua +3 -0
  111. package/utility/lua-maps.d.ts +15 -2
  112. package/utility/lua-maps.lua +53 -2
  113. package/utility/lua-sets.d.ts +2 -0
  114. package/utility/lua-sets.lua +7 -0
  115. package/utility/types.d.ts +3 -0
  116. package/core/types/order.d.ts +0 -25
  117. 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 & {
@@ -76,6 +84,8 @@ export declare class UnitWeapon {
76
84
  set cooldown(cooldown: number);
77
85
  get damage(): [minimumDamage: number, maximumDamage: number];
78
86
  set damage([minimumDamage, maximumDamage]: [number, number]);
87
+ get allowedTargetCombatClassifications(): CombatClassifications;
88
+ set allowedTargetCombatClassifications(allowedTargetCombatClassifications: CombatClassifications);
79
89
  get damageBase(): number;
80
90
  set damageBase(damageBase: number);
81
91
  get damageDiceCount(): number;
@@ -150,17 +160,19 @@ export declare class Unit extends Handle<junit> {
150
160
  isInRangeOf(unit: Unit, range: number): boolean;
151
161
  isAllyOf(unit: Unit): boolean;
152
162
  isEnemyOf(unit: Unit): boolean;
153
- playAnimation(animation: string, rarity?: jraritycontrol): void;
154
- playAnimation(animation: number): void;
163
+ playAnimation(...parameters: [animation: number] | [animation: string, rarity?: jraritycontrol]): void;
155
164
  resetAnimation(): void;
156
165
  queueAnimation(animation: string): void;
157
166
  get weapons(): [UnitWeapon, UnitWeapon];
158
167
  get firstWeapon(): UnitWeapon;
159
168
  get secondWeapon(): UnitWeapon;
169
+ chooseWeapon(target: Unit): UnitWeapon | undefined;
160
170
  get level(): number;
161
171
  set level(v: number);
162
172
  get xp(): number;
163
173
  set xp(v: number);
174
+ get primaryAttribute(): UnitAttribute;
175
+ set primaryAttribute(primaryAttribute: UnitAttribute);
164
176
  get strengthBase(): number;
165
177
  set strengthBase(strengthBase: number);
166
178
  get strengthBonus(): number;
@@ -235,6 +247,8 @@ export declare class Unit extends Handle<junit> {
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;
@@ -285,6 +300,7 @@ export declare class Unit extends Handle<junit> {
285
300
  get onUnitInRange(): Record<number, Event<[Unit]>>;
286
301
  get onManaEqual(): Record<number, Event<[Unit, number]>>;
287
302
  get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
303
+ get targetAcquiredEvent(): Event;
288
304
  get onSelect(): Event;
289
305
  get onDeselect(): Event;
290
306
  get onImmediateOrder(): Event<[number]>;
@@ -337,7 +353,8 @@ export declare class Unit extends Handle<junit> {
337
353
  static itemDroppedEvent: UnitTriggerEvent<[Item]>;
338
354
  static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
339
355
  static itemUsedEvent: UnitTriggerEvent<[Item]>;
340
- static itemStackedEvent: UnitTriggerEvent<[Item]>;
356
+ static itemStackedEvent: UnitTriggerEvent<[target: Item, source: Item]>;
357
+ static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
341
358
  static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
342
359
  static get itemMoveOrderEvent(): Event<[
343
360
  unit: Unit,