warscript 0.0.1-dev.6f7008d → 0.0.1-dev.6fc443a
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/player.d.ts +16 -0
- package/core/types/player.lua +57 -14
- package/core/types/tileCell.d.ts +2 -1
- package/core/types/tileCell.lua +5 -0
- package/engine/behavior.d.ts +7 -1
- package/engine/behavior.lua +88 -65
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +6 -4
- package/engine/behaviour/unit/stun-immunity.lua +1 -1
- package/engine/behaviour/unit.d.ts +6 -3
- package/engine/behaviour/unit.lua +87 -22
- package/engine/buff.d.ts +10 -1
- package/engine/buff.lua +60 -7
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit-missile-launch.lua +4 -1
- package/engine/internal/unit.d.ts +11 -10
- package/engine/internal/unit.lua +63 -54
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-field/unit.d.ts +13 -1
- package/engine/object-field/unit.lua +57 -0
- package/engine/object-field.d.ts +7 -1
- package/engine/object-field.lua +199 -112
- package/engine/standard/fields/unit.d.ts +3 -1
- package/engine/standard/fields/unit.lua +4 -0
- package/engine/text-tag.lua +2 -1
- package/engine/unit.d.ts +2 -0
- package/engine/unit.lua +2 -0
- package/package.json +1 -1
package/engine/internal/unit.lua
CHANGED
|
@@ -62,6 +62,8 @@ local ____attributes = require("attributes")
|
|
|
62
62
|
local isAttribute = ____attributes.isAttribute
|
|
63
63
|
local ____ability = require("engine.internal.item.ability")
|
|
64
64
|
local doUnitAbilityAction = ____ability.doUnitAbilityAction
|
|
65
|
+
local ____synchronization = require("engine.synchronization")
|
|
66
|
+
local synchronizer = ____synchronization.synchronizer
|
|
65
67
|
local match = string.match
|
|
66
68
|
local ____tostring = _G.tostring
|
|
67
69
|
local setUnitAnimation = SetUnitAnimation
|
|
@@ -657,15 +659,15 @@ for ____, player in ipairs(Player.all) do
|
|
|
657
659
|
dummies[player] = dummy
|
|
658
660
|
end
|
|
659
661
|
local function delayHealthChecksCallback(unit)
|
|
660
|
-
local counter = (unit[
|
|
662
|
+
local counter = (unit[104] or 0) - 1
|
|
661
663
|
if counter ~= 0 then
|
|
662
|
-
unit[
|
|
664
|
+
unit[104] = counter
|
|
663
665
|
return
|
|
664
666
|
end
|
|
665
|
-
unit[
|
|
666
|
-
local healthBonus = unit[
|
|
667
|
+
unit[104] = nil
|
|
668
|
+
local healthBonus = unit[105]
|
|
667
669
|
if healthBonus ~= nil then
|
|
668
|
-
unit[
|
|
670
|
+
unit[105] = nil
|
|
669
671
|
local handle = unit.handle
|
|
670
672
|
BlzSetUnitMaxHP(
|
|
671
673
|
handle,
|
|
@@ -725,8 +727,8 @@ function Unit.prototype.getEvent(self, event, collector)
|
|
|
725
727
|
end
|
|
726
728
|
function Unit.prototype.onDestroy(self)
|
|
727
729
|
local handle = self.handle
|
|
728
|
-
self[
|
|
729
|
-
self[
|
|
730
|
+
self[108] = getUnitX(handle)
|
|
731
|
+
self[109] = getUnitY(handle)
|
|
730
732
|
if not self._owner then
|
|
731
733
|
self._owner = Player:of(getOwningPlayer(handle))
|
|
732
734
|
end
|
|
@@ -860,7 +862,7 @@ function Unit.prototype.chooseWeapon(self, target)
|
|
|
860
862
|
return nil
|
|
861
863
|
end
|
|
862
864
|
function Unit.prototype.delayHealthChecks(self)
|
|
863
|
-
self[
|
|
865
|
+
self[104] = (self[104] or 0) + 1
|
|
864
866
|
Timer:run(delayHealthChecksCallback, self)
|
|
865
867
|
end
|
|
866
868
|
function Unit.prototype.setPosition(self, x, y)
|
|
@@ -1066,18 +1068,44 @@ function Unit.prototype.unpauseEx(self)
|
|
|
1066
1068
|
end
|
|
1067
1069
|
function Unit.prototype.incrementStunCounter(self)
|
|
1068
1070
|
local stunCounter = self[102] or 0
|
|
1069
|
-
if not self[101] or stunCounter >= 0 then
|
|
1071
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 0 then
|
|
1070
1072
|
BlzPauseUnitEx(self.handle, true)
|
|
1071
1073
|
end
|
|
1072
1074
|
self[102] = stunCounter + 1
|
|
1073
1075
|
end
|
|
1074
1076
|
function Unit.prototype.decrementStunCounter(self)
|
|
1075
1077
|
local stunCounter = self[102] or 0
|
|
1076
|
-
if not self[101] or stunCounter >= 1 then
|
|
1078
|
+
if not self[101] and (self[103] or 0) <= 0 or stunCounter >= 1 then
|
|
1077
1079
|
BlzPauseUnitEx(self.handle, false)
|
|
1078
1080
|
end
|
|
1079
1081
|
self[102] = stunCounter - 1
|
|
1080
1082
|
end
|
|
1083
|
+
function Unit.prototype.incrementForceStunCounter(self)
|
|
1084
|
+
local forceStunCounter = self[103] or 0
|
|
1085
|
+
if forceStunCounter == 0 then
|
|
1086
|
+
local handle = self.handle
|
|
1087
|
+
if not self[101] then
|
|
1088
|
+
for _ = self[102] or 0, -1 do
|
|
1089
|
+
BlzPauseUnitEx(handle, true)
|
|
1090
|
+
end
|
|
1091
|
+
end
|
|
1092
|
+
BlzPauseUnitEx(handle, true)
|
|
1093
|
+
end
|
|
1094
|
+
self[103] = forceStunCounter + 1
|
|
1095
|
+
end
|
|
1096
|
+
function Unit.prototype.decrementForceStunCounter(self)
|
|
1097
|
+
local forceStunCounter = self[103] or 0
|
|
1098
|
+
if forceStunCounter == 1 then
|
|
1099
|
+
local handle = self.handle
|
|
1100
|
+
if not self[101] then
|
|
1101
|
+
for _ = self[102] or 0, -1 do
|
|
1102
|
+
BlzPauseUnitEx(handle, false)
|
|
1103
|
+
end
|
|
1104
|
+
end
|
|
1105
|
+
BlzPauseUnitEx(handle, false)
|
|
1106
|
+
end
|
|
1107
|
+
self[103] = forceStunCounter - 1
|
|
1108
|
+
end
|
|
1081
1109
|
function Unit.create(self, owner, id, x, y, facing, skinId)
|
|
1082
1110
|
local handle = skinId and BlzCreateUnitWithSkin(
|
|
1083
1111
|
owner.handle,
|
|
@@ -1485,7 +1513,7 @@ __TS__SetDescriptor(
|
|
|
1485
1513
|
"isTeamGlowVisible",
|
|
1486
1514
|
{
|
|
1487
1515
|
get = function(self)
|
|
1488
|
-
return not self[
|
|
1516
|
+
return not self[107]
|
|
1489
1517
|
end,
|
|
1490
1518
|
set = function(self, isTeamGlowVisible)
|
|
1491
1519
|
BlzShowUnitTeamGlow(self.handle, isTeamGlowVisible)
|
|
@@ -1495,7 +1523,7 @@ __TS__SetDescriptor(
|
|
|
1495
1523
|
else
|
|
1496
1524
|
____temp_7 = nil
|
|
1497
1525
|
end
|
|
1498
|
-
self[
|
|
1526
|
+
self[107] = ____temp_7
|
|
1499
1527
|
end
|
|
1500
1528
|
},
|
|
1501
1529
|
true
|
|
@@ -1505,7 +1533,7 @@ __TS__SetDescriptor(
|
|
|
1505
1533
|
"color",
|
|
1506
1534
|
{set = function(self, color)
|
|
1507
1535
|
SetUnitColor(self.handle, color.handle)
|
|
1508
|
-
if self[
|
|
1536
|
+
if self[107] then
|
|
1509
1537
|
BlzShowUnitTeamGlow(self.handle, false)
|
|
1510
1538
|
end
|
|
1511
1539
|
end},
|
|
@@ -1529,14 +1557,14 @@ __TS__SetDescriptor(
|
|
|
1529
1557
|
"maxHealth",
|
|
1530
1558
|
{
|
|
1531
1559
|
get = function(self)
|
|
1532
|
-
return BlzGetUnitMaxHP(self.handle) - (self[
|
|
1560
|
+
return BlzGetUnitMaxHP(self.handle) - (self[105] or 0) - (self[106] or 0)
|
|
1533
1561
|
end,
|
|
1534
1562
|
set = function(self, maxHealth)
|
|
1535
|
-
if maxHealth < 1 and self[
|
|
1536
|
-
self[
|
|
1563
|
+
if maxHealth < 1 and self[104] ~= nil then
|
|
1564
|
+
self[105] = (self[105] or 0) + (1 - maxHealth)
|
|
1537
1565
|
maxHealth = 1
|
|
1538
1566
|
end
|
|
1539
|
-
BlzSetUnitMaxHP(self.handle, maxHealth + (self[
|
|
1567
|
+
BlzSetUnitMaxHP(self.handle, maxHealth + (self[106] or 0))
|
|
1540
1568
|
end
|
|
1541
1569
|
},
|
|
1542
1570
|
true
|
|
@@ -1578,10 +1606,10 @@ __TS__SetDescriptor(
|
|
|
1578
1606
|
"health",
|
|
1579
1607
|
{
|
|
1580
1608
|
get = function(self)
|
|
1581
|
-
return GetWidgetLife(self.handle) - (self[
|
|
1609
|
+
return GetWidgetLife(self.handle) - (self[106] or 0)
|
|
1582
1610
|
end,
|
|
1583
1611
|
set = function(self, health)
|
|
1584
|
-
SetWidgetLife(self.handle, health + (self[
|
|
1612
|
+
SetWidgetLife(self.handle, health + (self[106] or 0))
|
|
1585
1613
|
end
|
|
1586
1614
|
},
|
|
1587
1615
|
true
|
|
@@ -1657,25 +1685,12 @@ __TS__SetDescriptor(
|
|
|
1657
1685
|
},
|
|
1658
1686
|
true
|
|
1659
1687
|
)
|
|
1660
|
-
__TS__SetDescriptor(
|
|
1661
|
-
Unit.prototype,
|
|
1662
|
-
"flyHeight",
|
|
1663
|
-
{
|
|
1664
|
-
get = function(self)
|
|
1665
|
-
return getUnitFlyHeight(self.handle)
|
|
1666
|
-
end,
|
|
1667
|
-
set = function(self, v)
|
|
1668
|
-
SetUnitFlyHeight(self.handle, v, 100000)
|
|
1669
|
-
end
|
|
1670
|
-
},
|
|
1671
|
-
true
|
|
1672
|
-
)
|
|
1673
1688
|
__TS__SetDescriptor(
|
|
1674
1689
|
Unit.prototype,
|
|
1675
1690
|
"x",
|
|
1676
1691
|
{
|
|
1677
1692
|
get = function(self)
|
|
1678
|
-
return self[
|
|
1693
|
+
return self[108] or getUnitX(self.handle)
|
|
1679
1694
|
end,
|
|
1680
1695
|
set = function(self, v)
|
|
1681
1696
|
SetUnitX(self.handle, v)
|
|
@@ -1688,7 +1703,7 @@ __TS__SetDescriptor(
|
|
|
1688
1703
|
"y",
|
|
1689
1704
|
{
|
|
1690
1705
|
get = function(self)
|
|
1691
|
-
return self[
|
|
1706
|
+
return self[109] or getUnitY(self.handle)
|
|
1692
1707
|
end,
|
|
1693
1708
|
set = function(self, v)
|
|
1694
1709
|
SetUnitY(self.handle, v)
|
|
@@ -1793,14 +1808,18 @@ __TS__SetDescriptor(
|
|
|
1793
1808
|
local handle = self.handle
|
|
1794
1809
|
if isPaused and not IsUnitPaused(handle) then
|
|
1795
1810
|
self[101] = true
|
|
1796
|
-
|
|
1797
|
-
|
|
1811
|
+
if (self[103] or 0) <= 0 then
|
|
1812
|
+
for _ = self[102] or 0, -1 do
|
|
1813
|
+
BlzPauseUnitEx(handle, true)
|
|
1814
|
+
end
|
|
1798
1815
|
end
|
|
1799
1816
|
PauseUnit(handle, true)
|
|
1800
1817
|
elseif not isPaused and IsUnitPaused(handle) then
|
|
1801
1818
|
PauseUnit(handle, false)
|
|
1802
|
-
|
|
1803
|
-
|
|
1819
|
+
if (self[103] or 0) <= 0 then
|
|
1820
|
+
for _ = self[102] or 0, -1 do
|
|
1821
|
+
BlzPauseUnitEx(handle, false)
|
|
1822
|
+
end
|
|
1804
1823
|
end
|
|
1805
1824
|
self[101] = nil
|
|
1806
1825
|
end
|
|
@@ -1858,20 +1877,6 @@ __TS__SetDescriptor(
|
|
|
1858
1877
|
},
|
|
1859
1878
|
true
|
|
1860
1879
|
)
|
|
1861
|
-
__TS__SetDescriptor(
|
|
1862
|
-
Unit.prototype,
|
|
1863
|
-
"scale",
|
|
1864
|
-
{
|
|
1865
|
-
get = function(self)
|
|
1866
|
-
return getUnitRealField(self.handle, UNIT_RF_SCALING_VALUE)
|
|
1867
|
-
end,
|
|
1868
|
-
set = function(self, v)
|
|
1869
|
-
setUnitScale(self.handle, v, v, v)
|
|
1870
|
-
setUnitRealField(self.handle, UNIT_RF_SCALING_VALUE, v)
|
|
1871
|
-
end
|
|
1872
|
-
},
|
|
1873
|
-
true
|
|
1874
|
-
)
|
|
1875
1880
|
__TS__SetDescriptor(
|
|
1876
1881
|
Unit.prototype,
|
|
1877
1882
|
"timeScale",
|
|
@@ -2628,7 +2633,7 @@ Unit.onDamage = __TS__New(
|
|
|
2628
2633
|
invoke(event, source, target, evData)
|
|
2629
2634
|
if evData[0] ~= nil and target.health - evData.amount < 0.405 then
|
|
2630
2635
|
local bonusHealth = math.ceil(evData.amount)
|
|
2631
|
-
target[
|
|
2636
|
+
target[106] = (target[106] or 0) + bonusHealth
|
|
2632
2637
|
BlzSetUnitMaxHP(
|
|
2633
2638
|
target.handle,
|
|
2634
2639
|
BlzGetUnitMaxHP(target.handle) + bonusHealth
|
|
@@ -2642,7 +2647,7 @@ Unit.onDamage = __TS__New(
|
|
|
2642
2647
|
evData[0],
|
|
2643
2648
|
table.unpack(evData, 1 + 1, 1 + (evData[1] or 0))
|
|
2644
2649
|
)
|
|
2645
|
-
target[
|
|
2650
|
+
target[106] = (target[106] or 0) - bonusHealth
|
|
2646
2651
|
SetWidgetLife(
|
|
2647
2652
|
target.handle,
|
|
2648
2653
|
GetWidgetLife(target.handle) - bonusHealth
|
|
@@ -2792,6 +2797,10 @@ __TS__ObjectDefineProperty(
|
|
|
2792
2797
|
rawset(self, "destroyEvent", destroyEvent)
|
|
2793
2798
|
return destroyEvent
|
|
2794
2799
|
end}
|
|
2800
|
+
)
|
|
2801
|
+
Unit.synchronize = synchronizer(
|
|
2802
|
+
function(unit) return unit.syncId end,
|
|
2803
|
+
function(syncId) return unitBySyncId[syncId] end
|
|
2795
2804
|
);
|
|
2796
2805
|
(function(self)
|
|
2797
2806
|
local leaveAbilityIds = postcompile(function()
|
package/engine/local-client.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Unit } from "../core/types/unit";
|
|
|
3
3
|
import { Async } from "../core/types/async";
|
|
4
4
|
import { Event, TriggerEvent } from "../event";
|
|
5
5
|
import { GraphicsMode } from "./index";
|
|
6
|
+
import { Color } from "../core/types/color";
|
|
6
7
|
export declare class LocalClient {
|
|
7
8
|
private constructor();
|
|
8
9
|
static readonly locale: string;
|
|
@@ -11,6 +12,7 @@ export declare class LocalClient {
|
|
|
11
12
|
static get isHD(): boolean;
|
|
12
13
|
static get graphicsMode(): GraphicsMode;
|
|
13
14
|
static get isActive(): boolean;
|
|
15
|
+
static pingMinimap(x: number, y: number, duration: number, ...parameters: [] | [red: number, green: number, blue: number, extraEffects?: boolean] | [color: Color, extraEffects?: boolean]): void;
|
|
14
16
|
static get mouseFocusUnit(): Async<Unit> | undefined;
|
|
15
17
|
static get mainSelectedUnit(): Async<Unit> | undefined;
|
|
16
18
|
static get mainSelectedUnitChangeEvent(): Event<[
|
package/engine/local-client.lua
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
3
3
|
local __TS__Class = ____lualib.__TS__Class
|
|
4
|
+
local __TS__InstanceOf = ____lualib.__TS__InstanceOf
|
|
4
5
|
local __TS__ObjectDefineProperty = ____lualib.__TS__ObjectDefineProperty
|
|
5
6
|
local __TS__New = ____lualib.__TS__New
|
|
6
7
|
local ____exports = {}
|
|
@@ -15,6 +16,8 @@ local ____player = require("core.types.player")
|
|
|
15
16
|
local Player = ____player.Player
|
|
16
17
|
local ____timer = require("core.types.timer")
|
|
17
18
|
local Timer = ____timer.Timer
|
|
19
|
+
local ____color = require("core.types.color")
|
|
20
|
+
local Color = ____color.Color
|
|
18
21
|
local loadTOCFile = BlzLoadTOCFile
|
|
19
22
|
local getLocalClientWidth = BlzGetLocalClientWidth
|
|
20
23
|
local getLocalClientHeight = BlzGetLocalClientHeight
|
|
@@ -25,6 +28,8 @@ local getMouseFocusUnit = BlzGetMouseFocusUnit
|
|
|
25
28
|
local getUnitRealField = BlzGetUnitRealField
|
|
26
29
|
local getUnitTypeId = GetUnitTypeId
|
|
27
30
|
local getLocale = BlzGetLocale
|
|
31
|
+
local pingMinimap = PingMinimap
|
|
32
|
+
local pingMinimapEx = PingMinimapEx
|
|
28
33
|
local tableSort = table.sort
|
|
29
34
|
local tocPath = "_warscript\\IsHD.toc"
|
|
30
35
|
compiletime(function()
|
|
@@ -62,6 +67,31 @@ local LocalClient = ____exports.LocalClient
|
|
|
62
67
|
LocalClient.name = "LocalClient"
|
|
63
68
|
function LocalClient.prototype.____constructor(self)
|
|
64
69
|
end
|
|
70
|
+
function LocalClient.pingMinimap(self, x, y, duration, redOrColor, greenOrExtraEffects, blue, extraEffects)
|
|
71
|
+
if redOrColor == nil then
|
|
72
|
+
pingMinimap(x, y, duration)
|
|
73
|
+
elseif __TS__InstanceOf(redOrColor, Color) then
|
|
74
|
+
pingMinimapEx(
|
|
75
|
+
x,
|
|
76
|
+
y,
|
|
77
|
+
duration,
|
|
78
|
+
redOrColor.r,
|
|
79
|
+
redOrColor.g,
|
|
80
|
+
redOrColor.b,
|
|
81
|
+
greenOrExtraEffects or false
|
|
82
|
+
)
|
|
83
|
+
else
|
|
84
|
+
pingMinimapEx(
|
|
85
|
+
x,
|
|
86
|
+
y,
|
|
87
|
+
duration,
|
|
88
|
+
redOrColor,
|
|
89
|
+
greenOrExtraEffects,
|
|
90
|
+
blue,
|
|
91
|
+
extraEffects or false
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
65
95
|
LocalClient.locale = getLocale()
|
|
66
96
|
__TS__ObjectDefineProperty(
|
|
67
97
|
LocalClient,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Unit } from "../internal/unit";
|
|
3
|
-
import { ObjectField, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
3
|
+
import { ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
4
4
|
import { UnitType, UnitTypeId } from "../object-data/entry/unit-type";
|
|
5
5
|
import { ReadonlyNonEmptyLinkedSet } from "../../utility/linked-set";
|
|
6
6
|
import { AttackType } from "../object-data/auxiliary/attack-type";
|
|
@@ -9,30 +9,35 @@ export declare abstract class UnitField<ValueType extends number | string | bool
|
|
|
9
9
|
protected get instanceClass(): typeof Unit;
|
|
10
10
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
11
11
|
protected hasNativeFieldValue(): boolean;
|
|
12
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitField>>;
|
|
12
13
|
}
|
|
13
14
|
export declare class UnitBooleanField extends UnitField<boolean, junitbooleanfield> {
|
|
14
15
|
protected get defaultValue(): boolean;
|
|
15
16
|
protected getNativeFieldById(id: number): junitbooleanfield;
|
|
16
17
|
protected getNativeFieldValue(instance: Unit): boolean;
|
|
17
18
|
protected setNativeFieldValue(instance: Unit, value: boolean): boolean;
|
|
19
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitBooleanField>>;
|
|
18
20
|
}
|
|
19
21
|
export declare class UnitFloatField extends UnitField<number, junitrealfield> {
|
|
20
22
|
protected get defaultValue(): number;
|
|
21
23
|
protected getNativeFieldById(id: number): junitrealfield;
|
|
22
24
|
protected getNativeFieldValue(instance: Unit): number;
|
|
23
25
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
26
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitFloatField>>;
|
|
24
27
|
}
|
|
25
28
|
export declare class UnitIntegerField extends UnitField<number, junitintegerfield> {
|
|
26
29
|
protected get defaultValue(): number;
|
|
27
30
|
protected getNativeFieldById(id: number): junitintegerfield;
|
|
28
31
|
protected getNativeFieldValue(instance: Unit): number;
|
|
29
32
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
33
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitIntegerField>>;
|
|
30
34
|
}
|
|
31
35
|
export declare class UnitStringField extends UnitField<string, junitstringfield> {
|
|
32
36
|
protected get defaultValue(): string;
|
|
33
37
|
protected getNativeFieldById(id: number): junitstringfield;
|
|
34
38
|
protected getNativeFieldValue(instance: Unit): string;
|
|
35
39
|
protected setNativeFieldValue(instance: Unit, value: string): boolean;
|
|
40
|
+
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitStringField>>;
|
|
36
41
|
}
|
|
37
42
|
type junitweaponfield = junitweaponbooleanfield | junitweaponintegerfield | junitweaponrealfield | junitweaponstringfield;
|
|
38
43
|
export declare abstract class UnitWeaponField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends junitweaponfield = junitweaponfield> extends ObjectLevelField<UnitType, Unit, ValueType, InputValueType, NativeFieldType> {
|
|
@@ -63,8 +68,15 @@ export declare class UnitClassificationsField extends UnitField<UnitClassificati
|
|
|
63
68
|
protected getNativeFieldValue(instance: Unit): UnitClassifications;
|
|
64
69
|
protected setNativeFieldValue(instance: Unit, value: UnitClassifications): boolean;
|
|
65
70
|
}
|
|
71
|
+
export declare class UnitFlyHeightField extends UnitFloatField {
|
|
72
|
+
protected getNativeFieldValue(instance: Unit): number;
|
|
73
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
74
|
+
}
|
|
66
75
|
export declare class UnitPropulsionWindowField extends UnitFloatField {
|
|
67
76
|
protected getNativeFieldValue(instance: Unit): number;
|
|
68
77
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
69
78
|
}
|
|
79
|
+
export declare class UnitScalingValueField extends UnitFloatField {
|
|
80
|
+
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
81
|
+
}
|
|
70
82
|
export {};
|
|
@@ -18,8 +18,11 @@ local convertUnitStringField = ConvertUnitStringField
|
|
|
18
18
|
local convertUnitWeaponIntegerField = ConvertUnitWeaponIntegerField
|
|
19
19
|
local getUnitWeaponIntegerField = BlzGetUnitWeaponIntegerField
|
|
20
20
|
local setUnitWeaponIntegerField = BlzSetUnitWeaponIntegerField
|
|
21
|
+
local getUnitFlyHeight = GetUnitFlyHeight
|
|
22
|
+
local setUnitFlyHeight = SetUnitFlyHeight
|
|
21
23
|
local getUnitPropulsionWindow = GetUnitPropWindow
|
|
22
24
|
local setUnitPropulsionWindow = SetUnitPropWindow
|
|
25
|
+
local setUnitScale = SetUnitScale
|
|
23
26
|
____exports.UnitField = __TS__Class()
|
|
24
27
|
local UnitField = ____exports.UnitField
|
|
25
28
|
UnitField.name = "UnitField"
|
|
@@ -38,6 +41,13 @@ __TS__SetDescriptor(
|
|
|
38
41
|
end},
|
|
39
42
|
true
|
|
40
43
|
)
|
|
44
|
+
__TS__ObjectDefineProperty(
|
|
45
|
+
UnitField,
|
|
46
|
+
"valueChangeEvent",
|
|
47
|
+
{get = function(self)
|
|
48
|
+
return self:getOrCreateValueChangeEvent()
|
|
49
|
+
end}
|
|
50
|
+
)
|
|
41
51
|
____exports.UnitBooleanField = __TS__Class()
|
|
42
52
|
local UnitBooleanField = ____exports.UnitBooleanField
|
|
43
53
|
UnitBooleanField.name = "UnitBooleanField"
|
|
@@ -59,6 +69,13 @@ __TS__SetDescriptor(
|
|
|
59
69
|
end},
|
|
60
70
|
true
|
|
61
71
|
)
|
|
72
|
+
__TS__ObjectDefineProperty(
|
|
73
|
+
UnitBooleanField,
|
|
74
|
+
"valueChangeEvent",
|
|
75
|
+
{get = function(self)
|
|
76
|
+
return self:getOrCreateValueChangeEvent()
|
|
77
|
+
end}
|
|
78
|
+
)
|
|
62
79
|
____exports.UnitFloatField = __TS__Class()
|
|
63
80
|
local UnitFloatField = ____exports.UnitFloatField
|
|
64
81
|
UnitFloatField.name = "UnitFloatField"
|
|
@@ -80,6 +97,13 @@ __TS__SetDescriptor(
|
|
|
80
97
|
end},
|
|
81
98
|
true
|
|
82
99
|
)
|
|
100
|
+
__TS__ObjectDefineProperty(
|
|
101
|
+
UnitFloatField,
|
|
102
|
+
"valueChangeEvent",
|
|
103
|
+
{get = function(self)
|
|
104
|
+
return self:getOrCreateValueChangeEvent()
|
|
105
|
+
end}
|
|
106
|
+
)
|
|
83
107
|
____exports.UnitIntegerField = __TS__Class()
|
|
84
108
|
local UnitIntegerField = ____exports.UnitIntegerField
|
|
85
109
|
UnitIntegerField.name = "UnitIntegerField"
|
|
@@ -101,6 +125,13 @@ __TS__SetDescriptor(
|
|
|
101
125
|
end},
|
|
102
126
|
true
|
|
103
127
|
)
|
|
128
|
+
__TS__ObjectDefineProperty(
|
|
129
|
+
UnitIntegerField,
|
|
130
|
+
"valueChangeEvent",
|
|
131
|
+
{get = function(self)
|
|
132
|
+
return self:getOrCreateValueChangeEvent()
|
|
133
|
+
end}
|
|
134
|
+
)
|
|
104
135
|
____exports.UnitStringField = __TS__Class()
|
|
105
136
|
local UnitStringField = ____exports.UnitStringField
|
|
106
137
|
UnitStringField.name = "UnitStringField"
|
|
@@ -122,6 +153,13 @@ __TS__SetDescriptor(
|
|
|
122
153
|
end},
|
|
123
154
|
true
|
|
124
155
|
)
|
|
156
|
+
__TS__ObjectDefineProperty(
|
|
157
|
+
UnitStringField,
|
|
158
|
+
"valueChangeEvent",
|
|
159
|
+
{get = function(self)
|
|
160
|
+
return self:getOrCreateValueChangeEvent()
|
|
161
|
+
end}
|
|
162
|
+
)
|
|
125
163
|
____exports.UnitWeaponField = __TS__Class()
|
|
126
164
|
local UnitWeaponField = ____exports.UnitWeaponField
|
|
127
165
|
UnitWeaponField.name = "UnitWeaponField"
|
|
@@ -238,6 +276,17 @@ __TS__SetDescriptor(
|
|
|
238
276
|
end},
|
|
239
277
|
true
|
|
240
278
|
)
|
|
279
|
+
____exports.UnitFlyHeightField = __TS__Class()
|
|
280
|
+
local UnitFlyHeightField = ____exports.UnitFlyHeightField
|
|
281
|
+
UnitFlyHeightField.name = "UnitFlyHeightField"
|
|
282
|
+
__TS__ClassExtends(UnitFlyHeightField, ____exports.UnitFloatField)
|
|
283
|
+
function UnitFlyHeightField.prototype.getNativeFieldValue(self, instance)
|
|
284
|
+
return getUnitFlyHeight(instance.handle)
|
|
285
|
+
end
|
|
286
|
+
function UnitFlyHeightField.prototype.setNativeFieldValue(self, instance, value)
|
|
287
|
+
setUnitFlyHeight(instance.handle, value, 100000)
|
|
288
|
+
return true
|
|
289
|
+
end
|
|
241
290
|
____exports.UnitPropulsionWindowField = __TS__Class()
|
|
242
291
|
local UnitPropulsionWindowField = ____exports.UnitPropulsionWindowField
|
|
243
292
|
UnitPropulsionWindowField.name = "UnitPropulsionWindowField"
|
|
@@ -249,4 +298,12 @@ function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance,
|
|
|
249
298
|
setUnitPropulsionWindow(instance.handle, value)
|
|
250
299
|
return true
|
|
251
300
|
end
|
|
301
|
+
____exports.UnitScalingValueField = __TS__Class()
|
|
302
|
+
local UnitScalingValueField = ____exports.UnitScalingValueField
|
|
303
|
+
UnitScalingValueField.name = "UnitScalingValueField"
|
|
304
|
+
__TS__ClassExtends(UnitScalingValueField, ____exports.UnitFloatField)
|
|
305
|
+
function UnitScalingValueField.prototype.setNativeFieldValue(self, instance, value)
|
|
306
|
+
setUnitScale(instance.handle, value, value, value)
|
|
307
|
+
return UnitScalingValueField.____super.prototype.setNativeFieldValue(self, instance, value)
|
|
308
|
+
end
|
|
252
309
|
return ____exports
|
package/engine/object-field.d.ts
CHANGED
|
@@ -36,7 +36,8 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
|
|
|
36
36
|
]> : never;
|
|
37
37
|
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
|
|
38
38
|
type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
|
|
39
|
-
type ObjectFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, currentValue: ValueType, originalValue: ValueType) => ValueType;
|
|
39
|
+
export type ObjectFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, currentValue: ValueType, originalValue: ValueType) => ValueType;
|
|
40
|
+
export type ObjectLevelFieldModifier<InstanceType extends AnyNotNil, ValueType extends number | string | boolean> = (instance: InstanceType, level: number, currentValue: ValueType, originalValue: ValueType) => ValueType;
|
|
40
41
|
export declare abstract class ObjectField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType, NativeFieldType> {
|
|
41
42
|
protected abstract readonly defaultValue: ValueType;
|
|
42
43
|
protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
|
|
@@ -88,7 +89,12 @@ export declare abstract class ObjectLevelField<ObjectDataEntryType extends Objec
|
|
|
88
89
|
protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
|
|
89
90
|
getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
|
|
90
91
|
setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
|
|
92
|
+
applyModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): void;
|
|
93
|
+
removeModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): boolean;
|
|
91
94
|
trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
|
|
95
|
+
private getActualValue;
|
|
96
|
+
private setActualValue;
|
|
97
|
+
private calculateActualValue;
|
|
92
98
|
private invokeValueChangeEvent;
|
|
93
99
|
private invokeValueChangeEventRecursive;
|
|
94
100
|
protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;
|