warscript 0.0.1-dev.0ad346c → 0.0.1-dev.0d18530
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.
- package/core/dummy.lua +4 -2
- package/core/types/effect.d.ts +11 -1
- package/core/types/effect.lua +43 -77
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +112 -37
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +2 -1
- package/core/types/player.lua +18 -13
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +14 -9
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +109 -3
- package/decl/native.d.ts +705 -7
- package/engine/behaviour/ability/apply-unit-behavior.lua +5 -0
- package/engine/behaviour/ability/damage.d.ts +4 -0
- package/engine/behaviour/ability/damage.lua +19 -15
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability.d.ts +7 -5
- package/engine/behaviour/ability.lua +25 -0
- package/engine/behaviour/unit.d.ts +1 -0
- package/engine/behaviour/unit.lua +1 -0
- package/engine/buff.d.ts +53 -23
- package/engine/buff.lua +286 -132
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +7 -0
- package/engine/internal/ability.lua +65 -36
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +27 -4
- package/engine/internal/item.d.ts +20 -5
- package/engine/internal/item.lua +146 -57
- package/engine/internal/misc/unit-ability-level-natives.lua +12 -0
- package/engine/internal/object-data/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +48 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/unit/ability.lua +15 -3
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/bonus.d.ts +12 -0
- package/engine/internal/unit/bonus.lua +92 -8
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/order.d.ts +3 -3
- package/engine/internal/unit/order.lua +10 -10
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit+ability.d.ts +2 -1
- package/engine/internal/unit+ability.lua +63 -2
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +13 -13
- package/engine/internal/unit.d.ts +1 -9
- package/engine/internal/unit.lua +18 -74
- package/engine/local-client.d.ts +26 -0
- package/engine/local-client.lua +294 -54
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +7 -0
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.d.ts +11 -0
- package/engine/object-data/entry/ability-type/breath-of-fire.lua +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/firebolt.d.ts +7 -0
- package/engine/object-data/entry/ability-type/firebolt.lua +13 -0
- package/engine/object-data/entry/ability-type/flame-strike.d.ts +25 -0
- package/engine/object-data/entry/ability-type/flame-strike.lua +92 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.d.ts +13 -0
- package/engine/object-data/entry/ability-type/healing-ward-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.d.ts +10 -0
- package/engine/object-data/entry/ability-type/item-life-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/life-drain.d.ts +37 -0
- package/engine/object-data/entry/ability-type/life-drain.lua +144 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.d.ts +7 -0
- package/engine/object-data/entry/ability-type/rain-of-fire.lua +13 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/soul-burn.d.ts +22 -0
- package/engine/object-data/entry/ability-type/soul-burn.lua +79 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +25 -6
- package/engine/object-data/entry/ability-type.lua +244 -8
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +6 -2
- package/engine/object-data/entry/destructible-type.lua +26 -0
- package/engine/object-data/entry/item-type.d.ts +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +47 -2
- package/engine/object-data/entry/unit-type.lua +383 -49
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field.d.ts +1 -1
- package/engine/object-field.lua +9 -7
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/buff-type.d.ts +45 -0
- package/engine/standard/entries/buff-type.lua +43 -0
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/unit.d.ts +5 -1
- package/engine/unit.lua +5 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/network.lua +25 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +12 -0
- package/utility/linked-map.d.ts +2 -1
- package/utility/linked-map.lua +6 -0
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +6 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/unit-ability-level-natives.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/buff.lua
CHANGED
|
@@ -103,7 +103,8 @@ local buffParametersKeys = {
|
|
|
103
103
|
damageIncrease = true,
|
|
104
104
|
damageIncreaseFactor = true,
|
|
105
105
|
armorIncrease = true,
|
|
106
|
-
|
|
106
|
+
maxHealthIncrease = true,
|
|
107
|
+
maxManaIncrease = true,
|
|
107
108
|
attackSpeedIncreaseFactor = true,
|
|
108
109
|
movementSpeedIncreaseFactor = true,
|
|
109
110
|
manaRegenerationRateIncreaseFactor = true,
|
|
@@ -126,6 +127,9 @@ local buffParametersKeys = {
|
|
|
126
127
|
maximumAutoAttackCount = true,
|
|
127
128
|
maximumDamageDealtEventCount = true,
|
|
128
129
|
maximumDamageReceivedEventCount = true,
|
|
130
|
+
absorbedDamageFactor = true,
|
|
131
|
+
maximumDamageAbsorbed = true,
|
|
132
|
+
destroysOnMaximumDamageAbsorbed = true,
|
|
129
133
|
uniqueGroup = true,
|
|
130
134
|
damageOnExpiration = true,
|
|
131
135
|
healingOnExpiration = true,
|
|
@@ -182,6 +186,7 @@ local function resolveAndSetNumberValue(buff, property, ability, level, value, d
|
|
|
182
186
|
end
|
|
183
187
|
end
|
|
184
188
|
local buffBooleanParameters = {
|
|
189
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
185
190
|
"turnsIntoGhost",
|
|
186
191
|
"stuns",
|
|
187
192
|
"ignoresStunImmunity",
|
|
@@ -197,6 +202,8 @@ local buffNumberParameters = {
|
|
|
197
202
|
"manaRegenerationRateIncreaseFactor",
|
|
198
203
|
"evasionProbability",
|
|
199
204
|
"armorIncrease",
|
|
205
|
+
"maxHealthIncrease",
|
|
206
|
+
"maxManaIncrease",
|
|
200
207
|
"damageFactor",
|
|
201
208
|
"receivedDamageFactor",
|
|
202
209
|
"maximumAutoAttackCount",
|
|
@@ -210,6 +217,8 @@ local buffNumberParameters = {
|
|
|
210
217
|
"healingOverDuration",
|
|
211
218
|
"damageOnExpiration",
|
|
212
219
|
"healingOnExpiration",
|
|
220
|
+
"absorbedDamageFactor",
|
|
221
|
+
"maximumDamageAbsorbed",
|
|
213
222
|
"abilityCooldownFactor"
|
|
214
223
|
}
|
|
215
224
|
local unsuccessfulApplicationMarker = {}
|
|
@@ -245,6 +254,10 @@ local function destroyBuff(buff)
|
|
|
245
254
|
buff:destroy()
|
|
246
255
|
end
|
|
247
256
|
local function expireBuff(buff)
|
|
257
|
+
if buff.isDestroyed or buff[100] ~= 1 then
|
|
258
|
+
return
|
|
259
|
+
end
|
|
260
|
+
buff[100] = 2
|
|
248
261
|
local remainingDamageOverDuration = buff[113] or 0
|
|
249
262
|
local remainingHealingOverDuration = buff[113] or 0
|
|
250
263
|
if remainingDamageOverDuration ~= 0 or remainingHealingOverDuration ~= 0 then
|
|
@@ -388,14 +401,15 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
388
401
|
local missProbability = parameters and parameters.missProbability or defaultParameters.missProbability
|
|
389
402
|
if missProbability ~= nil then
|
|
390
403
|
missProbability = resolveNumberValue(ability, level, missProbability)
|
|
391
|
-
self[
|
|
404
|
+
self[146] = missProbability
|
|
392
405
|
end
|
|
393
406
|
local buffByTypeId = buffByTypeIdByUnit[_unit]
|
|
394
407
|
if buffByTypeId == nil then
|
|
395
408
|
buffByTypeId = {}
|
|
396
409
|
buffByTypeIdByUnit[_unit] = buffByTypeId
|
|
397
410
|
end
|
|
398
|
-
|
|
411
|
+
self.previousBuff = buffByTypeId[typeId]
|
|
412
|
+
local ____opt_15 = self.previousBuff
|
|
399
413
|
if ____opt_15 ~= nil then
|
|
400
414
|
____opt_15:destroy()
|
|
401
415
|
end
|
|
@@ -472,7 +486,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
472
486
|
self._abilityTypeIds = abilityTypeIds
|
|
473
487
|
end
|
|
474
488
|
for ____, abilityTypeId in ipairs(sortedKeysUnnested(parametersAbilityTypeIds)) do
|
|
475
|
-
local abilityParameters = parametersAbilityTypeIds[abilityTypeId]
|
|
489
|
+
local abilityParameters = checkNotNull(parametersAbilityTypeIds[abilityTypeId])
|
|
476
490
|
local addedAbility = _unit:addAbility(abilityTypeId)
|
|
477
491
|
if addedAbility ~= nil then
|
|
478
492
|
_unit:makeAbilityPermanent(abilityTypeId, true)
|
|
@@ -525,7 +539,7 @@ function Buff.prototype.____constructor(self, _unit, typeIdOrTypeIds, polarityOr
|
|
|
525
539
|
end
|
|
526
540
|
function Buff.prototype.onAbilityGained(self, ability)
|
|
527
541
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
528
|
-
local abilityCooldownModifier = self[
|
|
542
|
+
local abilityCooldownModifier = self[148]
|
|
529
543
|
if abilityCooldownModifier then
|
|
530
544
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, abilityCooldownModifier)
|
|
531
545
|
end
|
|
@@ -533,24 +547,38 @@ function Buff.prototype.onAbilityGained(self, ability)
|
|
|
533
547
|
end
|
|
534
548
|
function Buff.prototype.onAbilityLost(self, ability)
|
|
535
549
|
if __TS__InstanceOf(ability, UnitAbility) then
|
|
536
|
-
local abilityCooldownModifier = self[
|
|
550
|
+
local abilityCooldownModifier = self[148]
|
|
537
551
|
if abilityCooldownModifier then
|
|
538
552
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, abilityCooldownModifier)
|
|
539
553
|
end
|
|
540
554
|
end
|
|
541
555
|
end
|
|
542
556
|
function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
557
|
+
self:flash(
|
|
558
|
+
self[105],
|
|
559
|
+
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin",
|
|
560
|
+
widgetOrXOrParametersOrDuration,
|
|
561
|
+
yOrParametersOrDuration,
|
|
562
|
+
parametersOrDuration
|
|
563
|
+
)
|
|
564
|
+
end
|
|
565
|
+
function Buff.prototype.flashSpecialEffect(self, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
566
|
+
self:flash(
|
|
567
|
+
self[106],
|
|
568
|
+
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin",
|
|
569
|
+
widgetOrXOrParametersOrDuration,
|
|
570
|
+
yOrParametersOrDuration,
|
|
571
|
+
parametersOrDuration
|
|
572
|
+
)
|
|
573
|
+
end
|
|
574
|
+
function Buff.prototype.flash(self, modelPath, attachmentPoint, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
543
575
|
if type(widgetOrXOrParametersOrDuration) == "number" and type(yOrParametersOrDuration) == "number" then
|
|
544
|
-
Effect:flash(
|
|
576
|
+
Effect:flash(modelPath, widgetOrXOrParametersOrDuration, yOrParametersOrDuration, parametersOrDuration)
|
|
545
577
|
else
|
|
546
578
|
local isWidgetProvided = __TS__InstanceOf(widgetOrXOrParametersOrDuration, Unit) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Item) or __TS__InstanceOf(widgetOrXOrParametersOrDuration, Destructable)
|
|
547
579
|
local ____Effect_40 = Effect
|
|
548
580
|
local ____Effect_flash_41 = Effect.flash
|
|
549
|
-
local ____array_39 = __TS__SparseArrayNew(
|
|
550
|
-
self[105],
|
|
551
|
-
isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit,
|
|
552
|
-
stringValueByBuffTypeIdByFieldId[fourCC("feft")][self.typeId] or "origin"
|
|
553
|
-
)
|
|
581
|
+
local ____array_39 = __TS__SparseArrayNew(modelPath, isWidgetProvided and widgetOrXOrParametersOrDuration or self._unit, attachmentPoint)
|
|
554
582
|
local ____isWidgetProvided_38
|
|
555
583
|
if isWidgetProvided then
|
|
556
584
|
____isWidgetProvided_38 = yOrParametersOrDuration
|
|
@@ -564,30 +592,23 @@ function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrPa
|
|
|
564
592
|
)
|
|
565
593
|
end
|
|
566
594
|
end
|
|
567
|
-
function Buff.prototype.flashSpecialEffect(self, widgetOrDuration, duration)
|
|
568
|
-
local isWidgetProvided = type(widgetOrDuration) == "table"
|
|
569
|
-
local ____Effect_44 = Effect
|
|
570
|
-
local ____Effect_flash_45 = Effect.flash
|
|
571
|
-
local ____array_43 = __TS__SparseArrayNew(
|
|
572
|
-
self[106],
|
|
573
|
-
isWidgetProvided and widgetOrDuration or self._unit,
|
|
574
|
-
stringValueByBuffTypeIdByFieldId[fourCC("fspt")][self.typeId] or "origin"
|
|
575
|
-
)
|
|
576
|
-
local ____isWidgetProvided_42
|
|
577
|
-
if isWidgetProvided then
|
|
578
|
-
____isWidgetProvided_42 = duration
|
|
579
|
-
else
|
|
580
|
-
____isWidgetProvided_42 = widgetOrDuration
|
|
581
|
-
end
|
|
582
|
-
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
583
|
-
____Effect_flash_45(
|
|
584
|
-
____Effect_44,
|
|
585
|
-
__TS__SparseArraySpread(____array_43)
|
|
586
|
-
)
|
|
587
|
-
end
|
|
588
595
|
function Buff.prototype.expire(self)
|
|
589
596
|
expireBuff(self)
|
|
590
597
|
end
|
|
598
|
+
function Buff.prototype.dispel(self, source)
|
|
599
|
+
if self.isDestroyed or self[100] ~= 1 then
|
|
600
|
+
return
|
|
601
|
+
end
|
|
602
|
+
self[100] = 2
|
|
603
|
+
do
|
|
604
|
+
pcall(function()
|
|
605
|
+
self:onDispel(source)
|
|
606
|
+
end)
|
|
607
|
+
do
|
|
608
|
+
self:destroy()
|
|
609
|
+
end
|
|
610
|
+
end
|
|
611
|
+
end
|
|
591
612
|
function Buff.prototype.onCreate(self)
|
|
592
613
|
end
|
|
593
614
|
function Buff.prototype.onDestroy(self)
|
|
@@ -616,25 +637,25 @@ function Buff.prototype.onDestroy(self)
|
|
|
616
637
|
behavior:destroy()
|
|
617
638
|
end
|
|
618
639
|
end
|
|
619
|
-
local previousAbilityCooldownModifier = self[
|
|
640
|
+
local previousAbilityCooldownModifier = self[148]
|
|
620
641
|
if previousAbilityCooldownModifier then
|
|
621
642
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
622
643
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
623
644
|
end
|
|
624
645
|
end
|
|
625
|
-
if self[
|
|
646
|
+
if self[143] then
|
|
626
647
|
unit:decrementInvulnerabilityCounter()
|
|
627
648
|
end
|
|
628
|
-
if self[
|
|
649
|
+
if self[142] then
|
|
629
650
|
unit:decrementDisableAutoAttackCounter()
|
|
630
651
|
end
|
|
631
|
-
if self[
|
|
632
|
-
if self[
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
633
654
|
unit:decrementForceStunCounter()
|
|
634
655
|
end
|
|
635
656
|
unit:decrementStunCounter()
|
|
636
657
|
end
|
|
637
|
-
if self[
|
|
658
|
+
if self[139] then
|
|
638
659
|
unit:decrementGhostCounter()
|
|
639
660
|
end
|
|
640
661
|
if self._abilityTypeIds ~= nil then
|
|
@@ -671,13 +692,15 @@ function Buff.apply(self, ...)
|
|
|
671
692
|
end
|
|
672
693
|
end
|
|
673
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
674
|
-
local
|
|
675
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
676
697
|
if __TS__InstanceOf(buff, self) then
|
|
677
698
|
return buff
|
|
678
699
|
end
|
|
679
700
|
return nil
|
|
680
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
681
704
|
function Buff.prototype.onExpiration(self)
|
|
682
705
|
local unit = self.unit
|
|
683
706
|
if self[120] ~= nil then
|
|
@@ -686,9 +709,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
686
709
|
if self[121] ~= nil then
|
|
687
710
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
688
711
|
end
|
|
689
|
-
if self[
|
|
712
|
+
if self[145] then
|
|
690
713
|
unit:explode()
|
|
691
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
692
715
|
unit:kill()
|
|
693
716
|
end
|
|
694
717
|
end
|
|
@@ -743,6 +766,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
743
766
|
end
|
|
744
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
745
768
|
if event.originalAmount ~= 0 then
|
|
769
|
+
local absorbedDamage = min(event.amount * (self[135] or 1), (self[136] or 0) - (self[137] or 0))
|
|
770
|
+
if absorbedDamage > 0 then
|
|
771
|
+
event.amount = event.amount - absorbedDamage
|
|
772
|
+
self[137] = (self[137] or 0) + absorbedDamage
|
|
773
|
+
local ____self__138_44 = self[138]
|
|
774
|
+
if ____self__138_44 == nil then
|
|
775
|
+
____self__138_44 = true
|
|
776
|
+
end
|
|
777
|
+
if ____self__138_44 and self[137] >= (self[136] or 0) then
|
|
778
|
+
self:destroy()
|
|
779
|
+
end
|
|
780
|
+
end
|
|
746
781
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
747
782
|
self[133] = damageReceivedEventCount
|
|
748
783
|
if damageReceivedEventCount == self[134] then
|
|
@@ -830,8 +865,8 @@ __TS__SetDescriptor(
|
|
|
830
865
|
return
|
|
831
866
|
end
|
|
832
867
|
self[112] = damageInterval
|
|
833
|
-
local
|
|
834
|
-
local elapsed =
|
|
868
|
+
local ____opt_45 = self._timer
|
|
869
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
835
870
|
local timer = self[114]
|
|
836
871
|
if timer == nil then
|
|
837
872
|
timer = Timer:create()
|
|
@@ -910,8 +945,8 @@ __TS__SetDescriptor(
|
|
|
910
945
|
return
|
|
911
946
|
end
|
|
912
947
|
self[117] = healingInterval
|
|
913
|
-
local
|
|
914
|
-
local elapsed =
|
|
948
|
+
local ____opt_47 = self._timer
|
|
949
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
915
950
|
local timer = self[119]
|
|
916
951
|
if timer == nil then
|
|
917
952
|
timer = Timer:create()
|
|
@@ -992,24 +1027,50 @@ __TS__SetDescriptor(
|
|
|
992
1027
|
},
|
|
993
1028
|
true
|
|
994
1029
|
)
|
|
1030
|
+
__TS__SetDescriptor(
|
|
1031
|
+
Buff.prototype,
|
|
1032
|
+
"maxHealthIncrease",
|
|
1033
|
+
{
|
|
1034
|
+
get = function(self)
|
|
1035
|
+
return self:getUnitBonus(UnitBonusType.HEALTH)
|
|
1036
|
+
end,
|
|
1037
|
+
set = function(self, maxHealthIncrease)
|
|
1038
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.HEALTH, maxHealthIncrease)
|
|
1039
|
+
end
|
|
1040
|
+
},
|
|
1041
|
+
true
|
|
1042
|
+
)
|
|
1043
|
+
__TS__SetDescriptor(
|
|
1044
|
+
Buff.prototype,
|
|
1045
|
+
"maxManaIncrease",
|
|
1046
|
+
{
|
|
1047
|
+
get = function(self)
|
|
1048
|
+
return self:getUnitBonus(UnitBonusType.MANA)
|
|
1049
|
+
end,
|
|
1050
|
+
set = function(self, maxManaIncrease)
|
|
1051
|
+
self:addOrUpdateOrRemoveUnitBonus(UnitBonusType.MANA, maxManaIncrease)
|
|
1052
|
+
end
|
|
1053
|
+
},
|
|
1054
|
+
true
|
|
1055
|
+
)
|
|
995
1056
|
__TS__SetDescriptor(
|
|
996
1057
|
Buff.prototype,
|
|
997
1058
|
"turnsIntoGhost",
|
|
998
1059
|
{
|
|
999
1060
|
get = function(self)
|
|
1000
|
-
local
|
|
1001
|
-
if
|
|
1002
|
-
|
|
1061
|
+
local ____self__139_49 = self[139]
|
|
1062
|
+
if ____self__139_49 == nil then
|
|
1063
|
+
____self__139_49 = false
|
|
1003
1064
|
end
|
|
1004
|
-
return
|
|
1065
|
+
return ____self__139_49
|
|
1005
1066
|
end,
|
|
1006
1067
|
set = function(self, turnsIntoGhost)
|
|
1007
|
-
if not turnsIntoGhost and self[
|
|
1068
|
+
if not turnsIntoGhost and self[139] then
|
|
1008
1069
|
self.object:decrementGhostCounter()
|
|
1009
|
-
self[
|
|
1010
|
-
elseif turnsIntoGhost and not self[
|
|
1070
|
+
self[139] = nil
|
|
1071
|
+
elseif turnsIntoGhost and not self[139] then
|
|
1011
1072
|
self.object:incrementGhostCounter()
|
|
1012
|
-
self[
|
|
1073
|
+
self[139] = true
|
|
1013
1074
|
end
|
|
1014
1075
|
end
|
|
1015
1076
|
},
|
|
@@ -1020,25 +1081,25 @@ __TS__SetDescriptor(
|
|
|
1020
1081
|
"stuns",
|
|
1021
1082
|
{
|
|
1022
1083
|
get = function(self)
|
|
1023
|
-
local
|
|
1024
|
-
if
|
|
1025
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
1026
1087
|
end
|
|
1027
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
1028
1089
|
end,
|
|
1029
1090
|
set = function(self, stuns)
|
|
1030
|
-
if not stuns and self[
|
|
1031
|
-
if self[
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1032
1093
|
self.object:decrementForceStunCounter()
|
|
1033
1094
|
end
|
|
1034
1095
|
self.object:decrementStunCounter()
|
|
1035
|
-
self[
|
|
1036
|
-
elseif stuns and not self[
|
|
1037
|
-
if self[
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1038
1099
|
self.object:incrementForceStunCounter()
|
|
1039
1100
|
end
|
|
1040
1101
|
self.object:incrementStunCounter()
|
|
1041
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
1042
1103
|
end
|
|
1043
1104
|
end
|
|
1044
1105
|
},
|
|
@@ -1049,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
1049
1110
|
"ignoresStunImmunity",
|
|
1050
1111
|
{
|
|
1051
1112
|
get = function(self)
|
|
1052
|
-
local
|
|
1053
|
-
if
|
|
1054
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
1055
1116
|
end
|
|
1056
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
1057
1118
|
end,
|
|
1058
1119
|
set = function(self, ignoresStunImmunity)
|
|
1059
|
-
if not ignoresStunImmunity and self[
|
|
1060
|
-
if self[
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1061
1122
|
self.object:decrementForceStunCounter()
|
|
1062
1123
|
end
|
|
1063
|
-
self[
|
|
1064
|
-
elseif ignoresStunImmunity and not self[
|
|
1065
|
-
if self[
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1066
1127
|
self.object:incrementForceStunCounter()
|
|
1067
1128
|
end
|
|
1068
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
1069
1130
|
end
|
|
1070
1131
|
end
|
|
1071
1132
|
},
|
|
@@ -1076,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
1076
1137
|
"disablesAutoAttack",
|
|
1077
1138
|
{
|
|
1078
1139
|
get = function(self)
|
|
1079
|
-
local
|
|
1080
|
-
if
|
|
1081
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
1082
1143
|
end
|
|
1083
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
1084
1145
|
end,
|
|
1085
1146
|
set = function(self, disablesAutoAttack)
|
|
1086
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
1087
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
1088
|
-
self[
|
|
1089
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1090
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
1091
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
1092
1153
|
end
|
|
1093
1154
|
end
|
|
1094
1155
|
},
|
|
@@ -1099,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
1099
1160
|
"providesInvulnerability",
|
|
1100
1161
|
{
|
|
1101
1162
|
get = function(self)
|
|
1102
|
-
local
|
|
1103
|
-
if
|
|
1104
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1105
1166
|
end
|
|
1106
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1107
1168
|
end,
|
|
1108
1169
|
set = function(self, providesInvulnerability)
|
|
1109
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1110
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1111
|
-
self[
|
|
1112
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1113
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1114
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1115
1176
|
end
|
|
1116
1177
|
end
|
|
1117
1178
|
},
|
|
@@ -1122,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1122
1183
|
"killsOnExpiration",
|
|
1123
1184
|
{
|
|
1124
1185
|
get = function(self)
|
|
1125
|
-
local
|
|
1126
|
-
if
|
|
1127
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1128
1189
|
end
|
|
1129
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1130
1191
|
end,
|
|
1131
1192
|
set = function(self, killsOnExpiration)
|
|
1132
|
-
if not killsOnExpiration and self[
|
|
1133
|
-
self[
|
|
1134
|
-
elseif killsOnExpiration and not self[
|
|
1135
|
-
self[
|
|
1193
|
+
if not killsOnExpiration and self[144] then
|
|
1194
|
+
self[144] = nil
|
|
1195
|
+
elseif killsOnExpiration and not self[144] then
|
|
1196
|
+
self[144] = true
|
|
1136
1197
|
end
|
|
1137
1198
|
end
|
|
1138
1199
|
},
|
|
@@ -1143,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1143
1204
|
"explodesOnExpiration",
|
|
1144
1205
|
{
|
|
1145
1206
|
get = function(self)
|
|
1146
|
-
local
|
|
1147
|
-
if
|
|
1148
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1149
1210
|
end
|
|
1150
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1151
1212
|
end,
|
|
1152
1213
|
set = function(self, killsOnExpiration)
|
|
1153
|
-
if not killsOnExpiration and self[
|
|
1154
|
-
self[
|
|
1155
|
-
elseif killsOnExpiration and not self[
|
|
1156
|
-
self[
|
|
1214
|
+
if not killsOnExpiration and self[145] then
|
|
1215
|
+
self[145] = nil
|
|
1216
|
+
elseif killsOnExpiration and not self[145] then
|
|
1217
|
+
self[145] = true
|
|
1157
1218
|
end
|
|
1158
1219
|
end
|
|
1159
1220
|
},
|
|
@@ -1302,13 +1363,13 @@ __TS__SetDescriptor(
|
|
|
1302
1363
|
"remainingDuration",
|
|
1303
1364
|
{
|
|
1304
1365
|
get = function(self)
|
|
1305
|
-
local
|
|
1306
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1307
1368
|
end,
|
|
1308
1369
|
set = function(self, remainingDuration)
|
|
1309
|
-
local
|
|
1310
|
-
local
|
|
1311
|
-
local remainingDurationDelta =
|
|
1370
|
+
local ____remainingDuration_60 = remainingDuration
|
|
1371
|
+
local ____opt_58 = self._timer
|
|
1372
|
+
local remainingDurationDelta = ____remainingDuration_60 - (____opt_58 and ____opt_58.remaining or 0)
|
|
1312
1373
|
if remainingDurationDelta ~= 0 then
|
|
1313
1374
|
self[103] = self[103] + remainingDurationDelta
|
|
1314
1375
|
if remainingDuration <= 0 then
|
|
@@ -1323,7 +1384,7 @@ __TS__SetDescriptor(
|
|
|
1323
1384
|
remainingDuration,
|
|
1324
1385
|
self._spellStealPriority,
|
|
1325
1386
|
self._learnLevelMinimum,
|
|
1326
|
-
self[
|
|
1387
|
+
self[146]
|
|
1327
1388
|
) then
|
|
1328
1389
|
local timer = self._timer
|
|
1329
1390
|
if timer == nil then
|
|
@@ -1338,15 +1399,80 @@ __TS__SetDescriptor(
|
|
|
1338
1399
|
},
|
|
1339
1400
|
true
|
|
1340
1401
|
)
|
|
1402
|
+
__TS__SetDescriptor(
|
|
1403
|
+
Buff.prototype,
|
|
1404
|
+
"absorbedDamageFactor",
|
|
1405
|
+
{
|
|
1406
|
+
get = function(self)
|
|
1407
|
+
return self[135] or 1
|
|
1408
|
+
end,
|
|
1409
|
+
set = function(self, absorbedDamageFactor)
|
|
1410
|
+
if absorbedDamageFactor == 1 then
|
|
1411
|
+
self[135] = nil
|
|
1412
|
+
else
|
|
1413
|
+
self[135] = absorbedDamageFactor
|
|
1414
|
+
end
|
|
1415
|
+
end
|
|
1416
|
+
},
|
|
1417
|
+
true
|
|
1418
|
+
)
|
|
1419
|
+
__TS__SetDescriptor(
|
|
1420
|
+
Buff.prototype,
|
|
1421
|
+
"maximumDamageAbsorbed",
|
|
1422
|
+
{
|
|
1423
|
+
get = function(self)
|
|
1424
|
+
return self[136] or 0
|
|
1425
|
+
end,
|
|
1426
|
+
set = function(self, maximumDamageAbsorbed)
|
|
1427
|
+
if maximumDamageAbsorbed == 0 then
|
|
1428
|
+
self[136] = nil
|
|
1429
|
+
else
|
|
1430
|
+
self[136] = maximumDamageAbsorbed
|
|
1431
|
+
end
|
|
1432
|
+
end
|
|
1433
|
+
},
|
|
1434
|
+
true
|
|
1435
|
+
)
|
|
1436
|
+
__TS__SetDescriptor(
|
|
1437
|
+
Buff.prototype,
|
|
1438
|
+
"damageAbsorbed",
|
|
1439
|
+
{get = function(self)
|
|
1440
|
+
return self[137] or 0
|
|
1441
|
+
end},
|
|
1442
|
+
true
|
|
1443
|
+
)
|
|
1444
|
+
__TS__SetDescriptor(
|
|
1445
|
+
Buff.prototype,
|
|
1446
|
+
"destroysOnMaximumDamageAbsorbed",
|
|
1447
|
+
{
|
|
1448
|
+
get = function(self)
|
|
1449
|
+
local ____self__138_61 = self[138]
|
|
1450
|
+
if ____self__138_61 == nil then
|
|
1451
|
+
____self__138_61 = true
|
|
1452
|
+
end
|
|
1453
|
+
return ____self__138_61
|
|
1454
|
+
end,
|
|
1455
|
+
set = function(self, destroysOnMaximumDamageAbsorbed)
|
|
1456
|
+
local ____destroysOnMaximumDamageAbsorbed_62
|
|
1457
|
+
if destroysOnMaximumDamageAbsorbed then
|
|
1458
|
+
____destroysOnMaximumDamageAbsorbed_62 = nil
|
|
1459
|
+
else
|
|
1460
|
+
____destroysOnMaximumDamageAbsorbed_62 = false
|
|
1461
|
+
end
|
|
1462
|
+
self[138] = ____destroysOnMaximumDamageAbsorbed_62
|
|
1463
|
+
end
|
|
1464
|
+
},
|
|
1465
|
+
true
|
|
1466
|
+
)
|
|
1341
1467
|
__TS__SetDescriptor(
|
|
1342
1468
|
Buff.prototype,
|
|
1343
1469
|
"abilityCooldownFactor",
|
|
1344
1470
|
{
|
|
1345
1471
|
get = function(self)
|
|
1346
|
-
return self[
|
|
1472
|
+
return self[147] or 1
|
|
1347
1473
|
end,
|
|
1348
1474
|
set = function(self, abilityCooldownFactor)
|
|
1349
|
-
local previousAbilityCooldownModifier = self[
|
|
1475
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1350
1476
|
if previousAbilityCooldownModifier then
|
|
1351
1477
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1352
1478
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
@@ -1358,8 +1484,8 @@ __TS__SetDescriptor(
|
|
|
1358
1484
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1359
1485
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1360
1486
|
end
|
|
1361
|
-
self[
|
|
1362
|
-
self[
|
|
1487
|
+
self[148] = modifier
|
|
1488
|
+
self[147] = abilityCooldownFactor
|
|
1363
1489
|
end
|
|
1364
1490
|
},
|
|
1365
1491
|
true
|
|
@@ -1367,35 +1493,40 @@ __TS__SetDescriptor(
|
|
|
1367
1493
|
Buff.createdEvent = buffCreatedEvent
|
|
1368
1494
|
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1369
1495
|
(function(self)
|
|
1370
|
-
local function destroyBuffIfNeeded(buff)
|
|
1371
|
-
|
|
1372
|
-
|
|
1496
|
+
local function destroyBuffIfNeeded(buff, isDispel, source)
|
|
1497
|
+
local currentHandle = getUnitAbility(buff[101].handle, buff.typeId)
|
|
1498
|
+
if currentHandle ~= buff.handle and buff[100] == 1 then
|
|
1499
|
+
if isDispel and currentHandle == nil and buff.unit.isAlive and buff.resistanceType == 1 and (buff._timer == nil or buff.remainingDuration > 0) then
|
|
1500
|
+
buff:dispel(source)
|
|
1501
|
+
else
|
|
1502
|
+
buff:destroy()
|
|
1503
|
+
end
|
|
1373
1504
|
end
|
|
1374
1505
|
end
|
|
1375
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1376
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1377
1508
|
if buffByTypeId ~= nil then
|
|
1378
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1379
1510
|
if buff ~= nil then
|
|
1380
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1381
1512
|
end
|
|
1382
1513
|
end
|
|
1383
1514
|
end
|
|
1384
|
-
____exports.checkBuffs = function(unit)
|
|
1385
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1386
1517
|
end
|
|
1387
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1388
1519
|
0,
|
|
1389
1520
|
function(caster)
|
|
1390
|
-
____exports.checkBuffs(caster)
|
|
1391
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1392
1523
|
end
|
|
1393
1524
|
)
|
|
1394
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1395
1526
|
0,
|
|
1396
1527
|
function(caster, ability, target)
|
|
1397
|
-
____exports.checkBuffs(target)
|
|
1398
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1399
1530
|
end
|
|
1400
1531
|
)
|
|
1401
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1406,17 +1537,40 @@ Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
|
1406
1537
|
y,
|
|
1407
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1408
1539
|
)
|
|
1409
|
-
forEach(units, ____exports.checkBuffs)
|
|
1410
|
-
Timer:run(
|
|
1540
|
+
forEach(units, ____exports.checkBuffs, true, caster)
|
|
1541
|
+
Timer:run(
|
|
1542
|
+
forEach,
|
|
1543
|
+
units,
|
|
1544
|
+
____exports.checkBuffs,
|
|
1545
|
+
true,
|
|
1546
|
+
caster
|
|
1547
|
+
)
|
|
1548
|
+
end
|
|
1549
|
+
)
|
|
1550
|
+
Unit.abilityNoTargetChannelingStartEvent:addListener(
|
|
1551
|
+
0,
|
|
1552
|
+
function(caster, ability)
|
|
1553
|
+
local radius = ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1554
|
+
if radius > 0 then
|
|
1555
|
+
local units = Unit:getInCollisionRange(caster.x, caster.y, radius)
|
|
1556
|
+
forEach(units, ____exports.checkBuffs, true, caster)
|
|
1557
|
+
Timer:run(
|
|
1558
|
+
forEach,
|
|
1559
|
+
units,
|
|
1560
|
+
____exports.checkBuffs,
|
|
1561
|
+
true,
|
|
1562
|
+
caster
|
|
1563
|
+
)
|
|
1564
|
+
end
|
|
1411
1565
|
end
|
|
1412
1566
|
)
|
|
1413
1567
|
Unit.onDamage:addListener(
|
|
1414
1568
|
0,
|
|
1415
1569
|
function(source, target)
|
|
1416
1570
|
if source ~= nil then
|
|
1417
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1418
1572
|
end
|
|
1419
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1420
1574
|
end
|
|
1421
1575
|
)
|
|
1422
1576
|
buffCreatedEvent:addListener(function(buff)
|