warscript 0.0.1-dev.87b6c38 → 0.0.1-dev.8895725
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/types/frame.lua +47 -1
- package/core/types/handle.lua +6 -9
- package/core/types/item.d.ts +1 -0
- package/core/types/item.lua +1 -0
- package/core/types/player.d.ts +1 -1
- package/core/types/player.lua +12 -11
- package/core/types/sound.lua +1 -1
- 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/damage.d.ts +3 -0
- package/engine/behaviour/ability/damage.lua +8 -2
- package/engine/behaviour/ability/emulate-impact.lua +5 -4
- package/engine/behaviour/ability.d.ts +9 -5
- 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 +56 -19
- package/engine/buff.lua +283 -142
- package/engine/internal/ability.lua +15 -15
- package/engine/internal/item/fields.d.ts +12 -0
- package/engine/internal/item/fields.lua +33 -0
- package/engine/internal/item.d.ts +4 -5
- package/engine/internal/item.lua +37 -40
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/object-data/attribute-bonus.lua +2 -2
- package/engine/internal/object-data/health-bonus.d.ts +2 -0
- package/engine/internal/object-data/health-bonus.lua +16 -0
- package/engine/internal/object-data/mana-bonus.d.ts +2 -0
- package/engine/internal/object-data/mana-bonus.lua +16 -0
- 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 +6 -0
- package/engine/internal/unit/bonus.lua +33 -3
- 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/range-event.d.ts +12 -0
- package/engine/internal/unit/range-event.lua +90 -0
- package/engine/internal/unit/scale.lua +3 -3
- package/engine/internal/unit+bonus.lua +3 -3
- package/engine/internal/unit-missile-launch.lua +12 -5
- package/engine/internal/unit.d.ts +2 -9
- package/engine/internal/unit.lua +79 -121
- package/engine/local-client.d.ts +6 -1
- package/engine/local-client.lua +60 -5
- 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/auxiliary/unit-attribute.lua +1 -1
- package/engine/object-data/entry/ability-type/{armor-increase.d.ts → armor-bonus.d.ts} +3 -3
- package/engine/object-data/entry/ability-type/{armor-increase.lua → armor-bonus.lua} +9 -9
- package/engine/object-data/entry/ability-type/health-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/health-bonus.lua +26 -0
- package/engine/object-data/entry/ability-type/mana-bonus.d.ts +8 -0
- package/engine/object-data/entry/ability-type/mana-bonus.lua +26 -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/ability-type/reincarnation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/reincarnation.lua +26 -0
- package/engine/object-data/entry/ability-type.d.ts +2 -0
- package/engine/object-data/entry/ability-type.lua +84 -4
- package/engine/object-data/entry/buff-type/applicable.lua +113 -109
- package/engine/object-data/entry/destructible-type.d.ts +12 -0
- package/engine/object-data/entry/destructible-type.lua +78 -0
- package/engine/object-field/ability.lua +2 -2
- package/engine/object-field/item.d.ts +22 -0
- package/engine/object-field/item.lua +118 -0
- package/engine/object-field/unit.d.ts +7 -4
- package/engine/object-field/unit.lua +4 -0
- package/engine/object-field.d.ts +3 -1
- package/engine/object-field.lua +177 -119
- package/engine/random.d.ts +1 -0
- package/engine/random.lua +8 -0
- package/engine/standard/fields/item.d.ts +4 -0
- package/engine/standard/fields/item.lua +6 -0
- package/engine/standard/fields/unit.d.ts +11 -5
- package/engine/standard/fields/unit.lua +13 -4
- package/engine/unit.d.ts +3 -0
- package/engine/unit.lua +3 -0
- package/lualib_bundle.lua +1 -1
- package/math.d.ts +2 -0
- package/math.lua +14 -0
- package/objutil/buff.lua +9 -7
- package/objutil/object.lua +1 -1
- package/operation.lua +1 -4
- package/package.json +5 -5
- package/patch-lua.lua +15 -0
- package/utility/linked-map.d.ts +35 -0
- package/utility/linked-map.lua +107 -0
- package/utility/linked-set.d.ts +3 -1
- package/utility/linked-set.lua +27 -0
- package/utility/records.lua +20 -1
- package/utility/unordered-map.d.ts +27 -0
- package/utility/unordered-map.lua +99 -0
- /package/engine/internal/object-data/{armor-increase.d.ts → armor-bonus.d.ts} +0 -0
- /package/engine/internal/object-data/{armor-increase.lua → armor-bonus.lua} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.d.ts → attribute-bonus.d.ts} +0 -0
- /package/engine/object-data/entry/ability-type/{attribute-increase.lua → attribute-bonus.lua} +0 -0
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
|
|
@@ -380,12 +403,12 @@ ____exports.ObjectLevelField = __TS__Class()
|
|
|
380
403
|
local ObjectLevelField = ____exports.ObjectLevelField
|
|
381
404
|
ObjectLevelField.name = "ObjectLevelField"
|
|
382
405
|
__TS__ClassExtends(ObjectLevelField, ObjectFieldBase)
|
|
383
|
-
function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
406
|
+
function ObjectLevelField.prototype.getValue(self, entry, level, includeModifiers)
|
|
384
407
|
if level == nil then
|
|
385
408
|
local result = {}
|
|
386
409
|
local levelCount = self:getLevelCount(entry)
|
|
387
410
|
for i = 0, levelCount - 1 do
|
|
388
|
-
result[i + 1] = self:getValue(entry, i)
|
|
411
|
+
result[i + 1] = self:getValue(entry, i, includeModifiers)
|
|
389
412
|
end
|
|
390
413
|
return result
|
|
391
414
|
end
|
|
@@ -394,20 +417,22 @@ 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
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
429
|
+
if not includeModifiers then
|
|
430
|
+
local ____opt_22 = self.originalValueByLevelByInstance
|
|
431
|
+
local ____opt_20 = ____opt_22 and ____opt_22[entry]
|
|
432
|
+
local originalValue = ____opt_20 and ____opt_20[level]
|
|
433
|
+
if originalValue ~= nil then
|
|
434
|
+
return originalValue
|
|
435
|
+
end
|
|
411
436
|
end
|
|
412
437
|
return self:getActualValue(entry, level)
|
|
413
438
|
end
|
|
@@ -449,6 +474,7 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
449
474
|
valueByLevel[level + 1] = value
|
|
450
475
|
return true
|
|
451
476
|
end
|
|
477
|
+
local previousOriginalValue
|
|
452
478
|
local modifiersByInstance = self.modifiersByInstance
|
|
453
479
|
if modifiersByInstance ~= nil then
|
|
454
480
|
local modifiers = modifiersByInstance[entry]
|
|
@@ -458,11 +484,57 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
458
484
|
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
459
485
|
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
460
486
|
end
|
|
461
|
-
getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
487
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
488
|
+
previousOriginalValue = originalValueByLevel[level]
|
|
489
|
+
if value == previousOriginalValue then
|
|
490
|
+
return true
|
|
491
|
+
end
|
|
492
|
+
originalValueByLevel[level] = value
|
|
462
493
|
value = self:calculateActualValue(entry, level)
|
|
463
494
|
end
|
|
464
495
|
end
|
|
465
|
-
|
|
496
|
+
local previousValue = self:setActualValue(entry, level, value)
|
|
497
|
+
if previousValue == nil then
|
|
498
|
+
return false
|
|
499
|
+
end
|
|
500
|
+
if previousOriginalValue ~= nil or value ~= previousValue then
|
|
501
|
+
local ____self_invokeValueChangeEvent_26 = self.invokeValueChangeEvent
|
|
502
|
+
local ____entry_25 = entry
|
|
503
|
+
local ____previousOriginalValue_24 = previousOriginalValue
|
|
504
|
+
if ____previousOriginalValue_24 == nil then
|
|
505
|
+
____previousOriginalValue_24 = previousValue
|
|
506
|
+
end
|
|
507
|
+
____self_invokeValueChangeEvent_26(
|
|
508
|
+
self,
|
|
509
|
+
____entry_25,
|
|
510
|
+
self,
|
|
511
|
+
level,
|
|
512
|
+
____previousOriginalValue_24,
|
|
513
|
+
value
|
|
514
|
+
)
|
|
515
|
+
end
|
|
516
|
+
return true
|
|
517
|
+
end
|
|
518
|
+
function ObjectLevelField.prototype.updateActualValue(self, instance, level)
|
|
519
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
520
|
+
if modifiersByInstance == nil then
|
|
521
|
+
return
|
|
522
|
+
end
|
|
523
|
+
local modifiers = modifiersByInstance[instance]
|
|
524
|
+
if modifiers == nil or modifiers.size == 0 then
|
|
525
|
+
return
|
|
526
|
+
end
|
|
527
|
+
if level == nil then
|
|
528
|
+
for i = 0, self:getLevelCount(instance) - 1 do
|
|
529
|
+
self:updateActualValue(instance, i)
|
|
530
|
+
end
|
|
531
|
+
return
|
|
532
|
+
end
|
|
533
|
+
self:setActualValue(
|
|
534
|
+
instance,
|
|
535
|
+
level,
|
|
536
|
+
self:calculateActualValue(instance, level)
|
|
537
|
+
)
|
|
466
538
|
end
|
|
467
539
|
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
468
540
|
local modifiersByInstance = self.modifiersByInstance
|
|
@@ -479,11 +551,11 @@ function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
|
479
551
|
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
480
552
|
local levelCount = self:getLevelCount(instance)
|
|
481
553
|
for level = 0, levelCount - 1 do
|
|
482
|
-
local
|
|
483
|
-
if
|
|
484
|
-
|
|
554
|
+
local ____originalValueByLevel_level_27 = originalValueByLevel[level]
|
|
555
|
+
if ____originalValueByLevel_level_27 == nil then
|
|
556
|
+
____originalValueByLevel_level_27 = self:getActualValue(instance, level)
|
|
485
557
|
end
|
|
486
|
-
originalValueByLevel[level] =
|
|
558
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_27
|
|
487
559
|
self:setActualValue(
|
|
488
560
|
instance,
|
|
489
561
|
level,
|
|
@@ -530,23 +602,23 @@ function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
|
530
602
|
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
531
603
|
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
532
604
|
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
533
|
-
local
|
|
534
|
-
local
|
|
535
|
-
if
|
|
536
|
-
|
|
605
|
+
local ____opt_28 = self.valueByInstance[instance]
|
|
606
|
+
local ____temp_30 = ____opt_28 and ____opt_28[level + 1]
|
|
607
|
+
if ____temp_30 == nil then
|
|
608
|
+
____temp_30 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
537
609
|
end
|
|
538
|
-
local
|
|
539
|
-
if
|
|
540
|
-
|
|
610
|
+
local ____temp_30_31 = ____temp_30
|
|
611
|
+
if ____temp_30_31 == nil then
|
|
612
|
+
____temp_30_31 = self.defaultValue
|
|
541
613
|
end
|
|
542
|
-
return
|
|
614
|
+
return ____temp_30_31
|
|
543
615
|
end
|
|
544
616
|
end
|
|
545
|
-
local
|
|
546
|
-
if
|
|
547
|
-
|
|
617
|
+
local ____temp_32 = self:getNativeFieldValue(instance, level)
|
|
618
|
+
if ____temp_32 == nil then
|
|
619
|
+
____temp_32 = self.defaultValue
|
|
548
620
|
end
|
|
549
|
-
return
|
|
621
|
+
return ____temp_32
|
|
550
622
|
end
|
|
551
623
|
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
552
624
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
@@ -559,48 +631,34 @@ function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
|
559
631
|
valueByLevel = {}
|
|
560
632
|
self.valueByInstance[instance] = valueByLevel
|
|
561
633
|
end
|
|
562
|
-
local
|
|
563
|
-
if
|
|
564
|
-
|
|
634
|
+
local ____valueByLevel_index_33 = valueByLevel[level + 1]
|
|
635
|
+
if ____valueByLevel_index_33 == nil then
|
|
636
|
+
____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
565
637
|
end
|
|
566
|
-
local
|
|
567
|
-
if
|
|
568
|
-
|
|
638
|
+
local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
|
|
639
|
+
if ____valueByLevel_index_33_34 == nil then
|
|
640
|
+
____valueByLevel_index_33_34 = self.defaultValue
|
|
569
641
|
end
|
|
570
|
-
local previousValue =
|
|
642
|
+
local previousValue = ____valueByLevel_index_33_34
|
|
571
643
|
valueByLevel[level + 1] = value
|
|
572
|
-
|
|
573
|
-
instance,
|
|
574
|
-
self,
|
|
575
|
-
level,
|
|
576
|
-
previousValue,
|
|
577
|
-
value
|
|
578
|
-
)
|
|
579
|
-
return true
|
|
644
|
+
return previousValue
|
|
580
645
|
end
|
|
581
646
|
end
|
|
582
647
|
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
583
|
-
return
|
|
648
|
+
return nil
|
|
584
649
|
end
|
|
585
650
|
local previousValue = self:getNativeFieldValue(instance, level)
|
|
586
651
|
if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
|
|
587
|
-
return
|
|
652
|
+
return nil
|
|
588
653
|
end
|
|
589
|
-
|
|
590
|
-
instance,
|
|
591
|
-
self,
|
|
592
|
-
level,
|
|
593
|
-
previousValue,
|
|
594
|
-
value
|
|
595
|
-
)
|
|
596
|
-
return true
|
|
654
|
+
return previousValue
|
|
597
655
|
end
|
|
598
656
|
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
599
|
-
local
|
|
600
|
-
local
|
|
601
|
-
local originalValue =
|
|
602
|
-
local
|
|
603
|
-
local modifiers =
|
|
657
|
+
local ____opt_37 = self.originalValueByLevelByInstance
|
|
658
|
+
local ____opt_35 = ____opt_37 and ____opt_37[instance]
|
|
659
|
+
local originalValue = ____opt_35 and ____opt_35[level]
|
|
660
|
+
local ____opt_39 = self.modifiersByInstance
|
|
661
|
+
local modifiers = ____opt_39 and ____opt_39[instance]
|
|
604
662
|
if originalValue ~= nil then
|
|
605
663
|
local value = originalValue
|
|
606
664
|
if modifiers ~= nil then
|
package/engine/random.d.ts
CHANGED
package/engine/random.lua
CHANGED
|
@@ -28,4 +28,12 @@ ____exports.random = function(...)
|
|
|
28
28
|
...
|
|
29
29
|
))
|
|
30
30
|
end
|
|
31
|
+
____exports.shuffle = function(array)
|
|
32
|
+
for i = #array - 1, 1 do
|
|
33
|
+
local j = getRandomInt(0, i)
|
|
34
|
+
local value = array[i + 1]
|
|
35
|
+
array[i + 1] = array[j + 1]
|
|
36
|
+
array[j + 1] = value
|
|
37
|
+
end
|
|
38
|
+
end
|
|
31
39
|
return ____exports
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____item = require("engine.object-field.item")
|
|
3
|
+
local ItemBooleanField = ____item.ItemBooleanField
|
|
4
|
+
____exports.CAN_BE_SOLD_TO_MERCHANTS_ITEM_FIELD = ItemBooleanField:create(fourCC("ipaw"))
|
|
5
|
+
____exports.IS_ACTIVELY_USED_ITEM_FIELD = ItemBooleanField:create(fourCC("iusa"))
|
|
6
|
+
return ____exports
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import { UnitClassificationsField, UnitFlyHeightField, UnitPropulsionWindowField, UnitScalingValueField } from "../../object-field/unit";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
2
|
+
import { UnitClassificationsField, UnitFloatField, UnitFlyHeightField, UnitHealthRegenerationTypeField, UnitIntegerField, UnitPropulsionWindowField, UnitScalingValueField } from "../../object-field/unit";
|
|
3
|
+
export declare const PROPULSION_WINDOW_UNIT_FIELD: UnitPropulsionWindowField & symbol;
|
|
4
|
+
export declare const CLASSIFICATIONS_UNIT_FIELD: UnitClassificationsField & symbol;
|
|
5
|
+
export declare const FLY_HEIGHT_UNIT_FIELD: UnitFlyHeightField & symbol;
|
|
6
|
+
export declare const SCALING_VALUE_UNIT_FIELD: UnitScalingValueField & symbol;
|
|
7
|
+
export declare const HEALTH_REGENERATION_RATE_UNIT_FIELD: UnitFloatField & symbol;
|
|
8
|
+
export declare const MANA_REGENERATION_RATE_UNIT_FIELD: UnitFloatField & symbol;
|
|
9
|
+
export declare const HEALTH_REGENERATION_TYPE_UNIT_FIELD: UnitHealthRegenerationTypeField & symbol;
|
|
10
|
+
export declare const STRENGTH_UNIT_FIELD: UnitIntegerField<number> & symbol;
|
|
11
|
+
export declare const AGILITY_UNIT_FIELD: UnitIntegerField<number> & symbol;
|
|
12
|
+
export declare const INTELLIGENCE_UNIT_FIELD: UnitIntegerField<number> & symbol;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local ____unit = require("engine.object-field.unit")
|
|
3
3
|
local UnitClassificationsField = ____unit.UnitClassificationsField
|
|
4
|
+
local UnitFloatField = ____unit.UnitFloatField
|
|
4
5
|
local UnitFlyHeightField = ____unit.UnitFlyHeightField
|
|
6
|
+
local UnitHealthRegenerationTypeField = ____unit.UnitHealthRegenerationTypeField
|
|
7
|
+
local UnitIntegerField = ____unit.UnitIntegerField
|
|
5
8
|
local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
|
|
6
9
|
local UnitScalingValueField = ____unit.UnitScalingValueField
|
|
7
|
-
____exports.
|
|
8
|
-
____exports.
|
|
9
|
-
____exports.
|
|
10
|
-
____exports.
|
|
10
|
+
____exports.PROPULSION_WINDOW_UNIT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
|
|
11
|
+
____exports.CLASSIFICATIONS_UNIT_FIELD = UnitClassificationsField:create(fourCC("utyp"))
|
|
12
|
+
____exports.FLY_HEIGHT_UNIT_FIELD = UnitFlyHeightField:create(fourCC("ufyh"))
|
|
13
|
+
____exports.SCALING_VALUE_UNIT_FIELD = UnitScalingValueField:create(fourCC("usca"))
|
|
14
|
+
____exports.HEALTH_REGENERATION_RATE_UNIT_FIELD = UnitFloatField:create(fourCC("uhpr"))
|
|
15
|
+
____exports.MANA_REGENERATION_RATE_UNIT_FIELD = UnitFloatField:create(fourCC("umpr"))
|
|
16
|
+
____exports.HEALTH_REGENERATION_TYPE_UNIT_FIELD = UnitHealthRegenerationTypeField:create(fourCC("uhrt"))
|
|
17
|
+
____exports.STRENGTH_UNIT_FIELD = UnitIntegerField:create(fourCC("ustc"))
|
|
18
|
+
____exports.AGILITY_UNIT_FIELD = UnitIntegerField:create(fourCC("uagc"))
|
|
19
|
+
____exports.INTELLIGENCE_UNIT_FIELD = UnitIntegerField:create(fourCC("uinc"))
|
|
11
20
|
return ____exports
|
package/engine/unit.d.ts
CHANGED
|
@@ -19,8 +19,11 @@ import "./internal/unit/invulnerability-counter";
|
|
|
19
19
|
import "./internal/unit/detach-missiles";
|
|
20
20
|
import "./internal/unit/main-selected";
|
|
21
21
|
import "./internal/unit/add-item-to-slot-init";
|
|
22
|
+
import "./internal/unit/attributes";
|
|
22
23
|
import "./internal/unit/fly-height";
|
|
23
24
|
import "./internal/unit/scale";
|
|
25
|
+
import "./internal/unit/interrupts";
|
|
26
|
+
import "./internal/unit/range-event";
|
|
24
27
|
import "./internal/unit/band-aids/ancestral-spirit-cannibalize";
|
|
25
28
|
export { Unit, DamagingEvent, DamageEvent } from "./internal/unit";
|
|
26
29
|
export * from "./internal/unit+damage";
|
package/engine/unit.lua
CHANGED
|
@@ -19,8 +19,11 @@ require("engine.internal.unit.invulnerability-counter")
|
|
|
19
19
|
require("engine.internal.unit.detach-missiles")
|
|
20
20
|
require("engine.internal.unit.main-selected")
|
|
21
21
|
require("engine.internal.unit.add-item-to-slot-init")
|
|
22
|
+
require("engine.internal.unit.attributes")
|
|
22
23
|
require("engine.internal.unit.fly-height")
|
|
23
24
|
require("engine.internal.unit.scale")
|
|
25
|
+
require("engine.internal.unit.interrupts")
|
|
26
|
+
require("engine.internal.unit.range-event")
|
|
24
27
|
require("engine.internal.unit.band-aids.ancestral-spirit-cannibalize")
|
|
25
28
|
do
|
|
26
29
|
local ____unit = require("engine.internal.unit")
|
package/lualib_bundle.lua
CHANGED
|
@@ -2241,7 +2241,7 @@ local function __TS__SourceMapTraceBack(fileName, sourceMap)
|
|
|
2241
2241
|
end
|
|
2242
2242
|
local result = string.gsub(
|
|
2243
2243
|
trace,
|
|
2244
|
-
"(
|
|
2244
|
+
"([^%s<]+)%.lua:(%d+)",
|
|
2245
2245
|
function(file, line) return replacer(nil, file .. ".lua", file .. ".ts", line) end
|
|
2246
2246
|
)
|
|
2247
2247
|
local function stringReplacer(____, file, line)
|
package/math.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare const floor: typeof math.floor;
|
|
|
23
23
|
export declare const log: typeof math.log;
|
|
24
24
|
export declare const max: typeof math.max;
|
|
25
25
|
export declare const min: typeof math.min;
|
|
26
|
+
export declare const sum: (x: number, ...numbers: number[]) => number;
|
|
27
|
+
export declare const product: (x: number, ...numbers: number[]) => number;
|
|
26
28
|
/** Returns the signum function of the argument;
|
|
27
29
|
* zero if the argument is zero,
|
|
28
30
|
* 1.0 if the argument is greater than zero,
|
package/math.lua
CHANGED
|
@@ -39,6 +39,20 @@ ____exports.floor = math.floor
|
|
|
39
39
|
____exports.log = math.log
|
|
40
40
|
____exports.max = math.max
|
|
41
41
|
____exports.min = math.min
|
|
42
|
+
____exports.sum = function(x, ...)
|
|
43
|
+
for i = 1, select("#", ...) do
|
|
44
|
+
local number = select(i, ...)
|
|
45
|
+
x = x + number
|
|
46
|
+
end
|
|
47
|
+
return x
|
|
48
|
+
end
|
|
49
|
+
____exports.product = function(x, ...)
|
|
50
|
+
for i = 1, select("#", ...) do
|
|
51
|
+
local number = select(i, ...)
|
|
52
|
+
x = x * number
|
|
53
|
+
end
|
|
54
|
+
return x
|
|
55
|
+
end
|
|
42
56
|
--- Returns the signum function of the argument;
|
|
43
57
|
-- zero if the argument is zero,
|
|
44
58
|
-- 1.0 if the argument is greater than zero,
|