warscript 0.0.1-dev.c59dd14 → 0.0.1-dev.c60b168
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 +5 -1
- package/attributes.lua +8 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- 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 +8 -1
- package/core/types/frame.lua +103 -13
- package/core/types/group.d.ts +0 -1
- package/core/types/image.d.ts +0 -1
- package/core/types/player.lua +3 -1
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +79 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/timer.d.ts +8 -8
- package/core/types/timer.lua +39 -23
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +844 -788
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +15 -10
- package/engine/behavior.lua +112 -33
- 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 +32 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +39 -11
- package/engine/behaviour/ability/damage.lua +83 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- 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 +16 -0
- package/engine/behaviour/ability/remove-buffs.lua +28 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +20 -4
- package/engine/behaviour/ability.lua +111 -47
- package/engine/behaviour/unit/stun-immunity.d.ts +5 -4
- package/engine/behaviour/unit/stun-immunity.lua +43 -27
- package/engine/behaviour/unit.d.ts +40 -2
- package/engine/behaviour/unit.lua +208 -0
- package/engine/buff.d.ts +104 -44
- package/engine/buff.lua +453 -215
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +128 -85
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +7 -4
- package/engine/internal/item.lua +141 -35
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- 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/unit/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +98 -14
- 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/bonus.d.ts +11 -8
- package/engine/internal/unit/bonus.lua +23 -1
- 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/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 +51 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -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+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +33 -7
- package/engine/internal/unit.d.ts +55 -18
- package/engine/internal/unit.lua +392 -157
- 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 +7 -2
- package/engine/local-client.lua +82 -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 -3
- 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/combat-classification.d.ts +0 -2
- 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.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -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/channel.d.ts +0 -1
- 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/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 -18
- package/engine/object-data/entry/ability-type.lua +90 -36
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +1 -2
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- 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 +21 -6
- package/engine/object-data/entry/unit-type.lua +214 -93
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- 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 +57 -3
- package/engine/object-field/unit.lua +207 -7
- package/engine/object-field.d.ts +17 -7
- package/engine/object-field.lua +190 -90
- package/engine/random.d.ts +1 -5
- 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 -0
- package/engine/standard/fields/ability.lua +2 -0
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +249 -10
- package/engine/unit.d.ts +4 -0
- package/engine/unit.lua +13 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- 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/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +2 -3
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/package.json +13 -13
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +10 -0
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +16 -0
- package/string.lua +5 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +12 -5
- package/utility/arrays.lua +37 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/callback-array.d.ts +13 -0
- package/utility/callback-array.lua +46 -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-set.d.ts +12 -3
- package/utility/linked-set.lua +8 -2
- package/utility/lua-maps.d.ts +5 -2
- package/utility/lua-maps.lua +20 -0
- package/utility/lua-sets.d.ts +3 -2
- package/utility/lua-sets.lua +7 -0
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +1 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -5,8 +5,8 @@ import { Event } from "../../event";
|
|
|
5
5
|
import { ReadonlyRect } from "../../core/types/rect";
|
|
6
6
|
import { ItemAbility } from "./ability";
|
|
7
7
|
import { AbilityTypeId } from "../object-data/entry/ability-type";
|
|
8
|
+
import type { ItemTypeId } from "../object-data/entry/item-type";
|
|
8
9
|
type DefenseType = 0 | 1 | 2 | 3 | 4 | 5;
|
|
9
|
-
export declare const addAndGetAbility: (handle: jitem, abilityTypeId: AbilityTypeId) => jability | null;
|
|
10
10
|
declare const enum ItemPropertyKey {
|
|
11
11
|
ABILITIES = 100,
|
|
12
12
|
LUA_INDEX_BY_ABILITY_TYPE_ID = 101
|
|
@@ -17,7 +17,7 @@ export declare class Item extends Handle<jitem> {
|
|
|
17
17
|
constructor(handle: jitem);
|
|
18
18
|
protected onDestroy(): HandleDestructor;
|
|
19
19
|
static create<T extends Item>(this: typeof Item & (new (handle: jitem) => T), id: number, x: number, y: number, skinId?: number): T;
|
|
20
|
-
get typeId():
|
|
20
|
+
get typeId(): ItemTypeId;
|
|
21
21
|
set skinId(v: number);
|
|
22
22
|
get skinId(): number;
|
|
23
23
|
set name(v: string);
|
|
@@ -73,14 +73,17 @@ export declare class Item extends Handle<jitem> {
|
|
|
73
73
|
set position(v: Vec2);
|
|
74
74
|
set charges(v: number);
|
|
75
75
|
get charges(): number;
|
|
76
|
+
consumeCharge(): boolean;
|
|
77
|
+
consumeCharges(count: number): boolean;
|
|
76
78
|
addAbility(abilityTypeId: AbilityTypeId): ItemAbility | undefined;
|
|
77
79
|
removeAbility(abilityTypeId: AbilityTypeId): boolean;
|
|
78
80
|
hasAbility(abilityTypeId: AbilityTypeId): boolean;
|
|
79
81
|
getAbility(abilityTypeId: AbilityTypeId): ItemAbility | undefined;
|
|
80
82
|
get abilities(): readonly ItemAbility[];
|
|
81
|
-
static getInRange(
|
|
83
|
+
static getInRange(x: number, y: number, range: number): Item[];
|
|
82
84
|
static getInRect(rect: ReadonlyRect): Item[];
|
|
83
85
|
static get onCreate(): Event<[Item]>;
|
|
84
|
-
static get
|
|
86
|
+
static get destroyEvent(): Event<[Item]>;
|
|
87
|
+
static readonly chargesChangedEvent: Event<[Item]>;
|
|
85
88
|
}
|
|
86
89
|
export {};
|
package/engine/internal/item.lua
CHANGED
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__New = ____lualib.__TS__New
|
|
2
3
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
4
|
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
5
|
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
6
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
6
7
|
local __TS__Delete = ____lualib.__TS__Delete
|
|
7
8
|
local ____exports = {}
|
|
9
|
+
local invoke
|
|
8
10
|
local ____handle = require("core.types.handle")
|
|
9
11
|
local Handle = ____handle.Handle
|
|
10
12
|
local ____color = require("core.types.color")
|
|
11
13
|
local Color = ____color.Color
|
|
14
|
+
local ____event = require("event")
|
|
15
|
+
local Event = ____event.Event
|
|
12
16
|
local ____rect = require("core.types.rect")
|
|
13
17
|
local Rect = ____rect.Rect
|
|
14
18
|
local ____ability = require("engine.internal.ability")
|
|
15
19
|
local ItemAbility = ____ability.ItemAbility
|
|
16
20
|
local ____ability = require("engine.internal.item.ability")
|
|
17
21
|
local doAbilityAction = ____ability.doAbilityAction
|
|
22
|
+
local doAbilityActionForceDummy = ____ability.doAbilityActionForceDummy
|
|
23
|
+
local itemAbilityDummy = ____ability.itemAbilityDummy
|
|
24
|
+
local ____dummy_2Ditem = require("engine.internal.object-data.dummy-item")
|
|
25
|
+
local DUMMY_ITEM_ID = ____dummy_2Ditem.DUMMY_ITEM_ID
|
|
26
|
+
local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
|
|
27
|
+
local SLOT_FILLER_ITEM_TYPE_ID = ____add_2Ditem_2Dto_2Dslot.SLOT_FILLER_ITEM_TYPE_ID
|
|
28
|
+
local ____vec2 = require("math.vec2")
|
|
29
|
+
local distance = ____vec2.distance
|
|
30
|
+
local itemChargesChangeEvent = __TS__New(Event)
|
|
18
31
|
local itemAddAbility = BlzItemAddAbility
|
|
19
|
-
local itemRemoveAbility = BlzItemRemoveAbility
|
|
20
32
|
local getItemAbility = BlzGetItemAbility
|
|
21
33
|
local isItemPowerup = IsItemPowerup
|
|
22
34
|
local getItemAbilityByIndex = BlzGetItemAbilityByIndex
|
|
@@ -24,10 +36,34 @@ local getAbilityId = BlzGetAbilityId
|
|
|
24
36
|
local getWidgetLife = GetWidgetLife
|
|
25
37
|
local removeItem = RemoveItem
|
|
26
38
|
local getHandleId = GetHandleId
|
|
39
|
+
local setRect = SetRect
|
|
40
|
+
local enumItemsInRect = EnumItemsInRect
|
|
41
|
+
local getEnumItem = GetEnumItem
|
|
42
|
+
local getItemTypeId = GetItemTypeId
|
|
43
|
+
local getItemX = GetItemX
|
|
44
|
+
local getItemY = GetItemY
|
|
45
|
+
local getItemCharges = GetItemCharges
|
|
46
|
+
local setItemCharges = SetItemCharges
|
|
47
|
+
local unitRemoveAbility = UnitRemoveAbility
|
|
48
|
+
local unitRemoveItem = UnitRemoveItem
|
|
49
|
+
local unitUseItem = UnitUseItem
|
|
50
|
+
local unitUseItemPoint = UnitUseItemPoint
|
|
51
|
+
local unitUseItemTarget = UnitUseItemTarget
|
|
52
|
+
local tableRemove = table.remove
|
|
53
|
+
_G.SetItemCharges = function(whichItem, charges)
|
|
54
|
+
setItemCharges(whichItem, charges)
|
|
55
|
+
invoke(
|
|
56
|
+
itemChargesChangeEvent,
|
|
57
|
+
____exports.Item:of(whichItem)
|
|
58
|
+
)
|
|
59
|
+
end
|
|
27
60
|
local getItemIntegerField = BlzGetItemIntegerField
|
|
28
61
|
local setItemBooleanField = BlzSetItemBooleanField
|
|
29
62
|
local getItemBooleanField = BlzGetItemBooleanField
|
|
63
|
+
invoke = Event.invoke
|
|
30
64
|
local enumRect = Rect:create(0, 0, 0, 0).handle
|
|
65
|
+
---
|
|
66
|
+
-- @internal For use by internal systems only.
|
|
31
67
|
____exports.addAndGetAbility = function(handle, abilityTypeId)
|
|
32
68
|
if itemAddAbility(handle, abilityTypeId) then
|
|
33
69
|
return getItemAbility(handle, abilityTypeId)
|
|
@@ -53,6 +89,49 @@ local function getItemAbilities(handle, item)
|
|
|
53
89
|
end
|
|
54
90
|
return abilities
|
|
55
91
|
end
|
|
92
|
+
local function consumeCharge(handle)
|
|
93
|
+
do
|
|
94
|
+
local i = 0
|
|
95
|
+
local ability = getItemAbilityByIndex(handle, i)
|
|
96
|
+
while ability ~= nil do
|
|
97
|
+
unitRemoveAbility(
|
|
98
|
+
itemAbilityDummy,
|
|
99
|
+
getAbilityId(ability)
|
|
100
|
+
)
|
|
101
|
+
do
|
|
102
|
+
i = i + 1
|
|
103
|
+
ability = getItemAbilityByIndex(handle, i)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
return unitUseItem(itemAbilityDummy, handle) or unitUseItemPoint(itemAbilityDummy, handle, 0, 0) or unitUseItemTarget(itemAbilityDummy, handle, itemAbilityDummy)
|
|
108
|
+
end
|
|
109
|
+
local targetCollection
|
|
110
|
+
local targetCollectionNextIndex
|
|
111
|
+
local centerX
|
|
112
|
+
local centerY
|
|
113
|
+
local enumRange
|
|
114
|
+
local function collectIntoTarget()
|
|
115
|
+
local item = getEnumItem()
|
|
116
|
+
local typeId = getItemTypeId(item)
|
|
117
|
+
if typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
|
|
118
|
+
targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
|
|
119
|
+
targetCollectionNextIndex = targetCollectionNextIndex + 1
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
local function collectIntoTargetRange()
|
|
123
|
+
local item = getEnumItem()
|
|
124
|
+
local typeId = getItemTypeId(item)
|
|
125
|
+
if distance(
|
|
126
|
+
getItemX(item),
|
|
127
|
+
getItemY(item),
|
|
128
|
+
centerX,
|
|
129
|
+
centerY
|
|
130
|
+
) <= enumRange and typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
|
|
131
|
+
targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
|
|
132
|
+
targetCollectionNextIndex = targetCollectionNextIndex + 1
|
|
133
|
+
end
|
|
134
|
+
end
|
|
56
135
|
____exports.Item = __TS__Class()
|
|
57
136
|
local Item = ____exports.Item
|
|
58
137
|
Item.name = "Item"
|
|
@@ -68,6 +147,10 @@ function Item.prototype.____constructor(self, handle)
|
|
|
68
147
|
self[101] = luaIndexByAbilityTypeId
|
|
69
148
|
end
|
|
70
149
|
function Item.prototype.onDestroy(self)
|
|
150
|
+
local owner = self.owner
|
|
151
|
+
if owner ~= nil then
|
|
152
|
+
unitRemoveItem(owner.handle, self.handle)
|
|
153
|
+
end
|
|
71
154
|
local abilities = self[100]
|
|
72
155
|
for i = 1, #abilities do
|
|
73
156
|
abilities[i]:destroy()
|
|
@@ -78,6 +161,36 @@ end
|
|
|
78
161
|
function Item.create(self, id, x, y, skinId)
|
|
79
162
|
return self:of(BlzCreateItemWithSkin(id, x, y, skinId or id))
|
|
80
163
|
end
|
|
164
|
+
function Item.prototype.consumeCharge(self)
|
|
165
|
+
return self:consumeCharges(1)
|
|
166
|
+
end
|
|
167
|
+
function Item.prototype.consumeCharges(self, count)
|
|
168
|
+
local handle = self.handle
|
|
169
|
+
local charges = getItemCharges(handle)
|
|
170
|
+
if charges > count then
|
|
171
|
+
setItemCharges(handle, charges - count)
|
|
172
|
+
invoke(itemChargesChangeEvent, self)
|
|
173
|
+
return true
|
|
174
|
+
end
|
|
175
|
+
if charges == count then
|
|
176
|
+
if getItemBooleanField(handle, ITEM_BF_PERISHABLE) then
|
|
177
|
+
self:destroy()
|
|
178
|
+
return true
|
|
179
|
+
end
|
|
180
|
+
if not getItemBooleanField(handle, ITEM_BF_ACTIVELY_USED) then
|
|
181
|
+
setItemCharges(handle, 0)
|
|
182
|
+
invoke(itemChargesChangeEvent, self)
|
|
183
|
+
return true
|
|
184
|
+
end
|
|
185
|
+
setItemCharges(handle, 1)
|
|
186
|
+
local ____doAbilityActionForceDummy_2 = doAbilityActionForceDummy
|
|
187
|
+
local ____opt_0 = self.owner
|
|
188
|
+
____doAbilityActionForceDummy_2(handle, ____opt_0 and ____opt_0.handle, consumeCharge)
|
|
189
|
+
invoke(itemChargesChangeEvent, self)
|
|
190
|
+
return true
|
|
191
|
+
end
|
|
192
|
+
return false
|
|
193
|
+
end
|
|
81
194
|
function Item.prototype.addAbility(self, abilityTypeId)
|
|
82
195
|
local nativeAbility = doAbilityAction(self.handle, ____exports.addAndGetAbility, abilityTypeId)
|
|
83
196
|
if nativeAbility ~= nil then
|
|
@@ -93,14 +206,12 @@ end
|
|
|
93
206
|
function Item.prototype.removeAbility(self, abilityTypeId)
|
|
94
207
|
local luaIndexByAbilityTypeId = self[101]
|
|
95
208
|
local luaIndex = luaIndexByAbilityTypeId[abilityTypeId]
|
|
96
|
-
if luaIndex ~= nil
|
|
97
|
-
luaIndexByAbilityTypeId[abilityTypeId] = nil
|
|
209
|
+
if luaIndex ~= nil then
|
|
98
210
|
local abilities = self[100]
|
|
99
211
|
abilities[luaIndex]:destroy()
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
end
|
|
212
|
+
tableRemove(abilities, luaIndex)
|
|
213
|
+
luaIndexByAbilityTypeId[abilityTypeId] = nil
|
|
214
|
+
return true
|
|
104
215
|
end
|
|
105
216
|
return false
|
|
106
217
|
end
|
|
@@ -111,34 +222,27 @@ function Item.prototype.getAbility(self, abilityTypeId)
|
|
|
111
222
|
local ability = self[101][abilityTypeId] ~= nil and doAbilityAction(self.handle, getItemAbility, abilityTypeId)
|
|
112
223
|
return ability and ItemAbility:of(ability, abilityTypeId, self) or nil
|
|
113
224
|
end
|
|
114
|
-
function Item.getInRange(self,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
pos.y + range
|
|
122
|
-
)
|
|
123
|
-
EnumItemsInRect(
|
|
225
|
+
function Item.getInRange(self, x, y, range)
|
|
226
|
+
targetCollection = {}
|
|
227
|
+
targetCollectionNextIndex = 1
|
|
228
|
+
centerX = x
|
|
229
|
+
centerY = y
|
|
230
|
+
enumRange = range
|
|
231
|
+
setRect(
|
|
124
232
|
enumRect,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
233
|
+
x - range,
|
|
234
|
+
y - range,
|
|
235
|
+
x + range,
|
|
236
|
+
y + range
|
|
129
237
|
)
|
|
130
|
-
|
|
238
|
+
enumItemsInRect(enumRect, nil, collectIntoTargetRange)
|
|
239
|
+
return targetCollection
|
|
131
240
|
end
|
|
132
241
|
function Item.getInRect(self, rect)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
function()
|
|
138
|
-
collection[#collection + 1] = self:of(GetEnumItem())
|
|
139
|
-
end
|
|
140
|
-
)
|
|
141
|
-
return collection
|
|
242
|
+
targetCollection = {}
|
|
243
|
+
targetCollectionNextIndex = 1
|
|
244
|
+
enumItemsInRect(rect.handle, nil, collectIntoTarget)
|
|
245
|
+
return targetCollection
|
|
142
246
|
end
|
|
143
247
|
__TS__SetDescriptor(
|
|
144
248
|
Item.prototype,
|
|
@@ -270,7 +374,7 @@ __TS__SetDescriptor(
|
|
|
270
374
|
"perishable",
|
|
271
375
|
{
|
|
272
376
|
get = function(self)
|
|
273
|
-
return
|
|
377
|
+
return getItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
|
|
274
378
|
end,
|
|
275
379
|
set = function(self, v)
|
|
276
380
|
BlzSetItemBooleanField(self.handle, ITEM_BF_PERISHABLE, v)
|
|
@@ -526,10 +630,11 @@ __TS__SetDescriptor(
|
|
|
526
630
|
"charges",
|
|
527
631
|
{
|
|
528
632
|
get = function(self)
|
|
529
|
-
return
|
|
633
|
+
return getItemCharges(self.handle)
|
|
530
634
|
end,
|
|
531
635
|
set = function(self, v)
|
|
532
|
-
|
|
636
|
+
setItemCharges(self.handle, v)
|
|
637
|
+
invoke(itemChargesChangeEvent, self)
|
|
533
638
|
end
|
|
534
639
|
},
|
|
535
640
|
true
|
|
@@ -551,11 +656,12 @@ __TS__ObjectDefineProperty(
|
|
|
551
656
|
)
|
|
552
657
|
__TS__ObjectDefineProperty(
|
|
553
658
|
Item,
|
|
554
|
-
"
|
|
659
|
+
"destroyEvent",
|
|
555
660
|
{get = function(self)
|
|
556
661
|
return self.onDestroyEvent
|
|
557
662
|
end}
|
|
558
663
|
)
|
|
664
|
+
Item.chargesChangedEvent = itemChargesChangeEvent
|
|
559
665
|
local getManipulatedItem = GetManipulatedItem
|
|
560
666
|
local trigger = CreateTrigger()
|
|
561
667
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_PICKUP_ITEM)
|
|
@@ -8,6 +8,6 @@ local DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD = ____ability.DURATION_NORMAL_AB
|
|
|
8
8
|
-- @internal For use by internal systems only.
|
|
9
9
|
____exports.getAbilityDuration = function(ability, target)
|
|
10
10
|
local level = ability.level
|
|
11
|
-
return target ~= nil and target:hasClassification(UnitClassification.RESISTANT) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
|
|
11
|
+
return target ~= nil and (target.isHero or target:getField(UNIT_IF_LEVEL) >= 6 or target:hasClassification(UnitClassification.RESISTANT)) and DURATION_HERO_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level) or DURATION_NORMAL_ABILITY_FLOAT_LEVEL_FIELD:getValue(ability, level)
|
|
12
12
|
end
|
|
13
13
|
return ____exports
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local disableAbility = BlzUnitDisableAbility
|
|
3
|
+
---
|
|
4
|
+
-- @internal For use by internal systems only.
|
|
5
|
+
____exports.increaseAbilityDisableCounter = function(unit, abilityTypeId, times)
|
|
6
|
+
for _ = 1, times do
|
|
7
|
+
disableAbility(unit, abilityTypeId, true, false)
|
|
8
|
+
end
|
|
9
|
+
for _ = times, -1 do
|
|
10
|
+
disableAbility(unit, abilityTypeId, false, false)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
return ____exports
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local getLocalClientWidth = BlzGetLocalClientWidth
|
|
3
|
+
local getLocalClientHeight = BlzGetLocalClientHeight
|
|
4
|
+
---
|
|
5
|
+
-- @internal For use by internal systems only.
|
|
6
|
+
____exports.getFrameMinXMaxX = function()
|
|
7
|
+
local w = getLocalClientWidth()
|
|
8
|
+
local h = getLocalClientHeight()
|
|
9
|
+
local width4by3 = (w - h / 600 * 800) / 2
|
|
10
|
+
local pxtodpi = 0.6 / h
|
|
11
|
+
local minX = -width4by3 * pxtodpi
|
|
12
|
+
local maxX = minX + w * pxtodpi
|
|
13
|
+
return minX, maxX
|
|
14
|
+
end
|
|
15
|
+
---
|
|
16
|
+
-- @internal For use by internal systems only.
|
|
17
|
+
____exports.FRAME_MIN_Y = 0
|
|
18
|
+
---
|
|
19
|
+
-- @internal For use by internal systems only.
|
|
20
|
+
____exports.FRAME_MAX_Y = 0.6
|
|
21
|
+
return ____exports
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local getLocationZ = GetLocationZ
|
|
3
|
+
local moveLocation = MoveLocation
|
|
4
|
+
local location = Location(0, 0)
|
|
5
|
+
---
|
|
6
|
+
-- @internal For use by internal systems only.
|
|
7
|
+
____exports.getTerrainZ = function(x, y)
|
|
8
|
+
moveLocation(location, x, y)
|
|
9
|
+
return getLocationZ(location)
|
|
10
|
+
end
|
|
11
|
+
return ____exports
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
export
|
|
2
|
+
export {};
|
|
@@ -10,5 +10,7 @@ ____exports.AUTO_ATTACK_SPEED_INCREASE_DUMMY_ABILITY_TYPE_ID = compiletime(funct
|
|
|
10
10
|
abilityType.autoAttackSpeedIncreaseFactor = 0
|
|
11
11
|
return abilityType.id
|
|
12
12
|
end)
|
|
13
|
+
---
|
|
14
|
+
-- @internal For use by internal systems.
|
|
13
15
|
____exports.AUTO_ATTACK_SPEED_INCREASE_FACTOR_ABILITY_FIELD = ABILITY_RLF_ATTACK_SPEED_INCREASE_ISX1
|
|
14
16
|
return ____exports
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____evasion = require("engine.object-data.entry.ability-type.evasion")
|
|
3
|
+
local EvasionAbilityType = ____evasion.EvasionAbilityType
|
|
4
|
+
---
|
|
5
|
+
-- @internal For use by internal systems.
|
|
6
|
+
____exports.EVASION_PROBABILITY_DUMMY_ABILITY_TYPE_ID = compiletime(function()
|
|
7
|
+
local abilityType = EvasionAbilityType:create()
|
|
8
|
+
abilityType.isInternal = true
|
|
9
|
+
abilityType.isButtonVisible = false
|
|
10
|
+
abilityType.evasionProbability = 0
|
|
11
|
+
return abilityType.id
|
|
12
|
+
end)
|
|
13
|
+
---
|
|
14
|
+
-- @internal For use by internal systems.
|
|
15
|
+
____exports.EVASION_PROBABILITY_ABILITY_FIELD = ABILITY_RLF_CHANCE_TO_EVADE_EEV1
|
|
16
|
+
return ____exports
|
|
@@ -3,7 +3,7 @@ import { Ability } from "../ability";
|
|
|
3
3
|
import { Destructable } from "../../../core/types/destructable";
|
|
4
4
|
import { Item } from "../item";
|
|
5
5
|
import { Widget } from "../../../core/types/widget";
|
|
6
|
-
import { DispatchingEvent } from "../../../event";
|
|
6
|
+
import { DispatchingEvent, Event } from "../../../event";
|
|
7
7
|
declare module "../unit" {
|
|
8
8
|
namespace Unit {
|
|
9
9
|
const abilityCastingStartEvent: DispatchingEvent<[Unit, Ability]>;
|
|
@@ -131,6 +131,41 @@ declare module "../unit" {
|
|
|
131
131
|
const abilityNoTargetChannelingStartEvent: DispatchingEvent<[Unit, Ability]>;
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
+
declare module "../unit" {
|
|
135
|
+
namespace Unit {
|
|
136
|
+
const abilityImpactEvent: DispatchingEvent<[Unit, Ability]>;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
declare module "../unit" {
|
|
140
|
+
namespace Unit {
|
|
141
|
+
const abilityWidgetTargetImpactEvent: DispatchingEvent<[Unit, Ability, Widget]>;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
declare module "../unit" {
|
|
145
|
+
namespace Unit {
|
|
146
|
+
const abilityUnitTargetImpactEvent: DispatchingEvent<[Unit, Ability, Unit]>;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
declare module "../unit" {
|
|
150
|
+
namespace Unit {
|
|
151
|
+
const abilityItemTargetImpactEvent: DispatchingEvent<[Unit, Ability, Item]>;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
declare module "../unit" {
|
|
155
|
+
namespace Unit {
|
|
156
|
+
const abilityDestructibleTargetImpactEvent: DispatchingEvent<[Unit, Ability, Destructable]>;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
declare module "../unit" {
|
|
160
|
+
namespace Unit {
|
|
161
|
+
const abilityPointTargetImpactEvent: DispatchingEvent<[Unit, Ability, number, number]>;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
declare module "../unit" {
|
|
165
|
+
namespace Unit {
|
|
166
|
+
const abilityNoTargetImpactEvent: DispatchingEvent<[Unit, Ability]>;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
134
169
|
declare module "../unit" {
|
|
135
170
|
namespace Unit {
|
|
136
171
|
const abilityChannelingFinishEvent: DispatchingEvent<[Unit, Ability]>;
|
|
@@ -141,3 +176,12 @@ declare module "../unit" {
|
|
|
141
176
|
const abilityStopEvent: DispatchingEvent<[Unit, Ability]>;
|
|
142
177
|
}
|
|
143
178
|
}
|
|
179
|
+
declare module "../unit" {
|
|
180
|
+
namespace Unit {
|
|
181
|
+
const abilityCommandEvent: {
|
|
182
|
+
readonly [abilityTypeId: number]: {
|
|
183
|
+
readonly [orderTypeStringId: string]: Event<[Unit, Ability, string]>;
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -15,8 +15,17 @@ local UnitTriggerEvent = ____unit.UnitTriggerEvent
|
|
|
15
15
|
local ____event = require("event")
|
|
16
16
|
local createDispatchingEvent = ____event.createDispatchingEvent
|
|
17
17
|
local DependentInitializingEvent = ____event.DependentInitializingEvent
|
|
18
|
+
local Event = ____event.Event
|
|
19
|
+
local InitializingEvent = ____event.InitializingEvent
|
|
18
20
|
local ____preconditions = require("utility.preconditions")
|
|
19
21
|
local checkNotNull = ____preconditions.checkNotNull
|
|
22
|
+
local ____lazy = require("utility.lazy")
|
|
23
|
+
local lazyRecord = ____lazy.lazyRecord
|
|
24
|
+
local ____timer = require("core.types.timer")
|
|
25
|
+
local Timer = ____timer.Timer
|
|
26
|
+
local eventInvoke = Event.invoke
|
|
27
|
+
local condition = Condition
|
|
28
|
+
local createTrigger = CreateTrigger
|
|
20
29
|
local getItemAbility = BlzGetItemAbility
|
|
21
30
|
local getSpellAbility = GetSpellAbility
|
|
22
31
|
local getSpellAbilityId = GetSpellAbilityId
|
|
@@ -26,11 +35,10 @@ local getSpellTargetUnit = GetSpellTargetUnit
|
|
|
26
35
|
local getSpellTargetX = GetSpellTargetX
|
|
27
36
|
local getSpellTargetY = GetSpellTargetY
|
|
28
37
|
local getTriggerUnit = GetTriggerUnit
|
|
29
|
-
local
|
|
30
|
-
local
|
|
38
|
+
local triggerAddCondition = TriggerAddCondition
|
|
39
|
+
local triggerRegisterCommandEvent = TriggerRegisterCommandEvent
|
|
31
40
|
local unitInventorySize = UnitInventorySize
|
|
32
41
|
local unitItemInSlot = UnitItemInSlot
|
|
33
|
-
local unitRemoveAbility = UnitRemoveAbility
|
|
34
42
|
local function retrieveAbility(unit, ability, abilityId)
|
|
35
43
|
if ability == nil then
|
|
36
44
|
return __TS__New(
|
|
@@ -39,17 +47,6 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
39
47
|
Unit:of(unit)
|
|
40
48
|
)
|
|
41
49
|
end
|
|
42
|
-
if not unitAddAbility(unit, abilityId) then
|
|
43
|
-
if getUnitAbility(unit, abilityId) == ability then
|
|
44
|
-
return UnitAbility:of(
|
|
45
|
-
ability,
|
|
46
|
-
abilityId,
|
|
47
|
-
Unit:of(unit)
|
|
48
|
-
)
|
|
49
|
-
end
|
|
50
|
-
else
|
|
51
|
-
unitRemoveAbility(unit, abilityId)
|
|
52
|
-
end
|
|
53
50
|
for i = 0, unitInventorySize(unit) - 1 do
|
|
54
51
|
local item = unitItemInSlot(unit, i)
|
|
55
52
|
if getItemAbility(item, abilityId) == ability then
|
|
@@ -350,6 +347,66 @@ rawset(
|
|
|
350
347
|
extractAbilityTypeId
|
|
351
348
|
)
|
|
352
349
|
)
|
|
350
|
+
local internalAbilityImpactEvent = __TS__New(Event)
|
|
351
|
+
internalAbilityChannelingStartEvent:addListener(function(...)
|
|
352
|
+
Timer:run(eventInvoke, internalAbilityImpactEvent, ...)
|
|
353
|
+
end)
|
|
354
|
+
rawset(
|
|
355
|
+
Unit,
|
|
356
|
+
"abilityImpactEvent",
|
|
357
|
+
createDispatchingEvent(
|
|
358
|
+
createCommonEvent(internalAbilityImpactEvent),
|
|
359
|
+
extractAbilityTypeId
|
|
360
|
+
)
|
|
361
|
+
)
|
|
362
|
+
rawset(
|
|
363
|
+
Unit,
|
|
364
|
+
"abilityWidgetTargetImpactEvent",
|
|
365
|
+
createDispatchingEvent(
|
|
366
|
+
createWidgetTargetEvent(internalAbilityImpactEvent),
|
|
367
|
+
extractAbilityTypeId
|
|
368
|
+
)
|
|
369
|
+
)
|
|
370
|
+
rawset(
|
|
371
|
+
Unit,
|
|
372
|
+
"abilityUnitTargetImpactEvent",
|
|
373
|
+
createDispatchingEvent(
|
|
374
|
+
createUnitTargetEvent(internalAbilityImpactEvent),
|
|
375
|
+
extractAbilityTypeId
|
|
376
|
+
)
|
|
377
|
+
)
|
|
378
|
+
rawset(
|
|
379
|
+
Unit,
|
|
380
|
+
"abilityItemTargetImpactEvent",
|
|
381
|
+
createDispatchingEvent(
|
|
382
|
+
createItemTargetEvent(internalAbilityImpactEvent),
|
|
383
|
+
extractAbilityTypeId
|
|
384
|
+
)
|
|
385
|
+
)
|
|
386
|
+
rawset(
|
|
387
|
+
Unit,
|
|
388
|
+
"abilityDestructibleTargetImpactEvent",
|
|
389
|
+
createDispatchingEvent(
|
|
390
|
+
createDestructibleTargetEvent(internalAbilityImpactEvent),
|
|
391
|
+
extractAbilityTypeId
|
|
392
|
+
)
|
|
393
|
+
)
|
|
394
|
+
rawset(
|
|
395
|
+
Unit,
|
|
396
|
+
"abilityPointTargetImpactEvent",
|
|
397
|
+
createDispatchingEvent(
|
|
398
|
+
createPointTargetEvent(internalAbilityImpactEvent),
|
|
399
|
+
extractAbilityTypeId
|
|
400
|
+
)
|
|
401
|
+
)
|
|
402
|
+
rawset(
|
|
403
|
+
Unit,
|
|
404
|
+
"abilityNoTargetImpactEvent",
|
|
405
|
+
createDispatchingEvent(
|
|
406
|
+
createNoTargetEvent(internalAbilityImpactEvent),
|
|
407
|
+
extractAbilityTypeId
|
|
408
|
+
)
|
|
409
|
+
)
|
|
353
410
|
rawset(
|
|
354
411
|
Unit,
|
|
355
412
|
"abilityChannelingFinishEvent",
|
|
@@ -366,4 +423,31 @@ rawset(
|
|
|
366
423
|
extractAbilityTypeId
|
|
367
424
|
)
|
|
368
425
|
)
|
|
426
|
+
rawset(
|
|
427
|
+
Unit,
|
|
428
|
+
"abilityCommandEvent",
|
|
429
|
+
lazyRecord(function(abilityTypeId)
|
|
430
|
+
return lazyRecord(function(orderTypeStringId)
|
|
431
|
+
return __TS__New(
|
|
432
|
+
InitializingEvent,
|
|
433
|
+
function(event)
|
|
434
|
+
local trigger = createTrigger()
|
|
435
|
+
triggerRegisterCommandEvent(trigger, abilityTypeId, orderTypeStringId)
|
|
436
|
+
triggerAddCondition(
|
|
437
|
+
trigger,
|
|
438
|
+
condition(function()
|
|
439
|
+
local unit = Unit:of(getTriggerUnit())
|
|
440
|
+
if unit ~= nil then
|
|
441
|
+
local ability = unit:getAbilityById(abilityTypeId)
|
|
442
|
+
if ability ~= nil then
|
|
443
|
+
eventInvoke(event, unit, ability, orderTypeStringId)
|
|
444
|
+
end
|
|
445
|
+
end
|
|
446
|
+
end)
|
|
447
|
+
)
|
|
448
|
+
end
|
|
449
|
+
)
|
|
450
|
+
end)
|
|
451
|
+
end)
|
|
452
|
+
)
|
|
369
453
|
return ____exports
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____unit = require("engine.internal.unit")
|
|
3
|
+
local Unit = ____unit.Unit
|
|
4
|
+
local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
|
|
5
|
+
local fillerItems = ____add_2Ditem_2Dto_2Dslot.fillerItems
|
|
6
|
+
local unitsWithFillerItems = ____add_2Ditem_2Dto_2Dslot.unitsWithFillerItems
|
|
7
|
+
local setItemVisible = SetItemVisible
|
|
8
|
+
local unitRemoveItem = UnitRemoveItem
|
|
9
|
+
Unit.itemPickedUpEvent:addListener(
|
|
10
|
+
4,
|
|
11
|
+
function(unit)
|
|
12
|
+
local handle = unit.handle
|
|
13
|
+
if unitsWithFillerItems[handle] ~= nil then
|
|
14
|
+
for previousSlot = 1, 6 do
|
|
15
|
+
local fillerItem = fillerItems[previousSlot]
|
|
16
|
+
unitRemoveItem(handle, fillerItem)
|
|
17
|
+
setItemVisible(fillerItem, false)
|
|
18
|
+
end
|
|
19
|
+
unitsWithFillerItems[handle] = nil
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
)
|
|
23
|
+
return ____exports
|