warscript 0.0.1-dev.ff5dbcd → 0.0.1-dev.fff719b
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/core/types/effect.d.ts +1 -3
- package/core/types/effect.lua +26 -29
- package/core/types/frame.lua +24 -21
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -25
- package/core/types/sound.lua +85 -44
- 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/decl/native.d.ts +846 -790
- 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/apply-buff.lua +5 -5
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +9 -3
- package/engine/behaviour/ability/damage.lua +26 -38
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +18 -3
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.d.ts +7 -2
- package/engine/behaviour/ability.lua +28 -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 +40 -2
- package/engine/behaviour/unit.lua +269 -6
- package/engine/buff.d.ts +32 -14
- package/engine/buff.lua +249 -152
- package/engine/internal/ability.d.ts +7 -1
- package/engine/internal/ability.lua +49 -9
- package/engine/internal/item/ability.lua +63 -11
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +18 -17
- package/engine/internal/item.lua +135 -49
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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/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 +98 -9
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -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/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+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 +42 -24
- package/engine/internal/unit.lua +377 -232
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +7 -2
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/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/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -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/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/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 +11 -11
- package/engine/object-data/entry/ability-type.lua +35 -13
- package/engine/object-data/entry/buff-type/applicable.lua +5 -0
- package/engine/object-data/entry/buff-type.d.ts +5 -11
- package/engine/object-data/entry/buff-type.lua +11 -27
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/sound-preset.d.ts +17 -0
- package/engine/object-data/entry/sound-preset.lua +104 -0
- package/engine/object-data/entry/unit-type.d.ts +17 -4
- package/engine/object-data/entry/unit-type.lua +197 -85
- package/engine/object-field/ability.d.ts +4 -4
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -6
- package/engine/object-field.lua +357 -118
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +5 -0
- package/engine/unit.lua +5 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +11 -10
- package/package.json +2 -2
- package/patch-lua.lua +9 -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 +26 -0
- package/utility/linked-map.lua +66 -0
- package/utility/linked-set.d.ts +2 -0
- package/utility/linked-set.lua +26 -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/records.lua +20 -1
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
|
@@ -387,8 +387,8 @@ ____exports.INVISIBILITY_TRANSITION_TIME_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloa
|
|
|
387
387
|
____exports.ACTIVATION_RADIUS_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Neu1"))
|
|
388
388
|
____exports.AMOUNT_REGENERATED_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Arm1"))
|
|
389
389
|
____exports.DAMAGE_PER_SECOND_POI1_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi1"))
|
|
390
|
-
____exports.
|
|
391
|
-
____exports.
|
|
390
|
+
____exports.MOVEMENT_SPEED_FACTOR_POI2_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi2"))
|
|
391
|
+
____exports.ATTACK_SPEED_FACTOR_POI3_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poi3"))
|
|
392
392
|
____exports.EXTRA_DAMAGE_POA1_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poa1"))
|
|
393
393
|
____exports.DAMAGE_PER_SECOND_POA2_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poa2"))
|
|
394
394
|
____exports.ATTACK_SPEED_FACTOR_POA3_ABILITY_FLOAT_LEVEL_FIELD = AbilityFloatLevelField:create(fourCC("Poa3"))
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { UnitClassificationsField, UnitFloatField, UnitFlyHeightField, UnitHealthRegenerationTypeField, UnitIntegerField, UnitPropulsionWindowField, UnitScalingValueField } from "../../object-field/unit";
|
|
3
|
+
export declare const PROPULSION_WINDOW_UNIT_FIELD: UnitPropulsionWindowField & symbol;
|
|
4
|
+
export declare const CLASSIFICATIONS_UNIT_FIELD: UnitClassificationsField & symbol;
|
|
5
|
+
export declare const FLY_HEIGHT_UNIT_FIELD: UnitFlyHeightField & symbol;
|
|
6
|
+
export declare const SCALING_VALUE_UNIT_FIELD: UnitScalingValueField & symbol;
|
|
7
|
+
export declare const HEALTH_REGENERATION_RATE_UNIT_FIELD: UnitFloatField & symbol;
|
|
8
|
+
export declare const MANA_REGENERATION_RATE_UNIT_FIELD: UnitFloatField & symbol;
|
|
9
|
+
export declare const HEALTH_REGENERATION_TYPE_UNIT_FIELD: UnitHealthRegenerationTypeField & symbol;
|
|
10
|
+
export declare const STRENGTH_UNIT_FIELD: UnitIntegerField<number> & symbol;
|
|
11
|
+
export declare const AGILITY_UNIT_FIELD: UnitIntegerField<number> & symbol;
|
|
12
|
+
export declare const INTELLIGENCE_UNIT_FIELD: UnitIntegerField<number> & symbol;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____unit = require("engine.object-field.unit")
|
|
3
|
+
local UnitClassificationsField = ____unit.UnitClassificationsField
|
|
4
|
+
local UnitFloatField = ____unit.UnitFloatField
|
|
5
|
+
local UnitFlyHeightField = ____unit.UnitFlyHeightField
|
|
6
|
+
local UnitHealthRegenerationTypeField = ____unit.UnitHealthRegenerationTypeField
|
|
7
|
+
local UnitIntegerField = ____unit.UnitIntegerField
|
|
8
|
+
local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
|
|
9
|
+
local UnitScalingValueField = ____unit.UnitScalingValueField
|
|
10
|
+
____exports.PROPULSION_WINDOW_UNIT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
|
|
11
|
+
____exports.CLASSIFICATIONS_UNIT_FIELD = UnitClassificationsField:create(fourCC("utyp"))
|
|
12
|
+
____exports.FLY_HEIGHT_UNIT_FIELD = UnitFlyHeightField:create(fourCC("ufyh"))
|
|
13
|
+
____exports.SCALING_VALUE_UNIT_FIELD = UnitScalingValueField:create(fourCC("usca"))
|
|
14
|
+
____exports.HEALTH_REGENERATION_RATE_UNIT_FIELD = UnitFloatField:create(fourCC("uhpr"))
|
|
15
|
+
____exports.MANA_REGENERATION_RATE_UNIT_FIELD = UnitFloatField:create(fourCC("umpr"))
|
|
16
|
+
____exports.HEALTH_REGENERATION_TYPE_UNIT_FIELD = UnitHealthRegenerationTypeField:create(fourCC("uhrt"))
|
|
17
|
+
____exports.STRENGTH_UNIT_FIELD = UnitIntegerField:create(fourCC("ustc"))
|
|
18
|
+
____exports.AGILITY_UNIT_FIELD = UnitIntegerField:create(fourCC("uagc"))
|
|
19
|
+
____exports.INTELLIGENCE_UNIT_FIELD = UnitIntegerField:create(fourCC("uinc"))
|
|
20
|
+
return ____exports
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Player } from "../core/types/player";
|
|
3
|
+
import { Event } from "../event";
|
|
4
|
+
export declare const synchronizer: <T, K extends number>(getSyncId: (object: T) => K, getObject: (syncId: K) => T | undefined) => ((player: Player, object: T | undefined) => Promise<T | undefined>);
|
|
5
|
+
export declare class ObjectBus<T, K extends number> {
|
|
6
|
+
private readonly getSyncId;
|
|
7
|
+
readonly event: Event<[Player, T | undefined]>;
|
|
8
|
+
private readonly syncSlider;
|
|
9
|
+
constructor(getSyncId: (object: T) => K, getObject: (syncId: K) => T | undefined);
|
|
10
|
+
send(object: T | undefined): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
|
+
local __TS__Promise = ____lualib.__TS__Promise
|
|
4
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____player = require("core.types.player")
|
|
7
|
+
local Player = ____player.Player
|
|
8
|
+
local ____math = require("math")
|
|
9
|
+
local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
10
|
+
local MINIMUM_INTEGER = ____math.MINIMUM_INTEGER
|
|
11
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
12
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
13
|
+
local ____event = require("event")
|
|
14
|
+
local Event = ____event.Event
|
|
15
|
+
local eventInvoke = Event.invoke
|
|
16
|
+
local createFrameByType = BlzCreateFrameByType
|
|
17
|
+
local createTrigger = CreateTrigger
|
|
18
|
+
local getOriginFrame = BlzGetOriginFrame
|
|
19
|
+
local getTriggerFrameValue = BlzGetTriggerFrameValue
|
|
20
|
+
local getTriggerPlayer = GetTriggerPlayer
|
|
21
|
+
local frameSetMinMaxValue = BlzFrameSetMinMaxValue
|
|
22
|
+
local frameSetValue = BlzFrameSetValue
|
|
23
|
+
local triggerAddAction = TriggerAddAction
|
|
24
|
+
local triggerRegisterFrameEvent = BlzTriggerRegisterFrameEvent
|
|
25
|
+
____exports.synchronizer = function(getSyncId, getObject)
|
|
26
|
+
local queue = __TS__New(LinkedSet)
|
|
27
|
+
local socket = __TS__New(____exports.ObjectBus, getSyncId, getObject)
|
|
28
|
+
socket.event:addListener(function(_, object)
|
|
29
|
+
local ____opt_0 = queue:pop()
|
|
30
|
+
if ____opt_0 ~= nil then
|
|
31
|
+
____opt_0(object)
|
|
32
|
+
end
|
|
33
|
+
end)
|
|
34
|
+
local function executor(____, resolve)
|
|
35
|
+
queue:add(resolve)
|
|
36
|
+
end
|
|
37
|
+
return function(player, object)
|
|
38
|
+
if player.isLocal then
|
|
39
|
+
socket:send(object)
|
|
40
|
+
end
|
|
41
|
+
return __TS__New(__TS__Promise, executor)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
____exports.ObjectBus = __TS__Class()
|
|
45
|
+
local ObjectBus = ____exports.ObjectBus
|
|
46
|
+
ObjectBus.name = "ObjectBus"
|
|
47
|
+
function ObjectBus.prototype.____constructor(self, getSyncId, getObject)
|
|
48
|
+
self.getSyncId = getSyncId
|
|
49
|
+
local syncSlider = createFrameByType(
|
|
50
|
+
"SLIDER",
|
|
51
|
+
"Synchronizer",
|
|
52
|
+
getOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0),
|
|
53
|
+
"",
|
|
54
|
+
0
|
|
55
|
+
)
|
|
56
|
+
frameSetMinMaxValue(syncSlider, MINIMUM_INTEGER, MAXIMUM_INTEGER)
|
|
57
|
+
self.syncSlider = syncSlider
|
|
58
|
+
local event = __TS__New(Event)
|
|
59
|
+
local trigger = createTrigger()
|
|
60
|
+
triggerRegisterFrameEvent(trigger, syncSlider, FRAMEEVENT_SLIDER_VALUE_CHANGED)
|
|
61
|
+
triggerAddAction(
|
|
62
|
+
trigger,
|
|
63
|
+
function()
|
|
64
|
+
eventInvoke(
|
|
65
|
+
event,
|
|
66
|
+
Player:of(getTriggerPlayer()),
|
|
67
|
+
getObject(getTriggerFrameValue())
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
)
|
|
71
|
+
self.event = event
|
|
72
|
+
end
|
|
73
|
+
function ObjectBus.prototype.send(self, object)
|
|
74
|
+
local syncId = object ~= nil and self.getSyncId(object) or 0
|
|
75
|
+
frameSetValue(self.syncSlider, syncId)
|
|
76
|
+
end
|
|
77
|
+
return ____exports
|
package/engine/text-tag.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Color } from "../core/types/color";
|
|
3
|
+
import { Unit } from "./internal/unit";
|
|
4
|
+
import { AbstractDestroyable, Destructor } from "../destroyable";
|
|
3
5
|
export type TextTagPreset = {
|
|
4
6
|
fadepoint: number;
|
|
5
7
|
lifespan: number;
|
|
@@ -10,9 +12,39 @@ export type TextTagPreset = {
|
|
|
10
12
|
velocityY: number;
|
|
11
13
|
color: Color;
|
|
12
14
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
declare const enum TextTagPropertyKey {
|
|
16
|
+
UNIT = 100,
|
|
17
|
+
HANDLE = 101,
|
|
18
|
+
CONFIGURATION = 102,
|
|
19
|
+
TEXT = 103,
|
|
20
|
+
FONT_SIZE = 104,
|
|
21
|
+
COLOR = 105,
|
|
22
|
+
X = 106,
|
|
23
|
+
Y = 107
|
|
24
|
+
}
|
|
25
|
+
export declare class TextTag extends AbstractDestroyable {
|
|
26
|
+
private [TextTagPropertyKey.HANDLE]?;
|
|
27
|
+
private [TextTagPropertyKey.CONFIGURATION]?;
|
|
28
|
+
private [TextTagPropertyKey.TEXT]?;
|
|
29
|
+
private [TextTagPropertyKey.FONT_SIZE]?;
|
|
30
|
+
private [TextTagPropertyKey.COLOR]?;
|
|
31
|
+
private [TextTagPropertyKey.UNIT]?;
|
|
32
|
+
private [TextTagPropertyKey.X]?;
|
|
33
|
+
private [TextTagPropertyKey.Y]?;
|
|
15
34
|
private constructor();
|
|
35
|
+
protected onDestroy(): Destructor;
|
|
36
|
+
get text(): string;
|
|
37
|
+
set text(text: string);
|
|
38
|
+
get fontSize(): number;
|
|
39
|
+
set fontSize(fontSize: number);
|
|
40
|
+
get color(): Color;
|
|
41
|
+
set color(color: Color);
|
|
42
|
+
get unit(): Unit | undefined;
|
|
43
|
+
set unit(unit: Unit | undefined);
|
|
44
|
+
get x(): number;
|
|
45
|
+
set x(x: number);
|
|
46
|
+
get y(): number;
|
|
47
|
+
set y(y: number);
|
|
16
48
|
static BASE: Readonly<TextTagPreset>;
|
|
17
49
|
static BASH: Readonly<TextTagPreset>;
|
|
18
50
|
static CRITICAL_STRIKE: Readonly<TextTagPreset>;
|
|
@@ -22,4 +54,6 @@ export declare class TextTag {
|
|
|
22
54
|
static MISS: Readonly<TextTagPreset>;
|
|
23
55
|
static SHADOW_STRIKE: Readonly<TextTagPreset>;
|
|
24
56
|
static flash(configuration: Readonly<TextTagPreset>, text: string, x: number, y: number, z?: number): void;
|
|
57
|
+
static create(configuration: Readonly<TextTagPreset>, text: string, unit: Unit): TextTag;
|
|
25
58
|
}
|
|
59
|
+
export {};
|
package/engine/text-tag.lua
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
|
|
4
|
+
local __TS__New = ____lualib.__TS__New
|
|
5
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
3
6
|
local __TS__ObjectAssign = ____lualib.__TS__ObjectAssign
|
|
4
7
|
local ____exports = {}
|
|
5
8
|
local ____color = require("core.types.color")
|
|
6
9
|
local Color = ____color.Color
|
|
10
|
+
local ____timer = require("core.types.timer")
|
|
11
|
+
local Timer = ____timer.Timer
|
|
12
|
+
local ____destroyable = require("destroyable")
|
|
13
|
+
local AbstractDestroyable = ____destroyable.AbstractDestroyable
|
|
14
|
+
local ____playerCamera = require("core.types.playerCamera")
|
|
15
|
+
local worldCoordinatesToFrame = ____playerCamera.worldCoordinatesToFrame
|
|
16
|
+
local ____get_2Dterrain_2Dz = require("engine.internal.misc.get-terrain-z")
|
|
17
|
+
local getTerrainZ = ____get_2Dterrain_2Dz.getTerrainZ
|
|
18
|
+
local ____player_2Dlocal_2Dhandle = require("engine.internal.misc.player-local-handle")
|
|
19
|
+
local PLAYER_LOCAL_HANDLE = ____player_2Dlocal_2Dhandle.PLAYER_LOCAL_HANDLE
|
|
7
20
|
local createTextTag = CreateTextTag
|
|
8
21
|
local destroyTextTag = DestroyTextTag
|
|
9
22
|
local setTextTagText = SetTextTagText
|
|
@@ -17,17 +30,15 @@ local setTextTagPermanent = SetTextTagPermanent
|
|
|
17
30
|
local setTextTagAge = SetTextTagAge
|
|
18
31
|
local setTextTagLifespan = SetTextTagLifespan
|
|
19
32
|
local setTextTagFadepoint = SetTextTagFadepoint
|
|
33
|
+
local isUnitHidden = IsUnitHidden
|
|
34
|
+
local isUnitLoaded = IsUnitLoaded
|
|
35
|
+
local isUnitVisible = IsUnitVisible
|
|
36
|
+
local getUnitFlyHeight = GetUnitFlyHeight
|
|
37
|
+
local getUnitX = GetUnitX
|
|
38
|
+
local getUnitY = GetUnitY
|
|
39
|
+
local unitAlive = UnitAlive
|
|
20
40
|
local DEFAULT_FONT_SIZE = 0.024
|
|
21
|
-
|
|
22
|
-
local TextTag = ____exports.TextTag
|
|
23
|
-
TextTag.name = "TextTag"
|
|
24
|
-
function TextTag.prototype.____constructor(self, handle)
|
|
25
|
-
self.handle = handle
|
|
26
|
-
end
|
|
27
|
-
function TextTag.flash(self, configuration, text, x, y, z)
|
|
28
|
-
local textTag = createTextTag()
|
|
29
|
-
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
30
|
-
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
41
|
+
local function applyConfiguration(textTag, configuration)
|
|
31
42
|
setTextTagFadepoint(textTag, configuration.fadepoint)
|
|
32
43
|
setTextTagLifespan(textTag, configuration.lifespan)
|
|
33
44
|
local color = configuration.color
|
|
@@ -42,6 +53,213 @@ function TextTag.flash(self, configuration, text, x, y, z)
|
|
|
42
53
|
setTextTagPermanent(textTag, false)
|
|
43
54
|
setTextTagVisibility(textTag, true)
|
|
44
55
|
end
|
|
56
|
+
local unitTextTags = setmetatable({}, {__mode = "k"})
|
|
57
|
+
local function ensureHandle(textTag)
|
|
58
|
+
local handle = textTag[101]
|
|
59
|
+
if handle == nil then
|
|
60
|
+
handle = createTextTag()
|
|
61
|
+
applyConfiguration(handle, textTag[102])
|
|
62
|
+
setTextTagPermanent(handle, true)
|
|
63
|
+
setTextTagText(handle, textTag[103] or "", textTag[104] or DEFAULT_FONT_SIZE)
|
|
64
|
+
local color = textTag[105]
|
|
65
|
+
if color ~= nil then
|
|
66
|
+
setTextTagColor(
|
|
67
|
+
handle,
|
|
68
|
+
color.r,
|
|
69
|
+
color.g,
|
|
70
|
+
color.b,
|
|
71
|
+
color.a
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
local unit = textTag[100]
|
|
75
|
+
if unit ~= nil then
|
|
76
|
+
setTextTagPosUnit(handle, unit.handle, textTag[102].offsetZ)
|
|
77
|
+
else
|
|
78
|
+
setTextTagPos(handle, textTag[106] or 0, textTag[107] or 0, 0)
|
|
79
|
+
end
|
|
80
|
+
textTag[101] = handle
|
|
81
|
+
end
|
|
82
|
+
return handle
|
|
83
|
+
end
|
|
84
|
+
____exports.TextTag = __TS__Class()
|
|
85
|
+
local TextTag = ____exports.TextTag
|
|
86
|
+
TextTag.name = "TextTag"
|
|
87
|
+
__TS__ClassExtends(TextTag, AbstractDestroyable)
|
|
88
|
+
function TextTag.prototype.____constructor(self, handle)
|
|
89
|
+
AbstractDestroyable.prototype.____constructor(self)
|
|
90
|
+
self[101] = handle
|
|
91
|
+
end
|
|
92
|
+
function TextTag.prototype.onDestroy(self)
|
|
93
|
+
local handle = self[101]
|
|
94
|
+
if handle ~= nil then
|
|
95
|
+
destroyTextTag(handle)
|
|
96
|
+
self[101] = nil
|
|
97
|
+
end
|
|
98
|
+
unitTextTags[self] = nil
|
|
99
|
+
return AbstractDestroyable.prototype.onDestroy(self)
|
|
100
|
+
end
|
|
101
|
+
function TextTag.flash(self, configuration, text, x, y, z)
|
|
102
|
+
local textTag = createTextTag()
|
|
103
|
+
setTextTagText(textTag, text, DEFAULT_FONT_SIZE)
|
|
104
|
+
setTextTagPos(textTag, x + configuration.offsetX, y + configuration.offsetY, (z or 0) + configuration.offsetZ)
|
|
105
|
+
applyConfiguration(textTag, configuration)
|
|
106
|
+
end
|
|
107
|
+
function TextTag.create(self, configuration, text, unit)
|
|
108
|
+
local textTag = __TS__New(____exports.TextTag)
|
|
109
|
+
textTag[103] = text
|
|
110
|
+
textTag[100] = unit
|
|
111
|
+
textTag[102] = configuration
|
|
112
|
+
ensureHandle(textTag)
|
|
113
|
+
unitTextTags[textTag] = true
|
|
114
|
+
return textTag
|
|
115
|
+
end
|
|
116
|
+
__TS__SetDescriptor(
|
|
117
|
+
TextTag.prototype,
|
|
118
|
+
"text",
|
|
119
|
+
{
|
|
120
|
+
get = function(self)
|
|
121
|
+
return self[103] or ""
|
|
122
|
+
end,
|
|
123
|
+
set = function(self, text)
|
|
124
|
+
setTextTagText(
|
|
125
|
+
ensureHandle(self),
|
|
126
|
+
text,
|
|
127
|
+
self[104] or DEFAULT_FONT_SIZE
|
|
128
|
+
)
|
|
129
|
+
self[103] = text
|
|
130
|
+
end
|
|
131
|
+
},
|
|
132
|
+
true
|
|
133
|
+
)
|
|
134
|
+
__TS__SetDescriptor(
|
|
135
|
+
TextTag.prototype,
|
|
136
|
+
"fontSize",
|
|
137
|
+
{
|
|
138
|
+
get = function(self)
|
|
139
|
+
return self[104] or DEFAULT_FONT_SIZE
|
|
140
|
+
end,
|
|
141
|
+
set = function(self, fontSize)
|
|
142
|
+
setTextTagText(
|
|
143
|
+
ensureHandle(self),
|
|
144
|
+
self[103] or "",
|
|
145
|
+
fontSize
|
|
146
|
+
)
|
|
147
|
+
self[104] = fontSize
|
|
148
|
+
end
|
|
149
|
+
},
|
|
150
|
+
true
|
|
151
|
+
)
|
|
152
|
+
__TS__SetDescriptor(
|
|
153
|
+
TextTag.prototype,
|
|
154
|
+
"color",
|
|
155
|
+
{
|
|
156
|
+
get = function(self)
|
|
157
|
+
return self[105] or Color.white
|
|
158
|
+
end,
|
|
159
|
+
set = function(self, color)
|
|
160
|
+
setTextTagColor(
|
|
161
|
+
ensureHandle(self),
|
|
162
|
+
color.r,
|
|
163
|
+
color.g,
|
|
164
|
+
color.b,
|
|
165
|
+
color.a
|
|
166
|
+
)
|
|
167
|
+
self[105] = color
|
|
168
|
+
end
|
|
169
|
+
},
|
|
170
|
+
true
|
|
171
|
+
)
|
|
172
|
+
__TS__SetDescriptor(
|
|
173
|
+
TextTag.prototype,
|
|
174
|
+
"unit",
|
|
175
|
+
{
|
|
176
|
+
get = function(self)
|
|
177
|
+
return self[100]
|
|
178
|
+
end,
|
|
179
|
+
set = function(self, unit)
|
|
180
|
+
if unit ~= nil then
|
|
181
|
+
setTextTagPosUnit(
|
|
182
|
+
ensureHandle(self),
|
|
183
|
+
unit.handle,
|
|
184
|
+
0
|
|
185
|
+
)
|
|
186
|
+
self[106] = nil
|
|
187
|
+
self[107] = nil
|
|
188
|
+
unitTextTags[self] = true
|
|
189
|
+
elseif self[100] ~= nil then
|
|
190
|
+
local unit = self[100]
|
|
191
|
+
local x = unit.x
|
|
192
|
+
local y = unit.y
|
|
193
|
+
setTextTagPos(
|
|
194
|
+
ensureHandle(self),
|
|
195
|
+
x,
|
|
196
|
+
y,
|
|
197
|
+
0
|
|
198
|
+
)
|
|
199
|
+
self[106] = x
|
|
200
|
+
self[107] = y
|
|
201
|
+
unitTextTags[self] = nil
|
|
202
|
+
end
|
|
203
|
+
self[100] = unit
|
|
204
|
+
end
|
|
205
|
+
},
|
|
206
|
+
true
|
|
207
|
+
)
|
|
208
|
+
__TS__SetDescriptor(
|
|
209
|
+
TextTag.prototype,
|
|
210
|
+
"x",
|
|
211
|
+
{
|
|
212
|
+
get = function(self)
|
|
213
|
+
local ____self__106_2 = self[106]
|
|
214
|
+
if ____self__106_2 == nil then
|
|
215
|
+
local ____opt_0 = self[100]
|
|
216
|
+
____self__106_2 = ____opt_0 and ____opt_0.x
|
|
217
|
+
end
|
|
218
|
+
return ____self__106_2 or 0
|
|
219
|
+
end,
|
|
220
|
+
set = function(self, x)
|
|
221
|
+
local ____ensureHandle_result_6 = ensureHandle(self)
|
|
222
|
+
local ____x_7 = x
|
|
223
|
+
local ____self__107_5 = self[107]
|
|
224
|
+
if ____self__107_5 == nil then
|
|
225
|
+
local ____opt_3 = self[100]
|
|
226
|
+
____self__107_5 = ____opt_3 and ____opt_3.y
|
|
227
|
+
end
|
|
228
|
+
setTextTagPos(____ensureHandle_result_6, ____x_7, ____self__107_5 or 0, 0)
|
|
229
|
+
self[106] = x
|
|
230
|
+
self[100] = nil
|
|
231
|
+
unitTextTags[self] = nil
|
|
232
|
+
end
|
|
233
|
+
},
|
|
234
|
+
true
|
|
235
|
+
)
|
|
236
|
+
__TS__SetDescriptor(
|
|
237
|
+
TextTag.prototype,
|
|
238
|
+
"y",
|
|
239
|
+
{
|
|
240
|
+
get = function(self)
|
|
241
|
+
local ____self__107_10 = self[107]
|
|
242
|
+
if ____self__107_10 == nil then
|
|
243
|
+
local ____opt_8 = self[100]
|
|
244
|
+
____self__107_10 = ____opt_8 and ____opt_8.y
|
|
245
|
+
end
|
|
246
|
+
return ____self__107_10 or 0
|
|
247
|
+
end,
|
|
248
|
+
set = function(self, y)
|
|
249
|
+
local ____ensureHandle_result_14 = ensureHandle(self)
|
|
250
|
+
local ____self__106_13 = self[106]
|
|
251
|
+
if ____self__106_13 == nil then
|
|
252
|
+
local ____opt_11 = self[100]
|
|
253
|
+
____self__106_13 = ____opt_11 and ____opt_11.x
|
|
254
|
+
end
|
|
255
|
+
setTextTagPos(____ensureHandle_result_14, ____self__106_13 or 0, y, 0)
|
|
256
|
+
self[107] = y
|
|
257
|
+
self[100] = nil
|
|
258
|
+
unitTextTags[self] = nil
|
|
259
|
+
end
|
|
260
|
+
},
|
|
261
|
+
true
|
|
262
|
+
)
|
|
45
263
|
TextTag.BASE = {
|
|
46
264
|
fadepoint = 2,
|
|
47
265
|
lifespan = 3,
|
|
@@ -106,4 +324,26 @@ TextTag.SHADOW_STRIKE = __TS__ObjectAssign(
|
|
|
106
324
|
lifespan = 5
|
|
107
325
|
}
|
|
108
326
|
)
|
|
327
|
+
Timer.onPeriod[1 / 64]:addListener(function()
|
|
328
|
+
for textTag in pairs(unitTextTags) do
|
|
329
|
+
local unit = textTag[100].handle
|
|
330
|
+
local x = getUnitX(unit)
|
|
331
|
+
local y = getUnitY(unit)
|
|
332
|
+
local ____, ____, isInView = worldCoordinatesToFrame(
|
|
333
|
+
x,
|
|
334
|
+
y,
|
|
335
|
+
getUnitFlyHeight(unit) + getTerrainZ(x, y)
|
|
336
|
+
)
|
|
337
|
+
if isInView and not isUnitHidden(unit) and not isUnitLoaded(unit) and isUnitVisible(unit, PLAYER_LOCAL_HANDLE) and unitAlive(unit) then
|
|
338
|
+
setTextTagPosUnit(
|
|
339
|
+
ensureHandle(textTag),
|
|
340
|
+
unit,
|
|
341
|
+
textTag[102].offsetZ
|
|
342
|
+
)
|
|
343
|
+
elseif textTag[101] ~= nil then
|
|
344
|
+
destroyTextTag(textTag[101])
|
|
345
|
+
textTag[101] = nil
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
end)
|
|
109
349
|
return ____exports
|
package/engine/unit.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import "./internal/unit";
|
|
3
|
+
import "./internal/unit/order";
|
|
3
4
|
import "./internal/unit/ability";
|
|
4
5
|
import "./internal/unit/allowed-targets";
|
|
5
6
|
import "./internal/unit/buff";
|
|
@@ -18,6 +19,10 @@ import "./internal/unit/invulnerability-counter";
|
|
|
18
19
|
import "./internal/unit/detach-missiles";
|
|
19
20
|
import "./internal/unit/main-selected";
|
|
20
21
|
import "./internal/unit/add-item-to-slot-init";
|
|
22
|
+
import "./internal/unit/attributes";
|
|
23
|
+
import "./internal/unit/fly-height";
|
|
24
|
+
import "./internal/unit/scale";
|
|
25
|
+
import "./internal/unit/interrupts";
|
|
21
26
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
22
27
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
23
28
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
require("engine.internal.unit")
|
|
3
|
+
require("engine.internal.unit.order")
|
|
3
4
|
require("engine.internal.unit.ability")
|
|
4
5
|
require("engine.internal.unit.allowed-targets")
|
|
5
6
|
require("engine.internal.unit.buff")
|
|
@@ -18,6 +19,10 @@ require("engine.internal.unit.invulnerability-counter")
|
|
|
18
19
|
require("engine.internal.unit.detach-missiles")
|
|
19
20
|
require("engine.internal.unit.main-selected")
|
|
20
21
|
require("engine.internal.unit.add-item-to-slot-init")
|
|
22
|
+
require("engine.internal.unit.attributes")
|
|
23
|
+
require("engine.internal.unit.fly-height")
|
|
24
|
+
require("engine.internal.unit.scale")
|
|
25
|
+
require("engine.internal.unit.interrupts")
|
|
21
26
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
22
27
|
do
|
|
23
28
|
local ____unit = require("engine.internal.unit")
|
package/net/socket.lua
CHANGED
|
@@ -28,13 +28,13 @@ function Socket.prototype.____constructor(self)
|
|
|
28
28
|
onReceive[self[0]]:addListener(function(sender, data)
|
|
29
29
|
local chunks = chunksByPlayer[sender]
|
|
30
30
|
if chunks ~= nil then
|
|
31
|
+
chunksByPlayer[sender] = nil
|
|
31
32
|
chunks[#chunks + 1] = data
|
|
32
33
|
Event.invoke(
|
|
33
34
|
self.onMessage,
|
|
34
35
|
sender,
|
|
35
36
|
tableConcat(chunks)
|
|
36
37
|
)
|
|
37
|
-
chunksByPlayer[sender] = nil
|
|
38
38
|
else
|
|
39
39
|
Event.invoke(self.onMessage, sender, data)
|
|
40
40
|
end
|
package/objutil/buff.lua
CHANGED
|
@@ -20,7 +20,6 @@ local AbilityDefinitionInnerFire = ____ability.AbilityDefinitionInnerFire
|
|
|
20
20
|
local AbilityDefinitionSearingArrows = ____ability.AbilityDefinitionSearingArrows
|
|
21
21
|
local AbilityDefinitionSlowPoison = ____ability.AbilityDefinitionSlowPoison
|
|
22
22
|
local ____unit = require("core.types.unit")
|
|
23
|
-
local AttackType = ____unit.AttackType
|
|
24
23
|
local DamageType = ____unit.DamageType
|
|
25
24
|
local Unit = ____unit.Unit
|
|
26
25
|
local ____dummy = require("core.dummy")
|
|
@@ -30,6 +29,8 @@ local ____timer = require("core.types.timer")
|
|
|
30
29
|
local Timer = ____timer.Timer
|
|
31
30
|
local ____exception = require("exception")
|
|
32
31
|
local IllegalStateException = ____exception.IllegalStateException
|
|
32
|
+
local ____linked_2Dmap = require("utility.linked-map")
|
|
33
|
+
local LinkedMap = ____linked_2Dmap.LinkedMap
|
|
33
34
|
local ____assert = _G.assert
|
|
34
35
|
local ____pairs = _G.pairs
|
|
35
36
|
____exports.BuffDefinition = __TS__Class()
|
|
@@ -462,7 +463,7 @@ local buffs = setmetatable(
|
|
|
462
463
|
{
|
|
463
464
|
__mode = "k",
|
|
464
465
|
__index = function(self, unit)
|
|
465
|
-
local ____table =
|
|
466
|
+
local ____table = __TS__New(LinkedMap)
|
|
466
467
|
self[unit] = ____table
|
|
467
468
|
return ____table
|
|
468
469
|
end
|
|
@@ -495,7 +496,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
|
|
|
495
496
|
end
|
|
496
497
|
local constructor = self.constructor
|
|
497
498
|
local instances = buffs[unit]
|
|
498
|
-
local instance = instances
|
|
499
|
+
local instance = instances:get(constructor)
|
|
499
500
|
if instance then
|
|
500
501
|
instance:destroy()
|
|
501
502
|
if not instance.destroyed then
|
|
@@ -508,7 +509,7 @@ function Buff.prototype.____constructor(self, unit, source, duration, level, pre
|
|
|
508
509
|
)
|
|
509
510
|
end
|
|
510
511
|
end
|
|
511
|
-
instances
|
|
512
|
+
instances:put(constructor, self)
|
|
512
513
|
if preset then
|
|
513
514
|
local unitHandle = unit.handle
|
|
514
515
|
local slowPoisonMethod = not preset.positive and not preset.magic
|
|
@@ -587,13 +588,13 @@ function Buff.apply(self, ...)
|
|
|
587
588
|
end
|
|
588
589
|
end
|
|
589
590
|
function Buff.getInstance(self, unit)
|
|
590
|
-
return buffs[unit]
|
|
591
|
+
return buffs[unit]:get(self)
|
|
591
592
|
end
|
|
592
593
|
function Buff.isApplied(self, unit)
|
|
593
|
-
return buffs[unit]
|
|
594
|
+
return buffs[unit]:get(self) ~= nil
|
|
594
595
|
end
|
|
595
596
|
function Buff.ifApplied(self, unit, action)
|
|
596
|
-
local instance = buffs[unit]
|
|
597
|
+
local instance = buffs[unit]:get(self)
|
|
597
598
|
if instance then
|
|
598
599
|
____assert(__TS__InstanceOf(instance, self))
|
|
599
600
|
action(instance)
|
|
@@ -616,7 +617,7 @@ function Buff.prototype.destroy(self)
|
|
|
616
617
|
if self.preset then
|
|
617
618
|
self.unit:removeAbility(self.preset.buffId)
|
|
618
619
|
end
|
|
619
|
-
buffs[self.unit]
|
|
620
|
+
buffs[self.unit]:remove(self.constructor)
|
|
620
621
|
self.destroyed = true
|
|
621
622
|
end
|
|
622
623
|
function Buff.prototype.onDispel(self, source)
|
|
@@ -756,14 +757,14 @@ for ____, pointDispelAbilityId in ipairs(pointDispelAbilityIds) do
|
|
|
756
757
|
end)
|
|
757
758
|
end
|
|
758
759
|
Unit.onDamaging:addListener(function(source, target, event)
|
|
759
|
-
if event.amount == 0 and event.attackType ==
|
|
760
|
+
if event.amount == 0 and event.attackType == 0 and event.damageType == DamageType.NORMAL and not event.isAttack then
|
|
760
761
|
Timer:run(function()
|
|
761
762
|
checkBuffs(target, true, source)
|
|
762
763
|
end)
|
|
763
764
|
end
|
|
764
765
|
end)
|
|
765
766
|
Unit.itemPickedUpEvent:addListener(function(unit, item)
|
|
766
|
-
if item.
|
|
767
|
+
if item.isPowerUp and item:hasAbility(fourCC("APdi")) then
|
|
767
768
|
end
|
|
768
769
|
end)
|
|
769
770
|
return ____exports
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "warscript",
|
|
4
|
-
"version": "0.0.1-dev.
|
|
4
|
+
"version": "0.0.1-dev.fff719b",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
25
|
"@warscript/tstl-plugin": "^0.0.4",
|
|
26
26
|
"lua-types": "^2.13.1",
|
|
27
|
-
"warpack": "0.0.1-dev.
|
|
27
|
+
"warpack": "0.0.1-dev.e490aaf"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
package/patch-lua.lua
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
local error = _G.error
|
|
1
2
|
local getmetatable = _G.getmetatable
|
|
2
3
|
local ipairs = _G.ipairs
|
|
4
|
+
local tableconcat = table.concat
|
|
3
5
|
|
|
4
6
|
_G.ipairs = function(t)
|
|
5
7
|
local metatable = getmetatable(t)
|
|
@@ -8,3 +10,10 @@ _G.ipairs = function(t)
|
|
|
8
10
|
end
|
|
9
11
|
return ipairs(t)
|
|
10
12
|
end
|
|
13
|
+
|
|
14
|
+
_G.assert = function(v, ...)
|
|
15
|
+
if ~v then
|
|
16
|
+
error(tableconcat({ ... }, " "))
|
|
17
|
+
end
|
|
18
|
+
return v, ...
|
|
19
|
+
end
|
package/patch-lualib.lua
CHANGED
|
@@ -3,7 +3,7 @@ local lualib = _G.require("lualib_bundle")
|
|
|
3
3
|
local next = _G.next
|
|
4
4
|
local ____type = _G.type
|
|
5
5
|
lualib.__TS__ArrayIsArray = function(value)
|
|
6
|
-
return ____type(value) == "table" and (value[1] ~= nil or (
|
|
6
|
+
return ____type(value) == "table" and (value[1] ~= nil or (next(value)) == nil) and value.constructor == nil
|
|
7
7
|
end
|
|
8
8
|
local __TS__SetDescriptor = lualib.__TS__SetDescriptor
|
|
9
9
|
lualib.__TS__ObjectDefineProperty = function(target, key, desc)
|