warscript 0.0.1-dev.ed60fea → 0.0.1-dev.edf7fad

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 (233) hide show
  1. package/attributes.d.ts +6 -0
  2. package/attributes.lua +17 -1
  3. package/config.d.ts +5 -0
  4. package/config.lua +10 -0
  5. package/core/types/effect.d.ts +1 -3
  6. package/core/types/effect.lua +26 -29
  7. package/core/types/frame.lua +71 -22
  8. package/core/types/player.d.ts +16 -0
  9. package/core/types/player.lua +60 -15
  10. package/core/types/playerCamera.d.ts +2 -0
  11. package/core/types/playerCamera.lua +123 -5
  12. package/core/types/sound.d.ts +17 -24
  13. package/core/types/sound.lua +100 -25
  14. package/core/types/tileCell.d.ts +11 -1
  15. package/core/types/tileCell.lua +97 -0
  16. package/core/types/timer.d.ts +9 -8
  17. package/core/types/timer.lua +45 -23
  18. package/core/util.lua +6 -1
  19. package/decl/native.d.ts +846 -790
  20. package/destroyable.d.ts +1 -0
  21. package/destroyable.lua +9 -0
  22. package/engine/behavior.d.ts +14 -1
  23. package/engine/behavior.lua +230 -70
  24. package/engine/behaviour/ability/apply-buff.d.ts +5 -0
  25. package/engine/behaviour/ability/apply-buff.lua +36 -4
  26. package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
  27. package/engine/behaviour/ability/damage.d.ts +12 -3
  28. package/engine/behaviour/ability/damage.lua +33 -39
  29. package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
  30. package/engine/behaviour/ability/emulate-impact.lua +18 -3
  31. package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
  32. package/engine/behaviour/ability/remove-buffs.lua +21 -0
  33. package/engine/behaviour/ability/restore-mana.d.ts +1 -1
  34. package/engine/behaviour/ability/restore-mana.lua +6 -6
  35. package/engine/behaviour/ability.d.ts +15 -5
  36. package/engine/behaviour/ability.lua +72 -24
  37. package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
  38. package/engine/behaviour/unit/stun-immunity.lua +57 -31
  39. package/engine/behaviour/unit.d.ts +40 -2
  40. package/engine/behaviour/unit.lua +269 -6
  41. package/engine/buff.d.ts +113 -53
  42. package/engine/buff.lua +544 -288
  43. package/engine/internal/ability.d.ts +7 -1
  44. package/engine/internal/ability.lua +49 -11
  45. package/engine/internal/item/ability.lua +82 -14
  46. package/engine/internal/item+owner.lua +12 -6
  47. package/engine/internal/item.d.ts +20 -19
  48. package/engine/internal/item.lua +191 -74
  49. package/engine/internal/mechanics/ability-duration.lua +1 -1
  50. package/engine/internal/mechanics/cast-ability.lua +6 -3
  51. package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
  52. package/engine/internal/misc/frame-coordinates.d.ts +2 -0
  53. package/engine/internal/misc/frame-coordinates.lua +21 -0
  54. package/engine/internal/misc/get-terrain-z.d.ts +2 -0
  55. package/engine/internal/misc/get-terrain-z.lua +11 -0
  56. package/engine/internal/misc/player-local-handle.d.ts +2 -0
  57. package/engine/internal/misc/player-local-handle.lua +5 -0
  58. package/engine/internal/object-data/armor-bonus.d.ts +2 -0
  59. package/engine/internal/object-data/attribute-bonus.lua +2 -2
  60. package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
  61. package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
  62. package/engine/internal/object-data/evasion-probability.d.ts +2 -0
  63. package/engine/internal/object-data/evasion-probability.lua +16 -0
  64. package/engine/internal/object-data/health-bonus.d.ts +2 -0
  65. package/engine/internal/object-data/health-bonus.lua +16 -0
  66. package/engine/internal/object-data/mana-bonus.d.ts +2 -0
  67. package/engine/internal/object-data/mana-bonus.lua +16 -0
  68. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
  69. package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
  70. package/engine/internal/unit/ability.d.ts +35 -0
  71. package/engine/internal/unit/ability.lua +98 -9
  72. package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
  73. package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
  74. package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
  75. package/engine/internal/unit/add-item-to-slot.lua +52 -0
  76. package/engine/internal/unit/allowed-targets.d.ts +1 -1
  77. package/engine/internal/unit/allowed-targets.lua +9 -1
  78. package/engine/internal/unit/attributes.d.ts +17 -0
  79. package/engine/internal/unit/attributes.lua +46 -0
  80. package/engine/internal/unit/bonus.d.ts +8 -0
  81. package/engine/internal/unit/bonus.lua +50 -3
  82. package/engine/internal/unit/fly-height.d.ts +7 -0
  83. package/engine/internal/unit/fly-height.lua +20 -0
  84. package/engine/internal/unit/ignore-events-items.d.ts +2 -0
  85. package/engine/internal/unit/ignore-events-items.lua +5 -0
  86. package/engine/internal/unit/interrupts.d.ts +12 -0
  87. package/engine/internal/unit/interrupts.lua +28 -0
  88. package/engine/internal/unit/item.lua +3 -4
  89. package/engine/internal/unit/main-selected.lua +12 -27
  90. package/engine/internal/unit/order.d.ts +20 -0
  91. package/engine/internal/unit/order.lua +136 -0
  92. package/engine/internal/unit/range-event.d.ts +12 -0
  93. package/engine/internal/unit/range-event.lua +90 -0
  94. package/engine/internal/unit/scale.d.ts +7 -0
  95. package/engine/internal/unit/scale.lua +20 -0
  96. package/engine/internal/unit+ability.lua +10 -1
  97. package/engine/internal/unit+bonus.lua +3 -3
  98. package/engine/internal/unit+damage.d.ts +2 -11
  99. package/engine/internal/unit+damage.lua +10 -14
  100. package/engine/internal/unit+spellSteal.lua +1 -2
  101. package/engine/internal/unit-missile-launch.lua +52 -14
  102. package/engine/internal/unit.d.ts +44 -25
  103. package/engine/internal/unit.lua +401 -263
  104. package/engine/lightning.d.ts +12 -5
  105. package/engine/lightning.lua +48 -14
  106. package/engine/local-client.d.ts +7 -0
  107. package/engine/local-client.lua +79 -1
  108. package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
  109. package/engine/object-data/auxiliary/animation-name.lua +16 -0
  110. package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
  111. package/engine/object-data/auxiliary/armor-type.lua +46 -0
  112. package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
  113. package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
  114. package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
  115. package/engine/object-data/auxiliary/attack-type.lua +42 -0
  116. package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
  117. package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
  118. package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
  119. package/engine/object-data/auxiliary/movement-type.lua +22 -0
  120. package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
  121. package/engine/object-data/auxiliary/sound-eax.lua +2 -0
  122. package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
  123. package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
  124. package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
  125. package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
  126. package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
  127. package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
  128. package/engine/object-data/entry/ability-type/berserk.lua +13 -0
  129. package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
  130. package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
  131. package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
  132. package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
  133. package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
  134. package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
  135. package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
  136. package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
  137. package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
  138. package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
  139. package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
  140. package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
  141. package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
  142. package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
  143. package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
  144. package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
  145. package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
  146. package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
  147. package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
  148. package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
  149. package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
  150. package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
  151. package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
  152. package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
  153. package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
  154. package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
  155. package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
  156. package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
  157. package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
  158. package/engine/object-data/entry/ability-type/web.d.ts +12 -0
  159. package/engine/object-data/entry/ability-type/web.lua +52 -0
  160. package/engine/object-data/entry/ability-type.d.ts +21 -17
  161. package/engine/object-data/entry/ability-type.lua +169 -28
  162. package/engine/object-data/entry/buff-type/applicable.lua +122 -137
  163. package/engine/object-data/entry/buff-type.d.ts +6 -12
  164. package/engine/object-data/entry/buff-type.lua +13 -29
  165. package/engine/object-data/entry/destructible-type.d.ts +28 -2
  166. package/engine/object-data/entry/destructible-type.lua +155 -0
  167. package/engine/object-data/entry/item-type.d.ts +1 -1
  168. package/engine/object-data/entry/item-type.lua +4 -4
  169. package/engine/object-data/entry/lightning-type.d.ts +1 -1
  170. package/engine/object-data/entry/sound-preset.d.ts +33 -0
  171. package/engine/object-data/entry/sound-preset.lua +140 -0
  172. package/engine/object-data/entry/unit-type.d.ts +25 -5
  173. package/engine/object-data/entry/unit-type.lua +258 -93
  174. package/engine/object-data/entry/upgrade.d.ts +1 -1
  175. package/engine/object-data/entry/upgrade.lua +4 -4
  176. package/engine/object-data/entry.d.ts +16 -14
  177. package/engine/object-data/entry.lua +60 -32
  178. package/engine/object-field/ability.d.ts +4 -4
  179. package/engine/object-field/ability.lua +9 -8
  180. package/engine/object-field/unit.d.ts +72 -3
  181. package/engine/object-field/unit.lua +268 -7
  182. package/engine/object-field.d.ts +26 -7
  183. package/engine/object-field.lua +360 -119
  184. package/engine/random.d.ts +10 -0
  185. package/engine/random.lua +21 -0
  186. package/engine/standard/entries/buff-type.d.ts +3 -0
  187. package/engine/standard/entries/buff-type.lua +3 -0
  188. package/engine/standard/entries/sound-preset.d.ts +10 -0
  189. package/engine/standard/entries/sound-preset.lua +10 -0
  190. package/engine/standard/fields/ability.d.ts +2 -2
  191. package/engine/standard/fields/ability.lua +2 -2
  192. package/engine/standard/fields/unit.d.ts +12 -0
  193. package/engine/standard/fields/unit.lua +20 -0
  194. package/engine/synchronization.d.ts +11 -0
  195. package/engine/synchronization.lua +77 -0
  196. package/engine/text-tag.d.ts +36 -2
  197. package/engine/text-tag.lua +250 -10
  198. package/engine/unit.d.ts +7 -0
  199. package/engine/unit.lua +7 -0
  200. package/lualib_bundle.lua +1 -1
  201. package/math.d.ts +2 -0
  202. package/math.lua +14 -0
  203. package/net/socket.lua +1 -1
  204. package/objutil/buff.lua +11 -10
  205. package/objutil/object.lua +1 -1
  206. package/objutil/unit.lua +8 -0
  207. package/operation.lua +1 -4
  208. package/package.json +5 -5
  209. package/patch-lua.lua +15 -0
  210. package/patch-lualib.lua +1 -1
  211. package/utility/arrays.d.ts +2 -0
  212. package/utility/arrays.lua +11 -0
  213. package/utility/callback-array.d.ts +17 -0
  214. package/utility/callback-array.lua +61 -0
  215. package/utility/functions.d.ts +8 -0
  216. package/utility/functions.lua +13 -0
  217. package/utility/linked-map.d.ts +34 -0
  218. package/utility/linked-map.lua +101 -0
  219. package/utility/linked-set.d.ts +4 -1
  220. package/utility/linked-set.lua +43 -1
  221. package/utility/lua-maps.d.ts +15 -2
  222. package/utility/lua-maps.lua +53 -2
  223. package/utility/lua-sets.d.ts +2 -0
  224. package/utility/lua-sets.lua +7 -0
  225. package/utility/records.lua +20 -1
  226. package/utility/reflection.lua +11 -7
  227. package/utility/types.d.ts +3 -0
  228. package/core/types/order.d.ts +0 -25
  229. package/core/types/order.lua +0 -55
  230. /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.d.ts} +0 -0
  231. /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
  232. /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
  233. /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.d.ts CHANGED
