warscript 0.0.1-dev.ee6f224 → 0.0.1-dev.ef189a5
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 +1 -0
- package/attributes.lua +9 -0
- 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/core/types/timer.d.ts +3 -2
- package/core/types/timer.lua +8 -2
- package/engine/behavior.d.ts +7 -1
- package/engine/behavior.lua +88 -65
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability.d.ts +2 -1
- package/engine/behaviour/ability.lua +2 -1
- package/engine/behaviour/unit/stun-immunity.d.ts +8 -4
- package/engine/behaviour/unit/stun-immunity.lua +12 -3
- package/engine/behaviour/unit.d.ts +9 -3
- package/engine/behaviour/unit.lua +94 -22
- package/engine/buff.d.ts +12 -2
- package/engine/buff.lua +80 -17
- package/engine/internal/item.d.ts +12 -12
- package/engine/internal/item.lua +41 -26
- package/engine/internal/unit/ability.d.ts +14 -14
- package/engine/internal/unit/ability.lua +72 -45
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/scale.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit-missile-launch.lua +44 -20
- package/engine/internal/unit.d.ts +13 -10
- package/engine/internal/unit.lua +83 -64
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/entry/ability-type.lua +4 -1
- package/engine/object-data/entry/destructible-type.d.ts +5 -1
- package/engine/object-data/entry/destructible-type.lua +12 -0
- package/engine/object-data/entry/unit-type.d.ts +4 -0
- package/engine/object-data/entry/unit-type.lua +76 -32
- 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/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +3 -1
- package/engine/standard/fields/unit.lua +4 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.lua +3 -2
- package/engine/unit.d.ts +2 -0
- package/engine/unit.lua +2 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +1 -1
- package/package.json +2 -2
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +8 -0
- package/utility/callback-array.d.ts +5 -1
- package/utility/callback-array.lua +16 -1
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +19 -1
- package/utility/types.d.ts +3 -0
|
@@ -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>;
|
package/engine/object-field.lua
CHANGED
|
@@ -25,6 +25,7 @@ local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
|
|
|
25
25
|
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
26
26
|
local emptyLuaMap = ____lua_2Dmaps.emptyLuaMap
|
|
27
27
|
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
28
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
28
29
|
local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
|
|
29
30
|
local ____arrays = require("utility.arrays")
|
|
30
31
|
local emptyArray = ____arrays.emptyArray
|
|
@@ -99,7 +100,7 @@ function ObjectField.prototype.getValue(self, entry, includeModifiers)
|
|
|
99
100
|
end
|
|
100
101
|
return self.defaultValue
|
|
101
102
|
end
|
|
102
|
-
if includeModifiers
|
|
103
|
+
if not includeModifiers then
|
|
103
104
|
local originalValueByInstance = self.originalValueByInstance
|
|
104
105
|
if originalValueByInstance ~= nil then
|
|
105
106
|
local originalValue = originalValueByInstance[entry]
|
|
@@ -150,7 +151,13 @@ function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
|
150
151
|
originalValueByInstance = mutableWeakLuaMap()
|
|
151
152
|
self.originalValueByInstance = originalValueByInstance
|
|
152
153
|
end
|
|
153
|
-
|
|
154
|
+
local ____originalValueByInstance_1 = originalValueByInstance
|
|
155
|
+
local ____instance_2 = instance
|
|
156
|
+
local ____originalValueByInstance_instance_0 = originalValueByInstance[instance]
|
|
157
|
+
if ____originalValueByInstance_instance_0 == nil then
|
|
158
|
+
____originalValueByInstance_instance_0 = self:getActualValue(instance)
|
|
159
|
+
end
|
|
160
|
+
____originalValueByInstance_1[____instance_2] = ____originalValueByInstance_instance_0
|
|
154
161
|
self:setActualValue(
|
|
155
162
|
instance,
|
|
156
163
|
self:calculateActualValue(instance)
|
|
@@ -196,22 +203,22 @@ function ObjectField.prototype.getActualValue(self, instance)
|
|
|
196
203
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
197
204
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
198
205
|
if defaultValue ~= nil or self.isGlobal then
|
|
199
|
-
local
|
|
200
|
-
if
|
|
201
|
-
|
|
206
|
+
local ____self_valueByInstance_instance_3 = self.valueByInstance[instance]
|
|
207
|
+
if ____self_valueByInstance_instance_3 == nil then
|
|
208
|
+
____self_valueByInstance_instance_3 = defaultValue
|
|
202
209
|
end
|
|
203
|
-
local
|
|
204
|
-
if
|
|
205
|
-
|
|
210
|
+
local ____self_valueByInstance_instance_3_4 = ____self_valueByInstance_instance_3
|
|
211
|
+
if ____self_valueByInstance_instance_3_4 == nil then
|
|
212
|
+
____self_valueByInstance_instance_3_4 = self.defaultValue
|
|
206
213
|
end
|
|
207
|
-
return
|
|
214
|
+
return ____self_valueByInstance_instance_3_4
|
|
208
215
|
end
|
|
209
216
|
end
|
|
210
|
-
local
|
|
211
|
-
if
|
|
212
|
-
|
|
217
|
+
local ____temp_5 = self:getNativeFieldValue(instance)
|
|
218
|
+
if ____temp_5 == nil then
|
|
219
|
+
____temp_5 = self.defaultValue
|
|
213
220
|
end
|
|
214
|
-
return
|
|
221
|
+
return ____temp_5
|
|
215
222
|
end
|
|
216
223
|
function ObjectField.prototype.setActualValue(self, instance, value)
|
|
217
224
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
@@ -219,19 +226,17 @@ function ObjectField.prototype.setActualValue(self, instance, value)
|
|
|
219
226
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
220
227
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
221
228
|
if defaultValue ~= nil or self.isGlobal then
|
|
222
|
-
local
|
|
223
|
-
if
|
|
224
|
-
|
|
225
|
-
end
|
|
226
|
-
local ____self_valueByInstance_instance_3_4 = ____self_valueByInstance_instance_3
|
|
227
|
-
if ____self_valueByInstance_instance_3_4 == nil then
|
|
228
|
-
____self_valueByInstance_instance_3_4 = self.defaultValue
|
|
229
|
+
local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
|
|
230
|
+
if ____self_valueByInstance_instance_6 == nil then
|
|
231
|
+
____self_valueByInstance_instance_6 = defaultValue
|
|
229
232
|
end
|
|
230
|
-
local
|
|
231
|
-
if
|
|
232
|
-
|
|
233
|
-
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
233
|
+
local ____self_valueByInstance_instance_6_7 = ____self_valueByInstance_instance_6
|
|
234
|
+
if ____self_valueByInstance_instance_6_7 == nil then
|
|
235
|
+
____self_valueByInstance_instance_6_7 = self.defaultValue
|
|
234
236
|
end
|
|
237
|
+
local previousValue = ____self_valueByInstance_instance_6_7
|
|
238
|
+
self.valueByInstance[instance] = value
|
|
239
|
+
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
235
240
|
return true
|
|
236
241
|
end
|
|
237
242
|
end
|
|
@@ -239,19 +244,17 @@ function ObjectField.prototype.setActualValue(self, instance, value)
|
|
|
239
244
|
return false
|
|
240
245
|
end
|
|
241
246
|
local previousValue = self:getNativeFieldValue(instance)
|
|
242
|
-
if value ~= previousValue then
|
|
243
|
-
|
|
244
|
-
return false
|
|
245
|
-
end
|
|
246
|
-
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
247
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
|
|
248
|
+
return false
|
|
247
249
|
end
|
|
250
|
+
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
248
251
|
return true
|
|
249
252
|
end
|
|
250
253
|
function ObjectField.prototype.calculateActualValue(self, instance)
|
|
251
|
-
local
|
|
252
|
-
local originalValue =
|
|
253
|
-
local
|
|
254
|
-
local modifiers =
|
|
254
|
+
local ____opt_8 = self.originalValueByInstance
|
|
255
|
+
local originalValue = ____opt_8 and ____opt_8[instance]
|
|
256
|
+
local ____opt_10 = self.modifiersByInstance
|
|
257
|
+
local modifiers = ____opt_10 and ____opt_10[instance]
|
|
255
258
|
if originalValue ~= nil then
|
|
256
259
|
local value = originalValue
|
|
257
260
|
if modifiers ~= nil then
|
|
@@ -316,17 +319,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
316
319
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
317
320
|
local value = defaultValueByObjectDataEntryId[entry.id]
|
|
318
321
|
if value ~= nil then
|
|
319
|
-
local
|
|
322
|
+
local ____temp_13
|
|
320
323
|
if index == nil then
|
|
321
|
-
|
|
324
|
+
____temp_13 = value
|
|
322
325
|
else
|
|
323
|
-
local
|
|
324
|
-
if
|
|
325
|
-
|
|
326
|
+
local ____value_index_12 = value[index + 1]
|
|
327
|
+
if ____value_index_12 == nil then
|
|
328
|
+
____value_index_12 = self.defaultValue
|
|
326
329
|
end
|
|
327
|
-
|
|
330
|
+
____temp_13 = ____value_index_12
|
|
328
331
|
end
|
|
329
|
-
return
|
|
332
|
+
return ____temp_13
|
|
330
333
|
end
|
|
331
334
|
end
|
|
332
335
|
return index == nil and ({}) or self.defaultValue
|
|
@@ -336,17 +339,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
336
339
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
|
|
337
340
|
if defaultValue ~= nil or self.isGlobal then
|
|
338
341
|
local value = self.valueByInstance[entry] or defaultValue or emptyArray()
|
|
339
|
-
local
|
|
342
|
+
local ____temp_15
|
|
340
343
|
if index == nil then
|
|
341
|
-
|
|
344
|
+
____temp_15 = value
|
|
342
345
|
else
|
|
343
|
-
local
|
|
344
|
-
if
|
|
345
|
-
|
|
346
|
+
local ____value_index_14 = value[index + 1]
|
|
347
|
+
if ____value_index_14 == nil then
|
|
348
|
+
____value_index_14 = self.defaultValue
|
|
346
349
|
end
|
|
347
|
-
|
|
350
|
+
____temp_15 = ____value_index_14
|
|
348
351
|
end
|
|
349
|
-
return
|
|
352
|
+
return ____temp_15
|
|
350
353
|
end
|
|
351
354
|
end
|
|
352
355
|
if index ~= nil then
|
|
@@ -391,36 +394,22 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
|
391
394
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
392
395
|
local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
|
|
393
396
|
if valueByLevel ~= nil then
|
|
394
|
-
local
|
|
395
|
-
if
|
|
396
|
-
|
|
397
|
+
local ____valueByLevel_index_16 = valueByLevel[level + 1]
|
|
398
|
+
if ____valueByLevel_index_16 == nil then
|
|
399
|
+
____valueByLevel_index_16 = self.defaultValue
|
|
397
400
|
end
|
|
398
|
-
return
|
|
401
|
+
return ____valueByLevel_index_16
|
|
399
402
|
end
|
|
400
403
|
end
|
|
401
404
|
return self.defaultValue
|
|
402
405
|
end
|
|
403
|
-
local
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
local ____temp_16 = ____opt_14 and ____opt_14[level + 1]
|
|
409
|
-
if ____temp_16 == nil then
|
|
410
|
-
____temp_16 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
411
|
-
end
|
|
412
|
-
local ____temp_16_17 = ____temp_16
|
|
413
|
-
if ____temp_16_17 == nil then
|
|
414
|
-
____temp_16_17 = self.defaultValue
|
|
415
|
-
end
|
|
416
|
-
return ____temp_16_17
|
|
417
|
-
end
|
|
418
|
-
end
|
|
419
|
-
local ____temp_18 = self:getNativeFieldValue(entry, level)
|
|
420
|
-
if ____temp_18 == nil then
|
|
421
|
-
____temp_18 = self.defaultValue
|
|
406
|
+
local ____opt_19 = self.originalValueByLevelByInstance
|
|
407
|
+
local ____opt_17 = ____opt_19 and ____opt_19[entry]
|
|
408
|
+
local originalValue = ____opt_17 and ____opt_17[level]
|
|
409
|
+
if originalValue ~= nil then
|
|
410
|
+
return originalValue
|
|
422
411
|
end
|
|
423
|
-
return
|
|
412
|
+
return self:getActualValue(entry, level)
|
|
424
413
|
end
|
|
425
414
|
function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
426
415
|
if value == nil then
|
|
@@ -460,55 +449,66 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
460
449
|
valueByLevel[level + 1] = value
|
|
461
450
|
return true
|
|
462
451
|
end
|
|
463
|
-
local
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
self.valueByInstance[entry] = valueByLevel
|
|
472
|
-
end
|
|
473
|
-
local ____valueByLevel_index_19 = valueByLevel[level + 1]
|
|
474
|
-
if ____valueByLevel_index_19 == nil then
|
|
475
|
-
____valueByLevel_index_19 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
452
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
453
|
+
if modifiersByInstance ~= nil then
|
|
454
|
+
local modifiers = modifiersByInstance[entry]
|
|
455
|
+
if modifiers ~= nil and modifiers.size ~= 0 then
|
|
456
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
457
|
+
if originalValueByLevelByInstance == nil then
|
|
458
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
459
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
476
460
|
end
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
461
|
+
getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)[level] = value
|
|
462
|
+
value = self:calculateActualValue(entry, level)
|
|
463
|
+
end
|
|
464
|
+
end
|
|
465
|
+
return self:setActualValue(entry, level, value)
|
|
466
|
+
end
|
|
467
|
+
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
468
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
469
|
+
if modifiersByInstance == nil then
|
|
470
|
+
modifiersByInstance = mutableWeakLuaMap()
|
|
471
|
+
self.modifiersByInstance = modifiersByInstance
|
|
472
|
+
end
|
|
473
|
+
if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
|
|
474
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
475
|
+
if originalValueByLevelByInstance == nil then
|
|
476
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
477
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
478
|
+
end
|
|
479
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
480
|
+
local levelCount = self:getLevelCount(instance)
|
|
481
|
+
for level = 0, levelCount - 1 do
|
|
482
|
+
local ____originalValueByLevel_level_21 = originalValueByLevel[level]
|
|
483
|
+
if ____originalValueByLevel_level_21 == nil then
|
|
484
|
+
____originalValueByLevel_level_21 = self:getActualValue(instance, level)
|
|
480
485
|
end
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
486
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_21
|
|
487
|
+
self:setActualValue(
|
|
488
|
+
instance,
|
|
489
|
+
level,
|
|
490
|
+
self:calculateActualValue(instance, level)
|
|
491
|
+
)
|
|
492
|
+
end
|
|
493
|
+
end
|
|
494
|
+
end
|
|
495
|
+
function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
|
|
496
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
497
|
+
if modifiersByInstance ~= nil then
|
|
498
|
+
local modifiers = modifiersByInstance[instance]
|
|
499
|
+
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
500
|
+
local levelCount = self:getLevelCount(instance)
|
|
501
|
+
for level = 0, levelCount - 1 do
|
|
502
|
+
self:setActualValue(
|
|
503
|
+
instance,
|
|
487
504
|
level,
|
|
488
|
-
|
|
489
|
-
value
|
|
505
|
+
self:calculateActualValue(instance, level)
|
|
490
506
|
)
|
|
491
507
|
end
|
|
492
508
|
return true
|
|
493
509
|
end
|
|
494
510
|
end
|
|
495
|
-
|
|
496
|
-
return false
|
|
497
|
-
end
|
|
498
|
-
local previousValue = self:getNativeFieldValue(entry, level)
|
|
499
|
-
if value ~= previousValue then
|
|
500
|
-
if not self:setNativeFieldValue(entry, level, value) then
|
|
501
|
-
return false
|
|
502
|
-
end
|
|
503
|
-
self:invokeValueChangeEvent(
|
|
504
|
-
entry,
|
|
505
|
-
self,
|
|
506
|
-
level,
|
|
507
|
-
previousValue,
|
|
508
|
-
value
|
|
509
|
-
)
|
|
510
|
-
end
|
|
511
|
-
return true
|
|
511
|
+
return false
|
|
512
512
|
end
|
|
513
513
|
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
514
514
|
if value ~= nil then
|
|
@@ -525,6 +525,93 @@ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value
|
|
|
525
525
|
end
|
|
526
526
|
return self:setValue(entry, levelOrValue)
|
|
527
527
|
end
|
|
528
|
+
function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
529
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
530
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
531
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
532
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
533
|
+
local ____opt_22 = self.valueByInstance[instance]
|
|
534
|
+
local ____temp_24 = ____opt_22 and ____opt_22[level + 1]
|
|
535
|
+
if ____temp_24 == nil then
|
|
536
|
+
____temp_24 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
537
|
+
end
|
|
538
|
+
local ____temp_24_25 = ____temp_24
|
|
539
|
+
if ____temp_24_25 == nil then
|
|
540
|
+
____temp_24_25 = self.defaultValue
|
|
541
|
+
end
|
|
542
|
+
return ____temp_24_25
|
|
543
|
+
end
|
|
544
|
+
end
|
|
545
|
+
local ____temp_26 = self:getNativeFieldValue(instance, level)
|
|
546
|
+
if ____temp_26 == nil then
|
|
547
|
+
____temp_26 = self.defaultValue
|
|
548
|
+
end
|
|
549
|
+
return ____temp_26
|
|
550
|
+
end
|
|
551
|
+
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
552
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
553
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
554
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
555
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
556
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
557
|
+
local valueByLevel = self.valueByInstance[instance]
|
|
558
|
+
if valueByLevel == nil then
|
|
559
|
+
valueByLevel = {}
|
|
560
|
+
self.valueByInstance[instance] = valueByLevel
|
|
561
|
+
end
|
|
562
|
+
local ____valueByLevel_index_27 = valueByLevel[level + 1]
|
|
563
|
+
if ____valueByLevel_index_27 == nil then
|
|
564
|
+
____valueByLevel_index_27 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
565
|
+
end
|
|
566
|
+
local ____valueByLevel_index_27_28 = ____valueByLevel_index_27
|
|
567
|
+
if ____valueByLevel_index_27_28 == nil then
|
|
568
|
+
____valueByLevel_index_27_28 = self.defaultValue
|
|
569
|
+
end
|
|
570
|
+
local previousValue = ____valueByLevel_index_27_28
|
|
571
|
+
valueByLevel[level + 1] = value
|
|
572
|
+
self:invokeValueChangeEvent(
|
|
573
|
+
instance,
|
|
574
|
+
self,
|
|
575
|
+
level,
|
|
576
|
+
previousValue,
|
|
577
|
+
value
|
|
578
|
+
)
|
|
579
|
+
return true
|
|
580
|
+
end
|
|
581
|
+
end
|
|
582
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
583
|
+
return false
|
|
584
|
+
end
|
|
585
|
+
local previousValue = self:getNativeFieldValue(instance, level)
|
|
586
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
|
|
587
|
+
return false
|
|
588
|
+
end
|
|
589
|
+
self:invokeValueChangeEvent(
|
|
590
|
+
instance,
|
|
591
|
+
self,
|
|
592
|
+
level,
|
|
593
|
+
previousValue,
|
|
594
|
+
value
|
|
595
|
+
)
|
|
596
|
+
return true
|
|
597
|
+
end
|
|
598
|
+
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
599
|
+
local ____opt_31 = self.originalValueByLevelByInstance
|
|
600
|
+
local ____opt_29 = ____opt_31 and ____opt_31[instance]
|
|
601
|
+
local originalValue = ____opt_29 and ____opt_29[level]
|
|
602
|
+
local ____opt_33 = self.modifiersByInstance
|
|
603
|
+
local modifiers = ____opt_33 and ____opt_33[instance]
|
|
604
|
+
if originalValue ~= nil then
|
|
605
|
+
local value = originalValue
|
|
606
|
+
if modifiers ~= nil then
|
|
607
|
+
for modifier in pairs(modifiers) do
|
|
608
|
+
value = modifier(instance, level, value, originalValue)
|
|
609
|
+
end
|
|
610
|
+
end
|
|
611
|
+
return value
|
|
612
|
+
end
|
|
613
|
+
return self.defaultValue
|
|
614
|
+
end
|
|
528
615
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
529
616
|
self:invokeValueChangeEventRecursive(
|
|
530
617
|
getClass(self),
|
|
@@ -376,8 +376,8 @@ export declare const INVISIBILITY_TRANSITION_TIME_ABILITY_FLOAT_LEVEL_FIELD: Abi
|
|
|
376
376
|
export declare const ACTIVATION_RADIUS_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
377
377
|
export declare const AMOUNT_REGENERATED_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
378
378
|
export declare const DAMAGE_PER_SECOND_POI1_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
379
|
-
export declare const
|
|
380
|
-
export declare const
|
|
379
|
+
export declare const MOVEMENT_SPEED_FACTOR_POI2_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
380
|
+
export declare const ATTACK_SPEED_FACTOR_POI3_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
381
381
|
export declare const EXTRA_DAMAGE_POA1_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
382
382
|
export declare const DAMAGE_PER_SECOND_POA2_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
383
383
|
export declare const ATTACK_SPEED_FACTOR_POA3_ABILITY_FLOAT_LEVEL_FIELD: AbilityFloatLevelField & symbol;
|
|
@@ -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"))
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { UnitClassificationsField, UnitPropulsionWindowField } from "../../object-field/unit";
|
|
2
|
+
import { UnitClassificationsField, UnitFlyHeightField, UnitPropulsionWindowField, UnitScalingValueField } from "../../object-field/unit";
|
|
3
3
|
export declare const PROPULSION_WINDOW_UNIT_FLOAT_FIELD: UnitPropulsionWindowField & symbol;
|
|
4
4
|
export declare const UNIT_CLASSIFICATIONS_FIELD: UnitClassificationsField & symbol;
|
|
5
|
+
export declare const FLY_HEIGHT_UNIT_FLOAT_FIELD: UnitFlyHeightField & symbol;
|
|
6
|
+
export declare const SCALING_VALUE_UNIT_FLOAT_FIELD: UnitScalingValueField & symbol;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local ____unit = require("engine.object-field.unit")
|
|
3
3
|
local UnitClassificationsField = ____unit.UnitClassificationsField
|
|
4
|
+
local UnitFlyHeightField = ____unit.UnitFlyHeightField
|
|
4
5
|
local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
|
|
6
|
+
local UnitScalingValueField = ____unit.UnitScalingValueField
|
|
5
7
|
____exports.PROPULSION_WINDOW_UNIT_FLOAT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
|
|
6
8
|
____exports.UNIT_CLASSIFICATIONS_FIELD = UnitClassificationsField:create(fourCC("utyp"))
|
|
9
|
+
____exports.FLY_HEIGHT_UNIT_FLOAT_FIELD = UnitFlyHeightField:create(fourCC("ufyh"))
|
|
10
|
+
____exports.SCALING_VALUE_UNIT_FLOAT_FIELD = UnitScalingValueField:create(fourCC("usca"))
|
|
7
11
|
return ____exports
|