warscript 0.0.1-dev.aefeacb → 0.0.1-dev.b23de5c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +85 -44
- 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/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 +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +15 -6
- package/engine/behaviour/ability.lua +56 -21
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +58 -18
- package/engine/buff.lua +347 -150
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +18 -17
- package/engine/internal/item.lua +135 -49
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- 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/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +98 -9
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- 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/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+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +43 -25
- package/engine/internal/unit.lua +384 -260
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/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/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/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 +13 -11
- package/engine/object-data/entry/ability-type.lua +119 -17
- 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/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 +197 -85
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -6
- package/engine/object-field.lua +357 -118
- 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/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/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/package.json +2 -2
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +4 -1
- package/utility/linked-set.lua +43 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
import { UnitTypeId } from "../unit-type";
|
|
5
|
+
export declare class RaiseDeadAbilityType extends AbilityType {
|
|
6
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
7
|
+
get firstSummonedUnitCount(): number[];
|
|
8
|
+
set firstSummonedUnitCount(firstSummonedUnitCount: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
9
|
+
get secondSummonedUnitCount(): number[];
|
|
10
|
+
set secondSummonedUnitCount(secondSummonedUnitCount: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
11
|
+
get firstSummonedUnitTypeId(): UnitTypeId[];
|
|
12
|
+
set firstSummonedUnitTypeId(firstSummonedUnitTypeId: ObjectDataEntryLevelFieldValueSupplier<UnitTypeId>);
|
|
13
|
+
get secondSummonedUnitTypeId(): UnitTypeId[];
|
|
14
|
+
set secondSummonedUnitTypeId(secondSummonedUnitTypeId: ObjectDataEntryLevelFieldValueSupplier<UnitTypeId>);
|
|
15
|
+
get limitCheckUnitTypeId(): UnitTypeId[];
|
|
16
|
+
set limitCheckUnitTypeId(limitCheckUnitTypeId: ObjectDataEntryLevelFieldValueSupplier<UnitTypeId>);
|
|
17
|
+
}
|
|
@@ -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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class ReincarnationAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get reincarnationDelay(): number[];
|
|
7
|
+
set reincarnationDelay(reincarnationDelay: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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.ReincarnationAbilityType = __TS__Class()
|
|
9
|
+
local ReincarnationAbilityType = ____exports.ReincarnationAbilityType
|
|
10
|
+
ReincarnationAbilityType.name = "ReincarnationAbilityType"
|
|
11
|
+
__TS__ClassExtends(ReincarnationAbilityType, AbilityType)
|
|
12
|
+
ReincarnationAbilityType.BASE_ID = fourCC("AOre")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
ReincarnationAbilityType.prototype,
|
|
15
|
+
"reincarnationDelay",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ore1")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, reincarnationDelay)
|
|
21
|
+
self:setNumberLevelField("Ore1", reincarnationDelay)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
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,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);
|
|
@@ -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,13 +35,17 @@ 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
|
-
local
|
|
40
|
+
local SoundSettings = ____sound.SoundSettings
|
|
41
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
42
|
+
local luaSetOf = ____lua_2Dsets.luaSetOf
|
|
40
43
|
local castAnimationFQNByAbilityTypeId = {}
|
|
41
44
|
local isButtonVisibleFalseAbilityTypes = {}
|
|
42
45
|
local casterCastingEffectPresetsByAbilityTypeId = {}
|
|
43
46
|
local casterChannelingEffectPresetsByAbilityTypeId = {}
|
|
44
47
|
local targetCastingEffectPresetsByAbilityTypeId = {}
|
|
48
|
+
local targetChannelingEffectPresetsByAbilityTypeId = {}
|
|
45
49
|
local targetEffectSoundPresetByAbilityTypeId = {}
|
|
46
50
|
____exports.AbilityType = __TS__Class()
|
|
47
51
|
local AbilityType = ____exports.AbilityType
|
|
@@ -118,7 +122,7 @@ __TS__SetDescriptor(
|
|
|
118
122
|
return casterCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
119
123
|
end,
|
|
120
124
|
set = function(self, casterCastingEffectPresets)
|
|
121
|
-
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets,
|
|
125
|
+
casterCastingEffectPresetsByAbilityTypeId[self.id] = map(casterCastingEffectPresets, toEffectPreset)
|
|
122
126
|
end
|
|
123
127
|
},
|
|
124
128
|
true
|
|
@@ -131,7 +135,7 @@ __TS__SetDescriptor(
|
|
|
131
135
|
return casterChannelingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
132
136
|
end,
|
|
133
137
|
set = function(self, casterChannelingEffectPresets)
|
|
134
|
-
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets,
|
|
138
|
+
casterChannelingEffectPresetsByAbilityTypeId[self.id] = map(casterChannelingEffectPresets, toEffectPreset)
|
|
135
139
|
end
|
|
136
140
|
},
|
|
137
141
|
true
|
|
@@ -370,7 +374,20 @@ __TS__SetDescriptor(
|
|
|
370
374
|
return targetCastingEffectPresetsByAbilityTypeId[self.id] or ({})
|
|
371
375
|
end,
|
|
372
376
|
set = function(self, targetCastingEffectPresets)
|
|
373
|
-
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)
|
|
374
391
|
end
|
|
375
392
|
},
|
|
376
393
|
true
|
|
@@ -978,9 +995,7 @@ for abilityTypeId, animationFQN in pairs(postcompile(function() return castAnima
|
|
|
978
995
|
4,
|
|
979
996
|
function(caster, ability)
|
|
980
997
|
if ability:getField(ABILITY_RLF_CASTING_TIME) ~= 0 then
|
|
981
|
-
Timer:run(
|
|
982
|
-
caster:playAnimation(animationFQN)
|
|
983
|
-
end)
|
|
998
|
+
Timer:run(caster, "playAnimation", animationFQN)
|
|
984
999
|
end
|
|
985
1000
|
end
|
|
986
1001
|
)
|
|
@@ -991,20 +1006,27 @@ for abilityTypeId, soundPresetId in pairs(postcompile(function() return targetEf
|
|
|
991
1006
|
4,
|
|
992
1007
|
function(caster, ability, target)
|
|
993
1008
|
if __TS__InstanceOf(target, Unit) then
|
|
994
|
-
Sound3D:playFromLabel(soundPresetId,
|
|
1009
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target)
|
|
995
1010
|
else
|
|
996
|
-
Sound3D:playFromLabel(soundPresetId,
|
|
1011
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, target.x, target.y)
|
|
997
1012
|
end
|
|
998
1013
|
end
|
|
999
1014
|
)
|
|
1000
1015
|
Unit.abilityPointTargetChannelingStartEvent[abilityTypeId]:addListener(
|
|
1001
1016
|
4,
|
|
1002
1017
|
function(caster, ability, x, y)
|
|
1003
|
-
Sound3D:playFromLabel(soundPresetId,
|
|
1018
|
+
Sound3D:playFromLabel(soundPresetId, SoundSettings.Ability, x, y)
|
|
1004
1019
|
end
|
|
1005
1020
|
)
|
|
1006
1021
|
end
|
|
1007
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)
|
|
1008
1030
|
local casterCastingEffectModelPathsByAbilityTypeId = postcompile(function()
|
|
1009
1031
|
return mapValues(
|
|
1010
1032
|
casterCastingEffectPresetsByAbilityTypeId,
|
|
@@ -1017,10 +1039,17 @@ local casterCastingEffectAttachmentPointsByAbilityTypeId = postcompile(function(
|
|
|
1017
1039
|
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1018
1040
|
)
|
|
1019
1041
|
end)
|
|
1042
|
+
local casterCastingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1043
|
+
return mapValues(
|
|
1044
|
+
casterCastingEffectPresetsByAbilityTypeId,
|
|
1045
|
+
function(casterCastingEffectPresets) return map(casterCastingEffectPresets, "parameters") end
|
|
1046
|
+
)
|
|
1047
|
+
end)
|
|
1020
1048
|
local casterCastingEffectsByCaster = {}
|
|
1021
1049
|
local function handleAbilityCastingStartEvent(caster, ability)
|
|
1022
1050
|
local effectModelPaths = casterCastingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1023
1051
|
local attachmentPoints = casterCastingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1052
|
+
local parameters = casterCastingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1024
1053
|
local effects = {}
|
|
1025
1054
|
if effectModelPaths ~= nil then
|
|
1026
1055
|
for i = 1, #effectModelPaths do
|
|
@@ -1029,7 +1058,7 @@ local function handleAbilityCastingStartEvent(caster, ability)
|
|
|
1029
1058
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1030
1059
|
attachmentPoint = "origin"
|
|
1031
1060
|
end
|
|
1032
|
-
effects[i] = Effect:
|
|
1061
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1033
1062
|
end
|
|
1034
1063
|
end
|
|
1035
1064
|
casterCastingEffectsByCaster[caster] = effects
|
|
@@ -1060,10 +1089,17 @@ local casterChannelingEffectAttachmentPointsByAbilityTypeId = postcompile(functi
|
|
|
1060
1089
|
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, extractAttachmentPresetInputNodeFQN) end
|
|
1061
1090
|
)
|
|
1062
1091
|
end)
|
|
1092
|
+
local casterChannelingEffectParametersByAbilityTypeId = postcompile(function()
|
|
1093
|
+
return mapValues(
|
|
1094
|
+
casterChannelingEffectPresetsByAbilityTypeId,
|
|
1095
|
+
function(casterChannelingEffectPresets) return map(casterChannelingEffectPresets, "parameters") end
|
|
1096
|
+
)
|
|
1097
|
+
end)
|
|
1063
1098
|
local casterChannelingEffectsByCaster = {}
|
|
1064
1099
|
local function handleAbilityChannelingStartEvent(caster, ability)
|
|
1065
1100
|
local effectModelPaths = casterChannelingEffectModelPathsByAbilityTypeId[ability.typeId]
|
|
1066
1101
|
local attachmentPoints = casterChannelingEffectAttachmentPointsByAbilityTypeId[ability.typeId]
|
|
1102
|
+
local parameters = casterChannelingEffectParametersByAbilityTypeId[ability.typeId]
|
|
1067
1103
|
local effects = {}
|
|
1068
1104
|
if effectModelPaths ~= nil then
|
|
1069
1105
|
for i = 1, #effectModelPaths do
|
|
@@ -1072,23 +1108,89 @@ local function handleAbilityChannelingStartEvent(caster, ability)
|
|
|
1072
1108
|
if attachmentPoint == nil or attachmentPoint == "" then
|
|
1073
1109
|
attachmentPoint = "origin"
|
|
1074
1110
|
end
|
|
1075
|
-
effects[i] = Effect:
|
|
1111
|
+
effects[i] = Effect:create(effectModelPath, caster, attachmentPoint, parameters and parameters[i])
|
|
1076
1112
|
end
|
|
1077
1113
|
end
|
|
1078
1114
|
casterChannelingEffectsByCaster[caster] = effects
|
|
1079
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
|
|
1080
1169
|
local function handleAbilityStopChannelingEvent(caster)
|
|
1081
|
-
local
|
|
1082
|
-
if
|
|
1083
|
-
for i = 1, #
|
|
1084
|
-
|
|
1170
|
+
local casterEffects = casterChannelingEffectsByCaster[caster]
|
|
1171
|
+
if casterEffects ~= nil then
|
|
1172
|
+
for i = 1, #casterEffects do
|
|
1173
|
+
casterEffects[i]:destroy()
|
|
1085
1174
|
end
|
|
1086
1175
|
casterChannelingEffectsByCaster[caster] = nil
|
|
1087
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
|
|
1088
1184
|
end
|
|
1089
1185
|
for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
|
|
1090
1186
|
Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
|
|
1091
1187
|
Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1092
1188
|
Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1093
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
|
|
1094
1196
|
return ____exports
|
|
@@ -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
|