@@ -12,6 +12,8 @@ import { EffectParameters } from "../core/types/effect";
12
12
  import { UnitBehavior } from "./behaviour/unit";
13
13
  import type { Widget } from "../core/types/widget";
14
14
  import { Destructor } from "../destroyable";
15
+ import { Event } from "../event";
16
+ import { AbilityBehavior } from "./behaviour/ability";
15
17
  export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
16
18
  type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
17
19
  type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
@@ -29,8 +31,10 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
29
31
  source?: Unit;
30
32
  behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
31
33
  abilityTypeIds?: Record<AbilityTypeId, {
32
- [numberField: (AbilityNumberField | AbilityNumberLevelField) & symbol]: NumberParameterValueType;
33
- } & {
34
+ readonly fields?: [
35
+ AbilityNumberField | AbilityNumberLevelField,
36
+ NumberParameterValueType
37
+ ][];
34
38
  /** Default `true`. */
35
39
  readonly isButtonVisible?: boolean;
36
40
  /** Default is the level of the source ability or 0 if it is absent. */
@@ -52,15 +56,20 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
52
56
  damageIncrease?: NumberParameterValueType;
53
57
  damageIncreaseFactor?: NumberParameterValueType;
54
58
  armorIncrease?: NumberParameterValueType;
55
- armorIncreaseFactor?: NumberParameterValueType;
59
+ maxHealthIncrease?: NumberParameterValueType;
60
+ maxManaIncrease?: NumberParameterValueType;
56
61
  attackSpeedIncreaseFactor?: NumberParameterValueType;
57
62
  movementSpeedIncreaseFactor?: NumberParameterValueType;
63
+ manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
64
+ evasionProbability?: NumberParameterValueType;
65
+ missProbability?: NumberParameterValueType;
58
66
  damageFactor?: NumberParameterValueType;
59
67
  receivedDamageFactor?: NumberParameterValueType;
60
68
  receivedMagicDamageFactor?: NumberParameterValueType;
61
69
  durationIncreaseOnAutoAttack?: NumberParameterValueType;
62
70
  maximumRemainingDuration?: NumberParameterValueType;
63
71
  maximumDuration?: NumberParameterValueType;
72
+ turnsIntoGhost?: BooleanParameterValueType;
64
73
  stuns?: BooleanParameterValueType;
65
74
  ignoresStunImmunity?: BooleanParameterValueType;
66
75
  providesStunImmunity?: BooleanParameterValueType;
@@ -71,59 +80,72 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
71
80
  maximumAutoAttackCount?: IntegerParameterValueType;
72
81
  maximumDamageDealtEventCount?: IntegerParameterValueType;
73
82
  maximumDamageReceivedEventCount?: IntegerParameterValueType;
83
+ absorbedDamageFactor?: NumberParameterValueType;
84
+ maximumDamageAbsorbed?: NumberParameterValueType;
85
+ destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
74
86
  damageOnExpiration?: NumberParameterValueType;
75
87
  healingOnExpiration?: NumberParameterValueType;
76
88
  killsOnExpiration?: BooleanParameterValueType;
77
89
  explodesOnExpiration?: BooleanParameterValueType;
90
+ abilityCooldownFactor?: NumberParameterValueType;
78
91
  uniqueGroup?: BuffUniqueGroup;
79
92
  } : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
