warscript 0.0.1-dev.e1acea3 → 0.0.1-dev.e27e5b1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributes.d.ts +6 -0
- package/attributes.lua +17 -1
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +2 -3
- package/core/types/effect.lua +95 -48
- package/core/types/frame.d.ts +1 -0
- package/core/types/frame.lua +136 -58
- package/core/types/handle.lua +6 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +18 -1
- package/core/types/player.lua +76 -26
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/playerColor.lua +4 -3
- package/core/types/sound.d.ts +18 -25
- package/core/types/sound.lua +113 -33
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.d.ts +4 -0
- package/core/types/unit.lua +4 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +12 -1
- package/decl/native.d.ts +1718 -964
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +14 -1
- package/engine/behavior.lua +230 -70
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +5 -0
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +12 -3
- package/engine/behaviour/ability/damage.lua +33 -39
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +21 -6
- package/engine/behaviour/ability/on-command-impact.lua +7 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +13 -1
- package/engine/behaviour/ability/remove-buffs.lua +29 -2
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +23 -6
- package/engine/behaviour/ability.lua +115 -22
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -6
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +41 -2
- package/engine/behaviour/unit.lua +270 -6
- package/engine/buff.d.ts +113 -53
- package/engine/buff.lua +544 -288
- package/engine/internal/ability.d.ts +22 -2
- package/engine/internal/ability.lua +151 -27
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item+owner.d.ts +1 -0
- package/engine/internal/item+owner.lua +19 -6
- package/engine/internal/item.d.ts +30 -18
- package/engine/internal/item.lua +292 -102
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.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/armor-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.lua +16 -0
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.d.ts +35 -0
- package/engine/internal/unit/ability.lua +113 -12
- 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/appearance.d.ts +15 -0
- package/engine/internal/unit/appearance.lua +85 -0
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bag.d.ts +18 -0
- package/engine/internal/unit/bag.lua +63 -0
- package/engine/internal/unit/bonus.d.ts +8 -0
- package/engine/internal/unit/bonus.lua +50 -3
- package/engine/internal/unit/buff.d.ts +2 -2
- package/engine/internal/unit/buff.lua +32 -17
- package/engine/internal/unit/equipment.d.ts +36 -0
- package/engine/internal/unit/equipment.lua +169 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/{item.d.ts → inventory.d.ts} +3 -3
- package/engine/internal/unit/inventory.lua +77 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit/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/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit-missile-launch.lua +52 -14
- package/engine/internal/unit.d.ts +45 -26
- package/engine/internal/unit.lua +443 -274
- 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 +21 -0
- package/engine/local-client.lua +150 -7
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/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/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-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/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +3 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +42 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +21 -17
- package/engine/object-data/entry/ability-type.lua +177 -40
- package/engine/object-data/entry/buff-type/applicable.lua +122 -137
- package/engine/object-data/entry/buff-type.d.ts +6 -12
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -2
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type.d.ts +3 -1
- package/engine/object-data/entry/item-type.lua +15 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -1
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +25 -5
- package/engine/object-data/entry/unit-type.lua +258 -93
- package/engine/object-data/entry/upgrade.d.ts +1 -1
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +16 -14
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +12 -6
- package/engine/object-field/ability.lua +10 -6
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +26 -7
- package/engine/object-field.lua +362 -117
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +21 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/fields/ability.d.ts +4 -2
- package/engine/standard/fields/ability.lua +4 -2
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +11 -1
- package/engine/unit.lua +11 -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/net/socket.lua +1 -1
- package/network.lua +25 -1
- package/objutil/buff.lua +11 -10
- package/objutil/object.lua +1 -1
- package/objutil/unit.lua +8 -0
- package/operation.d.ts +8 -1
- package/operation.lua +38 -18
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +2 -0
- package/utility/arrays.lua +11 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +5 -1
- package/utility/linked-set.lua +49 -1
- package/utility/lua-maps.d.ts +15 -2
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +2 -0
- package/utility/lua-sets.lua +7 -0
- package/utility/random.d.ts +102 -0
- package/utility/random.lua +273 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +3 -0
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
- package/engine/internal/unit/item.lua +0 -84
- /package/engine/internal/{object-data/armor-increase.d.ts → misc/ability-disable-counter.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
|
@@ -2,22 +2,34 @@
|
|
|
2
2
|
import { Handle, HandleDestructor } from "../../core/types/handle";
|
|
3
3
|
import { Color } from "../../core/types/color";
|
|
4
4
|
import { Event } from "../../event";
|
|
5
|
+
import { PlayerColor } from "../../core/types/playerColor";
|
|
6
|
+
import { EquipmentType } from "../object-data/auxiliary/equipment-type";
|
|
7
|
+
import { ItemTag } from "../object-data/auxiliary/item-tag";
|
|
5
8
|
import { ReadonlyRect } from "../../core/types/rect";
|
|
6
9
|
import { ItemAbility } from "./ability";
|
|
7
10
|
import { AbilityTypeId } from "../object-data/entry/ability-type";
|
|
11
|
+
import type { ItemTypeId } from "../object-data/entry/item-type";
|
|
8
12
|
type DefenseType = 0 | 1 | 2 | 3 | 4 | 5;
|
|
9
|
-
export declare const addAndGetAbility: (handle: jitem, abilityTypeId: AbilityTypeId) => jability | null;
|
|
10
13
|
declare const enum ItemPropertyKey {
|
|
11
14
|
ABILITIES = 100,
|
|
12
|
-
|
|
15
|
+
DEATH_TRIGGER = 101,
|
|
16
|
+
COLOR = 102
|
|
13
17
|
}
|
|
14
18
|
export declare class Item extends Handle<jitem> {
|
|
15
19
|
private readonly [ItemPropertyKey.ABILITIES];
|
|
16
|
-
private readonly [ItemPropertyKey.
|
|
20
|
+
private readonly [ItemPropertyKey.DEATH_TRIGGER];
|
|
21
|
+
private [ItemPropertyKey.COLOR]?;
|
|
17
22
|
constructor(handle: jitem);
|
|
18
23
|
protected onDestroy(): HandleDestructor;
|
|
19
24
|
static create<T extends Item>(this: typeof Item & (new (handle: jitem) => T), id: number, x: number, y: number, skinId?: number): T;
|
|
20
|
-
get
|
|
25
|
+
get isEquipped(): boolean;
|
|
26
|
+
get isInBag(): boolean;
|
|
27
|
+
get equipmentType(): EquipmentType;
|
|
28
|
+
get tag(): ItemTag;
|
|
29
|
+
get color(): PlayerColor;
|
|
30
|
+
set color(color: PlayerColor);
|
|
31
|
+
static getRandomTypeId(level: number, equipmentType?: EquipmentType, tag?: ItemTag, itemType?: jitemtype): ItemTypeId | undefined;
|
|
32
|
+
get typeId(): ItemTypeId;
|
|
21
33
|
set skinId(v: number);
|
|
22
34
|
get skinId(): number;
|
|
23
35
|
set name(v: string);
|
|
@@ -30,22 +42,18 @@ export declare class Item extends Handle<jitem> {
|
|
|
30
42
|
get extendedTooltip(): string;
|
|
31
43
|
set iconPath(v: string);
|
|
32
44
|
get iconPath(): string;
|
|
33
|
-
set
|
|
34
|
-
get
|
|
35
|
-
set
|
|
36
|
-
get
|
|
37
|
-
set
|
|
38
|
-
get
|
|
39
|
-
set
|
|
40
|
-
get
|
|
41
|
-
set powerup(v: boolean);
|
|
42
|
-
get powerup(): boolean;
|
|
45
|
+
set dropsOnDeath(dropsOnDeath: boolean);
|
|
46
|
+
get dropsOnDeath(): boolean;
|
|
47
|
+
set canBeDropped(canBeDropped: boolean);
|
|
48
|
+
get canBeDropped(): boolean;
|
|
49
|
+
set perishes(perishes: boolean);
|
|
50
|
+
get perishes(): boolean;
|
|
51
|
+
set isPowerUp(isPowerUp: boolean);
|
|
52
|
+
get isPowerUp(): boolean;
|
|
43
53
|
get isAlive(): boolean;
|
|
44
54
|
get isDead(): boolean;
|
|
45
55
|
set isInvulnerable(isInvulnerable: boolean);
|
|
46
56
|
get isInvulnerable(): boolean;
|
|
47
|
-
set usable(v: boolean);
|
|
48
|
-
get usable(): boolean;
|
|
49
57
|
set visible(v: boolean);
|
|
50
58
|
get visible(): boolean;
|
|
51
59
|
set level(v: number);
|
|
@@ -73,14 +81,18 @@ export declare class Item extends Handle<jitem> {
|
|
|
73
81
|
set position(v: Vec2);
|
|
74
82
|
set charges(v: number);
|
|
75
83
|
get charges(): number;
|
|
84
|
+
consumeCharge(): boolean;
|
|
85
|
+
consumeCharges(count: number): boolean;
|
|
76
86
|
addAbility(abilityTypeId: AbilityTypeId): ItemAbility | undefined;
|
|
77
87
|
removeAbility(abilityTypeId: AbilityTypeId): boolean;
|
|
78
88
|
hasAbility(abilityTypeId: AbilityTypeId): boolean;
|
|
79
89
|
getAbility(abilityTypeId: AbilityTypeId): ItemAbility | undefined;
|
|
80
90
|
get abilities(): readonly ItemAbility[];
|
|
81
|
-
static getInRange(
|
|
91
|
+
static getInRange(x: number, y: number, range: number): Item[];
|
|
82
92
|
static getInRect(rect: ReadonlyRect): Item[];
|
|
83
93
|
static get onCreate(): Event<[Item]>;
|
|
84
|
-
static get
|
|
94
|
+
static get destroyEvent(): Event<[Item]>;
|
|
95
|
+
static readonly deathEvent: Event<[Item]>;
|
|
96
|
+
static readonly chargesChangedEvent: Event<[Item]>;
|
|
85
97
|
}
|
|
86
98
|
export {};
|
package/engine/internal/item.lua
CHANGED
|
@@ -1,33 +1,96 @@
|
|
|
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
|
|
16
|
+
local ____playerColor = require("core.types.playerColor")
|
|
17
|
+
local PlayerColor = ____playerColor.PlayerColor
|
|
12
18
|
local ____rect = require("core.types.rect")
|
|
13
19
|
local Rect = ____rect.Rect
|
|
14
20
|
local ____ability = require("engine.internal.ability")
|
|
15
21
|
local ItemAbility = ____ability.ItemAbility
|
|
16
22
|
local ____ability = require("engine.internal.item.ability")
|
|
17
23
|
local doAbilityAction = ____ability.doAbilityAction
|
|
18
|
-
local
|
|
19
|
-
local
|
|
24
|
+
local doAbilityActionForceDummy = ____ability.doAbilityActionForceDummy
|
|
25
|
+
local itemAbilityDummy = ____ability.itemAbilityDummy
|
|
26
|
+
local ____dummy_2Ditem = require("engine.internal.object-data.dummy-item")
|
|
27
|
+
local DUMMY_ITEM_ID = ____dummy_2Ditem.DUMMY_ITEM_ID
|
|
28
|
+
local ____add_2Ditem_2Dto_2Dslot = require("engine.internal.unit.add-item-to-slot")
|
|
29
|
+
local SLOT_FILLER_ITEM_TYPE_ID = ____add_2Ditem_2Dto_2Dslot.SLOT_FILLER_ITEM_TYPE_ID
|
|
30
|
+
local ____vec2 = require("math.vec2")
|
|
31
|
+
local distance = ____vec2.distance
|
|
32
|
+
local ____timer = require("core.types.timer")
|
|
33
|
+
local Timer = ____timer.Timer
|
|
34
|
+
local chooseRandomItemExWithFilter = ChooseRandomItemExWithFilter
|
|
35
|
+
local condition = Condition
|
|
36
|
+
local convertEquipmentType = ConvertEquipmentType
|
|
37
|
+
local convertItemTag = ConvertItemTag
|
|
38
|
+
local createTrigger = CreateTrigger
|
|
39
|
+
local destroyTrigger = DestroyTrigger
|
|
40
|
+
local enumItemsInRect = EnumItemsInRect
|
|
41
|
+
local getAbilityId = BlzGetAbilityId
|
|
42
|
+
local getEnumItem = GetEnumItem
|
|
43
|
+
local getHandleId = GetHandleId
|
|
20
44
|
local getItemAbility = BlzGetItemAbility
|
|
21
|
-
local isItemPowerup = IsItemPowerup
|
|
22
45
|
local getItemAbilityByIndex = BlzGetItemAbilityByIndex
|
|
23
|
-
local
|
|
46
|
+
local getItemBooleanField = BlzGetItemBooleanField
|
|
47
|
+
local getItemCharges = GetItemCharges
|
|
48
|
+
local getItemEquipmentType = GetItemEquipmentType
|
|
49
|
+
local getItemIntegerField = BlzGetItemIntegerField
|
|
50
|
+
local getItemTag = GetItemTag
|
|
51
|
+
local getItemTypeId = GetItemTypeId
|
|
52
|
+
local getItemX = GetItemX
|
|
53
|
+
local getItemY = GetItemY
|
|
54
|
+
local getManipulatedItem = GetManipulatedItem
|
|
55
|
+
local getTriggerWidget = GetTriggerWidget
|
|
24
56
|
local getWidgetLife = GetWidgetLife
|
|
57
|
+
local isItemEquipped = IsItemEquipped
|
|
58
|
+
local isItemInBag = IsItemInBag
|
|
59
|
+
local isItemPawnable = IsItemPawnable
|
|
60
|
+
local isItemPowerup = IsItemPowerup
|
|
61
|
+
local itemAddAbility = BlzItemAddAbility
|
|
62
|
+
local itemRemoveAbility = BlzItemRemoveAbility
|
|
63
|
+
local loadItemHandle = LoadItemHandle
|
|
25
64
|
local removeItem = RemoveItem
|
|
26
|
-
local
|
|
27
|
-
local getItemIntegerField = BlzGetItemIntegerField
|
|
65
|
+
local saveWidgetHandle = SaveWidgetHandle
|
|
28
66
|
local setItemBooleanField = BlzSetItemBooleanField
|
|
29
|
-
local
|
|
67
|
+
local setItemCharges = SetItemCharges
|
|
68
|
+
local setItemColor = SetItemColor
|
|
69
|
+
local setItemDropOnDeath = SetItemDropOnDeath
|
|
70
|
+
local setItemDroppable = SetItemDroppable
|
|
71
|
+
local setItemPawnable = SetItemPawnable
|
|
72
|
+
local setRect = SetRect
|
|
73
|
+
local triggerAddCondition = TriggerAddCondition
|
|
74
|
+
local triggerRegisterDeathEvent = TriggerRegisterDeathEvent
|
|
75
|
+
local unitRemoveAbility = UnitRemoveAbility
|
|
76
|
+
local unitRemoveItem = UnitRemoveItem
|
|
77
|
+
local unitUseItem = UnitUseItem
|
|
78
|
+
local unitUseItemPoint = UnitUseItemPoint
|
|
79
|
+
local unitUseItemTarget = UnitUseItemTarget
|
|
80
|
+
local tableRemove = table.remove
|
|
81
|
+
local itemChargesChangeEvent = __TS__New(Event)
|
|
82
|
+
local itemDeathEvent = __TS__New(Event)
|
|
83
|
+
_G.SetItemCharges = function(whichItem, charges)
|
|
84
|
+
setItemCharges(whichItem, charges)
|
|
85
|
+
invoke(
|
|
86
|
+
itemChargesChangeEvent,
|
|
87
|
+
____exports.Item:of(whichItem)
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
invoke = Event.invoke
|
|
30
91
|
local enumRect = Rect:create(0, 0, 0, 0).handle
|
|
92
|
+
---
|
|
93
|
+
-- @internal For use by internal systems only.
|
|
31
94
|
____exports.addAndGetAbility = function(handle, abilityTypeId)
|
|
32
95
|
if itemAddAbility(handle, abilityTypeId) then
|
|
33
96
|
return getItemAbility(handle, abilityTypeId)
|
|
@@ -53,93 +116,244 @@ local function getItemAbilities(handle, item)
|
|
|
53
116
|
end
|
|
54
117
|
return abilities
|
|
55
118
|
end
|
|
119
|
+
local function consumeCharge(handle)
|
|
120
|
+
do
|
|
121
|
+
local i = 0
|
|
122
|
+
local ability = getItemAbilityByIndex(handle, i)
|
|
123
|
+
while ability ~= nil do
|
|
124
|
+
unitRemoveAbility(
|
|
125
|
+
itemAbilityDummy,
|
|
126
|
+
getAbilityId(ability)
|
|
127
|
+
)
|
|
128
|
+
do
|
|
129
|
+
i = i + 1
|
|
130
|
+
ability = getItemAbilityByIndex(handle, i)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
return unitUseItem(itemAbilityDummy, handle) or unitUseItemPoint(itemAbilityDummy, handle, 0, 0) or unitUseItemTarget(itemAbilityDummy, handle, itemAbilityDummy)
|
|
135
|
+
end
|
|
136
|
+
local targetCollection
|
|
137
|
+
local targetCollectionNextIndex
|
|
138
|
+
local centerX
|
|
139
|
+
local centerY
|
|
140
|
+
local enumRange
|
|
141
|
+
local function collectIntoTarget()
|
|
142
|
+
local item = getEnumItem()
|
|
143
|
+
local typeId = getItemTypeId(item)
|
|
144
|
+
if typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
|
|
145
|
+
targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
|
|
146
|
+
targetCollectionNextIndex = targetCollectionNextIndex + 1
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
local function collectIntoTargetRange()
|
|
150
|
+
local item = getEnumItem()
|
|
151
|
+
local typeId = getItemTypeId(item)
|
|
152
|
+
if distance(
|
|
153
|
+
getItemX(item),
|
|
154
|
+
getItemY(item),
|
|
155
|
+
centerX,
|
|
156
|
+
centerY
|
|
157
|
+
) <= enumRange and typeId ~= DUMMY_ITEM_ID and typeId ~= SLOT_FILLER_ITEM_TYPE_ID then
|
|
158
|
+
targetCollection[targetCollectionNextIndex] = ____exports.Item:of(item)
|
|
159
|
+
targetCollectionNextIndex = targetCollectionNextIndex + 1
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
local hashtable = InitHashtable()
|
|
163
|
+
local deathTriggerCondition = condition(function()
|
|
164
|
+
saveWidgetHandle(
|
|
165
|
+
hashtable,
|
|
166
|
+
1,
|
|
167
|
+
1,
|
|
168
|
+
getTriggerWidget()
|
|
169
|
+
)
|
|
170
|
+
local item = ____exports.Item:of(loadItemHandle(hashtable, 1, 1))
|
|
171
|
+
if item ~= nil then
|
|
172
|
+
invoke(itemDeathEvent, item)
|
|
173
|
+
end
|
|
174
|
+
end)
|
|
175
|
+
itemDeathEvent:addListener(
|
|
176
|
+
999999,
|
|
177
|
+
function(item)
|
|
178
|
+
Timer:run(item, "destroy")
|
|
179
|
+
end
|
|
180
|
+
)
|
|
56
181
|
____exports.Item = __TS__Class()
|
|
57
182
|
local Item = ____exports.Item
|
|
58
183
|
Item.name = "Item"
|
|
59
184
|
__TS__ClassExtends(Item, Handle)
|
|
60
185
|
function Item.prototype.____constructor(self, handle)
|
|
61
186
|
Handle.prototype.____constructor(self, handle)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
end
|
|
68
|
-
self[101] = luaIndexByAbilityTypeId
|
|
187
|
+
self[100] = doAbilityAction(handle, getItemAbilities, self)
|
|
188
|
+
local deathTrigger = createTrigger()
|
|
189
|
+
triggerRegisterDeathEvent(deathTrigger, handle)
|
|
190
|
+
triggerAddCondition(deathTrigger, deathTriggerCondition)
|
|
191
|
+
self[101] = deathTrigger
|
|
69
192
|
end
|
|
70
193
|
function Item.prototype.onDestroy(self)
|
|
194
|
+
local owner = self.owner
|
|
195
|
+
if owner ~= nil then
|
|
196
|
+
unitRemoveItem(owner.handle, self.handle)
|
|
197
|
+
end
|
|
71
198
|
local abilities = self[100]
|
|
72
199
|
for i = 1, #abilities do
|
|
73
200
|
abilities[i]:destroy()
|
|
74
201
|
end
|
|
75
202
|
removeItem(self.handle)
|
|
203
|
+
destroyTrigger(self[101])
|
|
76
204
|
return Handle.prototype.onDestroy(self)
|
|
77
205
|
end
|
|
78
206
|
function Item.create(self, id, x, y, skinId)
|
|
79
207
|
return self:of(BlzCreateItemWithSkin(id, x, y, skinId or id))
|
|
80
208
|
end
|
|
209
|
+
function Item.getRandomTypeId(self, level, equipmentType, tag, itemType)
|
|
210
|
+
if equipmentType == nil then
|
|
211
|
+
equipmentType = 9
|
|
212
|
+
end
|
|
213
|
+
if tag == nil then
|
|
214
|
+
tag = 8
|
|
215
|
+
end
|
|
216
|
+
if itemType == nil then
|
|
217
|
+
itemType = ITEM_TYPE_ANY
|
|
218
|
+
end
|
|
219
|
+
local id = chooseRandomItemExWithFilter(
|
|
220
|
+
itemType,
|
|
221
|
+
level,
|
|
222
|
+
convertEquipmentType(equipmentType),
|
|
223
|
+
convertItemTag(tag)
|
|
224
|
+
)
|
|
225
|
+
return id ~= 0 and id or nil
|
|
226
|
+
end
|
|
227
|
+
function Item.prototype.consumeCharge(self)
|
|
228
|
+
return self:consumeCharges(1)
|
|
229
|
+
end
|
|
230
|
+
function Item.prototype.consumeCharges(self, count)
|
|
231
|
+
local handle = self.handle
|
|
232
|
+
local charges = getItemCharges(handle)
|
|
233
|
+
if charges > count then
|
|
234
|
+
setItemCharges(handle, charges - count)
|
|
235
|
+
invoke(itemChargesChangeEvent, self)
|
|
236
|
+
return true
|
|
237
|
+
end
|
|
238
|
+
if charges == count then
|
|
239
|
+
if getItemBooleanField(handle, ITEM_BF_PERISHABLE) then
|
|
240
|
+
self:destroy()
|
|
241
|
+
return true
|
|
242
|
+
end
|
|
243
|
+
if not getItemBooleanField(handle, ITEM_BF_ACTIVELY_USED) then
|
|
244
|
+
setItemCharges(handle, 0)
|
|
245
|
+
invoke(itemChargesChangeEvent, self)
|
|
246
|
+
return true
|
|
247
|
+
end
|
|
248
|
+
setItemCharges(handle, 1)
|
|
249
|
+
local ____doAbilityActionForceDummy_2 = doAbilityActionForceDummy
|
|
250
|
+
local ____opt_0 = self.owner
|
|
251
|
+
____doAbilityActionForceDummy_2(handle, ____opt_0 and ____opt_0.handle, consumeCharge)
|
|
252
|
+
invoke(itemChargesChangeEvent, self)
|
|
253
|
+
return true
|
|
254
|
+
end
|
|
255
|
+
return false
|
|
256
|
+
end
|
|
81
257
|
function Item.prototype.addAbility(self, abilityTypeId)
|
|
82
258
|
local nativeAbility = doAbilityAction(self.handle, ____exports.addAndGetAbility, abilityTypeId)
|
|
83
259
|
if nativeAbility ~= nil then
|
|
84
260
|
local ability = ItemAbility:of(nativeAbility, abilityTypeId, self)
|
|
85
261
|
local abilities = self[100]
|
|
86
|
-
|
|
87
|
-
abilities[luaIndex] = ability
|
|
88
|
-
self[101][abilityTypeId] = luaIndex
|
|
262
|
+
abilities[#abilities + 1] = ability
|
|
89
263
|
return ability
|
|
90
264
|
end
|
|
91
265
|
return nil
|
|
92
266
|
end
|
|
93
267
|
function Item.prototype.removeAbility(self, abilityTypeId)
|
|
94
|
-
local
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
for j = luaIndex, abilityTypeIdsLength do
|
|
102
|
-
abilities[j] = abilities[j + 1]
|
|
268
|
+
local abilities = self[100]
|
|
269
|
+
for i = 1, #abilities do
|
|
270
|
+
if abilities[i].typeId == abilityTypeId then
|
|
271
|
+
local ability = abilities[i]
|
|
272
|
+
tableRemove(abilities, i)
|
|
273
|
+
ability:destroy()
|
|
274
|
+
return true
|
|
103
275
|
end
|
|
104
276
|
end
|
|
105
|
-
return
|
|
277
|
+
return doAbilityAction(self.handle, itemRemoveAbility, abilityTypeId)
|
|
106
278
|
end
|
|
107
279
|
function Item.prototype.hasAbility(self, abilityTypeId)
|
|
108
|
-
return self
|
|
280
|
+
return doAbilityAction(self.handle, getItemAbility, abilityTypeId) ~= nil
|
|
109
281
|
end
|
|
110
282
|
function Item.prototype.getAbility(self, abilityTypeId)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
local collection = {}
|
|
116
|
-
SetRect(
|
|
117
|
-
enumRect,
|
|
118
|
-
pos.x - range,
|
|
119
|
-
pos.y - range,
|
|
120
|
-
pos.x + range,
|
|
121
|
-
pos.y + range
|
|
283
|
+
return ItemAbility:of(
|
|
284
|
+
doAbilityAction(self.handle, getItemAbility, abilityTypeId),
|
|
285
|
+
abilityTypeId,
|
|
286
|
+
self
|
|
122
287
|
)
|
|
123
|
-
|
|
288
|
+
end
|
|
289
|
+
function Item.getInRange(self, x, y, range)
|
|
290
|
+
targetCollection = {}
|
|
291
|
+
targetCollectionNextIndex = 1
|
|
292
|
+
centerX = x
|
|
293
|
+
centerY = y
|
|
294
|
+
enumRange = range
|
|
295
|
+
setRect(
|
|
124
296
|
enumRect,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
297
|
+
x - range,
|
|
298
|
+
y - range,
|
|
299
|
+
x + range,
|
|
300
|
+
y + range
|
|
129
301
|
)
|
|
130
|
-
|
|
302
|
+
enumItemsInRect(enumRect, nil, collectIntoTargetRange)
|
|
303
|
+
return targetCollection
|
|
131
304
|
end
|
|
132
305
|
function Item.getInRect(self, rect)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
function()
|
|
138
|
-
collection[#collection + 1] = self:of(GetEnumItem())
|
|
139
|
-
end
|
|
140
|
-
)
|
|
141
|
-
return collection
|
|
306
|
+
targetCollection = {}
|
|
307
|
+
targetCollectionNextIndex = 1
|
|
308
|
+
enumItemsInRect(rect.handle, nil, collectIntoTarget)
|
|
309
|
+
return targetCollection
|
|
142
310
|
end
|
|
311
|
+
__TS__SetDescriptor(
|
|
312
|
+
Item.prototype,
|
|
313
|
+
"isEquipped",
|
|
314
|
+
{get = function(self)
|
|
315
|
+
return isItemEquipped(self.handle)
|
|
316
|
+
end},
|
|
317
|
+
true
|
|
318
|
+
)
|
|
319
|
+
__TS__SetDescriptor(
|
|
320
|
+
Item.prototype,
|
|
321
|
+
"isInBag",
|
|
322
|
+
{get = function(self)
|
|
323
|
+
return isItemInBag(self.handle)
|
|
324
|
+
end},
|
|
325
|
+
true
|
|
326
|
+
)
|
|
327
|
+
__TS__SetDescriptor(
|
|
328
|
+
Item.prototype,
|
|
329
|
+
"equipmentType",
|
|
330
|
+
{get = function(self)
|
|
331
|
+
return getHandleId(getItemEquipmentType(self.handle))
|
|
332
|
+
end},
|
|
333
|
+
true
|
|
334
|
+
)
|
|
335
|
+
__TS__SetDescriptor(
|
|
336
|
+
Item.prototype,
|
|
337
|
+
"tag",
|
|
338
|
+
{get = function(self)
|
|
339
|
+
return getHandleId(getItemTag(self.handle))
|
|
340
|
+
end},
|
|
341
|
+
true
|
|
342
|
+
)
|
|
343
|
+
__TS__SetDescriptor(
|
|
344
|
+
Item.prototype,
|
|
345
|
+
"color",
|
|
346
|
+
{
|
|
347
|
+
get = function(self)
|
|
348
|
+
return self[102] or PlayerColor.red
|
|
349
|
+
end,
|
|
350
|
+
set = function(self, color)
|
|
351
|
+
setItemColor(self.handle, color.handle)
|
|
352
|
+
self[102] = color
|
|
353
|
+
end
|
|
354
|
+
},
|
|
355
|
+
true
|
|
356
|
+
)
|
|
143
357
|
__TS__SetDescriptor(
|
|
144
358
|
Item.prototype,
|
|
145
359
|
"typeId",
|
|
@@ -228,65 +442,55 @@ __TS__SetDescriptor(
|
|
|
228
442
|
)
|
|
229
443
|
__TS__SetDescriptor(
|
|
230
444
|
Item.prototype,
|
|
231
|
-
"
|
|
445
|
+
"dropsOnDeath",
|
|
232
446
|
{
|
|
233
447
|
get = function(self)
|
|
234
|
-
return
|
|
448
|
+
return getItemBooleanField(self.handle, ITEM_BF_DROPPED_WHEN_CARRIER_DIES)
|
|
235
449
|
end,
|
|
236
|
-
set = function(self,
|
|
237
|
-
|
|
450
|
+
set = function(self, dropsOnDeath)
|
|
451
|
+
setItemDropOnDeath(self.handle, dropsOnDeath)
|
|
238
452
|
end
|
|
239
453
|
},
|
|
240
454
|
true
|
|
241
455
|
)
|
|
242
456
|
__TS__SetDescriptor(
|
|
243
457
|
Item.prototype,
|
|
244
|
-
"
|
|
458
|
+
"canBeDropped",
|
|
245
459
|
{
|
|
246
460
|
get = function(self)
|
|
247
|
-
return
|
|
461
|
+
return getItemBooleanField(self.handle, ITEM_BF_CAN_BE_DROPPED)
|
|
248
462
|
end,
|
|
249
|
-
set = function(self,
|
|
250
|
-
|
|
251
|
-
end
|
|
252
|
-
},
|
|
253
|
-
true
|
|
254
|
-
)
|
|
255
|
-
__TS__SetDescriptor(
|
|
256
|
-
Item.prototype,
|
|
257
|
-
"pawnable",
|
|
258
|
-
{
|
|
259
|
-
get = function(self)
|
|
260
|
-
return IsItemPawnable(self.handle)
|
|
261
|
-
end,
|
|
262
|
-
set = function(self, v)
|
|
263
|
-
SetItemPawnable(self.handle, v)
|
|
463
|
+
set = function(self, canBeDropped)
|
|
464
|
+
setItemDroppable(self.handle, canBeDropped)
|
|
264
465
|
end
|
|
265
466
|
},
|
|
266
467
|
true
|
|
267
468
|
)
|
|
268
469
|
__TS__SetDescriptor(
|
|
269
470
|
Item.prototype,
|
|
270
|
-
"
|
|
471
|
+
"perishes",
|
|
271
472
|
{
|
|
272
473
|
get = function(self)
|
|
273
|
-
return
|
|
474
|
+
return getItemBooleanField(self.handle, ITEM_BF_PERISHABLE)
|
|
274
475
|
end,
|
|
275
|
-
set = function(self,
|
|
276
|
-
|
|
476
|
+
set = function(self, perishes)
|
|
477
|
+
local handle = self.handle
|
|
478
|
+
local powerUp = isItemPowerup(handle)
|
|
479
|
+
setItemBooleanField(handle, ITEM_BF_PERISHABLE, perishes)
|
|
480
|
+
setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerUp)
|
|
277
481
|
end
|
|
278
482
|
},
|
|
279
483
|
true
|
|
280
484
|
)
|
|
281
485
|
__TS__SetDescriptor(
|
|
282
486
|
Item.prototype,
|
|
283
|
-
"
|
|
487
|
+
"isPowerUp",
|
|
284
488
|
{
|
|
285
489
|
get = function(self)
|
|
286
490
|
return isItemPowerup(self.handle)
|
|
287
491
|
end,
|
|
288
|
-
set = function(self,
|
|
289
|
-
setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED,
|
|
492
|
+
set = function(self, isPowerUp)
|
|
493
|
+
setItemBooleanField(self.handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, isPowerUp)
|
|
290
494
|
end
|
|
291
495
|
},
|
|
292
496
|
true
|
|
@@ -320,22 +524,6 @@ __TS__SetDescriptor(
|
|
|
320
524
|
},
|
|
321
525
|
true
|
|
322
526
|
)
|
|
323
|
-
__TS__SetDescriptor(
|
|
324
|
-
Item.prototype,
|
|
325
|
-
"usable",
|
|
326
|
-
{
|
|
327
|
-
get = function(self)
|
|
328
|
-
return getItemBooleanField(self.handle, ITEM_BF_ACTIVELY_USED)
|
|
329
|
-
end,
|
|
330
|
-
set = function(self, v)
|
|
331
|
-
local handle = self.handle
|
|
332
|
-
local powerup = isItemPowerup(handle)
|
|
333
|
-
setItemBooleanField(handle, ITEM_BF_ACTIVELY_USED, v)
|
|
334
|
-
setItemBooleanField(handle, ITEM_BF_USE_AUTOMATICALLY_WHEN_ACQUIRED, powerup)
|
|
335
|
-
end
|
|
336
|
-
},
|
|
337
|
-
true
|
|
338
|
-
)
|
|
339
527
|
__TS__SetDescriptor(
|
|
340
528
|
Item.prototype,
|
|
341
529
|
"visible",
|
|
@@ -526,10 +714,11 @@ __TS__SetDescriptor(
|
|
|
526
714
|
"charges",
|
|
527
715
|
{
|
|
528
716
|
get = function(self)
|
|
529
|
-
return
|
|
717
|
+
return getItemCharges(self.handle)
|
|
530
718
|
end,
|
|
531
719
|
set = function(self, v)
|
|
532
|
-
|
|
720
|
+
setItemCharges(self.handle, v)
|
|
721
|
+
invoke(itemChargesChangeEvent, self)
|
|
533
722
|
end
|
|
534
723
|
},
|
|
535
724
|
true
|
|
@@ -551,12 +740,13 @@ __TS__ObjectDefineProperty(
|
|
|
551
740
|
)
|
|
552
741
|
__TS__ObjectDefineProperty(
|
|
553
742
|
Item,
|
|
554
|
-
"
|
|
743
|
+
"destroyEvent",
|
|
555
744
|
{get = function(self)
|
|
556
745
|
return self.onDestroyEvent
|
|
557
746
|
end}
|
|
558
747
|
)
|
|
559
|
-
|
|
748
|
+
Item.deathEvent = itemDeathEvent
|
|
749
|
+
Item.chargesChangedEvent = itemChargesChangeEvent
|
|
560
750
|
local trigger = CreateTrigger()
|
|
561
751
|
TriggerRegisterAnyUnitEventBJ(trigger, EVENT_PLAYER_UNIT_PICKUP_ITEM)
|
|
562
752
|
TriggerAddAction(
|
|
@@ -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
|
|
@@ -74,9 +74,12 @@ ____exports.castAbility = function(nativeUnit, abilityTypeId, prepareAbility, ..
|
|
|
74
74
|
unitRemoveAbility(nativeUnit, INVENTORY_ABILITY_TYPE_ID)
|
|
75
75
|
if latestInventoryAbilityTypeId ~= 0 then
|
|
76
76
|
unitAddAbility(nativeUnit, latestInventoryAbilityTypeId)
|
|
77
|
-
for slot,
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
for slot = 0, inventorySize - 1 do
|
|
78
|
+
local nativeItem = nativeItemBySlot[slot]
|
|
79
|
+
if nativeItem ~= nil then
|
|
80
|
+
unitAddItem(nativeUnit, nativeItem)
|
|
81
|
+
unitDropItemSlot(nativeUnit, nativeItem, slot)
|
|
82
|
+
end
|
|
80
83
|
end
|
|
81
84
|
end
|
|
82
85
|
end
|
|
@@ -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
|