warscript 0.0.1-dev.46e7a52 → 0.0.1-dev.4724d95
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/frame.d.ts +1 -0
- package/core/types/frame.lua +112 -37
- package/core/types/handle.lua +6 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +2 -1
- package/core/types/player.lua +16 -12
- package/core/types/sound.lua +1 -1
- package/core/types/tileCell.d.ts +2 -1
- package/core/types/tileCell.lua +5 -0
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +10 -2
- package/engine/behavior.lua +157 -76
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +8 -2
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- package/engine/behaviour/ability.d.ts +11 -6
- package/engine/behaviour/ability.lua +31 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -5
- package/engine/behaviour/unit/stun-immunity.lua +6 -5
- package/engine/behaviour/unit.d.ts +7 -3
- package/engine/behaviour/unit.lua +101 -24
- package/engine/buff.d.ts +65 -18
- package/engine/buff.lua +351 -147
- package/engine/internal/ability.lua +15 -15
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item.d.ts +4 -5
- package/engine/internal/item.lua +37 -40
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.lua +12 -2
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +8 -0
- package/engine/internal/unit/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +2 -13
- package/engine/internal/unit.lua +79 -148
- package/engine/local-client.d.ts +6 -1
- package/engine/local-client.lua +60 -5
- 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/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +29 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +84 -4
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- 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/unit-type.d.ts +4 -0
- package/engine/object-data/entry/unit-type.lua +76 -32
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +10 -2
- package/engine/object-field.lua +268 -123
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +11 -3
- package/engine/standard/fields/unit.lua +15 -2
- package/engine/text-tag.lua +2 -1
- package/engine/unit.d.ts +5 -0
- package/engine/unit.lua +5 -0
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/network.lua +25 -1
- package/objutil/buff.lua +9 -7
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +27 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
package/engine/local-client.lua
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
4
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
5
|
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
5
6
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
6
|
-
local __TS__New = ____lualib.__TS__New
|
|
7
7
|
local ____exports = {}
|
|
8
|
+
local actualizeTargetingModeState
|
|
8
9
|
local ____unit = require("core.types.unit")
|
|
9
10
|
local Unit = ____unit.Unit
|
|
10
11
|
local ____event = require("event")
|
|
@@ -18,6 +19,8 @@ local ____timer = require("core.types.timer")
|
|
|
18
19
|
local Timer = ____timer.Timer
|
|
19
20
|
local ____color = require("core.types.color")
|
|
20
21
|
local Color = ____color.Color
|
|
22
|
+
local ____arrays = require("utility.arrays")
|
|
23
|
+
local array = ____arrays.array
|
|
21
24
|
local loadTOCFile = BlzLoadTOCFile
|
|
22
25
|
local getLocalClientWidth = BlzGetLocalClientWidth
|
|
23
26
|
local getLocalClientHeight = BlzGetLocalClientHeight
|
|
@@ -62,12 +65,16 @@ local function compareUnitsSelectionPriority(a, b)
|
|
|
62
65
|
end
|
|
63
66
|
local mainSelectedUnitChangeEvent
|
|
64
67
|
local previousMainSelectedUnit
|
|
68
|
+
local lastTargetingModeState = false
|
|
69
|
+
local targetingModeEnterEvent = __TS__New(Event)
|
|
70
|
+
local targetingModeLeaveEvent = __TS__New(Event)
|
|
71
|
+
local targetingModeStateChangeEvent = __TS__New(Event)
|
|
65
72
|
____exports.LocalClient = __TS__Class()
|
|
66
73
|
local LocalClient = ____exports.LocalClient
|
|
67
74
|
LocalClient.name = "LocalClient"
|
|
68
75
|
function LocalClient.prototype.____constructor(self)
|
|
69
76
|
end
|
|
70
|
-
function LocalClient.pingMinimap(self, x, y, duration, redOrColor,
|
|
77
|
+
function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrFlashy, blue, flashy)
|
|
71
78
|
if redOrColor == nil then
|
|
72
79
|
pingMinimap(x, y, duration)
|
|
73
80
|
elseif __TS__InstanceOf(redOrColor, Color) then
|
|
@@ -78,7 +85,7 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
|
|
|
78
85
|
redOrColor.r,
|
|
79
86
|
redOrColor.g,
|
|
80
87
|
redOrColor.b,
|
|
81
|
-
|
|
88
|
+
greenOrFlashy or false
|
|
82
89
|
)
|
|
83
90
|
else
|
|
84
91
|
pingMinimapEx(
|
|
@@ -86,9 +93,9 @@ function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraE
|
|
|
86
93
|
y,
|
|
87
94
|
duration,
|
|
88
95
|
redOrColor,
|
|
89
|
-
|
|
96
|
+
greenOrFlashy,
|
|
90
97
|
blue,
|
|
91
|
-
|
|
98
|
+
flashy or false
|
|
92
99
|
)
|
|
93
100
|
end
|
|
94
101
|
end
|
|
@@ -128,6 +135,13 @@ __TS__ObjectDefineProperty(
|
|
|
128
135
|
return isLocalClientActive()
|
|
129
136
|
end}
|
|
130
137
|
)
|
|
138
|
+
__TS__ObjectDefineProperty(
|
|
139
|
+
LocalClient,
|
|
140
|
+
"isMinimized",
|
|
141
|
+
{get = function(self)
|
|
142
|
+
return getLocalClientHeight() == 0
|
|
143
|
+
end}
|
|
144
|
+
)
|
|
131
145
|
__TS__ObjectDefineProperty(
|
|
132
146
|
LocalClient,
|
|
133
147
|
"mouseFocusUnit",
|
|
@@ -181,6 +195,16 @@ __TS__ObjectDefineProperty(
|
|
|
181
195
|
return mainSelectedUnitChangeEvent
|
|
182
196
|
end}
|
|
183
197
|
)
|
|
198
|
+
__TS__ObjectDefineProperty(
|
|
199
|
+
LocalClient,
|
|
200
|
+
"isInTargetingMode",
|
|
201
|
+
{get = function(self)
|
|
202
|
+
return actualizeTargetingModeState()
|
|
203
|
+
end}
|
|
204
|
+
)
|
|
205
|
+
LocalClient.targetingModeEnterEvent = targetingModeEnterEvent
|
|
206
|
+
LocalClient.targetingModeLeaveEvent = targetingModeLeaveEvent
|
|
207
|
+
LocalClient.targetingModeStateChangeEvent = targetingModeStateChangeEvent
|
|
184
208
|
LocalClient.onDisconnect = __TS__New(
|
|
185
209
|
TriggerEvent,
|
|
186
210
|
function(trigger)
|
|
@@ -188,6 +212,37 @@ LocalClient.onDisconnect = __TS__New(
|
|
|
188
212
|
end,
|
|
189
213
|
function() return end
|
|
190
214
|
)
|
|
215
|
+
local commandButtons = array(
|
|
216
|
+
12,
|
|
217
|
+
function(i) return Frame:byOrigin(ORIGIN_FRAME_COMMAND_BUTTON, i) end
|
|
218
|
+
)
|
|
219
|
+
local function getTargetingModeState()
|
|
220
|
+
for i = 0, 10 do
|
|
221
|
+
if commandButtons[i + 1].visible then
|
|
222
|
+
return false
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
return commandButtons[12].visible
|
|
226
|
+
end
|
|
227
|
+
actualizeTargetingModeState = function()
|
|
228
|
+
if getTargetingModeState() then
|
|
229
|
+
if not lastTargetingModeState then
|
|
230
|
+
lastTargetingModeState = true
|
|
231
|
+
Event.invoke(targetingModeEnterEvent)
|
|
232
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
233
|
+
end
|
|
234
|
+
return true
|
|
235
|
+
end
|
|
236
|
+
if lastTargetingModeState then
|
|
237
|
+
lastTargetingModeState = false
|
|
238
|
+
Event.invoke(targetingModeLeaveEvent)
|
|
239
|
+
Event.invoke(targetingModeStateChangeEvent)
|
|
240
|
+
end
|
|
241
|
+
return false
|
|
242
|
+
end
|
|
243
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
244
|
+
actualizeTargetingModeState()
|
|
245
|
+
end)
|
|
191
246
|
warpack.afterMapInit(function()
|
|
192
247
|
rawset(
|
|
193
248
|
____exports.LocalClient,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
|
-
____exports.UnitAttribute = UnitAttribute or ({})
|
|
2
|
+
____exports.UnitAttribute = ____exports.UnitAttribute or ({})
|
|
3
3
|
____exports.UnitAttribute.STRENGTH = 1
|
|
4
4
|
____exports.UnitAttribute[____exports.UnitAttribute.STRENGTH] = "STRENGTH"
|
|
5
5
|
____exports.UnitAttribute.INTELLIGENCE = 2
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
3
|
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ArmorBonusAbilityType extends AbilityType {
|
|
5
5
|
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
-
get
|
|
7
|
-
set
|
|
6
|
+
get armorBonus(): number[];
|
|
7
|
+
set armorBonus(armorBonus: ObjectDataEntryLevelFieldValueSupplier<number>);
|
|
8
8
|
}
|
|
@@ -5,20 +5,20 @@ local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
|
5
5
|
local ____exports = {}
|
|
6
6
|
local ____ability_2Dtype = require("engine.object-data.entry.ability-type")
|
|
7
7
|
local AbilityType = ____ability_2Dtype.AbilityType
|
|
8
|
-
____exports.
|
|
9
|
-
local
|
|
10
|
-
|
|
11
|
-
__TS__ClassExtends(
|
|
12
|
-
|
|
8
|
+
____exports.ArmorBonusAbilityType = __TS__Class()
|
|
9
|
+
local ArmorBonusAbilityType = ____exports.ArmorBonusAbilityType
|
|
10
|
+
ArmorBonusAbilityType.name = "ArmorBonusAbilityType"
|
|
11
|
+
__TS__ClassExtends(ArmorBonusAbilityType, AbilityType)
|
|
12
|
+
ArmorBonusAbilityType.BASE_ID = fourCC("AId1")
|
|
13
13
|
__TS__SetDescriptor(
|
|
14
|
-
|
|
15
|
-
"
|
|
14
|
+
ArmorBonusAbilityType.prototype,
|
|
15
|
+
"armorBonus",
|
|
16
16
|
{
|
|
17
17
|
get = function(self)
|
|
18
18
|
return self:getNumberLevelField("Idef")
|
|
19
19
|
end,
|
|
20
|
-
set = function(self,
|
|
21
|
-
self:setNumberLevelField("Idef",
|
|
20
|
+
set = function(self, armorBonus)
|
|
21
|
+
self:setNumberLevelField("Idef", armorBonus)
|
|
22
22
|
end
|
|
23
23
|
},
|
|
24
24
|
true
|
|
@@ -7,11 +7,14 @@ export declare class BlankConfigurableAbilityType extends ChannelAbilityType {
|
|
|
7
7
|
private readonly autoOrderTypeStringIdByTargetingType;
|
|
8
8
|
private _usesAttackAnimation;
|
|
9
9
|
private _isChanneling;
|
|
10
|
+
private _isPassive;
|
|
10
11
|
constructor(object: WarObject);
|
|
11
12
|
get usesAttackAnimation(): boolean;
|
|
12
13
|
set usesAttackAnimation(usesAttackAnimation: boolean);
|
|
13
14
|
get isChanneling(): boolean;
|
|
14
15
|
set isChanneling(isChanneling: boolean);
|
|
16
|
+
get isPassive(): boolean;
|
|
17
|
+
set isPassive(isPassive: boolean);
|
|
15
18
|
get targetingType(): ChannelAbilityTypeTargetingType[];
|
|
16
19
|
set targetingType(targetingType: ObjectDataEntryLevelFieldValueSupplier<ChannelAbilityTypeTargetingType>);
|
|
17
20
|
get baseOrderTypeStringId(): string[];
|
|
@@ -23,6 +23,8 @@ local ALLOWED_TARGETS_ABILITY_COMBAT_CLASSIFICATIONS_LEVEL_FIELD = ____ability.A
|
|
|
23
23
|
local AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD = ____ability.AREA_OF_EFFECT_ABILITY_FLOAT_LEVEL_FIELD
|
|
24
24
|
local ____linked_2Dset = require("utility.linked-set")
|
|
25
25
|
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
26
|
+
local ____pseudo_2Dpassive_2Dabilities = require("engine.internal.unit.pseudo-passive-abilities")
|
|
27
|
+
local compiletimePseudoPassiveAbilityTypeIds = ____pseudo_2Dpassive_2Dabilities.compiletimePseudoPassiveAbilityTypeIds
|
|
26
28
|
local isChannelingAbilityTypeIds = {}
|
|
27
29
|
local usesAttackAnimationByAbilityTypeId = {}
|
|
28
30
|
____exports.BlankConfigurableAbilityType = __TS__Class()
|
|
@@ -35,6 +37,7 @@ function BlankConfigurableAbilityType.prototype.____constructor(self, object)
|
|
|
35
37
|
self.autoOrderTypeStringIdByTargetingType = {}
|
|
36
38
|
self._usesAttackAnimation = false
|
|
37
39
|
self._isChanneling = false
|
|
40
|
+
self._isPassive = false
|
|
38
41
|
self.buttonPositionX = 0
|
|
39
42
|
self.buttonPositionY = 0
|
|
40
43
|
self.casterAttachmentPresets = {}
|
|
@@ -105,6 +108,24 @@ __TS__SetDescriptor(
|
|
|
105
108
|
},
|
|
106
109
|
true
|
|
107
110
|
)
|
|
111
|
+
__TS__SetDescriptor(
|
|
112
|
+
BlankConfigurableAbilityType.prototype,
|
|
113
|
+
"isPassive",
|
|
114
|
+
{
|
|
115
|
+
get = function(self)
|
|
116
|
+
return self._isPassive
|
|
117
|
+
end,
|
|
118
|
+
set = function(self, isPassive)
|
|
119
|
+
if isPassive then
|
|
120
|
+
compiletimePseudoPassiveAbilityTypeIds[self.id] = true
|
|
121
|
+
else
|
|
122
|
+
compiletimePseudoPassiveAbilityTypeIds[self.id] = nil
|
|
123
|
+
end
|
|
124
|
+
self._isPassive = isPassive
|
|
125
|
+
end
|
|
126
|
+
},
|
|
127
|
+
true
|
|
128
|
+
)
|
|
108
129
|
__TS__SetDescriptor(
|
|
109
130
|
BlankConfigurableAbilityType.prototype,
|
|
110
131
|
"targetingType",
|
|
@@ -209,6 +230,14 @@ do
|
|
|
209
230
|
end
|
|
210
231
|
)
|
|
211
232
|
end
|
|
233
|
+
local _ = postcompile(function()
|
|
234
|
+
for abilityTypeId in pairs(compiletimePseudoPassiveAbilityTypeIds) do
|
|
235
|
+
local abilityType = checkNotNull(____exports.BlankConfigurableAbilityType:of(abilityTypeId))
|
|
236
|
+
abilityType.hotkey = ""
|
|
237
|
+
abilityType.baseOrderTypeStringId = ""
|
|
238
|
+
abilityType.targetingType = 0
|
|
239
|
+
end
|
|
240
|
+
end)
|
|
212
241
|
for abilityTypeId, usesAttackAnimation in pairs(postcompile(function()
|
|
213
242
|
for abilityTypeId, usesAttackAnimation in pairs(usesAttackAnimationByAbilityTypeId) do
|
|
214
243
|
if usesAttackAnimation then
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class HealthBonusAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get healthBonus(): number[];
|
|
7
|
+
set healthBonus(healthBonus: 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.HealthBonusAbilityType = __TS__Class()
|
|
9
|
+
local HealthBonusAbilityType = ____exports.HealthBonusAbilityType
|
|
10
|
+
HealthBonusAbilityType.name = "HealthBonusAbilityType"
|
|
11
|
+
__TS__ClassExtends(HealthBonusAbilityType, AbilityType)
|
|
12
|
+
HealthBonusAbilityType.BASE_ID = fourCC("AIlf")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
HealthBonusAbilityType.prototype,
|
|
15
|
+
"healthBonus",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Ilif")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, healthBonus)
|
|
21
|
+
self:setNumberLevelField("Ilif", healthBonus)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class ManaBonusAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get manaBonus(): number[];
|
|
7
|
+
set manaBonus(manaBonus: 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.ManaBonusAbilityType = __TS__Class()
|
|
9
|
+
local ManaBonusAbilityType = ____exports.ManaBonusAbilityType
|
|
10
|
+
ManaBonusAbilityType.name = "ManaBonusAbilityType"
|
|
11
|
+
__TS__ClassExtends(ManaBonusAbilityType, AbilityType)
|
|
12
|
+
ManaBonusAbilityType.BASE_ID = fourCC("AImb")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
ManaBonusAbilityType.prototype,
|
|
15
|
+
"manaBonus",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Iman")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, manaBonus)
|
|
21
|
+
self:setNumberLevelField("Iman", manaBonus)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
return ____exports
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { AbilityType, AbilityTypeId } from "../ability-type";
|
|
3
|
+
import { ObjectDataEntryLevelFieldValueSupplier } from "../../entry";
|
|
4
|
+
export declare class ManaRegenerationAbilityType extends AbilityType {
|
|
5
|
+
static readonly BASE_ID: AbilityTypeId;
|
|
6
|
+
get manaRegenerationRateIncreaseFactor(): number[];
|
|
7
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: 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.ManaRegenerationAbilityType = __TS__Class()
|
|
9
|
+
local ManaRegenerationAbilityType = ____exports.ManaRegenerationAbilityType
|
|
10
|
+
ManaRegenerationAbilityType.name = "ManaRegenerationAbilityType"
|
|
11
|
+
__TS__ClassExtends(ManaRegenerationAbilityType, AbilityType)
|
|
12
|
+
ManaRegenerationAbilityType.BASE_ID = fourCC("AIrn")
|
|
13
|
+
__TS__SetDescriptor(
|
|
14
|
+
ManaRegenerationAbilityType.prototype,
|
|
15
|
+
"manaRegenerationRateIncreaseFactor",
|
|
16
|
+
{
|
|
17
|
+
get = function(self)
|
|
18
|
+
return self:getNumberLevelField("Imrp")
|
|
19
|
+
end,
|
|
20
|
+
set = function(self, manaRegenerationRateIncreaseFactor)
|
|
21
|
+
self:setNumberLevelField("Imrp", manaRegenerationRateIncreaseFactor)
|
|
22
|
+
end
|
|
23
|
+
},
|
|
24
|
+
true
|
|
25
|
+
)
|
|
26
|
+
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
|
|
@@ -67,6 +67,8 @@ export declare abstract class AbilityType extends ObjectDataEntry<AbilityTypeId>
|
|
|
67
67
|
set specialAttachmentPreset(specialAttachmentPreset: AttachmentPresetInput | undefined);
|
|
68
68
|
get targetCastingEffectPresets(): EffectPresetWithParameters[];
|
|
69
69
|
set targetCastingEffectPresets(targetCastingEffectPresets: AttachmentPresetInput[]);
|
|
70
|
+
get targetChannelingEffectPresets(): EffectPresetWithParameters[];
|
|
71
|
+
set targetChannelingEffectPresets(targetChannelingEffectPresets: EffectPresetWithParametersInput[]);
|
|
70
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
74
|
get targetEffectPresetsSD(): TupleOf<EffectPresetWithParameters, 0 | 1 | 2 | 3 | 4 | 5 | 6>;
|
|
@@ -45,6 +45,7 @@ local isButtonVisibleFalseAbilityTypes = {}
|
|
|
45
45
|
local casterCastingEffectPresetsByAbilityTypeId = {}
|
|
46
46
|
local casterChannelingEffectPresetsByAbilityTypeId = {}
|
|
47
47
|
local targetCastingEffectPresetsByAbilityTypeId = {}
|
|
48
|
+
local targetChannelingEffectPresetsByAbilityTypeId = {}
|
|
48
49
|
local targetEffectSoundPresetByAbilityTypeId = {}
|
|
49
50
|
____exports.AbilityType = __TS__Class()
|
|
50
51
|
local AbilityType = ____exports.AbilityType
|
|
@@ -378,6 +379,19 @@ __TS__SetDescriptor(
|
|
|
378
379
|
},
|
|
379
380
|
true
|
|
380
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)
|
|
391
|
+
end
|
|
392
|
+
},
|
|
393
|
+
true
|
|
394
|
+
)
|
|
381
395
|
__TS__SetDescriptor(
|
|
382
396
|
AbilityType.prototype,
|
|
383
397
|
"targetEffectPresets",
|
|
@@ -1099,18 +1113,84 @@ local function handleAbilityChannelingStartEvent(caster, ability)
|
|
|
1099
1113
|
end
|
|
1100
1114
|
casterChannelingEffectsByCaster[caster] = effects
|
|
1101
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
|
|
1102
1169
|
local function handleAbilityStopChannelingEvent(caster)
|
|
1103
|
-
local
|
|
1104
|
-
if
|
|
1105
|
-
for i = 1, #
|
|
1106
|
-
|
|
1170
|
+
local casterEffects = casterChannelingEffectsByCaster[caster]
|
|
1171
|
+
if casterEffects ~= nil then
|
|
1172
|
+
for i = 1, #casterEffects do
|
|
1173
|
+
casterEffects[i]:destroy()
|
|
1107
1174
|
end
|
|
1108
1175
|
casterChannelingEffectsByCaster[caster] = nil
|
|
1109
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
|
|
1110
1184
|
end
|
|
1111
1185
|
for abilityTypeId in pairs(casterChannelingEffectModelPathsByAbilityTypeId) do
|
|
1112
1186
|
Unit.abilityChannelingStartEvent[abilityTypeId]:addListener(4, handleAbilityChannelingStartEvent)
|
|
1113
1187
|
Unit.abilityChannelingFinishEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1114
1188
|
Unit.abilityStopEvent[abilityTypeId]:addListener(4, handleAbilityStopChannelingEvent)
|
|
1115
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
|
|
1116
1196
|
return ____exports
|