warscript 0.0.1-dev.971c803 → 0.0.1-dev.989e1a3
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/config.d.ts +5 -0
- package/config.lua +10 -0
- 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 -24
- package/core/types/sound.lua +99 -24
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/util.lua +6 -1
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +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 +7 -2
- package/engine/behaviour/ability.lua +28 -22
- package/engine/behaviour/unit/stun-immunity.d.ts +11 -5
- package/engine/behaviour/unit/stun-immunity.lua +53 -28
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +259 -6
- package/engine/buff.d.ts +66 -45
- package/engine/buff.lua +344 -234
- 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 +20 -19
- package/engine/internal/item.lua +191 -74
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- package/engine/internal/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/add-item-to-slot.lua +4 -2
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- 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/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/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 +45 -14
- package/engine/internal/unit.d.ts +42 -17
- package/engine/internal/unit.lua +331 -165
- package/engine/lightning.d.ts +4 -3
- package/engine/lightning.lua +21 -12
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -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/tech-tree-dependency.d.ts +1 -1
- 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 +12 -1
- 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/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.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/feral-spirit.lua +2 -2
- 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/phoenix-morph.lua +4 -4
- 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/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- 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 +19 -17
- package/engine/object-data/entry/ability-type.lua +85 -24
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -2
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type.d.ts +1 -1
- package/engine/object-data/entry/item-type.lua +4 -4
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +25 -5
- package/engine/object-data/entry/unit-type.lua +258 -93
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- 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 +23 -6
- package/engine/object-field.lua +335 -118
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -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 +7 -0
- package/engine/standard/fields/unit.lua +13 -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 +3 -0
- package/engine/unit.lua +3 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +2 -3
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- 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-set.d.ts +2 -0
- package/utility/linked-set.lua +22 -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/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
3
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
5
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
6
|
local ____exports = {}
|
|
6
7
|
local ____behavior = require("engine.behavior")
|
|
@@ -9,17 +10,151 @@ local ____unit = require("engine.internal.unit")
|
|
|
9
10
|
local Unit = ____unit.Unit
|
|
10
11
|
require("engine.internal.unit+ability")
|
|
11
12
|
require("engine.internal.unit-missile-launch")
|
|
13
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
14
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
15
|
+
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
16
|
+
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
17
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
18
|
+
local ____lua_2Dsets = require("utility.lua-sets")
|
|
19
|
+
local mutableLuaSet = ____lua_2Dsets.mutableLuaSet
|
|
20
|
+
local ____bonus = require("engine.internal.unit.bonus")
|
|
21
|
+
local addOrUpdateOrRemoveUnitBonus = ____bonus.addOrUpdateOrRemoveUnitBonus
|
|
22
|
+
local getUnitBonus = ____bonus.getUnitBonus
|
|
23
|
+
local removeUnitBonus = ____bonus.removeUnitBonus
|
|
24
|
+
local safeCall = warpack.safeCall
|
|
25
|
+
local createBehaviorFunctionsByUnitTypeId = {}
|
|
26
|
+
local behaviorsByOwningPlayerEvent = {}
|
|
27
|
+
local listenerByBehaviorByOwningPlayerEvent = {}
|
|
28
|
+
local owningPlayerEventsByBehavior = {}
|
|
29
|
+
local behaviorsByInRangeUnitEvent = {}
|
|
30
|
+
local rangeByBehaviorByInRangeUnitEvent = {}
|
|
31
|
+
local listenerByBehaviorByInRangeUnitEvent = {}
|
|
32
|
+
local inRangeUnitEventsByBehavior = {}
|
|
12
33
|
____exports.UnitBehavior = __TS__Class()
|
|
13
34
|
local UnitBehavior = ____exports.UnitBehavior
|
|
14
35
|
UnitBehavior.name = "UnitBehavior"
|
|
15
36
|
__TS__ClassExtends(UnitBehavior, Behavior)
|
|
16
|
-
function UnitBehavior.prototype.____constructor(self, unit)
|
|
17
|
-
Behavior.prototype.____constructor(self, unit)
|
|
37
|
+
function UnitBehavior.prototype.____constructor(self, unit, priority)
|
|
38
|
+
Behavior.prototype.____constructor(self, unit, priority)
|
|
39
|
+
end
|
|
40
|
+
function UnitBehavior.prototype.onDestroy(self)
|
|
41
|
+
local owningPlayerEvents = owningPlayerEventsByBehavior[self]
|
|
42
|
+
if owningPlayerEvents ~= nil then
|
|
43
|
+
for event in pairs(owningPlayerEvents) do
|
|
44
|
+
local ____opt_0 = behaviorsByOwningPlayerEvent[event]
|
|
45
|
+
if ____opt_0 ~= nil then
|
|
46
|
+
____opt_0:remove(self)
|
|
47
|
+
end
|
|
48
|
+
local ____opt_2 = listenerByBehaviorByOwningPlayerEvent[event]
|
|
49
|
+
if ____opt_2 ~= nil then
|
|
50
|
+
____opt_2[self] = nil
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
owningPlayerEventsByBehavior[self] = nil
|
|
54
|
+
end
|
|
55
|
+
local inRangeUnitEvents = inRangeUnitEventsByBehavior[self]
|
|
56
|
+
if inRangeUnitEvents ~= nil then
|
|
57
|
+
for event in pairs(inRangeUnitEvents) do
|
|
58
|
+
local ____opt_4 = behaviorsByInRangeUnitEvent[event]
|
|
59
|
+
if ____opt_4 ~= nil then
|
|
60
|
+
____opt_4:remove(self)
|
|
61
|
+
end
|
|
62
|
+
local ____opt_6 = rangeByBehaviorByInRangeUnitEvent[event]
|
|
63
|
+
if ____opt_6 ~= nil then
|
|
64
|
+
____opt_6[self] = nil
|
|
65
|
+
end
|
|
66
|
+
local ____opt_8 = listenerByBehaviorByInRangeUnitEvent[event]
|
|
67
|
+
if ____opt_8 ~= nil then
|
|
68
|
+
____opt_8[self] = nil
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
inRangeUnitEventsByBehavior[self] = nil
|
|
72
|
+
end
|
|
73
|
+
if self._bonusIdByBonusType ~= nil then
|
|
74
|
+
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
75
|
+
removeUnitBonus(self.object, bonusType, bonusId)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
return Behavior.prototype.onDestroy(self)
|
|
79
|
+
end
|
|
80
|
+
function UnitBehavior.prototype.getUnitBonus(self, bonusType)
|
|
81
|
+
local ____opt_10 = self._bonusIdByBonusType
|
|
82
|
+
local bonusId = ____opt_10 and ____opt_10[bonusType]
|
|
83
|
+
return bonusId == nil and 0 or getUnitBonus(self.object, bonusType, bonusId)
|
|
84
|
+
end
|
|
85
|
+
function UnitBehavior.prototype.addOrUpdateOrRemoveUnitBonus(self, bonusType, value)
|
|
86
|
+
local bonusIdByBonusType = self._bonusIdByBonusType
|
|
87
|
+
if bonusIdByBonusType == nil then
|
|
88
|
+
bonusIdByBonusType = {}
|
|
89
|
+
self._bonusIdByBonusType = bonusIdByBonusType
|
|
90
|
+
end
|
|
91
|
+
bonusIdByBonusType[bonusType] = addOrUpdateOrRemoveUnitBonus(self.object, bonusType, bonusIdByBonusType[bonusType], value)
|
|
92
|
+
end
|
|
93
|
+
function UnitBehavior.prototype.registerOwningPlayerEvent(self, event, extractPlayer, listener)
|
|
94
|
+
local listenerByBehavior = getOrPut(listenerByBehaviorByOwningPlayerEvent, event, mutableLuaMap)
|
|
95
|
+
listenerByBehavior[self] = listener
|
|
96
|
+
getOrPut(inRangeUnitEventsByBehavior, self, mutableLuaSet)[event] = true
|
|
97
|
+
local behaviors = behaviorsByOwningPlayerEvent[event]
|
|
98
|
+
if behaviors == nil then
|
|
99
|
+
event:addListener(function(...)
|
|
100
|
+
local behaviors = behaviorsByOwningPlayerEvent[event]
|
|
101
|
+
if behaviors ~= nil then
|
|
102
|
+
local player = extractPlayer(...)
|
|
103
|
+
if player ~= nil then
|
|
104
|
+
for behavior in pairs(behaviors) do
|
|
105
|
+
if behavior.unit.owner == player then
|
|
106
|
+
safeCall(behavior[listenerByBehavior[behavior]], behavior, ...)
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end)
|
|
112
|
+
behaviors = __TS__New(LinkedSet)
|
|
113
|
+
behaviorsByOwningPlayerEvent[event] = behaviors
|
|
114
|
+
end
|
|
115
|
+
behaviors:add(self)
|
|
116
|
+
end
|
|
117
|
+
function UnitBehavior.prototype.registerInRangeUnitEvent(self, event, extractUnit, range, listener)
|
|
118
|
+
local rangeByBehavior = getOrPut(rangeByBehaviorByInRangeUnitEvent, event, mutableLuaMap)
|
|
119
|
+
rangeByBehavior[self] = range
|
|
120
|
+
local listenerByBehavior = getOrPut(listenerByBehaviorByInRangeUnitEvent, event, mutableLuaMap)
|
|
121
|
+
listenerByBehavior[self] = listener
|
|
122
|
+
getOrPut(inRangeUnitEventsByBehavior, self, mutableLuaSet)[event] = true
|
|
123
|
+
local behaviors = behaviorsByInRangeUnitEvent[event]
|
|
124
|
+
if behaviors == nil then
|
|
125
|
+
event:addListener(function(...)
|
|
126
|
+
local behaviors = behaviorsByInRangeUnitEvent[event]
|
|
127
|
+
if behaviors ~= nil then
|
|
128
|
+
local unit = extractUnit(...)
|
|
129
|
+
if unit ~= nil then
|
|
130
|
+
for behavior in pairs(behaviors) do
|
|
131
|
+
local range = rangeByBehavior[behavior]
|
|
132
|
+
if range ~= nil and unit:getCollisionDistanceTo(behavior.unit) <= range then
|
|
133
|
+
safeCall(behavior[listenerByBehavior[behavior]], behavior, ...)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end)
|
|
139
|
+
behaviors = __TS__New(LinkedSet)
|
|
140
|
+
behaviorsByInRangeUnitEvent[event] = behaviors
|
|
141
|
+
end
|
|
142
|
+
behaviors:add(self)
|
|
143
|
+
end
|
|
144
|
+
function UnitBehavior.prototype.onImmediateOrder(self, orderId)
|
|
145
|
+
end
|
|
146
|
+
function UnitBehavior.prototype.onTargetOrder(self, orderId, target)
|
|
147
|
+
end
|
|
148
|
+
function UnitBehavior.prototype.onPointOrder(self, orderId, x, y)
|
|
18
149
|
end
|
|
19
150
|
function UnitBehavior.prototype.onAutoAttackStart(self, target)
|
|
20
151
|
end
|
|
21
152
|
function UnitBehavior.prototype.onAutoAttackFinish(self, target)
|
|
22
153
|
end
|
|
154
|
+
function UnitBehavior.prototype.onTargetingAutoAttackStart(self, source)
|
|
155
|
+
end
|
|
156
|
+
function UnitBehavior.prototype.onTargetingAutoAttackFinish(self, source)
|
|
157
|
+
end
|
|
23
158
|
function UnitBehavior.prototype.onDamageDealing(self, target, event)
|
|
24
159
|
end
|
|
25
160
|
function UnitBehavior.prototype.onDamageDealt(self, target, event)
|
|
@@ -32,6 +167,34 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
32
167
|
end
|
|
33
168
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
34
169
|
end
|
|
170
|
+
function UnitBehavior.prototype.onAbilityChannelingStart(self, ability)
|
|
171
|
+
end
|
|
172
|
+
function UnitBehavior.prototype.onAbilityImpact(self, ability)
|
|
173
|
+
end
|
|
174
|
+
function UnitBehavior.prototype.onAbilityWidgetTargetImpact(self, ability, target)
|
|
175
|
+
end
|
|
176
|
+
function UnitBehavior.prototype.onAbilityUnitTargetImpact(self, ability, target)
|
|
177
|
+
end
|
|
178
|
+
function UnitBehavior.prototype.onAbilityItemTargetImpact(self, ability, target)
|
|
179
|
+
end
|
|
180
|
+
function UnitBehavior.prototype.onAbilityDestructibleTargetImpact(self, ability, target)
|
|
181
|
+
end
|
|
182
|
+
function UnitBehavior.prototype.onAbilityPointTargetImpact(self, ability, x, y)
|
|
183
|
+
end
|
|
184
|
+
function UnitBehavior.prototype.onAbilityNoTargetImpact(self, ability)
|
|
185
|
+
end
|
|
186
|
+
function UnitBehavior.prototype.onAbilityChannelingFinish(self, ability)
|
|
187
|
+
end
|
|
188
|
+
function UnitBehavior.prototype.onAbilityStop(self, ability)
|
|
189
|
+
end
|
|
190
|
+
function UnitBehavior.prototype.onTargetingAbilityChannelingStart(self, ability, source)
|
|
191
|
+
end
|
|
192
|
+
function UnitBehavior.prototype.onTargetingAbilityImpact(self, ability, source)
|
|
193
|
+
end
|
|
194
|
+
function UnitBehavior.prototype.onBuffGained(self, buff)
|
|
195
|
+
end
|
|
196
|
+
function UnitBehavior.prototype.onBuffLost(self, buff)
|
|
197
|
+
end
|
|
35
198
|
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
36
199
|
end
|
|
37
200
|
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
@@ -40,10 +203,29 @@ function UnitBehavior.prototype.onItemUsed(self, item)
|
|
|
40
203
|
end
|
|
41
204
|
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
42
205
|
end
|
|
206
|
+
function UnitBehavior.prototype.onItemChargesChanged(self, item)
|
|
207
|
+
end
|
|
43
208
|
function UnitBehavior.prototype.onKill(self, target)
|
|
44
209
|
end
|
|
45
210
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
46
211
|
end
|
|
212
|
+
function UnitBehavior.prototype.onOwnerChange(self, previousOwner)
|
|
213
|
+
end
|
|
214
|
+
function UnitBehavior.bindUnitType(self, unitTypeId, ...)
|
|
215
|
+
local args = {...}
|
|
216
|
+
local createBehaviorFunctions = createBehaviorFunctionsByUnitTypeId[unitTypeId]
|
|
217
|
+
if createBehaviorFunctions == nil then
|
|
218
|
+
createBehaviorFunctions = {}
|
|
219
|
+
createBehaviorFunctionsByUnitTypeId[unitTypeId] = createBehaviorFunctions
|
|
220
|
+
end
|
|
221
|
+
createBehaviorFunctions[#createBehaviorFunctions + 1] = function(unit)
|
|
222
|
+
return __TS__New(
|
|
223
|
+
self,
|
|
224
|
+
unit,
|
|
225
|
+
table.unpack(args)
|
|
226
|
+
)
|
|
227
|
+
end
|
|
228
|
+
end
|
|
47
229
|
__TS__SetDescriptor(
|
|
48
230
|
UnitBehavior.prototype,
|
|
49
231
|
"unit",
|
|
@@ -53,11 +235,28 @@ __TS__SetDescriptor(
|
|
|
53
235
|
true
|
|
54
236
|
);
|
|
55
237
|
(function(self)
|
|
238
|
+
Unit.onImmediateOrder:addListener(function(source, orderId)
|
|
239
|
+
____exports.UnitBehavior:forAll(source, "onImmediateOrder", orderId)
|
|
240
|
+
end)
|
|
241
|
+
Unit.onTargetOrder:addListener(function(source, orderId, target)
|
|
242
|
+
____exports.UnitBehavior:forAll(source, "onTargetOrder", orderId, target)
|
|
243
|
+
end)
|
|
244
|
+
Unit.onPointOrder:addListener(function(source, orderId, x, y)
|
|
245
|
+
____exports.UnitBehavior:forAll(
|
|
246
|
+
source,
|
|
247
|
+
"onPointOrder",
|
|
248
|
+
orderId,
|
|
249
|
+
x,
|
|
250
|
+
y
|
|
251
|
+
)
|
|
252
|
+
end)
|
|
56
253
|
Unit.autoAttackStartEvent:addListener(function(source, target)
|
|
57
254
|
____exports.UnitBehavior:forAll(source, "onAutoAttackStart", target)
|
|
255
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackStart", source)
|
|
58
256
|
end)
|
|
59
257
|
Unit.autoAttackFinishEvent:addListener(function(source, target)
|
|
60
258
|
____exports.UnitBehavior:forAll(source, "onAutoAttackFinish", target)
|
|
259
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackFinish", source)
|
|
61
260
|
end)
|
|
62
261
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
63
262
|
if source ~= nil then
|
|
@@ -71,11 +270,51 @@ __TS__SetDescriptor(
|
|
|
71
270
|
end
|
|
72
271
|
____exports.UnitBehavior:forAll(target, "onDamageReceived", source, event)
|
|
73
272
|
end)
|
|
74
|
-
Unit.abilityGainedEvent:addListener(function(source,
|
|
75
|
-
____exports.UnitBehavior:forAll(source, "onAbilityGained",
|
|
273
|
+
Unit.abilityGainedEvent:addListener(function(source, ability)
|
|
274
|
+
____exports.UnitBehavior:forAll(source, "onAbilityGained", ability)
|
|
275
|
+
end)
|
|
276
|
+
Unit.abilityLostEvent:addListener(function(source, ability)
|
|
277
|
+
____exports.UnitBehavior:forAll(source, "onAbilityLost", ability)
|
|
278
|
+
end)
|
|
279
|
+
Unit.abilityChannelingStartEvent:addListener(function(source, ability)
|
|
280
|
+
____exports.UnitBehavior:forAll(source, "onAbilityChannelingStart", ability)
|
|
281
|
+
end)
|
|
282
|
+
Unit.abilityUnitTargetChannelingStartEvent:addListener(function(source, ability, target)
|
|
283
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAbilityChannelingStart", ability, source)
|
|
76
284
|
end)
|
|
77
|
-
Unit.
|
|
78
|
-
____exports.UnitBehavior:forAll(source, "
|
|
285
|
+
Unit.abilityImpactEvent:addListener(function(source, ability)
|
|
286
|
+
____exports.UnitBehavior:forAll(source, "onAbilityImpact", ability)
|
|
287
|
+
end)
|
|
288
|
+
Unit.abilityWidgetTargetImpactEvent:addListener(function(source, ability, target)
|
|
289
|
+
____exports.UnitBehavior:forAll(source, "onAbilityWidgetTargetImpact", ability, target)
|
|
290
|
+
end)
|
|
291
|
+
Unit.abilityUnitTargetImpactEvent:addListener(function(source, ability, target)
|
|
292
|
+
____exports.UnitBehavior:forAll(source, "onAbilityUnitTargetImpact", ability, target)
|
|
293
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAbilityImpact", ability, source)
|
|
294
|
+
end)
|
|
295
|
+
Unit.abilityItemTargetImpactEvent:addListener(function(source, ability, target)
|
|
296
|
+
____exports.UnitBehavior:forAll(source, "onAbilityItemTargetImpact", ability, target)
|
|
297
|
+
end)
|
|
298
|
+
Unit.abilityDestructibleTargetImpactEvent:addListener(function(source, ability, target)
|
|
299
|
+
____exports.UnitBehavior:forAll(source, "onAbilityDestructibleTargetImpact", ability, target)
|
|
300
|
+
end)
|
|
301
|
+
Unit.abilityPointTargetImpactEvent:addListener(function(source, ability, x, y)
|
|
302
|
+
____exports.UnitBehavior:forAll(
|
|
303
|
+
source,
|
|
304
|
+
"onAbilityPointTargetImpact",
|
|
305
|
+
ability,
|
|
306
|
+
x,
|
|
307
|
+
y
|
|
308
|
+
)
|
|
309
|
+
end)
|
|
310
|
+
Unit.abilityNoTargetImpactEvent:addListener(function(source, ability)
|
|
311
|
+
____exports.UnitBehavior:forAll(source, "onAbilityNoTargetImpact", ability)
|
|
312
|
+
end)
|
|
313
|
+
Unit.abilityChannelingFinishEvent:addListener(function(source, ability)
|
|
314
|
+
____exports.UnitBehavior:forAll(source, "onAbilityChannelingFinish", ability)
|
|
315
|
+
end)
|
|
316
|
+
Unit.abilityStopEvent:addListener(function(source, ability)
|
|
317
|
+
____exports.UnitBehavior:forAll(source, "onAbilityStop", ability)
|
|
79
318
|
end)
|
|
80
319
|
Unit.deathEvent:addListener(function(target, source)
|
|
81
320
|
if source ~= nil then
|
|
@@ -95,7 +334,21 @@ __TS__SetDescriptor(
|
|
|
95
334
|
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
96
335
|
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
97
336
|
end)
|
|
337
|
+
Unit.itemChargesChangedEvent:addListener(function(unit, item)
|
|
338
|
+
____exports.UnitBehavior:forAll(unit, "onItemChargesChanged", item)
|
|
339
|
+
end)
|
|
340
|
+
Unit.onOwnerChange:addListener(function(unit, previousOwner)
|
|
341
|
+
____exports.UnitBehavior:forAll(unit, "onOwnerChange", previousOwner)
|
|
342
|
+
end)
|
|
98
343
|
end)(UnitBehavior)
|
|
344
|
+
Unit.onCreate:addListener(function(unit)
|
|
345
|
+
local createBehaviorFunctions = createBehaviorFunctionsByUnitTypeId[unit.typeId]
|
|
346
|
+
if createBehaviorFunctions ~= nil then
|
|
347
|
+
for ____, createBehavior in ipairs(createBehaviorFunctions) do
|
|
348
|
+
createBehavior(unit)
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end)
|
|
99
352
|
Unit.destroyEvent:addListener(function(unit)
|
|
100
353
|
____exports.UnitBehavior:forAll(unit, "destroy")
|
|
101
354
|
end)
|
package/engine/buff.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { UnitBehavior } from "./behaviour/unit";
|
|
|
13
13
|
import type { Widget } from "../core/types/widget";
|
|
14
14
|
import { Destructor } from "../destroyable";
|
|
15
15
|
import { Event } from "../event";
|
|
16
|
+
import { AbilityBehavior } from "./behaviour/ability";
|
|
16
17
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
17
18
|
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
18
19
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
@@ -56,13 +57,16 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
56
57
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
57
58
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
58
59
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
60
|
+
manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
|
|
59
61
|
evasionProbability?: NumberParameterValueType;
|
|
62
|
+
missProbability?: NumberParameterValueType;
|
|
60
63
|
damageFactor?: NumberParameterValueType;
|
|
61
64
|
receivedDamageFactor?: NumberParameterValueType;
|
|
62
65
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
63
66
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
64
67
|
maximumRemainingDuration?: NumberParameterValueType;
|
|
65
68
|
maximumDuration?: NumberParameterValueType;
|
|
69
|
+
turnsIntoGhost?: BooleanParameterValueType;
|
|
66
70
|
stuns?: BooleanParameterValueType;
|
|
67
71
|
ignoresStunImmunity?: BooleanParameterValueType;
|
|
68
72
|
providesStunImmunity?: BooleanParameterValueType;
|
|
@@ -77,49 +81,55 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
77
81
|
healingOnExpiration?: NumberParameterValueType;
|
|
78
82
|
killsOnExpiration?: BooleanParameterValueType;
|
|
79
83
|
explodesOnExpiration?: BooleanParameterValueType;
|
|
84
|
+
abilityCooldownFactor?: NumberParameterValueType;
|
|
80
85
|
uniqueGroup?: BuffUniqueGroup;
|
|
81
86
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
82
87
|
declare const enum BuffPropertyKey {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
88
|
+
STATE = 100,
|
|
89
|
+
UNIT = 101,
|
|
90
|
+
SOURCE = 102,
|
|
91
|
+
DURATION = 103,
|
|
92
|
+
UNIQUE_GROUP = 104,
|
|
93
|
+
EFFECT_MODEL_PATH = 105,
|
|
94
|
+
SPECIAL_EFFECT_MODEL_PATH = 106,
|
|
95
|
+
DURATION_INCREASE_ON_AUTO_ATTACK = 107,
|
|
96
|
+
MAXIMUM_DURATION = 108,
|
|
97
|
+
MAXIMUM_REMAINING_DURATION = 109,
|
|
98
|
+
DAMAGE_OVER_DURATION = 110,
|
|
99
|
+
DAMAGE_PER_INTERVAL = 111,
|
|
100
|
+
DAMAGE_INTERVAL = 112,
|
|
101
|
+
REMAINING_DAMAGE_OVER_DURATION = 113,
|
|
102
|
+
DAMAGE_INTERVAL_TIMER = 114,
|
|
103
|
+
HEALING_OVER_DURATION = 115,
|
|
104
|
+
HEALING_PER_INTERVAL = 116,
|
|
105
|
+
HEALING_INTERVAL = 117,
|
|
106
|
+
REMAINING_HEALING_OVER_DURATION = 118,
|
|
107
|
+
HEALING_INTERVAL_TIMER = 119,
|
|
108
|
+
DAMAGE_ON_EXPIRATION = 120,
|
|
109
|
+
HEALING_ON_EXPIRATION = 121,
|
|
110
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
|
|
111
|
+
DAMAGE_UPON_DEATH = 123,
|
|
112
|
+
DAMAGE_UPON_DEATH_RANGE = 124,
|
|
113
|
+
MEDIUM_DAMAGE_UPON_DEATH = 125,
|
|
114
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
|
|
115
|
+
SMALL_DAMAGE_UPON_DEATH = 127,
|
|
116
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
|
|
117
|
+
AUTO_ATTACK_COUNT = 129,
|
|
118
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 130,
|
|
119
|
+
DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
120
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
|
|
121
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
122
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
|
|
123
|
+
TURNS_INTO_GHOST = 135,
|
|
124
|
+
STUNS = 136,
|
|
125
|
+
IGNORES_STUN_IMMUNITY = 137,
|
|
126
|
+
DISABLES_AUTO_ATTACK = 138,
|
|
127
|
+
PROVIDES_INVULNERABILITY = 139,
|
|
128
|
+
KILLS_ON_EXPIRATION = 140,
|
|
129
|
+
EXPLODES_ON_EXPIRATION = 141,
|
|
130
|
+
MISS_PROBABILITY = 142,
|
|
131
|
+
ABILITY_COOLDOWN_FACTOR = 143,
|
|
132
|
+
ABILITY_COOLDOWN_MODIFIER = 144
|
|
123
133
|
}
|
|
124
134
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
125
135
|
LEAST_DURATION = 0
|
|
@@ -133,13 +143,14 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
|
|
|
133
143
|
polarity: BuffPolarityParameterType,
|
|
134
144
|
resistanceType: BuffResistanceTypeParameterType,
|
|
135
145
|
...abilityOrParameters: [
|
|
136
|
-
ability
|
|
146
|
+
ability?: Ability | AbilityBehavior,
|
|
137
147
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
138
148
|
] | [parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>]
|
|
139
149
|
];
|
|
140
150
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
141
151
|
private _unit;
|
|
142
152
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
153
|
+
private [BuffPropertyKey.STATE];
|
|
143
154
|
private [BuffPropertyKey.UNIT];
|
|
144
155
|
private [BuffPropertyKey.SOURCE]?;
|
|
145
156
|
private [BuffPropertyKey.DURATION];
|
|
@@ -174,12 +185,15 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
174
185
|
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
175
186
|
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
176
187
|
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
188
|
+
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
177
189
|
private [BuffPropertyKey.STUNS]?;
|
|
178
190
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
179
191
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
180
192
|
private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
|
|
181
193
|
private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
|
|
182
194
|
private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
|
|
195
|
+
private [BuffPropertyKey.ABILITY_COOLDOWN_FACTOR]?;
|
|
196
|
+
private [BuffPropertyKey.ABILITY_COOLDOWN_MODIFIER]?;
|
|
183
197
|
protected static readonly defaultParameters: BuffParameters;
|
|
184
198
|
get source(): Unit;
|
|
185
199
|
readonly typeId: ApplicableBuffTypeId;
|
|
@@ -193,11 +207,9 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
193
207
|
private readonly _level?;
|
|
194
208
|
private readonly _spellStealPriority?;
|
|
195
209
|
private readonly _learnLevelMinimum?;
|
|
196
|
-
private
|
|
210
|
+
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
197
211
|
private readonly _abilityTypeIds?;
|
|
198
212
|
private _behaviors?;
|
|
199
|
-
private getUnitBonus;
|
|
200
|
-
private addOrUpdateOrRemoveUnitBonus;
|
|
201
213
|
constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
|
|
202
214
|
get level(): number;
|
|
203
215
|
get remainingDamageOverDuration(): number;
|
|
@@ -226,6 +238,8 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
226
238
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
227
239
|
get armorIncrease(): number;
|
|
228
240
|
set armorIncrease(armorIncrease: number);
|
|
241
|
+
get turnsIntoGhost(): boolean;
|
|
242
|
+
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
229
243
|
get stuns(): boolean;
|
|
230
244
|
set stuns(stuns: boolean);
|
|
231
245
|
get ignoresStunImmunity(): boolean;
|
|
@@ -252,9 +266,15 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
252
266
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
253
267
|
get evasionProbability(): number;
|
|
254
268
|
set evasionProbability(evasionProbability: number);
|
|
269
|
+
get manaRegenerationRateIncreaseFactor(): number;
|
|
270
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
|
|
255
271
|
get duration(): number;
|
|
256
272
|
get remainingDuration(): number;
|
|
257
273
|
set remainingDuration(remainingDuration: number);
|
|
274
|
+
get abilityCooldownFactor(): number;
|
|
275
|
+
set abilityCooldownFactor(abilityCooldownFactor: number);
|
|
276
|
+
onAbilityGained(ability: Ability): void;
|
|
277
|
+
onAbilityLost(ability: Ability): void;
|
|
258
278
|
flashEffect(...parameters: [
|
|
259
279
|
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
260
280
|
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
@@ -268,6 +288,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
268
288
|
onDeath(source: Unit | undefined): void;
|
|
269
289
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
270
290
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
271
|
-
static readonly
|
|
291
|
+
static readonly createdEvent: Event<[Buff<object>]>;
|
|
292
|
+
static readonly beingDestroyedEvent: Event<[Buff<object>]>;
|
|
272
293
|
}
|
|
273
294
|
export {};
|