warscript 0.0.1-dev.a3723da → 0.0.1-dev.a3deff8

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