warscript 0.0.1-dev.1d1ce87 → 0.0.1-dev.1d3eae2
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/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +10 -2
- package/engine/behavior.lua +157 -76
- 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 +6 -4
- package/engine/behaviour/unit/stun-immunity.lua +1 -1
- package/engine/behaviour/unit.d.ts +7 -3
- package/engine/behaviour/unit.lua +89 -22
- package/engine/buff.d.ts +15 -2
- package/engine/buff.lua +95 -17
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/mana-regeneration-rate-increase-factor.lua +16 -0
- package/engine/internal/unit/ability.lua +3 -3
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/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 +41 -23
- 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/auxiliary/health-regeneration-type.d.ts +8 -0
- package/engine/object-data/auxiliary/health-regeneration-type.lua +2 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-regeneration.lua +26 -0
- package/engine/object-data/entry/destructible-type.d.ts +27 -1
- package/engine/object-data/entry/destructible-type.lua +155 -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 +20 -5
- package/engine/object-field/unit.lua +61 -0
- package/engine/object-field.d.ts +7 -1
- package/engine/object-field.lua +232 -111
- package/engine/standard/fields/ability.d.ts +2 -2
- package/engine/standard/fields/ability.lua +2 -2
- package/engine/standard/fields/unit.d.ts +6 -1
- package/engine/standard/fields/unit.lua +9 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.lua +2 -1
- package/engine/unit.d.ts +2 -0
- package/engine/unit.lua +2 -0
- package/net/socket.lua +1 -1
- package/package.json +2 -2
- package/utility/callback-array.lua +1 -1
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +19 -1
|
@@ -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,16 @@ function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance,
|
|
|
249
298
|
setUnitPropulsionWindow(instance.handle, value)
|
|
250
299
|
return true
|
|
251
300
|
end
|
|
301
|
+
____exports.UnitHealthRegenerationTypeField = __TS__Class()
|
|
302
|
+
local UnitHealthRegenerationTypeField = ____exports.UnitHealthRegenerationTypeField
|
|
303
|
+
UnitHealthRegenerationTypeField.name = "UnitHealthRegenerationTypeField"
|
|
304
|
+
__TS__ClassExtends(UnitHealthRegenerationTypeField, ____exports.UnitIntegerField)
|
|
305
|
+
____exports.UnitScalingValueField = __TS__Class()
|
|
306
|
+
local UnitScalingValueField = ____exports.UnitScalingValueField
|
|
307
|
+
UnitScalingValueField.name = "UnitScalingValueField"
|
|
308
|
+
__TS__ClassExtends(UnitScalingValueField, ____exports.UnitFloatField)
|
|
309
|
+
function UnitScalingValueField.prototype.setNativeFieldValue(self, instance, value)
|
|
310
|
+
setUnitScale(instance.handle, value, value, value)
|
|
311
|
+
return UnitScalingValueField.____super.prototype.setNativeFieldValue(self, instance, value)
|
|
312
|
+
end
|
|
252
313
|
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]
|
|
@@ -123,6 +124,7 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
123
124
|
defaultValueByObjectDataEntryId[entry.id] = value
|
|
124
125
|
return true
|
|
125
126
|
end
|
|
127
|
+
local previousOriginalValue
|
|
126
128
|
local modifiersByInstance = self.modifiersByInstance
|
|
127
129
|
if modifiersByInstance ~= nil then
|
|
128
130
|
local modifiers = modifiersByInstance[entry]
|
|
@@ -132,11 +134,34 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
132
134
|
originalValueByInstance = mutableWeakLuaMap()
|
|
133
135
|
self.originalValueByInstance = originalValueByInstance
|
|
134
136
|
end
|
|
137
|
+
previousOriginalValue = originalValueByInstance[entry]
|
|
138
|
+
if value == previousOriginalValue then
|
|
139
|
+
return true
|
|
140
|
+
end
|
|
135
141
|
originalValueByInstance[entry] = value
|
|
136
142
|
value = self:calculateActualValue(entry)
|
|
137
143
|
end
|
|
138
144
|
end
|
|
139
|
-
|
|
145
|
+
local previousValue = self:setActualValue(entry, value)
|
|
146
|
+
if previousValue == nil then
|
|
147
|
+
return false
|
|
148
|
+
end
|
|
149
|
+
if previousOriginalValue ~= nil or value ~= previousValue then
|
|
150
|
+
local ____self_invokeValueChangeEvent_2 = self.invokeValueChangeEvent
|
|
151
|
+
local ____entry_1 = entry
|
|
152
|
+
local ____previousOriginalValue_0 = previousOriginalValue
|
|
153
|
+
if ____previousOriginalValue_0 == nil then
|
|
154
|
+
____previousOriginalValue_0 = previousValue
|
|
155
|
+
end
|
|
156
|
+
____self_invokeValueChangeEvent_2(
|
|
157
|
+
self,
|
|
158
|
+
____entry_1,
|
|
159
|
+
self,
|
|
160
|
+
____previousOriginalValue_0,
|
|
161
|
+
value
|
|
162
|
+
)
|
|
163
|
+
end
|
|
164
|
+
return true
|
|
140
165
|
end
|
|
141
166
|
function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
142
167
|
local modifiersByInstance = self.modifiersByInstance
|
|
@@ -150,7 +175,13 @@ function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
|
150
175
|
originalValueByInstance = mutableWeakLuaMap()
|
|
151
176
|
self.originalValueByInstance = originalValueByInstance
|
|
152
177
|
end
|
|
153
|
-
|
|
178
|
+
local ____originalValueByInstance_4 = originalValueByInstance
|
|
179
|
+
local ____instance_5 = instance
|
|
180
|
+
local ____originalValueByInstance_instance_3 = originalValueByInstance[instance]
|
|
181
|
+
if ____originalValueByInstance_instance_3 == nil then
|
|
182
|
+
____originalValueByInstance_instance_3 = self:getActualValue(instance)
|
|
183
|
+
end
|
|
184
|
+
____originalValueByInstance_4[____instance_5] = ____originalValueByInstance_instance_3
|
|
154
185
|
self:setActualValue(
|
|
155
186
|
instance,
|
|
156
187
|
self:calculateActualValue(instance)
|
|
@@ -196,22 +227,22 @@ function ObjectField.prototype.getActualValue(self, instance)
|
|
|
196
227
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
197
228
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
198
229
|
if defaultValue ~= nil or self.isGlobal then
|
|
199
|
-
local
|
|
200
|
-
if
|
|
201
|
-
|
|
230
|
+
local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
|
|
231
|
+
if ____self_valueByInstance_instance_6 == nil then
|
|
232
|
+
____self_valueByInstance_instance_6 = defaultValue
|
|
202
233
|
end
|
|
203
|
-
local
|
|
204
|
-
if
|
|
205
|
-
|
|
234
|
+
local ____self_valueByInstance_instance_6_7 = ____self_valueByInstance_instance_6
|
|
235
|
+
if ____self_valueByInstance_instance_6_7 == nil then
|
|
236
|
+
____self_valueByInstance_instance_6_7 = self.defaultValue
|
|
206
237
|
end
|
|
207
|
-
return
|
|
238
|
+
return ____self_valueByInstance_instance_6_7
|
|
208
239
|
end
|
|
209
240
|
end
|
|
210
|
-
local
|
|
211
|
-
if
|
|
212
|
-
|
|
241
|
+
local ____temp_8 = self:getNativeFieldValue(instance)
|
|
242
|
+
if ____temp_8 == nil then
|
|
243
|
+
____temp_8 = self.defaultValue
|
|
213
244
|
end
|
|
214
|
-
return
|
|
245
|
+
return ____temp_8
|
|
215
246
|
end
|
|
216
247
|
function ObjectField.prototype.setActualValue(self, instance, value)
|
|
217
248
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
@@ -219,39 +250,33 @@ function ObjectField.prototype.setActualValue(self, instance, value)
|
|
|
219
250
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
220
251
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
221
252
|
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
|
|
253
|
+
local ____self_valueByInstance_instance_9 = self.valueByInstance[instance]
|
|
254
|
+
if ____self_valueByInstance_instance_9 == nil then
|
|
255
|
+
____self_valueByInstance_instance_9 = defaultValue
|
|
229
256
|
end
|
|
230
|
-
local
|
|
231
|
-
if
|
|
232
|
-
|
|
233
|
-
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
257
|
+
local ____self_valueByInstance_instance_9_10 = ____self_valueByInstance_instance_9
|
|
258
|
+
if ____self_valueByInstance_instance_9_10 == nil then
|
|
259
|
+
____self_valueByInstance_instance_9_10 = self.defaultValue
|
|
234
260
|
end
|
|
235
|
-
|
|
261
|
+
local previousValue = ____self_valueByInstance_instance_9_10
|
|
262
|
+
self.valueByInstance[instance] = value
|
|
263
|
+
return previousValue
|
|
236
264
|
end
|
|
237
265
|
end
|
|
238
266
|
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
239
|
-
return
|
|
267
|
+
return nil
|
|
240
268
|
end
|
|
241
269
|
local previousValue = self:getNativeFieldValue(instance)
|
|
242
|
-
if value ~= previousValue then
|
|
243
|
-
|
|
244
|
-
return false
|
|
245
|
-
end
|
|
246
|
-
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
270
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
|
|
271
|
+
return nil
|
|
247
272
|
end
|
|
248
|
-
return
|
|
273
|
+
return previousValue
|
|
249
274
|
end
|
|
250
275
|
function ObjectField.prototype.calculateActualValue(self, instance)
|
|
251
|
-
local
|
|
252
|
-
local originalValue =
|
|
253
|
-
local
|
|
254
|
-
local modifiers =
|
|
276
|
+
local ____opt_11 = self.originalValueByInstance
|
|
277
|
+
local originalValue = ____opt_11 and ____opt_11[instance]
|
|
278
|
+
local ____opt_13 = self.modifiersByInstance
|
|
279
|
+
local modifiers = ____opt_13 and ____opt_13[instance]
|
|
255
280
|
if originalValue ~= nil then
|
|
256
281
|
local value = originalValue
|
|
257
282
|
if modifiers ~= nil then
|
|
@@ -316,17 +341,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
316
341
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
317
342
|
local value = defaultValueByObjectDataEntryId[entry.id]
|
|
318
343
|
if value ~= nil then
|
|
319
|
-
local
|
|
344
|
+
local ____temp_16
|
|
320
345
|
if index == nil then
|
|
321
|
-
|
|
346
|
+
____temp_16 = value
|
|
322
347
|
else
|
|
323
|
-
local
|
|
324
|
-
if
|
|
325
|
-
|
|
348
|
+
local ____value_index_15 = value[index + 1]
|
|
349
|
+
if ____value_index_15 == nil then
|
|
350
|
+
____value_index_15 = self.defaultValue
|
|
326
351
|
end
|
|
327
|
-
|
|
352
|
+
____temp_16 = ____value_index_15
|
|
328
353
|
end
|
|
329
|
-
return
|
|
354
|
+
return ____temp_16
|
|
330
355
|
end
|
|
331
356
|
end
|
|
332
357
|
return index == nil and ({}) or self.defaultValue
|
|
@@ -336,17 +361,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
336
361
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
|
|
337
362
|
if defaultValue ~= nil or self.isGlobal then
|
|
338
363
|
local value = self.valueByInstance[entry] or defaultValue or emptyArray()
|
|
339
|
-
local
|
|
364
|
+
local ____temp_18
|
|
340
365
|
if index == nil then
|
|
341
|
-
|
|
366
|
+
____temp_18 = value
|
|
342
367
|
else
|
|
343
|
-
local
|
|
344
|
-
if
|
|
345
|
-
|
|
368
|
+
local ____value_index_17 = value[index + 1]
|
|
369
|
+
if ____value_index_17 == nil then
|
|
370
|
+
____value_index_17 = self.defaultValue
|
|
346
371
|
end
|
|
347
|
-
|
|
372
|
+
____temp_18 = ____value_index_17
|
|
348
373
|
end
|
|
349
|
-
return
|
|
374
|
+
return ____temp_18
|
|
350
375
|
end
|
|
351
376
|
end
|
|
352
377
|
if index ~= nil then
|
|
@@ -391,36 +416,22 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
|
391
416
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
392
417
|
local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
|
|
393
418
|
if valueByLevel ~= nil then
|
|
394
|
-
local
|
|
395
|
-
if
|
|
396
|
-
|
|
419
|
+
local ____valueByLevel_index_19 = valueByLevel[level + 1]
|
|
420
|
+
if ____valueByLevel_index_19 == nil then
|
|
421
|
+
____valueByLevel_index_19 = self.defaultValue
|
|
397
422
|
end
|
|
398
|
-
return
|
|
423
|
+
return ____valueByLevel_index_19
|
|
399
424
|
end
|
|
400
425
|
end
|
|
401
426
|
return self.defaultValue
|
|
402
427
|
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
|
|
428
|
+
local ____opt_22 = self.originalValueByLevelByInstance
|
|
429
|
+
local ____opt_20 = ____opt_22 and ____opt_22[entry]
|
|
430
|
+
local originalValue = ____opt_20 and ____opt_20[level]
|
|
431
|
+
if originalValue ~= nil then
|
|
432
|
+
return originalValue
|
|
422
433
|
end
|
|
423
|
-
return
|
|
434
|
+
return self:getActualValue(entry, level)
|
|
424
435
|
end
|
|
425
436
|
function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
426
437
|
if value == nil then
|
|
@@ -460,56 +471,93 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
460
471
|
valueByLevel[level + 1] = value
|
|
461
472
|
return true
|
|
462
473
|
end
|
|
463
|
-
local
|
|
464
|
-
local
|
|
465
|
-
if
|
|
466
|
-
local
|
|
467
|
-
if
|
|
468
|
-
local
|
|
469
|
-
if
|
|
470
|
-
|
|
471
|
-
self.
|
|
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]
|
|
476
|
-
end
|
|
477
|
-
local ____valueByLevel_index_19_20 = ____valueByLevel_index_19
|
|
478
|
-
if ____valueByLevel_index_19_20 == nil then
|
|
479
|
-
____valueByLevel_index_19_20 = self.defaultValue
|
|
474
|
+
local previousOriginalValue
|
|
475
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
476
|
+
if modifiersByInstance ~= nil then
|
|
477
|
+
local modifiers = modifiersByInstance[entry]
|
|
478
|
+
if modifiers ~= nil and modifiers.size ~= 0 then
|
|
479
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
480
|
+
if originalValueByLevelByInstance == nil then
|
|
481
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
482
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
480
483
|
end
|
|
481
|
-
local
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
entry,
|
|
486
|
-
self,
|
|
487
|
-
level,
|
|
488
|
-
previousValue,
|
|
489
|
-
value
|
|
490
|
-
)
|
|
484
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
485
|
+
previousOriginalValue = originalValueByLevel[level]
|
|
486
|
+
if value == previousOriginalValue then
|
|
487
|
+
return true
|
|
491
488
|
end
|
|
492
|
-
|
|
489
|
+
originalValueByLevel[level] = value
|
|
490
|
+
value = self:calculateActualValue(entry, level)
|
|
493
491
|
end
|
|
494
492
|
end
|
|
495
|
-
|
|
493
|
+
local previousValue = self:setActualValue(entry, level, value)
|
|
494
|
+
if previousValue == nil then
|
|
496
495
|
return false
|
|
497
496
|
end
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
497
|
+
if previousOriginalValue ~= nil or value ~= previousValue then
|
|
498
|
+
local ____self_invokeValueChangeEvent_26 = self.invokeValueChangeEvent
|
|
499
|
+
local ____entry_25 = entry
|
|
500
|
+
local ____previousOriginalValue_24 = previousOriginalValue
|
|
501
|
+
if ____previousOriginalValue_24 == nil then
|
|
502
|
+
____previousOriginalValue_24 = previousValue
|
|
502
503
|
end
|
|
503
|
-
|
|
504
|
-
|
|
504
|
+
____self_invokeValueChangeEvent_26(
|
|
505
|
+
self,
|
|
506
|
+
____entry_25,
|
|
505
507
|
self,
|
|
506
508
|
level,
|
|
507
|
-
|
|
509
|
+
____previousOriginalValue_24,
|
|
508
510
|
value
|
|
509
511
|
)
|
|
510
512
|
end
|
|
511
513
|
return true
|
|
512
514
|
end
|
|
515
|
+
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
516
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
517
|
+
if modifiersByInstance == nil then
|
|
518
|
+
modifiersByInstance = mutableWeakLuaMap()
|
|
519
|
+
self.modifiersByInstance = modifiersByInstance
|
|
520
|
+
end
|
|
521
|
+
if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
|
|
522
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
523
|
+
if originalValueByLevelByInstance == nil then
|
|
524
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
525
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
526
|
+
end
|
|
527
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
528
|
+
local levelCount = self:getLevelCount(instance)
|
|
529
|
+
for level = 0, levelCount - 1 do
|
|
530
|
+
local ____originalValueByLevel_level_27 = originalValueByLevel[level]
|
|
531
|
+
if ____originalValueByLevel_level_27 == nil then
|
|
532
|
+
____originalValueByLevel_level_27 = self:getActualValue(instance, level)
|
|
533
|
+
end
|
|
534
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_27
|
|
535
|
+
self:setActualValue(
|
|
536
|
+
instance,
|
|
537
|
+
level,
|
|
538
|
+
self:calculateActualValue(instance, level)
|
|
539
|
+
)
|
|
540
|
+
end
|
|
541
|
+
end
|
|
542
|
+
end
|
|
543
|
+
function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
|
|
544
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
545
|
+
if modifiersByInstance ~= nil then
|
|
546
|
+
local modifiers = modifiersByInstance[instance]
|
|
547
|
+
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
548
|
+
local levelCount = self:getLevelCount(instance)
|
|
549
|
+
for level = 0, levelCount - 1 do
|
|
550
|
+
self:setActualValue(
|
|
551
|
+
instance,
|
|
552
|
+
level,
|
|
553
|
+
self:calculateActualValue(instance, level)
|
|
554
|
+
)
|
|
555
|
+
end
|
|
556
|
+
return true
|
|
557
|
+
end
|
|
558
|
+
end
|
|
559
|
+
return false
|
|
560
|
+
end
|
|
513
561
|
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
514
562
|
if value ~= nil then
|
|
515
563
|
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
@@ -525,6 +573,79 @@ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value
|
|
|
525
573
|
end
|
|
526
574
|
return self:setValue(entry, levelOrValue)
|
|
527
575
|
end
|
|
576
|
+
function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
577
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
578
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
579
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
580
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
581
|
+
local ____opt_28 = self.valueByInstance[instance]
|
|
582
|
+
local ____temp_30 = ____opt_28 and ____opt_28[level + 1]
|
|
583
|
+
if ____temp_30 == nil then
|
|
584
|
+
____temp_30 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
585
|
+
end
|
|
586
|
+
local ____temp_30_31 = ____temp_30
|
|
587
|
+
if ____temp_30_31 == nil then
|
|
588
|
+
____temp_30_31 = self.defaultValue
|
|
589
|
+
end
|
|
590
|
+
return ____temp_30_31
|
|
591
|
+
end
|
|
592
|
+
end
|
|
593
|
+
local ____temp_32 = self:getNativeFieldValue(instance, level)
|
|
594
|
+
if ____temp_32 == nil then
|
|
595
|
+
____temp_32 = self.defaultValue
|
|
596
|
+
end
|
|
597
|
+
return ____temp_32
|
|
598
|
+
end
|
|
599
|
+
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
600
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
601
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
602
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
603
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
604
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
605
|
+
local valueByLevel = self.valueByInstance[instance]
|
|
606
|
+
if valueByLevel == nil then
|
|
607
|
+
valueByLevel = {}
|
|
608
|
+
self.valueByInstance[instance] = valueByLevel
|
|
609
|
+
end
|
|
610
|
+
local ____valueByLevel_index_33 = valueByLevel[level + 1]
|
|
611
|
+
if ____valueByLevel_index_33 == nil then
|
|
612
|
+
____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
613
|
+
end
|
|
614
|
+
local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
|
|
615
|
+
if ____valueByLevel_index_33_34 == nil then
|
|
616
|
+
____valueByLevel_index_33_34 = self.defaultValue
|
|
617
|
+
end
|
|
618
|
+
local previousValue = ____valueByLevel_index_33_34
|
|
619
|
+
valueByLevel[level + 1] = value
|
|
620
|
+
return previousValue
|
|
621
|
+
end
|
|
622
|
+
end
|
|
623
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
624
|
+
return nil
|
|
625
|
+
end
|
|
626
|
+
local previousValue = self:getNativeFieldValue(instance, level)
|
|
627
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
|
|
628
|
+
return nil
|
|
629
|
+
end
|
|
630
|
+
return previousValue
|
|
631
|
+
end
|
|
632
|
+
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
633
|
+
local ____opt_37 = self.originalValueByLevelByInstance
|
|
634
|
+
local ____opt_35 = ____opt_37 and ____opt_37[instance]
|
|
635
|
+
local originalValue = ____opt_35 and ____opt_35[level]
|
|
636
|
+
local ____opt_39 = self.modifiersByInstance
|
|
637
|
+
local modifiers = ____opt_39 and ____opt_39[instance]
|
|
638
|
+
if originalValue ~= nil then
|
|
639
|
+
local value = originalValue
|
|
640
|
+
if modifiers ~= nil then
|
|
641
|
+
for modifier in pairs(modifiers) do
|
|
642
|
+
value = modifier(instance, level, value, originalValue)
|
|
643
|
+
end
|
|
644
|
+
end
|
|
645
|
+
return value
|
|
646
|
+
end
|
|
647
|
+
return self.defaultValue
|
|
648
|
+
end
|
|
528
649
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
529
650
|
self:invokeValueChangeEventRecursive(
|
|
530
651
|
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,9 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { UnitClassificationsField, UnitPropulsionWindowField } from "../../object-field/unit";
|
|
2
|
+
import { UnitClassificationsField, UnitFloatField, UnitFlyHeightField, UnitHealthRegenerationTypeField, 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;
|
|
7
|
+
export declare const HEALTH_REGENERATION_RATE_UNIT_FLOAT_FIELD: UnitFloatField & symbol;
|
|
8
|
+
export declare const MANA_REGENERATION_RATE_UNIT_FLOAT_FIELD: UnitFloatField & symbol;
|
|
9
|
+
export declare const UNIT_HEALTH_REGENERATION_TYPE_FIELD: UnitHealthRegenerationTypeField & symbol;
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local ____unit = require("engine.object-field.unit")
|
|
3
3
|
local UnitClassificationsField = ____unit.UnitClassificationsField
|
|
4
|
+
local UnitFloatField = ____unit.UnitFloatField
|
|
5
|
+
local UnitFlyHeightField = ____unit.UnitFlyHeightField
|
|
6
|
+
local UnitHealthRegenerationTypeField = ____unit.UnitHealthRegenerationTypeField
|
|
4
7
|
local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
|
|
8
|
+
local UnitScalingValueField = ____unit.UnitScalingValueField
|
|
5
9
|
____exports.PROPULSION_WINDOW_UNIT_FLOAT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
|
|
6
10
|
____exports.UNIT_CLASSIFICATIONS_FIELD = UnitClassificationsField:create(fourCC("utyp"))
|
|
11
|
+
____exports.FLY_HEIGHT_UNIT_FLOAT_FIELD = UnitFlyHeightField:create(fourCC("ufyh"))
|
|
12
|
+
____exports.SCALING_VALUE_UNIT_FLOAT_FIELD = UnitScalingValueField:create(fourCC("usca"))
|
|
13
|
+
____exports.HEALTH_REGENERATION_RATE_UNIT_FLOAT_FIELD = UnitFloatField:create(fourCC("uhpr"))
|
|
14
|
+
____exports.MANA_REGENERATION_RATE_UNIT_FLOAT_FIELD = UnitFloatField:create(fourCC("umpr"))
|
|
15
|
+
____exports.UNIT_HEALTH_REGENERATION_TYPE_FIELD = UnitHealthRegenerationTypeField:create(fourCC("uhrt"))
|
|
7
16
|
return ____exports
|