warscript 0.0.1-dev.ee2345e → 0.0.1-dev.ee6e396
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 +6 -1
- package/attributes.lua +17 -1
- package/binaryreader.d.ts +1 -0
- package/binaryreader.lua +3 -0
- package/config.d.ts +5 -0
- package/config.lua +10 -0
- package/core/types/effect.d.ts +14 -6
- package/core/types/effect.lua +131 -35
- package/core/types/frame.d.ts +8 -1
- package/core/types/frame.lua +117 -22
- package/core/types/group.d.ts +0 -1
- package/core/types/image.d.ts +0 -1
- package/core/types/missile.d.ts +2 -2
- package/core/types/missile.lua +8 -2
- package/core/types/player.d.ts +16 -0
- package/core/types/player.lua +60 -15
- package/core/types/playerCamera.d.ts +2 -0
- package/core/types/playerCamera.lua +123 -5
- package/core/types/sound.d.ts +17 -24
- package/core/types/sound.lua +99 -24
- package/core/types/tileCell.d.ts +11 -1
- package/core/types/tileCell.lua +97 -0
- package/core/types/timer.d.ts +9 -8
- package/core/types/timer.lua +45 -23
- package/core/types/unit.lua +8 -0
- package/core/util.d.ts +1 -1
- package/core/util.lua +18 -1
- package/decl/index.d.ts +1 -0
- package/decl/native.d.ts +846 -790
- package/destroyable.d.ts +1 -0
- package/destroyable.lua +9 -0
- package/engine/ability.d.ts +1 -1
- package/engine/behavior.d.ts +24 -11
- package/engine/behavior.lua +233 -73
- package/engine/behaviour/ability/always-enabled.d.ts +7 -0
- package/engine/behaviour/ability/always-enabled.lua +31 -0
- package/engine/behaviour/ability/apply-buff.d.ts +8 -5
- package/engine/behaviour/ability/apply-buff.lua +36 -4
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +6 -1
- package/engine/behaviour/ability/apply-unit-behavior.lua +1 -0
- package/engine/behaviour/ability/damage.d.ts +39 -11
- package/engine/behaviour/ability/damage.lua +83 -37
- package/engine/behaviour/ability/emulate-impact.d.ts +6 -0
- package/engine/behaviour/ability/emulate-impact.lua +43 -0
- package/engine/behaviour/ability/heal.d.ts +33 -6
- package/engine/behaviour/ability/heal.lua +89 -10
- package/engine/behaviour/ability/instant-impact.d.ts +2 -2
- package/engine/behaviour/ability/instant-impact.lua +4 -15
- package/engine/behaviour/ability/on-command-impact.d.ts +8 -0
- package/engine/behaviour/ability/on-command-impact.lua +25 -0
- package/engine/behaviour/ability/remove-buffs.d.ts +25 -0
- package/engine/behaviour/ability/remove-buffs.lua +49 -0
- package/engine/behaviour/ability/restore-mana.d.ts +15 -0
- package/engine/behaviour/ability/restore-mana.lua +29 -0
- package/engine/behaviour/ability.d.ts +33 -5
- package/engine/behaviour/ability.lua +183 -27
- package/engine/behaviour/unit/stun-immunity.d.ts +12 -7
- package/engine/behaviour/unit/stun-immunity.lua +57 -31
- package/engine/behaviour/unit.d.ts +48 -4
- package/engine/behaviour/unit.lua +292 -2
- package/engine/buff.d.ts +121 -46
- package/engine/buff.lua +567 -248
- package/engine/game-map.d.ts +7 -0
- package/engine/game-map.lua +32 -0
- package/engine/internal/ability.d.ts +23 -14
- package/engine/internal/ability.lua +129 -85
- package/engine/internal/item/ability.lua +162 -4
- package/engine/internal/item+owner.lua +12 -6
- package/engine/internal/item.d.ts +20 -19
- package/engine/internal/item.lua +191 -74
- package/engine/internal/mechanics/ability-duration.lua +1 -1
- package/engine/internal/mechanics/cast-ability.lua +6 -3
- package/engine/internal/misc/ability-disable-counter.d.ts +2 -0
- package/engine/internal/misc/ability-disable-counter.lua +13 -0
- package/engine/internal/misc/damage-metadata-by-target.d.ts +2 -0
- package/engine/internal/misc/damage-metadata-by-target.lua +5 -0
- 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/object-data/auto-attack-speed-increase.d.ts +1 -1
- package/engine/internal/object-data/auto-attack-speed-increase.lua +2 -0
- package/engine/internal/object-data/evasion-probability.d.ts +2 -0
- package/engine/internal/object-data/evasion-probability.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/ability.d.ts +45 -1
- package/engine/internal/unit/ability.lua +128 -17
- package/engine/internal/unit/add-item-to-slot-init.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot-init.lua +23 -0
- package/engine/internal/unit/add-item-to-slot.d.ts +2 -0
- package/engine/internal/unit/add-item-to-slot.lua +52 -0
- package/engine/internal/unit/allowed-targets.d.ts +1 -1
- package/engine/internal/unit/allowed-targets.lua +9 -1
- package/engine/internal/unit/attributes.d.ts +17 -0
- package/engine/internal/unit/attributes.lua +46 -0
- package/engine/internal/unit/bonus.d.ts +13 -8
- package/engine/internal/unit/bonus.lua +33 -1
- package/engine/internal/unit/fly-height.d.ts +7 -0
- package/engine/internal/unit/fly-height.lua +20 -0
- package/engine/internal/unit/ignore-events-items.d.ts +2 -0
- package/engine/internal/unit/ignore-events-items.lua +5 -0
- package/engine/internal/unit/interrupts.d.ts +12 -0
- package/engine/internal/unit/interrupts.lua +28 -0
- package/engine/internal/unit/item.d.ts +24 -0
- package/engine/internal/unit/item.lua +78 -0
- package/engine/internal/unit/main-selected.d.ts +13 -0
- package/engine/internal/unit/main-selected.lua +36 -0
- package/engine/internal/unit/order.d.ts +20 -0
- package/engine/internal/unit/order.lua +136 -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.d.ts +7 -0
- package/engine/internal/unit/scale.lua +20 -0
- package/engine/internal/unit+ability.lua +12 -3
- package/engine/internal/unit+damage.d.ts +2 -11
- package/engine/internal/unit+damage.lua +10 -14
- package/engine/internal/unit+spellSteal.lua +1 -2
- package/engine/internal/unit+transport.lua +4 -10
- package/engine/internal/unit-missile-launch.lua +70 -13
- package/engine/internal/unit.d.ts +97 -36
- package/engine/internal/unit.lua +701 -336
- package/engine/internal/utility.lua +12 -0
- package/engine/lightning.d.ts +12 -5
- package/engine/lightning.lua +48 -14
- package/engine/local-client.d.ts +9 -2
- package/engine/local-client.lua +112 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +1 -0
- package/engine/object-data/auxiliary/animation-name.lua +16 -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/auxiliary/attachment-preset.d.ts +7 -3
- package/engine/object-data/auxiliary/attachment-preset.lua +4 -3
- package/engine/object-data/auxiliary/attack-type.d.ts +7 -8
- package/engine/object-data/auxiliary/attack-type.lua +42 -0
- package/engine/object-data/auxiliary/combat-classification.d.ts +0 -2
- 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/movement-type.d.ts +7 -7
- package/engine/object-data/auxiliary/movement-type.lua +22 -0
- package/engine/object-data/auxiliary/sound-eax.d.ts +10 -0
- package/engine/object-data/auxiliary/sound-eax.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +5 -1
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +1 -1
- package/engine/object-data/auxiliary/unit-attribute.d.ts +6 -0
- package/engine/object-data/auxiliary/unit-attribute.lua +9 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +2 -0
- package/engine/object-data/entry/ability-type/berserk.lua +13 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +0 -1
- package/engine/object-data/entry/ability-type/blank-configurable.lua +12 -1
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +0 -1
- package/engine/object-data/entry/ability-type/carrion-swarm.d.ts +14 -0
- package/engine/object-data/entry/ability-type/carrion-swarm.lua +65 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +0 -1
- package/engine/object-data/entry/ability-type/disease-cloud.lua +2 -2
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +2 -2
- package/engine/object-data/entry/ability-type/ensnare.d.ts +12 -0
- package/engine/object-data/entry/ability-type/ensnare.lua +52 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +2 -2
- 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/mine.d.ts +10 -0
- package/engine/object-data/entry/ability-type/mine.lua +39 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-invisibility.lua +26 -0
- package/engine/object-data/entry/ability-type/phase-shift.d.ts +10 -0
- package/engine/object-data/entry/ability-type/phase-shift.lua +39 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +4 -4
- package/engine/object-data/entry/ability-type/raise-dead.d.ts +17 -0
- package/engine/object-data/entry/ability-type/raise-dead.lua +78 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +4 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +26 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +10 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +58 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +2 -2
- package/engine/object-data/entry/ability-type/spirit-touch.lua +6 -6
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +2 -2
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +2 -2
- package/engine/object-data/entry/ability-type/web.d.ts +12 -0
- package/engine/object-data/entry/ability-type/web.lua +52 -0
- package/engine/object-data/entry/ability-type.d.ts +19 -18
- package/engine/object-data/entry/ability-type.lua +93 -36
- package/engine/object-data/entry/buff-type/applicable.d.ts +0 -1
- package/engine/object-data/entry/buff-type/applicable.lua +18 -37
- package/engine/object-data/entry/buff-type/blank.d.ts +0 -1
- package/engine/object-data/entry/buff-type.d.ts +6 -13
- package/engine/object-data/entry/buff-type.lua +13 -29
- package/engine/object-data/entry/destructible-type.d.ts +28 -3
- package/engine/object-data/entry/destructible-type.lua +155 -0
- package/engine/object-data/entry/item-type/blank.d.ts +0 -1
- package/engine/object-data/entry/item-type.d.ts +15 -2
- package/engine/object-data/entry/item-type.lua +93 -2
- package/engine/object-data/entry/lightning-type.d.ts +1 -2
- package/engine/object-data/entry/sound-preset.d.ts +33 -0
- package/engine/object-data/entry/sound-preset.lua +140 -0
- package/engine/object-data/entry/unit-type.d.ts +62 -7
- package/engine/object-data/entry/unit-type.lua +524 -75
- package/engine/object-data/entry/upgrade/blank.d.ts +0 -1
- package/engine/object-data/entry/upgrade.d.ts +1 -2
- package/engine/object-data/entry/upgrade.lua +4 -4
- package/engine/object-data/entry.d.ts +18 -17
- package/engine/object-data/entry.lua +60 -32
- package/engine/object-data/utility/object-data-entry-id-generator.lua +7 -0
- package/engine/object-field/ability.d.ts +28 -5
- package/engine/object-field/ability.lua +59 -5
- package/engine/object-field/unit.d.ts +72 -3
- package/engine/object-field/unit.lua +268 -7
- package/engine/object-field.d.ts +25 -7
- package/engine/object-field.lua +359 -116
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +22 -0
- package/engine/standard/entries/buff-type.d.ts +3 -0
- package/engine/standard/entries/buff-type.lua +3 -0
- package/engine/standard/entries/sound-preset.d.ts +10 -0
- package/engine/standard/entries/sound-preset.lua +10 -0
- package/engine/standard/entries/unit-type.d.ts +39 -1
- package/engine/standard/entries/unit-type.lua +39 -1
- package/engine/standard/fields/ability.d.ts +5 -3
- package/engine/standard/fields/ability.lua +5 -3
- package/engine/standard/fields/unit.d.ts +12 -0
- package/engine/standard/fields/unit.lua +20 -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 +9 -0
- package/engine/unit.lua +18 -2
- package/event.d.ts +2 -3
- package/event.lua +9 -5
- package/index.d.ts +1 -0
- package/index.lua +1 -0
- package/lualib_bundle.lua +146 -42
- package/math/vec2.d.ts +2 -9
- package/math.d.ts +0 -2
- package/net/socket.d.ts +7 -1
- package/net/socket.lua +45 -4
- package/network.d.ts +1 -0
- package/network.lua +3 -2
- package/objutil/ability.d.ts +0 -1
- package/objutil/buff.d.ts +0 -1
- package/objutil/buff.lua +12 -11
- package/objutil/object.d.ts +0 -1
- package/objutil/unit.d.ts +0 -1
- package/objutil/unit.lua +8 -0
- package/package.json +13 -14
- package/patch-lua.d.ts +0 -0
- package/patch-lua.lua +25 -0
- package/patch-lualib.lua +1 -1
- package/property.d.ts +55 -0
- package/property.lua +374 -0
- package/string.d.ts +30 -0
- package/string.lua +14 -0
- package/util/stream.d.ts +0 -1
- package/utility/arrays.d.ts +13 -5
- package/utility/arrays.lua +45 -3
- package/utility/bit-set.d.ts +0 -2
- package/utility/callback-array.d.ts +17 -0
- package/utility/callback-array.lua +61 -0
- package/utility/functions.d.ts +8 -0
- package/utility/functions.lua +13 -0
- package/utility/lazy.d.ts +2 -0
- package/utility/lazy.lua +14 -0
- package/utility/linked-map.d.ts +34 -0
- package/utility/linked-map.lua +101 -0
- package/utility/linked-set.d.ts +15 -4
- package/utility/linked-set.lua +48 -3
- package/utility/lua-maps.d.ts +16 -4
- package/utility/lua-maps.lua +53 -2
- package/utility/lua-sets.d.ts +3 -2
- package/utility/lua-sets.lua +7 -0
- package/utility/records.lua +20 -1
- package/utility/reflection.lua +11 -7
- package/utility/types.d.ts +4 -0
- package/core/mapbounds.d.ts +0 -8
- package/core/mapbounds.lua +0 -12
- package/core/types/order.d.ts +0 -25
- package/core/types/order.lua +0 -55
package/engine/object-field.lua
CHANGED
|
@@ -20,6 +20,15 @@ local extractObjectDataEntryLevelFieldValue = ____entry.extractObjectDataEntryLe
|
|
|
20
20
|
local ObjectDataEntry = ____entry.ObjectDataEntry
|
|
21
21
|
local ____object_2Ddata_2Dentry_2Did_2Dgenerator = require("engine.object-data.utility.object-data-entry-id-generator")
|
|
22
22
|
local ObjectDataEntryIdGenerator = ____object_2Ddata_2Dentry_2Did_2Dgenerator.ObjectDataEntryIdGenerator
|
|
23
|
+
local ____linked_2Dset = require("utility.linked-set")
|
|
24
|
+
local mutableLinkedSet = ____linked_2Dset.mutableLinkedSet
|
|
25
|
+
local ____lua_2Dmaps = require("utility.lua-maps")
|
|
26
|
+
local emptyLuaMap = ____lua_2Dmaps.emptyLuaMap
|
|
27
|
+
local getOrPut = ____lua_2Dmaps.getOrPut
|
|
28
|
+
local mutableLuaMap = ____lua_2Dmaps.mutableLuaMap
|
|
29
|
+
local mutableWeakLuaMap = ____lua_2Dmaps.mutableWeakLuaMap
|
|
30
|
+
local ____arrays = require("utility.arrays")
|
|
31
|
+
local emptyArray = ____arrays.emptyArray
|
|
23
32
|
local compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId = {}
|
|
24
33
|
local defaultValueByObjectDataEntryIdByObjectFieldId = postcompile(function() return compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId end)
|
|
25
34
|
local objectFieldById = {}
|
|
@@ -29,7 +38,11 @@ local idGenerator = __TS__New(
|
|
|
29
38
|
)
|
|
30
39
|
local ObjectFieldBase = __TS__Class()
|
|
31
40
|
ObjectFieldBase.name = "ObjectFieldBase"
|
|
32
|
-
function ObjectFieldBase.prototype.____constructor(self, id)
|
|
41
|
+
function ObjectFieldBase.prototype.____constructor(self, id, isGlobal)
|
|
42
|
+
if isGlobal == nil then
|
|
43
|
+
isGlobal = false
|
|
44
|
+
end
|
|
45
|
+
self.isGlobal = isGlobal
|
|
33
46
|
self.valueByInstance = setmetatable({}, {__mode = "k"})
|
|
34
47
|
if objectFieldById[id] ~= nil then
|
|
35
48
|
error(
|
|
@@ -46,10 +59,15 @@ end
|
|
|
46
59
|
function ObjectFieldBase.prototype.supports(self, instance)
|
|
47
60
|
return __TS__InstanceOf(instance, self.instanceClass)
|
|
48
61
|
end
|
|
49
|
-
function ObjectFieldBase.
|
|
62
|
+
function ObjectFieldBase.prototype.hasValue(self, objectDataEntryId)
|
|
63
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
64
|
+
return self.isGlobal or defaultValueByObjectDataEntryId ~= nil and defaultValueByObjectDataEntryId[objectDataEntryId] ~= nil or self:hasNativeFieldValue(objectDataEntryId)
|
|
65
|
+
end
|
|
66
|
+
function ObjectFieldBase.create(self, id, isGlobal)
|
|
50
67
|
return __TS__New(
|
|
51
68
|
self,
|
|
52
|
-
id or idGenerator:next()
|
|
69
|
+
id or idGenerator:next(),
|
|
70
|
+
isGlobal
|
|
53
71
|
)
|
|
54
72
|
end
|
|
55
73
|
function ObjectFieldBase.of(self, id)
|
|
@@ -71,7 +89,7 @@ ____exports.ObjectField = __TS__Class()
|
|
|
71
89
|
local ObjectField = ____exports.ObjectField
|
|
72
90
|
ObjectField.name = "ObjectField"
|
|
73
91
|
__TS__ClassExtends(ObjectField, ObjectFieldBase)
|
|
74
|
-
function ObjectField.prototype.getValue(self, entry)
|
|
92
|
+
function ObjectField.prototype.getValue(self, entry, includeModifiers)
|
|
75
93
|
if __TS__InstanceOf(entry, ObjectDataEntry) then
|
|
76
94
|
local defaultValueByObjectDataEntryId = (warpack.compiletime and compiletimeDefaultValueByObjectDataEntryIdByObjectFieldId or defaultValueByObjectDataEntryIdByObjectFieldId)[self.id]
|
|
77
95
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
@@ -82,22 +100,16 @@ function ObjectField.prototype.getValue(self, entry)
|
|
|
82
100
|
end
|
|
83
101
|
return self.defaultValue
|
|
84
102
|
end
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
____self_valueByInstance_entry_0 = defaultValue
|
|
103
|
+
if not includeModifiers then
|
|
104
|
+
local originalValueByInstance = self.originalValueByInstance
|
|
105
|
+
if originalValueByInstance ~= nil then
|
|
106
|
+
local originalValue = originalValueByInstance[entry]
|
|
107
|
+
if originalValue ~= nil then
|
|
108
|
+
return originalValue
|
|
92
109
|
end
|
|
93
|
-
return ____self_valueByInstance_entry_0
|
|
94
110
|
end
|
|
95
111
|
end
|
|
96
|
-
|
|
97
|
-
if ____temp_1 == nil then
|
|
98
|
-
____temp_1 = self.defaultValue
|
|
99
|
-
end
|
|
100
|
-
return ____temp_1
|
|
112
|
+
return self:getActualValue(entry)
|
|
101
113
|
end
|
|
102
114
|
function ObjectField.prototype.setValue(self, entry, value)
|
|
103
115
|
if __TS__InstanceOf(entry, ObjectDataEntry) then
|
|
@@ -112,38 +124,84 @@ function ObjectField.prototype.setValue(self, entry, value)
|
|
|
112
124
|
defaultValueByObjectDataEntryId[entry.id] = value
|
|
113
125
|
return true
|
|
114
126
|
end
|
|
115
|
-
local
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
if ____self_valueByInstance_entry_2_3 == nil then
|
|
125
|
-
____self_valueByInstance_entry_2_3 = self.defaultValue
|
|
127
|
+
local previousOriginalValue
|
|
128
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
129
|
+
if modifiersByInstance ~= nil then
|
|
130
|
+
local modifiers = modifiersByInstance[entry]
|
|
131
|
+
if modifiers ~= nil and modifiers.size ~= 0 then
|
|
132
|
+
local originalValueByInstance = self.originalValueByInstance
|
|
133
|
+
if originalValueByInstance == nil then
|
|
134
|
+
originalValueByInstance = mutableWeakLuaMap()
|
|
135
|
+
self.originalValueByInstance = originalValueByInstance
|
|
126
136
|
end
|
|
127
|
-
|
|
128
|
-
if value
|
|
129
|
-
|
|
130
|
-
self:invokeValueChangeEvent(entry, self, previousValue, value)
|
|
137
|
+
previousOriginalValue = originalValueByInstance[entry]
|
|
138
|
+
if value == previousOriginalValue then
|
|
139
|
+
return true
|
|
131
140
|
end
|
|
132
|
-
|
|
141
|
+
originalValueByInstance[entry] = value
|
|
142
|
+
value = (self:calculateActualValue(entry))
|
|
133
143
|
end
|
|
134
144
|
end
|
|
135
|
-
|
|
145
|
+
local previousValue = self:setActualValue(entry, value)
|
|
146
|
+
if previousValue == nil then
|
|
136
147
|
return false
|
|
137
148
|
end
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
142
155
|
end
|
|
143
|
-
|
|
156
|
+
____self_invokeValueChangeEvent_2(
|
|
157
|
+
self,
|
|
158
|
+
____entry_1,
|
|
159
|
+
self,
|
|
160
|
+
____previousOriginalValue_0,
|
|
161
|
+
value
|
|
162
|
+
)
|
|
144
163
|
end
|
|
145
164
|
return true
|
|
146
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)
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
function ObjectField.prototype.applyModifier(self, instance, modifier)
|
|
173
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
174
|
+
if modifiersByInstance == nil then
|
|
175
|
+
modifiersByInstance = mutableWeakLuaMap()
|
|
176
|
+
self.modifiersByInstance = modifiersByInstance
|
|
177
|
+
end
|
|
178
|
+
if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
|
|
179
|
+
local originalValueByInstance = self.originalValueByInstance
|
|
180
|
+
if originalValueByInstance == nil then
|
|
181
|
+
originalValueByInstance = mutableWeakLuaMap()
|
|
182
|
+
self.originalValueByInstance = originalValueByInstance
|
|
183
|
+
end
|
|
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)
|
|
189
|
+
end
|
|
190
|
+
____originalValueByInstance_4[____instance_5] = ____originalValueByInstance_instance_3
|
|
191
|
+
self:setActualValue(instance, (self:calculateActualValue(instance)))
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
function ObjectField.prototype.removeModifier(self, instance, modifier)
|
|
195
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
196
|
+
if modifiersByInstance ~= nil then
|
|
197
|
+
local modifiers = modifiersByInstance[instance]
|
|
198
|
+
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
199
|
+
self:setActualValue(instance, (self:calculateActualValue(instance)))
|
|
200
|
+
return true
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
return false
|
|
204
|
+
end
|
|
147
205
|
function ObjectField.prototype.removeValue(self, entry)
|
|
148
206
|
if not warpack.compiletime then
|
|
149
207
|
return false
|
|
@@ -164,6 +222,73 @@ function ObjectField.prototype.trySetValue(self, entry, value)
|
|
|
164
222
|
end
|
|
165
223
|
return self:setValue(entry, value)
|
|
166
224
|
end
|
|
225
|
+
function ObjectField.prototype.getActualValue(self, instance)
|
|
226
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
227
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
228
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
229
|
+
if defaultValue ~= nil or self.isGlobal then
|
|
230
|
+
local ____self_valueByInstance_instance_6 = self.valueByInstance[instance]
|
|
231
|
+
if ____self_valueByInstance_instance_6 == nil then
|
|
232
|
+
____self_valueByInstance_instance_6 = defaultValue
|
|
233
|
+
end
|
|
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
|
|
237
|
+
end
|
|
238
|
+
return ____self_valueByInstance_instance_6_7
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
local ____temp_8 = self:getNativeFieldValue(instance)
|
|
242
|
+
if ____temp_8 == nil then
|
|
243
|
+
____temp_8 = self.defaultValue
|
|
244
|
+
end
|
|
245
|
+
return ____temp_8
|
|
246
|
+
end
|
|
247
|
+
function ObjectField.prototype.setActualValue(self, instance, value)
|
|
248
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
249
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
250
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
251
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
252
|
+
if defaultValue ~= nil or self.isGlobal then
|
|
253
|
+
local ____self_valueByInstance_instance_9 = self.valueByInstance[instance]
|
|
254
|
+
if ____self_valueByInstance_instance_9 == nil then
|
|
255
|
+
____self_valueByInstance_instance_9 = defaultValue
|
|
256
|
+
end
|
|
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
|
|
260
|
+
end
|
|
261
|
+
local previousValue = ____self_valueByInstance_instance_9_10
|
|
262
|
+
self.valueByInstance[instance] = value
|
|
263
|
+
return previousValue
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
267
|
+
return nil
|
|
268
|
+
end
|
|
269
|
+
local previousValue = self:getNativeFieldValue(instance)
|
|
270
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, value) then
|
|
271
|
+
return nil
|
|
272
|
+
end
|
|
273
|
+
return previousValue
|
|
274
|
+
end
|
|
275
|
+
function ObjectField.prototype.calculateActualValue(self, instance)
|
|
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]
|
|
280
|
+
if originalValue ~= nil then
|
|
281
|
+
local value = originalValue
|
|
282
|
+
if modifiers ~= nil then
|
|
283
|
+
for modifier in pairs(modifiers) do
|
|
284
|
+
value = modifier(instance, value, originalValue)
|
|
285
|
+
end
|
|
286
|
+
return value, true
|
|
287
|
+
end
|
|
288
|
+
return value, false
|
|
289
|
+
end
|
|
290
|
+
return self.defaultValue, false
|
|
291
|
+
end
|
|
167
292
|
function ObjectField.prototype.invokeValueChangeEvent(self, ...)
|
|
168
293
|
self:invokeValueChangeEventRecursive(
|
|
169
294
|
getClass(self),
|
|
@@ -217,37 +342,37 @@ function ObjectArrayField.prototype.getValue(self, entry, index)
|
|
|
217
342
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
218
343
|
local value = defaultValueByObjectDataEntryId[entry.id]
|
|
219
344
|
if value ~= nil then
|
|
220
|
-
local
|
|
345
|
+
local ____temp_16
|
|
221
346
|
if index == nil then
|
|
222
|
-
|
|
347
|
+
____temp_16 = value
|
|
223
348
|
else
|
|
224
|
-
local
|
|
225
|
-
if
|
|
226
|
-
|
|
349
|
+
local ____value_index_15 = value[index + 1]
|
|
350
|
+
if ____value_index_15 == nil then
|
|
351
|
+
____value_index_15 = self.defaultValue
|
|
227
352
|
end
|
|
228
|
-
|
|
353
|
+
____temp_16 = ____value_index_15
|
|
229
354
|
end
|
|
230
|
-
return
|
|
355
|
+
return ____temp_16
|
|
231
356
|
end
|
|
232
357
|
end
|
|
233
358
|
return index == nil and ({}) or self.defaultValue
|
|
234
359
|
end
|
|
235
360
|
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
236
|
-
if defaultValueByObjectDataEntryId ~= nil then
|
|
237
|
-
local defaultValue = defaultValueByObjectDataEntryId[self:getObjectDataEntryId(entry)]
|
|
238
|
-
if defaultValue ~= nil then
|
|
239
|
-
local value = self.valueByInstance[entry] or defaultValue
|
|
240
|
-
local
|
|
361
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
362
|
+
local defaultValue = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(entry)]
|
|
363
|
+
if defaultValue ~= nil or self.isGlobal then
|
|
364
|
+
local value = self.valueByInstance[entry] or defaultValue or emptyArray()
|
|
365
|
+
local ____temp_18
|
|
241
366
|
if index == nil then
|
|
242
|
-
|
|
367
|
+
____temp_18 = value
|
|
243
368
|
else
|
|
244
|
-
local
|
|
245
|
-
if
|
|
246
|
-
|
|
369
|
+
local ____value_index_17 = value[index + 1]
|
|
370
|
+
if ____value_index_17 == nil then
|
|
371
|
+
____value_index_17 = self.defaultValue
|
|
247
372
|
end
|
|
248
|
-
|
|
373
|
+
____temp_18 = ____value_index_17
|
|
249
374
|
end
|
|
250
|
-
return
|
|
375
|
+
return ____temp_18
|
|
251
376
|
end
|
|
252
377
|
end
|
|
253
378
|
if index ~= nil then
|
|
@@ -292,36 +417,22 @@ function ObjectLevelField.prototype.getValue(self, entry, level)
|
|
|
292
417
|
if defaultValueByObjectDataEntryId ~= nil then
|
|
293
418
|
local valueByLevel = defaultValueByObjectDataEntryId[entry.id]
|
|
294
419
|
if valueByLevel ~= nil then
|
|
295
|
-
local
|
|
296
|
-
if
|
|
297
|
-
|
|
420
|
+
local ____valueByLevel_index_19 = valueByLevel[level + 1]
|
|
421
|
+
if ____valueByLevel_index_19 == nil then
|
|
422
|
+
____valueByLevel_index_19 = self.defaultValue
|
|
298
423
|
end
|
|
299
|
-
return
|
|
424
|
+
return ____valueByLevel_index_19
|
|
300
425
|
end
|
|
301
426
|
end
|
|
302
427
|
return self.defaultValue
|
|
303
428
|
end
|
|
304
|
-
local
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
local ____temp_11 = ____opt_9 and ____opt_9[level + 1]
|
|
310
|
-
if ____temp_11 == nil then
|
|
311
|
-
____temp_11 = defaultValueByLevel[level + 1]
|
|
312
|
-
end
|
|
313
|
-
local ____temp_11_12 = ____temp_11
|
|
314
|
-
if ____temp_11_12 == nil then
|
|
315
|
-
____temp_11_12 = self.defaultValue
|
|
316
|
-
end
|
|
317
|
-
return ____temp_11_12
|
|
318
|
-
end
|
|
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]
|
|
432
|
+
if originalValue ~= nil then
|
|
433
|
+
return originalValue
|
|
319
434
|
end
|
|
320
|
-
|
|
321
|
-
if ____temp_13 == nil then
|
|
322
|
-
____temp_13 = self.defaultValue
|
|
323
|
-
end
|
|
324
|
-
return ____temp_13
|
|
435
|
+
return self:getActualValue(entry, level)
|
|
325
436
|
end
|
|
326
437
|
function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
327
438
|
if value == nil then
|
|
@@ -361,55 +472,114 @@ function ObjectLevelField.prototype.setValue(self, entry, levelOrValue, value)
|
|
|
361
472
|
valueByLevel[level + 1] = value
|
|
362
473
|
return true
|
|
363
474
|
end
|
|
364
|
-
local
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
475
|
+
local previousOriginalValue
|
|
476
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
477
|
+
if modifiersByInstance ~= nil then
|
|
478
|
+
local modifiers = modifiersByInstance[entry]
|
|
479
|
+
if modifiers ~= nil and modifiers.size ~= 0 then
|
|
480
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
481
|
+
if originalValueByLevelByInstance == nil then
|
|
482
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
483
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
372
484
|
end
|
|
373
|
-
local
|
|
374
|
-
|
|
375
|
-
|
|
485
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, entry, mutableLuaMap)
|
|
486
|
+
previousOriginalValue = originalValueByLevel[level]
|
|
487
|
+
if value == previousOriginalValue then
|
|
488
|
+
return true
|
|
376
489
|
end
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
____valueByLevel_index_14_15 = self.defaultValue
|
|
380
|
-
end
|
|
381
|
-
local previousValue = ____valueByLevel_index_14_15
|
|
382
|
-
if value ~= previousValue then
|
|
383
|
-
valueByLevel[level + 1] = value
|
|
384
|
-
self:invokeValueChangeEvent(
|
|
385
|
-
entry,
|
|
386
|
-
self,
|
|
387
|
-
level,
|
|
388
|
-
previousValue,
|
|
389
|
-
value
|
|
390
|
-
)
|
|
391
|
-
end
|
|
392
|
-
return true
|
|
490
|
+
originalValueByLevel[level] = value
|
|
491
|
+
value = self:calculateActualValue(entry, level)
|
|
393
492
|
end
|
|
394
493
|
end
|
|
395
|
-
|
|
494
|
+
local previousValue = self:setActualValue(entry, level, value)
|
|
495
|
+
if previousValue == nil then
|
|
396
496
|
return false
|
|
397
497
|
end
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
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
|
|
402
504
|
end
|
|
403
|
-
|
|
404
|
-
|
|
505
|
+
____self_invokeValueChangeEvent_26(
|
|
506
|
+
self,
|
|
507
|
+
____entry_25,
|
|
405
508
|
self,
|
|
406
509
|
level,
|
|
407
|
-
|
|
510
|
+
____previousOriginalValue_24,
|
|
408
511
|
value
|
|
409
512
|
)
|
|
410
513
|
end
|
|
411
514
|
return true
|
|
412
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
|
+
)
|
|
536
|
+
end
|
|
537
|
+
function ObjectLevelField.prototype.applyModifier(self, instance, modifier)
|
|
538
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
539
|
+
if modifiersByInstance == nil then
|
|
540
|
+
modifiersByInstance = mutableWeakLuaMap()
|
|
541
|
+
self.modifiersByInstance = modifiersByInstance
|
|
542
|
+
end
|
|
543
|
+
if getOrPut(modifiersByInstance, instance, mutableLinkedSet):add(modifier) then
|
|
544
|
+
local originalValueByLevelByInstance = self.originalValueByLevelByInstance
|
|
545
|
+
if originalValueByLevelByInstance == nil then
|
|
546
|
+
originalValueByLevelByInstance = mutableWeakLuaMap()
|
|
547
|
+
self.originalValueByLevelByInstance = originalValueByLevelByInstance
|
|
548
|
+
end
|
|
549
|
+
local originalValueByLevel = getOrPut(originalValueByLevelByInstance, instance, mutableLuaMap)
|
|
550
|
+
local levelCount = self:getLevelCount(instance)
|
|
551
|
+
for level = 0, levelCount - 1 do
|
|
552
|
+
local ____originalValueByLevel_level_27 = originalValueByLevel[level]
|
|
553
|
+
if ____originalValueByLevel_level_27 == nil then
|
|
554
|
+
____originalValueByLevel_level_27 = self:getActualValue(instance, level)
|
|
555
|
+
end
|
|
556
|
+
originalValueByLevel[level] = ____originalValueByLevel_level_27
|
|
557
|
+
self:setActualValue(
|
|
558
|
+
instance,
|
|
559
|
+
level,
|
|
560
|
+
self:calculateActualValue(instance, level)
|
|
561
|
+
)
|
|
562
|
+
end
|
|
563
|
+
end
|
|
564
|
+
end
|
|
565
|
+
function ObjectLevelField.prototype.removeModifier(self, instance, modifier)
|
|
566
|
+
local modifiersByInstance = self.modifiersByInstance
|
|
567
|
+
if modifiersByInstance ~= nil then
|
|
568
|
+
local modifiers = modifiersByInstance[instance]
|
|
569
|
+
if modifiers ~= nil and modifiers:remove(modifier) then
|
|
570
|
+
local levelCount = self:getLevelCount(instance)
|
|
571
|
+
for level = 0, levelCount - 1 do
|
|
572
|
+
self:setActualValue(
|
|
573
|
+
instance,
|
|
574
|
+
level,
|
|
575
|
+
self:calculateActualValue(instance, level)
|
|
576
|
+
)
|
|
577
|
+
end
|
|
578
|
+
return true
|
|
579
|
+
end
|
|
580
|
+
end
|
|
581
|
+
return false
|
|
582
|
+
end
|
|
413
583
|
function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value)
|
|
414
584
|
if value ~= nil then
|
|
415
585
|
if __TS__TypeOf(value) ~= __TS__TypeOf(self.defaultValue) then
|
|
@@ -425,6 +595,79 @@ function ObjectLevelField.prototype.trySetValue(self, entry, levelOrValue, value
|
|
|
425
595
|
end
|
|
426
596
|
return self:setValue(entry, levelOrValue)
|
|
427
597
|
end
|
|
598
|
+
function ObjectLevelField.prototype.getActualValue(self, instance, level)
|
|
599
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
600
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
601
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[self:getObjectDataEntryId(instance)]
|
|
602
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
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]
|
|
607
|
+
end
|
|
608
|
+
local ____temp_30_31 = ____temp_30
|
|
609
|
+
if ____temp_30_31 == nil then
|
|
610
|
+
____temp_30_31 = self.defaultValue
|
|
611
|
+
end
|
|
612
|
+
return ____temp_30_31
|
|
613
|
+
end
|
|
614
|
+
end
|
|
615
|
+
local ____temp_32 = self:getNativeFieldValue(instance, level)
|
|
616
|
+
if ____temp_32 == nil then
|
|
617
|
+
____temp_32 = self.defaultValue
|
|
618
|
+
end
|
|
619
|
+
return ____temp_32
|
|
620
|
+
end
|
|
621
|
+
function ObjectLevelField.prototype.setActualValue(self, instance, level, value)
|
|
622
|
+
local defaultValueByObjectDataEntryId = defaultValueByObjectDataEntryIdByObjectFieldId[self.id]
|
|
623
|
+
local objectDataEntryId = self:getObjectDataEntryId(instance)
|
|
624
|
+
if defaultValueByObjectDataEntryId ~= nil or self.isGlobal then
|
|
625
|
+
local defaultValueByLevel = (defaultValueByObjectDataEntryId or emptyLuaMap())[objectDataEntryId]
|
|
626
|
+
if defaultValueByLevel ~= nil or self.isGlobal then
|
|
627
|
+
local valueByLevel = self.valueByInstance[instance]
|
|
628
|
+
if valueByLevel == nil then
|
|
629
|
+
valueByLevel = {}
|
|
630
|
+
self.valueByInstance[instance] = valueByLevel
|
|
631
|
+
end
|
|
632
|
+
local ____valueByLevel_index_33 = valueByLevel[level + 1]
|
|
633
|
+
if ____valueByLevel_index_33 == nil then
|
|
634
|
+
____valueByLevel_index_33 = (defaultValueByLevel or emptyArray())[level + 1]
|
|
635
|
+
end
|
|
636
|
+
local ____valueByLevel_index_33_34 = ____valueByLevel_index_33
|
|
637
|
+
if ____valueByLevel_index_33_34 == nil then
|
|
638
|
+
____valueByLevel_index_33_34 = self.defaultValue
|
|
639
|
+
end
|
|
640
|
+
local previousValue = ____valueByLevel_index_33_34
|
|
641
|
+
valueByLevel[level + 1] = value
|
|
642
|
+
return previousValue
|
|
643
|
+
end
|
|
644
|
+
end
|
|
645
|
+
if not self:hasNativeFieldValue(objectDataEntryId) then
|
|
646
|
+
return nil
|
|
647
|
+
end
|
|
648
|
+
local previousValue = self:getNativeFieldValue(instance, level)
|
|
649
|
+
if value ~= previousValue and not self:setNativeFieldValue(instance, level, value) then
|
|
650
|
+
return nil
|
|
651
|
+
end
|
|
652
|
+
return previousValue
|
|
653
|
+
end
|
|
654
|
+
function ObjectLevelField.prototype.calculateActualValue(self, instance, level)
|
|
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]
|
|
660
|
+
if originalValue ~= nil then
|
|
661
|
+
local value = originalValue
|
|
662
|
+
if modifiers ~= nil then
|
|
663
|
+
for modifier in pairs(modifiers) do
|
|
664
|
+
value = modifier(instance, level, value, originalValue)
|
|
665
|
+
end
|
|
666
|
+
end
|
|
667
|
+
return value
|
|
668
|
+
end
|
|
669
|
+
return self.defaultValue
|
|
670
|
+
end
|
|
428
671
|
function ObjectLevelField.prototype.invokeValueChangeEvent(self, ...)
|
|
429
672
|
self:invokeValueChangeEventRecursive(
|
|
430
673
|
getClass(self),
|
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;
|
|
@@ -8,3 +9,12 @@ export declare const randomFloat: {
|
|
|
8
9
|
(upperBound?: number): number;
|
|
9
10
|
(lowerBound: number, upperBound: number): number;
|
|
10
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
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local ____math = require("math")
|
|
3
3
|
local MAXIMUM_INTEGER = ____math.MAXIMUM_INTEGER
|
|
4
|
+
local PI = ____math.PI
|
|
4
5
|
local getRandomInt = GetRandomInt
|
|
5
6
|
local getRandomReal = GetRandomReal
|
|
7
|
+
local select = _G.select
|
|
8
|
+
local cos = math.cos
|
|
9
|
+
local sin = math.sin
|
|
10
|
+
local sqrt = math.sqrt
|
|
6
11
|
____exports.randomAngle = function() return getRandomReal(0, 360) end
|
|
7
12
|
____exports.randomInteger = function(m, n) return n ~= nil and getRandomInt(m, n) or getRandomInt(0, m or MAXIMUM_INTEGER) end
|
|
8
13
|
____exports.randomFloat = function(m, n) return n ~= nil and getRandomReal(m, n) or getRandomReal(0, m or MAXIMUM_INTEGER) end
|
|
14
|
+
____exports.randomXY = function(centerX, centerY, range)
|
|
15
|
+
local r = range * sqrt(getRandomReal(0, 1))
|
|
16
|
+
local t = getRandomReal(0, 1) * 2 * PI
|
|
17
|
+
return centerX + r * cos(t), centerY + r * sin(t)
|
|
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
|
|
9
31
|
return ____exports
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { StandardSoundPresetId } from "../../object-data/entry/sound-preset";
|
|
3
|
+
export declare const ABOMINATION_PISSED_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
4
|
+
export declare const ABOMINATION_READY_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
5
|
+
export declare const ABOMINATION_WAR_CRY_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
6
|
+
export declare const AXE_MEDIUM_CHOP_WOOD_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
7
|
+
export declare const IMPALE_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
8
|
+
export declare const IMPALE_HIT_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
9
|
+
export declare const IMPALE_LAND_SOUND_PRESET_ID: StandardSoundPresetId;
|
|
10
|
+
export declare const IMPALE_CAST_SOUND_PRESET_ID: StandardSoundPresetId;
|