80
93
  declare const enum BuffPropertyKey {
81
- UNIT = 100,
82
- SOURCE = 101,
83
- DURATION = 102,
84
- UNIQUE_GROUP = 103,
85
- EFFECT_MODEL_PATH = 104,
86
- SPECIAL_EFFECT_MODEL_PATH = 105,
87
- DURATION_INCREASE_ON_AUTO_ATTACK = 106,
88
- MAXIMUM_DURATION = 107,
89
- MAXIMUM_REMAINING_DURATION = 108,
90
- DAMAGE_OVER_DURATION = 109,
91
- DAMAGE_PER_INTERVAL = 110,
92
- DAMAGE_INTERVAL = 111,
93
- REMAINING_DAMAGE_OVER_DURATION = 112,
94
- DAMAGE_INTERVAL_TIMER = 113,
95
- HEALING_OVER_DURATION = 114,
96
- HEALING_PER_INTERVAL = 115,
97
- HEALING_INTERVAL = 116,
98
- REMAINING_HEALING_OVER_DURATION = 117,
99
- HEALING_INTERVAL_TIMER = 118,
100
- DAMAGE_ON_EXPIRATION = 119,
101
- HEALING_ON_EXPIRATION = 120,
102
- DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 121,
103
- DAMAGE_UPON_DEATH = 122,
104
- DAMAGE_UPON_DEATH_RANGE = 123,
105
- MEDIUM_DAMAGE_UPON_DEATH = 124,
106
- MEDIUM_DAMAGE_UPON_DEATH_RANGE = 125,
107
- SMALL_DAMAGE_UPON_DEATH = 126,
108
- SMALL_DAMAGE_UPON_DEATH_RANGE = 127,
109
- AUTO_ATTACK_COUNT = 128,
110
- MAXIMUM_AUTO_ATTACK_COUNT = 129,
111
- DAMAGE_DEALT_EVENT_COUNT = 130,
112
- MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 131,
113
- DAMAGE_RECEIVED_EVENT_COUNT = 132,
114
- MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 133,
115
- STUNS = 134,
116
- IGNORES_STUN_IMMUNITY = 135,
117
- DISABLES_AUTO_ATTACK = 136,
118
- PROVIDES_INVULNERABILITY = 137,
119
- KILLS_ON_EXPIRATION = 138,
120
- EXPLODES_ON_EXPIRATION = 139
94
+ STATE = 100,
95
+ UNIT = 101,
96
+ SOURCE = 102,
97
+ DURATION = 103,
98
+ UNIQUE_GROUP = 104,
99
+ EFFECT_MODEL_PATH = 105,
100
+ SPECIAL_EFFECT_MODEL_PATH = 106,
101
+ DURATION_INCREASE_ON_AUTO_ATTACK = 107,
102
+ MAXIMUM_DURATION = 108,
103
+ MAXIMUM_REMAINING_DURATION = 109,
104
+ DAMAGE_OVER_DURATION = 110,
105
+ DAMAGE_PER_INTERVAL = 111,
106
+ DAMAGE_INTERVAL = 112,
107
+ REMAINING_DAMAGE_OVER_DURATION = 113,
108
+ DAMAGE_INTERVAL_TIMER = 114,
109
+ HEALING_OVER_DURATION = 115,
110
+ HEALING_PER_INTERVAL = 116,
111
+ HEALING_INTERVAL = 117,
112
+ REMAINING_HEALING_OVER_DURATION = 118,
113
+ HEALING_INTERVAL_TIMER = 119,
114
+ DAMAGE_ON_EXPIRATION = 120,
115
+ HEALING_ON_EXPIRATION = 121,
116
+ DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
117
+ DAMAGE_UPON_DEATH = 123,
118
+ DAMAGE_UPON_DEATH_RANGE = 124,
119
+ MEDIUM_DAMAGE_UPON_DEATH = 125,
120
+ MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
121
+ SMALL_DAMAGE_UPON_DEATH = 127,
122
+ SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
123
+ AUTO_ATTACK_COUNT = 129,
124
+ MAXIMUM_AUTO_ATTACK_COUNT = 130,
125
+ DAMAGE_DEALT_EVENT_COUNT = 131,
126
+ MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
127
+ DAMAGE_RECEIVED_EVENT_COUNT = 133,
128
+ MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
129
+ ABSORBED_DAMAGE_FACTOR = 135,
130
+ MAXIMUM_DAMAGE_ABSORBED = 136,
131
+ DAMAGE_ABSORBED = 137,
132
+ DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 138,
133
+ TURNS_INTO_GHOST = 139,
134
+ STUNS = 140,
135
+ IGNORES_STUN_IMMUNITY = 141,
136
+ DISABLES_AUTO_ATTACK = 142,
137
+ PROVIDES_INVULNERABILITY = 143,
138
+ KILLS_ON_EXPIRATION = 144,
139
+ EXPLODES_ON_EXPIRATION = 145,
140
+ MISS_PROBABILITY = 146,
141
+ ABILITY_COOLDOWN_FACTOR = 147,
142
+ ABILITY_COOLDOWN_MODIFIER = 148
121
143
  }
