warscript 0.0.1-dev.748f04c → 0.0.1-dev.75599b0
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.d.ts +1 -0
- package/core/types/frame.lua +136 -58
- package/core/types/handle.lua +6 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +17 -1
- package/core/types/player.lua +70 -24
- 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 +23 -7
- 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 +64 -24
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +16 -16
- package/engine/internal/item.lua +152 -69
- 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 +110 -11
- 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/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/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +8 -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 +7 -0
- package/engine/local-client.lua +86 -1
- 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/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.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +28 -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/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -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/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/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/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 +15 -11
- package/engine/object-data/entry/ability-type.lua +153 -13
- package/engine/object-data/entry/buff-type/applicable.lua +113 -104
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/sound-preset.d.ts +17 -0
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +17 -4
- package/engine/object-data/entry/unit-type.lua +200 -88
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- 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/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- 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/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +11 -10
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +2 -2
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- 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 +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -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/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -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
|
@@ -3,7 +3,7 @@ import "../../internal/unit/ability";
|
|
|
3
3
|
import { TupleOf } from "../../../utility/types";
|
|
4
4
|
import { AnimationName } from "../auxiliary/animation-name";
|
|
5
5
|
import { AnimationQualifier } from "../auxiliary/animation-qualifier";
|
|
6
|
-
import {
|
|
6
|
+
import { AttachmentPresetInput, EffectPresetWithParameters, EffectPresetWithParametersInput } from "../auxiliary/attachment-preset";
|
|
7
7
|
import { CombatClassifications } from "../auxiliary/combat-classification";
|
|
8
8
|
import { Race } from "../auxiliary/race";
|
|
9
9
|
import { TechTreeDependency, TechTreeDependencyInput } from "../auxiliary/tech-tree-dependency";
|
|
@@ -27,11 +27,11 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
|
|
|
27
27
|
set buttonPositionX(buttonPositionX: number);
|
|
28
28
|
get buttonPositionY(): number;
|
|
29
29
|
set buttonPositionY(buttonPositionY: number);
|
|
30
|
-
get casterCastingEffectPresets():
|
|
31
|
-
set casterCastingEffectPresets(casterCastingEffectPresets:
|
|
32
|
-
get casterChannelingEffectPresets():
|
|
33
|
-
set casterChannelingEffectPresets(casterChannelingEffectPresets:
|
|
34
|
-
get casterAttachmentPresets(): TupleOf<
|
|
30
|
+
get casterCastingEffectPresets(): EffectPresetWithParameters[];
|
|
31
|
+
set casterCastingEffectPresets(casterCastingEffectPresets: EffectPresetWithParametersInput[]);
|
|
32
|
+
get casterChannelingEffectPresets(): EffectPresetWithParameters[];
|
|
33
|
+
set casterChannelingEffectPresets(casterChannelingEffectPresets: EffectPresetWithParametersInput[]);
|
|
34
|
+
get casterAttachmentPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2>;
|
|
35
35
|
set casterAttachmentPresets(casterAttachmentPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2>);
|
|
36
36
|
get effectModelPaths(): string[];
|
|
37
37
|
set effectModelPaths(effectModelPaths: string[]);
|
|
@@ -63,15 +63,17 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
|
|
|
63
63
|
set missileMovementArc(missileMovementArc: number);
|
|
64
64
|
get missileMovementSpeed(): number;
|
|
65
65
|
set missileMovementSpeed(missileMovementSpeed: number);
|
|
66
|
-
get specialAttachmentPreset():
|
|
66
|
+
get specialAttachmentPreset(): EffectPresetWithParameters | undefined;
|
|
67
67
|
set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
|
|
68
|
-
get targetCastingEffectPresets():
|
|
68
|
+
get targetCastingEffectPresets(): EffectPresetWithParameters[];
|
|
69
69
|
set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
|
|
70
|
-
get
|
|
70
|
+
get targetChannelingEffectPresets(): EffectPresetWithParameters[];
|
|
71
|
+
set targetChannelingEffectPresets(targetChannelingEffectPresets: EffectPresetWithParametersInput[]);
|
|
72
|
+
get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
71
73
|
set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
|
|
72
|
-
get targetEffectPresetsSD(): TupleOf<
|
|
74
|
+
get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
73
75
|
set targetEffectPresetsSD(targetEffectPresetsSD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
|
|
74
|
-
get targetEffectPresetsHD(): TupleOf<
|
|
76
|
+
get targetEffectPresetsHD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
75
77
|
set targetEffectPresetsHD(targetEffectPresetsHD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
|
|
76
78
|
get turnOffButtonPositionX(): number;
|
|
77
79
|
set turnOffButtonPositionX(buttonPositionX: number);
|
|
@@ -115,6 +117,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
|
|
|
115
117
|
set casterEffectSoundPresetId(casterEffectSoundPresetId: SoundPresetId | undefined);
|
|
116
118
|
get casterEffectLoopingSoundPresetId(): SoundPresetId;
|
|
117
119
|
set casterEffectLoopingSoundPresetId(casterEffectLoopingSoundPresetId: SoundPresetId);
|
|
120
|
+
get targetEffectSoundPresetId(): SoundPresetId | undefined;
|
|
121
|
+
set targetEffectSoundPresetId(targetEffectSoundPresetId: SoundPresetId | undefined);
|
|
118
122
|
get allowedTargetCombatClassifications(): CombatClassifications[];
|
|
119
123
|
set allowedTargetCombatClassifications(allowedTargetCombatClassifications: ObjectDataEntryLevelFieldValueSupplier<CombatClassifications>);
|
|
120
124
|
get areaOfEffect(): number[];
|
|
@@ -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
|
|
@@ -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
|
|
@@ -743,6 +765,19 @@ __TS__SetDescriptor(
|
|
|
743
765
|
},
|
|
744
766
|
true
|
|
745
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
|
|
777
|
+
end
|
|
778
|
+
},
|
|
779
|
+
true
|
|
780
|
+
)
|
|
746
781
|
__TS__SetDescriptor(
|
|
747
782
|
AbilityType.prototype,
|
|
748
783
|
"allowedTargetCombatClassifications",
|
|
@@ -960,13 +995,38 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
|
|
|
960
995
|
4,
|
|
961
996
|
function(caster, ability)
|
|
962
997
|
if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
|
|
963
|
-
Timer:run(
|
|
964
|
-
caster:playAnimation(animationFQN)
|
|
965
|
-
end)
|
|
998
|
+
Timer:run(caster, "playAnimation", animationFQN)
|
|
966
999
|
end
|
|
967
1000
|
end
|
|
968
1001
|
)
|
|
969
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)
|
|
970
1030
|
local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
|
|
971
1031
|
return mapValues(
|
|
972
1032
|
casterCastingEffectPresetsByAbilityTypeId,
|
|
@@ -979,10 +1039,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
|
|
|
979
1039
|
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
980
1040
|
)
|
|
981
1041
|
end)
|
|
1042
|
+
local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1043
|
+
return mapValues(
|
|
1044
|
+
casterCastingEffectPresetsByAbilityTypeId,
|
|
1045
|
+
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
|
|
1046
|
+
)
|
|
1047
|
+
end)
|
|
982
1048
|
local casterCastingEffectsByCaster = {}
|
|
983
1049
|
local function handleAbilityCastingStartEvent(caster, ability)
|
|
984
1050
|
local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
985
1051
|
local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1052
|
+
local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
|
|
986
1053
|
local effects = {}
|
|
987
1054
|
if effectModelPaths ~= nil then
|
|
988
1055
|
for i = 1, #effectModelPaths do
|
|
@@ -991,7 +1058,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
|
|
|
991
1058
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
992
1059
|
attachmentPoint = "origin"
|
|
993
1060
|
end
|
|
994
|
-
effects[i] = Effect:
|
|
1061
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
995
1062
|
end
|
|
996
1063
|
end
|
|
997
1064
|
casterCastingEffectsByCaster[caster] = effects
|
|
@@ -1022,10 +1089,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
|
|
|
1022
1089
|
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1023
1090
|
)
|
|
1024
1091
|
end)
|
|
1092
|
+
local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1093
|
+
return mapValues(
|
|
1094
|
+
casterChannelingEffectPresetsByAbilityTypeId,
|
|
1095
|
+
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
|
|
1096
|
+
)
|
|
1097
|
+
end)
|
|
1025
1098
|
local casterChannelingEffectsByCaster = {}
|
|
1026
1099
|
local function handleAbilityChannelingStartEvent(caster, ability)
|
|
1027
1100
|
local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1028
1101
|
local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1102
|
+
local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1029
1103
|
local effects = {}
|
|
1030
1104
|
if effectModelPaths ~= nil then
|
|
1031
1105
|
for i = 1, #effectModelPaths do
|
|
@@ -1034,23 +1108,89 @@ local function handleAbilityChannelingStartEvent(caster, ability)
|
|
|
1034
1108
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1035
1109
|
attachmentPoint = "origin"
|
|
1036
1110
|
end
|
|
1037
|
-
effects[i] = Effect:
|
|
1111
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1038
1112
|
end
|
|
1039
1113
|
end
|
|
1040
1114
|
casterChannelingEffectsByCaster[caster] = effects
|
|
1041
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
|
|
1042
1169
|
local function handleAbilityStopChannelingEvent(caster)
|
|
1043
|
-
local
|
|
1044
|
-
if
|
|
1045
|
-
for i = 1, #
|
|
1046
|
-
|
|
1170
|
+
local casterEffects = casterChannelingEffectsByCaster[caster]
|
|
1171
|
+
if casterEffects ~= nil then
|
|
1172
|
+
for i = 1, #casterEffects do
|
|
1173
|
+
casterEffects[i]:destroy()
|
|
1047
1174
|
end
|
|
1048
1175
|
casterChannelingEffectsByCaster[caster] = nil
|
|
1049
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
|
|
1050
1184
|
end
|
|
1051
1185
|
for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
|
|
1052
1186
|
Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
|
|
1053
1187
|
Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1054
1188
|
Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1055
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
|
|
1056
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",
|
|
@@ -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
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 {};
|
|
@@ -6,6 +6,8 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
|
6
6
|
local ____exports = {}
|
|
7
7
|
local ____arrays = require("utility.arrays")
|
|
8
8
|
local array = ____arrays.array
|
|
9
|
+
local ____reflection = require("utility.reflection")
|
|
10
|
+
local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNumberIndexSupplier
|
|
9
11
|
local ____entry = require("engine.object-data.entry")
|
|
10
12
|
local ObjectDataEntry = ____entry.ObjectDataEntry
|
|
11
13
|
local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
|
|
@@ -285,32 +287,14 @@ __TS__SetDescriptor(
|
|
|
285
287
|
},
|
|
286
288
|
true
|
|
287
289
|
)
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
AvatarBuffType.name = "AvatarBuffType"
|
|
298
|
-
__TS__ClassExtends(
|
|
299
|
-
AvatarBuffType,
|
|
300
|
-
makeBaseBuffType(fourCC("BHav"))
|
|
301
|
-
)
|
|
302
|
-
____exports.DevotionAuraBuffType = __TS__Class()
|
|
303
|
-
local DevotionAuraBuffType = ____exports.DevotionAuraBuffType
|
|
304
|
-
DevotionAuraBuffType.name = "DevotionAuraBuffType"
|
|
305
|
-
__TS__ClassExtends(
|
|
306
|
-
DevotionAuraBuffType,
|
|
307
|
-
makeBaseBuffType(fourCC("BHad"))
|
|
308
|
-
)
|
|
309
|
-
____exports.DivineShieldBuffType = __TS__Class()
|
|
310
|
-
local DivineShieldBuffType = ____exports.DivineShieldBuffType
|
|
311
|
-
DivineShieldBuffType.name = "DivineShieldBuffType"
|
|
312
|
-
__TS__ClassExtends(
|
|
313
|
-
DivineShieldBuffType,
|
|
314
|
-
makeBaseBuffType(fourCC("BHds"))
|
|
290
|
+
implementReadonlyNumberIndexSupplier(
|
|
291
|
+
____exports.BuffType,
|
|
292
|
+
function(id)
|
|
293
|
+
local ____class_0 = __TS__Class()
|
|
294
|
+
____class_0.name = ____class_0.name
|
|
295
|
+
__TS__ClassExtends(____class_0, ____exports.BuffType)
|
|
296
|
+
____class_0.BASE_ID = id
|
|
297
|
+
return ____class_0
|
|
298
|
+
end
|
|
315
299
|
)
|
|
316
300
|
return ____exports
|