@quenty/rogue-properties 11.22.3 → 11.22.4-canary.559.339cfa7.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 CHANGED
@@ -3,6 +3,17 @@
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.22.4-canary.559.339cfa7.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/rogue-properties@11.22.3...@quenty/rogue-properties@11.22.4-canary.559.339cfa7.0) (2025-05-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Additional type checking updates ([05ba29a](https://github.com/Quenty/NevermoreEngine/commit/05ba29a03efc9f3feed74b34f1d9dfb237496214))
12
+
13
+
14
+
15
+
16
+
6
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)
7
18
 
8
19
  **Note:** Version bump only for package @quenty/rogue-properties
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/rogue-properties",
3
- "version": "11.22.3",
3
+ "version": "11.22.4-canary.559.339cfa7.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.18.3",
28
- "@quenty/baseobject": "^10.8.3",
29
- "@quenty/binder": "^14.19.3",
30
- "@quenty/brio": "^14.17.3",
31
- "@quenty/defaultvalueutils": "^1.2.2",
32
- "@quenty/ducktype": "^5.8.4",
33
- "@quenty/instanceutils": "^13.17.3",
34
- "@quenty/jsonutils": "^10.10.4",
35
- "@quenty/linkutils": "^13.17.3",
36
- "@quenty/loader": "^10.8.3",
37
- "@quenty/maid": "^3.4.3",
38
- "@quenty/observablecollection": "^12.20.3",
39
- "@quenty/rx": "^13.17.3",
40
- "@quenty/rxbinderutils": "^14.19.3",
41
- "@quenty/rxsignal": "^7.17.3",
42
- "@quenty/servicebag": "^11.11.4",
43
- "@quenty/signal": "^7.10.3",
44
- "@quenty/spring": "^10.8.4",
45
- "@quenty/string": "^3.3.3",
46
- "@quenty/table": "^3.7.4",
47
- "@quenty/tie": "^10.20.3",
48
- "@quenty/valuebaseutils": "^13.17.3",
49
- "@quenty/valueobject": "^13.17.3",
27
+ "@quenty/adorneedata": "7.18.4-canary.559.339cfa7.0",
28
+ "@quenty/baseobject": "10.8.4-canary.559.339cfa7.0",
29
+ "@quenty/binder": "14.19.4-canary.559.339cfa7.0",
30
+ "@quenty/brio": "14.17.4-canary.559.339cfa7.0",
31
+ "@quenty/defaultvalueutils": "1.2.2",
32
+ "@quenty/ducktype": "5.8.5-canary.559.339cfa7.0",
33
+ "@quenty/instanceutils": "13.17.4-canary.559.339cfa7.0",
34
+ "@quenty/jsonutils": "10.10.5-canary.559.339cfa7.0",
35
+ "@quenty/linkutils": "13.17.4-canary.559.339cfa7.0",
36
+ "@quenty/loader": "10.8.4-canary.559.339cfa7.0",
37
+ "@quenty/maid": "3.4.4-canary.559.339cfa7.0",
38
+ "@quenty/observablecollection": "12.20.4-canary.559.339cfa7.0",
39
+ "@quenty/rx": "13.17.4-canary.559.339cfa7.0",
40
+ "@quenty/rxbinderutils": "14.19.4-canary.559.339cfa7.0",
41
+ "@quenty/rxsignal": "7.17.4-canary.559.339cfa7.0",
42
+ "@quenty/servicebag": "11.11.5-canary.559.339cfa7.0",
43
+ "@quenty/signal": "7.10.4-canary.559.339cfa7.0",
44
+ "@quenty/spring": "10.8.5-canary.559.339cfa7.0",
45
+ "@quenty/string": "3.3.3",
46
+ "@quenty/table": "3.7.5-canary.559.339cfa7.0",
47
+ "@quenty/tie": "10.20.4-canary.559.339cfa7.0",
48
+ "@quenty/valuebaseutils": "13.17.4-canary.559.339cfa7.0",
49
+ "@quenty/valueobject": "13.17.4-canary.559.339cfa7.0",
50
50
  "@quentystudios/t": "^3.0.0"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
54
54
  },
55
- "gitHead": "b06c070ae91d5dab7bd8de6e290ad2caabb15d8f"
55
+ "gitHead": "339cfa778736f08768ed7305041f6221faa35bfc"
56
56
  }
