warscript 0.0.1-dev.959b9a7 → 0.0.1-dev.971c803

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 (157) hide show
  1. package/attributes.d.ts +12 -0
  2. package/attributes.lua +16 -0
  3. package/binaryreader.d.ts +1 -0
  4. package/binaryreader.lua +3 -0
  5. package/core/types/effect.d.ts +13 -3
  6. package/core/types/effect.lua +116 -17
  7. package/core/types/frame.d.ts +8 -1
  8. package/core/types/frame.lua +93 -1
  9. package/core/types/group.d.ts +0 -1
  10. package/core/types/handle.d.ts +2 -1
  11. package/core/types/handle.lua +5 -0
  12. package/core/types/image.d.ts +0 -1
  13. package/core/types/missile.d.ts +2 -2
  14. package/core/types/missile.lua +8 -2
  15. package/core/types/unit.lua +8 -0
  16. package/core/util.d.ts +1 -1
  17. package/core/util.lua +12 -0
  18. package/decl/index.d.ts +1 -0
  19. package/engine/ability.d.ts +1 -1
  20. package/engine/behavior.d.ts +10 -10
  21. package/engine/behavior.lua +6 -6
  22. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  23. package/engine/behaviour/ability/always-enabled.lua +31 -0
  24. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  25. package/engine/behaviour/ability/apply-buff.lua +32 -0
  26. package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
  27. package/engine/behaviour/ability/damage.d.ts +33 -11
  28. package/engine/behaviour/ability/damage.lua +89 -31
  29. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  30. package/engine/behaviour/ability/emulate-impact.lua +28 -0
  31. package/engine/behaviour/ability/heal.d.ts +33 -6
  32. package/engine/behaviour/ability/heal.lua +89 -10
  33. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  34. package/engine/behaviour/ability/instant-impact.lua +4 -15
  35. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  36. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  37. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  38. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  39. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  40. package/engine/behaviour/ability/restore-mana.lua +29 -0
  41. package/engine/behaviour/ability.d.ts +22 -3
  42. package/engine/behaviour/ability.lua +134 -13
  43. package/engine/behaviour/unit/stun-immunity.d.ts +0 -1
  44. package/engine/behaviour/unit.d.ts +8 -2
  45. package/engine/behaviour/unit.lua +27 -0
  46. package/engine/buff.d.ts +73 -21
  47. package/engine/buff.lua +297 -91
  48. package/engine/game-map.d.ts +7 -0
  49. package/engine/game-map.lua +32 -0
  50. package/engine/internal/ability.d.ts +16 -13
  51. package/engine/internal/ability.lua +80 -76
  52. package/engine/internal/item/ability.lua +106 -0
  53. package/engine/internal/item+owner.lua +2 -2
  54. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  55. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  56. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  57. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  58. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  59. package/engine/internal/object-data/evasion-probability.lua +16 -0
  60. package/engine/internal/unit/ability.d.ts +10 -1
  61. package/engine/internal/unit/ability.lua +36 -14
  62. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  63. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  64. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  65. package/engine/internal/unit/add-item-to-slot.lua +50 -0
  66. package/engine/internal/unit/bonus.d.ts +11 -8
  67. package/engine/internal/unit/bonus.lua +23 -1
  68. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  69. package/engine/internal/unit/ignore-events-items.lua +5 -0
  70. package/engine/internal/unit/item.d.ts +24 -0
  71. package/engine/internal/unit/item.lua +78 -0
  72. package/engine/internal/unit/main-selected.d.ts +13 -0
  73. package/engine/internal/unit/main-selected.lua +51 -0
  74. package/engine/internal/unit+ability.lua +2 -2
  75. package/engine/internal/unit+transport.lua +4 -10
  76. package/engine/internal/unit-missile-launch.lua +25 -6
  77. package/engine/internal/unit.d.ts +59 -16
  78. package/engine/internal/unit.lua +373 -132
  79. package/engine/internal/utility.lua +12 -0
  80. package/engine/lightning.d.ts +8 -2
  81. package/engine/lightning.lua +27 -2
  82. package/engine/local-client.d.ts +7 -2
  83. package/engine/local-client.lua +82 -0
  84. package/engine/object-data/auxiliary/attachment-preset.d.ts +0 -1
  85. package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
  86. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  87. package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
  88. package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
  89. package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
  90. package/engine/object-data/entry/ability-type/mine.d.ts +10 -0
  91. package/engine/object-data/entry/ability-type/mine.lua +39 -0
  92. package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
  93. package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
  94. package/engine/object-data/entry/ability-type.d.ts +0 -1
  95. package/engine/object-data/entry/ability-type.lua +8 -12
  96. package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
  97. package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
  98. package/engine/object-data/entry/buff-type.d.ts +0 -1
  99. package/engine/object-data/entry/destructible-type.d.ts +0 -1
  100. package/engine/object-data/entry/item-type/blank.d.ts +0 -1
  101. package/engine/object-data/entry/item-type.d.ts +14 -1
  102. package/engine/object-data/entry/item-type.lua +91 -0
  103. package/engine/object-data/entry/lightning-type.d.ts +0 -1
  104. package/engine/object-data/entry/unit-type.d.ts +37 -2
  105. package/engine/object-data/entry/unit-type.lua +333 -49
  106. package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
  107. package/engine/object-data/entry/upgrade.d.ts +0 -1
  108. package/engine/object-data/entry.d.ts +2 -3
  109. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  110. package/engine/object-field/ability.d.ts +26 -3
  111. package/engine/object-field/ability.lua +54 -1
  112. package/engine/object-field.d.ts +2 -3
  113. package/engine/object-field.lua +4 -0
  114. package/engine/random.d.ts +1 -0
  115. package/engine/random.lua +9 -0
  116. package/engine/standard/entries/unit-type.d.ts +42 -1
  117. package/engine/standard/entries/unit-type.lua +42 -1
  118. package/engine/standard/fields/ability.d.ts +3 -1
  119. package/engine/standard/fields/ability.lua +3 -1
  120. package/engine/unit.d.ts +3 -0
  121. package/engine/unit.lua +12 -2
  122. package/event.d.ts +2 -3
  123. package/event.lua +9 -5
  124. package/index.d.ts +1 -0
  125. package/index.lua +1 -0
  126. package/lualib_bundle.lua +146 -42
  127. package/math/vec2.d.ts +2 -9
  128. package/math.d.ts +0 -2
  129. package/net/socket.d.ts +7 -1
  130. package/net/socket.lua +45 -4
  131. package/network.d.ts +1 -0
  132. package/network.lua +3 -2
  133. package/objutil/ability.d.ts +0 -1
  134. package/objutil/buff.d.ts +0 -1
  135. package/objutil/buff.lua +1 -1
  136. package/objutil/object.d.ts +0 -1
  137. package/objutil/unit.d.ts +0 -1
  138. package/package.json +13 -14
  139. package/patch-lua.d.ts +0 -0
  140. package/patch-lua.lua +10 -0
  141. package/property.d.ts +55 -0
  142. package/property.lua +374 -0
  143. package/string.d.ts +30 -0
  144. package/string.lua +14 -0
  145. package/util/stream.d.ts +0 -1
  146. package/utility/arrays.d.ts +11 -5
  147. package/utility/arrays.lua +34 -3
  148. package/utility/bit-set.d.ts +0 -2
  149. package/utility/lazy.d.ts +2 -0
  150. package/utility/lazy.lua +14 -0
  151. package/utility/linked-set.d.ts +11 -3
  152. package/utility/linked-set.lua +5 -2
  153. package/utility/lua-maps.d.ts +1 -2
  154. package/utility/lua-sets.d.ts +1 -2
  155. package/utility/types.d.ts +1 -0
  156. package/core/mapbounds.d.ts +0 -8
  157. package/core/mapbounds.lua +0 -12
