@quenty/rogue-properties 11.22.4-canary.559.9f38947.0 → 11.23.0-canary.0a5db80.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 +2 -10
- package/package.json +23 -23
- package/src/Shared/Array/RoguePropertyArrayConstants.lua +2 -2
- package/src/Shared/Array/RoguePropertyArrayUtils.lua +2 -2
- package/src/Shared/Cache/RoguePropertyCache.lua +1 -0
- package/src/Shared/Cache/RoguePropertyCacheService.lua +2 -2
- package/src/Shared/Definition/RoguePropertyDefinition.lua +5 -4
- package/src/Shared/Definition/RoguePropertyDefinitionArrayHelper.lua +1 -1
- package/src/Shared/Implementation/RogueProperty.lua +28 -68
- package/src/Shared/Implementation/RoguePropertyArrayHelper.lua +3 -5
- 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 +38 -37
package/CHANGELOG.md
CHANGED
|
@@ -3,20 +3,12 @@
|
|
|
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
|
-
|
|
6
|
+
# [11.23.0-canary.0a5db80.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/rogue-properties@11.22.2...@quenty/rogue-properties@11.23.0-canary.0a5db80.0) (2025-05-10)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Bug Fixes
|
|
10
10
|
|
|
11
|
-
* Additional type checking updates ([
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## [11.22.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/rogue-properties@11.22.2...@quenty/rogue-properties@11.22.3) (2025-04-10)
|
|
18
|
-
|
|
19
|
-
**Note:** Version bump only for package @quenty/rogue-properties
|
|
11
|
+
* Additional type checking updates ([7e008c5](https://github.com/Quenty/NevermoreEngine/commit/7e008c58547bd00b5904e56541454a38c8d72ccc))
|
|
20
12
|
|
|
21
13
|
|
|
22
14
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/rogue-properties",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.23.0-canary.0a5db80.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.
|
|
28
|
-
"@quenty/baseobject": "10.
|
|
29
|
-
"@quenty/binder": "14.
|
|
30
|
-
"@quenty/brio": "14.
|
|
27
|
+
"@quenty/adorneedata": "7.19.0-canary.0a5db80.0",
|
|
28
|
+
"@quenty/baseobject": "10.9.0-canary.0a5db80.0",
|
|
29
|
+
"@quenty/binder": "14.20.0-canary.0a5db80.0",
|
|
30
|
+
"@quenty/brio": "14.18.0-canary.0a5db80.0",
|
|
31
31
|
"@quenty/defaultvalueutils": "1.2.2",
|
|
32
|
-
"@quenty/ducktype": "5.
|
|
33
|
-
"@quenty/instanceutils": "13.
|
|
34
|
-
"@quenty/jsonutils": "10.
|
|
35
|
-
"@quenty/linkutils": "13.
|
|
36
|
-
"@quenty/loader": "10.
|
|
37
|
-
"@quenty/maid": "3.
|
|
38
|
-
"@quenty/observablecollection": "12.
|
|
39
|
-
"@quenty/rx": "13.
|
|
40
|
-
"@quenty/rxbinderutils": "14.
|
|
41
|
-
"@quenty/rxsignal": "7.
|
|
42
|
-
"@quenty/servicebag": "11.
|
|
43
|
-
"@quenty/signal": "7.
|
|
44
|
-
"@quenty/spring": "10.
|
|
32
|
+
"@quenty/ducktype": "5.9.0-canary.0a5db80.0",
|
|
33
|
+
"@quenty/instanceutils": "13.18.0-canary.0a5db80.0",
|
|
34
|
+
"@quenty/jsonutils": "10.11.0-canary.0a5db80.0",
|
|
35
|
+
"@quenty/linkutils": "13.18.0-canary.0a5db80.0",
|
|
36
|
+
"@quenty/loader": "10.9.0-canary.0a5db80.0",
|
|
37
|
+
"@quenty/maid": "3.5.0-canary.0a5db80.0",
|
|
38
|
+
"@quenty/observablecollection": "12.21.0-canary.0a5db80.0",
|
|
39
|
+
"@quenty/rx": "13.18.0-canary.0a5db80.0",
|
|
40
|
+
"@quenty/rxbinderutils": "14.20.0-canary.0a5db80.0",
|
|
41
|
+
"@quenty/rxsignal": "7.18.0-canary.0a5db80.0",
|
|
42
|
+
"@quenty/servicebag": "11.12.0-canary.0a5db80.0",
|
|
43
|
+
"@quenty/signal": "7.11.0-canary.0a5db80.0",
|
|
44
|
+
"@quenty/spring": "10.9.0-canary.0a5db80.0",
|
|
45
45
|
"@quenty/string": "3.3.3",
|
|
46
|
-
"@quenty/table": "3.
|
|
47
|
-
"@quenty/tie": "10.
|
|
48
|
-
"@quenty/valuebaseutils": "13.
|
|
49
|
-
"@quenty/valueobject": "13.
|
|
46
|
+
"@quenty/table": "3.8.0-canary.0a5db80.0",
|
|
47
|
+
"@quenty/tie": "10.21.0-canary.0a5db80.0",
|
|
48
|
+
"@quenty/valuebaseutils": "13.18.0-canary.0a5db80.0",
|
|
49
|
+
"@quenty/valueobject": "13.18.0-canary.0a5db80.0",
|
|
50
50
|
"@quentystudios/t": "^3.0.0"
|
|
51
51
|
},
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "0a5db8004684dc3e76fd5944599a22602d48cfa9"
|
|
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")
|
|
8
7
|
local RoguePropertyArrayConstants = require("RoguePropertyArrayConstants")
|
|
9
8
|
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({}, {
|
|
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")
|
|
8
7
|
local RogueProperty = require("RogueProperty")
|
|
9
|
-
local RoguePropertyCacheService = require("RoguePropertyCacheService")
|
|
10
|
-
local RoguePropertyUtils = require("RoguePropertyUtils")
|
|
11
8
|
local ServiceBag = require("ServiceBag")
|
|
9
|
+
local RoguePropertyUtils = require("RoguePropertyUtils")
|
|
10
|
+
local DuckTypeUtils = require("DuckTypeUtils")
|
|
12
11
|
local ValueBaseUtils = require("ValueBaseUtils")
|
|
12
|
+
local RoguePropertyCacheService = require("RoguePropertyCacheService")
|
|
13
13
|
|
|
14
14
|
local RoguePropertyDefinition = {}
|
|
15
15
|
RoguePropertyDefinition.ClassName = "RoguePropertyDefinition"
|
|
@@ -159,4 +159,5 @@ function RoguePropertyDefinition:_computeStorageInstanceType()
|
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
|
|
163
|
+
return RoguePropertyDefinition
|
|
@@ -4,9 +4,6 @@
|
|
|
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")
|
|
10
7
|
local RogueAdditive = require("RogueAdditive")
|
|
11
8
|
local RogueModifierInterface = require("RogueModifierInterface")
|
|
12
9
|
local RogueMultiplier = require("RogueMultiplier")
|
|
@@ -17,8 +14,11 @@ local Rx = require("Rx")
|
|
|
17
14
|
local RxBrioUtils = require("RxBrioUtils")
|
|
18
15
|
local RxInstanceUtils = require("RxInstanceUtils")
|
|
19
16
|
local RxSignal = require("RxSignal")
|
|
20
|
-
local ServiceBag = require("ServiceBag")
|
|
21
17
|
local ValueBaseUtils = require("ValueBaseUtils")
|
|
18
|
+
local Maid = require("Maid")
|
|
19
|
+
local Observable = require("Observable")
|
|
20
|
+
local ObservableSortedList = require("ObservableSortedList")
|
|
21
|
+
local ServiceBag = require("ServiceBag")
|
|
22
22
|
|
|
23
23
|
local RogueProperty = {}
|
|
24
24
|
RogueProperty.ClassName = "RogueProperty"
|
|
@@ -94,21 +94,17 @@ 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())
|
|
98
|
+
:Pipe({
|
|
99
|
+
RxBrioUtils.switchMapBrio(function(container)
|
|
100
|
+
return RxInstanceUtils.observeLastNamedChildBrio(
|
|
101
|
+
container,
|
|
102
|
+
self._definition:GetStorageInstanceType(),
|
|
103
|
+
self._definition:GetName())
|
|
104
|
+
end);
|
|
105
|
+
})
|
|
106
106
|
else
|
|
107
|
-
return RxInstanceUtils.observeLastNamedChildBrio(
|
|
108
|
-
self._adornee,
|
|
109
|
-
self._definition:GetStorageInstanceType(),
|
|
110
|
-
self._definition:GetName()
|
|
111
|
-
)
|
|
107
|
+
return RxInstanceUtils.observeLastNamedChildBrio(self._adornee, self._definition:GetStorageInstanceType(), self._definition:GetName())
|
|
112
108
|
end
|
|
113
109
|
end
|
|
114
110
|
|
|
@@ -119,13 +115,7 @@ function RogueProperty:SetBaseValue(value)
|
|
|
119
115
|
if baseValue then
|
|
120
116
|
baseValue.Value = self:_encodeValue(value)
|
|
121
117
|
else
|
|
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
|
-
)
|
|
118
|
+
warn(string.format("[RogueProperty.SetBaseValue] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
|
|
129
119
|
end
|
|
130
120
|
end
|
|
131
121
|
|
|
@@ -134,20 +124,14 @@ function RogueProperty:SetValue(value)
|
|
|
134
124
|
|
|
135
125
|
local baseValue = self:GetBaseValueObject()
|
|
136
126
|
if not baseValue then
|
|
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
|
-
)
|
|
127
|
+
warn(string.format("[RogueProperty.SetValue] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
|
|
144
128
|
return
|
|
145
129
|
end
|
|
146
130
|
|
|
147
131
|
local current = value
|
|
148
132
|
|
|
149
133
|
local modifiers = self:GetRogueModifiers()
|
|
150
|
-
for i
|
|
134
|
+
for i=#modifiers, 1, -1 do
|
|
151
135
|
current = modifiers[i]:GetInvertedVersion(current, value)
|
|
152
136
|
end
|
|
153
137
|
|
|
@@ -241,21 +225,21 @@ function RogueProperty:Observe()
|
|
|
241
225
|
|
|
242
226
|
return self:_observeModifierSortedList():Pipe({
|
|
243
227
|
Rx.switchMap(function(sortedList)
|
|
244
|
-
|
|
245
|
-
end)
|
|
228
|
+
return sortedList:Observe()
|
|
229
|
+
end);
|
|
246
230
|
Rx.switchMap(function(rogueModifierList)
|
|
247
|
-
|
|
231
|
+
local current = observeInitialValue
|
|
248
232
|
for _, rogueModifier in rogueModifierList do
|
|
249
233
|
current = rogueModifier:ObserveModifiedVersion(current)
|
|
250
234
|
end
|
|
251
235
|
return current
|
|
252
|
-
end)
|
|
236
|
+
end);
|
|
253
237
|
})
|
|
254
238
|
end
|
|
255
239
|
|
|
256
240
|
function RogueProperty:ObserveBrio(predicate)
|
|
257
241
|
return self:Observe():Pipe({
|
|
258
|
-
RxBrioUtils.switchToBrio(predicate)
|
|
242
|
+
RxBrioUtils.switchToBrio(predicate)
|
|
259
243
|
})
|
|
260
244
|
end
|
|
261
245
|
|
|
@@ -264,13 +248,7 @@ function RogueProperty:CreateMultiplier(amount, source)
|
|
|
264
248
|
|
|
265
249
|
local baseValue = self:GetBaseValueObject()
|
|
266
250
|
if not baseValue then
|
|
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
|
-
)
|
|
251
|
+
warn(string.format("[RogueProperty.CreateMultiplier] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
|
|
274
252
|
end
|
|
275
253
|
|
|
276
254
|
local className = ValueBaseUtils.getClassNameFromType(typeof(amount))
|
|
@@ -299,13 +277,7 @@ function RogueProperty:CreateAdditive(amount: number, source)
|
|
|
299
277
|
|
|
300
278
|
local baseValue = self:GetBaseValueObject()
|
|
301
279
|
if not baseValue then
|
|
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
|
-
)
|
|
280
|
+
warn(string.format("[RogueProperty.CreateAdditive] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
|
|
309
281
|
return nil
|
|
310
282
|
end
|
|
311
283
|
|
|
@@ -333,13 +305,7 @@ end
|
|
|
333
305
|
function RogueProperty:GetNamedAdditive(name, source)
|
|
334
306
|
local baseValue = self:GetBaseValueObject()
|
|
335
307
|
if not baseValue then
|
|
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
|
-
)
|
|
308
|
+
warn(string.format("[RogueProperty.GetNamedAdditive] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
|
|
343
309
|
return nil
|
|
344
310
|
end
|
|
345
311
|
|
|
@@ -358,13 +324,7 @@ end
|
|
|
358
324
|
function RogueProperty:CreateSetter(value, source)
|
|
359
325
|
local baseValue = self:GetBaseValueObject()
|
|
360
326
|
if not baseValue then
|
|
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
|
-
)
|
|
327
|
+
warn(string.format("[RogueProperty.CreateSetter] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
|
|
368
328
|
return nil
|
|
369
329
|
end
|
|
370
330
|
|
|
@@ -423,8 +383,8 @@ end
|
|
|
423
383
|
|
|
424
384
|
function RogueProperty:GetChangedEvent()
|
|
425
385
|
return RxSignal.new(self:Observe():Pipe({
|
|
426
|
-
Rx.skip(1)
|
|
386
|
+
Rx.skip(1)
|
|
427
387
|
}))
|
|
428
388
|
end
|
|
429
389
|
|
|
430
|
-
return RogueProperty
|
|
390
|
+
return RogueProperty
|
|
@@ -61,10 +61,8 @@ function RoguePropertyArrayHelper:GetArrayRogueProperties()
|
|
|
61
61
|
|
|
62
62
|
local adornee = self._roguePropertyTable:GetAdornee()
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
self._arrayDefinitionHelper:GetPropertyTableDefinition()
|
|
67
|
-
)
|
|
64
|
+
|
|
65
|
+
local definitions = RoguePropertyArrayUtils.createDefinitionsFromContainer(container, self._arrayDefinitionHelper:GetPropertyTableDefinition())
|
|
68
66
|
local rogueProperties = {}
|
|
69
67
|
|
|
70
68
|
for index, definition in definitions do
|
|
@@ -200,4 +198,4 @@ function RoguePropertyArrayHelper:ObserveArrayValues()
|
|
|
200
198
|
return Rx.combineLatest(observables)
|
|
201
199
|
end
|
|
202
200
|
|
|
203
|
-
return RoguePropertyArrayHelper
|
|
201
|
+
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")
|
|
7
9
|
local Binder = require("Binder")
|
|
10
|
+
local Rx = require("Rx")
|
|
8
11
|
local LinearValue = require("LinearValue")
|
|
9
|
-
local RogueModifierBase = require("RogueModifierBase")
|
|
10
12
|
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 RoguePropertyModifierData = require("RoguePropertyModifierData")
|
|
9
8
|
local TieRealmService = require("TieRealmService")
|
|
9
|
+
local RoguePropertyModifierData = require("RoguePropertyModifierData")
|
|
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 Binder = require("Binder")
|
|
8
|
-
local LinearValue = require("LinearValue")
|
|
9
7
|
local RogueModifierBase = require("RogueModifierBase")
|
|
10
|
-
local
|
|
8
|
+
local Binder = require("Binder")
|
|
11
9
|
local Rx = require("Rx")
|
|
12
10
|
local RxInstanceUtils = require("RxInstanceUtils")
|
|
11
|
+
local LinearValue = require("LinearValue")
|
|
12
|
+
local RogueModifierInterface = require("RogueModifierInterface")
|
|
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 Binder = require("Binder")
|
|
8
7
|
local RogueModifierBase = require("RogueModifierBase")
|
|
9
|
-
local
|
|
8
|
+
local Binder = require("Binder")
|
|
10
9
|
local RxValueBaseUtils = require("RxValueBaseUtils")
|
|
10
|
+
local RogueModifierInterface = require("RogueModifierInterface")
|
|
11
11
|
|
|
12
|
-
local RogueSetter = setmetatable({}, RogueModifierBase)
|
|
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,16 +97,17 @@ 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
|
-
}
|
|
108
|
+
Health = 25000;
|
|
109
|
+
};
|
|
110
|
+
|
|
110
111
|
|
|
111
112
|
local multiplier = ultAttackDamage:CreateMultiplier(2, workspace)
|
|
112
113
|
-- ultAttackDamage:CreateAdditive(100, workspace)
|
|
@@ -117,4 +118,4 @@ local multiplier = ultAttackDamage:CreateMultiplier(2, workspace)
|
|
|
117
118
|
-- print(value:GetValue())
|
|
118
119
|
-- end)
|
|
119
120
|
|
|
120
|
-
multiplier:Destroy()
|
|
121
|
+
multiplier:Destroy()
|