@@ -7,5 +7,5 @@ local require = require(script.Parent.loader).load(script)
7
7
  local Table = require("Table")
8
8
 
9
9
  return Table.readonly({
10
- ARRAY_ENTRY_PERFIX = "ArrayEntry_";
11
- })
10
+ ARRAY_ENTRY_PERFIX = "ArrayEntry_",
11
+ })
@@ -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
@@ -4,7 +4,6 @@
4
4
  @class RoguePropertyCache
5
5
  ]=]
6
6
 
7
-
8
7
  local RoguePropertyCache = {}
9
8
  RoguePropertyCache.ClassName = "RoguePropertyCache"
10
9
  RoguePropertyCache.__index = RoguePropertyCache
@@ -9,16 +9,16 @@ local require = require(script.Parent.loader).load(script)
9
9
  local RunService = game:GetService("RunService")
10
10
 
11
11
  local RoguePropertyCache = require("RoguePropertyCache")
12
- local _ServiceBag = require("ServiceBag")
12
+ local ServiceBag = require("ServiceBag")
13
13
 
14
14
  local RoguePropertyCacheService = {}
15
15
  RoguePropertyCacheService.ServiceName = "RoguePropertyCacheService"
16
16
 
17
- function RoguePropertyCacheService:Init(serviceBag: _ServiceBag.ServiceBag)
17
+ 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 ServiceBag = require("ServiceBag")
9
+ local RoguePropertyCacheService = require("RoguePropertyCacheService")
9
10
  local RoguePropertyUtils = require("RoguePropertyUtils")
10
- local DuckTypeUtils = require("DuckTypeUtils")
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"
@@ -41,7 +41,7 @@ end
41
41
  @param adornee Instance
42
42
  @return RogueProperty
43
43
  ]=]
44
- function RoguePropertyDefinition:Get(serviceBag, adornee)
44
+ function RoguePropertyDefinition:Get(serviceBag: ServiceBag.ServiceBag, adornee: Instance)
45
45
  assert(ServiceBag.isServiceBag(serviceBag), "Bad serviceBag")
46
46
  assert(typeof(adornee) == "Instance", "Bad adornee")
47
47
 
@@ -58,14 +58,15 @@ function RoguePropertyDefinition:Get(serviceBag, adornee)
58
58
  return rogueProperty
59
59
  end
60
60
 
61
- function RoguePropertyDefinition:GetOrCreateInstance(parent)
61
+ function RoguePropertyDefinition:GetOrCreateInstance(parent: Instance)
62
62
  assert(typeof(parent) == "Instance", "Bad parent")
63
63
 
64
64
  return ValueBaseUtils.getOrCreateValue(
65
65
  parent,
66
66
  self:GetStorageInstanceType(),
67
67
  self:GetName(),
68
- self:GetEncodedDefaultValue())
68
+ self:GetEncodedDefaultValue()
69
+ )
69
70
  end
70
71
 
71
72
  function RoguePropertyDefinition:SetParentPropertyTableDefinition(parentPropertyTableDefinition)
@@ -76,15 +77,21 @@ function RoguePropertyDefinition:GetParentPropertyDefinition()
76
77
  return self._parentPropertyTableDefinition
77
78
  end
78
79
 
79
- function RoguePropertyDefinition:CanAssign(value, _strict)
80
+ function RoguePropertyDefinition:CanAssign(value, _strict): (boolean, string?)
80
81
  if self._valueType == typeof(value) then
81
82
  return true
82
83
  else
83
- return false, string.format("got %q, expected %q when assigning to %q", self._valueType, typeof(value), self:GetFullName())
84
+ return false,
85
+ string.format(
86
+ "got %q, expected %q when assigning to %q",
87
+ self._valueType,
88
+ typeof(value),
89
+ self:GetFullName()
90
+ )
84
91
  end
85
92
  end
86
93
 
87
- function RoguePropertyDefinition:SetName(name: string)
94
+ function RoguePropertyDefinition:SetName(name: string): ()
88
95
  assert(type(name) == "string", "Bad name")
