warscript 0.0.1-dev.e7b1f67 → 0.0.1-dev.ea102a7

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 (219) hide show
  1. package/attributes.d.ts +5 -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 +8 -0
  10. package/core/types/frame.lua +117 -22
  11. package/core/types/player.lua +3 -1
  12. package/core/types/playerCamera.d.ts +2 -0
  13. package/core/types/playerCamera.lua +123 -5
  14. package/core/types/sound.d.ts +17 -24
  15. package/core/types/sound.lua +99 -24
  16. package/core/types/tileCell.d.ts +9 -0
  17. package/core/types/tileCell.lua +92 -0
  18. package/core/types/timer.d.ts +8 -8
  19. package/core/types/timer.lua +39 -23
  20. package/core/util.d.ts +1 -1
  21. package/core/util.lua +18 -1
  22. package/decl/native.d.ts +846 -790
  23. package/engine/behavior.d.ts +11 -6
  24. package/engine/behavior.lua +112 -33
  25. package/engine/behaviour/ability/always-enabled.d.ts +7 -0
  26. package/engine/behaviour/ability/always-enabled.lua +31 -0
  27. package/engine/behaviour/ability/apply-buff.d.ts +8 -5
  28. package/engine/behaviour/ability/apply-buff.lua +32 -0
  29. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  30. package/engine/behaviour/ability/damage.d.ts +39 -11
  31. package/engine/behaviour/ability/damage.lua +83 -37
  32. package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
  33. package/engine/behaviour/ability/emulate-impact.lua +43 -0
  34. package/engine/behaviour/ability/heal.d.ts +33 -6
  35. package/engine/behaviour/ability/heal.lua +89 -10
  36. package/engine/behaviour/ability/instant-impact.d.ts +2 -2
  37. package/engine/behaviour/ability/instant-impact.lua +4 -19
  38. package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
  39. package/engine/behaviour/ability/on-command-impact.lua +25 -0
  40. package/engine/behaviour/ability/remove-buffs.d.ts +16 -0
  41. package/engine/behaviour/ability/remove-buffs.lua +28 -0
  42. package/engine/behaviour/ability/restore-mana.d.ts +15 -0
  43. package/engine/behaviour/ability/restore-mana.lua +29 -0
  44. package/engine/behaviour/ability.d.ts +20 -4
  45. package/engine/behaviour/ability.lua +111 -47
  46. package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
  47. package/engine/behaviour/unit/stun-immunity.lua +52 -27
  48. package/engine/behaviour/unit.d.ts +39 -0
  49. package/engine/behaviour/unit.lua +210 -4
  50. package/engine/buff.d.ts +102 -42
  51. package/engine/buff.lua +446 -206
  52. package/engine/game-map.d.ts +7 -0
  53. package/engine/game-map.lua +32 -0
  54. package/engine/internal/ability.d.ts +23 -14
  55. package/engine/internal/ability.lua +129 -85
  56. package/engine/internal/item/ability.lua +162 -4
  57. package/engine/internal/item+owner.lua +12 -6
  58. package/engine/internal/item.d.ts +20 -19
  59. package/engine/internal/item.lua +191 -74
  60. package/engine/internal/mechanics/ability-duration.lua +1 -1
  61. package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
  62. package/engine/internal/misc/ability-disable-counter.lua +13 -0
  63. package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
  64. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  65. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  66. package/engine/internal/misc/frame-coordinates.lua +21 -0
  67. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  68. package/engine/internal/misc/get-terrain-z.lua +11 -0
  69. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  70. package/engine/internal/misc/player-local-handle.lua +5 -0
  71. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  72. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  73. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  74. package/engine/internal/object-data/evasion-probability.lua +16 -0
  75. package/engine/internal/unit/ability.d.ts +45 -1
  76. package/engine/internal/unit/ability.lua +108 -16
  77. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  78. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  79. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  80. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  81. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  82. package/engine/internal/unit/allowed-targets.lua +9 -1
  83. package/engine/internal/unit/bonus.d.ts +6 -2
  84. package/engine/internal/unit/bonus.lua +23 -1
  85. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  86. package/engine/internal/unit/ignore-events-items.lua +5 -0
  87. package/engine/internal/unit/item.d.ts +24 -0
  88. package/engine/internal/unit/item.lua +78 -0
  89. package/engine/internal/unit/main-selected.d.ts +13 -0
  90. package/engine/internal/unit/main-selected.lua +51 -0
  91. package/engine/internal/unit/order.d.ts +20 -0
  92. package/engine/internal/unit/order.lua +136 -0
  93. package/engine/internal/unit+ability.lua +12 -3
  94. package/engine/internal/unit+damage.d.ts +2 -11
  95. package/engine/internal/unit+damage.lua +10 -14
  96. package/engine/internal/unit+spellSteal.lua +1 -2
  97. package/engine/internal/unit+transport.lua +4 -10
  98. package/engine/internal/unit-missile-launch.lua +42 -10
  99. package/engine/internal/unit.d.ts +57 -19
  100. package/engine/internal/unit.lua +396 -160
  101. package/engine/internal/utility.lua +12 -0
  102. package/engine/lightning.d.ts +12 -5
  103. package/engine/lightning.lua +48 -14
  104. package/engine/local-client.d.ts +7 -2
  105. package/engine/local-client.lua +82 -0
  106. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  107. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  108. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  109. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  110. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  111. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  112. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  113. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  114. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  115. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  116. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  117. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  118. package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
  119. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  120. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  121. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  122. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  123. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  124. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  125. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  126. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  127. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  128. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  129. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  130. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  131. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  132. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  133. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  134. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  135. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  136. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  137. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  138. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  139. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  140. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  141. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  142. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  143. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  144. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  145. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  146. package/engine/object-data/entry/ability-type/web.lua +52 -0
  147. package/engine/object-data/entry/ability-type.d.ts +19 -17
  148. package/engine/object-data/entry/ability-type.lua +93 -36
  149. package/engine/object-data/entry/buff-type/applicable.lua +18 -37
  150. package/engine/object-data/entry/buff-type.d.ts +6 -12
  151. package/engine/object-data/entry/buff-type.lua +13 -29
  152. package/engine/object-data/entry/destructible-type.d.ts +1 -1
  153. package/engine/object-data/entry/item-type.d.ts +15 -1
  154. package/engine/object-data/entry/item-type.lua +93 -2
  155. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  156. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  157. package/engine/object-data/entry/sound-preset.lua +140 -0
  158. package/engine/object-data/entry/unit-type.d.ts +21 -5
  159. package/engine/object-data/entry/unit-type.lua +214 -93
  160. package/engine/object-data/entry/upgrade.d.ts +1 -1
  161. package/engine/object-data/entry/upgrade.lua +4 -4
  162. package/engine/object-data/entry.d.ts +16 -14
  163. package/engine/object-data/entry.lua +60 -32
  164. package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
  165. package/engine/object-field/ability.d.ts +28 -5
  166. package/engine/object-field/ability.lua +59 -5
  167. package/engine/object-field/unit.d.ts +57 -3
  168. package/engine/object-field/unit.lua +207 -7
  169. package/engine/object-field.d.ts +17 -6
  170. package/engine/object-field.lua +190 -90
  171. package/engine/random.d.ts +9 -0
  172. package/engine/random.lua +13 -0
  173. package/engine/standard/entries/buff-type.d.ts +3 -0
  174. package/engine/standard/entries/buff-type.lua +3 -0
  175. package/engine/standard/entries/sound-preset.d.ts +10 -0
  176. package/engine/standard/entries/sound-preset.lua +10 -0
  177. package/engine/standard/fields/ability.d.ts +2 -0
  178. package/engine/standard/fields/ability.lua +2 -0
  179. package/engine/standard/fields/unit.d.ts +4 -0
  180. package/engine/standard/fields/unit.lua +7 -0
  181. package/engine/text-tag.d.ts +36 -2
  182. package/engine/text-tag.lua +249 -10
  183. package/engine/unit.d.ts +4 -0
  184. package/engine/unit.lua +4 -0
  185. package/index.d.ts +1 -0
  186. package/index.lua +1 -0
  187. package/lualib_bundle.lua +7 -2
  188. package/net/socket.d.ts +7 -1
  189. package/net/socket.lua +45 -4
  190. package/network.d.ts +1 -0
  191. package/network.lua +3 -2
  192. package/objutil/buff.lua +3 -4
  193. package/objutil/unit.lua +8 -0
  194. package/package.json +2 -2
  195. package/patch-lua.d.ts +0 -0
  196. package/patch-lua.lua +10 -0
  197. package/patch-lualib.lua +1 -1
  198. package/property.d.ts +55 -0
  199. package/property.lua +374 -0
  200. package/utility/arrays.d.ts +10 -1
  201. package/utility/arrays.lua +45 -3
  202. package/utility/callback-array.d.ts +13 -0
  203. package/utility/callback-array.lua +46 -0
  204. package/utility/functions.d.ts +8 -0
  205. package/utility/functions.lua +13 -0
  206. package/utility/lazy.d.ts +2 -0
  207. package/utility/lazy.lua +14 -0
  208. package/utility/linked-set.d.ts +12 -2
  209. package/utility/linked-set.lua +8 -2
  210. package/utility/lua-maps.d.ts +15 -2
  211. package/utility/lua-maps.lua +53 -2
  212. package/utility/lua-sets.d.ts +2 -0
  213. package/utility/lua-sets.lua +7 -0
  214. package/utility/reflection.lua +11 -7
  215. package/utility/types.d.ts +1 -0
  216. package/core/mapbounds.d.ts +0 -8
  217. package/core/mapbounds.lua +0 -12
  218. package/core/types/order.d.ts +0 -25
  219. package/core/types/order.lua +0 -55
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,11 +56,15 @@ 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
+ missProbability?: NumberParameterValueType;
61
+ damageFactor?: NumberParameterValueType;
54
62
  receivedDamageFactor?: NumberParameterValueType;