package/engine/buff.d.ts CHANGED
@@ -5,16 +5,21 @@ import { Ability } from "./internal/ability";
5
5
  import { AbilityTypeId } from "./object-data/entry/ability-type";
6
6
  import { BuffPolarity } from "./object-data/auxiliary/buff-polarity";
7
7
  import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type";
8
- import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
8
+ import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityEnumLevelField, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
9
9
  import { CombatClassifications } from "./object-data/auxiliary/combat-classification";
10
- import { IsExactlyAny, NonEmptyArray, Prohibit } from "../utility/types";
10
+ import { IsExactlyAny, Prohibit, ReadonlyNonEmptyArray } from "../utility/types";
11
+ import { EffectParameters } from "../core/types/effect";
11
12
  import { UnitBehavior } from "./behaviour/unit";
12
13
  import type { Widget } from "../core/types/widget";
13
14
  import { Destructor } from "../destroyable";
15
+ import { Event } from "../event";
14
16
  export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
17
+ type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
15
18
  type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
16
19
  type IntegerParameterValueType = number | AbilityIntegerField | AbilityIntegerLevelField;
17
20
  type BooleanParameterValueType = boolean | AbilityBooleanField | AbilityBooleanLevelField;
21
+ export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
22
+ export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
18
23
  export declare class BuffUniqueGroup {
19
24
  }