89
96
 
90
97
  self._name = name
@@ -122,7 +129,7 @@ function RoguePropertyDefinition:GetValueType()
122
129
  return self._valueType
123
130
  end
124
131
 
125
- function RoguePropertyDefinition:GetStorageInstanceType()
132
+ function RoguePropertyDefinition:GetStorageInstanceType(): string
126
133
  return self._storageType
127
134
  end
128
135
 
@@ -152,5 +159,4 @@ function RoguePropertyDefinition:_computeStorageInstanceType()
152
159
  end
153
160
  end
154
161
 
155
-
156
- return RoguePropertyDefinition
162
+ return RoguePropertyDefinition
@@ -75,4 +75,4 @@ function RoguePropertyDefinitionArrayHelper:CanAssignAsArrayMember(value, strict
75
75
  return self._requiredPropertyDefinition:CanAssign(value, strict)
76
76
  end
77
77
 
78
- return RoguePropertyDefinitionArrayHelper
78
+ return RoguePropertyDefinitionArrayHelper
@@ -16,13 +16,13 @@ local RxBrioUtils = require("RxBrioUtils")
16
16
  local RxInstanceUtils = require("RxInstanceUtils")
17
17
  local ServiceBag = require("ServiceBag")
18
18
  local Set = require("Set")
19
- local _Table = require("Table")
19
+ local Table = require("Table")
20
20
 
21
21
  local RoguePropertyTableDefinition = {} -- Inherits from RoguePropertyDefinition
22
22
  RoguePropertyTableDefinition.ClassName = "RoguePropertyTableDefinition"
23
23
  RoguePropertyTableDefinition.__index = RoguePropertyTableDefinition
24
24
 
25
- function RoguePropertyTableDefinition.new(tableName: string?, defaultValueTable: _Table.Map<string, any>?)
25
+ function RoguePropertyTableDefinition.new(tableName: string?, defaultValueTable: Table.Map<string, any>?)
26
26
  local self = setmetatable(RoguePropertyDefinition.new(), RoguePropertyTableDefinition)
27
27
 
28
28
  if tableName then
@@ -40,7 +40,7 @@ function RoguePropertyTableDefinition.isRoguePropertyTableDefinition(value): boo
40
40
  return DuckTypeUtils.isImplementation(RoguePropertyTableDefinition, value)
41
41
  end
42
42
 
43
- function RoguePropertyTableDefinition:SetDefaultValue(defaultValueTable: _Table.Map<string, any>?)
43
+ function RoguePropertyTableDefinition:SetDefaultValue(defaultValueTable: Table.Map<string, any>?)
44
44
  assert(type(defaultValueTable) == "table", "Bad defaultValueTable")
45
45
 
46
46
  RoguePropertyDefinition.SetDefaultValue(self, defaultValueTable)
@@ -196,7 +196,7 @@ end
196
196
  @param adornee Instance
197
197
  @return RoguePropertyTable
198
198
  ]=]
199
- function RoguePropertyTableDefinition:Get(serviceBag, adornee: Instance)
199
+ function RoguePropertyTableDefinition:Get(serviceBag: ServiceBag.ServiceBag, adornee: Instance)
200
200
  assert(ServiceBag.isServiceBag(serviceBag), "Bad serviceBag")
201
201
  assert(typeof(adornee) == "Instance", "Bad adornee")
202
202
 
@@ -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,16 +17,14 @@ local Rx = require("Rx")
14
17
  local RxBrioUtils = require("RxBrioUtils")
15
18
  local RxInstanceUtils = require("RxInstanceUtils")
16
19
  local RxSignal = require("RxSignal")
20
+ local ServiceBag = require("ServiceBag")
17
21
  local ValueBaseUtils = require("ValueBaseUtils")
18
- local Maid = require("Maid")
19
- local Observable = require("Observable")
20
- local ObservableSortedList = require("ObservableSortedList")
21
22
 
22
23
  local RogueProperty = {}
23
24
  RogueProperty.ClassName = "RogueProperty"
24
25
  RogueProperty.__index = RogueProperty
25
26
 
