warscript 0.0.1-dev.b026cc2 → 0.0.1-dev.b23de5c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +6 -0
- package/core/types/frame.lua +113 -22
- 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.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +16 -3
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- 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 +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -19
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -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 +28 -7
- package/engine/behaviour/ability.lua +137 -43
- 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 +45 -2
- package/engine/behaviour/unit.lua +289 -6
- package/engine/buff.d.ts +128 -52
- package/engine/buff.lua +595 -270
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +129 -85
- package/engine/internal/item/ability.lua +162 -4
- 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/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- 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/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.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 +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- 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 +8 -2
- package/engine/internal/unit/bonus.lua +33 -1
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- 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 +12 -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 +70 -13
- package/engine/internal/unit.d.ts +64 -30
- package/engine/internal/unit.lua +490 -285
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +9 -2
- package/engine/local-client.lua +112 -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/sound-preset-name.d.ts +5 -1
- 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/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 +177 -40
- 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 +15 -1
- package/engine/object-data/entry/item-type.lua +93 -2
- 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-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +28 -5
- package/engine/object-field/ability.lua +59 -5
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -6
- package/engine/object-field.lua +359 -116
- 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 +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +9 -0
- package/engine/unit.lua +9 -0
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/buff.lua +12 -11
- package/objutil/unit.lua +8 -0
- package/package.json +2 -2
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +10 -1
- package/utility/arrays.lua +45 -3
- 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/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +15 -3
- package/utility/linked-set.lua +48 -3
- 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 +4 -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,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,10 +177,65 @@ 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
|
|
208
|
+
function UnitBehavior.prototype.onItemDropped(self, item)
|
|
209
|
+
end
|
|
210
|
+
function UnitBehavior.prototype.onItemPickedUp(self, item)
|
|
211
|
+
end
|
|
212
|
+
function UnitBehavior.prototype.onItemUsed(self, item)
|
|
213
|
+
end
|
|
214
|
+
function UnitBehavior.prototype.onItemStacked(self, item)
|
|
215
|
+
end
|
|
216
|
+
function UnitBehavior.prototype.onItemChargesChanged(self, item)
|
|
217
|
+
end
|
|
35
218
|
function UnitBehavior.prototype.onKill(self, target)
|
|
36
219
|
end
|
|
37
220
|
function UnitBehavior.prototype.onDeath(self, source)
|
|
38
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
|
|
39
239
|
__TS__SetDescriptor(
|
|
40
240
|
UnitBehavior.prototype,
|
|
41
241
|
"unit",
|
|
@@ -45,11 +245,28 @@ __TS__SetDescriptor(
|
|
|
45
245
|
true
|
|
46
246
|
);
|
|
47
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)
|
|
48
263
|
Unit.autoAttackStartEvent:addListener(function(source, target)
|
|
49
264
|
____exports.UnitBehavior:forAll(source, "onAutoAttackStart", target)
|
|
265
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackStart", source)
|
|
50
266
|
end)
|
|
51
267
|
Unit.autoAttackFinishEvent:addListener(function(source, target)
|
|
52
268
|
____exports.UnitBehavior:forAll(source, "onAutoAttackFinish", target)
|
|
269
|
+
____exports.UnitBehavior:forAll(target, "onTargetingAutoAttackFinish", source)
|
|
53
270
|
end)
|
|
54
271
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
55
272
|
if source ~= nil then
|
|
@@ -63,11 +280,51 @@ __TS__SetDescriptor(
|
|
|
63
280
|
end
|
|
64
281
|
____exports.UnitBehavior:forAll(target, "onDamageReceived", source, event)
|
|
65
282
|
end)
|
|
66
|
-
Unit.abilityGainedEvent:addListener(function(source,
|
|
67
|
-
____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)
|
|
294
|
+
end)
|
|
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)
|
|
68
300
|
end)
|
|
69
|
-
Unit.
|
|
70
|
-
____exports.UnitBehavior:forAll(source, "
|
|
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)
|
|
71
328
|
end)
|
|
72
329
|
Unit.deathEvent:addListener(function(target, source)
|
|
73
330
|
if source ~= nil then
|
|
@@ -75,7 +332,33 @@ __TS__SetDescriptor(
|
|
|
75
332
|
end
|
|
76
333
|
____exports.UnitBehavior:forAll(target, "onDeath", source)
|
|
77
334
|
end)
|
|
335
|
+
Unit.itemDroppedEvent:addListener(function(unit, item)
|
|
336
|
+
____exports.UnitBehavior:forAll(unit, "onItemDropped", item)
|
|
337
|
+
end)
|
|
338
|
+
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
339
|
+
____exports.UnitBehavior:forAll(unit, "onItemPickedUp", item)
|
|
340
|
+
end)
|
|
341
|
+
Unit.itemUsedEvent:addListener(function(unit, item)
|
|
342
|
+
____exports.UnitBehavior:forAll(unit, "onItemUsed", item)
|
|
343
|
+
end)
|
|
344
|
+
Unit.itemStackedEvent:addListener(function(unit, item)
|
|
345
|
+
____exports.UnitBehavior:forAll(unit, "onItemStacked", item)
|
|
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)
|
|
78
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)
|
|
79
362
|
Unit.destroyEvent:addListener(function(unit)
|
|
80
363
|
____exports.UnitBehavior:forAll(unit, "destroy")
|
|
81
364
|
end)
|
package/engine/buff.d.ts
CHANGED
|
@@ -5,16 +5,22 @@ import { Ability } from "./internal/ability";
|
|
|
5
5
|
import { AbilityTypeId } from "./object-data/entry/ability-type";
|
|
6
6
|
import { BuffPolarity } from "./object-data/auxiliary/buff-polarity";
|
|
7
7
|
import { BuffResistanceType } from "./object-data/auxiliary/buff-resistance-type";
|
|
8
|
-
import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
|
|
8
|
+
import { AbilityBooleanField, AbilityBooleanLevelField, AbilityCombatClassificationsLevelField, AbilityDependentValue, AbilityEnumLevelField, AbilityIntegerField, AbilityIntegerLevelField, AbilityNumberField, AbilityNumberLevelField } from "./object-field/ability";
|
|
9
9
|
import { CombatClassifications } from "./object-data/auxiliary/combat-classification";
|
|
10
|
-
import { IsExactlyAny,
|
|
10
|
+
import { IsExactlyAny, Prohibit, ReadonlyNonEmptyArray } from "../utility/types";
|
|
11
|
+
import { EffectParameters } from "../core/types/effect";
|
|
11
12
|
import { UnitBehavior } from "./behaviour/unit";
|
|
12
13
|
import type { Widget } from "../core/types/widget";
|
|
13
14
|
import { Destructor } from "../destroyable";
|
|
15
|
+
import { Event } from "../event";
|
|
16
|
+
import { AbilityBehavior } from "./behaviour/ability";
|
|
14
17
|
export type BuffConstructor<T extends Buff<any> = Buff<any>, Args extends any[] = any> = OmitConstructor<typeof Buff<any>> & (new (...args: Args) => T);
|
|
18
|
+
type EnumParameterValueType<T extends number> = T | AbilityEnumLevelField<T>;
|
|
15
19
|
type NumberParameterValueType = number | AbilityNumberField | AbilityNumberLevelField;
|
|
16
20
|
type IntegerParameterValueType = number | AbilityIntegerField | AbilityIntegerLevelField;
|
|
17
21
|
type BooleanParameterValueType = boolean | AbilityBooleanField | AbilityBooleanLevelField;
|
|
22
|
+
export type BuffPolarityParameterType = EnumParameterValueType<BuffPolarity>;
|
|
23
|
+
export type BuffResistanceTypeParameterType = EnumParameterValueType<BuffResistanceType>;
|
|
18
24
|
export declare class BuffUniqueGroup {
|
|
19
25
|
}
|
|
20
26
|
export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
@@ -25,8 +31,10 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
25
31
|
source?: Unit;
|
|
26
32
|
behaviorConstructors?: (new (unit: Unit) => UnitBehavior)[];
|
|
27
33
|
abilityTypeIds?: Record<AbilityTypeId, {
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
readonly fields?: [
|
|
35
|
+
AbilityNumberField | AbilityNumberLevelField,
|
|
36
|
+
NumberParameterValueType
|
|
37
|
+
][];
|
|
30
38
|
/** Default `true`. */
|
|
31
39
|
readonly isButtonVisible?: boolean;
|
|
32
40
|
/** Default is the level of the source ability or 0 if it is absent. */
|
|
@@ -51,11 +59,16 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
51
59
|
armorIncreaseFactor?: NumberParameterValueType;
|
|
52
60
|
attackSpeedIncreaseFactor?: NumberParameterValueType;
|
|
53
61
|
movementSpeedIncreaseFactor?: NumberParameterValueType;
|
|
62
|
+
manaRegenerationRateIncreaseFactor?: NumberParameterValueType;
|
|
63
|
+
evasionProbability?: NumberParameterValueType;
|
|
64
|
+
missProbability?: NumberParameterValueType;
|
|
65
|
+
damageFactor?: NumberParameterValueType;
|
|
54
66
|
receivedDamageFactor?: NumberParameterValueType;
|
|
55
67
|
receivedMagicDamageFactor?: NumberParameterValueType;
|
|
56
68
|
durationIncreaseOnAutoAttack?: NumberParameterValueType;
|
|
57
69
|
maximumRemainingDuration?: NumberParameterValueType;
|
|
58
70
|
maximumDuration?: NumberParameterValueType;
|
|
71
|
+
turnsIntoGhost?: BooleanParameterValueType;
|
|
59
72
|
stuns?: BooleanParameterValueType;
|
|
60
73
|
ignoresStunImmunity?: BooleanParameterValueType;
|
|
61
74
|
providesStunImmunity?: BooleanParameterValueType;
|
|
@@ -64,69 +77,91 @@ export type BuffParameters<T extends Buff<any> = Buff> = Buff extends T ? {
|
|
|
64
77
|
disablesAutoAttack?: BooleanParameterValueType;
|
|
65
78
|
destroysOnDamage?: BooleanParameterValueType;
|
|
66
79
|
maximumAutoAttackCount?: IntegerParameterValueType;
|
|
80
|
+
maximumDamageDealtEventCount?: IntegerParameterValueType;
|
|
81
|
+
maximumDamageReceivedEventCount?: IntegerParameterValueType;
|
|
82
|
+
absorbedDamageFactor?: NumberParameterValueType;
|
|
83
|
+
maximumDamageAbsorbed?: NumberParameterValueType;
|
|
84
|
+
destroysOnMaximumDamageAbsorbed?: BooleanParameterValueType;
|
|
67
85
|
damageOnExpiration?: NumberParameterValueType;
|
|
68
86
|
healingOnExpiration?: NumberParameterValueType;
|
|
69
87
|
killsOnExpiration?: BooleanParameterValueType;
|
|
70
88
|
explodesOnExpiration?: BooleanParameterValueType;
|
|
89
|
+
abilityCooldownFactor?: NumberParameterValueType;
|
|
71
90
|
uniqueGroup?: BuffUniqueGroup;
|
|
72
91
|
} : BuffParameters & (T extends Buff<infer AdditionalParameters> ? AdditionalParameters : object);
|
|
73
92
|
declare const enum BuffPropertyKey {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
93
|
+
STATE = 100,
|
|
94
|
+
UNIT = 101,
|
|
95
|
+
SOURCE = 102,
|
|
96
|
+
DURATION = 103,
|
|
97
|
+
UNIQUE_GROUP = 104,
|
|
98
|
+
EFFECT_MODEL_PATH = 105,
|
|
99
|
+
SPECIAL_EFFECT_MODEL_PATH = 106,
|
|
100
|
+
DURATION_INCREASE_ON_AUTO_ATTACK = 107,
|
|
101
|
+
MAXIMUM_DURATION = 108,
|
|
102
|
+
MAXIMUM_REMAINING_DURATION = 109,
|
|
103
|
+
DAMAGE_OVER_DURATION = 110,
|
|
104
|
+
DAMAGE_PER_INTERVAL = 111,
|
|
105
|
+
DAMAGE_INTERVAL = 112,
|
|
106
|
+
REMAINING_DAMAGE_OVER_DURATION = 113,
|
|
107
|
+
DAMAGE_INTERVAL_TIMER = 114,
|
|
108
|
+
HEALING_OVER_DURATION = 115,
|
|
109
|
+
HEALING_PER_INTERVAL = 116,
|
|
110
|
+
HEALING_INTERVAL = 117,
|
|
111
|
+
REMAINING_HEALING_OVER_DURATION = 118,
|
|
112
|
+
HEALING_INTERVAL_TIMER = 119,
|
|
113
|
+
DAMAGE_ON_EXPIRATION = 120,
|
|
114
|
+
HEALING_ON_EXPIRATION = 121,
|
|
115
|
+
DAMAGE_UPON_DEATH_ALLOWED_TARGET_CLASSIFICATIONS = 122,
|
|
116
|
+
DAMAGE_UPON_DEATH = 123,
|
|
117
|
+
DAMAGE_UPON_DEATH_RANGE = 124,
|
|
118
|
+
MEDIUM_DAMAGE_UPON_DEATH = 125,
|
|
119
|
+
MEDIUM_DAMAGE_UPON_DEATH_RANGE = 126,
|
|
120
|
+
SMALL_DAMAGE_UPON_DEATH = 127,
|
|
121
|
+
SMALL_DAMAGE_UPON_DEATH_RANGE = 128,
|
|
122
|
+
AUTO_ATTACK_COUNT = 129,
|
|
123
|
+
MAXIMUM_AUTO_ATTACK_COUNT = 130,
|
|
124
|
+
DAMAGE_DEALT_EVENT_COUNT = 131,
|
|
125
|
+
MAXIMUM_DAMAGE_DEALT_EVENT_COUNT = 132,
|
|
126
|
+
DAMAGE_RECEIVED_EVENT_COUNT = 133,
|
|
127
|
+
MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT = 134,
|
|
128
|
+
ABSORBED_DAMAGE_FACTOR = 135,
|
|
129
|
+
MAXIMUM_DAMAGE_ABSORBED = 136,
|
|
130
|
+
DAMAGE_ABSORBED = 137,
|
|
131
|
+
DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED = 138,
|
|
132
|
+
TURNS_INTO_GHOST = 139,
|
|
133
|
+
STUNS = 140,
|
|
134
|
+
IGNORES_STUN_IMMUNITY = 141,
|
|
135
|
+
DISABLES_AUTO_ATTACK = 142,
|
|
136
|
+
PROVIDES_INVULNERABILITY = 143,
|
|
137
|
+
KILLS_ON_EXPIRATION = 144,
|
|
138
|
+
EXPLODES_ON_EXPIRATION = 145,
|
|
139
|
+
MISS_PROBABILITY = 146,
|
|
140
|
+
ABILITY_COOLDOWN_FACTOR = 147,
|
|
141
|
+
ABILITY_COOLDOWN_MODIFIER = 148
|
|
110
142
|
}
|
|
111
143
|
export declare const enum BuffTypeIdSelectionPolicy {
|
|
112
144
|
LEAST_DURATION = 0
|
|
113
145
|
}
|
|
114
146
|
export type BuffAdditionalParameters = Prohibit<Record<string, any>, keyof BuffParameters>;
|
|
115
|
-
export type BuffConstructorParameters<
|
|
147
|
+
export type BuffConstructorParameters<T extends Buff<BuffAdditionalParameters>> = T extends Buff<infer AdditionalParameters> ? [
|
|
116
148
|
...typeId: [ApplicableBuffTypeId] | [
|
|
117
|
-
typeIds:
|
|
149
|
+
typeIds: ReadonlyNonEmptyArray<ApplicableBuffTypeId>,
|
|
118
150
|
typeIdSelectionPolicy: BuffTypeIdSelectionPolicy
|
|
119
151
|
],
|
|
120
|
-
polarity:
|
|
121
|
-
resistanceType:
|
|
152
|
+
polarity: BuffPolarityParameterType,
|
|
153
|
+
resistanceType: BuffResistanceTypeParameterType,
|
|
122
154
|
...abilityOrParameters: [
|
|
123
|
-
ability
|
|
155
|
+
ability?: Ability | AbilityBehavior,
|
|
124
156
|
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
125
|
-
] | [
|
|
126
|
-
|
|
157
|
+
] | [
|
|
158
|
+
parameters?: BuffParameters & Omit<AdditionalParameters, keyof BuffParameters>
|
|
159
|
+
]
|
|
160
|
+
] : never;
|
|
127
161
|
export declare class Buff<AdditionalParameters extends Prohibit<Record<string, any>, keyof BuffParameters> = object> extends UnitBehavior {
|
|
128
162
|
private _unit;
|
|
129
163
|
protected readonly __additionalParametersBrand?: AdditionalParameters;
|
|
164
|
+
private [BuffPropertyKey.STATE];
|
|
130
165
|
private [BuffPropertyKey.UNIT];
|
|
131
166
|
private [BuffPropertyKey.SOURCE]?;
|
|
132
167
|
private [BuffPropertyKey.DURATION];
|
|
@@ -157,12 +192,23 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
157
192
|
private [BuffPropertyKey.SMALL_DAMAGE_UPON_DEATH_RANGE]?;
|
|
158
193
|
private [BuffPropertyKey.MAXIMUM_AUTO_ATTACK_COUNT]?;
|
|
159
194
|
private [BuffPropertyKey.AUTO_ATTACK_COUNT]?;
|
|
195
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_DEALT_EVENT_COUNT]?;
|
|
196
|
+
private [BuffPropertyKey.DAMAGE_DEALT_EVENT_COUNT]?;
|
|
197
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
198
|
+
private [BuffPropertyKey.DAMAGE_RECEIVED_EVENT_COUNT]?;
|
|
199
|
+
private [BuffPropertyKey.ABSORBED_DAMAGE_FACTOR]?;
|
|
200
|
+
private [BuffPropertyKey.MAXIMUM_DAMAGE_ABSORBED]?;
|
|
201
|
+
private [BuffPropertyKey.DAMAGE_ABSORBED]?;
|
|
202
|
+
private [BuffPropertyKey.DESTROYS_ON_MAXIMUM_DAMAGE_ABSORBED]?;
|
|
203
|
+
private [BuffPropertyKey.TURNS_INTO_GHOST]?;
|
|
160
204
|
private [BuffPropertyKey.STUNS]?;
|
|
161
205
|
private [BuffPropertyKey.IGNORES_STUN_IMMUNITY]?;
|
|
162
206
|
private [BuffPropertyKey.DISABLES_AUTO_ATTACK]?;
|
|
163
207
|
private [BuffPropertyKey.PROVIDES_INVULNERABILITY]?;
|
|
164
208
|
private [BuffPropertyKey.KILLS_ON_EXPIRATION]?;
|
|
165
209
|
private [BuffPropertyKey.EXPLODES_ON_EXPIRATION]?;
|
|
210
|
+
private [BuffPropertyKey.ABILITY_COOLDOWN_FACTOR]?;
|
|
211
|
+
private [BuffPropertyKey.ABILITY_COOLDOWN_MODIFIER]?;
|
|
166
212
|
protected static readonly defaultParameters: BuffParameters;
|
|
167
213
|
get source(): Unit;
|
|
168
214
|
readonly typeId: ApplicableBuffTypeId;
|
|
@@ -176,12 +222,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
176
222
|
private readonly _level?;
|
|
177
223
|
private readonly _spellStealPriority?;
|
|
178
224
|
private readonly _learnLevelMinimum?;
|
|
179
|
-
private
|
|
225
|
+
private readonly [BuffPropertyKey.MISS_PROBABILITY]?;
|
|
180
226
|
private readonly _abilityTypeIds?;
|
|
181
227
|
private _behaviors?;
|
|
182
|
-
|
|
183
|
-
private addOrUpdateOrRemoveUnitBonus;
|
|
184
|
-
constructor(target: Unit, ...parameters: BuffConstructorParameters<AdditionalParameters>);
|
|
228
|
+
constructor(target: Unit, ...parameters: BuffConstructorParameters<Buff<AdditionalParameters>>);
|
|
185
229
|
get level(): number;
|
|
186
230
|
get remainingDamageOverDuration(): number;
|
|
187
231
|
set remainingDamageOverDuration(remainingDamageOverDuration: number);
|
|
@@ -203,10 +247,14 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
203
247
|
set damageOnExpiration(damageOnExpiration: number);
|
|
204
248
|
get healingOnExpiration(): number;
|
|
205
249
|
set healingOnExpiration(healingOnExpiration: number);
|
|
250
|
+
get damageFactor(): number;
|
|
251
|
+
set damageFactor(damageFactor: number);
|
|
206
252
|
get receivedDamageFactor(): number;
|
|
207
253
|
set receivedDamageFactor(receivedDamageFactor: number);
|
|
208
254
|
get armorIncrease(): number;
|
|
209
255
|
set armorIncrease(armorIncrease: number);
|
|
256
|
+
get turnsIntoGhost(): boolean;
|
|
257
|
+
set turnsIntoGhost(turnsIntoGhost: boolean);
|
|
210
258
|
get stuns(): boolean;
|
|
211
259
|
set stuns(stuns: boolean);
|
|
212
260
|
get ignoresStunImmunity(): boolean;
|
|
@@ -219,6 +267,10 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
219
267
|
set killsOnExpiration(killsOnExpiration: boolean);
|
|
220
268
|
get explodesOnExpiration(): boolean;
|
|
221
269
|
set explodesOnExpiration(killsOnExpiration: boolean);
|
|
270
|
+
get maximumDamageDealtEventCount(): number;
|
|
271
|
+
set maximumDamageDealtEventCount(maximumDamageDealtEventCount: number);
|
|
272
|
+
get maximumDamageReceivedEventCount(): number;
|
|
273
|
+
set maximumDamageReceivedEventCount(maximumDamageReceivedEventCount: number);
|
|
222
274
|
get maximumAutoAttackCount(): number;
|
|
223
275
|
set maximumAutoAttackCount(maximumAutoAttackCount: number);
|
|
224
276
|
get durationIncreaseOnAutoAttack(): number;
|
|
@@ -227,16 +279,40 @@ export declare class Buff<AdditionalParameters extends Prohibit<Record<string, a
|
|
|
227
279
|
set attackSpeedIncreaseFactor(attackSpeedIncreaseFactor: number);
|
|
228
280
|
get movementSpeedIncreaseFactor(): number;
|
|
229
281
|
set movementSpeedIncreaseFactor(movementSpeedIncreaseFactor: number);
|
|
282
|
+
get evasionProbability(): number;
|
|
283
|
+
set evasionProbability(evasionProbability: number);
|
|
284
|
+
get manaRegenerationRateIncreaseFactor(): number;
|
|
285
|
+
set manaRegenerationRateIncreaseFactor(manaRegenerationRateIncreaseFactor: number);
|
|
230
286
|
get duration(): number;
|
|
287
|
+
set duration(duration: number);
|
|
231
288
|
get remainingDuration(): number;
|
|
232
289
|
set remainingDuration(remainingDuration: number);
|
|
233
|
-
|
|
290
|
+
get absorbedDamageFactor(): number;
|
|
291
|
+
set absorbedDamageFactor(absorbedDamageFactor: number);
|
|
292
|
+
get maximumDamageAbsorbed(): number;
|
|
293
|
+
set maximumDamageAbsorbed(maximumDamageAbsorbed: number);
|
|
294
|
+
get damageAbsorbed(): number;
|
|
295
|
+
get destroysOnMaximumDamageAbsorbed(): boolean;
|
|
296
|
+
set destroysOnMaximumDamageAbsorbed(destroysOnMaximumDamageAbsorbed: boolean);
|
|
297
|
+
get abilityCooldownFactor(): number;
|
|
298
|
+
set abilityCooldownFactor(abilityCooldownFactor: number);
|
|
299
|
+
onAbilityGained(ability: Ability): void;
|
|
300
|
+
onAbilityLost(ability: Ability): void;
|
|
301
|
+
flashEffect(...parameters: [
|
|
302
|
+
...widgetOrXY: [] | [Widget] | [x: number, x: number],
|
|
303
|
+
...parametersOrDuration: [] | [EffectParameters] | [number]
|
|
304
|
+
]): void;
|
|
234
305
|
flashSpecialEffect(...parameters: [...widget: [] | [Widget], ...duration: [] | [number]]): void;
|
|
306
|
+
expire(): void;
|
|
307
|
+
protected onCreate(): void;
|
|
235
308
|
protected onDestroy(): Destructor;
|
|
236
309
|
static apply<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, ...args: Args): T | undefined;
|
|
237
310
|
static getByTypeId<T extends Buff<any>, Args extends any[]>(this: BuffConstructor<T, Args>, unit: Unit, typeId: ApplicableBuffTypeId): T | undefined;
|
|
238
311
|
onExpiration(): void;
|
|
239
312
|
onDeath(source: Unit | undefined): void;
|
|
240
313
|
onDamageDealt(target: Unit, event: DamageEvent): void;
|
|
314
|
+
onDamageReceived(source: Unit | undefined, event: DamageEvent): void;
|
|
315
|
+
static readonly createdEvent: Event<[Buff<object>]>;
|
|
316
|
+
static readonly beingDestroyedEvent: Event<[Buff<object>]>;
|
|
241
317
|
}
|
|
242
318
|
export {};
|