warscript 0.0.1-dev.6fe4470 → 0.0.1-dev.70ae346

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 (121) hide show
  1. package/config.d.ts +5 -0
  2. package/config.lua +10 -0
  3. package/core/types/effect.d.ts +13 -3
  4. package/core/types/effect.lua +116 -17
  5. package/core/types/frame.d.ts +4 -0
  6. package/core/types/frame.lua +71 -0
  7. package/core/types/sound.d.ts +1 -0
  8. package/core/types/sound.lua +32 -2
  9. package/core/util.d.ts +1 -1
  10. package/core/util.lua +12 -0
  11. package/engine/behavior.d.ts +2 -2
  12. package/engine/behavior.lua +6 -6
  13. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  14. package/engine/behaviour/ability/always-enabled.lua +31 -0
  15. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  16. package/engine/behaviour/ability/apply-buff.lua +32 -0
  17. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  18. package/engine/behaviour/ability/emulate-impact.lua +28 -0
  19. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  20. package/engine/behaviour/ability/instant-impact.lua +4 -19
  21. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  22. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  23. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  24. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  25. package/engine/behaviour/ability.d.ts +15 -3
  26. package/engine/behaviour/ability.lua +93 -34
  27. package/engine/behaviour/unit.d.ts +5 -0
  28. package/engine/behaviour/unit.lua +20 -0
  29. package/engine/buff.d.ts +59 -41
  30. package/engine/buff.lua +293 -231
  31. package/engine/internal/ability.d.ts +16 -13
  32. package/engine/internal/ability.lua +80 -76
  33. package/engine/internal/item/ability.lua +106 -0
  34. package/engine/internal/item+owner.lua +2 -2
  35. package/engine/internal/item.d.ts +2 -2
  36. package/engine/internal/item.lua +56 -25
  37. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  38. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  39. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  40. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  41. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  42. package/engine/internal/object-data/evasion-probability.lua +16 -0
  43. package/engine/internal/unit/ability.d.ts +10 -1
  44. package/engine/internal/unit/ability.lua +36 -14
  45. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  46. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  47. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  48. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  49. package/engine/internal/unit/bonus.d.ts +6 -2
  50. package/engine/internal/unit/bonus.lua +23 -1
  51. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  52. package/engine/internal/unit/ignore-events-items.lua +5 -0
  53. package/engine/internal/unit/item.d.ts +24 -0
  54. package/engine/internal/unit/item.lua +78 -0
  55. package/engine/internal/unit/main-selected.d.ts +13 -0
  56. package/engine/internal/unit/main-selected.lua +51 -0
  57. package/engine/internal/unit+ability.lua +2 -2
  58. package/engine/internal/unit-missile-launch.lua +24 -5
  59. package/engine/internal/unit.d.ts +25 -10
  60. package/engine/internal/unit.lua +161 -81
  61. package/engine/internal/utility.lua +12 -0
  62. package/engine/lightning.d.ts +12 -5
  63. package/engine/lightning.lua +48 -14
  64. package/engine/local-client.d.ts +7 -2
  65. package/engine/local-client.lua +82 -0
  66. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  67. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  68. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  69. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  70. package/engine/object-data/entry/ability-type/blank-configurable.lua +21 -1
  71. package/engine/object-data/entry/ability-type/curse.lua +2 -2
  72. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  73. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  74. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  75. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  76. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  77. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  78. package/engine/object-data/entry/ability-type.d.ts +6 -6
  79. package/engine/object-data/entry/ability-type.lua +24 -27
  80. package/engine/object-data/entry/buff-type/applicable.lua +13 -37
  81. package/engine/object-data/entry/buff-type.d.ts +1 -1
  82. package/engine/object-data/entry/buff-type.lua +2 -2
  83. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  84. package/engine/object-data/entry/item-type.d.ts +15 -1
  85. package/engine/object-data/entry/item-type.lua +93 -2
  86. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  87. package/engine/object-data/entry/sound-preset.d.ts +16 -0
  88. package/engine/object-data/entry/sound-preset.lua +36 -0
  89. package/engine/object-data/entry/unit-type.d.ts +8 -1
  90. package/engine/object-data/entry/unit-type.lua +61 -8
  91. package/engine/object-data/entry/upgrade.d.ts +1 -1
  92. package/engine/object-data/entry/upgrade.lua +4 -4
  93. package/engine/object-data/entry.d.ts +16 -14
  94. package/engine/object-data/entry.lua +60 -32
  95. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  96. package/engine/object-field/ability.d.ts +9 -3
  97. package/engine/object-field/ability.lua +4 -1
  98. package/engine/object-field.d.ts +2 -2
  99. package/engine/object-field.lua +4 -0
  100. package/engine/standard/entries/sound-preset.d.ts +10 -0
  101. package/engine/standard/entries/sound-preset.lua +10 -0
  102. package/engine/standard/fields/ability.d.ts +2 -0
  103. package/engine/standard/fields/ability.lua +2 -0
  104. package/engine/unit.d.ts +3 -0
  105. package/engine/unit.lua +3 -0
  106. package/index.d.ts +1 -0
  107. package/index.lua +1 -0
  108. package/net/socket.d.ts +7 -1
  109. package/net/socket.lua +45 -4
  110. package/network.d.ts +1 -0
  111. package/network.lua +3 -2
  112. package/objutil/buff.lua +1 -1
  113. package/objutil/unit.lua +8 -0
  114. package/package.json +2 -2
  115. package/patch-lua.d.ts +0 -0
  116. package/patch-lua.lua +10 -0
  117. package/utility/arrays.d.ts +8 -1
  118. package/utility/arrays.lua +34 -3
  119. package/utility/lazy.d.ts +2 -0
  120. package/utility/lazy.lua +14 -0
  121. package/utility/reflection.lua +11 -7