26
- function RogueProperty.new(adornee, serviceBag, definition)
27
+ function RogueProperty.new(adornee: Instance, serviceBag: ServiceBag.ServiceBag, definition)
27
28
  local self = {}
28
29
 
29
30
  self._serviceBag = assert(serviceBag, "No serviceBag")
@@ -93,17 +94,21 @@ end
93
94
  function RogueProperty:_observeBaseValueBrio()
94
95
  local parentDefinition = self._definition:GetParentPropertyDefinition()
95
96
  if parentDefinition then
96
- return parentDefinition:ObserveContainerBrio(self._adornee, self:CanInitialize())
97
- :Pipe({
98
- RxBrioUtils.switchMapBrio(function(container)
99
- return RxInstanceUtils.observeLastNamedChildBrio(
100
- container,
101
- self._definition:GetStorageInstanceType(),
102
- self._definition:GetName())
103
- end);
104
- })
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
+ })
105
106
  else
106
- return RxInstanceUtils.observeLastNamedChildBrio(self._adornee, self._definition:GetStorageInstanceType(), self._definition:GetName())
107
+ return RxInstanceUtils.observeLastNamedChildBrio(
108
+ self._adornee,
109
+ self._definition:GetStorageInstanceType(),
110
+ self._definition:GetName()
111
+ )
107
112
  end
108
113
  end
109
114
 
@@ -114,7 +119,13 @@ function RogueProperty:SetBaseValue(value)
114
119
  if baseValue then
115
120
  baseValue.Value = self:_encodeValue(value)
116
121
  else
