warscript 0.0.1-dev.70ae346 → 0.0.1-dev.738793
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +91 -46
- package/core/types/timer.d.ts +6 -7
- package/core/types/timer.lua +18 -21
- package/core/util.lua +6 -1
- package/decl/native.d.ts +840 -786
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +5 -1
- package/engine/behaviour/ability/damage.lua +2 -2
- package/engine/behaviour/ability/emulate-impact.lua +7 -0
- package/engine/behaviour/ability.d.ts +5 -1
- package/engine/behaviour/ability.lua +18 -4
- package/engine/behaviour/unit.d.ts +2 -0
- package/engine/buff.d.ts +13 -8
- package/engine/buff.lua +81 -50
- package/engine/internal/item.d.ts +2 -1
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/unit+damage.d.ts +1 -10
- package/engine/internal/unit+damage.lua +4 -13
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit.d.ts +14 -2
- package/engine/internal/unit.lua +54 -17
- 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/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/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/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -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/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 +13 -11
- package/engine/object-data/entry/ability-type.lua +65 -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/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 +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
|
@@ -0,0 +1,78 @@
|
|
|
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.RaiseDeadAbilityType = __TS__Class()
|
|
9
|
+
local RaiseDeadAbilityType = ____exports.RaiseDeadAbilityType
|
|
10
|
+
RaiseDeadAbilityType.name = "RaiseDeadAbilityType"
|
|
11
|
+
__TS__ClassExtends(RaiseDeadAbilityType, AbilityType)
|
|
12
|
+
RaiseDeadAbilityType.BASE_ID = fourCC("Arai")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
RaiseDeadAbilityType.prototype,
|
|
15
|
+
"firstSummonedUnitCount",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Rai1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, firstSummonedUnitCount)
|
|
21
|
+
self:setNumberLevelField("Rai1", firstSummonedUnitCount)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
__TS__SetDescriptor(
|
|
27
|
+
RaiseDeadAbilityType.prototype,
|
|
28
|
+
"secondSummonedUnitCount",
|
|
29
|
+
{
|
|
30
|
+
get = function(self)
|
|
31
|
+
return self:getNumberLevelField("Rai2")
|
|
32
|
+
end,
|
|
33
|
+
set = function(self, secondSummonedUnitCount)
|
|
34
|
+
self:setNumberLevelField("Rai2", secondSummonedUnitCount)
|
|
35
|
+
end
|
|
36
|
+
},
|
|
37
|
+
true
|
|
38
|
+
)
|
|
39
|
+
__TS__SetDescriptor(
|
|
40
|
+
RaiseDeadAbilityType.prototype,
|
|
41
|
+
"firstSummonedUnitTypeId",
|
|
42
|
+
{
|
|
43
|
+
get = function(self)
|
|
44
|
+
return self:getObjectDataEntryNumericIdLevelField("Rai3")
|
|
45
|
+
end,
|
|
46
|
+
set = function(self, firstSummonedUnitTypeId)
|
|
47
|
+
self:setObjectDataEntryNumericIdLevelField("Rai3", firstSummonedUnitTypeId)
|
|
48
|
+
end
|
|
49
|
+
},
|
|
50
|
+
true
|
|
51
|
+
)
|
|
52
|
+
__TS__SetDescriptor(
|
|
53
|
+
RaiseDeadAbilityType.prototype,
|
|
54
|
+
"secondSummonedUnitTypeId",
|
|
55
|
+
{
|
|
56
|
+
get = function(self)
|
|
57
|
+
return self:getObjectDataEntryNumericIdLevelField("Rai4")
|
|
58
|
+
end,
|
|
59
|
+
set = function(self, secondSummonedUnitTypeId)
|
|
60
|
+
self:setObjectDataEntryNumericIdLevelField("Rai4", secondSummonedUnitTypeId)
|
|
61
|
+
end
|
|
62
|
+
},
|
|
63
|
+
true
|
|
64
|
+
)
|
|
65
|
+
__TS__SetDescriptor(
|
|
66
|
+
RaiseDeadAbilityType.prototype,
|
|
67
|
+
"limitCheckUnitTypeId",
|
|
68
|
+
{
|
|
69
|
+
get = function(self)
|
|
70
|
+
return self:getObjectDataEntryNumericIdLevelField("Raiu")
|
|
71
|
+
end,
|
|
72
|
+
set = function(self, limitCheckUnitTypeId)
|
|
73
|
+
self:setObjectDataEntryNumericIdLevelField("Raiu", limitCheckUnitTypeId)
|
|
74
|
+
end
|
|
75
|
+
},
|
|
76
|
+
true
|
|
77
|
+
)
|
|
78
|
+
return ____exports
|
|
@@ -7,4 +7,8 @@ export declare class ShockWaveAbilityType extends AbilityType {
|
|
|
7
7
|
set damagePerTarget(damagePerTarget: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
8
|
get maximumTotalDamage(): number[];
|
|
9
9
|
set maximumTotalDamage(maximumTotalDamage: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
|
+
get distance(): number[];
|
|
11
|
+
set distance(distance: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
12
|
+
get finalAreaOfEffect(): number[];
|
|
13
|
+
set finalAreaOfEffect(finalAreaOfEffect: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
10
14
|
}
|
|
@@ -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);
|
|
@@ -115,6 +115,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
|
|
|
115
115
|
set casterEffectSoundPresetId(casterEffectSoundPresetId: SoundPresetId | undefined);
|
|
116
116
|
get casterEffectLoopingSoundPresetId(): SoundPresetId;
|
|
117
117
|
set casterEffectLoopingSoundPresetId(casterEffectLoopingSoundPresetId: SoundPresetId);
|
|
118
|
+
get targetEffectSoundPresetId(): SoundPresetId | undefined;
|
|
119
|
+
set targetEffectSoundPresetId(targetEffectSoundPresetId: SoundPresetId | undefined);
|
|
118
120
|
get allowedTargetCombatClassifications(): CombatClassifications[];
|
|
119
121
|
set allowedTargetCombatClassifications(allowedTargetCombatClassifications: ObjectDataEntryLevelFieldValueSupplier<CombatClassifications>);
|
|
120
122
|
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,16 @@ 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
|
|
36
41
|
local castAnimationFQNByAbilityTypeId = {}
|
|
37
42
|
local isButtonVisibleFalseAbilityTypes = {}
|
|
38
43
|
local casterCastingEffectPresetsByAbilityTypeId = {}
|
|
39
44
|
local casterChannelingEffectPresetsByAbilityTypeId = {}
|
|
40
45
|
local targetCastingEffectPresetsByAbilityTypeId = {}
|
|
46
|
+
local targetEffectSoundPresetByAbilityTypeId = {}
|
|
41
47
|
____exports.AbilityType = __TS__Class()
|
|
42
48
|
local AbilityType = ____exports.AbilityType
|
|
43
49
|
AbilityType.name = "AbilityType"
|
|
@@ -113,7 +119,7 @@ __TS__SetDescriptor(
|
|
|
113
119
|
return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
114
120
|
end,
|
|
115
121
|
set = function(self, casterCastingEffectPresets)
|
|
116
|
-
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets,
|
|
122
|
+
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
|
|
117
123
|
end
|
|
118
124
|
},
|
|
119
125
|
true
|
|
@@ -126,7 +132,7 @@ __TS__SetDescriptor(
|
|
|
126
132
|
return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
127
133
|
end,
|
|
128
134
|
set = function(self, casterChannelingEffectPresets)
|
|
129
|
-
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets,
|
|
135
|
+
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
|
|
130
136
|
end
|
|
131
137
|
},
|
|
132
138
|
true
|
|
@@ -365,7 +371,7 @@ __TS__SetDescriptor(
|
|
|
365
371
|
return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
366
372
|
end,
|
|
367
373
|
set = function(self, targetCastingEffectPresets)
|
|
368
|
-
targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets,
|
|
374
|
+
targetCastingEffectPresetsByAbilityTypeId[self.id] = map(targetCastingEffectPresets, toEffectPreset)
|
|
369
375
|
end
|
|
370
376
|
},
|
|
371
377
|
true
|
|
@@ -743,6 +749,19 @@ __TS__SetDescriptor(
|
|
|
743
749
|
},
|
|
744
750
|
true
|
|
745
751
|
)
|
|
752
|
+
__TS__SetDescriptor(
|
|
753
|
+
AbilityType.prototype,
|
|
754
|
+
"targetEffectSoundPresetId",
|
|
755
|
+
{
|
|
756
|
+
get = function(self)
|
|
757
|
+
return targetEffectSoundPresetByAbilityTypeId[self.id]
|
|
758
|
+
end,
|
|
759
|
+
set = function(self, targetEffectSoundPresetId)
|
|
760
|
+
targetEffectSoundPresetByAbilityTypeId[self.id] = targetEffectSoundPresetId
|
|
761
|
+
end
|
|
762
|
+
},
|
|
763
|
+
true
|
|
764
|
+
)
|
|
746
765
|
__TS__SetDescriptor(
|
|
747
766
|
AbilityType.prototype,
|
|
748
767
|
"allowedTargetCombatClassifications",
|
|
@@ -967,6 +986,32 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
|
|
|
967
986
|
end
|
|
968
987
|
)
|
|
969
988
|
end
|
|
989
|
+
for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEffectSoundPresetByAbilityTypeId end)) do
|
|
990
|
+
if soundPresetId ~= nil then
|
|
991
|
+
Unit.abilityWidgetTargetChannelingStartEvent[abilityTypeId]:addListener(
|
|
992
|
+
4,
|
|
993
|
+
function(caster, ability, target)
|
|
994
|
+
if __TS__InstanceOf(target, Unit) then
|
|
995
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
|
|
996
|
+
else
|
|
997
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
|
|
998
|
+
end
|
|
999
|
+
end
|
|
1000
|
+
)
|
|
1001
|
+
Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
|
|
1002
|
+
4,
|
|
1003
|
+
function(caster, ability, x, y)
|
|
1004
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
|
|
1005
|
+
end
|
|
1006
|
+
)
|
|
1007
|
+
end
|
|
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)
|
|
970
1015
|
local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
|
|
971
1016
|
return mapValues(
|
|
972
1017
|
casterCastingEffectPresetsByAbilityTypeId,
|
|
@@ -979,10 +1024,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
|
|
|
979
1024
|
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
980
1025
|
)
|
|
981
1026
|
end)
|
|
1027
|
+
local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1028
|
+
return mapValues(
|
|
1029
|
+
casterCastingEffectPresetsByAbilityTypeId,
|
|
1030
|
+
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
|
|
1031
|
+
)
|
|
1032
|
+
end)
|
|
982
1033
|
local casterCastingEffectsByCaster = {}
|
|
983
1034
|
local function handleAbilityCastingStartEvent(caster, ability)
|
|
984
1035
|
local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
985
1036
|
local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1037
|
+
local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
|
|
986
1038
|
local effects = {}
|
|
987
1039
|
if effectModelPaths ~= nil then
|
|
988
1040
|
for i = 1, #effectModelPaths do
|
|
@@ -991,7 +1043,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
|
|
|
991
1043
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
992
1044
|
attachmentPoint = "origin"
|
|
993
1045
|
end
|
|
994
|
-
effects[i] = Effect:
|
|
1046
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
995
1047
|
end
|
|
996
1048
|
end
|
|
997
1049
|
casterCastingEffectsByCaster[caster] = effects
|
|
@@ -1022,10 +1074,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
|
|
|
1022
1074
|
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1023
1075
|
)
|
|
1024
1076
|
end)
|
|
1077
|
+
local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1078
|
+
return mapValues(
|
|
1079
|
+
casterChannelingEffectPresetsByAbilityTypeId,
|
|
1080
|
+
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
|
|
1081
|
+
)
|
|
1082
|
+
end)
|
|
1025
1083
|
local casterChannelingEffectsByCaster = {}
|
|
1026
1084
|
local function handleAbilityChannelingStartEvent(caster, ability)
|
|
1027
1085
|
local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1028
1086
|
local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1087
|
+
local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1029
1088
|
local effects = {}
|
|
1030
1089
|
if effectModelPaths ~= nil then
|
|
1031
1090
|
for i = 1, #effectModelPaths do
|
|
@@ -1034,7 +1093,7 @@ local function handleAbilityChannelingStartEvent(caster, ability)
|
|
|
1034
1093
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1035
1094
|
attachmentPoint = "origin"
|
|
1036
1095
|
end
|
|
1037
|
-
effects[i] = Effect:
|
|
1096
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1038
1097
|
end
|
|
1039
1098
|
end
|
|
1040
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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { ObjectDataEntry, ObjectDataEntryId } from "../entry";
|
|
3
|
+
import { SoundEax } from "../auxiliary/sound-eax";
|
|
3
4
|
export type SoundPresetId = ObjectDataEntryId & string & {
|
|
4
5
|
readonly __soundPresetId: unique symbol;
|
|
5
6
|
};
|
|
@@ -13,4 +14,20 @@ export declare class SoundPreset extends ObjectDataEntry<SoundPresetId> {
|
|
|
13
14
|
protected static getObjectData(map: WarMap): WarObjects;
|
|
14
15
|
get filePaths(): string[];
|
|
15
16
|
set filePaths(filePaths: string[]);
|
|
17
|
+
get volume(): number;
|
|
18
|
+
set volume(volume: number);
|
|
19
|
+
get pitch(): number;
|
|
20
|
+
set pitch(pitch: number);
|
|
21
|
+
get priority(): number;
|
|
22
|
+
set priority(priority: number);
|
|
23
|
+
get channel(): number;
|
|
24
|
+
set channel(channel: number);
|
|
25
|
+
get minimumDistance(): number;
|
|
26
|
+
set minimumDistance(minimumDistance: number);
|
|
27
|
+
get maximumDistance(): number;
|
|
28
|
+
set maximumDistance(maximumDistance: number);
|
|
29
|
+
get distanceCutoff(): number;
|
|
30
|
+
set distanceCutoff(distanceCutoff: number);
|
|
31
|
+
get eax(): SoundEax;
|
|
32
|
+
set eax(eax: SoundEax);
|
|
16
33
|
}
|