55
63
  receivedMagicDamageFactor?: NumberParameterValueType;
56
64
  durationIncreaseOnAutoAttack?: NumberParameterValueType;
57
65
  maximumRemainingDuration?: NumberParameterValueType;
58
66
  maximumDuration?: NumberParameterValueType;
67
+ turnsIntoGhost?: BooleanParameterValueType;
59
68
  stuns?: BooleanParameterValueType;
60
69
  ignoresStunImmunity?: BooleanParameterValueType;
61
70
  providesStunImmunity?: BooleanParameterValueType;
@@ -64,41 +73,58 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
64
73
  disablesAutoAttack?: BooleanParameterValueType;
65
74
  destroysOnDamage?: BooleanParameterValueType;
66
75
  maximumAutoAttackCount?: IntegerParameterValueType;
76
+ maximumDamageDealtEventCount?: IntegerParameterValueType;
77
+ maximumDamageReceivedEventCount?: IntegerParameterValueType;
78
+ damageOnExpiration?: NumberParameterValueType;
79
+ healingOnExpiration?: NumberParameterValueType;
80
+ killsOnExpiration?: BooleanParameterValueType;
81
+ explodesOnExpiration?: BooleanParameterValueType;
67
82
  uniqueGroup?: BuffUniqueGroup;
