warscript 0.0.1-dev.59cd31d → 0.0.1-dev.620c0fa

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