@quenty/rogue-properties 11.23.0-canary.ae8d76d.0 → 11.23.0
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/CHANGELOG.md +1 -1
- package/package.json +25 -25
- package/src/Shared/Array/RoguePropertyArrayConstants.lua +2 -2
- package/src/Shared/Array/RoguePropertyArrayUtils.lua +2 -2
- package/src/Shared/Cache/RoguePropertyCache.lua +0 -1
- package/src/Shared/Cache/RoguePropertyCacheService.lua +2 -2
- package/src/Shared/Definition/RoguePropertyDefinition.lua +4 -5
- package/src/Shared/Definition/RoguePropertyDefinitionArrayHelper.lua +1 -1
- package/src/Shared/Implementation/RogueProperty.lua +68 -28
- package/src/Shared/Implementation/RoguePropertyArrayHelper.lua +5 -3
- package/src/Shared/Implementation/RoguePropertyUtils.lua +1 -1
- package/src/Shared/Modifiers/Implementations/RogueAdditive.lua +8 -8
- package/src/Shared/Modifiers/Implementations/RogueModifierBase.lua +2 -2
- package/src/Shared/Modifiers/Implementations/RogueMultiplier.lua +8 -8
- package/src/Shared/Modifiers/Implementations/RogueSetter.lua +4 -4
- package/src/Shared/Modifiers/RogueModifierInterface.lua +6 -6
- package/src/Shared/Modifiers/RoguePropertyModifierData.lua +3 -3
- package/src/Shared/RoguePropertyService.lua +1 -1
- package/test/scripts/Client/ClientMain.client.lua +1 -1
- package/test/scripts/Server/ServerMain.server.lua +37 -38
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [11.23.0
|
|
6
|
+
# [11.23.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/rogue-properties@11.22.3...@quenty/rogue-properties@11.23.0) (2025-05-10)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/rogue-properties",
|
|
3
|
-
"version": "11.23.0
|
|
3
|
+
"version": "11.23.0",
|
|
4
4
|
"description": "Roguelike properties which can be modified by external provides",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -24,33 +24,33 @@
|
|
|
24
24
|
"Quenty"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@quenty/adorneedata": "7.19.0
|
|
28
|
-
"@quenty/baseobject": "10.
|
|
29
|
-
"@quenty/binder": "14.20.0
|
|
30
|
-
"@quenty/brio": "14.18.0
|
|
31
|
-
"@quenty/defaultvalueutils": "1.2.2",
|
|
32
|
-
"@quenty/ducktype": "5.
|
|
33
|
-
"@quenty/instanceutils": "13.18.0
|
|
34
|
-
"@quenty/jsonutils": "10.11.0
|
|
35
|
-
"@quenty/linkutils": "13.18.0
|
|
36
|
-
"@quenty/loader": "10.
|
|
37
|
-
"@quenty/maid": "3.
|
|
38
|
-
"@quenty/observablecollection": "12.21.0
|
|
39
|
-
"@quenty/rx": "13.18.0
|
|
40
|
-
"@quenty/rxbinderutils": "14.20.0
|
|
41
|
-
"@quenty/rxsignal": "7.18.0
|
|
42
|
-
"@quenty/servicebag": "11.12.0
|
|
43
|
-
"@quenty/signal": "7.
|
|
44
|
-
"@quenty/spring": "10.9.0
|
|
45
|
-
"@quenty/string": "3.3.3",
|
|
46
|
-
"@quenty/table": "3.
|
|
47
|
-
"@quenty/tie": "10.21.0
|
|
48
|
-
"@quenty/valuebaseutils": "13.18.0
|
|
49
|
-
"@quenty/valueobject": "13.18.0
|
|
27
|
+
"@quenty/adorneedata": "^7.19.0",
|
|
28
|
+
"@quenty/baseobject": "^10.9.0",
|
|
29
|
+
"@quenty/binder": "^14.20.0",
|
|
30
|
+
"@quenty/brio": "^14.18.0",
|
|
31
|
+
"@quenty/defaultvalueutils": "^1.2.2",
|
|
32
|
+
"@quenty/ducktype": "^5.9.0",
|
|
33
|
+
"@quenty/instanceutils": "^13.18.0",
|
|
34
|
+
"@quenty/jsonutils": "^10.11.0",
|
|
35
|
+
"@quenty/linkutils": "^13.18.0",
|
|
36
|
+
"@quenty/loader": "^10.9.0",
|
|
37
|
+
"@quenty/maid": "^3.5.0",
|
|
38
|
+
"@quenty/observablecollection": "^12.21.0",
|
|
39
|
+
"@quenty/rx": "^13.18.0",
|
|
40
|
+
"@quenty/rxbinderutils": "^14.20.0",
|
|
41
|
+
"@quenty/rxsignal": "^7.18.0",
|
|
42
|
+
"@quenty/servicebag": "^11.12.0",
|
|
43
|
+
"@quenty/signal": "^7.11.0",
|
|
44
|
+
"@quenty/spring": "^10.9.0",
|
|
45
|
+
"@quenty/string": "^3.3.3",
|
|
46
|
+
"@quenty/table": "^3.8.0",
|
|
47
|
+
"@quenty/tie": "^10.21.0",
|
|
48
|
+
"@quenty/valuebaseutils": "^13.18.0",
|
|
49
|
+
"@quenty/valueobject": "^13.18.0",
|
|
50
50
|
"@quentystudios/t": "^3.0.0"
|
|
51
51
|
},
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "20cff952c2cf06b959f2f11d2293bdef38acc604"
|
|
56
56
|
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
|
+
local DefaultValueUtils = require("DefaultValueUtils")
|
|
7
8
|
local RoguePropertyArrayConstants = require("RoguePropertyArrayConstants")
|
|
8
9
|
local String = require("String")
|
|
9
|
-
local DefaultValueUtils = require("DefaultValueUtils")
|
|
10
10
|
|
|
11
11
|
local RoguePropertyArrayUtils = {}
|
|
12
12
|
|
|
@@ -160,4 +160,4 @@ function RoguePropertyArrayUtils.createDefinitionsFromArrayData(arrayData, prope
|
|
|
160
160
|
return definitions
|
|
161
161
|
end
|
|
162
162
|
|
|
163
|
-
return RoguePropertyArrayUtils
|
|
163
|
+
return RoguePropertyArrayUtils
|
|
@@ -18,7 +18,7 @@ function RoguePropertyCacheService:Init(serviceBag: ServiceBag.ServiceBag)
|
|
|
18
18
|
assert(not self._serviceBag, "Already initialized")
|
|
19
19
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
20
20
|
|
|
21
|
-
self._cache = setmetatable({}, {__mode = "k"})
|
|
21
|
+
self._cache = setmetatable({}, { __mode = "k" })
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
function RoguePropertyCacheService:GetCache(roguePropertyDefinition)
|
|
@@ -37,4 +37,4 @@ function RoguePropertyCacheService:GetCache(roguePropertyDefinition)
|
|
|
37
37
|
return cache
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
return RoguePropertyCacheService
|
|
40
|
+
return RoguePropertyCacheService
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
|
+
local DuckTypeUtils = require("DuckTypeUtils")
|
|
7
8
|
local RogueProperty = require("RogueProperty")
|
|
8
|
-
local
|
|
9
|
+
local RoguePropertyCacheService = require("RoguePropertyCacheService")
|
|
9
10
|
local RoguePropertyUtils = require("RoguePropertyUtils")
|
|
10
|
-
local
|
|
11
|
+
local ServiceBag = require("ServiceBag")
|
|
11
12
|
local ValueBaseUtils = require("ValueBaseUtils")
|
|
12
|
-
local RoguePropertyCacheService = require("RoguePropertyCacheService")
|
|
13
13
|
|
|
14
14
|
local RoguePropertyDefinition = {}
|
|
15
15
|
RoguePropertyDefinition.ClassName = "RoguePropertyDefinition"
|
|
@@ -159,5 +159,4 @@ function RoguePropertyDefinition:_computeStorageInstanceType()
|
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
return RoguePropertyDefinition
|
|
162
|
+
return RoguePropertyDefinition
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
|
+
local Maid = require("Maid")
|
|
8
|
+
local Observable = require("Observable")
|
|
9
|
+
local ObservableSortedList = require("ObservableSortedList")
|
|
7
10
|
local RogueAdditive = require("RogueAdditive")
|
|
8
11
|
local RogueModifierInterface = require("RogueModifierInterface")
|
|
9
12
|
local RogueMultiplier = require("RogueMultiplier")
|
|
@@ -14,11 +17,8 @@ local Rx = require("Rx")
|
|
|
14
17
|
local RxBrioUtils = require("RxBrioUtils")
|
|
15
18
|
local RxInstanceUtils = require("RxInstanceUtils")
|
|
16
19
|
local RxSignal = require("RxSignal")
|
|
17
|
-
local ValueBaseUtils = require("ValueBaseUtils")
|
|
18
|
-
local Maid = require("Maid")
|
|
19
|
-
local Observable = require("Observable")
|
|
20
|
-
local ObservableSortedList = require("ObservableSortedList")
|
|
21
20
|
local ServiceBag = require("ServiceBag")
|
|
21
|
+
local ValueBaseUtils = require("ValueBaseUtils")
|
|
22
22
|
|
|
23
23
|
local RogueProperty = {}
|
|
24
24
|
RogueProperty.ClassName = "RogueProperty"
|
|
@@ -94,17 +94,21 @@ end
|
|
|
94
94
|
function RogueProperty:_observeBaseValueBrio()
|
|
95
95
|
local parentDefinition = self._definition:GetParentPropertyDefinition()
|
|
96
96
|
if parentDefinition then
|
|
97
|
-
return parentDefinition:ObserveContainerBrio(self._adornee, self:CanInitialize())
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
97
|
+
return parentDefinition:ObserveContainerBrio(self._adornee, self:CanInitialize()):Pipe({
|
|
98
|
+
RxBrioUtils.switchMapBrio(function(container)
|
|
99
|
+
return RxInstanceUtils.observeLastNamedChildBrio(
|
|
100
|
+
container,
|
|
101
|
+
self._definition:GetStorageInstanceType(),
|
|
102
|
+
self._definition:GetName()
|
|
103
|
+
)
|
|
104
|
+
end),
|
|
105
|
+
})
|
|
106
106
|
else
|
|
107
|
-
return RxInstanceUtils.observeLastNamedChildBrio(
|
|
107
|
+
return RxInstanceUtils.observeLastNamedChildBrio(
|
|
108
|
+
self._adornee,
|
|
109
|
+
self._definition:GetStorageInstanceType(),
|
|
110
|
+
self._definition:GetName()
|
|
111
|
+
)
|
|
108
112
|
end
|
|
109
113
|
end
|
|
110
114
|
|
|
@@ -115,7 +119,13 @@ function RogueProperty:SetBaseValue(value)
|
|
|
115
119
|
if baseValue then
|
|
116
120
|
baseValue.Value = self:_encodeValue(value)
|
|
117
121
|
else
|
|
118
|
-
warn(
|
|
122
|
+
warn(
|
|
123
|
+
string.format(
|
|
124
|
+
"[RogueProperty.SetBaseValue] - Failed to get the baseValue for %q on %q",
|
|
125
|
+
self._definition:GetFullName(),
|
|
126
|
+
self._adornee:GetFullName()
|
|
127
|
+
)
|
|
128
|
+
)
|
|
119
129
|
end
|
|
120
130
|
end
|
|
121
131
|
|
|
@@ -124,14 +134,20 @@ function RogueProperty:SetValue(value)
|
|
|
124
134
|
|
|
125
135
|
local baseValue = self:GetBaseValueObject()
|
|
126
136
|
if not baseValue then
|
|
127
|
-
warn(
|
|
137
|
+
warn(
|
|
138
|
+
string.format(
|
|
139
|
+
"[RogueProperty.SetValue] - Failed to get the baseValue for %q on %q",
|
|
140
|
+
self._definition:GetFullName(),
|
|
141
|
+
self._adornee:GetFullName()
|
|
142
|
+
)
|
|
143
|
+
)
|
|
128
144
|
return
|
|
129
145
|
end
|
|
130
146
|
|
|
131
147
|
local current = value
|
|
132
148
|
|
|
133
149
|
local modifiers = self:GetRogueModifiers()
|
|
134
|
-
for i
|
|
150
|
+
for i = #modifiers, 1, -1 do
|
|
135
151
|
current = modifiers[i]:GetInvertedVersion(current, value)
|
|
136
152
|
end
|
|
137
153
|
|
|
@@ -225,21 +241,21 @@ function RogueProperty:Observe()
|
|
|
225
241
|
|
|
226
242
|
return self:_observeModifierSortedList():Pipe({
|
|
227
243
|
Rx.switchMap(function(sortedList)
|
|
228
|
-
|
|
229
|
-
end)
|
|
244
|
+
return sortedList:Observe()
|
|
245
|
+
end),
|
|
230
246
|
Rx.switchMap(function(rogueModifierList)
|
|
231
|
-
|
|
247
|
+
local current = observeInitialValue
|
|
232
248
|
for _, rogueModifier in rogueModifierList do
|
|
233
249
|
current = rogueModifier:ObserveModifiedVersion(current)
|
|
234
250
|
end
|
|
235
251
|
return current
|
|
236
|
-
end)
|
|
252
|
+
end),
|
|
237
253
|
})
|
|
238
254
|
end
|
|
239
255
|
|
|
240
256
|
function RogueProperty:ObserveBrio(predicate)
|
|
241
257
|
return self:Observe():Pipe({
|
|
242
|
-
RxBrioUtils.switchToBrio(predicate)
|
|
258
|
+
RxBrioUtils.switchToBrio(predicate),
|
|
243
259
|
})
|
|
244
260
|
end
|
|
245
261
|
|
|
@@ -248,7 +264,13 @@ function RogueProperty:CreateMultiplier(amount, source)
|
|
|
248
264
|
|
|
249
265
|
local baseValue = self:GetBaseValueObject()
|
|
250
266
|
if not baseValue then
|
|
251
|
-
warn(
|
|
267
|
+
warn(
|
|
268
|
+
string.format(
|
|
269
|
+
"[RogueProperty.CreateMultiplier] - Failed to get the baseValue for %q on %q",
|
|
270
|
+
self._definition:GetFullName(),
|
|
271
|
+
self._adornee:GetFullName()
|
|
272
|
+
)
|
|
273
|
+
)
|
|
252
274
|
end
|
|
253
275
|
|
|
254
276
|
local className = ValueBaseUtils.getClassNameFromType(typeof(amount))
|
|
@@ -277,7 +299,13 @@ function RogueProperty:CreateAdditive(amount: number, source)
|
|
|
277
299
|
|
|
278
300
|
local baseValue = self:GetBaseValueObject()
|
|
279
301
|
if not baseValue then
|
|
280
|
-
warn(
|
|
302
|
+
warn(
|
|
303
|
+
string.format(
|
|
304
|
+
"[RogueProperty.CreateAdditive] - Failed to get the baseValue for %q on %q",
|
|
305
|
+
self._definition:GetFullName(),
|
|
306
|
+
self._adornee:GetFullName()
|
|
307
|
+
)
|
|
308
|
+
)
|
|
281
309
|
return nil
|
|
282
310
|
end
|
|
283
311
|
|
|
@@ -305,7 +333,13 @@ end
|
|
|
305
333
|
function RogueProperty:GetNamedAdditive(name, source)
|
|
306
334
|
local baseValue = self:GetBaseValueObject()
|
|
307
335
|
if not baseValue then
|
|
308
|
-
warn(
|
|
336
|
+
warn(
|
|
337
|
+
string.format(
|
|
338
|
+
"[RogueProperty.GetNamedAdditive] - Failed to get the baseValue for %q on %q",
|
|
339
|
+
self._definition:GetFullName(),
|
|
340
|
+
self._adornee:GetFullName()
|
|
341
|
+
)
|
|
342
|
+
)
|
|
309
343
|
return nil
|
|
310
344
|
end
|
|
311
345
|
|
|
@@ -324,7 +358,13 @@ end
|
|
|
324
358
|
function RogueProperty:CreateSetter(value, source)
|
|
325
359
|
local baseValue = self:GetBaseValueObject()
|
|
326
360
|
if not baseValue then
|
|
327
|
-
warn(
|
|
361
|
+
warn(
|
|
362
|
+
string.format(
|
|
363
|
+
"[RogueProperty.CreateSetter] - Failed to get the baseValue for %q on %q",
|
|
364
|
+
self._definition:GetFullName(),
|
|
365
|
+
self._adornee:GetFullName()
|
|
366
|
+
)
|
|
367
|
+
)
|
|
328
368
|
return nil
|
|
329
369
|
end
|
|
330
370
|
|
|
@@ -383,8 +423,8 @@ end
|
|
|
383
423
|
|
|
384
424
|
function RogueProperty:GetChangedEvent()
|
|
385
425
|
return RxSignal.new(self:Observe():Pipe({
|
|
386
|
-
Rx.skip(1)
|
|
426
|
+
Rx.skip(1),
|
|
387
427
|
}))
|
|
388
428
|
end
|
|
389
429
|
|
|
390
|
-
return RogueProperty
|
|
430
|
+
return RogueProperty
|
|
@@ -61,8 +61,10 @@ function RoguePropertyArrayHelper:GetArrayRogueProperties()
|
|
|
61
61
|
|
|
62
62
|
local adornee = self._roguePropertyTable:GetAdornee()
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
local definitions = RoguePropertyArrayUtils.createDefinitionsFromContainer(
|
|
65
|
+
container,
|
|
66
|
+
self._arrayDefinitionHelper:GetPropertyTableDefinition()
|
|
67
|
+
)
|
|
66
68
|
local rogueProperties = {}
|
|
67
69
|
|
|
68
70
|
for index, definition in definitions do
|
|
@@ -198,4 +200,4 @@ function RoguePropertyArrayHelper:ObserveArrayValues()
|
|
|
198
200
|
return Rx.combineLatest(observables)
|
|
199
201
|
end
|
|
200
202
|
|
|
201
|
-
return RoguePropertyArrayHelper
|
|
203
|
+
return RoguePropertyArrayHelper
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
|
-
local RogueModifierBase = require("RogueModifierBase")
|
|
8
|
-
local RxInstanceUtils = require("RxInstanceUtils")
|
|
9
7
|
local Binder = require("Binder")
|
|
10
|
-
local Rx = require("Rx")
|
|
11
8
|
local LinearValue = require("LinearValue")
|
|
9
|
+
local RogueModifierBase = require("RogueModifierBase")
|
|
12
10
|
local RogueModifierInterface = require("RogueModifierInterface")
|
|
11
|
+
local Rx = require("Rx")
|
|
12
|
+
local RxInstanceUtils = require("RxInstanceUtils")
|
|
13
13
|
|
|
14
14
|
local RogueAdditive = setmetatable({}, RogueModifierBase)
|
|
15
15
|
RogueAdditive.ClassName = "RogueAdditive"
|
|
@@ -39,8 +39,8 @@ end
|
|
|
39
39
|
|
|
40
40
|
function RogueAdditive:ObserveModifiedVersion(inputValue)
|
|
41
41
|
return Rx.combineLatest({
|
|
42
|
-
inputValue = inputValue
|
|
43
|
-
additive = RxInstanceUtils.observeProperty(self._obj, "Value")
|
|
42
|
+
inputValue = inputValue,
|
|
43
|
+
additive = RxInstanceUtils.observeProperty(self._obj, "Value"),
|
|
44
44
|
}):Pipe({
|
|
45
45
|
Rx.map(function(state)
|
|
46
46
|
if state.inputValue and type(state.inputValue) == type(state.additive) then
|
|
@@ -51,9 +51,9 @@ function RogueAdditive:ObserveModifiedVersion(inputValue)
|
|
|
51
51
|
else
|
|
52
52
|
return state.inputValue
|
|
53
53
|
end
|
|
54
|
-
end)
|
|
55
|
-
Rx.distinct()
|
|
54
|
+
end),
|
|
55
|
+
Rx.distinct(),
|
|
56
56
|
})
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
return Binder.new("RogueAdditive", RogueAdditive)
|
|
59
|
+
return Binder.new("RogueAdditive", RogueAdditive)
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
7
|
local BaseObject = require("BaseObject")
|
|
8
|
-
local TieRealmService = require("TieRealmService")
|
|
9
8
|
local RoguePropertyModifierData = require("RoguePropertyModifierData")
|
|
9
|
+
local TieRealmService = require("TieRealmService")
|
|
10
10
|
|
|
11
11
|
local RogueModifierBase = setmetatable({}, BaseObject)
|
|
12
12
|
RogueModifierBase.ClassName = "RogueModifierBase"
|
|
@@ -34,4 +34,4 @@ function RogueModifierBase:ObserveModifiedVersion(_value)
|
|
|
34
34
|
error("Not implemented")
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
return RogueModifierBase
|
|
37
|
+
return RogueModifierBase
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
|
-
local RogueModifierBase = require("RogueModifierBase")
|
|
8
7
|
local Binder = require("Binder")
|
|
9
|
-
local Rx = require("Rx")
|
|
10
|
-
local RxInstanceUtils = require("RxInstanceUtils")
|
|
11
8
|
local LinearValue = require("LinearValue")
|
|
9
|
+
local RogueModifierBase = require("RogueModifierBase")
|
|
12
10
|
local RogueModifierInterface = require("RogueModifierInterface")
|
|
11
|
+
local Rx = require("Rx")
|
|
12
|
+
local RxInstanceUtils = require("RxInstanceUtils")
|
|
13
13
|
|
|
14
14
|
local RogueMultiplier = setmetatable({}, RogueModifierBase)
|
|
15
15
|
RogueMultiplier.ClassName = "RogueMultiplier"
|
|
@@ -39,8 +39,8 @@ end
|
|
|
39
39
|
|
|
40
40
|
function RogueMultiplier:ObserveModifiedVersion(inputValue)
|
|
41
41
|
return Rx.combineLatest({
|
|
42
|
-
inputValue = inputValue
|
|
43
|
-
multiplier = RxInstanceUtils.observeProperty(self._obj, "Value")
|
|
42
|
+
inputValue = inputValue,
|
|
43
|
+
multiplier = RxInstanceUtils.observeProperty(self._obj, "Value"),
|
|
44
44
|
}):Pipe({
|
|
45
45
|
Rx.map(function(state)
|
|
46
46
|
if state.inputValue and type(state.inputValue) == type(state.multiplier) then
|
|
@@ -51,9 +51,9 @@ function RogueMultiplier:ObserveModifiedVersion(inputValue)
|
|
|
51
51
|
else
|
|
52
52
|
return state.inputValue
|
|
53
53
|
end
|
|
54
|
-
end)
|
|
55
|
-
Rx.distinct()
|
|
54
|
+
end),
|
|
55
|
+
Rx.distinct(),
|
|
56
56
|
})
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
return Binder.new("RogueMultiplier", RogueMultiplier)
|
|
59
|
+
return Binder.new("RogueMultiplier", RogueMultiplier)
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
local require = require(script.Parent.loader).load(script)
|
|
6
6
|
|
|
7
|
-
local RogueModifierBase = require("RogueModifierBase")
|
|
8
7
|
local Binder = require("Binder")
|
|
9
|
-
local
|
|
8
|
+
local RogueModifierBase = require("RogueModifierBase")
|
|
10
9
|
local RogueModifierInterface = require("RogueModifierInterface")
|
|
10
|
+
local RxValueBaseUtils = require("RxValueBaseUtils")
|
|
11
11
|
|
|
12
|
-
local RogueSetter = setmetatable(
|
|
12
|
+
local RogueSetter = setmetatable({}, RogueModifierBase)
|
|
13
13
|
RogueSetter.ClassName = "RogueSetter"
|
|
14
14
|
RogueSetter.__index = RogueSetter
|
|
15
15
|
|
|
@@ -33,4 +33,4 @@ function RogueSetter:GetInvertedVersion(_, initialValue)
|
|
|
33
33
|
return initialValue
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
return Binder.new("RogueSetter", RogueSetter)
|
|
36
|
+
return Binder.new("RogueSetter", RogueSetter)
|
|
@@ -7,11 +7,11 @@ local require = require(script.Parent.loader).load(script)
|
|
|
7
7
|
local TieDefinition = require("TieDefinition")
|
|
8
8
|
|
|
9
9
|
return TieDefinition.new("RogueModifier", {
|
|
10
|
-
Order = TieDefinition.Types.PROPERTY
|
|
11
|
-
Source = TieDefinition.Types.PROPERTY
|
|
10
|
+
Order = TieDefinition.Types.PROPERTY,
|
|
11
|
+
Source = TieDefinition.Types.PROPERTY,
|
|
12
12
|
|
|
13
13
|
--
|
|
14
|
-
GetModifiedVersion = TieDefinition.Types.METHOD
|
|
15
|
-
ObserveModifiedVersion = TieDefinition.Types.METHOD
|
|
16
|
-
GetInvertedVersion = TieDefinition.Types.METHOD
|
|
17
|
-
})
|
|
14
|
+
GetModifiedVersion = TieDefinition.Types.METHOD,
|
|
15
|
+
ObserveModifiedVersion = TieDefinition.Types.METHOD,
|
|
16
|
+
GetInvertedVersion = TieDefinition.Types.METHOD,
|
|
17
|
+
})
|
|
@@ -10,8 +10,8 @@ local ValueBaseValue = require("ValueBaseValue")
|
|
|
10
10
|
local t = require("t")
|
|
11
11
|
|
|
12
12
|
return AdorneeData.new({
|
|
13
|
-
Order = 0
|
|
13
|
+
Order = 0,
|
|
14
14
|
RoguePropertySourceLink = AdorneeDataEntry.new(t.optional(t.Instance), function(adornee)
|
|
15
15
|
return ValueBaseValue.new(adornee, "ObjectValue", "RoguePropertySourceLink", nil)
|
|
16
|
-
end)
|
|
17
|
-
})
|
|
16
|
+
end),
|
|
17
|
+
})
|
|
@@ -14,41 +14,41 @@ serviceBag:Start()
|
|
|
14
14
|
local RoguePropertyTableDefinition = require("RoguePropertyTableDefinition")
|
|
15
15
|
|
|
16
16
|
local propertyDefinition = RoguePropertyTableDefinition.new("CombatStats", {
|
|
17
|
-
Health = 100
|
|
17
|
+
Health = 100,
|
|
18
18
|
|
|
19
19
|
Ultimate = {
|
|
20
|
-
AttackDamage = 30
|
|
21
|
-
AbilityPower = 30
|
|
20
|
+
AttackDamage = 30,
|
|
21
|
+
AbilityPower = 30,
|
|
22
22
|
|
|
23
23
|
Sequence = {
|
|
24
24
|
{
|
|
25
|
-
Name = "Ultimate 1"
|
|
26
|
-
AnimationId = "rbxassetid://1"
|
|
27
|
-
}
|
|
25
|
+
Name = "Ultimate 1",
|
|
26
|
+
AnimationId = "rbxassetid://1",
|
|
27
|
+
},
|
|
28
28
|
{
|
|
29
|
-
Name = "Ultimate 2"
|
|
30
|
-
AnimationId = "rbxassetid://2"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
29
|
+
Name = "Ultimate 2",
|
|
30
|
+
AnimationId = "rbxassetid://2",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
34
|
|
|
35
35
|
HeavyPunch = {
|
|
36
|
-
AttackDamage = 45
|
|
37
|
-
AbilityPower = 100
|
|
36
|
+
AttackDamage = 45,
|
|
37
|
+
AbilityPower = 100,
|
|
38
38
|
|
|
39
39
|
Sequence = {
|
|
40
40
|
{
|
|
41
|
-
Name = "HeavyPunch 1"
|
|
42
|
-
AnimationId = "rbxassetid://1"
|
|
43
|
-
}
|
|
41
|
+
Name = "HeavyPunch 1",
|
|
42
|
+
AnimationId = "rbxassetid://1",
|
|
43
|
+
},
|
|
44
44
|
{
|
|
45
|
-
Name = "HeavyPunch 2"
|
|
46
|
-
AnimationId = "rbxassetid://2"
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
45
|
+
Name = "HeavyPunch 2",
|
|
46
|
+
AnimationId = "rbxassetid://2",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
50
|
|
|
51
|
-
ReticleHairRotationsDegree = { 0, 120, 240 }
|
|
51
|
+
ReticleHairRotationsDegree = { 0, 120, 240 },
|
|
52
52
|
})
|
|
53
53
|
|
|
54
54
|
local properties = propertyDefinition:GetPropertyTable(serviceBag, workspace)
|
|
@@ -70,24 +70,24 @@ properties.Changed:Connect(function()
|
|
|
70
70
|
end)
|
|
71
71
|
|
|
72
72
|
properties:SetBaseValue({
|
|
73
|
-
Health = 5
|
|
73
|
+
Health = 5,
|
|
74
74
|
|
|
75
75
|
Ultimate = {
|
|
76
|
-
AttackDamage = 2
|
|
77
|
-
AbilityPower = 2
|
|
78
|
-
}
|
|
76
|
+
AttackDamage = 2,
|
|
77
|
+
AbilityPower = 2,
|
|
78
|
+
},
|
|
79
79
|
|
|
80
80
|
HeavyPunch = {
|
|
81
|
-
AttackDamage = 5
|
|
82
|
-
AbilityPower = 9
|
|
83
|
-
}
|
|
81
|
+
AttackDamage = 5,
|
|
82
|
+
AbilityPower = 9,
|
|
83
|
+
},
|
|
84
84
|
|
|
85
|
-
ReticleHairRotationsDegree = { 1, 25, 135, 325, 500 }
|
|
85
|
+
ReticleHairRotationsDegree = { 1, 25, 135, 325, 500 },
|
|
86
86
|
})
|
|
87
87
|
|
|
88
88
|
-- print("ReticleHairRotationsDegree", properties.ReticleHairRotationsDegree.Value)
|
|
89
89
|
|
|
90
|
-
properties.ReticleHairRotationsDegree.Value = { 2, 5}
|
|
90
|
+
properties.ReticleHairRotationsDegree.Value = { 2, 5 }
|
|
91
91
|
|
|
92
92
|
-- print("ReticleHairRotationsDegree", properties.ReticleHairRotationsDegree.Value)
|
|
93
93
|
|
|
@@ -97,17 +97,16 @@ properties.Health.Value = 25
|
|
|
97
97
|
|
|
98
98
|
properties.Ultimate.Sequence.Value = {
|
|
99
99
|
{
|
|
100
|
-
Name = "Another value 3"
|
|
101
|
-
AnimationId = "rbxassetid://3"
|
|
102
|
-
}
|
|
100
|
+
Name = "Another value 3",
|
|
101
|
+
AnimationId = "rbxassetid://3",
|
|
102
|
+
},
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
-- print("properties.Ultimate.Sequence", properties.Ultimate.Sequence.Value)
|
|
106
106
|
|
|
107
107
|
properties.Value = {
|
|
108
|
-
Health = 25000
|
|
109
|
-
}
|
|
110
|
-
|
|
108
|
+
Health = 25000,
|
|
109
|
+
}
|
|
111
110
|
|
|
112
111
|
local multiplier = ultAttackDamage:CreateMultiplier(2, workspace)
|
|
113
112
|
-- ultAttackDamage:CreateAdditive(100, workspace)
|
|
@@ -118,4 +117,4 @@ local multiplier = ultAttackDamage:CreateMultiplier(2, workspace)
|
|
|
118
117
|
-- print(value:GetValue())
|
|
119
118
|
-- end)
|
|
120
119
|
|
|
121
|
-
multiplier:Destroy()
|
|
120
|
+
multiplier:Destroy()
|