warscript 0.0.1-dev.2100d8f → 0.0.1-dev.221cca4
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/effect.d.ts +11 -1
- package/core/types/effect.lua +43 -77
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +112 -37
- package/core/types/handle.lua +9 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- 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 +14 -9
- package/core/types/unit.d.ts +5 -0
- package/core/types/unit.lua +5 -0
- package/core/util.d.ts +3 -1
- package/core/util.lua +109 -3
- package/decl/native.d.ts +705 -7
- package/engine/behaviour/ability/damage.d.ts +4 -0
- package/engine/behaviour/ability/damage.lua +19 -15
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- package/engine/behaviour/ability/on-command-impact.d.ts +1 -0
- package/engine/behaviour/ability/on-command-impact.lua +1 -0
- package/engine/behaviour/ability.d.ts +10 -5
- package/engine/behaviour/ability.lua +40 -0
- package/engine/behaviour/unit.d.ts +1 -0
- package/engine/behaviour/unit.lua +1 -0
- package/engine/buff.d.ts +61 -27
- package/engine/buff.lua +304 -133
- package/engine/index.d.ts +2 -1
- package/engine/internal/ability.d.ts +4 -0
- package/engine/internal/ability.lua +52 -33
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item/owner-cache.d.ts +5 -0
- package/engine/internal/item/owner-cache.lua +4 -0
- package/engine/internal/item+owner.d.ts +2 -0
- package/engine/internal/item+owner.lua +27 -4
- package/engine/internal/item.d.ts +20 -5
- package/engine/internal/item.lua +146 -57
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.d.ts +2 -0
- package/engine/internal/object-data/health-regeneration-rate-increase.lua +21 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/unit/ability.lua +15 -3
- package/engine/internal/unit/add-item-to-slot-init.lua +3 -14
- package/engine/internal/unit/add-item-to-slot.lua +53 -12
- package/engine/internal/unit/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/bonus.d.ts +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +34 -19
- package/engine/internal/unit/equipment-inventory.d.ts +44 -0
- package/engine/internal/unit/equipment-inventory.lua +233 -0
- package/engine/internal/unit/expiration-timer.lua +1 -1
- package/engine/internal/unit/extended-inventory.d.ts +25 -0
- package/engine/internal/unit/extended-inventory.lua +99 -0
- package/engine/internal/unit/ignore-events-items.lua +10 -1
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +7 -3
- package/engine/internal/unit/inventory.lua +87 -0
- package/engine/internal/unit/item-container.d.ts +25 -0
- package/engine/internal/unit/item-container.lua +11 -0
- package/engine/internal/unit/item-order-events.d.ts +17 -0
- package/engine/internal/unit/item-order-events.lua +67 -0
- package/engine/internal/unit/item-slot.d.ts +27 -0
- package/engine/internal/unit/item-slot.lua +92 -0
- package/engine/internal/unit/order.d.ts +3 -3
- package/engine/internal/unit/order.lua +10 -10
- 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/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit+ability.lua +2 -2
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +9 -0
- package/engine/internal/unit+damage.lua +33 -0
- package/engine/internal/unit+rally.lua +9 -31
- package/engine/internal/unit-missile-data.lua +58 -32
- package/engine/internal/unit-missile-launch.lua +13 -13
- package/engine/internal/unit.d.ts +2 -10
- package/engine/internal/unit.lua +81 -126
- package/engine/local-client.d.ts +26 -0
- package/engine/local-client.lua +294 -54
- 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 +12 -0
- package/engine/object-data/auxiliary/equipment-type.lua +26 -0
- package/engine/object-data/auxiliary/item-class.d.ts +11 -0
- package/engine/object-data/auxiliary/item-class.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/order-type.d.ts +939 -0
- package/engine/object-data/auxiliary/order-type.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +14 -3
- package/engine/object-data/auxiliary/unit-attribute.lua +1 -1
- 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/armor-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/aura-of-blight.d.ts +13 -0
- package/engine/object-data/entry/ability-type/aura-of-blight.lua +39 -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/{armor-increase.d.ts → healing-modifier.d.ts} +4 -3
- package/engine/object-data/entry/ability-type/healing-modifier.lua +26 -0
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/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-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-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/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.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 +12 -3
- package/engine/object-data/entry/ability-type.lua +137 -4
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- 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 +18 -3
- package/engine/object-data/entry/item-type.lua +84 -0
- package/engine/object-data/entry/lightning-type.d.ts +6 -8
- package/engine/object-data/entry/lightning-type.lua +1 -1
- 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 +6 -1
- package/engine/object-data/entry.lua +8 -0
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field.d.ts +1 -1
- package/engine/object-field.lua +9 -7
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- 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/lightning-type.d.ts +42 -15
- package/engine/standard/entries/lightning-type.lua +0 -14
- package/engine/standard/entries/unit-type.d.ts +5 -0
- package/engine/standard/entries/unit-type.lua +5 -0
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/unit.d.ts +6 -1
- package/engine/unit.lua +6 -1
- package/event.d.ts +1 -1
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/network.lua +25 -1
- package/objutil/buff.lua +1 -1
- package/objutil/object.lua +1 -1
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +3 -23
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +11 -2
- package/utility/linked-map.lua +41 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +23 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/engine/internal/unit/item.lua +0 -78
- /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
|
@@ -139,6 +139,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
139
139
|
private _fields?;
|
|
140
140
|
private getEvent;
|
|
141
141
|
constructor(handle: junit);
|
|
142
|
+
private saveData;
|
|
142
143
|
protected onDestroy(): HandleDestructor;
|
|
143
144
|
addAttackHandler(condition: AttackHandlerCondition, action: AttackHandlerAction): AttackHandler;
|
|
144
145
|
removeAttackHandler(handler: AttackHandler): boolean;
|
|
@@ -291,7 +292,6 @@ export declare class Unit extends Handle<junit> {
|
|
|
291
292
|
set waygateDestination(v: Vec2);
|
|
292
293
|
get waygateDestination(): Vec2;
|
|
293
294
|
get abilities(): ReadonlyArray<UnitAbility>;
|
|
294
|
-
get onUnitInRange(): Record<number, Event<[Unit]>>;
|
|
295
295
|
get onManaEqual(): Record<number, Event<[Unit, number]>>;
|
|
296
296
|
get manaEvent(): Record<Operator, Record<number, Event<[Unit]>>>;
|
|
297
297
|
get targetAcquiredEvent(): Event;
|
|
@@ -321,7 +321,7 @@ export declare class Unit extends Handle<junit> {
|
|
|
321
321
|
static readonly constructionStartEvent: UnitTriggerEvent<[]>;
|
|
322
322
|
static readonly onUpgradeFinish: UnitTriggerEvent<[]>;
|
|
323
323
|
static readonly onSpellEffect: EventDispatcher<[Unit, number], [Unit]>;
|
|
324
|
-
static readonly onTargetCast: EventDispatcher<[Unit, number,
|
|
324
|
+
static readonly onTargetCast: EventDispatcher<[Unit, number, Destructable | Unit | Item], [Unit, Destructable | Unit | Item]>;
|
|
325
325
|
static readonly onCastPrepare: AbilityEventDispatcher<[]>;
|
|
326
326
|
static readonly onCast: AbilityEventDispatcher<[]>;
|
|
327
327
|
static readonly onPointCastPrepare: AbilityEventDispatcher<[number, number]>;
|
|
@@ -348,15 +348,7 @@ 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
|
-
static get itemUseOrderEvent(): Event<[unit: Unit, item: Item]>;
|
|
354
|
-
static get itemMoveOrderEvent(): Event<[
|
|
355
|
-
unit: Unit,
|
|
356
|
-
item: Item,
|
|
357
|
-
slotFrom: 0 | 1 | 2 | 3 | 4 | 5,
|
|
358
|
-
slotTo: 0 | 1 | 2 | 3 | 4 | 5
|
|
359
|
-
]>;
|
|
360
352
|
static get onCreate(): EventDispatcher<[Unit], [Unit]>;
|
|
361
353
|
static get destroyEvent(): EventDispatcher<[Unit], [Unit]>;
|
|
362
354
|
getField(field: junitintegerfield | junitrealfield): number;
|
package/engine/internal/unit.lua
CHANGED
|
@@ -47,12 +47,10 @@ local checkNotNull = ____preconditions.checkNotNull
|
|
|
47
47
|
local ____constants = require("engine.constants")
|
|
48
48
|
local HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT = ____constants.HEALTH_REGENERATION_RATE_BONUS_PER_STRENGTH_POINT
|
|
49
49
|
local MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT = ____constants.MANA_REGENERATION_RATE_BONUS_PER_INTELLIGENCE_POINT
|
|
50
|
-
local ____arrays = require("utility.arrays")
|
|
51
|
-
local forEach = ____arrays.forEach
|
|
52
|
-
local ____math = require("math")
|
|
53
|
-
local min = ____math.min
|
|
54
50
|
local ____ignore_2Devents_2Ditems = require("engine.internal.unit.ignore-events-items")
|
|
55
|
-
local
|
|
51
|
+
local isItemIgnoredInEvents = ____ignore_2Devents_2Ditems.isItemIgnoredInEvents
|
|
52
|
+
local ____owner_2Dcache = require("engine.internal.item.owner-cache")
|
|
53
|
+
local ownerByItem = ____owner_2Dcache.ownerByItem
|
|
56
54
|
local ____attack_2Dtype = require("engine.object-data.auxiliary.attack-type")
|
|
57
55
|
local attackTypeToNative = ____attack_2Dtype.attackTypeToNative
|
|
58
56
|
local nativeToAttackType = ____attack_2Dtype.nativeToAttackType
|
|
@@ -383,15 +381,27 @@ local modifiers = {
|
|
|
383
381
|
end,
|
|
384
382
|
armor = function(unit, value)
|
|
385
383
|
if UnitAddAbility(unit, armorBonusAbilityId) then
|
|
386
|
-
assert(
|
|
384
|
+
assert(
|
|
385
|
+
UnitMakeAbilityPermanent(unit, true, armorBonusAbilityId),
|
|
386
|
+
"armor bonus ability must be made permanent",
|
|
387
|
+
unit
|
|
388
|
+
)
|
|
387
389
|
end
|
|
388
|
-
local ability = assert(
|
|
389
|
-
|
|
390
|
-
ability,
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
390
|
+
local ability = assert(
|
|
391
|
+
BlzGetUnitAbility(unit, armorBonusAbilityId),
|
|
392
|
+
"armor bonus ability must be existing",
|
|
393
|
+
unit
|
|
394
|
+
)
|
|
395
|
+
assert(
|
|
396
|
+
BlzSetAbilityRealLevelField(
|
|
397
|
+
ability,
|
|
398
|
+
armorBonusField,
|
|
399
|
+
0,
|
|
400
|
+
BlzGetAbilityRealLevelField(ability, armorBonusField, 0) + value
|
|
401
|
+
),
|
|
402
|
+
"armor bonus ability field must be set",
|
|
403
|
+
unit
|
|
404
|
+
)
|
|
395
405
|
end
|
|
396
406
|
}
|
|
397
407
|
local getters = {
|
|
@@ -580,8 +590,6 @@ __TS__SetDescriptor(
|
|
|
580
590
|
},
|
|
581
591
|
true
|
|
582
592
|
)
|
|
583
|
-
local unitInventorySize = UnitInventorySize
|
|
584
|
-
local unitItemInSlot = UnitItemInSlot
|
|
585
593
|
local getItemAbility = BlzGetItemAbility
|
|
586
594
|
local getUnitAbility = BlzGetUnitAbility
|
|
587
595
|
local getUnitAbilityByIndex = BlzGetUnitAbilityByIndex
|
|
@@ -599,8 +607,8 @@ local function retrieveAbility(unit, ability, abilityId)
|
|
|
599
607
|
____exports.Unit:of(unit)
|
|
600
608
|
)
|
|
601
609
|
end
|
|
602
|
-
for i = 0,
|
|
603
|
-
local item =
|
|
610
|
+
for i = 0, UnitInventorySize(unit) - 1 do
|
|
611
|
+
local item = UnitItemInSlot(unit, i)
|
|
604
612
|
if getItemAbility(item, abilityId) == ability then
|
|
605
613
|
return ItemAbility:of(
|
|
606
614
|
ability,
|
|
@@ -645,13 +653,17 @@ local fieldSetters = {
|
|
|
645
653
|
}
|
|
646
654
|
local dummies = {}
|
|
647
655
|
for ____, player in ipairs(Player.all) do
|
|
648
|
-
local dummy = assert(
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
656
|
+
local dummy = assert(
|
|
657
|
+
createUnit(
|
|
658
|
+
player.handle,
|
|
659
|
+
dummyUnitId,
|
|
660
|
+
0,
|
|
661
|
+
0,
|
|
662
|
+
270
|
|
663
|
+
),
|
|
664
|
+
"dummy must be created",
|
|
665
|
+
player
|
|
666
|
+
)
|
|
655
667
|
ShowUnit(dummy, false)
|
|
656
668
|
dummies[player] = dummy
|
|
657
669
|
end
|
|
@@ -694,16 +706,28 @@ function Unit.prototype.____constructor(self, handle)
|
|
|
694
706
|
nextSyncId = ____nextSyncId_1 + 1
|
|
695
707
|
self.syncId = ____nextSyncId_1
|
|
696
708
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
697
|
-
assert(
|
|
698
|
-
|
|
709
|
+
assert(
|
|
710
|
+
unitAddAbility(handle, leaveDetectAbilityId) and UnitMakeAbilityPermanent(handle, true, leaveDetectAbilityId),
|
|
711
|
+
"leave detection ability must be added",
|
|
712
|
+
self
|
|
713
|
+
)
|
|
714
|
+
assert(
|
|
715
|
+
unitAddAbility(handle, morphDetectAbilityId),
|
|
716
|
+
"morph detection ability must be added",
|
|
717
|
+
self
|
|
718
|
+
)
|
|
699
719
|
if unitAddAbility(
|
|
700
720
|
handle,
|
|
701
721
|
fourCC("Amrf")
|
|
702
722
|
) then
|
|
703
|
-
assert(
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
723
|
+
assert(
|
|
724
|
+
unitRemoveAbility(
|
|
725
|
+
handle,
|
|
726
|
+
fourCC("Amrf")
|
|
727
|
+
),
|
|
728
|
+
"fly ability must be removed after addition",
|
|
729
|
+
self
|
|
730
|
+
)
|
|
707
731
|
end
|
|
708
732
|
unitBySyncId[self.syncId] = self
|
|
709
733
|
local ____ = self.abilities
|
|
@@ -724,13 +748,15 @@ function Unit.prototype.getEvent(self, jevent, collector)
|
|
|
724
748
|
end
|
|
725
749
|
return event
|
|
726
750
|
end
|
|
751
|
+
function Unit.prototype.saveData(self)
|
|
752
|
+
local handle = self.handle
|
|
753
|
+
self[108] = self[108] or getUnitX(handle)
|
|
754
|
+
self[109] = self[109] or getUnitY(handle)
|
|
755
|
+
self._owner = self._owner or Player:of(getOwningPlayer(handle))
|
|
756
|
+
end
|
|
727
757
|
function Unit.prototype.onDestroy(self)
|
|
728
758
|
local handle = self.handle
|
|
729
|
-
self
|
|
730
|
-
self[109] = getUnitY(handle)
|
|
731
|
-
if not self._owner then
|
|
732
|
-
self._owner = Player:of(getOwningPlayer(handle))
|
|
733
|
-
end
|
|
759
|
+
self:saveData()
|
|
734
760
|
local abilities = self.abilities
|
|
735
761
|
for ____, ability in ipairs(abilities) do
|
|
736
762
|
ability:destroy()
|
|
@@ -748,7 +774,9 @@ function Unit.prototype.onDestroy(self)
|
|
|
748
774
|
end
|
|
749
775
|
local eventsToDestroy = self._eventsToDestroy
|
|
750
776
|
if eventsToDestroy ~= nil then
|
|
751
|
-
|
|
777
|
+
for ____, event in ipairs(eventsToDestroy) do
|
|
778
|
+
event:destroy()
|
|
779
|
+
end
|
|
752
780
|
end
|
|
753
781
|
if getUnitAbilityLevel(handle, leaveDetectAbilityId) > 0 then
|
|
754
782
|
unitRemoveAbility(handle, leaveDetectAbilityId)
|
|
@@ -766,7 +794,11 @@ function Unit.prototype.addAttackHandler(self, condition, action)
|
|
|
766
794
|
self._attackHandlers = handlers
|
|
767
795
|
if #handlers == 1 then
|
|
768
796
|
local handle = self.handle
|
|
769
|
-
assert(
|
|
797
|
+
assert(
|
|
798
|
+
unitAddAbility(handle, attackHandlerAbilityId) and UnitMakeAbilityPermanent(handle, true, attackHandlerAbilityId),
|
|
799
|
+
"attack handler ability must be added",
|
|
800
|
+
self
|
|
801
|
+
)
|
|
770
802
|
end
|
|
771
803
|
return handler
|
|
772
804
|
end
|
|
@@ -925,7 +957,7 @@ function Unit.prototype.dropItemSlot(self, item, slot)
|
|
|
925
957
|
return UnitDropItemSlot(self.handle, item.handle, slot)
|
|
926
958
|
end
|
|
927
959
|
function Unit.prototype.itemInSlot(self, slot)
|
|
928
|
-
return Item:of(
|
|
960
|
+
return Item:of(UnitItemInSlot(self.handle, slot))
|
|
929
961
|
end
|
|
930
962
|
function Unit.prototype.addAbility(self, abilityId)
|
|
931
963
|
local ability = UnitAbility:of(
|
|
@@ -1283,7 +1315,7 @@ __TS__SetDescriptor(
|
|
|
1283
1315
|
Unit.prototype,
|
|
1284
1316
|
"isStunned",
|
|
1285
1317
|
{get = function(self)
|
|
1286
|
-
return getUnitCurrentOrder(self.handle) ==
|
|
1318
|
+
return getUnitCurrentOrder(self.handle) == 851973
|
|
1287
1319
|
end},
|
|
1288
1320
|
true
|
|
1289
1321
|
)
|
|
@@ -1845,7 +1877,7 @@ __TS__SetDescriptor(
|
|
|
1845
1877
|
Unit.prototype,
|
|
1846
1878
|
"pathingCollisionRange",
|
|
1847
1879
|
{get = function(self)
|
|
1848
|
-
return 16 * (min(
|
|
1880
|
+
return 16 * (math.min(
|
|
1849
1881
|
getUnitCollisionSize(self.handle) // 16,
|
|
1850
1882
|
3
|
|
1851
1883
|
) + 1)
|
|
@@ -1955,30 +1987,6 @@ __TS__SetDescriptor(
|
|
|
1955
1987
|
end},
|
|
1956
1988
|
true
|
|
1957
1989
|
)
|
|
1958
|
-
__TS__SetDescriptor(
|
|
1959
|
-
Unit.prototype,
|
|
1960
|
-
"onUnitInRange",
|
|
1961
|
-
{get = function(self)
|
|
1962
|
-
local handle = self.handle
|
|
1963
|
-
local onUnitInRange = setmetatable(
|
|
1964
|
-
{},
|
|
1965
|
-
{__index = function(self, value)
|
|
1966
|
-
local event = __TS__New(
|
|
1967
|
-
TriggerEvent,
|
|
1968
|
-
function(trigger)
|
|
1969
|
-
TriggerRegisterUnitInRangeSimple(trigger, value, handle)
|
|
1970
|
-
end,
|
|
1971
|
-
function() return ____exports.Unit:of(handle) end
|
|
1972
|
-
)
|
|
1973
|
-
rawset(self, value, event)
|
|
1974
|
-
return event
|
|
1975
|
-
end}
|
|
1976
|
-
)
|
|
1977
|
-
rawset(self, "onUnitInRange", onUnitInRange)
|
|
1978
|
-
return onUnitInRange
|
|
1979
|
-
end},
|
|
1980
|
-
true
|
|
1981
|
-
)
|
|
1982
1990
|
__TS__SetDescriptor(
|
|
1983
1991
|
Unit.prototype,
|
|
1984
1992
|
"onManaEqual",
|
|
@@ -2136,7 +2144,7 @@ Unit.onResurrect = __TS__New(
|
|
|
2136
2144
|
____exports.Unit.deathEvent:addListener(function(unit)
|
|
2137
2145
|
dead[unit] = true
|
|
2138
2146
|
end)
|
|
2139
|
-
____exports.Unit.onImmediateOrder[
|
|
2147
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2140
2148
|
if dead[unit] and not IsUnitType(unit.handle, UNIT_TYPE_DEAD) then
|
|
2141
2149
|
dead[unit] = false
|
|
2142
2150
|
invoke(event, unit)
|
|
@@ -2153,7 +2161,7 @@ Unit.morphEvent = __TS__New(
|
|
|
2153
2161
|
invoke(event, unit)
|
|
2154
2162
|
end
|
|
2155
2163
|
end
|
|
2156
|
-
____exports.Unit.onImmediateOrder[
|
|
2164
|
+
____exports.Unit.onImmediateOrder[852056]:addListener(function(unit)
|
|
2157
2165
|
if getUnitAbilityLevel(unit.handle, morphDetectAbilityId) == 0 then
|
|
2158
2166
|
Timer:run(ifNotLeft, unit)
|
|
2159
2167
|
end
|
|
@@ -2620,7 +2628,7 @@ Unit.itemDroppedEvent = __TS__New(
|
|
|
2620
2628
|
function()
|
|
2621
2629
|
local unit = getTriggerUnit()
|
|
2622
2630
|
local item = getManipulatedItem()
|
|
2623
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2631
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2624
2632
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2625
2633
|
end
|
|
2626
2634
|
return IgnoreEvent
|
|
@@ -2632,10 +2640,10 @@ Unit.itemPickedUpEvent = __TS__New(
|
|
|
2632
2640
|
function()
|
|
2633
2641
|
local unitHandle = getTriggerUnit()
|
|
2634
2642
|
local itemHandle = getManipulatedItem()
|
|
2635
|
-
if getUnitTypeId(unitHandle) ~= dummyUnitId and not (
|
|
2643
|
+
if getUnitTypeId(unitHandle) ~= dummyUnitId and not isItemIgnoredInEvents(itemHandle) then
|
|
2636
2644
|
local unit = ____exports.Unit:of(unitHandle)
|
|
2637
2645
|
local item = Item:of(itemHandle)
|
|
2638
|
-
if item
|
|
2646
|
+
if ownerByItem[item] ~= unit then
|
|
2639
2647
|
return unit, item
|
|
2640
2648
|
end
|
|
2641
2649
|
end
|
|
@@ -2648,17 +2656,12 @@ Unit.itemUsedEvent = __TS__New(
|
|
|
2648
2656
|
function()
|
|
2649
2657
|
local unit = getTriggerUnit()
|
|
2650
2658
|
local item = getManipulatedItem()
|
|
2651
|
-
if getUnitTypeId(unit) ~= dummyUnitId and not (
|
|
2659
|
+
if getUnitTypeId(unit) ~= dummyUnitId and not isItemIgnoredInEvents(item) then
|
|
2652
2660
|
return ____exports.Unit:of(unit), Item:of(item)
|
|
2653
2661
|
end
|
|
2654
2662
|
return IgnoreEvent
|
|
2655
2663
|
end
|
|
2656
2664
|
)
|
|
2657
|
-
Unit.itemStackedEvent = __TS__New(
|
|
2658
|
-
____exports.UnitTriggerEvent,
|
|
2659
|
-
EVENT_PLAYER_UNIT_STACK_ITEM,
|
|
2660
|
-
function() return ____exports.Unit:of(getTriggerUnit()), Item:of(BlzGetStackingItemTarget()), Item:of(BlzGetStackingItemSource()) end
|
|
2661
|
-
)
|
|
2662
2665
|
__TS__ObjectDefineProperty(
|
|
2663
2666
|
Unit,
|
|
2664
2667
|
"itemChargesChangedEvent",
|
|
@@ -2674,51 +2677,6 @@ __TS__ObjectDefineProperty(
|
|
|
2674
2677
|
return event
|
|
2675
2678
|
end}
|
|
2676
2679
|
)
|
|
2677
|
-
__TS__ObjectDefineProperty(
|
|
2678
|
-
Unit,
|
|
2679
|
-
"itemUseOrderEvent",
|
|
2680
|
-
{get = function(self)
|
|
2681
|
-
local event = __TS__New(Event)
|
|
2682
|
-
for order = orderId("useslot0"), orderId("useslot5") do
|
|
2683
|
-
local slot = order - orderId("useslot0")
|
|
2684
|
-
local function listener(unit)
|
|
2685
|
-
local item = unit.items[slot + 1]
|
|
2686
|
-
if item ~= nil then
|
|
2687
|
-
invoke(event, unit, item)
|
|
2688
|
-
end
|
|
2689
|
-
end
|
|
2690
|
-
self.onImmediateOrder[order]:addListener(listener)
|
|
2691
|
-
self.onTargetOrder[order]:addListener(listener)
|
|
2692
|
-
self.onPointOrder[order]:addListener(listener)
|
|
2693
|
-
end
|
|
2694
|
-
rawset(self, "itemUseOrderEvent", event)
|
|
2695
|
-
return event
|
|
2696
|
-
end}
|
|
2697
|
-
)
|
|
2698
|
-
__TS__ObjectDefineProperty(
|
|
2699
|
-
Unit,
|
|
2700
|
-
"itemMoveOrderEvent",
|
|
2701
|
-
{get = function(self)
|
|
2702
|
-
local event = __TS__New(Event)
|
|
2703
|
-
for order = orderId("moveslot0"), orderId("moveslot5") do
|
|
2704
|
-
local slotTo = order - orderId("moveslot0")
|
|
2705
|
-
self.onTargetOrder[order]:addListener(function(unit, item)
|
|
2706
|
-
local slotFrom = unit.items:findSlot(item)
|
|
2707
|
-
if slotFrom ~= nil then
|
|
2708
|
-
invoke(
|
|
2709
|
-
event,
|
|
2710
|
-
unit,
|
|
2711
|
-
item,
|
|
2712
|
-
slotFrom,
|
|
2713
|
-
slotTo
|
|
2714
|
-
)
|
|
2715
|
-
end
|
|
2716
|
-
end)
|
|
2717
|
-
end
|
|
2718
|
-
rawset(self, "itemMoveOrderEvent", event)
|
|
2719
|
-
return event
|
|
2720
|
-
end}
|
|
2721
|
-
)
|
|
2722
2680
|
__TS__ObjectDefineProperty(
|
|
2723
2681
|
Unit,
|
|
2724
2682
|
"onCreate",
|
|
@@ -2765,11 +2723,7 @@ Unit.synchronize = synchronizer(
|
|
|
2765
2723
|
function(____, id) return fourCC(id) end
|
|
2766
2724
|
)
|
|
2767
2725
|
end)
|
|
2768
|
-
for ____, leaveOrderId in ipairs({
|
|
2769
|
-
orderId("undefend"),
|
|
2770
|
-
orderId("magicundefense"),
|
|
2771
|
-
orderId("unimmolation")
|
|
2772
|
-
}) do
|
|
2726
|
+
for ____, leaveOrderId in ipairs({852056, 852479, 852178}) do
|
|
2773
2727
|
____exports.Unit.onImmediateOrder[leaveOrderId]:addListener(function(unit)
|
|
2774
2728
|
local handle = unit.handle
|
|
2775
2729
|
for i = 1, #leaveAbilityIds do
|
|
@@ -2777,7 +2731,8 @@ Unit.synchronize = synchronizer(
|
|
|
2777
2731
|
return
|
|
2778
2732
|
end
|
|
2779
2733
|
end
|
|
2780
|
-
unit:
|
|
2734
|
+
unit:saveData()
|
|
2735
|
+
Timer:run(unit, "destroy")
|
|
2781
2736
|
end)
|
|
2782
2737
|
end
|
|
2783
2738
|
end)(Unit)
|
package/engine/local-client.d.ts
CHANGED
|
@@ -9,15 +9,41 @@ 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;
|
|
17
|
+
static get isMinimized(): boolean;
|
|
15
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;
|
|
16
33
|
static get mouseFocusUnit(): Async<Unit> | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Local selection sampled every 1/64 second; undefined before the first tick. Among
|
|
36
|
+
* several selected units, the one the portrait shows, identified by its health and
|
|
37
|
+
* mana; units with identical values cannot be told apart.
|
|
38
|
+
*/
|
|
17
39
|
static get mainSelectedUnit(): Async<Unit> | undefined;
|
|
18
40
|
static get mainSelectedUnitChangeEvent(): Event<[
|
|
19
41
|
previousMainSelectedUnit: Unit | undefined,
|
|
20
42
|
newMainSelectedUnit: Unit | undefined
|
|
21
43
|
]>;
|
|
44
|
+
static get isInTargetingMode(): boolean;
|
|
45
|
+
static readonly targetingModeEnterEvent: Event<[]>;
|
|
46
|
+
static readonly targetingModeLeaveEvent: Event<[]>;
|
|
47
|
+
static readonly targetingModeStateChangeEvent: Event<[]>;
|
|
22
48
|
static readonly onDisconnect: TriggerEvent<[]>;
|
|
23
49
|
}
|