122
144
  export declare const enum BuffTypeIdSelectionPolicy {
123
145
  LEAST_DURATION = 0
124
146
  }
125
147
  export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
126
- export type BuffConstructorParameters<AdditionalParameters extends BuffAdditionalParameters> = [
148
+ export type BuffConstructorParameters<T extends Buff<BuffAdditionalParameters>> = T extends Buff<infer AdditionalParameters> ? [
127
149
  ...typeId: [ApplicableBuffTypeId] | [
128
150
  typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
129
151
  typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
@@ -131,13 +153,16 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
131
153
  polarity: BuffPolarityParameterType,
132
154
  resistanceType: BuffResistanceTypeParameterType,
133
155
  ...abilityOrParameters: [
134
- ability: Ability,
156
+ ability?: Ability | AbilityBehavior,
135
157
  parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
136
- ] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
137
- ];
158
+ ] | [
159
+ parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
160
+ ]
161
+ ] : never;
138
162
  export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
139
163
  private _unit;
140
164
  protected readonly __additionalParametersBrand?: AdditionalParameters;
165
+ private [BuffPropertyKey.STATE];
141
166
  private [BuffPropertyKey.UNIT];
142
167
  private [BuffPropertyKey.SOURCE]?;
143
168
  private [BuffPropertyKey.DURATION];