package/engine/buff.d.ts CHANGED
@@ -8,9 +8,11 @@ import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type
8
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
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);
15
17
  type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
16
18
  type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
@@ -54,6 +56,9 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
54
56
  armorIncreaseFactor?: NumberParameterValueType;
55
57
  attackSpeedIncreaseFactor?: NumberParameterValueType;
56
58
  movementSpeedIncreaseFactor?: NumberParameterValueType;
59
+ evasionProbability?: NumberParameterValueType;
60
+ missProbability?: NumberParameterValueType;
61
+ damageFactor?: NumberParameterValueType;
57
62
  receivedDamageFactor?: NumberParameterValueType;
58
63
  receivedMagicDamageFactor?: NumberParameterValueType;
59
64
  durationIncreaseOnAutoAttack?: NumberParameterValueType;
@@ -76,46 +81,48 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
76
81
  uniqueGroup?: BuffUniqueGroup;
77
82
  } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
78
83
  declare const enum BuffPropertyKey {
79
- UNIT = 100,
80
- SOURCE = 101,
81
- DURATION = 102,
82
- UNIQUE_GROUP = 103,
83
- EFFECT_MODEL_PATH = 104,
84
- SPECIAL_EFFECT_MODEL_PATH = 105,
85
- DURATION_INCREASE_ON_AUTO_ATTACK = 106,
86
- MAXIMUM_DURATION = 107,
87
- MAXIMUM_REMAINING_DURATION = 108,
88
- DAMAGE_OVER_DURATION = 109,
89
- DAMAGE_PER_INTERVAL = 110,
90
- DAMAGE_INTERVAL = 111,
91
- REMAINING_DAMAGE_OVER_DURATION = 112,
92
- DAMAGE_INTERVAL_TIMER = 113,
93
- HEALING_OVER_DURATION = 114,
94
- HEALING_PER_INTERVAL = 115,
95
- HEALING_INTERVAL = 116,
96
- REMAINING_HEALING_OVER_DURATION = 117,
97
- HEALING_INTERVAL_TIMER = 118,
98
- DAMAGE_ON_EXPIRATION = 119,
99
- HEALING_ON_EXPIRATION = 120,
100
- DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 121,
101
- DAMAGE_UPON_DEATH = 122,
102
- DAMAGE_UPON_DEATH_RANGE = 123,
103
- MEDIUM_DAMAGE_UPON_DEATH = 124,
104
- MEDIUM_DAMAGE_UPON_DEATH_RANGE = 125,
105
- SMALL_DAMAGE_UPON_DEATH = 126,
106
- SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
107
- AUTO_ATTACK_COUNT = 128,
108
- MAXIMUM_AUTO_ATTACK_COUNT = 129,
109
- DAMAGE_DEALT_EVENT_COUNT = 130,
110
- MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
111
- DAMAGE_RECEIVED_EVENT_COUNT = 132,
112
- MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
113
- STUNS = 134,
114
- IGNORES_STUN_IMMUNITY = 135,
115
- DISABLES_AUTO_ATTACK = 136,
116
- PROVIDES_INVULNERABILITY = 137,
117
- KILLS_ON_EXPIRATION = 138,
118
- EXPLODES_ON_EXPIRATION = 139
84
+ STATE = 100,
85
+ UNIT = 101,
86
+ SOURCE = 102,
87
+ DURATION = 103,
88
+ UNIQUE_GROUP = 104,
89
+ EFFECT_MODEL_PATH = 105,
90
+ SPECIAL_EFFECT_MODEL_PATH = 106,
91
+ DURATION_INCREASE_ON_AUTO_ATTACK = 107,
92
+ MAXIMUM_DURATION = 108,
93
+ MAXIMUM_REMAINING_DURATION = 109,
94
+ DAMAGE_OVER_DURATION = 110,
95
+ DAMAGE_PER_INTERVAL = 111,
96
+ DAMAGE_INTERVAL = 112,
97
+ REMAINING_DAMAGE_OVER_DURATION = 113,
98
+ DAMAGE_INTERVAL_TIMER = 114,
99
+ HEALING_OVER_DURATION = 115,
100
+ HEALING_PER_INTERVAL = 116,
101
+ HEALING_INTERVAL = 117,
102
+ REMAINING_HEALING_OVER_DURATION = 118,
103
+ HEALING_INTERVAL_TIMER = 119,
104
+ DAMAGE_ON_EXPIRATION = 120,
105
+ HEALING_ON_EXPIRATION = 121,
106
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
107
+ DAMAGE_UPON_DEATH = 123,
108
+ DAMAGE_UPON_DEATH_RANGE = 124,
109
+ MEDIUM_DAMAGE_UPON_DEATH = 125,
110
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
111
+ SMALL_DAMAGE_UPON_DEATH = 127,
112
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
113
+ AUTO_ATTACK_COUNT = 129,
114
+ MAXIMUM_AUTO_ATTACK_COUNT = 130,
115
+ DAMAGE_DEALT_EVENT_COUNT = 131,
116
+ MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
117
+ DAMAGE_RECEIVED_EVENT_COUNT = 133,
118
+ MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
119
+ STUNS = 135,
120
+ IGNORES_STUN_IMMUNITY = 136,
121
+ DISABLES_AUTO_ATTACK = 137,
122
+ PROVIDES_INVULNERABILITY = 138,
123
+ KILLS_ON_EXPIRATION = 139,
124
+ EXPLODES_ON_EXPIRATION = 140,
125
+ MISS_PROBABILITY = 141
119
126
  }
