warscript 0.0.1-dev.7821093 → 0.0.1-dev.78e14b3
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 +71 -22
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- 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 +100 -25
- 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 +12 -3
- package/engine/behaviour/ability/damage.lua +33 -39
- 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 +109 -54
- package/engine/buff.lua +526 -290
- 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/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +14 -17
- package/engine/internal/item.lua +118 -69
- 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.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/armor-bonus.d.ts +2 -0
- 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.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 +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/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+bonus.lua +3 -3
- 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/lightning.d.ts +4 -3
- package/engine/lightning.lua +21 -12
- package/engine/local-client.d.ts +7 -0
- package/engine/local-client.lua +86 -1
- 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/{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/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/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/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/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/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 +21 -17
- package/engine/object-data/entry/ability-type.lua +169 -28
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- 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 +9 -8
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +360 -119
- 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/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/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- 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/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.lua +1 -4
- package/package.json +5 -5
- 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/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
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/damage-metadata-by-target.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
|
@@ -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,161 @@ 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 ____linked_2Dmap = require("utility.linked-map")
|
|
25
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
26
|
+
local safeCall = warpack.safeCall
|
|
27
|
+
local createBehaviorFunctionsByUnitTypeId = {}
|
|
28
|
+
local behaviorsByOwningPlayerEvent = {}
|
|
29
|
+
local listenerByBehaviorByOwningPlayerEvent = {}
|
|
30
|
+
local owningPlayerEventsByBehavior = {}
|
|
31
|
+
local behaviorsByInRangeUnitEvent = {}
|
|
32
|
+
local rangeByBehaviorByInRangeUnitEvent = {}
|
|
33
|
+
local listenerByBehaviorByInRangeUnitEvent = {}
|
|
34
|
+
local inRangeUnitEventsByBehavior = {}
|
|
12
35
|
____exports.UnitBehavior = __TS__Class()
|
|
13
36
|
local UnitBehavior = ____exports.UnitBehavior
|
|
14
37
|
UnitBehavior.name = "UnitBehavior"
|
|
15
38
|
__TS__ClassExtends(UnitBehavior, Behavior)
|
|
16
|
-
function UnitBehavior.prototype.____constructor(self, unit)
|
|
17
|
-
Behavior.prototype.____constructor(self, unit)
|
|
39
|
+
function UnitBehavior.prototype.____constructor(self, unit, priority)
|
|
40
|
+
Behavior.prototype.____constructor(self, unit, priority)
|
|
41
|
+
end
|
|
42
|
+
function UnitBehavior.prototype.onDestroy(self)
|
|
43
|
+
local owningPlayerEvents = owningPlayerEventsByBehavior[self]
|
|
44
|
+
if owningPlayerEvents ~= nil then
|
|
45
|
+
for event in pairs(owningPlayerEvents) do
|
|
46
|
+
local ____opt_0 = behaviorsByOwningPlayerEvent[event]
|
|
47
|
+
if ____opt_0 ~= nil then
|
|
48
|
+
____opt_0:remove(self)
|
|
49
|
+
end
|
|
50
|
+
local ____opt_2 = listenerByBehaviorByOwningPlayerEvent[event]
|
|
51
|
+
if ____opt_2 ~= nil then
|
|
52
|
+
____opt_2[self] = nil
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
owningPlayerEventsByBehavior[self] = nil
|
|
56
|
+
end
|
|
57
|
+
local inRangeUnitEvents = inRangeUnitEventsByBehavior[self]
|
|
58
|
+
if inRangeUnitEvents ~= nil then
|
|
59
|
+
for event in pairs(inRangeUnitEvents) do
|
|
60
|
+
local ____opt_4 = behaviorsByInRangeUnitEvent[event]
|
|
61
|
+
if ____opt_4 ~= nil then
|
|
62
|
+
____opt_4:remove(self)
|
|
63
|
+
end
|
|
64
|
+
local ____opt_6 = rangeByBehaviorByInRangeUnitEvent[event]
|
|
65
|
+
if ____opt_6 ~= nil then
|
|
66
|
+
____opt_6[self] = nil
|
|
67
|
+
end
|
|
68
|
+
local ____opt_8 = listenerByBehaviorByInRangeUnitEvent[event]
|
|
69
|
+
if ____opt_8 ~= nil then
|
|
70
|
+
____opt_8[self] = nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
inRangeUnitEventsByBehavior[self] = nil
|
|
74
|
+
end
|
|
75
|
+
if self._bonusIdByBonusType ~= nil then
|
|
76
|
+
for bonusType, bonusId in pairs(self._bonusIdByBonusType) do
|
|
77
|
+
removeUnitBonus(self.object, bonusType, bonusId)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
return Behavior.prototype.onDestroy(self)
|
|
81
|
+
end
|
|
82
|
+
function UnitBehavior.prototype.getUnitBonus(self, bonusType)
|
|
83
|
+
local ____opt_10 = self._bonusIdByBonusType
|
|
84
|
+
local bonusId = ____opt_10 and ____opt_10:get(bonusType)
|
|
85
|
+
return bonusId == nil and 0 or getUnitBonus(self.object, bonusType, bonusId)
|
|
86
|
+
end
|
|
87
|
+
function UnitBehavior.prototype.addOrUpdateOrRemoveUnitBonus(self, bonusType, value)
|
|
88
|
+
local bonusIdByBonusType = self._bonusIdByBonusType
|
|
89
|
+
if bonusIdByBonusType == nil then
|
|
90
|
+
bonusIdByBonusType = __TS__New(LinkedMap)
|
|
91
|
+
self._bonusIdByBonusType = bonusIdByBonusType
|
|
92
|
+
end
|
|
93
|
+
bonusIdByBonusType:put(
|
|
94
|
+
bonusType,
|
|
95
|
+
addOrUpdateOrRemoveUnitBonus(
|
|
96
|
+
self.object,
|
|
97
|
+
bonusType,
|
|
98
|
+
bonusIdByBonusType:get(bonusType),
|
|
99
|
+
value
|
|
100
|
+
)
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
function UnitBehavior.prototype.registerOwningPlayerEvent(self, event, extractPlayer, listener)
|
|
104
|
+
local listenerByBehavior = getOrPut(listenerByBehaviorByOwningPlayerEvent, event, mutableLuaMap)
|
|
105
|
+
listenerByBehavior[self] = listener
|
|
106
|
+
getOrPut(inRangeUnitEventsByBehavior, self, mutableLuaSet)[event] = true
|
|
107
|
+
local behaviors = behaviorsByOwningPlayerEvent[event]
|
|
108
|
+
if behaviors == nil then
|
|
109
|
+
event:addListener(function(...)
|
|
110
|
+
local behaviors = behaviorsByOwningPlayerEvent[event]
|
|
111
|
+
if behaviors ~= nil then
|
|
112
|
+
local player = extractPlayer(...)
|
|
113
|
+
if player ~= nil then
|
|
114
|
+
for behavior in pairs(behaviors) do
|
|
115
|
+
if behavior.unit.owner == player then
|
|
116
|
+
safeCall(behavior[listenerByBehavior[behavior]], behavior, ...)
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end)
|
|
122
|
+
behaviors = __TS__New(LinkedSet)
|
|
123
|
+
behaviorsByOwningPlayerEvent[event] = behaviors
|
|
124
|
+
end
|
|
125
|
+
behaviors:add(self)
|
|
126
|
+
end
|
|
127
|
+
function UnitBehavior.prototype.registerInRangeUnitEvent(self, event, extractUnit, range, listener)
|
|
128
|
+
local rangeByBehavior = getOrPut(rangeByBehaviorByInRangeUnitEvent, event, mutableLuaMap)
|
|
129
|
+
rangeByBehavior[self] = range
|
|
130
|
+
local listenerByBehavior = getOrPut(listenerByBehaviorByInRangeUnitEvent, event, mutableLuaMap)
|
|
131
|
+
listenerByBehavior[self] = listener
|
|
132
|
+
getOrPut(inRangeUnitEventsByBehavior, self, mutableLuaSet)[event] = true
|
|
133
|
+
local behaviors = behaviorsByInRangeUnitEvent[event]
|
|
134
|
+
if behaviors == nil then
|
|
135
|
+
event:addListener(function(...)
|
|
136
|
+
local behaviors = behaviorsByInRangeUnitEvent[event]
|
|
137
|
+
if behaviors ~= nil then
|
|
138
|
+
local unit = extractUnit(...)
|
|
139
|
+
if unit ~= nil then
|
|
140
|
+
for behavior in pairs(behaviors) do
|
|
141
|
+
local range = rangeByBehavior[behavior]
|
|
142
|
+
if range ~= nil and unit:getCollisionDistanceTo(behavior.unit) <= range then
|
|
143
|
+
safeCall(behavior[listenerByBehavior[behavior]], behavior, ...)
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end)
|
|
149
|
+
behaviors = __TS__New(LinkedSet)
|
|
150
|
+
behaviorsByInRangeUnitEvent[event] = behaviors
|
|
151
|
+
end
|
|
152
|
+
behaviors:add(self)
|
|
153
|
+
end
|
|
154
|
+
function UnitBehavior.prototype.onImmediateOrder(self, orderId)
|
|
155
|
+
end
|
|
156
|
+
function UnitBehavior.prototype.onTargetOrder(self, orderId, target)
|
|
157
|
+
end
|
|
158
|
+
function UnitBehavior.prototype.onPointOrder(self, orderId, x, y)
|
|
18
159
|
end
|
|
19
160
|
function UnitBehavior.prototype.onAutoAttackStart(self, target)
|
|
20
161
|
end
|
|
21
162
|
function UnitBehavior.prototype.onAutoAttackFinish(self, target)
|
|
22
163
|
end
|
|
164
|
+
function UnitBehavior.prototype.onTargetingAutoAttackStart(self, source)
|
|
165
|
+
end
|
|
166
|
+
function UnitBehavior.prototype.onTargetingAutoAttackFinish(self, source)
|
|
167
|
+
end
|
|
23
168
|
function UnitBehavior.prototype.onDamageDealing(self, target, event)
|
|
24
169
|
end
|
|
25
170
|
function UnitBehavior.prototype.onDamageDealt(self, target, event)
|
|
@@ -32,6 +177,34 @@ function UnitBehavior.prototype.onAbilityGained(self, ability)
|
|
|
32
177
|
end
|
|
33
178
|
function UnitBehavior.prototype.onAbilityLost(self, ability)
|
|
34
179
|
end
|
|
180
|
+
function UnitBehavior.prototype.onAbilityChannelingStart(self, ability)
|
|
181
|
+
end
|
|
182
|
+
function UnitBehavior.prototype.onAbilityImpact(self, ability)
|
|
183
|
+
end
|
|
184
|
+
function UnitBehavior.prototype.onAbilityWidgetTargetImpact(self, ability, target)
|
|
185
|
+
end
|
|
186
|
+
function UnitBehavior.prototype.onAbilityUnitTargetImpact(self, ability, target)
|
|
187
|
+
end
|
|
188
|
+
function UnitBehavior.prototype.onAbilityItemTargetImpact(self, ability, target)
|
|
189
|
+
end
|
|
190
|
+
function UnitBehavior.prototype.onAbilityDestructibleTargetImpact(self, ability, target)
|
|
191
|
+
end
|
|
192
|
+
function UnitBehavior.prototype.onAbilityPointTargetImpact(self, ability, x, y)
|
|
193
|
+
end
|
|
194
|
+
function UnitBehavior.prototype.onAbilityNoTargetImpact(self, ability)
|
|
195
|
+
end
|
|
196
|
+
function UnitBehavior.prototype.onAbilityChannelingFinish(self, ability)
|
|
197
|
+
end
|
|
198
|
+
function UnitBehavior.prototype.onAbilityStop(self, ability)
|
|
199
|
+
end
|
|
200
|
+
function UnitBehavior.prototype.onTargetingAbilityChannelingStart(self, ability, source)
|
|
201
|
+
end
|
|
202
|
+
function UnitBehavior.prototype.onTargetingAbilityImpact(self, ability, source)
|
|
203
|
+
end
|
|
204
|
+
function UnitBehavior.prototype.onBuffGained(self, buff)
|
|
205
|
+
end
|
|
206
|
+
function UnitBehavior.prototype.onBuffLost(self, buff)
|
|
207
|
+
end
|
|
35
208
|
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
36
209
|
end
|
|
37
210
|
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
@@ -40,10 +213,29 @@ function UnitBehavior.prototype.onItemUsed(self, item)
|
|
|
40
213
|
end
|
|
41
214
|
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
42
215
|
end
|
|
216
|
+
function UnitBehavior.prototype.onItemChargesChanged(self, item)
|
|
217
|
+
end
|
|
43
218
|
function UnitBehavior.prototype.onKill(self, target)
|
|
44
219
|
end
|
|
45
220
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
46
221
|
end
|
|
222
|
+
function UnitBehavior.prototype.onOwnerChange(self, previousOwner)
|
|
223
|
+
end
|
|
224
|
+
function UnitBehavior.bindUnitType(self, unitTypeId, ...)
|
|
225
|
+
local args = {...}
|
|
226
|
+
local createBehaviorFunctions = createBehaviorFunctionsByUnitTypeId[unitTypeId]
|
|
227
|
+
if createBehaviorFunctions == nil then
|
|
228
|
+
createBehaviorFunctions = {}
|
|
229
|
+
createBehaviorFunctionsByUnitTypeId[unitTypeId] = createBehaviorFunctions
|
|
230
|
+
end
|
|
231
|
+
createBehaviorFunctions[#createBehaviorFunctions + 1] = function(unit)
|
|
232
|
+
return __TS__New(
|
|
233
|
+
self,
|
|
234
|
+
unit,
|
|
235
|
+
table.unpack(args)
|
|
236
|
+
)
|
|
237
|
+
end
|
|
238
|
+
end
|
|
47
239
|
__TS__SetDescriptor(
|
|
48
240
|
UnitBehavior.prototype,
|
|
49
241
|
"unit",
|
|
@@ -53,11 +245,28 @@ __TS__SetDescriptor(
|
|
|
53
245
|
true
|
|
54
246
|
);
|
|
55
247
|
(function(self)
|
|
248
|
+
Unit.onImmediateOrder:addListener(function(source, orderId)
|
|
249
|
+
____exports.UnitBehavior:forAll(source, "onImmediateOrder", orderId)
|
|
250
|
+
end)
|
|
251
|
+
Unit.onTargetOrder:addListener(function(source, orderId, target)
|
|
252
|
+
____exports.UnitBehavior:forAll(source, "onTargetOrder", orderId, target)
|
|
253
|
+
end)
|
|
254
|
+
Unit.onPointOrder:addListener(function(source, orderId, x, y)
|
|
255
|
+
____exports.UnitBehavior:forAll(
|
|
256
|
+
source,
|
|
257
|
+
"onPointOrder",
|
|
258
|
+
orderId,
|
|
259
|
+
x,
|
|
260
|
+
y
|
|
261
|
+
)
|
|
262
|
+
end)
|
|
56
263
|
Unit.autoAttackStartEvent:addListener(function(source, target)
|
|
57
264
|
____exports.UnitBehavior:forAll(source, "onAutoAttackStart", target)
|
|
265
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackStart", source)
|
|
58
266
|
end)
|
|
59
267
|
Unit.autoAttackFinishEvent:addListener(function(source, target)
|
|
60
268
|
____exports.UnitBehavior:forAll(source, "onAutoAttackFinish", target)
|
|
269
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackFinish", source)
|
|
61
270
|
end)
|
|
62
271
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
63
272
|
if source ~= nil then
|
|
@@ -71,11 +280,51 @@ __TS__SetDescriptor(
|
|
|
71
280
|
end
|
|
72
281
|
____exports.UnitBehavior:forAll(target, "onDamageReceived", source, event)
|
|
73
282
|
end)
|
|
74
|
-
Unit.abilityGainedEvent:addListener(function(source,
|
|
75
|
-
____exports.UnitBehavior:forAll(source, "onAbilityGained",
|
|
283
|
+
Unit.abilityGainedEvent:addListener(function(source, ability)
|
|
284
|
+
____exports.UnitBehavior:forAll(source, "onAbilityGained", ability)
|
|
285
|
+
end)
|
|
286
|
+
Unit.abilityLostEvent:addListener(function(source, ability)
|
|
287
|
+
____exports.UnitBehavior:forAll(source, "onAbilityLost", ability)
|
|
288
|
+
end)
|
|
289
|
+
Unit.abilityChannelingStartEvent:addListener(function(source, ability)
|
|
290
|
+
____exports.UnitBehavior:forAll(source, "onAbilityChannelingStart", ability)
|
|
291
|
+
end)
|
|
292
|
+
Unit.abilityUnitTargetChannelingStartEvent:addListener(function(source, ability, target)
|
|
293
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAbilityChannelingStart", ability, source)
|
|
76
294
|
end)
|
|
77
|
-
Unit.
|
|
78
|
-
____exports.UnitBehavior:forAll(source, "
|
|
295
|
+
Unit.abilityImpactEvent:addListener(function(source, ability)
|
|
296
|
+
____exports.UnitBehavior:forAll(source, "onAbilityImpact", ability)
|
|
297
|
+
end)
|
|
298
|
+
Unit.abilityWidgetTargetImpactEvent:addListener(function(source, ability, target)
|
|
299
|
+
____exports.UnitBehavior:forAll(source, "onAbilityWidgetTargetImpact", ability, target)
|
|
300
|
+
end)
|
|
301
|
+
Unit.abilityUnitTargetImpactEvent:addListener(function(source, ability, target)
|
|
302
|
+
____exports.UnitBehavior:forAll(source, "onAbilityUnitTargetImpact", ability, target)
|
|
303
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAbilityImpact", ability, source)
|
|
304
|
+
end)
|
|
305
|
+
Unit.abilityItemTargetImpactEvent:addListener(function(source, ability, target)
|
|
306
|
+
____exports.UnitBehavior:forAll(source, "onAbilityItemTargetImpact", ability, target)
|
|
307
|
+
end)
|
|
308
|
+
Unit.abilityDestructibleTargetImpactEvent:addListener(function(source, ability, target)
|
|
309
|
+
____exports.UnitBehavior:forAll(source, "onAbilityDestructibleTargetImpact", ability, target)
|
|
310
|
+
end)
|
|
311
|
+
Unit.abilityPointTargetImpactEvent:addListener(function(source, ability, x, y)
|
|
312
|
+
____exports.UnitBehavior:forAll(
|
|
313
|
+
source,
|
|
314
|
+
"onAbilityPointTargetImpact",
|
|
315
|
+
ability,
|
|
316
|
+
x,
|
|
317
|
+
y
|
|
318
|
+
)
|
|
319
|
+
end)
|
|
320
|
+
Unit.abilityNoTargetImpactEvent:addListener(function(source, ability)
|
|
321
|
+
____exports.UnitBehavior:forAll(source, "onAbilityNoTargetImpact", ability)
|
|
322
|
+
end)
|
|
323
|
+
Unit.abilityChannelingFinishEvent:addListener(function(source, ability)
|
|
324
|
+
____exports.UnitBehavior:forAll(source, "onAbilityChannelingFinish", ability)
|
|
325
|
+
end)
|
|
326
|
+
Unit.abilityStopEvent:addListener(function(source, ability)
|
|
327
|
+
____exports.UnitBehavior:forAll(source, "onAbilityStop", ability)
|
|
79
328
|
end)
|
|
80
329
|
Unit.deathEvent:addListener(function(target, source)
|
|
81
330
|
if source ~= nil then
|
|
@@ -95,7 +344,21 @@ __TS__SetDescriptor(
|
|
|
95
344
|
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
96
345
|
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
97
346
|
end)
|
|
347
|
+
Unit.itemChargesChangedEvent:addListener(function(unit, item)
|
|
348
|
+
____exports.UnitBehavior:forAll(unit, "onItemChargesChanged", item)
|
|
349
|
+
end)
|
|
350
|
+
Unit.onOwnerChange:addListener(function(unit, previousOwner)
|
|
351
|
+
____exports.UnitBehavior:forAll(unit, "onOwnerChange", previousOwner)
|
|
352
|
+
end)
|
|
98
353
|
end)(UnitBehavior)
|
|
354
|
+
Unit.onCreate:addListener(function(unit)
|
|
355
|
+
local createBehaviorFunctions = createBehaviorFunctionsByUnitTypeId[unit.typeId]
|
|
356
|
+
if createBehaviorFunctions ~= nil then
|
|
357
|
+
for ____, createBehavior in ipairs(createBehaviorFunctions) do
|
|
358
|
+
createBehavior(unit)
|
|
359
|
+
end
|
|
360
|
+
end
|
|
361
|
+
end)
|
|
99
362
|
Unit.destroyEvent:addListener(function(unit)
|
|
100
363
|
____exports.UnitBehavior:forAll(unit, "destroy")
|
|
101
364
|
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;
|
|
@@ -30,8 +31,10 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
30
31
|
source?: Unit;
|
|
31
32
|
behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
|
|
32
33
|
abilityTypeIds?: Record<AbilityTypeId, {
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
readonly fields?: [
|
|
35
|
+
AbilityNumberField | AbilityNumberLevelField,
|
|
36
|
+
NumberParameterValueType
|
|
37
|
+
][];
|
|
35
38
|
/** Default `true`. */
|
|
36
39
|
readonly isButtonVisible?: boolean;
|
|
37
40
|
/** Default is the level of the source ability or 0 if it is absent. */
|
|
@@ -53,16 +56,20 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
53
56
|
damageIncrease?: NumberParameterValueType;
|
|
54
57
|
damageIncreaseFactor?: NumberParameterValueType;
|
|
55
58
|
armorIncrease?: NumberParameterValueType;
|
|
56
|
-
|
|
59
|
+
maxHealthIncrease?: NumberParameterValueType;
|
|
60
|
+
maxManaIncrease?: NumberParameterValueType;
|
|
57
61
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
58
62
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
63
|
+
manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
|
|
59
64
|
evasionProbability?: NumberParameterValueType;
|
|
65
|
+
missProbability?: NumberParameterValueType;
|
|
60
66
|
damageFactor?: NumberParameterValueType;
|
|
61
67
|
receivedDamageFactor?: NumberParameterValueType;
|
|
62
68
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
63
69
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
64
70
|
maximumRemainingDuration?: NumberParameterValueType;
|
|
65
71
|
maximumDuration?: NumberParameterValueType;
|
|
72
|
+
turnsIntoGhost?: BooleanParameterValueType;
|
|
66
73
|
stuns?: BooleanParameterValueType;
|
|
67
74
|
ignoresStunImmunity?: BooleanParameterValueType;
|
|
68
75
|
providesStunImmunity?: BooleanParameterValueType;
|
|
@@ -73,59 +80,72 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
73
80
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
74
81
|
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
75
82
|
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
83
|
+
absorbedDamageFactor?: NumberParameterValueType;
|
|
84
|
+
maximumDamageAbsorbed?: NumberParameterValueType;
|
|
85
|
+
destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
|
|
76
86
|
damageOnExpiration?: NumberParameterValueType;
|
|
77
87
|
healingOnExpiration?: NumberParameterValueType;
|
|
78
88
|
killsOnExpiration?: BooleanParameterValueType;
|
|
79
89
|
explodesOnExpiration?: BooleanParameterValueType;
|
|
90
|
+
abilityCooldownFactor?: NumberParameterValueType;
|
|
80
91
|
uniqueGroup?: BuffUniqueGroup;
|
|
81
92
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
82
93
|
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
|
-
|
|
94
|
+
STATE = 100,
|
|
95
|
+
UNIT = 101,
|
|
96
|
+
SOURCE = 102,
|
|
97
|
+
DURATION = 103,
|
|
98
|
+
UNIQUE_GROUP = 104,
|
|
99
|
+
EFFECT_MODEL_PATH = 105,
|
|
100
|
+
SPECIAL_EFFECT_MODEL_PATH = 106,
|
|
101
|
+
DURATION_INCREASE_ON_AUTO_ATTACK = 107,
|
|
102
|
+
MAXIMUM_DURATION = 108,
|
|
103
|
+
MAXIMUM_REMAINING_DURATION = 109,
|
|
104
|
+
DAMAGE_OVER_DURATION = 110,
|
|
105
|
+
DAMAGE_PER_INTERVAL = 111,
|
|
106
|
+
DAMAGE_INTERVAL = 112,
|
|
107
|
+
REMAINING_DAMAGE_OVER_DURATION = 113,
|
|
108
|
+
DAMAGE_INTERVAL_TIMER = 114,
|
|
109
|
+
HEALING_OVER_DURATION = 115,
|
|
110
|
+
HEALING_PER_INTERVAL = 116,
|
|
111
|
+
HEALING_INTERVAL = 117,
|
|
112
|
+
REMAINING_HEALING_OVER_DURATION = 118,
|
|
113
|
+
HEALING_INTERVAL_TIMER = 119,
|
|
114
|
+
DAMAGE_ON_EXPIRATION = 120,
|
|
115
|
+
HEALING_ON_EXPIRATION = 121,
|
|
116
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
|
|
117
|
+
DAMAGE_UPON_DEATH = 123,
|
|
118
|
+
DAMAGE_UPON_DEATH_RANGE = 124,
|
|
119
|
+
MEDIUM_DAMAGE_UPON_DEATH = 125,
|
|
120
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
|
|
121
|
+
SMALL_DAMAGE_UPON_DEATH = 127,
|
|
122
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
|
|
123
|
+
AUTO_ATTACK_COUNT = 129,
|
|
124
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 130,
|
|
125
|
+
DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
126
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
|
|
127
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
128
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
|
|
129
|
+
ABSORBED_DAMAGE_FACTOR = 135,
|
|
130
|
+
MAXIMUM_DAMAGE_ABSORBED = 136,
|
|
131
|
+
DAMAGE_ABSORBED = 137,
|
|
132
|
+
DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 138,
|
|
133
|
+
TURNS_INTO_GHOST = 139,
|
|
134
|
+
STUNS = 140,
|
|
135
|
+
IGNORES_STUN_IMMUNITY = 141,
|
|
136
|
+
DISABLES_AUTO_ATTACK = 142,
|
|
137
|
+
PROVIDES_INVULNERABILITY = 143,
|
|
138
|
+
KILLS_ON_EXPIRATION = 144,
|
|
139
|
+
EXPLODES_ON_EXPIRATION = 145,
|
|
140
|
+
MISS_PROBABILITY = 146,
|
|
141
|
+
ABILITY_COOLDOWN_FACTOR = 147,
|
|
142
|
+
ABILITY_COOLDOWN_MODIFIER = 148
|
|
123
143
|
}
|
|
124
144
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
125
145
|
LEAST_DURATION = 0
|
|
126
146
|
}
|
|
127
147
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
128
|
-
export type BuffConstructorParameters<
|
|
148
|
+
export type BuffConstructorParameters<T extends Buff<BuffAdditionalParameters>> = T extends Buff<infer AdditionalParameters> ? [
|
|
129
149
|
...typeId: [ApplicableBuffTypeId] | [
|
|
130
150
|
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
131
151
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
@@ -133,13 +153,16 @@ export type BuffConstructorParameters<AdditionalParameters extends BuffAdditiona
|
|
|
133
153
|
polarity: BuffPolarityParameterType,
|
|
134
154
|
resistanceType: BuffResistanceTypeParameterType,
|
|
135
155
|
...abilityOrParameters: [
|
|
136
|
-
ability
|
|
156
|
+
ability?: Ability | AbilityBehavior,
|
|
137
157
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
138
|
-
] | [
|
|
139
|
-
|
|
158
|
+
] | [
|
|
159
|
+
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
160
|
+
]
|
|
161
|
+
] : never;
|
|
140
162
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
141
163
|
private _unit;
|
|
142
164
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
165
|
+
private [BuffPropertyKey.STATE];
|
|
143
166
|
private [BuffPropertyKey.UNIT];
|
|
144
167
|
private [BuffPropertyKey.SOURCE]?;
|
|
145
168
|
private [BuffPropertyKey.DURATION];
|
|
@@ -174,31 +197,37 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
174
197
|
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
175
198
|
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
176
199
|
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
200
|
+
private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
|
|
201
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
|
|
202
|
+
private [BuffPropertyKey.DAMAGE_ABSORBED]?;
|
|
203
|
+
private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
|
|
204
|
+
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
177
205
|
private [BuffPropertyKey.STUNS]?;
|
|
178
206
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
179
207
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
180
208
|
private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
|
|
181
209
|
private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
|
|
182
210
|
private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
|
|
211
|
+
private [BuffPropertyKey.ABILITY_COOLDOWN_FACTOR]?;
|
|
212
|
+
private [BuffPropertyKey.ABILITY_COOLDOWN_MODIFIER]?;
|
|
183
213
|
protected static readonly defaultParameters: BuffParameters;
|
|
184
214
|
get source(): Unit;
|
|
185
215
|
readonly typeId: ApplicableBuffTypeId;
|
|
186
216
|
readonly polarity: BuffPolarity;
|
|
187
217
|
readonly resistanceType: BuffResistanceType;
|
|
188
|
-
readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any :
|
|
218
|
+
readonly parameters: IsExactlyAny<AdditionalParameters> extends true ? any : AdditionalParameters extends Record<PropertyKey, never> ? undefined : {
|
|
189
219
|
[K in keyof Omit<AdditionalParameters, keyof BuffParameters>]: AdditionalParameters[K] extends AbilityDependentValue<infer T> ? T : AdditionalParameters[K];
|
|
190
220
|
};
|
|
191
221
|
private readonly handle;
|
|
222
|
+
readonly previousBuff?: Buff;
|
|
192
223
|
private _timer?;
|
|
193
224
|
private readonly _level?;
|
|
194
225
|
private readonly _spellStealPriority?;
|
|
195
226
|
private readonly _learnLevelMinimum?;
|
|
196
|
-
private
|
|
227
|
+
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
197
228
|
private readonly _abilityTypeIds?;
|
|
198
229
|
private _behaviors?;
|
|
199
|
-
|
|
200
|
-
private addOrUpdateOrRemoveUnitBonus;
|
|
201
|
-
constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
|
|
230
|
+
constructor(target: Unit, ...parameters: BuffConstructorParameters<Buff<AdditionalParameters>>);
|
|
202
231
|
get level(): number;
|
|
203
232
|
get remainingDamageOverDuration(): number;
|
|
204
233
|
set remainingDamageOverDuration(remainingDamageOverDuration: number);
|
|
@@ -226,6 +255,12 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
226
255
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
227
256
|
get armorIncrease(): number;
|
|
228
257
|
set armorIncrease(armorIncrease: number);
|
|
258
|
+
get maxHealthIncrease(): number;
|
|
259
|
+
set maxHealthIncrease(maxHealthIncrease: number);
|
|
260
|
+
get maxManaIncrease(): number;
|
|
261
|
+
set maxManaIncrease(maxManaIncrease: number);
|
|
262
|
+
get turnsIntoGhost(): boolean;
|
|
263
|
+
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
229
264
|
get stuns(): boolean;
|
|
230
265
|
set stuns(stuns: boolean);
|
|
231
266
|
get ignoresStunImmunity(): boolean;
|
|
@@ -252,14 +287,33 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
252
287
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
253
288
|
get evasionProbability(): number;
|
|
254
289
|
set evasionProbability(evasionProbability: number);
|
|
290
|
+
get manaRegenerationRateIncreaseFactor(): number;
|
|
291
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
|
|
255
292
|
get duration(): number;
|
|
293
|
+
set duration(duration: number);
|
|
256
294
|
get remainingDuration(): number;
|
|
257
295
|
set remainingDuration(remainingDuration: number);
|
|
296
|
+
get absorbedDamageFactor(): number;
|
|
297
|
+
set absorbedDamageFactor(absorbedDamageFactor: number);
|
|
298
|
+
get maximumDamageAbsorbed(): number;
|
|
299
|
+
set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
|
|
300
|
+
get damageAbsorbed(): number;
|
|
301
|
+
get destroysOnMaximumDamageAbsorbed(): boolean;
|
|
302
|
+
set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
|
|
303
|
+
get abilityCooldownFactor(): number;
|
|
304
|
+
set abilityCooldownFactor(abilityCooldownFactor: number);
|
|
305
|
+
onAbilityGained(ability: Ability): void;
|
|
306
|
+
onAbilityLost(ability: Ability): void;
|
|
258
307
|
flashEffect(...parameters: [
|
|
259
308
|
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
260
309
|
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
261
310
|
]): void;
|
|
262
|
-
flashSpecialEffect(...parameters: [
|
|
311
|
+
flashSpecialEffect(...parameters: [
|
|
312
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
313
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
314
|
+
]): void;
|
|
315
|
+
private flash;
|
|
316
|
+
expire(): void;
|
|
263
317
|
protected onCreate(): void;
|
|
264
318
|
protected onDestroy(): Destructor;
|
|
265
319
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
@@ -268,6 +322,7 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
268
322
|
onDeath(source: Unit | undefined): void;
|
|
269
323
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
270
324
|
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
271
|
-
static readonly
|
|
325
|
+
static readonly createdEvent: Event<[Buff<object>]>;
|
|
326
|
+
static readonly beingDestroyedEvent: Event<[Buff<object>]>;
|
|
272
327
|
}
|
|
273
328
|
export {};
|