warscript 0.0.1-dev.2cd2e68 → 0.0.1-dev.3030dbc
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/frame.lua +24 -21
- package/core/types/player.d.ts +15 -0
- package/core/types/player.lua +56 -14
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/tileCell.d.ts +9 -0
- package/core/types/tileCell.lua +92 -0
- package/core/types/timer.d.ts +3 -1
- package/core/types/timer.lua +27 -2
- package/decl/native.d.ts +6 -4
- package/engine/behavior.d.ts +5 -0
- package/engine/behavior.lua +106 -27
- package/engine/behaviour/ability/apply-buff.lua +1 -1
- package/engine/behaviour/ability/emulate-impact.d.ts +1 -1
- package/engine/behaviour/ability/emulate-impact.lua +2 -1
- package/engine/behaviour/ability/remove-buffs.d.ts +9 -0
- package/engine/behaviour/ability/remove-buffs.lua +21 -0
- package/engine/behaviour/ability/restore-mana.d.ts +1 -1
- package/engine/behaviour/ability/restore-mana.lua +6 -6
- package/engine/behaviour/ability.lua +7 -16
- package/engine/behaviour/unit/stun-immunity.d.ts +7 -3
- package/engine/behaviour/unit/stun-immunity.lua +52 -27
- package/engine/behaviour/unit.d.ts +19 -2
- package/engine/behaviour/unit.lua +83 -7
- package/engine/buff.d.ts +12 -5
- package/engine/buff.lua +123 -86
- package/engine/internal/ability.d.ts +3 -1
- package/engine/internal/ability.lua +34 -11
- package/engine/internal/item/ability.lua +51 -1
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +13 -15
- package/engine/internal/item.lua +63 -49
- package/engine/internal/misc/frame-coordinates.d.ts +2 -0
- package/engine/internal/misc/frame-coordinates.lua +21 -0
- package/engine/internal/misc/get-terrain-z.d.ts +2 -0
- package/engine/internal/misc/get-terrain-z.lua +11 -0
- package/engine/internal/misc/player-local-handle.d.ts +2 -0
- package/engine/internal/misc/player-local-handle.lua +5 -0
- package/engine/internal/unit/ability.d.ts +35 -5
- package/engine/internal/unit/ability.lua +96 -21
- package/engine/internal/unit/main-selected.lua +12 -27
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -0
- package/engine/internal/unit+ability.lua +10 -1
- package/engine/internal/unit-missile-launch.lua +45 -14
- package/engine/internal/unit.d.ts +19 -12
- package/engine/internal/unit.lua +170 -109
- package/engine/local-client.d.ts +2 -0
- package/engine/local-client.lua +30 -0
- package/engine/object-data/auxiliary/armor-type.d.ts +11 -0
- package/engine/object-data/auxiliary/armor-type.lua +46 -0
- package/engine/object-data/entry/ability-type.lua +5 -4
- package/engine/object-data/entry/unit-type.d.ts +11 -2
- package/engine/object-data/entry/unit-type.lua +59 -1
- package/engine/object-field/ability.d.ts +3 -3
- package/engine/object-field/ability.lua +7 -6
- package/engine/object-field/unit.d.ts +11 -0
- package/engine/object-field/unit.lua +34 -0
- package/engine/object-field.d.ts +11 -3
- package/engine/object-field.lua +194 -102
- package/engine/random.d.ts +9 -0
- package/engine/random.lua +13 -0
- package/engine/standard/fields/unit.d.ts +4 -0
- package/engine/standard/fields/unit.lua +7 -0
- package/engine/synchronization.d.ts +11 -0
- package/engine/synchronization.lua +77 -0
- package/engine/text-tag.d.ts +36 -2
- package/engine/text-tag.lua +250 -10
- package/engine/unit.d.ts +1 -0
- package/engine/unit.lua +1 -0
- package/net/socket.lua +1 -1
- package/objutil/buff.lua +1 -1
- package/package.json +2 -2
- package/patch-lualib.lua +1 -1
- package/utility/arrays.d.ts +1 -0
- package/utility/arrays.lua +8 -0
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +7 -0
- package/utility/functions.lua +12 -0
- package/utility/linked-set.d.ts +1 -0
- package/utility/linked-set.lua +19 -1
- package/utility/lua-maps.d.ts +12 -2
- package/utility/lua-maps.lua +37 -2
- package/utility/lua-sets.d.ts +1 -0
- package/utility/lua-sets.lua +4 -0
- package/utility/types.d.ts +3 -0
- package/core/types/order.d.ts +0 -26
- package/core/types/order.lua +0 -65
package/engine/object-field.lua
CHANGED
|
@@ -23,7 +23,9 @@ local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.Ob
|
|
|
23
23
|
local ____linked_2Dset = require("utility.linked-set")
|
|
24
24
|
local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
|
|
25
25
|
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
26
|
+
local emptyLuaMap = ____lua_2Dmaps.emptyLuaMap
|
|
26
27
|
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
28
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
27
29
|
local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
|
|
28
30
|
local ____arrays = require("utility.arrays")
|
|
29
31
|
local emptyArray = ____arrays.emptyArray
|
|
@@ -38,7 +40,7 @@ local ObjectFieldBase = __TS__Class()
|
|
|
38
40
|
ObjectFieldBase.name = "ObjectFieldBase"
|
|
39
41
|
function ObjectFieldBase.prototype.____constructor(self, id, isGlobal)
|
|
40
42
|
if isGlobal == nil then
|
|
41
|
-
isGlobal =
|
|
43
|
+
isGlobal = false
|
|
42
44
|
end
|
|
43
45
|
self.isGlobal = isGlobal
|
|
44
46
|
self.valueByInstance = setmetatable({}, {__mode = "k"})
|
|
@@ -57,9 +59,9 @@ end
|
|
|
57
59
|
function ObjectFieldBase.prototype.supports(self, instance)
|
|
58
60
|
return __TS__InstanceOf(instance, self.instanceClass)
|
|
59
61
|
end
|
|
60
|
-
function ObjectFieldBase.prototype.hasValue(self,
|
|
62
|
+
function ObjectFieldBase.prototype.hasValue(self, objectDataEntryId)
|
|
61
63
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
62
|
-
return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[
|
|
64
|
+
return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[objectDataEntryId] ~= nil or self:hasNativeFieldValue(objectDataEntryId)
|
|
63
65
|
end
|
|
64
66
|
function ObjectFieldBase.create(self, id, isGlobal)
|
|
65
67
|
return __TS__New(
|
|
@@ -149,7 +151,13 @@ function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
|
149
151
|
originalValueByInstance = mutableWeakLuaMap()
|
|
150
152
|
self.originalValueByInstance = originalValueByInstance
|
|
151
153
|
end
|
|
152
|
-
|
|
154
|
+
local ____originalValueByInstance_1 = originalValueByInstance
|
|
155
|
+
local ____instance_2 = instance
|
|
156
|
+
local ____originalValueByInstance_instance_0 = originalValueByInstance[instance]
|
|
157
|
+
if ____originalValueByInstance_instance_0 == nil then
|
|
158
|
+
____originalValueByInstance_instance_0 = self:getActualValue(instance)
|
|
159
|
+
end
|
|
160
|
+
____originalValueByInstance_1[____instance_2] = ____originalValueByInstance_instance_0
|
|
153
161
|
self:setActualValue(
|
|
154
162
|
instance,
|
|
155
163
|
self:calculateActualValue(instance)
|
|
@@ -192,40 +200,41 @@ function ObjectField.prototype.trySetValue(self, entry, value)
|
|
|
192
200
|
end
|
|
193
201
|
function ObjectField.prototype.getActualValue(self, instance)
|
|
194
202
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
195
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
196
|
-
local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(instance)]
|
|
203
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
204
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
197
205
|
if defaultValue ~= nil or self.isGlobal then
|
|
198
|
-
local
|
|
199
|
-
if
|
|
200
|
-
|
|
206
|
+
local ____self_valueByInstance_instance_3 = self.valueByInstance[instance]
|
|
207
|
+
if ____self_valueByInstance_instance_3 == nil then
|
|
208
|
+
____self_valueByInstance_instance_3 = defaultValue
|
|
201
209
|
end
|
|
202
|
-
local
|
|
203
|
-
if
|
|
204
|
-
|
|
210
|
+
local ____self_valueByInstance_instance_3_4 = ____self_valueByInstance_instance_3
|
|
211
|
+
if ____self_valueByInstance_instance_3_4 == nil then
|
|
212
|
+
____self_valueByInstance_instance_3_4 = self.defaultValue
|
|
205
213
|
end
|
|
206
|
-
return
|
|
214
|
+
return ____self_valueByInstance_instance_3_4
|
|
207
215
|
end
|
|
208
216
|
end
|
|
209
|
-
local
|
|
210
|
-
if
|
|
211
|
-
|
|
217
|
+
local ____temp_5 = self:getNativeFieldValue(instance)
|
|
218
|
+
if ____temp_5 == nil then
|
|
219
|
+
____temp_5 = self.defaultValue
|
|
212
220
|
end
|
|
213
|
-
return
|
|
221
|
+
return ____temp_5
|
|
214
222
|
end
|
|
215
223
|
function ObjectField.prototype.setActualValue(self, instance, value)
|
|
216
224
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
217
|
-
|
|
218
|
-
|
|
225
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
226
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
227
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
219
228
|
if defaultValue ~= nil or self.isGlobal then
|
|
220
|
-
local
|
|
221
|
-
if
|
|
222
|
-
|
|
229
|
+
local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
|
|
230
|
+
if ____self_valueByInstance_instance_6 == nil then
|
|
231
|
+
____self_valueByInstance_instance_6 = defaultValue
|
|
223
232
|
end
|
|
224
|
-
local
|
|
225
|
-
if
|
|
226
|
-
|
|
233
|
+
local ____self_valueByInstance_instance_6_7 = ____self_valueByInstance_instance_6
|
|
234
|
+
if ____self_valueByInstance_instance_6_7 == nil then
|
|
235
|
+
____self_valueByInstance_instance_6_7 = self.defaultValue
|
|
227
236
|
end
|
|
228
|
-
local previousValue =
|
|
237
|
+
local previousValue = ____self_valueByInstance_instance_6_7
|
|
229
238
|
if value ~= previousValue then
|
|
230
239
|
self.valueByInstance[instance] = value
|
|
231
240
|
self:invokeValueChangeEvent(instance, self, previousValue, value)
|
|
@@ -233,7 +242,7 @@ function ObjectField.prototype.setActualValue(self, instance, value)
|
|
|
233
242
|
return true
|
|
234
243
|
end
|
|
235
244
|
end
|
|
236
|
-
if not self:hasNativeFieldValue(
|
|
245
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
237
246
|
return false
|
|
238
247
|
end
|
|
239
248
|
local previousValue = self:getNativeFieldValue(instance)
|
|
@@ -246,10 +255,10 @@ function ObjectField.prototype.setActualValue(self, instance, value)
|
|
|
246
255
|
return true
|
|
247
256
|
end
|
|
248
257
|
function ObjectField.prototype.calculateActualValue(self, instance)
|
|
249
|
-
local
|
|
250
|
-
local originalValue =
|
|
251
|
-
local
|
|
252
|
-
local modifiers =
|
|
258
|
+
local ____opt_8 = self.originalValueByInstance
|
|
259
|
+
local originalValue = ____opt_8 and ____opt_8[instance]
|
|
260
|
+
local ____opt_10 = self.modifiersByInstance
|
|
261
|
+
local modifiers = ____opt_10 and ____opt_10[instance]
|
|
253
262
|
if originalValue ~= nil then
|
|
254
263
|
local value = originalValue
|
|
255
264
|
if modifiers ~= nil then
|
|
@@ -314,37 +323,37 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
314
323
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
315
324
|
local value = defaultValueByObjectDataEntryId[entry.id]
|
|
316
325
|
if value ~= nil then
|
|
317
|
-
local
|
|
326
|
+
local ____temp_13
|
|
318
327
|
if index == nil then
|
|
319
|
-
|
|
328
|
+
____temp_13 = value
|
|
320
329
|
else
|
|
321
|
-
local
|
|
322
|
-
if
|
|
323
|
-
|
|
330
|
+
local ____value_index_12 = value[index + 1]
|
|
331
|
+
if ____value_index_12 == nil then
|
|
332
|
+
____value_index_12 = self.defaultValue
|
|
324
333
|
end
|
|
325
|
-
|
|
334
|
+
____temp_13 = ____value_index_12
|
|
326
335
|
end
|
|
327
|
-
return
|
|
336
|
+
return ____temp_13
|
|
328
337
|
end
|
|
329
338
|
end
|
|
330
339
|
return index == nil and ({}) or self.defaultValue
|
|
331
340
|
end
|
|
332
341
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
333
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
334
|
-
local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
|
|
335
|
-
if defaultValue ~= nil then
|
|
336
|
-
local value = self.valueByInstance[entry] or defaultValue
|
|
337
|
-
local
|
|
342
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
343
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
|
|
344
|
+
if defaultValue ~= nil or self.isGlobal then
|
|
345
|
+
local value = self.valueByInstance[entry] or defaultValue or emptyArray()
|
|
346
|
+
local ____temp_15
|
|
338
347
|
if index == nil then
|
|
339
|
-
|
|
348
|
+
____temp_15 = value
|
|
340
349
|
else
|
|
341
|
-
local
|
|
342
|
-
if
|
|
343
|
-
|
|
350
|
+
local ____value_index_14 = value[index + 1]
|
|
351
|
+
if ____value_index_14 == nil then
|
|
352
|
+
____value_index_14 = self.defaultValue
|
|
344
353
|
end
|
|
345
|
-
|
|
354
|
+
____temp_15 = ____value_index_14
|
|
346
355
|
end
|
|
347
|
-
return
|
|
356
|
+
return ____temp_15
|
|
348
357
|
end
|
|
349
358
|
end
|
|
350
359
|
if index ~= nil then
|
|
@@ -389,36 +398,16 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
|
389
398
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
390
399
|
local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
|
|
391
400
|
if valueByLevel ~= nil then
|
|
392
|
-
local
|
|
393
|
-
if
|
|
394
|
-
|
|
401
|
+
local ____valueByLevel_index_16 = valueByLevel[level + 1]
|
|
402
|
+
if ____valueByLevel_index_16 == nil then
|
|
403
|
+
____valueByLevel_index_16 = self.defaultValue
|
|
395
404
|
end
|
|
396
|
-
return
|
|
405
|
+
return ____valueByLevel_index_16
|
|
397
406
|
end
|
|
398
407
|
end
|
|
399
408
|
return self.defaultValue
|
|
400
409
|
end
|
|
401
|
-
|
|
402
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
403
|
-
local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
|
|
404
|
-
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
405
|
-
local ____opt_14 = self.valueByInstance[entry]
|
|
406
|
-
local ____temp_16 = ____opt_14 and ____opt_14[level + 1]
|
|
407
|
-
if ____temp_16 == nil then
|
|
408
|
-
____temp_16 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
409
|
-
end
|
|
410
|
-
local ____temp_16_17 = ____temp_16
|
|
411
|
-
if ____temp_16_17 == nil then
|
|
412
|
-
____temp_16_17 = self.defaultValue
|
|
413
|
-
end
|
|
414
|
-
return ____temp_16_17
|
|
415
|
-
end
|
|
416
|
-
end
|
|
417
|
-
local ____temp_18 = self:getNativeFieldValue(entry, level)
|
|
418
|
-
if ____temp_18 == nil then
|
|
419
|
-
____temp_18 = self.defaultValue
|
|
420
|
-
end
|
|
421
|
-
return ____temp_18
|
|
410
|
+
return self:getActualValue(entry, level)
|
|
422
411
|
end
|
|
423
412
|
function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
424
413
|
if value == nil then
|
|
@@ -458,28 +447,129 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
458
447
|
valueByLevel[level + 1] = value
|
|
459
448
|
return true
|
|
460
449
|
end
|
|
450
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
451
|
+
if modifiersByInstance ~= nil then
|
|
452
|
+
local modifiers = modifiersByInstance[entry]
|
|
453
|
+
if modifiers ~= nil and modifiers.size ~= 0 then
|
|
454
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
455
|
+
if originalValueByLevelByInstance == nil then
|
|
456
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
457
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
458
|
+
end
|
|
459
|
+
getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)[level] = value
|
|
460
|
+
value = self:calculateActualValue(entry, level)
|
|
461
|
+
end
|
|
462
|
+
end
|
|
463
|
+
return self:setActualValue(entry, level, value)
|
|
464
|
+
end
|
|
465
|
+
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
466
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
467
|
+
if modifiersByInstance == nil then
|
|
468
|
+
modifiersByInstance = mutableWeakLuaMap()
|
|
469
|
+
self.modifiersByInstance = modifiersByInstance
|
|
470
|
+
end
|
|
471
|
+
if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
|
|
472
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
473
|
+
if originalValueByLevelByInstance == nil then
|
|
474
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
475
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
476
|
+
end
|
|
477
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
478
|
+
local levelCount = self:getLevelCount(instance)
|
|
479
|
+
for level = 0, levelCount - 1 do
|
|
480
|
+
local ____originalValueByLevel_level_17 = originalValueByLevel[level]
|
|
481
|
+
if ____originalValueByLevel_level_17 == nil then
|
|
482
|
+
____originalValueByLevel_level_17 = self:getActualValue(instance, level)
|
|
483
|
+
end
|
|
484
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_17
|
|
485
|
+
self:setActualValue(
|
|
486
|
+
instance,
|
|
487
|
+
level,
|
|
488
|
+
self:calculateActualValue(instance, level)
|
|
489
|
+
)
|
|
490
|
+
end
|
|
491
|
+
end
|
|
492
|
+
end
|
|
493
|
+
function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
|
|
494
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
495
|
+
if modifiersByInstance ~= nil then
|
|
496
|
+
local modifiers = modifiersByInstance[instance]
|
|
497
|
+
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
498
|
+
local levelCount = self:getLevelCount(instance)
|
|
499
|
+
for level = 0, levelCount - 1 do
|
|
500
|
+
self:setActualValue(
|
|
501
|
+
instance,
|
|
502
|
+
level,
|
|
503
|
+
self:calculateActualValue(instance, level)
|
|
504
|
+
)
|
|
505
|
+
end
|
|
506
|
+
return true
|
|
507
|
+
end
|
|
508
|
+
end
|
|
509
|
+
return false
|
|
510
|
+
end
|
|
511
|
+
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
512
|
+
if value ~= nil then
|
|
513
|
+
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
514
|
+
return false
|
|
515
|
+
end
|
|
516
|
+
if type(levelOrValue) ~= "number" then
|
|
517
|
+
return false
|
|
518
|
+
end
|
|
519
|
+
return self:setValue(entry, levelOrValue, value)
|
|
520
|
+
end
|
|
521
|
+
if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
|
|
522
|
+
return false
|
|
523
|
+
end
|
|
524
|
+
return self:setValue(entry, levelOrValue)
|
|
525
|
+
end
|
|
526
|
+
function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
461
527
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
462
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
463
|
-
local defaultValueByLevel = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(
|
|
528
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
529
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
464
530
|
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
465
|
-
local
|
|
531
|
+
local ____opt_18 = self.valueByInstance[instance]
|
|
532
|
+
local ____temp_20 = ____opt_18 and ____opt_18[level + 1]
|
|
533
|
+
if ____temp_20 == nil then
|
|
534
|
+
____temp_20 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
535
|
+
end
|
|
536
|
+
local ____temp_20_21 = ____temp_20
|
|
537
|
+
if ____temp_20_21 == nil then
|
|
538
|
+
____temp_20_21 = self.defaultValue
|
|
539
|
+
end
|
|
540
|
+
return ____temp_20_21
|
|
541
|
+
end
|
|
542
|
+
end
|
|
543
|
+
local ____temp_22 = self:getNativeFieldValue(instance, level)
|
|
544
|
+
if ____temp_22 == nil then
|
|
545
|
+
____temp_22 = self.defaultValue
|
|
546
|
+
end
|
|
547
|
+
return ____temp_22
|
|
548
|
+
end
|
|
549
|
+
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
550
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
551
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
552
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
553
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
554
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
555
|
+
local valueByLevel = self.valueByInstance[instance]
|
|
466
556
|
if valueByLevel == nil then
|
|
467
557
|
valueByLevel = {}
|
|
468
|
-
self.valueByInstance[
|
|
558
|
+
self.valueByInstance[instance] = valueByLevel
|
|
469
559
|
end
|
|
470
|
-
local
|
|
471
|
-
if
|
|
472
|
-
|
|
560
|
+
local ____valueByLevel_index_23 = valueByLevel[level + 1]
|
|
561
|
+
if ____valueByLevel_index_23 == nil then
|
|
562
|
+
____valueByLevel_index_23 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
473
563
|
end
|
|
474
|
-
local
|
|
475
|
-
if
|
|
476
|
-
|
|
564
|
+
local ____valueByLevel_index_23_24 = ____valueByLevel_index_23
|
|
565
|
+
if ____valueByLevel_index_23_24 == nil then
|
|
566
|
+
____valueByLevel_index_23_24 = self.defaultValue
|
|
477
567
|
end
|
|
478
|
-
local previousValue =
|
|
568
|
+
local previousValue = ____valueByLevel_index_23_24
|
|
479
569
|
if value ~= previousValue then
|
|
480
570
|
valueByLevel[level + 1] = value
|
|
481
571
|
self:invokeValueChangeEvent(
|
|
482
|
-
|
|
572
|
+
instance,
|
|
483
573
|
self,
|
|
484
574
|
level,
|
|
485
575
|
previousValue,
|
|
@@ -489,16 +579,16 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
489
579
|
return true
|
|
490
580
|
end
|
|
491
581
|
end
|
|
492
|
-
if not self:hasNativeFieldValue(
|
|
582
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
493
583
|
return false
|
|
494
584
|
end
|
|
495
|
-
local previousValue = self:getNativeFieldValue(
|
|
585
|
+
local previousValue = self:getNativeFieldValue(instance, level)
|
|
496
586
|
if value ~= previousValue then
|
|
497
|
-
if not self:setNativeFieldValue(
|
|
587
|
+
if not self:setNativeFieldValue(instance, level, value) then
|
|
498
588
|
return false
|
|
499
589
|
end
|
|
500
590
|
self:invokeValueChangeEvent(
|
|
501
|
-
|
|
591
|
+
instance,
|
|
502
592
|
self,
|
|
503
593
|
level,
|
|
504
594
|
previousValue,
|
|
@@ -507,20 +597,22 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
507
597
|
end
|
|
508
598
|
return true
|
|
509
599
|
end
|
|
510
|
-
function ObjectLevelField.prototype.
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
600
|
+
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
601
|
+
local ____opt_27 = self.originalValueByLevelByInstance
|
|
602
|
+
local ____opt_25 = ____opt_27 and ____opt_27[instance]
|
|
603
|
+
local originalValue = ____opt_25 and ____opt_25[level]
|
|
604
|
+
local ____opt_29 = self.modifiersByInstance
|
|
605
|
+
local modifiers = ____opt_29 and ____opt_29[instance]
|
|
606
|
+
if originalValue ~= nil then
|
|
607
|
+
local value = originalValue
|
|
608
|
+
if modifiers ~= nil then
|
|
609
|
+
for modifier in pairs(modifiers) do
|
|
610
|
+
value = modifier(instance, level, value, originalValue)
|
|
611
|
+
end
|
|
517
612
|
end
|
|
518
|
-
return
|
|
519
|
-
end
|
|
520
|
-
if __TS__TypeOf(levelOrValue) ~= __TS__TypeOf(self.defaultValue) then
|
|
521
|
-
return false
|
|
613
|
+
return value
|
|
522
614
|
end
|
|
523
|
-
return self
|
|
615
|
+
return self.defaultValue
|
|
524
616
|
end
|
|
525
617
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
526
618
|
self:invokeValueChangeEventRecursive(
|
package/engine/random.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
+
import { ReadonlyNonEmptyArray } from "../utility/types";
|
|
2
3
|
export declare const randomAngle: () => number;
|
|
3
4
|
export declare const randomInteger: {
|
|
4
5
|
(upperBound?: number): number;
|
|
@@ -9,3 +10,11 @@ export declare const randomFloat: {
|
|
|
9
10
|
(lowerBound: number, upperBound: number): number;
|
|
10
11
|
};
|
|
11
12
|
export declare const randomXY: (centerX: number, centerY: number, range: number) => LuaMultiReturn<[x: number, y: number]>;
|
|
13
|
+
export declare const randomElement: {
|
|
14
|
+
<T>(array: ReadonlyNonEmptyArray<T>): T;
|
|
15
|
+
<T>(array: ReadonlyArray<T>): T | undefined;
|
|
16
|
+
};
|
|
17
|
+
export declare const random: {
|
|
18
|
+
<T>(element: T, ...elements: T[]): T;
|
|
19
|
+
<T>(...elements: T[]): T | undefined;
|
|
20
|
+
};
|
package/engine/random.lua
CHANGED
|
@@ -4,6 +4,7 @@ local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
|
4
4
|
local PI = ____math.PI
|
|
5
5
|
local getRandomInt = GetRandomInt
|
|
6
6
|
local getRandomReal = GetRandomReal
|
|
7
|
+
local select = _G.select
|
|
7
8
|
local cos = math.cos
|
|
8
9
|
local sin = math.sin
|
|
9
10
|
local sqrt = math.sqrt
|
|
@@ -15,4 +16,16 @@ ____exports.randomXY = function(centerX, centerY, range)
|
|
|
15
16
|
local t = getRandomReal(0, 1) * 2 * PI
|
|
16
17
|
return centerX + r * cos(t), centerY + r * sin(t)
|
|
17
18
|
end
|
|
19
|
+
____exports.randomElement = function(array)
|
|
20
|
+
return array[getRandomInt(1, #array)]
|
|
21
|
+
end
|
|
22
|
+
____exports.random = function(...)
|
|
23
|
+
return (select(
|
|
24
|
+
getRandomInt(
|
|
25
|
+
1,
|
|
26
|
+
select("#", ...)
|
|
27
|
+
),
|
|
28
|
+
...
|
|
29
|
+
))
|
|
30
|
+
end
|
|
18
31
|
return ____exports
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { UnitClassificationsField, UnitPropulsionWindowField } from "../../object-field/unit";
|
|
3
|
+
export declare const PROPULSION_WINDOW_UNIT_FLOAT_FIELD: UnitPropulsionWindowField & symbol;
|
|
4
|
+
export declare const UNIT_CLASSIFICATIONS_FIELD: UnitClassificationsField & symbol;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
local ____exports = {}
|
|
2
|
+
local ____unit = require("engine.object-field.unit")
|
|
3
|
+
local UnitClassificationsField = ____unit.UnitClassificationsField
|
|
4
|
+
local UnitPropulsionWindowField = ____unit.UnitPropulsionWindowField
|
|
5
|
+
____exports.PROPULSION_WINDOW_UNIT_FLOAT_FIELD = UnitPropulsionWindowField:create(fourCC("urpw"))
|
|
6
|
+
____exports.UNIT_CLASSIFICATIONS_FIELD = UnitClassificationsField:create(fourCC("utyp"))
|
|
7
|
+
return ____exports
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { Player } from "../core/types/player";
|
|
3
|
+
import { Event } from "../event";
|
|
4
|
+
export declare const synchronizer: <T, K extends number>(getSyncId: (object: T) => K, getObject: (syncId: K) => T | undefined) => ((player: Player, object: T | undefined) => Promise<T | undefined>);
|
|
5
|
+
export declare class ObjectBus<T, K extends number> {
|
|
6
|
+
private readonly getSyncId;
|
|
7
|
+
readonly event: Event<[Player, T | undefined]>;
|
|
8
|
+
private readonly syncSlider;
|
|
9
|
+
constructor(getSyncId: (object: T) => K, getObject: (syncId: K) => T | undefined);
|
|
10
|
+
send(object: T | undefined): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__New = ____lualib.__TS__New
|
|
3
|
+
local __TS__Promise = ____lualib.__TS__Promise
|
|
4
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____player = require("core.types.player")
|
|
7
|
+
local Player = ____player.Player
|
|
8
|
+
local ____math = require("math")
|
|
9
|
+
local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
10
|
+
local MINIMUM_INTEGER = ____math.MINIMUM_INTEGER
|
|
11
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
12
|
+
local LinkedSet = ____linked_2Dset.LinkedSet
|
|
13
|
+
local ____event = require("event")
|
|
14
|
+
local Event = ____event.Event
|
|
15
|
+
local eventInvoke = Event.invoke
|
|
16
|
+
local createFrameByType = BlzCreateFrameByType
|
|
17
|
+
local createTrigger = CreateTrigger
|
|
18
|
+
local getOriginFrame = BlzGetOriginFrame
|
|
19
|
+
local getTriggerFrameValue = BlzGetTriggerFrameValue
|
|
20
|
+
local getTriggerPlayer = GetTriggerPlayer
|
|
21
|
+
local frameSetMinMaxValue = BlzFrameSetMinMaxValue
|
|
22
|
+
local frameSetValue = BlzFrameSetValue
|
|
23
|
+
local triggerAddAction = TriggerAddAction
|
|
24
|
+
local triggerRegisterFrameEvent = BlzTriggerRegisterFrameEvent
|
|
25
|
+
____exports.synchronizer = function(getSyncId, getObject)
|
|
26
|
+
local queue = __TS__New(LinkedSet)
|
|
27
|
+
local socket = __TS__New(____exports.ObjectBus, getSyncId, getObject)
|
|
28
|
+
socket.event:addListener(function(_, object)
|
|
29
|
+
local ____opt_0 = queue:pop()
|
|
30
|
+
if ____opt_0 ~= nil then
|
|
31
|
+
____opt_0(object)
|
|
32
|
+
end
|
|
33
|
+
end)
|
|
34
|
+
local function executor(____, resolve)
|
|
35
|
+
queue:add(resolve)
|
|
36
|
+
end
|
|
37
|
+
return function(player, object)
|
|
38
|
+
if player.isLocal then
|
|
39
|
+
socket:send(object)
|
|
40
|
+
end
|
|
41
|
+
return __TS__New(__TS__Promise, executor)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
____exports.ObjectBus = __TS__Class()
|
|
45
|
+
local ObjectBus = ____exports.ObjectBus
|
|
46
|
+
ObjectBus.name = "ObjectBus"
|
|
47
|
+
function ObjectBus.prototype.____constructor(self, getSyncId, getObject)
|
|
48
|
+
self.getSyncId = getSyncId
|
|
49
|
+
local syncSlider = createFrameByType(
|
|
50
|
+
"SLIDER",
|
|
51
|
+
"Synchronizer",
|
|
52
|
+
getOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0),
|
|
53
|
+
"",
|
|
54
|
+
0
|
|
55
|
+
)
|
|
56
|
+
frameSetMinMaxValue(syncSlider, MINIMUM_INTEGER, MAXIMUM_INTEGER)
|
|
57
|
+
self.syncSlider = syncSlider
|
|
58
|
+
local event = __TS__New(Event)
|
|
59
|
+
local trigger = createTrigger()
|
|
60
|
+
triggerRegisterFrameEvent(trigger, syncSlider, FRAMEEVENT_SLIDER_VALUE_CHANGED)
|
|
61
|
+
triggerAddAction(
|
|
62
|
+
trigger,
|
|
63
|
+
function()
|
|
64
|
+
eventInvoke(
|
|
65
|
+
event,
|
|
66
|
+
Player:of(getTriggerPlayer()),
|
|
67
|
+
getObject(getTriggerFrameValue())
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
)
|
|
71
|
+
self.event = event
|
|
72
|
+
end
|
|
73
|
+
function ObjectBus.prototype.send(self, object)
|
|
74
|
+
local syncId = object ~= nil and self.getSyncId(object) or 0
|
|
75
|
+
frameSetValue(self.syncSlider, syncId)
|
|
76
|
+
end
|
|
77
|
+
return ____exports
|
package/engine/text-tag.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
2
|
import { Color } from "../core/types/color";
|
|
3
|
+
import { Unit } from "./internal/unit";
|
|
4
|
+
import { AbstractDestroyable, Destructor } from "../destroyable";
|
|
3
5
|
export type TextTagPreset = {
|
|
4
6
|
fadepoint: number;
|
|
5
7
|
lifespan: number;
|
|
@@ -10,9 +12,39 @@ export type TextTagPreset = {
|
|
|
10
12
|
velocityY: number;
|
|
11
13
|
color: Color;
|
|
12
14
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
declare const enum TextTagPropertyKey {
|
|
16
|
+
UNIT = 100,
|
|
17
|
+
HANDLE = 101,
|
|
18
|
+
CONFIGURATION = 102,
|
|
19
|
+
TEXT = 103,
|
|
20
|
+
FONT_SIZE = 104,
|
|
21
|
+
COLOR = 105,
|
|
22
|
+
X = 106,
|
|
23
|
+
Y = 107
|
|
24
|
+
}
|
|
25
|
+
export declare class TextTag extends AbstractDestroyable {
|
|
26
|
+
private [TextTagPropertyKey.HANDLE]?;
|
|
27
|
+
private [TextTagPropertyKey.CONFIGURATION]?;
|
|
28
|
+
private [TextTagPropertyKey.TEXT]?;
|
|
29
|
+
private [TextTagPropertyKey.FONT_SIZE]?;
|
|
30
|
+
private [TextTagPropertyKey.COLOR]?;
|
|
31
|
+
private [TextTagPropertyKey.UNIT]?;
|
|
32
|
+
private [TextTagPropertyKey.X]?;
|
|
33
|
+
private [TextTagPropertyKey.Y]?;
|
|
15
34
|
private constructor();
|
|
35
|
+
protected onDestroy(): Destructor;
|
|
36
|
+
get text(): string;
|
|
37
|
+
set text(text: string);
|
|
38
|
+
get fontSize(): number;
|
|
39
|
+
set fontSize(fontSize: number);
|
|
40
|
+
get color(): Color;
|
|
41
|
+
set color(color: Color);
|
|
42
|
+
get unit(): Unit | undefined;
|
|
43
|
+
set unit(unit: Unit | undefined);
|
|
44
|
+
get x(): number;
|
|
45
|
+
set x(x: number);
|
|
46
|
+
get y(): number;
|
|
47
|
+
set y(y: number);
|
|
16
48
|
static BASE: Readonly<TextTagPreset>;
|
|
17
49
|
static BASH: Readonly<TextTagPreset>;
|
|
18
50
|
static CRITICAL_STRIKE: Readonly<TextTagPreset>;
|
|
@@ -22,4 +54,6 @@ export declare class TextTag {
|
|
|
22
54
|
static MISS: Readonly<TextTagPreset>;
|
|
23
55
|
static SHADOW_STRIKE: Readonly<TextTagPreset>;
|
|
24
56
|
static flash(configuration: Readonly<TextTagPreset>, text: string, x: number, y: number, z?: number): void;
|
|
57
|
+
static create(configuration: Readonly<TextTagPreset>, text: string, unit: Unit): TextTag;
|
|
25
58
|
}
|
|
59
|
+
export {};
|