20
25
  export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
@@ -51,6 +56,8 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
51
56
  armorIncreaseFactor?: NumberParameterValueType;
52
57
  attackSpeedIncreaseFactor?: NumberParameterValueType;
53
58
  movementSpeedIncreaseFactor?: NumberParameterValueType;
59
+ evasionProbability?: NumberParameterValueType;
60
+ damageFactor?: NumberParameterValueType;
54
61
  receivedDamageFactor?: NumberParameterValueType;
55
62
  receivedMagicDamageFactor?: NumberParameterValueType;
56
63
  durationIncreaseOnAutoAttack?: NumberParameterValueType;
@@ -64,8 +71,14 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
64
71
  disablesAutoAttack?: BooleanParameterValueType;
65
72
  destroysOnDamage?: BooleanParameterValueType;
66
73
  maximumAutoAttackCount?: IntegerParameterValueType;
74
+ maximumDamageDealtEventCount?: IntegerParameterValueType;
75
+ maximumDamageReceivedEventCount?: IntegerParameterValueType;
76
+ damageOnExpiration?: NumberParameterValueType;
77
+ healingOnExpiration?: NumberParameterValueType;
78
+ killsOnExpiration?: BooleanParameterValueType;
79
+ explodesOnExpiration?: BooleanParameterValueType;
67
80
  uniqueGroup?: BuffUniqueGroup;