120
127
  export declare const enum BuffTypeIdSelectionPolicy {
121
128
  LEAST_DURATION = 0
@@ -136,6 +143,7 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
136
143
  export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
137
144
  private _unit;
138
145
  protected readonly __additionalParametersBrand?: AdditionalParameters;
146
+ private [BuffPropertyKey.STATE];
139
147
  private [BuffPropertyKey.UNIT];
140
148
  private [BuffPropertyKey.SOURCE]?;
141
149
  private [BuffPropertyKey.DURATION];
@@ -189,6 +197,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
189
197
  private readonly _level?;
190
198
  private readonly _spellStealPriority?;
191
199
  private readonly _learnLevelMinimum?;
200
+ private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
192
201
  private _bonusIdByBonusType?;
193
202
  private readonly _abilityTypeIds?;
194
203
  private _behaviors?;
@@ -216,6 +225,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
216
225
  set damageOnExpiration(damageOnExpiration: number);
217
226
  get healingOnExpiration(): number;
218
227
  set healingOnExpiration(healingOnExpiration: number);
228
+ get damageFactor(): number;
229
+ set damageFactor(damageFactor: number);
219
230
  get receivedDamageFactor(): number;
220
231
  set receivedDamageFactor(receivedDamageFactor: number);
221
232
  get armorIncrease(): number;
@@ -244,11 +255,17 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
244
255
  set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
245
256
  get movementSpeedIncreaseFactor(): number;
246
257
  set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
258
+ get evasionProbability(): number;
259
+ set evasionProbability(evasionProbability: number);
247
260
  get duration(): number;
248
261
  get remainingDuration(): number;
249
262
  set remainingDuration(remainingDuration: number);
250
- flashEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
263
+ flashEffect(...parameters: [
264
+ ...widgetOrXY: [] | [Widget] | [x: number, x: number],
265
+ ...parametersOrDuration: [] | [EffectParameters] | [number]
266
+ ]): void;
251
267
  flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
268
+ protected onCreate(): void;
252
269
  protected onDestroy(): Destructor;
253
270
  static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
254
271
  static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
@@ -256,5 +273,6 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
256
273
  onDeath(source: Unit | undefined): void;
257
274
  onDamageDealt(target: Unit, event: DamageEvent): void;
258
275
  onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
276
+ static readonly destroyEvent: Event<[Buff<object>]>;
259
277
  }
260
278
  export {};