warscript 0.0.1-dev.3af578d → 0.0.1-dev.3b93f8c
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/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +71 -22
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +92 -47
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/util.lua +6 -1
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +12 -3
- package/engine/behaviour/ability/damage.lua +33 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +15 -6
- package/engine/behaviour/ability.lua +56 -21
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +71 -21
- package/engine/buff.lua +392 -172
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +18 -17
- package/engine/internal/item.lua +135 -49
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -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/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.lua +1 -1
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +43 -25
- package/engine/internal/unit.lua +384 -260
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +0 -9
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/curse.lua +2 -2
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- 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/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-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -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/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +21 -17
- package/engine/object-data/entry/ability-type.lua +169 -28
- package/engine/object-data/entry/buff-type/applicable.lua +115 -106
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -2
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.lua +4 -4
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +18 -5
- package/engine/object-data/entry/unit-type.lua +208 -96
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +6 -0
- package/engine/unit.lua +6 -0
- package/lualib_bundle.lua +118 -47
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.lua +23 -17
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +4 -1
- package/utility/linked-set.lua +43 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.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
|
@@ -2,6 +2,7 @@ local ____lualib = require("lualib_bundle")
|
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
4
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
5
6
|
local ____exports = {}
|
|
6
7
|
local ____unit = require("engine.internal.unit")
|
|
7
8
|
local Unit = ____unit.Unit
|
|
@@ -19,7 +20,7 @@ local mapIndexed = ____arrays.mapIndexed
|
|
|
19
20
|
local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
|
|
20
21
|
local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
|
|
21
22
|
local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
|
|
22
|
-
local
|
|
23
|
+
local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
|
|
23
24
|
local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
|
|
24
25
|
local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
|
|
25
26
|
local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
|
|
@@ -33,11 +34,19 @@ local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.u
|
|
|
33
34
|
local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilityTypeIdGenerator
|
|
34
35
|
local ____upgrade = require("engine.object-data.entry.upgrade")
|
|
35
36
|
local Upgrade = ____upgrade.Upgrade
|
|
37
|
+
local ____sound = require("core.types.sound")
|
|
38
|
+
local isSoundLabelCustom = ____sound.isSoundLabelCustom
|
|
39
|
+
local Sound3D = ____sound.Sound3D
|
|
40
|
+
local SoundSettings = ____sound.SoundSettings
|
|
41
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
42
|
+
local luaSetOf = ____lua_2Dsets.luaSetOf
|
|
36
43
|
local castAnimationFQNByAbilityTypeId = {}
|
|
37
44
|
local isButtonVisibleFalseAbilityTypes = {}
|
|
38
45
|
local casterCastingEffectPresetsByAbilityTypeId = {}
|
|
39
46
|
local casterChannelingEffectPresetsByAbilityTypeId = {}
|
|
40
47
|
local targetCastingEffectPresetsByAbilityTypeId = {}
|
|
48
|
+
local targetChannelingEffectPresetsByAbilityTypeId = {}
|
|
49
|
+
local targetEffectSoundPresetByAbilityTypeId = {}
|
|
41
50
|
____exports.AbilityType = __TS__Class()
|
|
42
51
|
local AbilityType = ____exports.AbilityType
|
|
43
52
|
AbilityType.name = "AbilityType"
|
|
@@ -113,7 +122,7 @@ __TS__SetDescriptor(
|
|
|
113
122
|
return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
114
123
|
end,
|
|
115
124
|
set = function(self, casterCastingEffectPresets)
|
|
116
|
-
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets,
|
|
125
|
+
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
|
|
117
126
|
end
|
|
118
127
|
},
|
|
119
128
|
true
|
|
@@ -126,7 +135,7 @@ __TS__SetDescriptor(
|
|
|
126
135
|
return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
127
136
|
end,
|
|
128
137
|
set = function(self, casterChannelingEffectPresets)
|
|
129
|
-
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets,
|
|
138
|
+
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
|
|
130
139
|
end
|
|
131
140
|
},
|
|
132
141
|
true
|
|
@@ -271,10 +280,10 @@ __TS__SetDescriptor(
|
|
|
271
280
|
"lightningTypeIds",
|
|
272
281
|
{
|
|
273
282
|
get = function(self)
|
|
274
|
-
return self:
|
|
283
|
+
return self:getObjectDataEntryNumericIdsField("alig")
|
|
275
284
|
end,
|
|
276
285
|
set = function(self, lightningTypeIds)
|
|
277
|
-
self:
|
|
286
|
+
self:setObjectDataEntryNumericIdsField("alig", lightningTypeIds)
|
|
278
287
|
end
|
|
279
288
|
},
|
|
280
289
|
true
|
|
@@ -365,7 +374,20 @@ __TS__SetDescriptor(
|
|
|
365
374
|
return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
366
375
|
end,
|
|
367
376
|
set = function(self, targetCastingEffectPresets)
|
|
368
|
-
targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets,
|
|
377
|
+
targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
|
|
378
|
+
end
|
|
379
|
+
},
|
|
380
|
+
true
|
|
381
|
+
)
|
|
382
|
+
__TS__SetDescriptor(
|
|
383
|
+
AbilityType.prototype,
|
|
384
|
+
"targetChannelingEffectPresets",
|
|
385
|
+
{
|
|
386
|
+
get = function(self)
|
|
387
|
+
return targetChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
388
|
+
end,
|
|
389
|
+
set = function(self, targetChannelingEffectPresets)
|
|
390
|
+
targetChannelingEffectPresetsByAbilityTypeId[self.id] = map(targetChannelingEffectPresets, toEffectPreset)
|
|
369
391
|
end
|
|
370
392
|
},
|
|
371
393
|
true
|
|
@@ -508,7 +530,7 @@ __TS__SetDescriptor(
|
|
|
508
530
|
"techTreeDependencies",
|
|
509
531
|
{
|
|
510
532
|
get = function(self)
|
|
511
|
-
local techTreeDependencyIds = self:
|
|
533
|
+
local techTreeDependencyIds = self:getObjectDataEntryNumericIdsField("areq")
|
|
512
534
|
local techTreeDependencyInternalLevels = self:getNumbersField("arqa")
|
|
513
535
|
return mapIndexed(
|
|
514
536
|
techTreeDependencyIds,
|
|
@@ -528,7 +550,7 @@ __TS__SetDescriptor(
|
|
|
528
550
|
map(techTreeDependencies, extractTechTreeDependencyInputLevel),
|
|
529
551
|
function(techTreeDependencyLevel) return techTreeDependencyLevel + 1 end
|
|
530
552
|
)
|
|
531
|
-
self:
|
|
553
|
+
self:setObjectDataEntryNumericIdsField("areq", techTreeDependencyIds)
|
|
532
554
|
self:setNumbersField("arqa", techTreeDependencyInternalLevels)
|
|
533
555
|
end
|
|
534
556
|
},
|
|
@@ -718,26 +740,40 @@ __TS__SetDescriptor(
|
|
|
718
740
|
)
|
|
719
741
|
__TS__SetDescriptor(
|
|
720
742
|
AbilityType.prototype,
|
|
721
|
-
"
|
|
743
|
+
"casterEffectSoundPresetId",
|
|
722
744
|
{
|
|
723
745
|
get = function(self)
|
|
724
|
-
|
|
746
|
+
local casterEffectSoundPresetId = self:getStringField("aefs")
|
|
747
|
+
return casterEffectSoundPresetId ~= "" and casterEffectSoundPresetId or nil
|
|
725
748
|
end,
|
|
726
|
-
set = function(self,
|
|
727
|
-
self:setStringField("aefs",
|
|
749
|
+
set = function(self, casterEffectSoundPresetId)
|
|
750
|
+
self:setStringField("aefs", casterEffectSoundPresetId or "")
|
|
728
751
|
end
|
|
729
752
|
},
|
|
730
753
|
true
|
|
731
754
|
)
|
|
732
755
|
__TS__SetDescriptor(
|
|
733
756
|
AbilityType.prototype,
|
|
734
|
-
"
|
|
757
|
+
"casterEffectLoopingSoundPresetId",
|
|
735
758
|
{
|
|
736
759
|
get = function(self)
|
|
737
760
|
return self:getStringField("aefl")
|
|
738
761
|
end,
|
|
739
|
-
set = function(self,
|
|
740
|
-
self:setStringField("aefl",
|
|
762
|
+
set = function(self, casterEffectLoopingSoundPresetId)
|
|
763
|
+
self:setStringField("aefl", casterEffectLoopingSoundPresetId)
|
|
764
|
+
end
|
|
765
|
+
},
|
|
766
|
+
true
|
|
767
|
+
)
|
|
768
|
+
__TS__SetDescriptor(
|
|
769
|
+
AbilityType.prototype,
|
|
770
|
+
"targetEffectSoundPresetId",
|
|
771
|
+
{
|
|
772
|
+
get = function(self)
|
|
773
|
+
return targetEffectSoundPresetByAbilityTypeId[self.id]
|
|
774
|
+
end,
|
|
775
|
+
set = function(self, targetEffectSoundPresetId)
|
|
776
|
+
targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
|
|
741
777
|
end
|
|
742
778
|
},
|
|
743
779
|
true
|
|
@@ -796,10 +832,10 @@ __TS__SetDescriptor(
|
|
|
796
832
|
"buffTypeIds",
|
|
797
833
|
{
|
|
798
834
|
get = function(self)
|
|
799
|
-
return self:
|
|
835
|
+
return self:getObjectDataEntryNumericIdsLevelField("abuf")
|
|
800
836
|
end,
|
|
801
837
|
set = function(self, buffTypeIds)
|
|
802
|
-
self:
|
|
838
|
+
self:setObjectDataEntryNumericIdsLevelField("abuf", buffTypeIds)
|
|
803
839
|
end
|
|
804
840
|
},
|
|
805
841
|
true
|
|
@@ -848,10 +884,10 @@ __TS__SetDescriptor(
|
|
|
848
884
|
"effectBuffTypeIds",
|
|
849
885
|
{
|
|
850
886
|
get = function(self)
|
|
851
|
-
return self:
|
|
887
|
+
return self:getObjectDataEntryNumericIdsLevelField("aeff")
|
|
852
888
|
end,
|
|
853
889
|
set = function(self, effectBuffTypeIds)
|
|
854
|
-
self:
|
|
890
|
+
self:setObjectDataEntryNumericIdsLevelField("aeff", effectBuffTypeIds)
|
|
855
891
|
end
|
|
856
892
|
},
|
|
857
893
|
true
|
|
@@ -959,13 +995,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
|
|
|
959
995
|
4,
|
|
960
996
|
function(caster, ability)
|
|
961
997
|
if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
|
|
962
|
-
Timer:run(
|
|
963
|
-
caster:playAnimation(animationFQN)
|
|
964
|
-
end)
|
|
998
|
+
Timer:run(caster, "playAnimation", animationFQN)
|
|
965
999
|
end
|
|
966
1000
|
end
|
|
967
1001
|
)
|
|
968
1002
|
end
|
|
1003
|
+
for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
|
|
1004
|
+
if soundPresetId ~= nil then
|
|
1005
|
+
Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
|
|
1006
|
+
4,
|
|
1007
|
+
function(caster, ability, target)
|
|
1008
|
+
if __TS__InstanceOf(target, Unit) then
|
|
1009
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
|
|
1010
|
+
else
|
|
1011
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
|
|
1012
|
+
end
|
|
1013
|
+
end
|
|
1014
|
+
)
|
|
1015
|
+
Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
|
|
1016
|
+
4,
|
|
1017
|
+
function(caster, ability, x, y)
|
|
1018
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
|
|
1019
|
+
end
|
|
1020
|
+
)
|
|
1021
|
+
end
|
|
1022
|
+
end
|
|
1023
|
+
local unsupportedEffectSoundAbilityTypeIds = luaSetOf(fourCC("AAns"))
|
|
1024
|
+
Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
|
|
1025
|
+
local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
|
|
1026
|
+
if isSoundLabelCustom(soundPresetId) or soundPresetId ~= "" and unsupportedEffectSoundAbilityTypeIds[ability.parentTypeId] ~= nil then
|
|
1027
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
|
|
1028
|
+
end
|
|
1029
|
+
end)
|
|
969
1030
|
local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
|
|
970
1031
|
return mapValues(
|
|
971
1032
|
casterCastingEffectPresetsByAbilityTypeId,
|
|
@@ -978,10 +1039,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
|
|
|
978
1039
|
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
979
1040
|
)
|
|
980
1041
|
end)
|
|
1042
|
+
local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1043
|
+
return mapValues(
|
|
1044
|
+
casterCastingEffectPresetsByAbilityTypeId,
|
|
1045
|
+
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
|
|
1046
|
+
)
|
|
1047
|
+
end)
|
|
981
1048
|
local casterCastingEffectsByCaster = {}
|
|
982
1049
|
local function handleAbilityCastingStartEvent(caster, ability)
|
|
983
1050
|
local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
984
1051
|
local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1052
|
+
local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
|
|
985
1053
|
local effects = {}
|
|
986
1054
|
if effectModelPaths ~= nil then
|
|
987
1055
|
for i = 1, #effectModelPaths do
|
|
@@ -990,7 +1058,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
|
|
|
990
1058
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
991
1059
|
attachmentPoint = "origin"
|
|
992
1060
|
end
|
|
993
|
-
effects[i] = Effect:
|
|
1061
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
994
1062
|
end
|
|
995
1063
|
end
|
|
996
1064
|
casterCastingEffectsByCaster[caster] = effects
|
|
@@ -1021,10 +1089,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
|
|
|
1021
1089
|
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1022
1090
|
)
|
|
1023
1091
|
end)
|
|
1092
|
+
local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1093
|
+
return mapValues(
|
|
1094
|
+
casterChannelingEffectPresetsByAbilityTypeId,
|
|
1095
|
+
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
|
|
1096
|
+
)
|
|
1097
|
+
end)
|
|
1024
1098
|
local casterChannelingEffectsByCaster = {}
|
|
1025
1099
|
local function handleAbilityChannelingStartEvent(caster, ability)
|
|
1026
1100
|
local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1027
1101
|
local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1102
|
+
local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1028
1103
|
local effects = {}
|
|
1029
1104
|
if effectModelPaths ~= nil then
|
|
1030
1105
|
for i = 1, #effectModelPaths do
|
|
@@ -1033,23 +1108,89 @@ local function handleAbilityChannelingStartEvent(caster, ability)
|
|
|
1033
1108
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1034
1109
|
attachmentPoint = "origin"
|
|
1035
1110
|
end
|
|
1036
|
-
effects[i] = Effect:
|
|
1111
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1037
1112
|
end
|
|
1038
1113
|
end
|
|
1039
1114
|
casterChannelingEffectsByCaster[caster] = effects
|
|
1040
1115
|
end
|
|
1116
|
+
local targetChannelingEffectModelPathsByAbilityTypeId = postcompile(function()
|
|
1117
|
+
return mapValues(
|
|
1118
|
+
targetChannelingEffectPresetsByAbilityTypeId,
|
|
1119
|
+
function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, extractAttachmentPresetInputModelPath) end
|
|
1120
|
+
)
|
|
1121
|
+
end)
|
|
1122
|
+
local targetChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(function()
|
|
1123
|
+
return mapValues(
|
|
1124
|
+
targetChannelingEffectPresetsByAbilityTypeId,
|
|
1125
|
+
function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1126
|
+
)
|
|
1127
|
+
end)
|
|
1128
|
+
local targetChannelingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1129
|
+
return mapValues(
|
|
1130
|
+
targetChannelingEffectPresetsByAbilityTypeId,
|
|
1131
|
+
function(targetChannelingEffectPresets) return map(targetChannelingEffectPresets, "parameters") end
|
|
1132
|
+
)
|
|
1133
|
+
end)
|
|
1134
|
+
local targetChannelingEffectsByCaster = {}
|
|
1135
|
+
local function handleAbilityWidgetTargetChannelingStartEvent(caster, ability, target)
|
|
1136
|
+
local effectModelPaths = targetChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1137
|
+
local attachmentPoints = targetChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1138
|
+
local parameters = targetChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1139
|
+
local effects = {}
|
|
1140
|
+
if effectModelPaths ~= nil then
|
|
1141
|
+
for i = 1, #effectModelPaths do
|
|
1142
|
+
local effectModelPath = effectModelPaths[i]
|
|
1143
|
+
local attachmentPoint = attachmentPoints and attachmentPoints[i]
|
|
1144
|
+
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1145
|
+
attachmentPoint = "origin"
|
|
1146
|
+
end
|
|
1147
|
+
effects[i] = Effect:create(effectModelPath, target, attachmentPoint, parameters and parameters[i])
|
|
1148
|
+
end
|
|
1149
|
+
end
|
|
1150
|
+
targetChannelingEffectsByCaster[caster] = effects
|
|
1151
|
+
end
|
|
1152
|
+
local function handleAbilityPointTargetChannelingStartEvent(caster, ability, x, y)
|
|
1153
|
+
local effectModelPaths = targetChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1154
|
+
local attachmentPoints = targetChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1155
|
+
local parameters = targetChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1156
|
+
local effects = {}
|
|
1157
|
+
if effectModelPaths ~= nil then
|
|
1158
|
+
for i = 1, #effectModelPaths do
|
|
1159
|
+
local effectModelPath = effectModelPaths[i]
|
|
1160
|
+
local attachmentPoint = attachmentPoints and attachmentPoints[i]
|
|
1161
|
+
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1162
|
+
attachmentPoint = "origin"
|
|
1163
|
+
end
|
|
1164
|
+
effects[i] = Effect:create(effectModelPath, x, y, parameters and parameters[i])
|
|
1165
|
+
end
|
|
1166
|
+
end
|
|
1167
|
+
targetChannelingEffectsByCaster[caster] = effects
|
|
1168
|
+
end
|
|
1041
1169
|
local function handleAbilityStopChannelingEvent(caster)
|
|
1042
|
-
local
|
|
1043
|
-
if
|
|
1044
|
-
for i = 1, #
|
|
1045
|
-
|
|
1170
|
+
local casterEffects = casterChannelingEffectsByCaster[caster]
|
|
1171
|
+
if casterEffects ~= nil then
|
|
1172
|
+
for i = 1, #casterEffects do
|
|
1173
|
+
casterEffects[i]:destroy()
|
|
1046
1174
|
end
|
|
1047
1175
|
casterChannelingEffectsByCaster[caster] = nil
|
|
1048
1176
|
end
|
|
1177
|
+
local targetEffects = targetChannelingEffectsByCaster[caster]
|
|
1178
|
+
if targetEffects ~= nil then
|
|
1179
|
+
for i = 1, #targetEffects do
|
|
1180
|
+
targetEffects[i]:destroy()
|
|
1181
|
+
end
|
|
1182
|
+
targetChannelingEffectsByCaster[caster] = nil
|
|
1183
|
+
end
|
|
1049
1184
|
end
|
|
1050
1185
|
for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
|
|
1051
1186
|
Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
|
|
1052
1187
|
Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1053
1188
|
Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1054
1189
|
end
|
|
1190
|
+
for abilityTypeId in pairs(targetChannelingEffectModelPathsByAbilityTypeId) do
|
|
1191
|
+
Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityWidgetTargetChannelingStartEvent)
|
|
1192
|
+
Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityPointTargetChannelingStartEvent)
|
|
1193
|
+
Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1194
|
+
Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1195
|
+
end
|
|
1055
1196
|
return ____exports
|
|
@@ -65,118 +65,127 @@ function ApplicableBuffType.wrap(self, other)
|
|
|
65
65
|
return __TS__New(____exports.ApplicableBuffType, other.object)
|
|
66
66
|
end
|
|
67
67
|
ApplicableBuffType.BASE_ID = fourCC("BHbz")
|
|
68
|
-
local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId = table.unpack(
|
|
69
|
-
|
|
70
|
-
local
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if applicableBuffType.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
68
|
+
local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId = table.unpack(
|
|
69
|
+
postcompile(function()
|
|
70
|
+
local function prepareAbilityType(abilityTypeConstructor, applicableBuffType)
|
|
71
|
+
local abilityType = abilityTypeConstructor:create()
|
|
72
|
+
abilityType.isInternal = true
|
|
73
|
+
abilityType.levelCount = applicableBuffType.levelCount
|
|
74
|
+
abilityType.buttonPositionX = 0
|
|
75
|
+
abilityType.buttonPositionY = -11
|
|
76
|
+
abilityType.casterAttachmentPresets = {}
|
|
77
|
+
abilityType.targetEffectPresets = {}
|
|
78
|
+
abilityType.casterEffectSoundPresetId = nil
|
|
79
|
+
abilityType.learnLevelMinimum = 6
|
|
80
|
+
abilityType.race = "other"
|
|
81
|
+
abilityType.shouldCheckTechTreeDependencies = false
|
|
82
|
+
abilityType.techTreeDependencies = {}
|
|
83
|
+
abilityType.allowedTargetCombatClassifications = combatClassificationsOf(
|
|
84
|
+
4,
|
|
85
|
+
2,
|
|
86
|
+
2097152,
|
|
87
|
+
8,
|
|
88
|
+
1048576,
|
|
89
|
+
16
|
|
90
|
+
)
|
|
91
|
+
abilityType.areaOfEffect = 0
|
|
92
|
+
abilityType.castRange = 999999
|
|
93
|
+
abilityType.cooldown = 0
|
|
94
|
+
abilityType.manaCost = 0
|
|
95
|
+
abilityType.buffDuration = 0
|
|
96
|
+
abilityType.heroBuffDuration = 0
|
|
97
|
+
return abilityType
|
|
98
|
+
end
|
|
99
|
+
local multilevelPhysicalPositiveApplicatorAbilityTypes = {}
|
|
100
|
+
local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId = {}
|
|
101
|
+
for applicableBuffType in pairs(compiletimeApplicableBuffTypes) do
|
|
102
|
+
local applicatorAbilityTypeIdByApplicatorType = {}
|
|
103
|
+
if applicableBuffType.resistanceType == 1 or applicableBuffType.resistanceType == nil then
|
|
104
|
+
if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
|
|
105
|
+
local applicatorAbilityType = prepareAbilityType(CurseAbilityType, applicableBuffType)
|
|
106
|
+
applicatorAbilityType.missProbability = 0
|
|
107
|
+
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
108
|
+
applicatorAbilityTypeIdByApplicatorType[852190] = applicatorAbilityType.id
|
|
109
|
+
end
|
|
110
|
+
if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
|
|
111
|
+
local applicatorAbilityType = prepareAbilityType(BloodLustAbilityType, applicableBuffType)
|
|
112
|
+
applicatorAbilityType.attackSpeedIncreaseFactor = 0
|
|
113
|
+
applicatorAbilityType.movementSpeedIncreaseFactor = 0
|
|
114
|
+
applicatorAbilityType.scaleIncrease = 0
|
|
115
|
+
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
116
|
+
applicatorAbilityTypeIdByApplicatorType[852101] = applicatorAbilityType.id
|
|
117
|
+
end
|
|
108
118
|
end
|
|
109
|
-
if applicableBuffType.
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
if applicableBuffType.resistanceType == 2 or applicableBuffType.resistanceType == nil then
|
|
120
|
+
if applicableBuffType.polarity == 2 or applicableBuffType.polarity == nil then
|
|
121
|
+
local applicatorAbilityType = prepareAbilityType(SlowPoisonAbilityType, applicableBuffType)
|
|
122
|
+
applicatorAbilityType.damagePerSecond = 0
|
|
123
|
+
applicatorAbilityType.movementSpeedDecreaseFactor = 0
|
|
124
|
+
applicatorAbilityType.attackSpeedDecreaseFactor = 0
|
|
125
|
+
applicatorAbilityType.isDamageStacking = false
|
|
126
|
+
applicatorAbilityType.isMovementSpeedFactorStacking = false
|
|
127
|
+
applicatorAbilityType.isAttackSpeedFactorStacking = false
|
|
128
|
+
applicatorAbilityType.isAbleToKill = false
|
|
129
|
+
applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
|
|
130
|
+
applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
|
|
131
|
+
end
|
|
132
|
+
if applicableBuffType.polarity == 1 or applicableBuffType.polarity == nil then
|
|
133
|
+
local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
|
|
134
|
+
applicatorAbilityType.attackSpeedIncreaseFactor = 0
|
|
135
|
+
applicatorAbilityType.movementSpeedIncreaseFactor = 0
|
|
136
|
+
applicatorAbilityType.receivedDamageIncreaseFactor = 0
|
|
137
|
+
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
138
|
+
if applicatorAbilityType.levelCount > 1 then
|
|
139
|
+
multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
|
|
140
|
+
end
|
|
141
|
+
applicatorAbilityTypeIdByApplicatorType[852100] = applicatorAbilityType.id
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
if applicableBuffType.polarity == 0 or applicableBuffType.polarity == nil then
|
|
145
|
+
local applicatorAbilityType = prepareAbilityType(PermanentImmolationAbilityType, applicableBuffType)
|
|
146
|
+
applicatorAbilityType.levelCount = 1
|
|
147
|
+
applicatorAbilityType.damagePerInterval = 0
|
|
148
|
+
applicatorAbilityType.castRange = 0
|
|
149
|
+
applicatorAbilityType.buffDuration = MAXIMUM_INTEGER
|
|
150
|
+
applicatorAbilityType.heroBuffDuration = MAXIMUM_INTEGER
|
|
151
|
+
applicatorAbilityType.allowedTargetCombatClassifications = combatClassificationsOf(1)
|
|
114
152
|
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
115
|
-
applicatorAbilityTypeIdByApplicatorType[
|
|
153
|
+
applicatorAbilityTypeIdByApplicatorType[0] = applicatorAbilityType.id
|
|
116
154
|
end
|
|
155
|
+
applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffType.id] = applicatorAbilityTypeIdByApplicatorType
|
|
117
156
|
end
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
applicatorAbilityType.movementSpeedIncreaseFactor = 0
|
|
131
|
-
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
132
|
-
if applicatorAbilityType.levelCount > 1 then
|
|
133
|
-
multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
|
|
157
|
+
local applicatorUpgradeIds = {}
|
|
158
|
+
local applicatorUpgradeIdByApplicatorAbilityTypeId = {}
|
|
159
|
+
for ____, multilevelPhysicalPositiveApplicatorAbilityTypesChunk in ipairs(chunked(multilevelPhysicalPositiveApplicatorAbilityTypes, 4)) do
|
|
160
|
+
local maxLevelCount = max(map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "levelCount"))
|
|
161
|
+
local applicatorAbilityTypeIds = map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "id")
|
|
162
|
+
local applicatorUpgrade = BlankUpgrade:create()
|
|
163
|
+
applicatorUpgrade.isInternal = true
|
|
164
|
+
applicatorUpgrade.levelCount = maxLevelCount - 1
|
|
165
|
+
applicatorUpgrade.effects = map(
|
|
166
|
+
applicatorAbilityTypeIds,
|
|
167
|
+
function(applicatorAbilityTypeId)
|
|
168
|
+
return {type = "rlev", bonusBase = 1, bonusIncrement = 1, abilityTypeId = applicatorAbilityTypeId}
|
|
134
169
|
end
|
|
135
|
-
|
|
170
|
+
)
|
|
171
|
+
applicatorUpgradeIds[#applicatorUpgradeIds + 1] = applicatorUpgrade.id
|
|
172
|
+
for ____, applicatorAbilityTypeId in ipairs(applicatorAbilityTypeIds) do
|
|
173
|
+
applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId] = applicatorUpgrade.id
|
|
136
174
|
end
|
|
137
175
|
end
|
|
138
|
-
|
|
139
|
-
local
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
applicatorAbilityType.allowedTargetCombatClassifications = combatClassificationsOf(1)
|
|
146
|
-
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
147
|
-
applicatorAbilityTypeIdByApplicatorType[0] = applicatorAbilityType.id
|
|
148
|
-
end
|
|
149
|
-
applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffType.id] = applicatorAbilityTypeIdByApplicatorType
|
|
150
|
-
end
|
|
151
|
-
local applicatorUpgradeIds = {}
|
|
152
|
-
local applicatorUpgradeIdByApplicatorAbilityTypeId = {}
|
|
153
|
-
for ____, multilevelPhysicalPositiveApplicatorAbilityTypesChunk in ipairs(chunked(multilevelPhysicalPositiveApplicatorAbilityTypes, 4)) do
|
|
154
|
-
local maxLevelCount = max(map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "levelCount"))
|
|
155
|
-
local applicatorAbilityTypeIds = map(multilevelPhysicalPositiveApplicatorAbilityTypesChunk, "id")
|
|
156
|
-
local applicatorUpgrade = BlankUpgrade:create()
|
|
157
|
-
applicatorUpgrade.isInternal = true
|
|
158
|
-
applicatorUpgrade.levelCount = maxLevelCount - 1
|
|
159
|
-
applicatorUpgrade.effects = map(
|
|
160
|
-
applicatorAbilityTypeIds,
|
|
161
|
-
function(applicatorAbilityTypeId)
|
|
162
|
-
return {type = "rlev", bonusBase = 1, bonusIncrement = 1, abilityTypeId = applicatorAbilityTypeId}
|
|
163
|
-
end
|
|
164
|
-
)
|
|
165
|
-
applicatorUpgradeIds[#applicatorUpgradeIds + 1] = applicatorUpgrade.id
|
|
166
|
-
for ____, applicatorAbilityTypeId in ipairs(applicatorAbilityTypeIds) do
|
|
167
|
-
applicatorUpgradeIdByApplicatorAbilityTypeId[applicatorAbilityTypeId] = applicatorUpgrade.id
|
|
176
|
+
for ____, unitType in ipairs(UnitType:getAll()) do
|
|
177
|
+
local ____array_0 = __TS__SparseArrayNew(table.unpack(unitType.affectingUpgradeIds))
|
|
178
|
+
__TS__SparseArrayPush(
|
|
179
|
+
____array_0,
|
|
180
|
+
table.unpack(applicatorUpgradeIds)
|
|
181
|
+
)
|
|
182
|
+
unitType.affectingUpgradeIds = {__TS__SparseArraySpread(____array_0)}
|
|
168
183
|
end
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
table.unpack(applicatorUpgradeIds)
|
|
175
|
-
)
|
|
176
|
-
unitType.affectingUpgradeIds = {__TS__SparseArraySpread(____array_0)}
|
|
177
|
-
end
|
|
178
|
-
return {applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId}
|
|
179
|
-
end))
|
|
184
|
+
return {applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorUpgradeIdByApplicatorAbilityTypeId}
|
|
185
|
+
end),
|
|
186
|
+
1,
|
|
187
|
+
2
|
|
188
|
+
)
|
|
180
189
|
local EVASION_ABILITY_TYPE_IDS = postcompile(function()
|
|
181
190
|
return AbilityType:getAllIdsByBaseIds(map({
|
|
182
191
|
"AEev",
|
|
@@ -222,7 +231,7 @@ Unit.abilityCastingStartEvent[SEARING_ARROWS_DUMMY_ABILITY_TYPE_ID]:addListener(
|
|
|
222
231
|
---
|
|
223
232
|
-- @internal For use by internal systems only.
|
|
224
233
|
____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, resistanceType, level, duration, spellStealPriority, learnLevelMinimum, missProbability)
|
|
225
|
-
local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and
|
|
234
|
+
local applicatorType = polarity == 1 and (resistanceType == 1 and 852101 or 852100) or (polarity == 2 and (resistanceType == 1 and 852190 or 852173) or 0)
|
|
226
235
|
local ____opt_1 = applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId[applicableBuffTypeId]
|
|
227
236
|
local applicatorAbilityTypeId = ____opt_1 and ____opt_1[applicatorType]
|
|
228
237
|
if applicatorAbilityTypeId == nil then
|
|
@@ -274,7 +283,7 @@ ____exports.internalApplyBuff = function(unit, applicableBuffTypeId, polarity, r
|
|
|
274
283
|
ability:setField(ABILITY_RLF_DURATION_HERO, level, actualDuration)
|
|
275
284
|
ability:setField(ABILITY_IF_PRIORITY, spellStealPriority or 0)
|
|
276
285
|
ability:setField(ABILITY_IF_REQUIRED_LEVEL, learnLevelMinimum or 6)
|
|
277
|
-
if missProbability ~= nil and applicatorType ==
|
|
286
|
+
if missProbability ~= nil and applicatorType == 852190 then
|
|
278
287
|
ability:setField(ABILITY_RLF_CHANCE_TO_MISS_CRS, missProbability)
|
|
279
288
|
end
|
|
280
289
|
end,
|
|
@@ -3,12 +3,16 @@ import { TupleOf } from "../../../utility/types";
|
|
|
3
3
|
import { AttachmentPreset, AttachmentPresetInput } from "../auxiliary/attachment-preset";
|
|
4
4
|
import { Race } from "../auxiliary/race";
|
|
5
5
|
import { SoundPresetName } from "../auxiliary/sound-preset-name";
|
|
6
|
-
import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
|
|
6
|
+
import { ObjectDataEntry, ObjectDataEntryConstructor, ObjectDataEntryId } from "../entry";
|
|
7
7
|
import { LightningTypeId } from "./lightning-type";
|
|
8
|
-
export type BuffTypeId = ObjectDataEntryId & {
|
|
8
|
+
export type BuffTypeId = ObjectDataEntryId & number & {
|
|
9
9
|
readonly __buffTypeId: unique symbol;
|
|
10
10
|
};
|
|
11
|
+
export type StandardBuffTypeId = BuffTypeId & {
|
|
12
|
+
readonly __standardBuffTypeId: unique symbol;
|
|
13
|
+
};
|
|
11
14
|
export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> extends ObjectDataEntry<Id> {
|
|
15
|
+
static readonly [id: StandardBuffTypeId]: ObjectDataEntryConstructor<BuffType>;
|
|
12
16
|
private static readonly idGenerator;
|
|
13
17
|
protected static generateId(): number;
|
|
14
18
|
protected static getObjectData(map: WarMap): WarObjects;
|
|
@@ -51,13 +55,3 @@ export declare abstract class BuffType<Id extends BuffTypeId = BuffTypeId> exten
|
|
|
51
55
|
get tooltipExtendedText(): string;
|
|
52
56
|
set tooltipExtendedText(tooltipText: string);
|
|
53
57
|
}
|
|
54
|
-
declare const AvatarBuffType_base: typeof BuffType;
|
|
55
|
-
export declare class AvatarBuffType extends AvatarBuffType_base {
|
|
56
|
-
}
|
|
57
|
-
declare const DevotionAuraBuffType_base: typeof BuffType;
|
|
58
|
-
export declare class DevotionAuraBuffType extends DevotionAuraBuffType_base {
|
|
59
|
-
}
|
|
60
|
-
declare const DivineShieldBuffType_base: typeof BuffType;
|
|
61
|
-
export declare class DivineShieldBuffType extends DivineShieldBuffType_base {
|
|
62
|
-
}
|
|
63
|
-
export {};
|