warscript 0.0.1-dev.c37d12c → 0.0.1-dev.ccd5725
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 +13 -0
- package/attributes.lua +16 -0
- package/core/types/handle.d.ts +2 -1
- package/core/types/handle.lua +5 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +8 -4
- package/engine/behaviour/ability/apply-unit-behavior.lua +31 -9
- package/engine/internal/ability.d.ts +1 -1
- package/engine/internal/mechanics/ability-duration.d.ts +1 -3
- package/engine/internal/mechanics/ability-duration.lua +2 -0
- package/engine/internal/mechanics/cast-ability.d.ts +2 -0
- package/engine/internal/mechanics/cast-ability.lua +86 -0
- package/engine/internal/unit/detach-missiles.d.ts +7 -0
- package/engine/internal/unit/detach-missiles.lua +30 -0
- package/engine/object-data/entry/ability-type/blink.d.ts +10 -0
- package/engine/object-data/entry/ability-type/blink.lua +39 -0
- package/engine/object-data/entry/ability-type.d.ts +1 -0
- package/engine/object-data/entry/ability-type.lua +1 -0
- package/engine/object-data/entry/buff-type/applicable.lua +27 -71
- package/engine/object-data/entry/unit-type.d.ts +17 -0
- package/engine/object-data/entry/unit-type.lua +166 -44
- package/engine/object-field/ability.d.ts +7 -5
- package/engine/object-field/ability.lua +6 -0
- package/engine/object-field/unit.d.ts +1 -0
- package/engine/object-field/unit.lua +3 -0
- package/engine/object-field.d.ts +6 -5
- package/engine/object-field.lua +37 -18
- package/engine/standard/entries/unit-type.d.ts +3 -0
- package/engine/standard/entries/unit-type.lua +3 -0
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/global/vec2.lua +1 -0
- package/package.json +2 -2
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +16 -0
- package/utility/types.d.ts +2 -2
|
@@ -28,21 +28,21 @@ function UnitTypeWeapon.prototype.____constructor(self, unitType, index)
|
|
|
28
28
|
end
|
|
29
29
|
__TS__SetDescriptor(
|
|
30
30
|
UnitTypeWeapon.prototype,
|
|
31
|
-
"
|
|
31
|
+
"attackType",
|
|
32
32
|
{
|
|
33
33
|
get = function(self)
|
|
34
34
|
local ____self_0 = self.unitType
|
|
35
|
-
return ____self_0.
|
|
35
|
+
return ____self_0.getStringField(
|
|
36
36
|
____self_0,
|
|
37
|
-
"
|
|
37
|
+
("ua" .. tostring(self.index)) .. "t"
|
|
38
38
|
)
|
|
39
39
|
end,
|
|
40
|
-
set = function(self,
|
|
40
|
+
set = function(self, attackType)
|
|
41
41
|
local ____self_1 = self.unitType
|
|
42
|
-
____self_1.
|
|
42
|
+
____self_1.setStringField(
|
|
43
43
|
____self_1,
|
|
44
|
-
"
|
|
45
|
-
|
|
44
|
+
("ua" .. tostring(self.index)) .. "t",
|
|
45
|
+
attackType
|
|
46
46
|
)
|
|
47
47
|
end
|
|
48
48
|
},
|
|
@@ -50,21 +50,21 @@ __TS__SetDescriptor(
|
|
|
50
50
|
)
|
|
51
51
|
__TS__SetDescriptor(
|
|
52
52
|
UnitTypeWeapon.prototype,
|
|
53
|
-
"
|
|
53
|
+
"backSwingDuration",
|
|
54
54
|
{
|
|
55
55
|
get = function(self)
|
|
56
56
|
local ____self_2 = self.unitType
|
|
57
57
|
return ____self_2.getNumberField(
|
|
58
58
|
____self_2,
|
|
59
|
-
"
|
|
59
|
+
"ubs" .. tostring(self.index)
|
|
60
60
|
)
|
|
61
61
|
end,
|
|
62
|
-
set = function(self,
|
|
62
|
+
set = function(self, backSwingDuration)
|
|
63
63
|
local ____self_3 = self.unitType
|
|
64
64
|
____self_3.setNumberField(
|
|
65
65
|
____self_3,
|
|
66
|
-
"
|
|
67
|
-
|
|
66
|
+
"ubs" .. tostring(self.index),
|
|
67
|
+
backSwingDuration
|
|
68
68
|
)
|
|
69
69
|
end
|
|
70
70
|
},
|
|
@@ -72,21 +72,21 @@ __TS__SetDescriptor(
|
|
|
72
72
|
)
|
|
73
73
|
__TS__SetDescriptor(
|
|
74
74
|
UnitTypeWeapon.prototype,
|
|
75
|
-
"
|
|
75
|
+
"impactDelay",
|
|
76
76
|
{
|
|
77
77
|
get = function(self)
|
|
78
78
|
local ____self_4 = self.unitType
|
|
79
|
-
return ____self_4.
|
|
79
|
+
return ____self_4.getNumberField(
|
|
80
80
|
____self_4,
|
|
81
|
-
|
|
81
|
+
"udp" .. tostring(self.index)
|
|
82
82
|
)
|
|
83
83
|
end,
|
|
84
|
-
set = function(self,
|
|
84
|
+
set = function(self, impactDelay)
|
|
85
85
|
local ____self_5 = self.unitType
|
|
86
|
-
____self_5.
|
|
86
|
+
____self_5.setNumberField(
|
|
87
87
|
____self_5,
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
"udp" .. tostring(self.index),
|
|
89
|
+
impactDelay
|
|
90
90
|
)
|
|
91
91
|
end
|
|
92
92
|
},
|
|
@@ -94,21 +94,21 @@ __TS__SetDescriptor(
|
|
|
94
94
|
)
|
|
95
95
|
__TS__SetDescriptor(
|
|
96
96
|
UnitTypeWeapon.prototype,
|
|
97
|
-
"
|
|
97
|
+
"missileModelPath",
|
|
98
98
|
{
|
|
99
99
|
get = function(self)
|
|
100
100
|
local ____self_6 = self.unitType
|
|
101
101
|
return ____self_6.getStringField(
|
|
102
102
|
____self_6,
|
|
103
|
-
"
|
|
103
|
+
("ua" .. tostring(self.index)) .. "m"
|
|
104
104
|
)
|
|
105
105
|
end,
|
|
106
|
-
set = function(self,
|
|
106
|
+
set = function(self, missileModelPath)
|
|
107
107
|
local ____self_7 = self.unitType
|
|
108
108
|
____self_7.setStringField(
|
|
109
109
|
____self_7,
|
|
110
|
-
"
|
|
111
|
-
|
|
110
|
+
("ua" .. tostring(self.index)) .. "m",
|
|
111
|
+
missileModelPath
|
|
112
112
|
)
|
|
113
113
|
end
|
|
114
114
|
},
|
|
@@ -116,21 +116,21 @@ __TS__SetDescriptor(
|
|
|
116
116
|
)
|
|
117
117
|
__TS__SetDescriptor(
|
|
118
118
|
UnitTypeWeapon.prototype,
|
|
119
|
-
"
|
|
119
|
+
"range",
|
|
120
120
|
{
|
|
121
121
|
get = function(self)
|
|
122
122
|
local ____self_8 = self.unitType
|
|
123
|
-
return ____self_8.
|
|
123
|
+
return ____self_8.getNumberField(
|
|
124
124
|
____self_8,
|
|
125
|
-
("
|
|
125
|
+
("ua" .. tostring(self.index)) .. "r"
|
|
126
126
|
)
|
|
127
127
|
end,
|
|
128
|
-
set = function(self,
|
|
128
|
+
set = function(self, range)
|
|
129
129
|
local ____self_9 = self.unitType
|
|
130
|
-
____self_9.
|
|
130
|
+
____self_9.setNumberField(
|
|
131
131
|
____self_9,
|
|
132
|
-
("
|
|
133
|
-
|
|
132
|
+
("ua" .. tostring(self.index)) .. "r",
|
|
133
|
+
range
|
|
134
134
|
)
|
|
135
135
|
end
|
|
136
136
|
},
|
|
@@ -138,19 +138,63 @@ __TS__SetDescriptor(
|
|
|
138
138
|
)
|
|
139
139
|
__TS__SetDescriptor(
|
|
140
140
|
UnitTypeWeapon.prototype,
|
|
141
|
-
"
|
|
141
|
+
"soundType",
|
|
142
142
|
{
|
|
143
143
|
get = function(self)
|
|
144
144
|
local ____self_10 = self.unitType
|
|
145
145
|
return ____self_10.getStringField(
|
|
146
146
|
____self_10,
|
|
147
|
-
|
|
147
|
+
"ucs" .. tostring(self.index)
|
|
148
148
|
)
|
|
149
149
|
end,
|
|
150
|
-
set = function(self,
|
|
150
|
+
set = function(self, soundType)
|
|
151
151
|
local ____self_11 = self.unitType
|
|
152
152
|
____self_11.setStringField(
|
|
153
153
|
____self_11,
|
|
154
|
+
"ucs" .. tostring(self.index),
|
|
155
|
+
soundType
|
|
156
|
+
)
|
|
157
|
+
end
|
|
158
|
+
},
|
|
159
|
+
true
|
|
160
|
+
)
|
|
161
|
+
__TS__SetDescriptor(
|
|
162
|
+
UnitTypeWeapon.prototype,
|
|
163
|
+
"soundTypeSD",
|
|
164
|
+
{
|
|
165
|
+
get = function(self)
|
|
166
|
+
local ____self_12 = self.unitType
|
|
167
|
+
return ____self_12.getStringField(
|
|
168
|
+
____self_12,
|
|
169
|
+
("ucs" .. tostring(self.index)) .. ":sd"
|
|
170
|
+
)
|
|
171
|
+
end,
|
|
172
|
+
set = function(self, soundTypeSD)
|
|
173
|
+
local ____self_13 = self.unitType
|
|
174
|
+
____self_13.setStringField(
|
|
175
|
+
____self_13,
|
|
176
|
+
("ucs" .. tostring(self.index)) .. ":sd",
|
|
177
|
+
soundTypeSD
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
},
|
|
181
|
+
true
|
|
182
|
+
)
|
|
183
|
+
__TS__SetDescriptor(
|
|
184
|
+
UnitTypeWeapon.prototype,
|
|
185
|
+
"soundTypeHD",
|
|
186
|
+
{
|
|
187
|
+
get = function(self)
|
|
188
|
+
local ____self_14 = self.unitType
|
|
189
|
+
return ____self_14.getStringField(
|
|
190
|
+
____self_14,
|
|
191
|
+
("ucs" .. tostring(self.index)) .. ":hd"
|
|
192
|
+
)
|
|
193
|
+
end,
|
|
194
|
+
set = function(self, soundTypeHD)
|
|
195
|
+
local ____self_15 = self.unitType
|
|
196
|
+
____self_15.setStringField(
|
|
197
|
+
____self_15,
|
|
154
198
|
("ucs" .. tostring(self.index)) .. ":hd",
|
|
155
199
|
soundTypeHD
|
|
156
200
|
)
|
|
@@ -683,6 +727,45 @@ __TS__SetDescriptor(
|
|
|
683
727
|
},
|
|
684
728
|
true
|
|
685
729
|
)
|
|
730
|
+
__TS__SetDescriptor(
|
|
731
|
+
UnitType.prototype,
|
|
732
|
+
"runSpeed",
|
|
733
|
+
{
|
|
734
|
+
get = function(self)
|
|
735
|
+
return self:getNumberField("urun")
|
|
736
|
+
end,
|
|
737
|
+
set = function(self, runSpeed)
|
|
738
|
+
self:setNumberField("urun", runSpeed)
|
|
739
|
+
end
|
|
740
|
+
},
|
|
741
|
+
true
|
|
742
|
+
)
|
|
743
|
+
__TS__SetDescriptor(
|
|
744
|
+
UnitType.prototype,
|
|
745
|
+
"runSpeedSD",
|
|
746
|
+
{
|
|
747
|
+
get = function(self)
|
|
748
|
+
return self:getNumberField("urun:sd")
|
|
749
|
+
end,
|
|
750
|
+
set = function(self, runSpeedSD)
|
|
751
|
+
self:setNumberField("urun:sd", runSpeedSD)
|
|
752
|
+
end
|
|
753
|
+
},
|
|
754
|
+
true
|
|
755
|
+
)
|
|
756
|
+
__TS__SetDescriptor(
|
|
757
|
+
UnitType.prototype,
|
|
758
|
+
"runSpeedHD",
|
|
759
|
+
{
|
|
760
|
+
get = function(self)
|
|
761
|
+
return self:getNumberField("urun:hd")
|
|
762
|
+
end,
|
|
763
|
+
set = function(self, runSpeedHD)
|
|
764
|
+
self:setNumberField("urun:hd", runSpeedHD)
|
|
765
|
+
end
|
|
766
|
+
},
|
|
767
|
+
true
|
|
768
|
+
)
|
|
686
769
|
__TS__SetDescriptor(
|
|
687
770
|
UnitType.prototype,
|
|
688
771
|
"selectionCircleScale",
|
|
@@ -891,6 +974,45 @@ __TS__SetDescriptor(
|
|
|
891
974
|
},
|
|
892
975
|
true
|
|
893
976
|
)
|
|
977
|
+
__TS__SetDescriptor(
|
|
978
|
+
UnitType.prototype,
|
|
979
|
+
"walkSpeed",
|
|
980
|
+
{
|
|
981
|
+
get = function(self)
|
|
982
|
+
return self:getNumberField("uwal")
|
|
983
|
+
end,
|
|
984
|
+
set = function(self, walkSpeed)
|
|
985
|
+
self:setNumberField("uwal", walkSpeed)
|
|
986
|
+
end
|
|
987
|
+
},
|
|
988
|
+
true
|
|
989
|
+
)
|
|
990
|
+
__TS__SetDescriptor(
|
|
991
|
+
UnitType.prototype,
|
|
992
|
+
"walkSpeedSD",
|
|
993
|
+
{
|
|
994
|
+
get = function(self)
|
|
995
|
+
return self:getNumberField("uwal:sd")
|
|
996
|
+
end,
|
|
997
|
+
set = function(self, walkSpeedSD)
|
|
998
|
+
self:setNumberField("uwal:sd", walkSpeedSD)
|
|
999
|
+
end
|
|
1000
|
+
},
|
|
1001
|
+
true
|
|
1002
|
+
)
|
|
1003
|
+
__TS__SetDescriptor(
|
|
1004
|
+
UnitType.prototype,
|
|
1005
|
+
"walkSpeedHD",
|
|
1006
|
+
{
|
|
1007
|
+
get = function(self)
|
|
1008
|
+
return self:getNumberField("uwal:hd")
|
|
1009
|
+
end,
|
|
1010
|
+
set = function(self, walkSpeedHD)
|
|
1011
|
+
self:setNumberField("uwal:hd", walkSpeedHD)
|
|
1012
|
+
end
|
|
1013
|
+
},
|
|
1014
|
+
true
|
|
1015
|
+
)
|
|
894
1016
|
__TS__SetDescriptor(
|
|
895
1017
|
UnitType.prototype,
|
|
896
1018
|
"armorSoundType",
|
|
@@ -1262,11 +1384,11 @@ __TS__SetDescriptor(
|
|
|
1262
1384
|
implementReadonlyNumberIndexSupplier(
|
|
1263
1385
|
____exports.UnitType,
|
|
1264
1386
|
function(id)
|
|
1265
|
-
local
|
|
1266
|
-
|
|
1267
|
-
__TS__ClassExtends(
|
|
1268
|
-
|
|
1269
|
-
return
|
|
1387
|
+
local ____class_16 = __TS__Class()
|
|
1388
|
+
____class_16.name = ____class_16.name
|
|
1389
|
+
__TS__ClassExtends(____class_16, ____exports.UnitType)
|
|
1390
|
+
____class_16.BASE_ID = id
|
|
1391
|
+
return ____class_16
|
|
1270
1392
|
end
|
|
1271
1393
|
)
|
|
1272
1394
|
____exports.HeroUnitType = __TS__Class()
|
|
@@ -1296,11 +1418,11 @@ __TS__SetDescriptor(
|
|
|
1296
1418
|
implementReadonlyNumberIndexSupplier(
|
|
1297
1419
|
____exports.HeroUnitType,
|
|
1298
1420
|
function(id)
|
|
1299
|
-
local
|
|
1300
|
-
|
|
1301
|
-
__TS__ClassExtends(
|
|
1302
|
-
|
|
1303
|
-
return
|
|
1421
|
+
local ____class_17 = __TS__Class()
|
|
1422
|
+
____class_17.name = ____class_17.name
|
|
1423
|
+
__TS__ClassExtends(____class_17, ____exports.HeroUnitType)
|
|
1424
|
+
____class_17.BASE_ID = id
|
|
1425
|
+
return ____class_17
|
|
1304
1426
|
end
|
|
1305
1427
|
)
|
|
1306
1428
|
return ____exports
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { Ability } from "../internal/ability";
|
|
2
|
+
import { Ability, jabilityfield } from "../internal/ability";
|
|
3
3
|
import { ObjectArrayField, ObjectField, ObjectFieldValueChangeEvent, ObjectLevelField, ObjectLevelFieldValueChangeEvent, ReadonlyObjectFieldType, ReadonlyObjectLevelFieldType } from "../object-field";
|
|
4
4
|
import { AbilityType, AbilityTypeId } from "../object-data/entry/ability-type";
|
|
5
5
|
import { ObjectDataEntryId } from "../object-data/entry";
|
|
6
6
|
import { LightningTypeId } from "../object-data/entry/lightning-type";
|
|
7
7
|
import { CombatClassifications } from "../object-data/auxiliary/combat-classification";
|
|
8
8
|
import { UnitTypeId } from "../object-data/entry/unit-type";
|
|
9
|
-
export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType =
|
|
9
|
+
export declare abstract class AbilityField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectField<AbilityType, Ability, ValueType, NativeFieldType> {
|
|
10
10
|
protected get instanceClass(): typeof Ability;
|
|
11
11
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
12
|
+
protected hasNativeFieldValue(instance: Ability): boolean;
|
|
12
13
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<AbilityField>>;
|
|
13
14
|
}
|
|
14
15
|
export declare class AbilityBooleanField extends AbilityField<boolean, jabilitybooleanfield> {
|
|
@@ -18,7 +19,7 @@ export declare class AbilityBooleanField extends AbilityField<boolean, jabilityb
|
|
|
18
19
|
protected setNativeFieldValue(instance: Ability, value: boolean): boolean;
|
|
19
20
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityBooleanField>;
|
|
20
21
|
}
|
|
21
|
-
export declare abstract class AbilityNumberField<NativeFieldType =
|
|
22
|
+
export declare abstract class AbilityNumberField<NativeFieldType extends jabilityfield = jabilityfield> extends AbilityField<number, NativeFieldType> {
|
|
22
23
|
protected get defaultValue(): number;
|
|
23
24
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<AbilityNumberField>;
|
|
24
25
|
}
|
|
@@ -59,10 +60,11 @@ export declare abstract class AbilityObjectDataEntryIdArrayField<T extends Objec
|
|
|
59
60
|
}
|
|
60
61
|
export declare class AbilityLightningTypeIdArrayField extends AbilityObjectDataEntryIdArrayField<LightningTypeId> {
|
|
61
62
|
}
|
|
62
|
-
export declare abstract class AbilityLevelField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType =
|
|
63
|
+
export declare abstract class AbilityLevelField<ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType extends jabilityfield = jabilityfield> extends ObjectLevelField<AbilityType, Ability, ValueType, InputValueType, NativeFieldType> {
|
|
63
64
|
protected get instanceClass(): typeof Ability;
|
|
64
65
|
protected getLevelCount(entry: AbilityType | Ability): number;
|
|
65
66
|
protected getObjectDataEntryId(instance: Ability): AbilityTypeId;
|
|
67
|
+
protected hasNativeFieldValue(instance: Ability): boolean;
|
|
66
68
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<ReadonlyObjectLevelFieldType<AbilityLevelField>>;
|
|
67
69
|
}
|
|
68
70
|
export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean, boolean, jabilityintegerlevelfield> {
|
|
@@ -72,7 +74,7 @@ export declare class AbilityBooleanLevelField extends AbilityLevelField<boolean,
|
|
|
72
74
|
protected setNativeFieldValue(instance: Ability, level: number, value: boolean): boolean;
|
|
73
75
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityBooleanLevelField>;
|
|
74
76
|
}
|
|
75
|
-
export declare abstract class AbilityNumberLevelField<NativeFieldType =
|
|
77
|
+
export declare abstract class AbilityNumberLevelField<NativeFieldType extends jabilityfield = jabilityfield> extends AbilityLevelField<number, number, NativeFieldType> {
|
|
76
78
|
protected get defaultValue(): number;
|
|
77
79
|
static get valueChangeEvent(): ObjectLevelFieldValueChangeEvent<AbilityNumberLevelField>;
|
|
78
80
|
}
|
|
@@ -27,6 +27,9 @@ __TS__ClassExtends(AbilityField, ObjectField)
|
|
|
27
27
|
function AbilityField.prototype.getObjectDataEntryId(self, instance)
|
|
28
28
|
return instance.typeId
|
|
29
29
|
end
|
|
30
|
+
function AbilityField.prototype.hasNativeFieldValue(self, instance)
|
|
31
|
+
return instance:hasField(self.nativeField)
|
|
32
|
+
end
|
|
30
33
|
__TS__SetDescriptor(
|
|
31
34
|
AbilityField.prototype,
|
|
32
35
|
"instanceClass",
|
|
@@ -261,6 +264,9 @@ end
|
|
|
261
264
|
function AbilityLevelField.prototype.getObjectDataEntryId(self, instance)
|
|
262
265
|
return instance.typeId
|
|
263
266
|
end
|
|
267
|
+
function AbilityLevelField.prototype.hasNativeFieldValue(self, instance)
|
|
268
|
+
return instance:hasField(self.nativeField)
|
|
269
|
+
end
|
|
264
270
|
__TS__SetDescriptor(
|
|
265
271
|
AbilityLevelField.prototype,
|
|
266
272
|
"instanceClass",
|
|
@@ -9,6 +9,7 @@ export declare abstract class UnitField<ValueType extends number | string | bool
|
|
|
9
9
|
export declare class UnitStringField extends UnitField<string, junitstringfield> {
|
|
10
10
|
protected get defaultValue(): string;
|
|
11
11
|
protected getNativeFieldById(id: number): junitstringfield;
|
|
12
|
+
protected hasNativeFieldValue(): boolean;
|
|
12
13
|
protected getNativeFieldValue(instance: Unit): string;
|
|
13
14
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
14
15
|
protected setNativeFieldValue(instance: Unit, value: string): boolean;
|
|
@@ -29,6 +29,9 @@ __TS__ClassExtends(UnitStringField, ____exports.UnitField)
|
|
|
29
29
|
function UnitStringField.prototype.getNativeFieldById(self, id)
|
|
30
30
|
return ConvertUnitStringField(id)
|
|
31
31
|
end
|
|
32
|
+
function UnitStringField.prototype.hasNativeFieldValue(self)
|
|
33
|
+
return true
|
|
34
|
+
end
|
|
32
35
|
function UnitStringField.prototype.getNativeFieldValue(self, instance)
|
|
33
36
|
return instance:getField(self.nativeField)
|
|
34
37
|
end
|
package/engine/object-field.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export type ObjectFieldId = number & {
|
|
|
9
9
|
export type ObjectFieldConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (new (id: number) => T);
|
|
10
10
|
export type ObjectFieldAbstractConstructor<T extends ObjectFieldBase<any, any, any, any>> = OmitConstructor<typeof ObjectFieldBase> & (abstract new (id: number) => T);
|
|
11
11
|
declare abstract class ObjectFieldBase<ObjectDataEntryType extends ObjectDataEntry, InstanceType extends AnyNotNil, ValueType, NativeFieldType> {
|
|
12
|
-
protected readonly valueByInstance: LuaMap<InstanceType, ValueType>;
|
|
13
12
|
protected abstract readonly instanceClass: AbstractConstructor<InstanceType> | Function;
|
|
14
13
|
supports(instance: AnyNotNil): instance is InstanceType & {
|
|
15
14
|
readonly __oneSidedTypeGuard: unique symbol;
|
|
@@ -33,22 +32,23 @@ export type ObjectFieldValueChangeEvent<T extends ObjectField<any, any, any, any
|
|
|
33
32
|
previousValue: ValueType,
|
|
34
33
|
newValue: ValueType
|
|
35
34
|
]> : never;
|
|
36
|
-
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue">;
|
|
35
|
+
export type ReadonlyObjectFieldType<T extends ObjectField<any, any, any, any>> = Omit<T, "setValue" | "removeValue" | "trySetValue">;
|
|
37
36
|
type ReadonlyObjectFieldConstructor<T extends ObjectField> = OmitConstructor<typeof ObjectField> & (abstract new (...args: any[]) => ReadonlyObjectFieldType<T>);
|
|
38
37
|
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> {
|
|
39
38
|
protected abstract readonly defaultValue: ValueType;
|
|
40
|
-
|
|
39
|
+
protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
|
|
41
40
|
protected abstract getNativeFieldValue(instance: InstanceType): ValueType;
|
|
42
41
|
protected abstract setNativeFieldValue(instance: InstanceType, value: ValueType): boolean;
|
|
43
42
|
getValue(entry: ObjectDataEntryType | InstanceType): ValueType;
|
|
44
43
|
setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
|
|
45
44
|
removeValue(entry: ObjectDataEntryType): boolean;
|
|
45
|
+
trySetValue(entry: ObjectDataEntryType | InstanceType, value: unknown): boolean;
|
|
46
46
|
private invokeValueChangeEvent;
|
|
47
47
|
private invokeValueChangeEventRecursive;
|
|
48
48
|
protected static getOrCreateValueChangeEvent<T extends ObjectField, R extends ReadonlyObjectFieldType<T>>(this: ReadonlyObjectFieldConstructor<T>): ObjectFieldValueChangeEvent<R>;
|
|
49
49
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<ObjectField>>;
|
|
50
50
|
}
|
|
51
|
-
export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue">;
|
|
51
|
+
export type ReadonlyObjectLevelFieldType<T extends ObjectLevelField<any, any, any, any>> = Omit<T, "setValue" | "trySetValue">;
|
|
52
52
|
export type ObjectLevelFieldValueChangeEvent<T extends ObjectLevelField<any, any, any, any> | ReadonlyObjectLevelFieldType<ObjectLevelField<any, any, any, any>>> = T extends ObjectLevelField<any, infer InstanceType, infer ValueType, any, any> ? DispatchingEvent<[
|
|
53
53
|
instance: InstanceType,
|
|
54
54
|
field: T,
|
|
@@ -72,12 +72,13 @@ export declare abstract class ObjectArrayField<ObjectDataEntryType extends Objec
|
|
|
72
72
|
}
|
|
73
73
|
export declare abstract class ObjectLevelField<ObjectDataEntryType extends ObjectDataEntry = ObjectDataEntry, InstanceType extends AnyNotNil = AnyNotNil, ValueType extends number | string | boolean = number | string | boolean, InputValueType extends ValueType = never, NativeFieldType = unknown> extends ObjectFieldBase<ObjectDataEntryType, InstanceType, ValueType[], NativeFieldType> {
|
|
74
74
|
protected abstract readonly defaultValue: ValueType;
|
|
75
|
-
|
|
75
|
+
protected abstract hasNativeFieldValue(instance: InstanceType): boolean;
|
|
76
76
|
protected abstract getNativeFieldValue(instance: InstanceType, level: number): ValueType;
|
|
77
77
|
protected abstract setNativeFieldValue(instance: InstanceType, level: number, value: ValueType): boolean;
|
|
78
78
|
protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
|
|
79
79
|
getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
|
|
80
80
|
setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
|
|
81
|
+
trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
|
|
81
82
|
private invokeValueChangeEvent;
|
|
82
83
|
private invokeValueChangeEventRecursive;
|
|
83
84
|
protected static getOrCreateValueChangeEvent<T extends ObjectLevelField, R extends ReadonlyObjectLevelFieldType<T>>(this: ReadonlyObjectLevelFieldConstructor<T>): ObjectLevelFieldValueChangeEvent<R>;
|
package/engine/object-field.lua
CHANGED
|
@@ -71,9 +71,6 @@ ____exports.ObjectField = __TS__Class()
|
|
|
71
71
|
local ObjectField = ____exports.ObjectField
|
|
72
72
|
ObjectField.name = "ObjectField"
|
|
73
73
|
__TS__ClassExtends(ObjectField, ObjectFieldBase)
|
|
74
|
-
function ObjectField.prototype.accepts(self, value)
|
|
75
|
-
return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
|
|
76
|
-
end
|
|
77
74
|
function ObjectField.prototype.getValue(self, entry)
|
|
78
75
|
if __TS__InstanceOf(entry, ObjectDataEntry) then
|
|
79
76
|
local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
|
|
@@ -135,13 +132,15 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
135
132
|
return true
|
|
136
133
|
end
|
|
137
134
|
end
|
|
135
|
+
if not self:hasNativeFieldValue(entry) then
|
|
136
|
+
return false
|
|
137
|
+
end
|
|
138
138
|
local previousValue = self:getNativeFieldValue(entry)
|
|
139
139
|
if value ~= previousValue then
|
|
140
|
-
if self:setNativeFieldValue(entry, value) then
|
|
141
|
-
self:invokeValueChangeEvent(entry, self, previousValue, value)
|
|
142
|
-
else
|
|
140
|
+
if not self:setNativeFieldValue(entry, value) then
|
|
143
141
|
return false
|
|
144
142
|
end
|
|
143
|
+
self:invokeValueChangeEvent(entry, self, previousValue, value)
|
|
145
144
|
end
|
|
146
145
|
return true
|
|
147
146
|
end
|
|
@@ -159,6 +158,12 @@ function ObjectField.prototype.removeValue(self, entry)
|
|
|
159
158
|
end
|
|
160
159
|
return false
|
|
161
160
|
end
|
|
161
|
+
function ObjectField.prototype.trySetValue(self, entry, value)
|
|
162
|
+
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
163
|
+
return false
|
|
164
|
+
end
|
|
165
|
+
return self:setValue(entry, value)
|
|
166
|
+
end
|
|
162
167
|
function ObjectField.prototype.invokeValueChangeEvent(self, ...)
|
|
163
168
|
self:invokeValueChangeEventRecursive(
|
|
164
169
|
getClass(self),
|
|
@@ -273,9 +278,6 @@ ____exports.ObjectLevelField = __TS__Class()
|
|
|
273
278
|
local ObjectLevelField = ____exports.ObjectLevelField
|
|
274
279
|
ObjectLevelField.name = "ObjectLevelField"
|
|
275
280
|
__TS__ClassExtends(ObjectLevelField, ObjectFieldBase)
|
|
276
|
-
function ObjectLevelField.prototype.accepts(self, value)
|
|
277
|
-
return __TS__TypeOf(value) == __TS__TypeOf(self.defaultValue)
|
|
278
|
-
end
|
|
279
281
|
function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
280
282
|
if level == nil then
|
|
281
283
|
local result = {}
|
|
@@ -390,22 +392,39 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
390
392
|
return true
|
|
391
393
|
end
|
|
392
394
|
end
|
|
395
|
+
if not self:hasNativeFieldValue(entry) then
|
|
396
|
+
return false
|
|
397
|
+
end
|
|
393
398
|
local previousValue = self:getNativeFieldValue(entry, level)
|
|
394
399
|
if value ~= previousValue then
|
|
395
|
-
if self:setNativeFieldValue(entry, level, value) then
|
|
396
|
-
self:invokeValueChangeEvent(
|
|
397
|
-
entry,
|
|
398
|
-
self,
|
|
399
|
-
level,
|
|
400
|
-
previousValue,
|
|
401
|
-
value
|
|
402
|
-
)
|
|
403
|
-
else
|
|
400
|
+
if not self:setNativeFieldValue(entry, level, value) then
|
|
404
401
|
return false
|
|
405
402
|
end
|
|
403
|
+
self:invokeValueChangeEvent(
|
|
404
|
+
entry,
|
|
405
|
+
self,
|
|
406
|
+
level,
|
|
407
|
+
previousValue,
|
|
408
|
+
value
|
|
409
|
+
)
|
|
406
410
|
end
|
|
407
411
|
return true
|
|
408
412
|
end
|
|
413
|
+
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
414
|
+
if value ~= nil then
|
|
415
|
+
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
416
|
+
return false
|
|
417
|
+
end
|
|
418
|
+
if type(levelOrValue) ~= "number" then
|
|
419
|
+
return false
|
|
420
|
+
end
|
|
421
|
+
return self:setValue(entry, levelOrValue, value)
|
|
422
|
+
end
|
|
423
|
+
if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
|
|
424
|
+
return false
|
|
425
|
+
end
|
|
426
|
+
return self:setValue(entry, levelOrValue)
|
|
427
|
+
end
|
|
409
428
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
410
429
|
self:invokeValueChangeEventRecursive(
|
|
411
430
|
getClass(self),
|
|
@@ -30,6 +30,9 @@ export declare const DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID: StandardHeroUnit
|
|
|
30
30
|
export declare const ABOMINATION_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
31
31
|
export declare const GHOUL_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
32
32
|
export declare const DEATH_KNIGHT_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
33
|
+
export declare const ZOMBIE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
34
|
+
export declare const ZOMBIE_FEMALE_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
35
|
+
export declare const ARTHAS_EVIL_HERO_UNIT_TYPE_ID: StandardHeroUnitTypeId;
|
|
33
36
|
export declare const DIRE_MAMMOTH_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
34
37
|
export declare const ELDER_JUNGLE_STALKER_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
35
38
|
export declare const ENRAGED_ELEMENTAL_UNIT_TYPE_ID: StandardUnitTypeId;
|
|
@@ -29,6 +29,9 @@ ____exports.DEMON_HUNTER_DEMON_FORM_HERO_UNIT_TYPE_ID = fourCC("Edmm")
|
|
|
29
29
|
____exports.ABOMINATION_UNIT_TYPE_ID = fourCC("uabo")
|
|
30
30
|
____exports.GHOUL_UNIT_TYPE_ID = fourCC("ugho")
|
|
31
31
|
____exports.DEATH_KNIGHT_HERO_UNIT_TYPE_ID = fourCC("Udea")
|
|
32
|
+
____exports.ZOMBIE_UNIT_TYPE_ID = fourCC("nzom")
|
|
33
|
+
____exports.ZOMBIE_FEMALE_UNIT_TYPE_ID = fourCC("nzof")
|
|
34
|
+
____exports.ARTHAS_EVIL_HERO_UNIT_TYPE_ID = fourCC("Uear")
|
|
32
35
|
____exports.DIRE_MAMMOTH_UNIT_TYPE_ID = fourCC("nmdr")
|
|
33
36
|
____exports.ELDER_JUNGLE_STALKER_UNIT_TYPE_ID = fourCC("njga")
|
|
34
37
|
____exports.ENRAGED_ELEMENTAL_UNIT_TYPE_ID = fourCC("nele")
|
package/engine/unit.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import "./internal/unit/missile";
|
|
|
14
14
|
import "./internal/unit-missile-launch";
|
|
15
15
|
import "./internal/unit/ghost-counter";
|
|
16
16
|
import "./internal/unit/invulnerability-counter";
|
|
17
|
+
import "./internal/unit/detach-missiles";
|
|
17
18
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
18
19
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
19
20
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -14,6 +14,7 @@ require("engine.internal.unit.missile")
|
|
|
14
14
|
require("engine.internal.unit-missile-launch")
|
|
15
15
|
require("engine.internal.unit.ghost-counter")
|
|
16
16
|
require("engine.internal.unit.invulnerability-counter")
|
|
17
|
+
require("engine.internal.unit.detach-missiles")
|
|
17
18
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
18
19
|
do
|
|
19
20
|
local ____unit = require("engine.internal.unit")
|
package/global/vec2.lua
CHANGED
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.ccd5725",
|
|
5
5
|
"description": "A typescript library for Warcraft III using Warpack.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"warcraft",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"@warscript/language-extensions": "^0.0.1",
|
|
25
|
-
"@warscript/tstl-plugin": "^0.0.
|
|
25
|
+
"@warscript/tstl-plugin": "^0.0.2",
|
|
26
26
|
"typescript-to-lua": "^1.24.1",
|
|
27
27
|
"lua-types": "^2.13.1",
|
|
28
28
|
"warpack": "0.0.1-dev.5bdabe5"
|
package/utility/linked-set.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export declare class LinkedSet<T extends AnyNotNil> implements ReadonlyLinkedSet
|
|
|
44
44
|
sortBy<R>(selector: ((value: T) => R) | KeysOfType<T, R>): void;
|
|
45
45
|
protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>;
|
|
46
46
|
}
|
|
47
|
+
export declare const emptyLinkedSet: <T extends AnyNotNil>() => ReadonlyLinkedSet<T>;
|
|
47
48
|
export declare const linkedSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LinkedSet<T>;
|
|
48
49
|
export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | null | undefined)[]) => LinkedSet<T>;
|
|
49
50
|
export {};
|