warscript 0.0.1-dev.8895ff6 → 0.0.1-dev.89bc33b
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 +16 -2
- package/core/types/frame.lua +128 -67
- 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/tileCell.d.ts +7 -2
- package/core/types/tileCell.lua +11 -0
- 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/ability-type-extended-tooltip.d.ts +8 -0
- package/engine/ability-type-extended-tooltip.lua +44 -0
- 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 +11 -5
- package/engine/behaviour/ability.lua +54 -0
- package/engine/behaviour/unit.d.ts +1 -0
- package/engine/behaviour/unit.lua +1 -0
- package/engine/buff.d.ts +61 -27
- package/engine/buff.lua +304 -133
- 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/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/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -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 +3 -11
- package/engine/internal/unit.lua +113 -152
- 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-passive-with-cooldown.d.ts +23 -0
- package/engine/object-data/entry/ability-type/blank-passive-with-cooldown.lua +112 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +4 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +27 -7
- 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/exhume-corpses.d.ts +14 -0
- package/engine/object-data/entry/ability-type/exhume-corpses.lua +40 -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/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.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/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- 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 +6 -1
- package/engine/unit.lua +6 -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/patch-lua.lua +15 -0
- package/utility/arrays.d.ts +7 -1
- package/utility/arrays.lua +17 -0
- package/utility/linked-map.d.ts +11 -2
- package/utility/linked-map.lua +41 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +23 -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,26 +592,22 @@ function Buff.prototype.flashEffect(self, widgetOrXOrParametersOrDuration, yOrPa
|
|
|
564
592
|
)
|
|
565
593
|
end
|
|
566
594
|
end
|
|
567
|
-
function Buff.prototype.
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
595
|
+
function Buff.prototype.expire(self)
|
|
596
|
+
expireBuff(self)
|
|
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
|
|
581
610
|
end
|
|
582
|
-
__TS__SparseArrayPush(____array_43, ____isWidgetProvided_42)
|
|
583
|
-
____Effect_flash_45(
|
|
584
|
-
____Effect_44,
|
|
585
|
-
__TS__SparseArraySpread(____array_43)
|
|
586
|
-
)
|
|
587
611
|
end
|
|
588
612
|
function Buff.prototype.onCreate(self)
|
|
589
613
|
end
|
|
@@ -613,25 +637,25 @@ function Buff.prototype.onDestroy(self)
|
|
|
613
637
|
behavior:destroy()
|
|
614
638
|
end
|
|
615
639
|
end
|
|
616
|
-
local previousAbilityCooldownModifier = self[
|
|
640
|
+
local previousAbilityCooldownModifier = self[148]
|
|
617
641
|
if previousAbilityCooldownModifier then
|
|
618
642
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
619
643
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
620
644
|
end
|
|
621
645
|
end
|
|
622
|
-
if self[
|
|
646
|
+
if self[143] then
|
|
623
647
|
unit:decrementInvulnerabilityCounter()
|
|
624
648
|
end
|
|
625
|
-
if self[
|
|
649
|
+
if self[142] then
|
|
626
650
|
unit:decrementDisableAutoAttackCounter()
|
|
627
651
|
end
|
|
628
|
-
if self[
|
|
629
|
-
if self[
|
|
652
|
+
if self[140] then
|
|
653
|
+
if self[141] then
|
|
630
654
|
unit:decrementForceStunCounter()
|
|
631
655
|
end
|
|
632
656
|
unit:decrementStunCounter()
|
|
633
657
|
end
|
|
634
|
-
if self[
|
|
658
|
+
if self[139] then
|
|
635
659
|
unit:decrementGhostCounter()
|
|
636
660
|
end
|
|
637
661
|
if self._abilityTypeIds ~= nil then
|
|
@@ -668,13 +692,15 @@ function Buff.apply(self, ...)
|
|
|
668
692
|
end
|
|
669
693
|
end
|
|
670
694
|
function Buff.getByTypeId(self, unit, typeId)
|
|
671
|
-
local
|
|
672
|
-
local buff =
|
|
695
|
+
local ____opt_42 = buffByTypeIdByUnit[unit]
|
|
696
|
+
local buff = ____opt_42 and ____opt_42[typeId]
|
|
673
697
|
if __TS__InstanceOf(buff, self) then
|
|
674
698
|
return buff
|
|
675
699
|
end
|
|
676
700
|
return nil
|
|
677
701
|
end
|
|
702
|
+
function Buff.prototype.onDispel(self, source)
|
|
703
|
+
end
|
|
678
704
|
function Buff.prototype.onExpiration(self)
|
|
679
705
|
local unit = self.unit
|
|
680
706
|
if self[120] ~= nil then
|
|
@@ -683,9 +709,9 @@ function Buff.prototype.onExpiration(self)
|
|
|
683
709
|
if self[121] ~= nil then
|
|
684
710
|
(self[102] or unit):healTarget(unit, self[120] or 0)
|
|
685
711
|
end
|
|
686
|
-
if self[
|
|
712
|
+
if self[145] then
|
|
687
713
|
unit:explode()
|
|
688
|
-
elseif self[
|
|
714
|
+
elseif self[144] then
|
|
689
715
|
unit:kill()
|
|
690
716
|
end
|
|
691
717
|
end
|
|
@@ -740,6 +766,18 @@ function Buff.prototype.onDamageDealt(self, target, event)
|
|
|
740
766
|
end
|
|
741
767
|
function Buff.prototype.onDamageReceived(self, source, event)
|
|
742
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
|
|
743
781
|
local damageReceivedEventCount = (self[133] or 0) + 1
|
|
744
782
|
self[133] = damageReceivedEventCount
|
|
745
783
|
if damageReceivedEventCount == self[134] then
|
|
@@ -827,8 +865,8 @@ __TS__SetDescriptor(
|
|
|
827
865
|
return
|
|
828
866
|
end
|
|
829
867
|
self[112] = damageInterval
|
|
830
|
-
local
|
|
831
|
-
local elapsed =
|
|
868
|
+
local ____opt_45 = self._timer
|
|
869
|
+
local elapsed = ____opt_45 and ____opt_45.elapsed or 0
|
|
832
870
|
local timer = self[114]
|
|
833
871
|
if timer == nil then
|
|
834
872
|
timer = Timer:create()
|
|
@@ -907,8 +945,8 @@ __TS__SetDescriptor(
|
|
|
907
945
|
return
|
|
908
946
|
end
|
|
909
947
|
self[117] = healingInterval
|
|
910
|
-
local
|
|
911
|
-
local elapsed =
|
|
948
|
+
local ____opt_47 = self._timer
|
|
949
|
+
local elapsed = ____opt_47 and ____opt_47.elapsed or 0
|
|
912
950
|
local timer = self[119]
|
|
913
951
|
if timer == nil then
|
|
914
952
|
timer = Timer:create()
|
|
@@ -989,24 +1027,50 @@ __TS__SetDescriptor(
|
|
|
989
1027
|
},
|
|
990
1028
|
true
|
|
991
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
|
+
)
|
|
992
1056
|
__TS__SetDescriptor(
|
|
993
1057
|
Buff.prototype,
|
|
994
1058
|
"turnsIntoGhost",
|
|
995
1059
|
{
|
|
996
1060
|
get = function(self)
|
|
997
|
-
local
|
|
998
|
-
if
|
|
999
|
-
|
|
1061
|
+
local ____self__139_49 = self[139]
|
|
1062
|
+
if ____self__139_49 == nil then
|
|
1063
|
+
____self__139_49 = false
|
|
1000
1064
|
end
|
|
1001
|
-
return
|
|
1065
|
+
return ____self__139_49
|
|
1002
1066
|
end,
|
|
1003
1067
|
set = function(self, turnsIntoGhost)
|
|
1004
|
-
if not turnsIntoGhost and self[
|
|
1068
|
+
if not turnsIntoGhost and self[139] then
|
|
1005
1069
|
self.object:decrementGhostCounter()
|
|
1006
|
-
self[
|
|
1007
|
-
elseif turnsIntoGhost and not self[
|
|
1070
|
+
self[139] = nil
|
|
1071
|
+
elseif turnsIntoGhost and not self[139] then
|
|
1008
1072
|
self.object:incrementGhostCounter()
|
|
1009
|
-
self[
|
|
1073
|
+
self[139] = true
|
|
1010
1074
|
end
|
|
1011
1075
|
end
|
|
1012
1076
|
},
|
|
@@ -1017,25 +1081,25 @@ __TS__SetDescriptor(
|
|
|
1017
1081
|
"stuns",
|
|
1018
1082
|
{
|
|
1019
1083
|
get = function(self)
|
|
1020
|
-
local
|
|
1021
|
-
if
|
|
1022
|
-
|
|
1084
|
+
local ____self__140_50 = self[140]
|
|
1085
|
+
if ____self__140_50 == nil then
|
|
1086
|
+
____self__140_50 = false
|
|
1023
1087
|
end
|
|
1024
|
-
return
|
|
1088
|
+
return ____self__140_50
|
|
1025
1089
|
end,
|
|
1026
1090
|
set = function(self, stuns)
|
|
1027
|
-
if not stuns and self[
|
|
1028
|
-
if self[
|
|
1091
|
+
if not stuns and self[140] then
|
|
1092
|
+
if self[141] then
|
|
1029
1093
|
self.object:decrementForceStunCounter()
|
|
1030
1094
|
end
|
|
1031
1095
|
self.object:decrementStunCounter()
|
|
1032
|
-
self[
|
|
1033
|
-
elseif stuns and not self[
|
|
1034
|
-
if self[
|
|
1096
|
+
self[140] = nil
|
|
1097
|
+
elseif stuns and not self[140] then
|
|
1098
|
+
if self[141] then
|
|
1035
1099
|
self.object:incrementForceStunCounter()
|
|
1036
1100
|
end
|
|
1037
1101
|
self.object:incrementStunCounter()
|
|
1038
|
-
self[
|
|
1102
|
+
self[140] = true
|
|
1039
1103
|
end
|
|
1040
1104
|
end
|
|
1041
1105
|
},
|
|
@@ -1046,23 +1110,23 @@ __TS__SetDescriptor(
|
|
|
1046
1110
|
"ignoresStunImmunity",
|
|
1047
1111
|
{
|
|
1048
1112
|
get = function(self)
|
|
1049
|
-
local
|
|
1050
|
-
if
|
|
1051
|
-
|
|
1113
|
+
local ____self__141_51 = self[141]
|
|
1114
|
+
if ____self__141_51 == nil then
|
|
1115
|
+
____self__141_51 = false
|
|
1052
1116
|
end
|
|
1053
|
-
return
|
|
1117
|
+
return ____self__141_51
|
|
1054
1118
|
end,
|
|
1055
1119
|
set = function(self, ignoresStunImmunity)
|
|
1056
|
-
if not ignoresStunImmunity and self[
|
|
1057
|
-
if self[
|
|
1120
|
+
if not ignoresStunImmunity and self[141] then
|
|
1121
|
+
if self[140] then
|
|
1058
1122
|
self.object:decrementForceStunCounter()
|
|
1059
1123
|
end
|
|
1060
|
-
self[
|
|
1061
|
-
elseif ignoresStunImmunity and not self[
|
|
1062
|
-
if self[
|
|
1124
|
+
self[141] = nil
|
|
1125
|
+
elseif ignoresStunImmunity and not self[141] then
|
|
1126
|
+
if self[140] then
|
|
1063
1127
|
self.object:incrementForceStunCounter()
|
|
1064
1128
|
end
|
|
1065
|
-
self[
|
|
1129
|
+
self[141] = true
|
|
1066
1130
|
end
|
|
1067
1131
|
end
|
|
1068
1132
|
},
|
|
@@ -1073,19 +1137,19 @@ __TS__SetDescriptor(
|
|
|
1073
1137
|
"disablesAutoAttack",
|
|
1074
1138
|
{
|
|
1075
1139
|
get = function(self)
|
|
1076
|
-
local
|
|
1077
|
-
if
|
|
1078
|
-
|
|
1140
|
+
local ____self__142_52 = self[142]
|
|
1141
|
+
if ____self__142_52 == nil then
|
|
1142
|
+
____self__142_52 = false
|
|
1079
1143
|
end
|
|
1080
|
-
return
|
|
1144
|
+
return ____self__142_52
|
|
1081
1145
|
end,
|
|
1082
1146
|
set = function(self, disablesAutoAttack)
|
|
1083
|
-
if not disablesAutoAttack and self[
|
|
1147
|
+
if not disablesAutoAttack and self[142] then
|
|
1084
1148
|
self.object:decrementDisableAutoAttackCounter()
|
|
1085
|
-
self[
|
|
1086
|
-
elseif disablesAutoAttack and not self[
|
|
1149
|
+
self[142] = nil
|
|
1150
|
+
elseif disablesAutoAttack and not self[142] then
|
|
1087
1151
|
self.object:incrementDisableAutoAttackCounter()
|
|
1088
|
-
self[
|
|
1152
|
+
self[142] = true
|
|
1089
1153
|
end
|
|
1090
1154
|
end
|
|
1091
1155
|
},
|
|
@@ -1096,19 +1160,19 @@ __TS__SetDescriptor(
|
|
|
1096
1160
|
"providesInvulnerability",
|
|
1097
1161
|
{
|
|
1098
1162
|
get = function(self)
|
|
1099
|
-
local
|
|
1100
|
-
if
|
|
1101
|
-
|
|
1163
|
+
local ____self__143_53 = self[143]
|
|
1164
|
+
if ____self__143_53 == nil then
|
|
1165
|
+
____self__143_53 = false
|
|
1102
1166
|
end
|
|
1103
|
-
return
|
|
1167
|
+
return ____self__143_53
|
|
1104
1168
|
end,
|
|
1105
1169
|
set = function(self, providesInvulnerability)
|
|
1106
|
-
if not providesInvulnerability and self[
|
|
1170
|
+
if not providesInvulnerability and self[143] then
|
|
1107
1171
|
self.object:decrementInvulnerabilityCounter()
|
|
1108
|
-
self[
|
|
1109
|
-
elseif providesInvulnerability and not self[
|
|
1172
|
+
self[143] = nil
|
|
1173
|
+
elseif providesInvulnerability and not self[143] then
|
|
1110
1174
|
self.object:incrementInvulnerabilityCounter()
|
|
1111
|
-
self[
|
|
1175
|
+
self[143] = true
|
|
1112
1176
|
end
|
|
1113
1177
|
end
|
|
1114
1178
|
},
|
|
@@ -1119,17 +1183,17 @@ __TS__SetDescriptor(
|
|
|
1119
1183
|
"killsOnExpiration",
|
|
1120
1184
|
{
|
|
1121
1185
|
get = function(self)
|
|
1122
|
-
local
|
|
1123
|
-
if
|
|
1124
|
-
|
|
1186
|
+
local ____self__144_54 = self[144]
|
|
1187
|
+
if ____self__144_54 == nil then
|
|
1188
|
+
____self__144_54 = false
|
|
1125
1189
|
end
|
|
1126
|
-
return
|
|
1190
|
+
return ____self__144_54
|
|
1127
1191
|
end,
|
|
1128
1192
|
set = function(self, killsOnExpiration)
|
|
1129
|
-
if not killsOnExpiration and self[
|
|
1130
|
-
self[
|
|
1131
|
-
elseif killsOnExpiration and not self[
|
|
1132
|
-
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
|
|
1133
1197
|
end
|
|
1134
1198
|
end
|
|
1135
1199
|
},
|
|
@@ -1140,17 +1204,17 @@ __TS__SetDescriptor(
|
|
|
1140
1204
|
"explodesOnExpiration",
|
|
1141
1205
|
{
|
|
1142
1206
|
get = function(self)
|
|
1143
|
-
local
|
|
1144
|
-
if
|
|
1145
|
-
|
|
1207
|
+
local ____self__145_55 = self[145]
|
|
1208
|
+
if ____self__145_55 == nil then
|
|
1209
|
+
____self__145_55 = false
|
|
1146
1210
|
end
|
|
1147
|
-
return
|
|
1211
|
+
return ____self__145_55
|
|
1148
1212
|
end,
|
|
1149
1213
|
set = function(self, killsOnExpiration)
|
|
1150
|
-
if not killsOnExpiration and self[
|
|
1151
|
-
self[
|
|
1152
|
-
elseif killsOnExpiration and not self[
|
|
1153
|
-
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
|
|
1154
1218
|
end
|
|
1155
1219
|
end
|
|
1156
1220
|
},
|
|
@@ -1275,9 +1339,23 @@ __TS__SetDescriptor(
|
|
|
1275
1339
|
__TS__SetDescriptor(
|
|
1276
1340
|
Buff.prototype,
|
|
1277
1341
|
"duration",
|
|
1278
|
-
{
|
|
1279
|
-
|
|
1280
|
-
|
|
1342
|
+
{
|
|
1343
|
+
get = function(self)
|
|
1344
|
+
return self[103]
|
|
1345
|
+
end,
|
|
1346
|
+
set = function(self, duration)
|
|
1347
|
+
if duration <= 0 then
|
|
1348
|
+
local timer = self._timer
|
|
1349
|
+
if timer ~= nil then
|
|
1350
|
+
timer:destroy()
|
|
1351
|
+
self._timer = nil
|
|
1352
|
+
end
|
|
1353
|
+
self[103] = 0
|
|
1354
|
+
else
|
|
1355
|
+
self.remainingDuration = self.remainingDuration + (duration - self[103])
|
|
1356
|
+
end
|
|
1357
|
+
end
|
|
1358
|
+
},
|
|
1281
1359
|
true
|
|
1282
1360
|
)
|
|
1283
1361
|
__TS__SetDescriptor(
|
|
@@ -1285,13 +1363,13 @@ __TS__SetDescriptor(
|
|
|
1285
1363
|
"remainingDuration",
|
|
1286
1364
|
{
|
|
1287
1365
|
get = function(self)
|
|
1288
|
-
local
|
|
1289
|
-
return
|
|
1366
|
+
local ____opt_56 = self._timer
|
|
1367
|
+
return ____opt_56 and ____opt_56.remaining or 0
|
|
1290
1368
|
end,
|
|
1291
1369
|
set = function(self, remainingDuration)
|
|
1292
|
-
local
|
|
1293
|
-
local
|
|
1294
|
-
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)
|
|
1295
1373
|
if remainingDurationDelta ~= 0 then
|
|
1296
1374
|
self[103] = self[103] + remainingDurationDelta
|
|
1297
1375
|
if remainingDuration <= 0 then
|
|
@@ -1306,7 +1384,7 @@ __TS__SetDescriptor(
|
|
|
1306
1384
|
remainingDuration,
|
|
1307
1385
|
self._spellStealPriority,
|
|
1308
1386
|
self._learnLevelMinimum,
|
|
1309
|
-
self[
|
|
1387
|
+
self[146]
|
|
1310
1388
|
) then
|
|
1311
1389
|
local timer = self._timer
|
|
1312
1390
|
if timer == nil then
|
|
@@ -1321,15 +1399,80 @@ __TS__SetDescriptor(
|
|
|
1321
1399
|
},
|
|
1322
1400
|
true
|
|
1323
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
|
+
)
|
|
1324
1467
|
__TS__SetDescriptor(
|
|
1325
1468
|
Buff.prototype,
|
|
1326
1469
|
"abilityCooldownFactor",
|
|
1327
1470
|
{
|
|
1328
1471
|
get = function(self)
|
|
1329
|
-
return self[
|
|
1472
|
+
return self[147] or 1
|
|
1330
1473
|
end,
|
|
1331
1474
|
set = function(self, abilityCooldownFactor)
|
|
1332
|
-
local previousAbilityCooldownModifier = self[
|
|
1475
|
+
local previousAbilityCooldownModifier = self[148]
|
|
1333
1476
|
if previousAbilityCooldownModifier then
|
|
1334
1477
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1335
1478
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:removeModifier(ability, previousAbilityCooldownModifier)
|
|
@@ -1341,8 +1484,8 @@ __TS__SetDescriptor(
|
|
|
1341
1484
|
for ____, ability in ipairs(self._unit.abilities) do
|
|
1342
1485
|
COOLDOWN_ABILITY_FLOAT_LEVEL_FIELD:applyModifier(ability, modifier)
|
|
1343
1486
|
end
|
|
1344
|
-
self[
|
|
1345
|
-
self[
|
|
1487
|
+
self[148] = modifier
|
|
1488
|
+
self[147] = abilityCooldownFactor
|
|
1346
1489
|
end
|
|
1347
1490
|
},
|
|
1348
1491
|
true
|
|
@@ -1350,35 +1493,40 @@ __TS__SetDescriptor(
|
|
|
1350
1493
|
Buff.createdEvent = buffCreatedEvent
|
|
1351
1494
|
Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
1352
1495
|
(function(self)
|
|
1353
|
-
local function destroyBuffIfNeeded(buff)
|
|
1354
|
-
|
|
1355
|
-
|
|
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
|
|
1356
1504
|
end
|
|
1357
1505
|
end
|
|
1358
|
-
____exports.checkBuff = function(unit, buffTypeId)
|
|
1506
|
+
____exports.checkBuff = function(unit, buffTypeId, isDispel, source)
|
|
1359
1507
|
local buffByTypeId = buffByTypeIdByUnit[unit]
|
|
1360
1508
|
if buffByTypeId ~= nil then
|
|
1361
1509
|
local buff = buffByTypeId[buffTypeId]
|
|
1362
1510
|
if buff ~= nil then
|
|
1363
|
-
destroyBuffIfNeeded(buff)
|
|
1511
|
+
destroyBuffIfNeeded(buff, isDispel, source)
|
|
1364
1512
|
end
|
|
1365
1513
|
end
|
|
1366
1514
|
end
|
|
1367
|
-
____exports.checkBuffs = function(unit)
|
|
1368
|
-
____exports.Buff:forAll(unit, destroyBuffIfNeeded)
|
|
1515
|
+
____exports.checkBuffs = function(unit, isDispel, source)
|
|
1516
|
+
____exports.Buff:forAll(unit, destroyBuffIfNeeded, isDispel, source)
|
|
1369
1517
|
end
|
|
1370
1518
|
Unit.abilityChannelingStartEvent:addListener(
|
|
1371
1519
|
0,
|
|
1372
1520
|
function(caster)
|
|
1373
|
-
____exports.checkBuffs(caster)
|
|
1374
|
-
Timer:run(____exports.checkBuffs, caster)
|
|
1521
|
+
____exports.checkBuffs(caster, true, caster)
|
|
1522
|
+
Timer:run(____exports.checkBuffs, caster, true, caster)
|
|
1375
1523
|
end
|
|
1376
1524
|
)
|
|
1377
1525
|
Unit.abilityUnitTargetChannelingStartEvent:addListener(
|
|
1378
1526
|
0,
|
|
1379
1527
|
function(caster, ability, target)
|
|
1380
|
-
____exports.checkBuffs(target)
|
|
1381
|
-
Timer:run(____exports.checkBuffs, target)
|
|
1528
|
+
____exports.checkBuffs(target, true, caster)
|
|
1529
|
+
Timer:run(____exports.checkBuffs, target, true, caster)
|
|
1382
1530
|
end
|
|
1383
1531
|
)
|
|
1384
1532
|
Unit.abilityPointTargetChannelingStartEvent:addListener(
|
|
@@ -1389,17 +1537,40 @@ Buff.beingDestroyedEvent = buffBeingDestroyedEvent;
|
|
|
1389
1537
|
y,
|
|
1390
1538
|
ability:getField(ABILITY_RLF_AREA_OF_EFFECT)
|
|
1391
1539
|
)
|
|
1392
|
-
forEach(units, ____exports.checkBuffs)
|
|
1393
|
-
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
|
|
1394
1565
|
end
|
|
1395
1566
|
)
|
|
1396
1567
|
Unit.onDamage:addListener(
|
|
1397
1568
|
0,
|
|
1398
1569
|
function(source, target)
|
|
1399
1570
|
if source ~= nil then
|
|
1400
|
-
____exports.checkBuffs
|
|
1571
|
+
Timer:run(____exports.checkBuffs, source, false)
|
|
1401
1572
|
end
|
|
1402
|
-
____exports.checkBuffs
|
|
1573
|
+
Timer:run(____exports.checkBuffs, target, false)
|
|
1403
1574
|
end
|
|
1404
1575
|
)
|
|
1405
1576
|
buffCreatedEvent:addListener(function(buff)
|