warscript 0.0.1-dev.f40f923 → 0.0.1-dev.f4350ae
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 +5 -0
- package/attributes.lua +8 -1
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/sound.lua +5 -0
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/decl/native.d.ts +840 -786
- package/engine/behaviour/ability/damage.d.ts +6 -3
- package/engine/behaviour/ability/damage.lua +24 -36
- package/engine/behaviour/ability/emulate-impact.lua +7 -0
- package/engine/behaviour/ability.d.ts +4 -1
- package/engine/behaviour/ability.lua +6 -4
- package/engine/internal/ability.d.ts +2 -0
- package/engine/internal/ability.lua +7 -0
- package/engine/internal/item.d.ts +2 -1
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- 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.d.ts +16 -3
- package/engine/internal/unit.lua +126 -37
- 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/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -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/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -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/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 +11 -11
- package/engine/object-data/entry/ability-type.lua +27 -6
- package/engine/object-data/entry/buff-type/applicable.lua +5 -0
- 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/unit-type.d.ts +2 -2
- package/engine/object-data/entry/unit-type.lua +94 -84
- package/engine/object-field/ability.d.ts +1 -1
- package/engine/object-field/unit.d.ts +46 -3
- package/engine/object-field/unit.lua +173 -7
- package/engine/object-field.d.ts +9 -1
- package/engine/object-field.lua +158 -76
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/objutil/buff.lua +1 -2
- package/package.json +2 -2
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +3 -0
- package/utility/functions.d.ts +1 -0
- package/utility/functions.lua +1 -0
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +3 -0
- package/utility/lua-maps.d.ts +3 -0
- package/utility/lua-maps.lua +16 -0
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +3 -0
|
@@ -36,4 +36,30 @@ __TS__SetDescriptor(
|
|
|
36
36
|
},
|
|
37
37
|
true
|
|
38
38
|
)
|
|
39
|
+
__TS__SetDescriptor(
|
|
40
|
+
ShockWaveAbilityType.prototype,
|
|
41
|
+
"distance",
|
|
42
|
+
{
|
|
43
|
+
get = function(self)
|
|
44
|
+
return self:getNumberLevelField("Osh3")
|
|
45
|
+
end,
|
|
46
|
+
set = function(self, distance)
|
|
47
|
+
self:setNumberLevelField("Osh3", distance)
|
|
48
|
+
end
|
|
49
|
+
},
|
|
50
|
+
true
|
|
51
|
+
)
|
|
52
|
+
__TS__SetDescriptor(
|
|
53
|
+
ShockWaveAbilityType.prototype,
|
|
54
|
+
"finalAreaOfEffect",
|
|
55
|
+
{
|
|
56
|
+
get = function(self)
|
|
57
|
+
return self:getNumberLevelField("Osh4")
|
|
58
|
+
end,
|
|
59
|
+
set = function(self, finalAreaOfEffect)
|
|
60
|
+
self:setNumberLevelField("Osh4", finalAreaOfEffect)
|
|
61
|
+
end
|
|
62
|
+
},
|
|
63
|
+
true
|
|
64
|
+
)
|
|
39
65
|
return ____exports
|
|
@@ -9,4 +9,14 @@ export declare class SlowPoisonAbilityType extends AbilityType {
|
|
|
9
9
|
set movementSpeedDecreaseFactor(movementSpeedDecreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
10
|
get attackSpeedDecreaseFactor(): number[];
|
|
11
11
|
set attackSpeedDecreaseFactor(attackSpeedDecreaseFactor: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
|
+
get isDamageStacking(): boolean[];
|
|
13
|
+
set isDamageStacking(isDamageStacking: ObjectDataEntryLevelFieldValueSupplier<boolean>);
|
|
14
|
+
get isMovementSpeedFactorStacking(): boolean[];
|
|
15
|
+
set isMovementSpeedFactorStacking(isMovementSpeedFactorStacking: ObjectDataEntryLevelFieldValueSupplier<boolean>);
|
|
16
|
+
get isAttackSpeedFactorStacking(): boolean[];
|
|
17
|
+
set isAttackSpeedFactorStacking(isAttackSpeedFactorStacking: ObjectDataEntryLevelFieldValueSupplier<boolean>);
|
|
18
|
+
get isAbleToKill(): boolean[];
|
|
19
|
+
set isAbleToKill(isAbleToKill: ObjectDataEntryLevelFieldValueSupplier<boolean>);
|
|
20
|
+
private setOption;
|
|
21
|
+
private getOption;
|
|
12
22
|
}
|
|
@@ -9,6 +9,12 @@ ____exports.SlowPoisonAbilityType = __TS__Class()
|
|
|
9
9
|
local SlowPoisonAbilityType = ____exports.SlowPoisonAbilityType
|
|
10
10
|
SlowPoisonAbilityType.name = "SlowPoisonAbilityType"
|
|
11
11
|
__TS__ClassExtends(SlowPoisonAbilityType, AbilityType)
|
|
12
|
+
function SlowPoisonAbilityType.prototype.setOption(self, option, supplier)
|
|
13
|
+
self:setFlagLevelFieldValue("Spo4", option, supplier)
|
|
14
|
+
end
|
|
15
|
+
function SlowPoisonAbilityType.prototype.getOption(self, option)
|
|
16
|
+
return self:getFlagLevelFieldValue("Spo4", option)
|
|
17
|
+
end
|
|
12
18
|
SlowPoisonAbilityType.BASE_ID = fourCC("Aspo")
|
|
13
19
|
__TS__SetDescriptor(
|
|
14
20
|
SlowPoisonAbilityType.prototype,
|
|
@@ -49,4 +55,56 @@ __TS__SetDescriptor(
|
|
|
49
55
|
},
|
|
50
56
|
true
|
|
51
57
|
)
|
|
58
|
+
__TS__SetDescriptor(
|
|
59
|
+
SlowPoisonAbilityType.prototype,
|
|
60
|
+
"isDamageStacking",
|
|
61
|
+
{
|
|
62
|
+
get = function(self)
|
|
63
|
+
return self:getOption(1)
|
|
64
|
+
end,
|
|
65
|
+
set = function(self, isDamageStacking)
|
|
66
|
+
self:setOption(1, isDamageStacking)
|
|
67
|
+
end
|
|
68
|
+
},
|
|
69
|
+
true
|
|
70
|
+
)
|
|
71
|
+
__TS__SetDescriptor(
|
|
72
|
+
SlowPoisonAbilityType.prototype,
|
|
73
|
+
"isMovementSpeedFactorStacking",
|
|
74
|
+
{
|
|
75
|
+
get = function(self)
|
|
76
|
+
return self:getOption(2)
|
|
77
|
+
end,
|
|
78
|
+
set = function(self, isMovementSpeedFactorStacking)
|
|
79
|
+
self:setOption(2, isMovementSpeedFactorStacking)
|
|
80
|
+
end
|
|
81
|
+
},
|
|
82
|
+
true
|
|
83
|
+
)
|
|
84
|
+
__TS__SetDescriptor(
|
|
85
|
+
SlowPoisonAbilityType.prototype,
|
|
86
|
+
"isAttackSpeedFactorStacking",
|
|
87
|
+
{
|
|
88
|
+
get = function(self)
|
|
89
|
+
return self:getOption(4)
|
|
90
|
+
end,
|
|
91
|
+
set = function(self, isAttackSpeedFactorStacking)
|
|
92
|
+
self:setOption(4, isAttackSpeedFactorStacking)
|
|
93
|
+
end
|
|
94
|
+
},
|
|
95
|
+
true
|
|
96
|
+
)
|
|
97
|
+
__TS__SetDescriptor(
|
|
98
|
+
SlowPoisonAbilityType.prototype,
|
|
99
|
+
"isAbleToKill",
|
|
100
|
+
{
|
|
101
|
+
get = function(self)
|
|
102
|
+
return self:getOption(8)
|
|
103
|
+
end,
|
|
104
|
+
set = function(self, isAbleToKill)
|
|
105
|
+
self:setOption(8, isAbleToKill)
|
|
106
|
+
end
|
|
107
|
+
},
|
|
108
|
+
true
|
|
109
|
+
)
|
|
52
110
|
return ____exports
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class WebAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get airUnitLoweringDuration(): number[];
|
|
7
|
+
set airUnitLoweringDuration(airUnitLoweringDuration: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
get airUnitHeight(): number[];
|
|
9
|
+
set airUnitHeight(airUnitHeight: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
get meleeAttackRange(): number[];
|
|
11
|
+
set meleeAttackRange(meleeAttackRange: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
|
+
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
+
____exports.WebAbilityType = __TS__Class()
|
|
9
|
+
local WebAbilityType = ____exports.WebAbilityType
|
|
10
|
+
WebAbilityType.name = "WebAbilityType"
|
|
11
|
+
__TS__ClassExtends(WebAbilityType, AbilityType)
|
|
12
|
+
WebAbilityType.BASE_ID = fourCC("Aweb")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
WebAbilityType.prototype,
|
|
15
|
+
"airUnitLoweringDuration",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ens1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, airUnitLoweringDuration)
|
|
21
|
+
self:setNumberLevelField("Ens1", airUnitLoweringDuration)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
WebAbilityType.prototype,
|
|
28
|
+
"airUnitHeight",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Ens2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, airUnitHeight)
|
|
34
|
+
self:setNumberLevelField("Ens2", airUnitHeight)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
__TS__SetDescriptor(
|
|
40
|
+
WebAbilityType.prototype,
|
|
41
|
+
"meleeAttackRange",
|
|
42
|
+
{
|
|
43
|
+
get = function(self)
|
|
44
|
+
return self:getNumberLevelField("Ens3")
|
|
45
|
+
end,
|
|
46
|
+
set = function(self, meleeAttackRange)
|
|
47
|
+
self:setNumberLevelField("Ens3", meleeAttackRange)
|
|
48
|
+
end
|
|
49
|
+
},
|
|
50
|
+
true
|
|
51
|
+
)
|
|
52
|
+
return ____exports
|
|
@@ -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,15 @@ 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 targetEffectPresets(): TupleOf<
|
|
70
|
+
get targetEffectPresets(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
71
71
|
set targetEffectPresets(targetEffectPresets: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
|
|
72
|
-
get targetEffectPresetsSD(): TupleOf<
|
|
72
|
+
get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
73
73
|
set targetEffectPresetsSD(targetEffectPresetsSD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
|
|
74
|
-
get targetEffectPresetsHD(): TupleOf<
|
|
74
|
+
get targetEffectPresetsHD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
75
75
|
set targetEffectPresetsHD(targetEffectPresetsHD: TupleOf<AttachmentPresetInput, 0 | 1 | 2 | 3 | 4 | 5 | 6>);
|
|
76
76
|
get turnOffButtonPositionX(): number;
|
|
77
77
|
set turnOffButtonPositionX(buttonPositionX: number);
|
|
@@ -20,7 +20,7 @@ local mapIndexed = ____arrays.mapIndexed
|
|
|
20
20
|
local ____attachment_2Dpreset = require("engine.object-data.auxiliary.attachment-preset")
|
|
21
21
|
local extractAttachmentPresetInputModelPath = ____attachment_2Dpreset.extractAttachmentPresetInputModelPath
|
|
22
22
|
local extractAttachmentPresetInputNodeFQN = ____attachment_2Dpreset.extractAttachmentPresetInputNodeFQN
|
|
23
|
-
local
|
|
23
|
+
local toEffectPreset = ____attachment_2Dpreset.toEffectPreset
|
|
24
24
|
local ____combat_2Dclassification = require("engine.object-data.auxiliary.combat-classification")
|
|
25
25
|
local combatClassificationsToStringArray = ____combat_2Dclassification.combatClassificationsToStringArray
|
|
26
26
|
local stringArrayToCombatClassifications = ____combat_2Dclassification.stringArrayToCombatClassifications
|
|
@@ -35,6 +35,7 @@ local abilityTypeIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.abilit
|
|
|
35
35
|
local ____upgrade = require("engine.object-data.entry.upgrade")
|
|
36
36
|
local Upgrade = ____upgrade.Upgrade
|
|
37
37
|
local ____sound = require("core.types.sound")
|
|
38
|
+
local isSoundLabelCustom = ____sound.isSoundLabelCustom
|
|
38
39
|
local Sound3D = ____sound.Sound3D
|
|
39
40
|
local SoundSettings = ____sound.SoundSettings
|
|
40
41
|
local castAnimationFQNByAbilityTypeId = {}
|
|
@@ -118,7 +119,7 @@ __TS__SetDescriptor(
|
|
|
118
119
|
return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
119
120
|
end,
|
|
120
121
|
set = function(self, casterCastingEffectPresets)
|
|
121
|
-
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets,
|
|
122
|
+
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
|
|
122
123
|
end
|
|
123
124
|
},
|
|
124
125
|
true
|
|
@@ -131,7 +132,7 @@ __TS__SetDescriptor(
|
|
|
131
132
|
return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
132
133
|
end,
|
|
133
134
|
set = function(self, casterChannelingEffectPresets)
|
|
134
|
-
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets,
|
|
135
|
+
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
|
|
135
136
|
end
|
|
136
137
|
},
|
|
137
138
|
true
|
|
@@ -370,7 +371,7 @@ __TS__SetDescriptor(
|
|
|
370
371
|
return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
371
372
|
end,
|
|
372
373
|
set = function(self, targetCastingEffectPresets)
|
|
373
|
-
targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets,
|
|
374
|
+
targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
|
|
374
375
|
end
|
|
375
376
|
},
|
|
376
377
|
true
|
|
@@ -1005,6 +1006,12 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
|
|
|
1005
1006
|
)
|
|
1006
1007
|
end
|
|
1007
1008
|
end
|
|
1009
|
+
Unit.abilityChannelingStartEvent:addListener(function(caster, ability)
|
|
1010
|
+
local soundPresetId = ability:getField(ABILITY_SF_EFFECT_SOUND)
|
|
1011
|
+
if isSoundLabelCustom(soundPresetId) then
|
|
1012
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, caster)
|
|
1013
|
+
end
|
|
1014
|
+
end)
|
|
1008
1015
|
local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
|
|
1009
1016
|
return mapValues(
|
|
1010
1017
|
casterCastingEffectPresetsByAbilityTypeId,
|
|
@@ -1017,10 +1024,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
|
|
|
1017
1024
|
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1018
1025
|
)
|
|
1019
1026
|
end)
|
|
1027
|
+
local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1028
|
+
return mapValues(
|
|
1029
|
+
casterCastingEffectPresetsByAbilityTypeId,
|
|
1030
|
+
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
|
|
1031
|
+
)
|
|
1032
|
+
end)
|
|
1020
1033
|
local casterCastingEffectsByCaster = {}
|
|
1021
1034
|
local function handleAbilityCastingStartEvent(caster, ability)
|
|
1022
1035
|
local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1023
1036
|
local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1037
|
+
local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1024
1038
|
local effects = {}
|
|
1025
1039
|
if effectModelPaths ~= nil then
|
|
1026
1040
|
for i = 1, #effectModelPaths do
|
|
@@ -1029,7 +1043,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
|
|
|
1029
1043
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1030
1044
|
attachmentPoint = "origin"
|
|
1031
1045
|
end
|
|
1032
|
-
effects[i] = Effect:
|
|
1046
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1033
1047
|
end
|
|
1034
1048
|
end
|
|
1035
1049
|
casterCastingEffectsByCaster[caster] = effects
|
|
@@ -1060,10 +1074,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
|
|
|
1060
1074
|
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1061
1075
|
)
|
|
1062
1076
|
end)
|
|
1077
|
+
local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1078
|
+
return mapValues(
|
|
1079
|
+
casterChannelingEffectPresetsByAbilityTypeId,
|
|
1080
|
+
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
|
|
1081
|
+
)
|
|
1082
|
+
end)
|
|
1063
1083
|
local casterChannelingEffectsByCaster = {}
|
|
1064
1084
|
local function handleAbilityChannelingStartEvent(caster, ability)
|
|
1065
1085
|
local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1066
1086
|
local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1087
|
+
local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1067
1088
|
local effects = {}
|
|
1068
1089
|
if effectModelPaths ~= nil then
|
|
1069
1090
|
for i = 1, #effectModelPaths do
|
|
@@ -1072,7 +1093,7 @@ local function handleAbilityChannelingStartEvent(caster, ability)
|
|
|
1072
1093
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1073
1094
|
attachmentPoint = "origin"
|
|
1074
1095
|
end
|
|
1075
|
-
effects[i] = Effect:
|
|
1096
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1076
1097
|
end
|
|
1077
1098
|
end
|
|
1078
1099
|
casterChannelingEffectsByCaster[caster] = effects
|
|
@@ -121,6 +121,10 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
|
|
|
121
121
|
applicatorAbilityType.damagePerSecond = 0
|
|
122
122
|
applicatorAbilityType.movementSpeedDecreaseFactor = 0
|
|
123
123
|
applicatorAbilityType.attackSpeedDecreaseFactor = 0
|
|
124
|
+
applicatorAbilityType.isDamageStacking = false
|
|
125
|
+
applicatorAbilityType.isMovementSpeedFactorStacking = false
|
|
126
|
+
applicatorAbilityType.isAttackSpeedFactorStacking = false
|
|
127
|
+
applicatorAbilityType.isAbleToKill = false
|
|
124
128
|
applicatorAbilityType.buffTypeIds = {applicableBuffType.id, applicableBuffType.id}
|
|
125
129
|
applicatorAbilityTypeIdByApplicatorType[852173] = applicatorAbilityType.id
|
|
126
130
|
end
|
|
@@ -128,6 +132,7 @@ local applicatorAbilityTypeIdByApplicatorTypeByApplicableBuffTypeId, applicatorU
|
|
|
128
132
|
local applicatorAbilityType = prepareAbilityType(BerserkAbilityType, applicableBuffType)
|
|
129
133
|
applicatorAbilityType.attackSpeedIncreaseFactor = 0
|
|
130
134
|
applicatorAbilityType.movementSpeedIncreaseFactor = 0
|
|
135
|
+
applicatorAbilityType.receivedDamageIncreaseFactor = 0
|
|
131
136
|
applicatorAbilityType.buffTypeIds = {applicableBuffType.id}
|
|
132
137
|
if applicatorAbilityType.levelCount > 1 then
|
|
133
138
|
multilevelPhysicalPositiveApplicatorAbilityTypes[#multilevelPhysicalPositiveApplicatorAbilityTypes + 1] = applicatorAbilityType
|
|
@@ -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
|
|
@@ -23,8 +23,8 @@ export declare class UnitTypeWeapon {
|
|
|
23
23
|
private readonly unitType;
|
|
24
24
|
private readonly index;
|
|
25
25
|
private constructor();
|
|
26
|
-
get attackType(): AttackType;
|
|
27
|
-
set attackType(attackType: AttackType);
|
|
26
|
+
get attackType(): AttackType | undefined;
|
|
27
|
+
set attackType(attackType: AttackType | undefined);
|
|
28
28
|
get backSwingDuration(): number;
|
|
29
29
|
set backSwingDuration(backSwingDuration: number);
|
|
30
30
|
get cooldown(): number;
|