68
83
  } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
69
84
  declare const enum BuffPropertyKey {
70
- UNIT = 100,
71
- SOURCE = 101,
72
- DURATION = 102,
73
- UNIQUE_GROUP = 103,
74
- EFFECT_MODEL_PATH = 104,
75
- SPECIAL_EFFECT_MODEL_PATH = 105,
76
- DURATION_INCREASE_ON_AUTO_ATTACK = 106,
77
- MAXIMUM_DURATION = 107,
78
- MAXIMUM_REMAINING_DURATION = 108,
79
- DAMAGE_OVER_DURATION = 109,
80
- DAMAGE_PER_INTERVAL = 110,
81
- DAMAGE_INTERVAL = 111,
82
- REMAINING_DAMAGE_OVER_DURATION = 112,
83
- DAMAGE_INTERVAL_TIMER = 113,
84
- HEALING_OVER_DURATION = 114,
85
- HEALING_PER_INTERVAL = 115,
86
- HEALING_INTERVAL = 116,
87
- REMAINING_HEALING_OVER_DURATION = 117,
88
- 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
85
+ STATE = 100,
86
+ UNIT = 101,
87
+ SOURCE = 102,
88
+ DURATION = 103,
89
+ UNIQUE_GROUP = 104,
90
+ EFFECT_MODEL_PATH = 105,
91
+ SPECIAL_EFFECT_MODEL_PATH = 106,
92
+ DURATION_INCREASE_ON_AUTO_ATTACK = 107,
93
+ MAXIMUM_DURATION = 108,
94
+ MAXIMUM_REMAINING_DURATION = 109,
95
+ DAMAGE_OVER_DURATION = 110,
96
+ DAMAGE_PER_INTERVAL = 111,
97
+ DAMAGE_INTERVAL = 112,
98
+ REMAINING_DAMAGE_OVER_DURATION = 113,
99
+ DAMAGE_INTERVAL_TIMER = 114,
100
+ HEALING_OVER_DURATION = 115,
101
+ HEALING_PER_INTERVAL = 116,
102
+ HEALING_INTERVAL = 117,
103
+ REMAINING_HEALING_OVER_DURATION = 118,
104
+ HEALING_INTERVAL_TIMER = 119,
105
+ DAMAGE_ON_EXPIRATION = 120,
106
+ HEALING_ON_EXPIRATION = 121,
107
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
108
+ DAMAGE_UPON_DEATH = 123,
109
+ DAMAGE_UPON_DEATH_RANGE = 124,
110
+ MEDIUM_DAMAGE_UPON_DEATH = 125,
111
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
112
+ SMALL_DAMAGE_UPON_DEATH = 127,
113
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
114
+ AUTO_ATTACK_COUNT = 129,
115
+ MAXIMUM_AUTO_ATTACK_COUNT = 130,
116
+ DAMAGE_DEALT_EVENT_COUNT = 131,
117
+ MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
118
+ DAMAGE_RECEIVED_EVENT_COUNT = 133,
119
+ MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
120
+ TURNS_INTO_GHOST = 135,
121
+ STUNS = 136,
122
+ IGNORES_STUN_IMMUNITY = 137,
123
+ DISABLES_AUTO_ATTACK = 138,
124
+ PROVIDES_INVULNERABILITY = 139,
125
+ KILLS_ON_EXPIRATION = 140,
126
+ EXPLODES_ON_EXPIRATION = 141,
127
+ MISS_PROBABILITY = 142
102
128
  }