117
- warn(string.format("[RogueProperty.SetBaseValue] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
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
129
  end
119
130
  end
120
131
 
@@ -123,14 +134,20 @@ function RogueProperty:SetValue(value)
123
134
 
124
135
  local baseValue = self:GetBaseValueObject()
125
136
  if not baseValue then
126
- warn(string.format("[RogueProperty.SetValue] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
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
144
  return
128
145
  end
129
146
 
130
147
  local current = value
131
148
 
132
149
  local modifiers = self:GetRogueModifiers()
133
- for i=#modifiers, 1, -1 do
150
+ for i = #modifiers, 1, -1 do
134
151
  current = modifiers[i]:GetInvertedVersion(current, value)
135
152
  end
136
153
 
@@ -224,21 +241,21 @@ function RogueProperty:Observe()
224
241
 
225
242
  return self:_observeModifierSortedList():Pipe({
226
243
  Rx.switchMap(function(sortedList)
227
- return sortedList:Observe()
228
- end);
244
+ return sortedList:Observe()
245
+ end),
229
246
  Rx.switchMap(function(rogueModifierList)
230
- local current = observeInitialValue
247
+ local current = observeInitialValue
231
248
  for _, rogueModifier in rogueModifierList do
232
249
  current = rogueModifier:ObserveModifiedVersion(current)
233
250
  end
234
251
  return current
235
- end);
252
+ end),
236
253
  })
237
254
  end
238
255
 
239
256
  function RogueProperty:ObserveBrio(predicate)
240
257
  return self:Observe():Pipe({
241
- RxBrioUtils.switchToBrio(predicate)
258
+ RxBrioUtils.switchToBrio(predicate),
242
259
  })
243
260
  end
244
261
 
@@ -247,7 +264,13 @@ function RogueProperty:CreateMultiplier(amount, source)
247
264
 
248
265
  local baseValue = self:GetBaseValueObject()
249
266
  if not baseValue then
250
- warn(string.format("[RogueProperty.CreateMultiplier] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
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
274
  end
252
275
 
253
276
  local className = ValueBaseUtils.getClassNameFromType(typeof(amount))
@@ -276,7 +299,13 @@ function RogueProperty:CreateAdditive(amount: number, source)
276
299
 
277
300
  local baseValue = self:GetBaseValueObject()
278
301
  if not baseValue then
279
- warn(string.format("[RogueProperty.CreateAdditive] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
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
309
  return nil
281
310
  end
282
311
 
@@ -304,7 +333,13 @@ end
304
333
  function RogueProperty:GetNamedAdditive(name, source)
305
334
  local baseValue = self:GetBaseValueObject()
306
335
  if not baseValue then
307
- warn(string.format("[RogueProperty.GetNamedAdditive] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
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
343
  return nil
309
344
  end
310
345
 
@@ -323,7 +358,13 @@ end
323
358
  function RogueProperty:CreateSetter(value, source)
324
359
  local baseValue = self:GetBaseValueObject()
325
360
  if not baseValue then
326
- warn(string.format("[RogueProperty.CreateSetter] - Failed to get the baseValue for %q on %q", self._definition:GetFullName(), self._adornee:GetFullName()))
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
368
  return nil
328
369
  end
329
370
 
@@ -382,8 +423,8 @@ end
382
423
 
383
424
  function RogueProperty:GetChangedEvent()
384
425
  return RxSignal.new(self:Observe():Pipe({
385
- Rx.skip(1)
426
+ Rx.skip(1),
386
427
  }))
387
428
  end
388
429
 
389
- 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
- local definitions = RoguePropertyArrayUtils.createDefinitionsFromContainer(container, self._arrayDefinitionHelper:GetPropertyTableDefinition())
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
@@ -5,14 +5,15 @@
5
5
  local require = require(script.Parent.loader).load(script)
6
6
 
7
7
  local RogueProperty = require("RogueProperty")
8
- local Rx = require("Rx")
9
8
  local RoguePropertyArrayHelper = require("RoguePropertyArrayHelper")
9
+ local Rx = require("Rx")
10
+ local ServiceBag = require("ServiceBag")
10
11
 
11
12
  local RoguePropertyTable = {} -- inherits from RogueProperty
12
13
  RoguePropertyTable.ClassName = "RoguePropertyTable"
13
14
  RoguePropertyTable.__index = RoguePropertyTable
14
15
 
15
- function RoguePropertyTable.new(adornee: Instance, serviceBag, roguePropertyTableDefinition)
16
+ function RoguePropertyTable.new(adornee: Instance, serviceBag: ServiceBag.ServiceBag, roguePropertyTableDefinition)
16
17
  local self = setmetatable(RogueProperty.new(adornee, serviceBag, roguePropertyTableDefinition), RoguePropertyTable)
17
18
 
18
19
  rawset(self, "_properties", {})
@@ -36,4 +36,4 @@ function RoguePropertyUtils.encodeProperty(definition, value)
36
36
  end
37
37
  end
38
38
 
39
- return RoguePropertyUtils
39
+ return RoguePropertyUtils
@@ -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 RxValueBaseUtils = require("RxValueBaseUtils")
8
+ local RogueModifierBase = require("RogueModifierBase")
10
9
  local RogueModifierInterface = require("RogueModifierInterface")
10
+ local RxValueBaseUtils = require("RxValueBaseUtils")
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
+ })
@@ -10,12 +10,12 @@ local require = require(script.Parent.loader).load(script)
10
10
  local RunService = game:GetService("RunService")
11
11
 
12
12
  local Maid = require("Maid")
13
- local _ServiceBag = require("ServiceBag")
13
+ local ServiceBag = require("ServiceBag")
14
14
 
15
15
  local RoguePropertyService = {}
16
16
  RoguePropertyService.ServiceName = "RoguePropertyService"
17
17
 
18
- function RoguePropertyService:Init(serviceBag: _ServiceBag.ServiceBag)
18
+ function RoguePropertyService:Init(serviceBag: ServiceBag.ServiceBag)
19
19
  assert(not self._serviceBag, "Already initialized")
20
20
  self._serviceBag = assert(serviceBag, "No serviceBag")
21
21
 
@@ -39,4 +39,4 @@ function RoguePropertyService:Destroy()
39
39
  self._maid:DoCleaning()
40
40
  end
41
41
 
42
- return RoguePropertyService
42
+ return RoguePropertyService
@@ -7,4 +7,4 @@ local require = require(loader).bootstrapGame(loader.Parent)
7
7
  local serviceBag = require("ServiceBag").new()
8
8
  serviceBag:GetService(require("RoguePropertyService"))
9
9
  serviceBag:Init()
10
- serviceBag:Start()
10
+ serviceBag:Start()
@@ -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()