diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b11bb62e1..c49c0803c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3974,6 +3974,9 @@ importers: '@quenty/table': specifier: workspace:* version: link:../table + '@quenty/tie': + specifier: workspace:* + version: link:../tie '@quenty/valueobject': specifier: workspace:* version: link:../valueobject @@ -9454,6 +9457,7 @@ packages: prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true prepend-http@1.0.4: diff --git a/src/rogue-humanoid/package.json b/src/rogue-humanoid/package.json index 2b3ba57af1..f4cb9fd9e5 100644 --- a/src/rogue-humanoid/package.json +++ b/src/rogue-humanoid/package.json @@ -42,6 +42,7 @@ "@quenty/rx": "workspace:*", "@quenty/servicebag": "workspace:*", "@quenty/table": "workspace:*", + "@quenty/tie": "workspace:*", "@quenty/valueobject": "workspace:*" }, "publishConfig": { diff --git a/src/rogue-humanoid/src/Client/RogueHumanoidClient.lua b/src/rogue-humanoid/src/Client/RogueHumanoidClient.lua index 819513b0ce..14a76d3fb4 100644 --- a/src/rogue-humanoid/src/Client/RogueHumanoidClient.lua +++ b/src/rogue-humanoid/src/Client/RogueHumanoidClient.lua @@ -7,6 +7,7 @@ local require = require(script.Parent.loader).load(script) local Binder = require("Binder") local RogueHumanoidBase = require("RogueHumanoidBase") +local RogueHumanoidInterface = require("RogueHumanoidInterface") local ServiceBag = require("ServiceBag") local RogueHumanoidClient = setmetatable({}, RogueHumanoidBase) @@ -16,6 +17,8 @@ RogueHumanoidClient.__index = RogueHumanoidClient function RogueHumanoidClient.new(humanoid: Humanoid, serviceBag: ServiceBag.ServiceBag) local self = setmetatable(RogueHumanoidBase.new(humanoid, serviceBag), RogueHumanoidClient) + self._maid:GiveTask(RogueHumanoidInterface.Client:Implement(self._obj, self)) + return self end diff --git a/src/rogue-humanoid/src/Server/RogueHumanoid.lua b/src/rogue-humanoid/src/Server/RogueHumanoid.lua index 1acd80aa2a..f76f18fb71 100644 --- a/src/rogue-humanoid/src/Server/RogueHumanoid.lua +++ b/src/rogue-humanoid/src/Server/RogueHumanoid.lua @@ -7,6 +7,7 @@ local require = require(script.Parent.loader).load(script) local PlayerHumanoidBinder = require("PlayerHumanoidBinder") local RogueHumanoidBase = require("RogueHumanoidBase") +local RogueHumanoidInterface = require("RogueHumanoidInterface") local ServiceBag = require("ServiceBag") local RogueHumanoid = setmetatable({}, RogueHumanoidBase) @@ -16,6 +17,8 @@ RogueHumanoid.__index = RogueHumanoid function RogueHumanoid.new(humanoid: Humanoid, serviceBag: ServiceBag.ServiceBag) local self = setmetatable(RogueHumanoidBase.new(humanoid, serviceBag), RogueHumanoid) + self._maid:GiveTask(RogueHumanoidInterface.Server:Implement(self._obj, self)) + return self end diff --git a/src/rogue-humanoid/src/Shared/RogueHumanoidBase.lua b/src/rogue-humanoid/src/Shared/RogueHumanoidBase.lua index c02209e793..e3367329c4 100644 --- a/src/rogue-humanoid/src/Shared/RogueHumanoidBase.lua +++ b/src/rogue-humanoid/src/Shared/RogueHumanoidBase.lua @@ -86,6 +86,20 @@ function RogueHumanoidBase.new(humanoid: Humanoid, serviceBag: ServiceBag.Servic return self end +function RogueHumanoidBase:CreateMultiplier(property: string, amount: number, source: Instance?): ValueBase + local rogueProperty = assert(self._properties:GetRogueProperty(property), "Bad property") + assert(type(rogueProperty.Value) == "number", "Incompatible property") + + return rogueProperty:CreateMultiplier(amount, source) +end + +function RogueHumanoidBase:CreateAdditive(property: string, amount: number, source: Instance?): ValueBase + local rogueProperty = assert(self._properties:GetRogueProperty(property), "Bad property") + assert(type(rogueProperty.Value) == "number", "Incompatible property") + + return rogueProperty:CreateAdditive(amount, source) +end + function RogueHumanoidBase:_setupScaling() self._maid:GiveTask(self._scaleState :Observe() diff --git a/src/rogue-humanoid/src/Shared/RogueHumanoidInterface.lua b/src/rogue-humanoid/src/Shared/RogueHumanoidInterface.lua new file mode 100644 index 0000000000..b3ab58af62 --- /dev/null +++ b/src/rogue-humanoid/src/Shared/RogueHumanoidInterface.lua @@ -0,0 +1,13 @@ +--!strict +--[=[ + @class RogueHumanoidInterface +]=] + +local require = require(script.Parent.loader).load(script) + +local TieDefinition = require("TieDefinition") + +return TieDefinition.new("RogueHumanoid", { + CreateMultiplier = TieDefinition.Types.METHOD, + CreateAdditive = TieDefinition.Types.METHOD, +})