103
129
  export declare const enum BuffTypeIdSelectionPolicy {
104
130
  LEAST_DURATION = 0
@@ -106,19 +132,20 @@ export declare const enum BuffTypeIdSelectionPolicy {
106
132
  export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
107
133
  export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
108
134
  ...typeId: [ApplicableBuffTypeId] | [
109
- typeIds: NonEmptyArray<ApplicableBuffTypeId>,
135
+ typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
110
136
  typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
111
137
  ],
112
- polarity: BuffPolarity,
113
- resistanceType: BuffResistanceType,
138
+ polarity: BuffPolarityParameterType,
139
+ resistanceType: BuffResistanceTypeParameterType,
114
140
  ...abilityOrParameters: [
115
- ability: Ability,
141
+ ability?: Ability,
116
142
  parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
117
143
  ] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
118
144
  ];
119
145
  export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
120
146
  private _unit;
121
147
  protected readonly __additionalParametersBrand?: AdditionalParameters;
148
+ private [BuffPropertyKey.STATE];
122
149
  private [BuffPropertyKey.UNIT];
123
150
  private [BuffPropertyKey.SOURCE]?;
124
151
  private [BuffPropertyKey.DURATION];
@@ -138,6 +165,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
138
165
  private [BuffPropertyKey.HEALING_INTERVAL]?;
139
166
  private [BuffPropertyKey.REMAINING_HEALING_OVER_DURATION]?;
140
167
  private [BuffPropertyKey.HEALING_INTERVAL_TIMER]?;
168
+ private [BuffPropertyKey.DAMAGE_ON_EXPIRATION]?;
169
+ private [BuffPropertyKey.HEALING_ON_EXPIRATION]?;
141
170
  private [BuffPropertyKey.DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS]?;
142
171
  private [BuffPropertyKey.DAMAGE_UPON_DEATH]?;
143
172
  private [BuffPropertyKey.DAMAGE_UPON_DEATH_RANGE]?;
@@ -147,10 +176,17 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
147
176
  private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
148
177
  private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
149
178
  private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
179
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
180
+ private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
181
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
182
+ private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
183
+ private [BuffPropertyKey.TURNS_INTO_GHOST]?;
150
184
  private [BuffPropertyKey.STUNS]?;
151
185
  private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
152
186
  private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
153
187
  private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
188
+ private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
189
+ private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
154
190
  protected static readonly defaultParameters: BuffParameters;
155
191
  get source(): Unit;
156
192
  readonly typeId: ApplicableBuffTypeId;
@@ -164,11 +200,9 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
164
200
  private readonly _level?;
165
201
  private readonly _spellStealPriority?;
166
202
  private readonly _learnLevelMinimum?;
167
- private _bonusIdByBonusType?;
203
+ private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
168
204
  private readonly _abilityTypeIds?;
169
205
  private _behaviors?;
170
- private getUnitBonus;
171
- private addOrUpdateOrRemoveUnitBonus;
172
206
  constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
173
207
  get level(): number;
174
208
  get remainingDamageOverDuration(): number;
@@ -187,10 +221,18 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
187
221
  set healingPerInterval(healingPerInterval: number);
188
222
  get healingInterval(): number;
189
223
  set healingInterval(healingInterval: number);
224
+ get damageOnExpiration(): number;
225
+ set damageOnExpiration(damageOnExpiration: number);
226
+ get healingOnExpiration(): number;
227
+ set healingOnExpiration(healingOnExpiration: number);
228
+ get damageFactor(): number;
229
+ set damageFactor(damageFactor: number);
190
230
  get receivedDamageFactor(): number;
191
231
  set receivedDamageFactor(receivedDamageFactor: number);
192
232
  get armorIncrease(): number;
193
233
  set armorIncrease(armorIncrease: number);
234
+ get turnsIntoGhost(): boolean;
235
+ set turnsIntoGhost(turnsIntoGhost: boolean);
194
236
  get stuns(): boolean;
195
237
  set stuns(stuns: boolean);
196
238
  get ignoresStunImmunity(): boolean;
@@ -199,6 +241,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
199
241
  set disablesAutoAttack(disablesAutoAttack: boolean);
200
242
  get providesInvulnerability(): boolean;
201
243
  set providesInvulnerability(providesInvulnerability: boolean);
244
+ get killsOnExpiration(): boolean;
245
+ set killsOnExpiration(killsOnExpiration: boolean);
246
+ get explodesOnExpiration(): boolean;
247
+ set explodesOnExpiration(killsOnExpiration: boolean);
248
+ get maximumDamageDealtEventCount(): number;
249
+ set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
250
+ get maximumDamageReceivedEventCount(): number;
251
+ set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
202
252
  get maximumAutoAttackCount(): number;
203
253
  set maximumAutoAttackCount(maximumAutoAttackCount: number);
204
254
  get durationIncreaseOnAutoAttack(): number;
@@ -207,15 +257,25 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
207
257
  set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
208
258
  get movementSpeedIncreaseFactor(): number;
209
259
  set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
260
+ get evasionProbability(): number;
261
+ set evasionProbability(evasionProbability: number);
210
262
  get duration(): number;
211
263
  get remainingDuration(): number;
212
264
  set remainingDuration(remainingDuration: number);
213
- flashEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
265
+ flashEffect(...parameters: [
266
+ ...widgetOrXY: [] | [Widget] | [x: number, x: number],
267
+ ...parametersOrDuration: [] | [EffectParameters] | [number]
268
+ ]): void;
214
269
  flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
270
+ protected onCreate(): void;
215
271
  protected onDestroy(): Destructor;
216
272
  static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
217
273
  static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
274
+ onExpiration(): void;
218
275
  onDeath(source: Unit | undefined): void;
219
276
  onDamageDealt(target: Unit, event: DamageEvent): void;
277
+ onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
278
+ static readonly createdEvent: Event<[Buff<object>]>;
279
+ static readonly beingDestroyedEvent: Event<[Buff<object>]>;
220
280
  }
221
281
  export {};