warscript 0.0.1-dev.064c144 → 0.0.1-dev.072eba1
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/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/behavior.d.ts +4 -2
- package/engine/behavior.lua +69 -11
- package/engine/behaviour/ability/apply-buff.lua +4 -4
- package/engine/behaviour/ability.d.ts +4 -0
- package/engine/behaviour/ability.lua +29 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +1 -1
- package/engine/behaviour/unit/stun-immunity.lua +5 -4
- package/engine/behaviour/unit.lua +13 -3
- package/engine/buff.d.ts +7 -2
- package/engine/buff.lua +42 -24
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- 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/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +2 -0
- package/engine/internal/unit/bonus.lua +10 -0
- package/engine/internal/unit/fly-height.lua +3 -3
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +2 -8
- package/engine/internal/unit.lua +79 -97
- package/engine/local-client.d.ts +1 -1
- package/engine/local-client.lua +4 -4
- 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-field/unit.d.ts +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +2 -0
- package/engine/object-field.lua +171 -115
- package/engine/standard/fields/unit.d.ts +11 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/unit.d.ts +2 -0
- package/engine/unit.lua +2 -0
- package/objutil/buff.lua +9 -7
- package/package.json +2 -2
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +26 -0
- package/utility/linked-map.lua +66 -0
- package/utility/linked-set.lua +4 -0
- package/utility/records.lua +20 -1
|
@@ -11,6 +11,8 @@ local ____entry = require("engine.object-data.entry")
|
|
|
11
11
|
local ObjectDataEntry = ____entry.ObjectDataEntry
|
|
12
12
|
local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
|
|
13
13
|
local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
|
|
14
|
+
local ____reflection = require("utility.reflection")
|
|
15
|
+
local implementReadonlyNumberIndexSupplier = ____reflection.implementReadonlyNumberIndexSupplier
|
|
14
16
|
____exports.DestructibleType = __TS__Class()
|
|
15
17
|
local DestructibleType = ____exports.DestructibleType
|
|
16
18
|
DestructibleType.name = "DestructibleType"
|
|
@@ -25,6 +27,84 @@ DestructibleType.idGenerator = __TS__New(
|
|
|
25
27
|
ObjectDataEntryIdGenerator,
|
|
26
28
|
fourCC("D000")
|
|
27
29
|
)
|
|
30
|
+
__TS__SetDescriptor(
|
|
31
|
+
DestructibleType.prototype,
|
|
32
|
+
"fixedFacing",
|
|
33
|
+
{
|
|
34
|
+
get = function(self)
|
|
35
|
+
return self:getNumberField("bfxr")
|
|
36
|
+
end,
|
|
37
|
+
set = function(self, fixedFacing)
|
|
38
|
+
self:setNumberField("bfxr", fixedFacing)
|
|
39
|
+
end
|
|
40
|
+
},
|
|
41
|
+
true
|
|
42
|
+
)
|
|
43
|
+
__TS__SetDescriptor(
|
|
44
|
+
DestructibleType.prototype,
|
|
45
|
+
"flyOverHeight",
|
|
46
|
+
{
|
|
47
|
+
get = function(self)
|
|
48
|
+
return self:getNumberField("bflh")
|
|
49
|
+
end,
|
|
50
|
+
set = function(self, flyOverHeight)
|
|
51
|
+
self:setNumberField("bflh", flyOverHeight)
|
|
52
|
+
end
|
|
53
|
+
},
|
|
54
|
+
true
|
|
55
|
+
)
|
|
56
|
+
__TS__SetDescriptor(
|
|
57
|
+
DestructibleType.prototype,
|
|
58
|
+
"modelPath",
|
|
59
|
+
{
|
|
60
|
+
get = function(self)
|
|
61
|
+
return self:getStringField("bfil")
|
|
62
|
+
end,
|
|
63
|
+
set = function(self, modelPath)
|
|
64
|
+
self:setStringField("bfil", modelPath)
|
|
65
|
+
end
|
|
66
|
+
},
|
|
67
|
+
true
|
|
68
|
+
)
|
|
69
|
+
__TS__SetDescriptor(
|
|
70
|
+
DestructibleType.prototype,
|
|
71
|
+
"modelPathSD",
|
|
72
|
+
{
|
|
73
|
+
get = function(self)
|
|
74
|
+
return self:getStringField("bfil:sd")
|
|
75
|
+
end,
|
|
76
|
+
set = function(self, modelPathSD)
|
|
77
|
+
self:setStringField("bfil:sd", modelPathSD)
|
|
78
|
+
end
|
|
79
|
+
},
|
|
80
|
+
true
|
|
81
|
+
)
|
|
82
|
+
__TS__SetDescriptor(
|
|
83
|
+
DestructibleType.prototype,
|
|
84
|
+
"modelPathHD",
|
|
85
|
+
{
|
|
86
|
+
get = function(self)
|
|
87
|
+
return self:getStringField("bfil:hd")
|
|
88
|
+
end,
|
|
89
|
+
set = function(self, modelPathHD)
|
|
90
|
+
self:setStringField("bfil:hd", modelPathHD)
|
|
91
|
+
end
|
|
92
|
+
},
|
|
93
|
+
true
|
|
94
|
+
)
|
|
95
|
+
__TS__SetDescriptor(
|
|
96
|
+
DestructibleType.prototype,
|
|
97
|
+
"occlusionHeight",
|
|
98
|
+
{
|
|
99
|
+
get = function(self)
|
|
100
|
+
return self:getNumberField("boch")
|
|
101
|
+
end,
|
|
102
|
+
set = function(self, occlusionHeight)
|
|
103
|
+
self:setNumberField("boch", occlusionHeight)
|
|
104
|
+
end
|
|
105
|
+
},
|
|
106
|
+
true
|
|
107
|
+
)
|
|
28
108
|
__TS__SetDescriptor(
|
|
29
109
|
DestructibleType.prototype,
|
|
30
110
|
"armorSoundType",
|
|
@@ -80,4 +160,79 @@ __TS__SetDescriptor(
|
|
|
80
160
|
},
|
|
81
161
|
true
|
|
82
162
|
)
|
|
163
|
+
__TS__SetDescriptor(
|
|
164
|
+
DestructibleType.prototype,
|
|
165
|
+
"cliffHeight",
|
|
166
|
+
{
|
|
167
|
+
get = function(self)
|
|
168
|
+
return self:getNumberField("bclh")
|
|
169
|
+
end,
|
|
170
|
+
set = function(self, cliffHeight)
|
|
171
|
+
self:setNumberField("bclh", cliffHeight)
|
|
172
|
+
end
|
|
173
|
+
},
|
|
174
|
+
true
|
|
175
|
+
)
|
|
176
|
+
__TS__SetDescriptor(
|
|
177
|
+
DestructibleType.prototype,
|
|
178
|
+
"isWalkable",
|
|
179
|
+
{
|
|
180
|
+
get = function(self)
|
|
181
|
+
return self:getBooleanField("bwal")
|
|
182
|
+
end,
|
|
183
|
+
set = function(self, isWalkable)
|
|
184
|
+
self:setBooleanField("bwal", isWalkable)
|
|
185
|
+
end
|
|
186
|
+
},
|
|
187
|
+
true
|
|
188
|
+
)
|
|
189
|
+
__TS__SetDescriptor(
|
|
190
|
+
DestructibleType.prototype,
|
|
191
|
+
"pathingTexturePath",
|
|
192
|
+
{
|
|
193
|
+
get = function(self)
|
|
194
|
+
return self:getStringField("bptx")
|
|
195
|
+
end,
|
|
196
|
+
set = function(self, pathingTexturePath)
|
|
197
|
+
self:setStringField("bptx", pathingTexturePath)
|
|
198
|
+
end
|
|
199
|
+
},
|
|
200
|
+
true
|
|
201
|
+
)
|
|
202
|
+
__TS__SetDescriptor(
|
|
203
|
+
DestructibleType.prototype,
|
|
204
|
+
"deadPathingTexturePath",
|
|
205
|
+
{
|
|
206
|
+
get = function(self)
|
|
207
|
+
return self:getStringField("bptd")
|
|
208
|
+
end,
|
|
209
|
+
set = function(self, deadPathingTexturePath)
|
|
210
|
+
self:setStringField("bptd", deadPathingTexturePath)
|
|
211
|
+
end
|
|
212
|
+
},
|
|
213
|
+
true
|
|
214
|
+
)
|
|
215
|
+
__TS__SetDescriptor(
|
|
216
|
+
DestructibleType.prototype,
|
|
217
|
+
"name",
|
|
218
|
+
{
|
|
219
|
+
get = function(self)
|
|
220
|
+
return self:getStringField("bnam")
|
|
221
|
+
end,
|
|
222
|
+
set = function(self, name)
|
|
223
|
+
self:setStringField("bnam", name)
|
|
224
|
+
end
|
|
225
|
+
},
|
|
226
|
+
true
|
|
227
|
+
)
|
|
228
|
+
implementReadonlyNumberIndexSupplier(
|
|
229
|
+
____exports.DestructibleType,
|
|
230
|
+
function(id)
|
|
231
|
+
local ____class_0 = __TS__Class()
|
|
232
|
+
____class_0.name = ____class_0.name
|
|
233
|
+
__TS__ClassExtends(____class_0, ____exports.DestructibleType)
|
|
234
|
+
____class_0.BASE_ID = id
|
|
235
|
+
return ____class_0
|
|
236
|
+
end
|
|
237
|
+
)
|
|
83
238
|
return ____exports
|
|
@@ -5,6 +5,7 @@ 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";
|
|
7
7
|
import { UnitClassifications } from "../object-data/auxiliary/unit-classification";
|
|
8
|
+
import { HealthRegenerationType } from "../object-data/auxiliary/health-regeneration-type";
|
|
8
9
|
export declare abstract class UnitField<ValueType extends number | string | boolean = number | string | boolean, NativeFieldType = any> extends ObjectField<UnitType, Unit, ValueType, NativeFieldType> {
|
|
9
10
|
protected get instanceClass(): typeof Unit;
|
|
10
11
|
protected getObjectDataEntryId(instance: Unit): UnitTypeId;
|
|
@@ -25,11 +26,11 @@ export declare class UnitFloatField extends UnitField<number, junitrealfield> {
|
|
|
25
26
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
26
27
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitFloatField>>;
|
|
27
28
|
}
|
|
28
|
-
export declare class UnitIntegerField extends UnitField<
|
|
29
|
-
protected get defaultValue():
|
|
29
|
+
export declare class UnitIntegerField<T extends number = number> extends UnitField<T, junitintegerfield> {
|
|
30
|
+
protected get defaultValue(): T;
|
|
30
31
|
protected getNativeFieldById(id: number): junitintegerfield;
|
|
31
|
-
protected getNativeFieldValue(instance: Unit):
|
|
32
|
-
protected setNativeFieldValue(instance: Unit, value:
|
|
32
|
+
protected getNativeFieldValue(instance: Unit): T;
|
|
33
|
+
protected setNativeFieldValue(instance: Unit, value: T): boolean;
|
|
33
34
|
static get valueChangeEvent(): ObjectFieldValueChangeEvent<ReadonlyObjectFieldType<UnitIntegerField>>;
|
|
34
35
|
}
|
|
35
36
|
export declare class UnitStringField extends UnitField<string, junitstringfield> {
|
|
@@ -76,6 +77,8 @@ export declare class UnitPropulsionWindowField extends UnitFloatField {
|
|
|
76
77
|
protected getNativeFieldValue(instance: Unit): number;
|
|
77
78
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
78
79
|
}
|
|
80
|
+
export declare class UnitHealthRegenerationTypeField extends UnitIntegerField<HealthRegenerationType> {
|
|
81
|
+
}
|
|
79
82
|
export declare class UnitScalingValueField extends UnitFloatField {
|
|
80
83
|
protected setNativeFieldValue(instance: Unit, value: number): boolean;
|
|
81
84
|
}
|
|
@@ -298,6 +298,10 @@ function UnitPropulsionWindowField.prototype.setNativeFieldValue(self, instance,
|
|
|
298
298
|
setUnitPropulsionWindow(instance.handle, value)
|
|
299
299
|
return true
|
|
300
300
|
end
|
|
301
|
+
____exports.UnitHealthRegenerationTypeField = __TS__Class()
|
|
302
|
+
local UnitHealthRegenerationTypeField = ____exports.UnitHealthRegenerationTypeField
|
|
303
|
+
UnitHealthRegenerationTypeField.name = "UnitHealthRegenerationTypeField"
|
|
304
|
+
__TS__ClassExtends(UnitHealthRegenerationTypeField, ____exports.UnitIntegerField)
|
|
301
305
|
____exports.UnitScalingValueField = __TS__Class()
|
|
302
306
|
local UnitScalingValueField = ____exports.UnitScalingValueField
|
|
303
307
|
UnitScalingValueField.name = "UnitScalingValueField"
|
package/engine/object-field.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ export declare abstract class ObjectField<ObjectDataEntryType extends ObjectData
|
|
|
46
46
|
private modifiersByInstance?;
|
|
47
47
|
getValue(entry: ObjectDataEntryType | InstanceType, includeModifiers?: boolean): ValueType;
|
|
48
48
|
setValue(entry: ObjectDataEntryType | InstanceType, value: ValueType): boolean;
|
|
49
|
+
updateActualValue(instance: InstanceType): void;
|
|
49
50
|
applyModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): void;
|
|
50
51
|
removeModifier(instance: InstanceType, modifier: ObjectFieldModifier<InstanceType, ValueType>): boolean;
|
|
51
52
|
removeValue(entry: ObjectDataEntryType): boolean;
|
|
@@ -89,6 +90,7 @@ export declare abstract class ObjectLevelField<ObjectDataEntryType extends Objec
|
|
|
89
90
|
protected abstract getLevelCount(entry: ObjectDataEntryType | InstanceType): number;
|
|
90
91
|
getValue<LevelType extends [number] | []>(entry: ObjectDataEntryType | InstanceType, ...[level]: LevelType): LevelType extends [number] ? ValueType : ValueType[];
|
|
91
92
|
setValue(entry: ObjectDataEntryType | InstanceType, ...[levelOrValue, value]: [value: ObjectDataEntryLevelFieldValueSupplier<InputValueType, ValueType>] | [level: number, value: InputValueType]): boolean;
|
|
93
|
+
updateActualValue(instance: InstanceType, level?: number): void;
|
|
92
94
|
applyModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): void;
|
|
93
95
|
removeModifier(instance: InstanceType, modifier: ObjectLevelFieldModifier<InstanceType, ValueType>): boolean;
|
|
94
96
|
trySetValue(entry: ObjectDataEntryType | InstanceType, levelOrValue: number | unknown, value?: unknown): boolean;
|
package/engine/object-field.lua
CHANGED
|
@@ -124,6 +124,7 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
124
124
|
defaultValueByObjectDataEntryId[entry.id] = value
|
|
125
125
|
return true
|
|
126
126
|
end
|
|
127
|
+
local previousOriginalValue
|
|
127
128
|
local modifiersByInstance = self.modifiersByInstance
|
|
128
129
|
if modifiersByInstance ~= nil then
|
|
129
130
|
local modifiers = modifiersByInstance[entry]
|
|
@@ -133,11 +134,40 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
133
134
|
originalValueByInstance = mutableWeakLuaMap()
|
|
134
135
|
self.originalValueByInstance = originalValueByInstance
|
|
135
136
|
end
|
|
137
|
+
previousOriginalValue = originalValueByInstance[entry]
|
|
138
|
+
if value == previousOriginalValue then
|
|
139
|
+
return true
|
|
140
|
+
end
|
|
136
141
|
originalValueByInstance[entry] = value
|
|
137
|
-
value = self:calculateActualValue(entry)
|
|
142
|
+
value = (self:calculateActualValue(entry))
|
|
143
|
+
end
|
|
144
|
+
end
|
|
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
|
|
138
155
|
end
|
|
156
|
+
____self_invokeValueChangeEvent_2(
|
|
157
|
+
self,
|
|
158
|
+
____entry_1,
|
|
159
|
+
self,
|
|
160
|
+
____previousOriginalValue_0,
|
|
161
|
+
value
|
|
162
|
+
)
|
|
163
|
+
end
|
|
164
|
+
return true
|
|
165
|
+
end
|
|
166
|
+
function ObjectField.prototype.updateActualValue(self, instance)
|
|
167
|
+
local actualValue, hasModifiers = self:calculateActualValue(instance)
|
|
168
|
+
if hasModifiers then
|
|
169
|
+
self:setActualValue(instance, actualValue)
|
|
139
170
|
end
|
|
140
|
-
return self:setActualValue(entry, value)
|
|
141
171
|
end
|
|
142
172
|
function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
143
173
|
local modifiersByInstance = self.modifiersByInstance
|
|
@@ -151,17 +181,14 @@ function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
|
151
181
|
originalValueByInstance = mutableWeakLuaMap()
|
|
152
182
|
self.originalValueByInstance = originalValueByInstance
|
|
153
183
|
end
|
|
154
|
-
local
|
|
155
|
-
local
|
|
156
|
-
local
|
|
157
|
-
if
|
|
158
|
-
|
|
184
|
+
local ____originalValueByInstance_4 = originalValueByInstance
|
|
185
|
+
local ____instance_5 = instance
|
|
186
|
+
local ____originalValueByInstance_instance_3 = originalValueByInstance[instance]
|
|
187
|
+
if ____originalValueByInstance_instance_3 == nil then
|
|
188
|
+
____originalValueByInstance_instance_3 = self:getActualValue(instance)
|
|
159
189
|
end
|
|
160
|
-
|
|
161
|
-
self:setActualValue(
|
|
162
|
-
instance,
|
|
163
|
-
self:calculateActualValue(instance)
|
|
164
|
-
)
|
|
190
|
+
____originalValueByInstance_4[____instance_5] = ____originalValueByInstance_instance_3
|
|
191
|
+
self:setActualValue(instance, (self:calculateActualValue(instance)))
|
|
165
192
|
end
|
|
166
193
|
end
|
|
167
194
|
function ObjectField.prototype.removeModifier(self, instance, modifier)
|
|
@@ -169,10 +196,7 @@ function ObjectField.prototype.removeModifier(self, instance, modifier)
|
|
|
169
196
|
if modifiersByInstance ~= nil then
|
|
170
197
|
local modifiers = modifiersByInstance[instance]
|
|
171
198
|
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
172
|
-
self:setActualValue(
|
|
173
|
-
instance,
|
|
174
|
-
self:calculateActualValue(instance)
|
|
175
|
-
)
|
|
199
|
+
self:setActualValue(instance, (self:calculateActualValue(instance)))
|
|
176
200
|
return true
|
|
177
201
|
end
|
|
178
202
|
end
|
|
@@ -203,22 +227,22 @@ function ObjectField.prototype.getActualValue(self, instance)
|
|
|
203
227
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
204
228
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
205
229
|
if defaultValue ~= nil or self.isGlobal then
|
|
206
|
-
local
|
|
207
|
-
if
|
|
208
|
-
|
|
230
|
+
local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
|
|
231
|
+
if ____self_valueByInstance_instance_6 == nil then
|
|
232
|
+
____self_valueByInstance_instance_6 = defaultValue
|
|
209
233
|
end
|
|
210
|
-
local
|
|
211
|
-
if
|
|
212
|
-
|
|
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
|
|
213
237
|
end
|
|
214
|
-
return
|
|
238
|
+
return ____self_valueByInstance_instance_6_7
|
|
215
239
|
end
|
|
216
240
|
end
|
|
217
|
-
local
|
|
218
|
-
if
|
|
219
|
-
|
|
241
|
+
local ____temp_8 = self:getNativeFieldValue(instance)
|
|
242
|
+
if ____temp_8 == nil then
|
|
243
|
+
____temp_8 = self.defaultValue
|
|
220
244
|
end
|
|
221
|
-
return
|
|
245
|
+
return ____temp_8
|
|
222
246
|
end
|
|
223
247
|
function ObjectField.prototype.setActualValue(self, instance, value)
|
|
224
248
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
@@ -226,45 +250,44 @@ function ObjectField.prototype.setActualValue(self, instance, value)
|
|
|
226
250
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
227
251
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
228
252
|
if defaultValue ~= nil or self.isGlobal then
|
|
229
|
-
local
|
|
230
|
-
if
|
|
231
|
-
|
|
253
|
+
local ____self_valueByInstance_instance_9 = self.valueByInstance[instance]
|
|
254
|
+
if ____self_valueByInstance_instance_9 == nil then
|
|
255
|
+
____self_valueByInstance_instance_9 = defaultValue
|
|
232
256
|
end
|
|
233
|
-
local
|
|
234
|
-
if
|
|
235
|
-
|
|
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
|
|
236
260
|
end
|
|
237
|
-
local previousValue =
|
|
261
|
+
local previousValue = ____self_valueByInstance_instance_9_10
|
|
238
262
|
self.valueByInstance[instance] = value
|
|
239
|
-
|
|
240
|
-
return true
|
|
263
|
+
return previousValue
|
|
241
264
|
end
|
|
242
265
|
end
|
|
243
266
|
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
244
|
-
return
|
|
267
|
+
return nil
|
|
245
268
|
end
|
|
246
269
|
local previousValue = self:getNativeFieldValue(instance)
|
|
247
270
|
if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
|
|
248
|
-
return
|
|
271
|
+
return nil
|
|
249
272
|
end
|
|
250
|
-
|
|
251
|
-
return true
|
|
273
|
+
return previousValue
|
|
252
274
|
end
|
|
253
275
|
function ObjectField.prototype.calculateActualValue(self, instance)
|
|
254
|
-
local
|
|
255
|
-
local originalValue =
|
|
256
|
-
local
|
|
257
|
-
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]
|
|
258
280
|
if originalValue ~= nil then
|
|
259
281
|
local value = originalValue
|
|
260
282
|
if modifiers ~= nil then
|
|
261
283
|
for modifier in pairs(modifiers) do
|
|
262
284
|
value = modifier(instance, value, originalValue)
|
|
263
285
|
end
|
|
286
|
+
return value, true
|
|
264
287
|
end
|
|
265
|
-
return value
|
|
288
|
+
return value, false
|
|
266
289
|
end
|
|
267
|
-
return self.defaultValue
|
|
290
|
+
return self.defaultValue, false
|
|
268
291
|
end
|
|
269
292
|
function ObjectField.prototype.invokeValueChangeEvent(self, ...)
|
|
270
293
|
self:invokeValueChangeEventRecursive(
|
|
@@ -319,17 +342,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
319
342
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
320
343
|
local value = defaultValueByObjectDataEntryId[entry.id]
|
|
321
344
|
if value ~= nil then
|
|
322
|
-
local
|
|
345
|
+
local ____temp_16
|
|
323
346
|
if index == nil then
|
|
324
|
-
|
|
347
|
+
____temp_16 = value
|
|
325
348
|
else
|
|
326
|
-
local
|
|
327
|
-
if
|
|
328
|
-
|
|
349
|
+
local ____value_index_15 = value[index + 1]
|
|
350
|
+
if ____value_index_15 == nil then
|
|
351
|
+
____value_index_15 = self.defaultValue
|
|
329
352
|
end
|
|
330
|
-
|
|
353
|
+
____temp_16 = ____value_index_15
|
|
331
354
|
end
|
|
332
|
-
return
|
|
355
|
+
return ____temp_16
|
|
333
356
|
end
|
|
334
357
|
end
|
|
335
358
|
return index == nil and ({}) or self.defaultValue
|
|
@@ -339,17 +362,17 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
339
362
|
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
|
|
340
363
|
if defaultValue ~= nil or self.isGlobal then
|
|
341
364
|
local value = self.valueByInstance[entry] or defaultValue or emptyArray()
|
|
342
|
-
local
|
|
365
|
+
local ____temp_18
|
|
343
366
|
if index == nil then
|
|
344
|
-
|
|
367
|
+
____temp_18 = value
|
|
345
368
|
else
|
|
346
|
-
local
|
|
347
|
-
if
|
|
348
|
-
|
|
369
|
+
local ____value_index_17 = value[index + 1]
|
|
370
|
+
if ____value_index_17 == nil then
|
|
371
|
+
____value_index_17 = self.defaultValue
|
|
349
372
|
end
|
|
350
|
-
|
|
373
|
+
____temp_18 = ____value_index_17
|
|
351
374
|
end
|
|
352
|
-
return
|
|
375
|
+
return ____temp_18
|
|
353
376
|
end
|
|
354
377
|
end
|
|
355
378
|
if index ~= nil then
|
|
@@ -394,18 +417,18 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
|
394
417
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
395
418
|
local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
|
|
396
419
|
if valueByLevel ~= nil then
|
|
397
|
-
local
|
|
398
|
-
if
|
|
399
|
-
|
|
420
|
+
local ____valueByLevel_index_19 = valueByLevel[level + 1]
|
|
421
|
+
if ____valueByLevel_index_19 == nil then
|
|
422
|
+
____valueByLevel_index_19 = self.defaultValue
|
|
400
423
|
end
|
|
401
|
-
return
|
|
424
|
+
return ____valueByLevel_index_19
|
|
402
425
|
end
|
|
403
426
|
end
|
|
404
427
|
return self.defaultValue
|
|
405
428
|
end
|
|
406
|
-
local
|
|
407
|
-
local
|
|
408
|
-
local originalValue =
|
|
429
|
+
local ____opt_22 = self.originalValueByLevelByInstance
|
|
430
|
+
local ____opt_20 = ____opt_22 and ____opt_22[entry]
|
|
431
|
+
local originalValue = ____opt_20 and ____opt_20[level]
|
|
409
432
|
if originalValue ~= nil then
|
|
410
433
|
return originalValue
|
|
411
434
|
end
|
|
@@ -449,6 +472,7 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
449
472
|
valueByLevel[level + 1] = value
|
|
450
473
|
return true
|
|
451
474
|
end
|
|
475
|
+
local previousOriginalValue
|
|
452
476
|
local modifiersByInstance = self.modifiersByInstance
|
|
453
477
|
if modifiersByInstance ~= nil then
|
|
454
478
|
local modifiers = modifiersByInstance[entry]
|
|
@@ -458,11 +482,57 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
458
482
|
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
459
483
|
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
460
484
|
end
|
|
461
|
-
getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
485
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
486
|
+
previousOriginalValue = originalValueByLevel[level]
|
|
487
|
+
if value == previousOriginalValue then
|
|
488
|
+
return true
|
|
489
|
+
end
|
|
490
|
+
originalValueByLevel[level] = value
|
|
462
491
|
value = self:calculateActualValue(entry, level)
|
|
463
492
|
end
|
|
464
493
|
end
|
|
465
|
-
|
|
494
|
+
local previousValue = self:setActualValue(entry, level, value)
|
|
495
|
+
if previousValue == nil then
|
|
496
|
+
return false
|
|
497
|
+
end
|
|
498
|
+
if previousOriginalValue ~= nil or value ~= previousValue then
|
|
499
|
+
local ____self_invokeValueChangeEvent_26 = self.invokeValueChangeEvent
|
|
500
|
+
local ____entry_25 = entry
|
|
501
|
+
local ____previousOriginalValue_24 = previousOriginalValue
|
|
502
|
+
if ____previousOriginalValue_24 == nil then
|
|
503
|
+
____previousOriginalValue_24 = previousValue
|
|
504
|
+
end
|
|
505
|
+
____self_invokeValueChangeEvent_26(
|
|
506
|
+
self,
|
|
507
|
+
____entry_25,
|
|
508
|
+
self,
|
|
509
|
+
level,
|
|
510
|
+
____previousOriginalValue_24,
|
|
511
|
+
value
|
|
512
|
+
)
|
|
513
|
+
end
|
|
514
|
+
return true
|
|
515
|
+
end
|
|
516
|
+
function ObjectLevelField.prototype.updateActualValue(self, instance, level)
|
|
517
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
518
|
+
if modifiersByInstance == nil then
|
|
519
|
+
return
|
|
520
|
+
end
|
|
521
|
+
local modifiers = modifiersByInstance[instance]
|
|
522
|
+
if modifiers == nil or modifiers.size == 0 then
|
|
523
|
+
return
|
|
524
|
+
end
|
|
525
|
+
if level == nil then
|
|
526
|
+
for i = 0, self:getLevelCount(instance) - 1 do
|
|
527
|
+
self:updateActualValue(instance, i)
|
|
528
|
+
end
|
|
529
|
+
return
|
|
530
|
+
end
|
|
531
|
+
self:setActualValue(
|
|
532
|
+
instance,
|
|
533
|
+
level,
|
|
534
|
+
self:calculateActualValue(instance, level)
|
|
535
|
+
)
|
|
466
536
|
end
|
|
467
537
|
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
468
538
|
local modifiersByInstance = self.modifiersByInstance
|
|
@@ -479,11 +549,11 @@ function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
|
479
549
|
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
480
550
|
local levelCount = self:getLevelCount(instance)
|
|
481
551
|
for level = 0, levelCount - 1 do
|
|
482
|
-
local
|
|
483
|
-
if
|
|
484
|
-
|
|
552
|
+
local ____originalValueByLevel_level_27 = originalValueByLevel[level]
|
|
553
|
+
if ____originalValueByLevel_level_27 == nil then
|
|
554
|
+
____originalValueByLevel_level_27 = self:getActualValue(instance, level)
|
|
485
555
|
end
|
|
486
|
-
originalValueByLevel[level] =
|
|
556
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_27
|
|
487
557
|
self:setActualValue(
|
|
488
558
|
instance,
|
|
489
559
|
level,
|
|
@@ -530,23 +600,23 @@ function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
|
530
600
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
531
601
|
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
532
602
|
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
533
|
-
local
|
|
534
|
-
local
|
|
535
|
-
if
|
|
536
|
-
|
|
603
|
+
local ____opt_28 = self.valueByInstance[instance]
|
|
604
|
+
local ____temp_30 = ____opt_28 and ____opt_28[level + 1]
|
|
605
|
+
if ____temp_30 == nil then
|
|
606
|
+
____temp_30 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
537
607
|
end
|
|
538
|
-
local
|
|
539
|
-
if
|
|
540
|
-
|
|
608
|
+
local ____temp_30_31 = ____temp_30
|
|
609
|
+
if ____temp_30_31 == nil then
|
|
610
|
+
____temp_30_31 = self.defaultValue
|
|
541
611
|
end
|
|
542
|
-
return
|
|
612
|
+
return ____temp_30_31
|
|
543
613
|
end
|
|
544
614
|
end
|
|
545
|
-
local
|
|
546
|
-
if
|
|
547
|
-
|
|
615
|
+
local ____temp_32 = self:getNativeFieldValue(instance, level)
|
|
616
|
+
if ____temp_32 == nil then
|
|
617
|
+
____temp_32 = self.defaultValue
|
|
548
618
|
end
|
|
549
|
-
return
|
|
619
|
+
return ____temp_32
|
|
550
620
|
end
|
|
551
621
|
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
552
622
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
@@ -559,48 +629,34 @@ function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
|
559
629
|
valueByLevel = {}
|
|
560
630
|
self.valueByInstance[instance] = valueByLevel
|
|
561
631
|
end
|
|
562
|
-
local
|
|
563
|
-
if
|
|
564
|
-
|
|
632
|
+
local ____valueByLevel_index_33 = valueByLevel[level + 1]
|
|
633
|
+
if ____valueByLevel_index_33 == nil then
|
|
634
|
+
____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
565
635
|
end
|
|
566
|
-
local
|
|
567
|
-
if
|
|
568
|
-
|
|
636
|
+
local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
|
|
637
|
+
if ____valueByLevel_index_33_34 == nil then
|
|
638
|
+
____valueByLevel_index_33_34 = self.defaultValue
|
|
569
639
|
end
|
|
570
|
-
local previousValue =
|
|
640
|
+
local previousValue = ____valueByLevel_index_33_34
|
|
571
641
|
valueByLevel[level + 1] = value
|
|
572
|
-
|
|
573
|
-
instance,
|
|
574
|
-
self,
|
|
575
|
-
level,
|
|
576
|
-
previousValue,
|
|
577
|
-
value
|
|
578
|
-
)
|
|
579
|
-
return true
|
|
642
|
+
return previousValue
|
|
580
643
|
end
|
|
581
644
|
end
|
|
582
645
|
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
583
|
-
return
|
|
646
|
+
return nil
|
|
584
647
|
end
|
|
585
648
|
local previousValue = self:getNativeFieldValue(instance, level)
|
|
586
649
|
if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
|
|
587
|
-
return
|
|
650
|
+
return nil
|
|
588
651
|
end
|
|
589
|
-
|
|
590
|
-
instance,
|
|
591
|
-
self,
|
|
592
|
-
level,
|
|
593
|
-
previousValue,
|
|
594
|
-
value
|
|
595
|
-
)
|
|
596
|
-
return true
|
|
652
|
+
return previousValue
|
|
597
653
|
end
|
|
598
654
|
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
599
|
-
local
|
|
600
|
-
local
|
|
601
|
-
local originalValue =
|
|
602
|
-
local
|
|
603
|
-
local modifiers =
|
|
655
|
+
local ____opt_37 = self.originalValueByLevelByInstance
|
|
656
|
+
local ____opt_35 = ____opt_37 and ____opt_37[instance]
|
|
657
|
+
local originalValue = ____opt_35 and ____opt_35[level]
|
|
658
|
+
local ____opt_39 = self.modifiersByInstance
|
|
659
|
+
local modifiers = ____opt_39 and ____opt_39[instance]
|
|
604
660
|
if originalValue ~= nil then
|
|
605
661
|
local value = originalValue
|
|
606
662
|
if modifiers ~= nil then
|