warscript 0.0.1-dev.f566ce7 → 0.0.1-dev.f594e71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +65 -36
- package/core/types/handle.lua +9 -9
- package/core/types/player.d.ts +2 -1
- package/core/types/player.lua +18 -13
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +1 -1
- package/core/types/sound.lua +13 -8
- package/core/types/unit.d.ts +4 -0
- package/core/types/unit.lua +4 -0
- package/decl/native.d.ts +705 -7
- package/engine/behaviour/ability/damage.lua +11 -14
- package/engine/behaviour/ability.d.ts +1 -0
- package/engine/behaviour/ability.lua +11 -0
- package/engine/behaviour/unit.d.ts +1 -0
- package/engine/behaviour/unit.lua +1 -0
- package/engine/buff.d.ts +12 -10
- package/engine/buff.lua +64 -16
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +4 -0
- package/engine/internal/ability.lua +37 -18
- package/engine/internal/item+owner.d.ts +1 -0
- package/engine/internal/item+owner.lua +7 -0
- package/engine/internal/item.d.ts +16 -1
- package/engine/internal/item.lua +130 -20
- package/engine/internal/unit/ability.lua +15 -3
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/bag.d.ts +18 -0
- package/engine/internal/unit/bag.lua +63 -0
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment.d.ts +36 -0
- package/engine/internal/unit/equipment.lua +169 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
- package/engine/internal/unit/{item.lua → inventory.lua} +25 -26
- package/engine/internal/unit/pseudo-passive-abilities.d.ts +2 -0
- package/engine/internal/unit/pseudo-passive-abilities.lua +11 -0
- package/engine/internal/unit+damage.d.ts +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit.d.ts +0 -1
- package/engine/internal/unit.lua +2 -7
- package/engine/local-client.d.ts +20 -0
- package/engine/local-client.lua +284 -53
- package/engine/object-data/auxiliary/equipment-slot.d.ts +12 -0
- package/engine/object-data/auxiliary/equipment-slot.lua +2 -0
- package/engine/object-data/auxiliary/equipment-type.d.ts +13 -0
- package/engine/object-data/auxiliary/equipment-type.lua +2 -0
- package/engine/object-data/auxiliary/item-tag.d.ts +12 -0
- package/engine/object-data/auxiliary/item-tag.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/entry/ability-type/apprehend.d.ts +22 -0
- package/engine/object-data/entry/ability-type/apprehend.lua +66 -0
- package/engine/object-data/entry/ability-type/banshee.d.ts +8 -0
- package/engine/object-data/entry/ability-type/banshee.lua +13 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/banshees-wail-damage-amp.lua +27 -0
- package/engine/object-data/entry/ability-type/banshees-wail.d.ts +31 -0
- package/engine/object-data/entry/ability-type/banshees-wail.lua +117 -0
- package/engine/object-data/entry/ability-type/battering-ram.d.ts +33 -0
- package/engine/object-data/entry/ability-type/battering-ram.lua +130 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +30 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.d.ts +27 -0
- package/engine/object-data/entry/ability-type/cleansing-fire.lua +104 -0
- package/engine/object-data/entry/ability-type/consecration.d.ts +15 -0
- package/engine/object-data/entry/ability-type/consecration.lua +52 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cooldown-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike-system.lua +65 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.d.ts +21 -0
- package/engine/object-data/entry/ability-type/deathseeker-arrows.lua +78 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.d.ts +8 -0
- package/engine/object-data/entry/ability-type/equipment-inventory-interface.lua +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment-inventory.lua +27 -0
- package/engine/object-data/entry/ability-type/equipment.d.ts +13 -0
- package/engine/object-data/entry/ability-type/equipment.lua +27 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.d.ts +8 -0
- package/engine/object-data/entry/ability-type/grant-talent-point.lua +13 -0
- package/engine/object-data/entry/ability-type/grim-conviction.d.ts +36 -0
- package/engine/object-data/entry/ability-type/grim-conviction.lua +131 -0
- package/engine/object-data/entry/ability-type/grit.d.ts +18 -0
- package/engine/object-data/entry/ability-type/grit.lua +65 -0
- package/engine/object-data/entry/ability-type/guiding-hand.d.ts +27 -0
- package/engine/object-data/entry/ability-type/guiding-hand.lua +104 -0
- package/engine/object-data/entry/ability-type/headsplitter.d.ts +27 -0
- package/engine/object-data/entry/ability-type/headsplitter.lua +104 -0
- package/engine/object-data/entry/ability-type/healing-modifier.d.ts +9 -0
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/heroic-slash.d.ts +18 -0
- package/engine/object-data/entry/ability-type/heroic-slash.lua +65 -0
- package/engine/object-data/entry/ability-type/holy-wrath.d.ts +30 -0
- package/engine/object-data/entry/ability-type/holy-wrath.lua +117 -0
- package/engine/object-data/entry/ability-type/inspire-courage.d.ts +18 -0
- package/engine/object-data/entry/ability-type/inspire-courage.lua +65 -0
- package/engine/object-data/entry/ability-type/lights-mercy.d.ts +27 -0
- package/engine/object-data/entry/ability-type/lights-mercy.lua +104 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.d.ts +12 -0
- package/engine/object-data/entry/ability-type/mana-efficiency.lua +39 -0
- package/engine/object-data/entry/ability-type/mind-control.d.ts +21 -0
- package/engine/object-data/entry/ability-type/mind-control.lua +78 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.d.ts +21 -0
- package/engine/object-data/entry/ability-type/on-attack-cast-spell.lua +52 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.d.ts +19 -0
- package/engine/object-data/entry/ability-type/on-basic-attack-cast-spell.lua +65 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.d.ts +15 -0
- package/engine/object-data/entry/ability-type/on-hit-cast-spell.lua +26 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.d.ts +6 -0
- package/engine/object-data/entry/ability-type/on-magic-attack-cast-spell.lua +12 -0
- package/engine/object-data/entry/ability-type/provoke.d.ts +21 -0
- package/engine/object-data/entry/ability-type/provoke.lua +66 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.d.ts +9 -0
- package/engine/object-data/entry/ability-type/raise-the-banner.lua +26 -0
- package/engine/object-data/entry/ability-type/resolve.d.ts +12 -0
- package/engine/object-data/entry/ability-type/resolve.lua +39 -0
- package/engine/object-data/entry/ability-type/righteous-fury.d.ts +33 -0
- package/engine/object-data/entry/ability-type/righteous-fury.lua +130 -0
- package/engine/object-data/entry/ability-type/sacred-aura.d.ts +27 -0
- package/engine/object-data/entry/ability-type/sacred-aura.lua +104 -0
- package/engine/object-data/entry/ability-type/soul-lantern.d.ts +30 -0
- package/engine/object-data/entry/ability-type/soul-lantern.lua +117 -0
- package/engine/object-data/entry/ability-type/spell-amp.d.ts +15 -0
- package/engine/object-data/entry/ability-type/spell-amp.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-critical-strike.lua +39 -0
- package/engine/object-data/entry/ability-type/spell-vamp.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spell-vamp.lua +39 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-evasion.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.d.ts +21 -0
- package/engine/object-data/entry/ability-type/stackable-hardened-skin.lua +78 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-life-steal.lua +26 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-spell-damage-reduction.lua +13 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.d.ts +9 -0
- package/engine/object-data/entry/ability-type/stackable-thorn-shield.lua +13 -0
- package/engine/object-data/entry/ability-type/stat-details.d.ts +12 -0
- package/engine/object-data/entry/ability-type/stat-details.lua +27 -0
- package/engine/object-data/entry/ability-type/surge-of-light.d.ts +33 -0
- package/engine/object-data/entry/ability-type/surge-of-light.lua +130 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.d.ts +57 -0
- package/engine/object-data/entry/ability-type/sweeping-strike.lua +234 -0
- package/engine/object-data/entry/ability-type/talents.d.ts +12 -0
- package/engine/object-data/entry/ability-type/talents.lua +27 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.d.ts +30 -0
- package/engine/object-data/entry/ability-type/unyielding-guard.lua +117 -0
- package/engine/object-data/entry/ability-type/valiant-charge.d.ts +27 -0
- package/engine/object-data/entry/ability-type/valiant-charge.lua +104 -0
- package/engine/object-data/entry/ability-type/warcry.d.ts +9 -0
- package/engine/object-data/entry/ability-type/warcry.lua +26 -0
- package/engine/object-data/entry/ability-type/withering-fire.d.ts +21 -0
- package/engine/object-data/entry/ability-type/withering-fire.lua +78 -0
- package/engine/object-data/entry/ability-type.d.ts +10 -3
- package/engine/object-data/entry/ability-type.lua +53 -0
- package/engine/object-data/entry/buff-type.d.ts +6 -2
- package/engine/object-data/entry/buff-type.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +6 -2
- package/engine/object-data/entry/destructible-type.lua +26 -0
- package/engine/object-data/entry/item-type.d.ts +12 -3
- package/engine/object-data/entry/item-type.lua +52 -0
- package/engine/object-data/entry/lightning-type.d.ts +2 -2
- package/engine/object-data/entry/sound-preset.d.ts +2 -2
- package/engine/object-data/entry/unit-type.d.ts +47 -2
- package/engine/object-data/entry/unit-type.lua +383 -49
- package/engine/object-data/entry/upgrade.d.ts +2 -2
- package/engine/object-data/entry.d.ts +4 -1
- package/engine/standard/entries/ability-type.d.ts +3102 -7
- package/engine/standard/entries/ability-type.lua +0 -6
- package/engine/standard/entries/item-type.d.ts +1299 -0
- package/engine/standard/entries/item-type.lua +2 -0
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/unit.d.ts +4 -1
- package/engine/unit.lua +4 -1
- package/event.d.ts +1 -1
- package/network.lua +25 -1
- package/operation.d.ts +8 -1
- package/operation.lua +37 -14
- package/package.json +2 -22
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____unit = require("engine.internal.unit")
|
|
7
|
+
local Unit = ____unit.Unit
|
|
8
|
+
local UnitTriggerEvent = ____unit.UnitTriggerEvent
|
|
9
|
+
local ____item = require("engine.internal.item")
|
|
10
|
+
local Item = ____item.Item
|
|
11
|
+
local ____event = require("event")
|
|
12
|
+
local IgnoreEvent = ____event.IgnoreEvent
|
|
13
|
+
local ____dummy = require("objutil.dummy")
|
|
14
|
+
local dummyUnitId = ____dummy.dummyUnitId
|
|
15
|
+
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
16
|
+
local ignoreEventsItems = ____ignore_2Devents_2Ditems.ignoreEventsItems
|
|
17
|
+
local convertEquipmentType = ConvertEquipmentType
|
|
18
|
+
local convertLoadoutSlot = ConvertLoadoutSlot
|
|
19
|
+
local getEquippedItem = GetEquippedItem
|
|
20
|
+
local getStackingItemSource = BlzGetStackingItemSource
|
|
21
|
+
local getStackingItemTarget = BlzGetStackingItemTarget
|
|
22
|
+
local getStackingItemTargetPreviousCharges = BlzGetStackingItemTargetPreviousCharges
|
|
23
|
+
local getTriggerUnit = GetTriggerUnit
|
|
24
|
+
local getUnequippedItem = GetUnequippedItem
|
|
25
|
+
local getUnitTypeId = GetUnitTypeId
|
|
26
|
+
local unitCanEquipItemOfEquipmentType = UnitCanEquipItemOfEquipmentType
|
|
27
|
+
local unitEquipItem = UnitEquipItem
|
|
28
|
+
local unitHasAnyItemEquiped = UnitHasAnyItemEquiped
|
|
29
|
+
local unitHasItemEquipmentOfType = UnitHasItemEquipmentOfType
|
|
30
|
+
local unitHasItemEquipped = UnitHasItemEquipped
|
|
31
|
+
local unitHasLoadoutSlotEmpty = UnitHasLoadoutSlotEmpty
|
|
32
|
+
local unitItemInEquipmentSlot = UnitItemInEquipmentSlot
|
|
33
|
+
local unitUnequipItem = UnitUnequipItem
|
|
34
|
+
local unitUnequipItemFromSlot = UnitUnequipItemFromSlot
|
|
35
|
+
local ____rawget = _G.rawget
|
|
36
|
+
local rawset = _G.rawset
|
|
37
|
+
local ____type = _G.type
|
|
38
|
+
local EQUIPMENT_SLOT_COUNT = bj_MAX_EQUIPMENT_INVENTORY
|
|
39
|
+
local handleByUnitEquipment = setmetatable({}, {__mode = "k"})
|
|
40
|
+
local function unitEquipmentNext(handle, slot)
|
|
41
|
+
if slot >= EQUIPMENT_SLOT_COUNT then
|
|
42
|
+
return nil, nil
|
|
43
|
+
end
|
|
44
|
+
return slot + 1, Item:of(unitItemInEquipmentSlot(
|
|
45
|
+
handle,
|
|
46
|
+
convertLoadoutSlot(slot)
|
|
47
|
+
))
|
|
48
|
+
end
|
|
49
|
+
--- A live view indexed by EquipmentSlot. Equip operations let the engine choose the slot.
|
|
50
|
+
____exports.UnitEquipment = __TS__Class()
|
|
51
|
+
local UnitEquipment = ____exports.UnitEquipment
|
|
52
|
+
UnitEquipment.name = "UnitEquipment"
|
|
53
|
+
function UnitEquipment.prototype.____constructor(self, handle)
|
|
54
|
+
handleByUnitEquipment[self] = handle
|
|
55
|
+
end
|
|
56
|
+
function UnitEquipment.prototype.equip(self, item)
|
|
57
|
+
return unitEquipItem(handleByUnitEquipment[self], item.handle)
|
|
58
|
+
end
|
|
59
|
+
function UnitEquipment.prototype.unequip(self, item)
|
|
60
|
+
unitUnequipItem(handleByUnitEquipment[self], item.handle)
|
|
61
|
+
end
|
|
62
|
+
function UnitEquipment.prototype.unequipSlot(self, slot)
|
|
63
|
+
return Item:of(unitUnequipItemFromSlot(
|
|
64
|
+
handleByUnitEquipment[self],
|
|
65
|
+
convertLoadoutSlot(slot)
|
|
66
|
+
))
|
|
67
|
+
end
|
|
68
|
+
function UnitEquipment.prototype.has(self, item)
|
|
69
|
+
return unitHasItemEquipped(handleByUnitEquipment[self], item.handle)
|
|
70
|
+
end
|
|
71
|
+
function UnitEquipment.prototype.hasAny(self)
|
|
72
|
+
return unitHasAnyItemEquiped(handleByUnitEquipment[self])
|
|
73
|
+
end
|
|
74
|
+
function UnitEquipment.prototype.isSlotEmpty(self, slot)
|
|
75
|
+
return unitHasLoadoutSlotEmpty(
|
|
76
|
+
handleByUnitEquipment[self],
|
|
77
|
+
convertLoadoutSlot(slot)
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
function UnitEquipment.prototype.hasType(self, ____type)
|
|
81
|
+
return unitHasItemEquipmentOfType(
|
|
82
|
+
handleByUnitEquipment[self],
|
|
83
|
+
convertEquipmentType(____type)
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
function UnitEquipment.prototype.canEquipType(self, ____type)
|
|
87
|
+
return unitCanEquipItemOfEquipmentType(
|
|
88
|
+
handleByUnitEquipment[self],
|
|
89
|
+
convertEquipmentType(____type)
|
|
90
|
+
)
|
|
91
|
+
end
|
|
92
|
+
function UnitEquipment.prototype.findSlot(self, item)
|
|
93
|
+
local handle = handleByUnitEquipment[self]
|
|
94
|
+
for slot = 0, EQUIPMENT_SLOT_COUNT - 1 do
|
|
95
|
+
if unitItemInEquipmentSlot(
|
|
96
|
+
handle,
|
|
97
|
+
convertLoadoutSlot(slot)
|
|
98
|
+
) == item.handle then
|
|
99
|
+
return slot
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
return nil
|
|
103
|
+
end
|
|
104
|
+
function UnitEquipment.prototype.__index(self, key)
|
|
105
|
+
if ____type(key) == "number" then
|
|
106
|
+
return Item:of(unitItemInEquipmentSlot(
|
|
107
|
+
handleByUnitEquipment[self],
|
|
108
|
+
convertLoadoutSlot(key - 1)
|
|
109
|
+
))
|
|
110
|
+
end
|
|
111
|
+
return ____rawget(____exports.UnitEquipment.prototype, key)
|
|
112
|
+
end
|
|
113
|
+
function UnitEquipment.prototype.__len(self)
|
|
114
|
+
return EQUIPMENT_SLOT_COUNT
|
|
115
|
+
end
|
|
116
|
+
function UnitEquipment.prototype.__ipairs(self)
|
|
117
|
+
return unitEquipmentNext, handleByUnitEquipment[self], 0
|
|
118
|
+
end
|
|
119
|
+
__TS__ObjectDefineProperty(
|
|
120
|
+
Unit.prototype,
|
|
121
|
+
"equipment",
|
|
122
|
+
{get = function(self)
|
|
123
|
+
local equipment = __TS__New(____exports.UnitEquipment, self.handle)
|
|
124
|
+
rawset(self, "equipment", equipment)
|
|
125
|
+
return equipment
|
|
126
|
+
end}
|
|
127
|
+
)
|
|
128
|
+
rawset(
|
|
129
|
+
Unit,
|
|
130
|
+
"itemEquippedEvent",
|
|
131
|
+
__TS__New(
|
|
132
|
+
UnitTriggerEvent,
|
|
133
|
+
EVENT_PLAYER_UNIT_EQUIP_ITEM,
|
|
134
|
+
function()
|
|
135
|
+
local unit = getTriggerUnit()
|
|
136
|
+
local item = getEquippedItem()
|
|
137
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
138
|
+
return Unit:of(unit), Item:of(item)
|
|
139
|
+
end
|
|
140
|
+
return IgnoreEvent
|
|
141
|
+
end
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
rawset(
|
|
145
|
+
Unit,
|
|
146
|
+
"itemUnequippedEvent",
|
|
147
|
+
__TS__New(
|
|
148
|
+
UnitTriggerEvent,
|
|
149
|
+
EVENT_PLAYER_UNIT_UNEQUIP_ITEM,
|
|
150
|
+
function()
|
|
151
|
+
local unit = getTriggerUnit()
|
|
152
|
+
local item = getUnequippedItem()
|
|
153
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not (ignoreEventsItems[item] ~= nil) then
|
|
154
|
+
return Unit:of(unit), Item:of(item)
|
|
155
|
+
end
|
|
156
|
+
return IgnoreEvent
|
|
157
|
+
end
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
rawset(
|
|
161
|
+
Unit,
|
|
162
|
+
"itemStackedEvent",
|
|
163
|
+
__TS__New(
|
|
164
|
+
UnitTriggerEvent,
|
|
165
|
+
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
166
|
+
function() return Unit:of(getTriggerUnit()), Item:of(getStackingItemTarget()), Item:of(getStackingItemSource()), getStackingItemTargetPreviousCharges() end
|
|
167
|
+
)
|
|
168
|
+
)
|
|
169
|
+
return ____exports
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Item } from "../item";
|
|
3
|
-
export interface
|
|
3
|
+
export interface UnitInventory extends ReadonlyArray<Item | undefined> {
|
|
4
4
|
readonly length: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
5
5
|
[0]: Item | undefined;
|
|
6
6
|
[1]: Item | undefined;
|
|
@@ -9,7 +9,7 @@ export interface UnitItems extends ReadonlyArray<Item | undefined> {
|
|
|
9
9
|
[4]: Item | undefined;
|
|
10
10
|
[5]: Item | undefined;
|
|
11
11
|
}
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class UnitInventory {
|
|
13
13
|
constructor(handle: junit);
|
|
14
14
|
findSlot(item: Item): 0 | 1 | 2 | 3 | 4 | 5 | undefined;
|
|
15
15
|
protected __newindex(slot: number, item: Item | undefined): void;
|
|
@@ -19,6 +19,6 @@ export declare class UnitItems {
|
|
|
19
19
|
}
|
|
20
20
|
declare module "../unit" {
|
|
21
21
|
interface Unit {
|
|
22
|
-
readonly
|
|
22
|
+
readonly inventory: UnitInventory;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -18,25 +18,24 @@ local setItemBooleanField = BlzSetItemBooleanField
|
|
|
18
18
|
local unitInventorySize = UnitInventorySize
|
|
19
19
|
local unitItemInSlot = UnitItemInSlot
|
|
20
20
|
local unitRemoveItemFromSlot = UnitRemoveItemFromSlot
|
|
21
|
-
local
|
|
22
|
-
local function
|
|
23
|
-
|
|
24
|
-
if index >> 3 == slot then
|
|
21
|
+
local handleByUnitInventory = setmetatable({}, {__mode = "k"})
|
|
22
|
+
local function unitInventoryNext(handle, slot)
|
|
23
|
+
if slot >= unitInventorySize(handle) then
|
|
25
24
|
return nil, nil
|
|
26
25
|
end
|
|
27
|
-
return
|
|
26
|
+
return slot + 1, Item:of(unitItemInSlot(handle, slot))
|
|
28
27
|
end
|
|
29
|
-
____exports.
|
|
30
|
-
local
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
28
|
+
____exports.UnitInventory = __TS__Class()
|
|
29
|
+
local UnitInventory = ____exports.UnitInventory
|
|
30
|
+
UnitInventory.name = "UnitInventory"
|
|
31
|
+
function UnitInventory.prototype.____constructor(self, handle)
|
|
32
|
+
handleByUnitInventory[self] = handle
|
|
34
33
|
end
|
|
35
|
-
function
|
|
36
|
-
return findUnitItemSlot(
|
|
34
|
+
function UnitInventory.prototype.findSlot(self, item)
|
|
35
|
+
return findUnitItemSlot(handleByUnitInventory[self], item.handle)
|
|
37
36
|
end
|
|
38
|
-
function
|
|
39
|
-
local handle =
|
|
37
|
+
function UnitInventory.prototype.__newindex(self, slot, item)
|
|
38
|
+
local handle = handleByUnitInventory[self]
|
|
40
39
|
if slot < 1 or slot > unitInventorySize(handle) then
|
|
41
40
|
return
|
|
42
41
|
end
|
|
@@ -53,26 +52,26 @@ function UnitItems.prototype.__newindex(self, slot, item)
|
|
|
53
52
|
end
|
|
54
53
|
end
|
|
55
54
|
end
|
|
56
|
-
function
|
|
55
|
+
function UnitInventory.prototype.__index(self, key)
|
|
57
56
|
if ____type(key) == "number" then
|
|
58
|
-
return Item:of(unitItemInSlot(
|
|
57
|
+
return Item:of(unitItemInSlot(handleByUnitInventory[self], key - 1))
|
|
59
58
|
end
|
|
60
|
-
return rawget(____exports.
|
|
59
|
+
return rawget(____exports.UnitInventory.prototype, key)
|
|
61
60
|
end
|
|
62
|
-
function
|
|
63
|
-
return unitInventorySize(
|
|
61
|
+
function UnitInventory.prototype.__len(self)
|
|
62
|
+
return unitInventorySize(handleByUnitInventory[self])
|
|
64
63
|
end
|
|
65
|
-
function
|
|
66
|
-
local handle =
|
|
67
|
-
return
|
|
64
|
+
function UnitInventory.prototype.__ipairs(self)
|
|
65
|
+
local handle = handleByUnitInventory[self]
|
|
66
|
+
return unitInventoryNext, handle, 0
|
|
68
67
|
end
|
|
69
68
|
__TS__ObjectDefineProperty(
|
|
70
69
|
Unit.prototype,
|
|
71
|
-
"
|
|
70
|
+
"inventory",
|
|
72
71
|
{get = function(self)
|
|
73
|
-
local
|
|
74
|
-
rawset(self, "
|
|
75
|
-
return
|
|
72
|
+
local inventory = __TS__New(____exports.UnitInventory, self.handle)
|
|
73
|
+
rawset(self, "inventory", inventory)
|
|
74
|
+
return inventory
|
|
76
75
|
end}
|
|
77
76
|
)
|
|
78
77
|
return ____exports
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
---
|
|
3
|
+
-- @internal For use by internal systems only.
|
|
4
|
+
____exports.compiletimePseudoPassiveAbilityTypeIds = {}
|
|
5
|
+
---
|
|
6
|
+
-- @internal For use by internal systems only.
|
|
7
|
+
____exports.pseudoPassiveAbilityTypeIds = postcompile(function() return ____exports.compiletimePseudoPassiveAbilityTypeIds end)
|
|
8
|
+
---
|
|
9
|
+
-- @internal For use by internal systems only.
|
|
10
|
+
____exports.pseudoPassiveAbilityOrderTypeStringId = "channel"
|
|
11
|
+
return ____exports
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
import "./unit/allowed-targets";
|
|
2
3
|
import { Widget } from "../../core/types/widget";
|
|
3
4
|
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
5
|
+
import { CombatClassifications } from "../object-data/auxiliary/combat-classification";
|
|
4
6
|
export type DamageType = jdamagetype;
|
|
5
7
|
export declare namespace DamageType {
|
|
6
8
|
const UNKNOWN: jdamagetype;
|
|
@@ -56,5 +58,12 @@ export declare namespace WeaponType {
|
|
|
56
58
|
declare module "./unit" {
|
|
57
59
|
interface Unit {
|
|
58
60
|
damageTarget(target: Widget, amount: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponType?: WeaponType, metadata?: unknown): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Deals amount to each allowed unit in collision range of (x, y).
|
|
63
|
+
* A positive maximumDamage caps the total requested damage, shared equally
|
|
64
|
+
* between the targets. Zero or omitted means unlimited; damage mitigation
|
|
65
|
+
* and damage-event modifiers are applied afterward by damageTarget.
|
|
66
|
+
*/
|
|
67
|
+
damageArea(x: number, y: number, range: number, allowedTargetCombatClassifications: CombatClassifications, amount: number, maximumDamage?: number, attack?: boolean, ranged?: boolean, attackType?: AttackType, damageType?: DamageType, weaponType?: WeaponType, metadata?: unknown): void;
|
|
59
68
|
}
|
|
60
69
|
}
|
|
@@ -3,6 +3,7 @@ local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
|
3
3
|
local ____exports = {}
|
|
4
4
|
local ____unit = require("engine.internal.unit")
|
|
5
5
|
local Unit = ____unit.Unit
|
|
6
|
+
require("engine.internal.unit.allowed-targets")
|
|
6
7
|
local ____player = require("core.types.player")
|
|
7
8
|
local Player = ____player.Player
|
|
8
9
|
local ____dummy = require("objutil.dummy")
|
|
@@ -11,6 +12,8 @@ local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
|
11
12
|
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
12
13
|
local ____damage_2Dmetadata_2Dby_2Dtarget = require("engine.internal.misc.damage-metadata-by-target")
|
|
13
14
|
local damageMetadataByTarget = ____damage_2Dmetadata_2Dby_2Dtarget.damageMetadataByTarget
|
|
15
|
+
local ____math = require("math")
|
|
16
|
+
local min = ____math.min
|
|
14
17
|
local createUnit = CreateUnit
|
|
15
18
|
local getOwningPlayer = GetOwningPlayer
|
|
16
19
|
local showUnit = ShowUnit
|
|
@@ -116,4 +119,34 @@ Unit.prototype.damageTarget = function(self, target, amount, attack, ranged, att
|
|
|
116
119
|
weaponType
|
|
117
120
|
)
|
|
118
121
|
end
|
|
122
|
+
Unit.prototype.damageArea = function(self, x, y, range, allowedTargetCombatClassifications, amount, maximumDamage, attack, ranged, attackType, damageType, weaponType, metadata)
|
|
123
|
+
if maximumDamage == nil then
|
|
124
|
+
maximumDamage = 0
|
|
125
|
+
end
|
|
126
|
+
local targets = Unit.getAllowedTargetsInCollisionRange(
|
|
127
|
+
self,
|
|
128
|
+
allowedTargetCombatClassifications,
|
|
129
|
+
x,
|
|
130
|
+
y,
|
|
131
|
+
range
|
|
132
|
+
)
|
|
133
|
+
if #targets == 0 then
|
|
134
|
+
return
|
|
135
|
+
end
|
|
136
|
+
if maximumDamage > 0 then
|
|
137
|
+
amount = min(amount, maximumDamage / #targets)
|
|
138
|
+
end
|
|
139
|
+
for ____, target in ipairs(targets) do
|
|
140
|
+
self:damageTarget(
|
|
141
|
+
target,
|
|
142
|
+
amount,
|
|
143
|
+
attack,
|
|
144
|
+
ranged,
|
|
145
|
+
attackType,
|
|
146
|
+
damageType,
|
|
147
|
+
weaponType,
|
|
148
|
+
metadata
|
|
149
|
+
)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
119
152
|
return ____exports
|
|
@@ -44,58 +44,84 @@ ____exports.MISSILE_DATA_BY_UNIT_TYPE_ID = (function()
|
|
|
44
44
|
UnitType:getAll(),
|
|
45
45
|
function(unitType) return unitType.id end,
|
|
46
46
|
function(unitType)
|
|
47
|
-
local ____ = unitType.missileImpactOffsetZSD
|
|
48
|
-
local ____ = unitType.missileImpactOffsetZHD
|
|
49
47
|
return {
|
|
50
48
|
[0] = unitType.missileImpactOffsetZSD ~= ____exports.DEFAULT_MISSILE_IMPACT_OFFSET_Z and unitType.missileImpactOffsetZSD or nil,
|
|
51
49
|
[1] = unitType.missileImpactOffsetZHD ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZHD or nil,
|
|
52
|
-
[2] = unitType.
|
|
53
|
-
[3] = unitType.
|
|
54
|
-
[4] = unitType.
|
|
55
|
-
[5] = unitType.
|
|
56
|
-
[6] = unitType.
|
|
57
|
-
[7] = unitType.
|
|
58
|
-
[8] = unitType.
|
|
59
|
-
[9] = unitType.
|
|
50
|
+
[2] = unitType.missileImpactOffsetZDE ~= unitType.missileImpactOffsetZSD and unitType.missileImpactOffsetZDE or nil,
|
|
51
|
+
[3] = unitType.missileLaunchOffsetX ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_X and unitType.missileLaunchOffsetX or nil,
|
|
52
|
+
[4] = unitType.missileLaunchOffsetY ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Y and unitType.missileLaunchOffsetY or nil,
|
|
53
|
+
[5] = unitType.missileLaunchOffsetZSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_OFFSET_Z and unitType.missileLaunchOffsetZSD or nil,
|
|
54
|
+
[6] = unitType.missileLaunchOffsetZHD ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZHD or nil,
|
|
55
|
+
[7] = unitType.missileLaunchOffsetZDE ~= unitType.missileLaunchOffsetZSD and unitType.missileLaunchOffsetZDE or nil,
|
|
56
|
+
[8] = unitType.missileLaunchVisualOffsetXSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_X and unitType.missileLaunchVisualOffsetXSD or nil,
|
|
57
|
+
[9] = unitType.missileLaunchVisualOffsetXHD ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXHD or nil,
|
|
58
|
+
[10] = unitType.missileLaunchVisualOffsetXDE ~= unitType.missileLaunchVisualOffsetXSD and unitType.missileLaunchVisualOffsetXDE or nil,
|
|
59
|
+
[11] = unitType.missileLaunchVisualOffsetYSD ~= ____exports.DEFAULT_MISSILE_LAUNCH_VISUAL_OFFSET_Y and unitType.missileLaunchVisualOffsetYSD or nil,
|
|
60
|
+
[12] = unitType.missileLaunchVisualOffsetYHD ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYHD or nil,
|
|
61
|
+
[13] = unitType.missileLaunchVisualOffsetYDE ~= unitType.missileLaunchVisualOffsetYSD and unitType.missileLaunchVisualOffsetYDE or nil
|
|
60
62
|
}
|
|
61
63
|
end
|
|
62
64
|
)
|
|
63
65
|
end),
|
|
64
66
|
function(data)
|
|
65
|
-
local
|
|
66
|
-
local
|
|
67
|
+
local ____setmetatable_10 = setmetatable
|
|
68
|
+
local ____LocalClient_isHD_1
|
|
67
69
|
if LocalClient.isHD then
|
|
68
|
-
|
|
70
|
+
____LocalClient_isHD_1 = data[1] or data[0]
|
|
69
71
|
else
|
|
70
|
-
|
|
72
|
+
local ____LocalClient_isDE_0
|
|
73
|
+
if LocalClient.isDE then
|
|
74
|
+
____LocalClient_isDE_0 = data[2] or data[0]
|
|
75
|
+
else
|
|
76
|
+
____LocalClient_isDE_0 = data[0]
|
|
77
|
+
end
|
|
78
|
+
____LocalClient_isHD_1 = ____LocalClient_isDE_0
|
|
71
79
|
end
|
|
72
|
-
local
|
|
73
|
-
local
|
|
74
|
-
local
|
|
80
|
+
local ____data__3_8 = data[3]
|
|
81
|
+
local ____data__4_9 = data[4]
|
|
82
|
+
local ____LocalClient_isHD_3
|
|
75
83
|
if LocalClient.isHD then
|
|
76
|
-
|
|
84
|
+
____LocalClient_isHD_3 = data[6] or data[5]
|
|
77
85
|
else
|
|
78
|
-
|
|
86
|
+
local ____LocalClient_isDE_2
|
|
87
|
+
if LocalClient.isDE then
|
|
88
|
+
____LocalClient_isDE_2 = data[7] or data[5]
|
|
89
|
+
else
|
|
90
|
+
____LocalClient_isDE_2 = data[5]
|
|
91
|
+
end
|
|
92
|
+
____LocalClient_isHD_3 = ____LocalClient_isDE_2
|
|
79
93
|
end
|
|
80
|
-
local
|
|
94
|
+
local ____LocalClient_isHD_5
|
|
81
95
|
if LocalClient.isHD then
|
|
82
|
-
|
|
96
|
+
____LocalClient_isHD_5 = data[9] or data[8]
|
|
83
97
|
else
|
|
84
|
-
|
|
98
|
+
local ____LocalClient_isDE_4
|
|
99
|
+
if LocalClient.isDE then
|
|
100
|
+
____LocalClient_isDE_4 = data[10] or data[8]
|
|
101
|
+
else
|
|
102
|
+
____LocalClient_isDE_4 = data[8]
|
|
103
|
+
end
|
|
104
|
+
____LocalClient_isHD_5 = ____LocalClient_isDE_4
|
|
85
105
|
end
|
|
86
|
-
local
|
|
106
|
+
local ____LocalClient_isHD_7
|
|
87
107
|
if LocalClient.isHD then
|
|
88
|
-
|
|
108
|
+
____LocalClient_isHD_7 = data[12] or data[11]
|
|
89
109
|
else
|
|
90
|
-
|
|
110
|
+
local ____LocalClient_isDE_6
|
|
111
|
+
if LocalClient.isDE then
|
|
112
|
+
____LocalClient_isDE_6 = data[13] or data[11]
|
|
113
|
+
else
|
|
114
|
+
____LocalClient_isDE_6 = data[11]
|
|
115
|
+
end
|
|
116
|
+
____LocalClient_isHD_7 = ____LocalClient_isDE_6
|
|
91
117
|
end
|
|
92
|
-
return
|
|
93
|
-
impactOffsetZ =
|
|
94
|
-
launchOffsetX =
|
|
95
|
-
launchOffsetY =
|
|
96
|
-
launchOffsetZ =
|
|
97
|
-
launchVisualOffsetX =
|
|
98
|
-
launchVisualOffsetY =
|
|
118
|
+
return ____setmetatable_10({
|
|
119
|
+
impactOffsetZ = ____LocalClient_isHD_1,
|
|
120
|
+
launchOffsetX = ____data__3_8,
|
|
121
|
+
launchOffsetY = ____data__4_9,
|
|
122
|
+
launchOffsetZ = ____LocalClient_isHD_3,
|
|
123
|
+
launchVisualOffsetX = ____LocalClient_isHD_5,
|
|
124
|
+
launchVisualOffsetY = ____LocalClient_isHD_7
|
|
99
125
|
}, METATABLE)
|
|
100
126
|
end
|
|
101
127
|
),
|
|
@@ -348,7 +348,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
348
348
|
static itemDroppedEvent: UnitTriggerEvent<[Item]>;
|
|
349
349
|
static itemPickedUpEvent: UnitTriggerEvent<[Item]>;
|
|
350
350
|
static itemUsedEvent: UnitTriggerEvent<[Item]>;
|
|
351
|
-
static itemStackedEvent: UnitTriggerEvent<[target: Item, source: Item]>;
|
|
352
351
|
static get itemChargesChangedEvent(): Event<[unit: Unit, item: Item]>;
|
|
353
352
|
static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
|
|
354
353
|
static get itemMoveOrderEvent(): Event<[
|
package/engine/internal/unit.lua
CHANGED
|
@@ -2664,11 +2664,6 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2664
2664
|
return IgnoreEvent
|
|
2665
2665
|
end
|
|
2666
2666
|
)
|
|
2667
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2668
|
-
____exports.UnitTriggerEvent,
|
|
2669
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2670
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2671
|
-
)
|
|
2672
2667
|
__TS__ObjectDefineProperty(
|
|
2673
2668
|
Unit,
|
|
2674
2669
|
"itemChargesChangedEvent",
|
|
@@ -2692,7 +2687,7 @@ __TS__ObjectDefineProperty(
|
|
|
2692
2687
|
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2693
2688
|
local slot = order - orderId("useslot0")
|
|
2694
2689
|
local function listener(unit)
|
|
2695
|
-
local item = unit.
|
|
2690
|
+
local item = unit.inventory[slot + 1]
|
|
2696
2691
|
if item ~= nil then
|
|
2697
2692
|
invoke(event, unit, item)
|
|
2698
2693
|
end
|
|
@@ -2713,7 +2708,7 @@ __TS__ObjectDefineProperty(
|
|
|
2713
2708
|
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2714
2709
|
local slotTo = order - orderId("moveslot0")
|
|
2715
2710
|
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2716
|
-
local slotFrom = unit.
|
|
2711
|
+
local slotFrom = unit.inventory:findSlot(item)
|
|
2717
2712
|
if slotFrom ~= nil then
|
|
2718
2713
|
invoke(
|
|
2719
2714
|
event,
|
package/engine/local-client.d.ts
CHANGED
|
@@ -9,12 +9,32 @@ export declare class LocalClient {
|
|
|
9
9
|
static readonly locale: string;
|
|
10
10
|
static get width(): number;
|
|
11
11
|
static get height(): number;
|
|
12
|
+
static get isSD(): boolean;
|
|
12
13
|
static get isHD(): boolean;
|
|
14
|
+
static get isDE(): boolean;
|
|
13
15
|
static get graphicsMode(): GraphicsMode;
|
|
14
16
|
static get isActive(): boolean;
|
|
15
17
|
static get isMinimized(): boolean;
|
|
16
18
|
static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, flashy?: boolean] | [color: Color, flashy?: boolean]): void;
|
|
19
|
+
/** Local input state; do not use to branch synchronized game logic. */
|
|
20
|
+
static isKeyPressed(key: joskeytype): boolean;
|
|
21
|
+
/** Local input state. Uses the same modifier mask as Player key events. */
|
|
22
|
+
static isMetaKeyPressed(key: oskeymeta): boolean;
|
|
23
|
+
/** Local input state. */
|
|
24
|
+
static isMouseButtonPressed(button: jmousebuttontype): boolean;
|
|
25
|
+
static get mouseScreenX(): number;
|
|
26
|
+
static get mouseScreenY(): number;
|
|
27
|
+
static screenToFrameX(x: number): number;
|
|
28
|
+
static screenToFrameY(y: number): number;
|
|
29
|
+
static frameToScreenX(x: number): number;
|
|
30
|
+
static frameToScreenY(y: number): number;
|
|
31
|
+
static get mouseFrameX(): number;
|
|
32
|
+
static get mouseFrameY(): number;
|
|
17
33
|
static get mouseFocusUnit(): Async<Unit> | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Local selection sampled every 1/64 second. Undefined before the first tick and while
|
|
36
|
+
* a group selection's buttons are not registered yet (see `selectionLayoutSocket`).
|
|
37
|
+
*/
|
|
18
38
|
static get mainSelectedUnit(): Async<Unit> | undefined;
|
|
19
39
|
static get mainSelectedUnitChangeEvent(): Event<[
|
|
20
40
|
previousMainSelectedUnit: Unit | undefined,
|