68
- } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : {});
81
+ } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
69
82
  declare const enum BuffPropertyKey {
70
83
  UNIT = 100,
71
84
  SOURCE = 101,
@@ -86,19 +99,27 @@ declare const enum BuffPropertyKey {
86
99
  HEALING_INTERVAL = 116,
87
100
  REMAINING_HEALING_OVER_DURATION = 117,
88
101
  HEALING_INTERVAL_TIMER = 118,
89
- DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 119,
90
- DAMAGE_UPON_DEATH = 120,
91
- DAMAGE_UPON_DEATH_RANGE = 121,
92
- MEDIUM_DAMAGE_UPON_DEATH = 122,
93
- MEDIUM_DAMAGE_UPON_DEATH_RANGE = 123,
94
- SMALL_DAMAGE_UPON_DEATH = 124,
95
- SMALL_DAMAGE_UPON_DEATH_RANGE = 125,
96
- AUTO_ATTACK_COUNT = 126,
97
- MAXIMUM_AUTO_ATTACK_COUNT = 127,
98
- STUNS = 128,
99
- IGNORES_STUN_IMMUNITY = 129,
100
- DISABLES_AUTO_ATTACK = 130,
101
- PROVIDES_INVULNERABILITY = 131
102
+ DAMAGE_ON_EXPIRATION = 119,
103
+ HEALING_ON_EXPIRATION = 120,
104
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 121,
105
+ DAMAGE_UPON_DEATH = 122,
106
+ DAMAGE_UPON_DEATH_RANGE = 123,
107
+ MEDIUM_DAMAGE_UPON_DEATH = 124,
108
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 125,
109
+ SMALL_DAMAGE_UPON_DEATH = 126,
110
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
111
+ AUTO_ATTACK_COUNT = 128,
112
+ MAXIMUM_AUTO_ATTACK_COUNT = 129,
113
+ DAMAGE_DEALT_EVENT_COUNT = 130,
114
+ MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
115
+ DAMAGE_RECEIVED_EVENT_COUNT = 132,
116
+ MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
117
+ STUNS = 134,
118
+ IGNORES_STUN_IMMUNITY = 135,
119
+ DISABLES_AUTO_ATTACK = 136,
120
+ PROVIDES_INVULNERABILITY = 137,
121
+ KILLS_ON_EXPIRATION = 138,
122
+ EXPLODES_ON_EXPIRATION = 139
102
123
  }
103
124
  export declare const enum BuffTypeIdSelectionPolicy {
104
125
  LEAST_DURATION = 0
@@ -106,17 +127,17 @@ export declare const enum BuffTypeIdSelectionPolicy {
106
127
  export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
107
128
  export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
108
129
  ...typeId: [ApplicableBuffTypeId] | [
109
- typeIds: NonEmptyArray<ApplicableBuffTypeId>,
130
+ typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
110
131
  typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
111
132
  ],
112
- polarity: BuffPolarity,
113
- resistanceType: BuffResistanceType,
133
+ polarity: BuffPolarityParameterType,
134
+ resistanceType: BuffResistanceTypeParameterType,
114
135
  ...abilityOrParameters: [
115
136
  ability: Ability,
116
137
  parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
117
138
  ] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
118
139
  ];
119
- export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = {}> extends UnitBehavior {
140
+ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
120
141
  private _unit;
121
142
  protected readonly __additionalParametersBrand?: AdditionalParameters;
122
143
  private [BuffPropertyKey.UNIT];
@@ -138,6 +159,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
138
159
  private [BuffPropertyKey.HEALING_INTERVAL]?;
139
160
  private [BuffPropertyKey.REMAINING_HEALING_OVER_DURATION]?;
140
161
  private [BuffPropertyKey.HEALING_INTERVAL_TIMER]?;
162
+ private [BuffPropertyKey.DAMAGE_ON_EXPIRATION]?;
163
+ private [BuffPropertyKey.HEALING_ON_EXPIRATION]?;
141
164
  private [BuffPropertyKey.DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS]?;
142
165
  private [BuffPropertyKey.DAMAGE_UPON_DEATH]?;
143
166
  private [BuffPropertyKey.DAMAGE_UPON_DEATH_RANGE]?;
@@ -147,10 +170,16 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
147
170
  private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
148
171
  private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
149
172
  private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
173
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
174
+ private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
175
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
176
+ private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
150
177
  private [BuffPropertyKey.STUNS]?;
151
178
  private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
152
179
  private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
153
180
  private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
181
+ private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
182
+ private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
154
183
  protected static readonly defaultParameters: BuffParameters;
155
184
  get source(): Unit;
156
185
  readonly typeId: ApplicableBuffTypeId;
@@ -187,6 +216,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
187
216
  set healingPerInterval(healingPerInterval: number);
188
217
  get healingInterval(): number;
189
218
  set healingInterval(healingInterval: number);
219
+ get damageOnExpiration(): number;
220
+ set damageOnExpiration(damageOnExpiration: number);
221
+ get healingOnExpiration(): number;
222
+ set healingOnExpiration(healingOnExpiration: number);
223
+ get damageFactor(): number;
224
+ set damageFactor(damageFactor: number);
190
225
  get receivedDamageFactor(): number;
191
226
  set receivedDamageFactor(receivedDamageFactor: number);
192
227
  get armorIncrease(): number;
@@ -199,6 +234,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
199
234
  set disablesAutoAttack(disablesAutoAttack: boolean);
200
235
  get providesInvulnerability(): boolean;
201
236
  set providesInvulnerability(providesInvulnerability: boolean);
237
+ get killsOnExpiration(): boolean;
238
+ set killsOnExpiration(killsOnExpiration: boolean);
239
+ get explodesOnExpiration(): boolean;
240
+ set explodesOnExpiration(killsOnExpiration: boolean);
241
+ get maximumDamageDealtEventCount(): number;
242
+ set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
243
+ get maximumDamageReceivedEventCount(): number;
244
+ set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
202
245
  get maximumAutoAttackCount(): number;
203
246
  set maximumAutoAttackCount(maximumAutoAttackCount: number);
204
247
  get durationIncreaseOnAutoAttack(): number;
@@ -207,15 +250,24 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
207
250
  set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
208
251
  get movementSpeedIncreaseFactor(): number;
209
252
  set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
253
+ get evasionProbability(): number;
254
+ set evasionProbability(evasionProbability: number);
210
255
  get duration(): number;
211
256
  get remainingDuration(): number;
212
257
  set remainingDuration(remainingDuration: number);
213
- flashEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
258
+ flashEffect(...parameters: [
259
+ ...widgetOrXY: [] | [Widget] | [x: number, x: number],
260
+ ...parametersOrDuration: [] | [EffectParameters] | [number]
261
+ ]): void;
214
262
  flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
263
+ protected onCreate(): void;
215
264
  protected onDestroy(): Destructor;
216
265
  static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
217
266
  static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
267
+ onExpiration(): void;
218
268
  onDeath(source: Unit | undefined): void;
219
269
  onDamageDealt(target: Unit, event: DamageEvent): void;
270
+ onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
271
+ static readonly destroyEvent: Event<[Buff<object>]>;
220
272
  }
221
273
  export {};