@@ -172,31 +197,37 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
172
197
  private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
173
198
  private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
174
199
  private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
200
+ private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
201
+ private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
202
+ private [BuffPropertyKey.DAMAGE_ABSORBED]?;
203
+ private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
204
+ private [BuffPropertyKey.TURNS_INTO_GHOST]?;
175
205
  private [BuffPropertyKey.STUNS]?;
176
206
  private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
177
207
  private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
178
208
  private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
179
209
  private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
180
210
  private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
211
+ private [BuffPropertyKey.ABILITY_COOLDOWN_FACTOR]?;
212
+ private [BuffPropertyKey.ABILITY_COOLDOWN_MODIFIER]?;
181
213
  protected static readonly defaultParameters: BuffParameters;
182
214
  get source(): Unit;
183
215
  readonly typeId: ApplicableBuffTypeId;
184
216
  readonly polarity: BuffPolarity;
185
217
  readonly resistanceType: BuffResistanceType;
186
- readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : keyof AdditionalParameters extends never ? undefined : {
218
+ readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : AdditionalParameters extends Record<PropertyKey, never> ? undefined : {
187
219
  [K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
188
220
  };
189
221
  private readonly handle;
222
+ readonly previousBuff?: Buff;
190
223
  private _timer?;
191
224
  private readonly _level?;
192
225
  private readonly _spellStealPriority?;
193
226
  private readonly _learnLevelMinimum?;
194
- private _bonusIdByBonusType?;
227
+ private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
195
228
  private readonly _abilityTypeIds?;
196
229
  private _behaviors?;
197
- private getUnitBonus;
198
- private addOrUpdateOrRemoveUnitBonus;
199
- constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
230
+ constructor(target: Unit, ...parameters: BuffConstructorParameters<Buff<AdditionalParameters>>);
200
231
  get level(): number;
201
232
  get remainingDamageOverDuration(): number;
202
233
  set remainingDamageOverDuration(remainingDamageOverDuration: number);
@@ -224,6 +255,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
224
255
  set receivedDamageFactor(receivedDamageFactor: number);
225
256
  get armorIncrease(): number;
226
257
  set armorIncrease(armorIncrease: number);
258
+ get maxHealthIncrease(): number;
259
+ set maxHealthIncrease(maxHealthIncrease: number);
260
+ get maxManaIncrease(): number;
261
+ set maxManaIncrease(maxManaIncrease: number);
262
+ get turnsIntoGhost(): boolean;
263
+ set turnsIntoGhost(turnsIntoGhost: boolean);
227
264
  get stuns(): boolean;
228
265
  set stuns(stuns: boolean);
229
266
  get ignoresStunImmunity(): boolean;
@@ -248,14 +285,35 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
248
285
  set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
249
286
  get movementSpeedIncreaseFactor(): number;
250
287
  set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
288
+ get evasionProbability(): number;
289
+ set evasionProbability(evasionProbability: number);
290
+ get manaRegenerationRateIncreaseFactor(): number;
291
+ set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
251
292
  get duration(): number;
293
+ set duration(duration: number);
252
294
  get remainingDuration(): number;
253
295
  set remainingDuration(remainingDuration: number);
296
+ get absorbedDamageFactor(): number;
297
+ set absorbedDamageFactor(absorbedDamageFactor: number);
298
+ get maximumDamageAbsorbed(): number;
299
+ set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
300
+ get damageAbsorbed(): number;
301
+ get destroysOnMaximumDamageAbsorbed(): boolean;
302
+ set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
303
+ get abilityCooldownFactor(): number;
304
+ set abilityCooldownFactor(abilityCooldownFactor: number);
305
+ onAbilityGained(ability: Ability): void;
306
+ onAbilityLost(ability: Ability): void;
254
307
  flashEffect(...parameters: [
255
308
  ...widgetOrXY: [] | [Widget] | [x: number, x: number],
256
309
  ...parametersOrDuration: [] | [EffectParameters] | [number]
257
310
  ]): void;
258
- flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
311
+ flashSpecialEffect(...parameters: [
312
+ ...widgetOrXY: [] | [Widget] | [x: number, x: number],
313
+ ...parametersOrDuration: [] | [EffectParameters] | [number]
314
+ ]): void;
315
+ private flash;
316
+ expire(): void;
259
317
  protected onCreate(): void;
260
318
  protected onDestroy(): Destructor;
261
319
  static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
@@ -264,5 +322,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
264
322
  onDeath(source: Unit | undefined): void;
265
323
  onDamageDealt(target: Unit, event: DamageEvent): void;
266
324
  onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
325
+ static readonly createdEvent: Event<[Buff<object>]>;
326
+ static readonly beingDestroyedEvent: Event<[Buff<object>]>;
267
327
  }
268
328
  export {};