From d5caa4446e69b132626f1094f17400666a5380bc Mon Sep 17 00:00:00 2001 From: Alex Turner Date: Wed, 22 Apr 2026 00:46:52 -0500 Subject: [PATCH 1/3] feat: RogueHumanoidInterface --- .../src/Client/RogueHumanoidClient.lua | 3 +++ src/rogue-humanoid/src/Server/RogueHumanoid.lua | 3 +++ .../src/Shared/RogueHumanoidBase.lua | 14 ++++++++++++++ .../src/Shared/RogueHumanoidInterface.lua | 13 +++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 src/rogue-humanoid/src/Shared/RogueHumanoidInterface.lua 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, +}) From 15b55c8ec0bbad7bb650684fd496545e77c665c3 Mon Sep 17 00:00:00 2001 From: Alex Turner Date: Wed, 22 Apr 2026 00:53:13 -0500 Subject: [PATCH 2/3] fix: Dependency --- pnpm-lock.yaml | 10 +++++++--- src/rogue-humanoid/package.json | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b11bb62e1..17fcef558c 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 @@ -6610,13 +6613,13 @@ packages: engines: {node: '>=12'} '@quentystudios/cmdr@1.12.0-quenty.0': - resolution: {integrity: sha512-coxG4bEQ3wskTEiVxbh6hTsOycYoq+8jLtUABvfMURHiS3hgF/0jg3uQArZt0JeY+VvkCIXLHUCFTMMbUQOllA==} + resolution: {integrity: sha512-coxG4bEQ3wskTEiVxbh6hTsOycYoq+8jLtUABvfMURHiS3hgF/0jg3uQArZt0JeY+VvkCIXLHUCFTMMbUQOllA==, tarball: https://npm.pkg.github.com/download/@QuentyStudios/cmdr/1.12.0-quenty.0/52cd069ee3ce795e8056e2e42cb012bb75ddf053} '@quentystudios/jest-lua@3.10.0-quenty.2': - resolution: {integrity: sha512-TE7vhnYjygcBjjqeKLsmbwxhJeiDeekh/E2xcvQ0VZAwHNr+Yn1pk1n/PRJu+KtH2fWYkw20pQO4o/hKPs0lRA==} + resolution: {integrity: sha512-TE7vhnYjygcBjjqeKLsmbwxhJeiDeekh/E2xcvQ0VZAwHNr+Yn1pk1n/PRJu+KtH2fWYkw20pQO4o/hKPs0lRA==, tarball: https://npm.pkg.github.com/download/@quentystudios/jest-lua/3.10.0-quenty.2/238e074c8a3d93e2ed9dbed9e0e191bc60cfa8e8} '@quentystudios/t@3.0.0': - resolution: {integrity: sha512-YUBaDzrs69scFgRpzASLOpcvxKho8oaUipyHO+A9z+aRW/ursRhzCXjRtPZ08uoU+fba/cohZuZMMGDMpncg1w==} + resolution: {integrity: sha512-RTnK+ViHHgnG+pn5xOZ+l4dk4sUaEuA5ljb041yRGVF0jBX77Pqb8EpVsllwOr0ik8juD+/nn0ODuQfEJ49bJg==, tarball: https://npm.pkg.github.com/download/@QuentyStudios/t/3.0.0/531258ee3ed838164450322edce90bc273e5cd42} '@rollup/rollup-android-arm-eabi@4.57.1': resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} @@ -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": { From ba0c65792d1e2df78867ba5b520ab9a85c1c3c37 Mon Sep 17 00:00:00 2001 From: Alex Turner Date: Wed, 22 Apr 2026 00:57:42 -0500 Subject: [PATCH 3/3] fix: Revert irrelevant changes --- pnpm-lock.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17fcef558c..c49c0803c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6613,13 +6613,13 @@ packages: engines: {node: '>=12'} '@quentystudios/cmdr@1.12.0-quenty.0': - resolution: {integrity: sha512-coxG4bEQ3wskTEiVxbh6hTsOycYoq+8jLtUABvfMURHiS3hgF/0jg3uQArZt0JeY+VvkCIXLHUCFTMMbUQOllA==, tarball: https://npm.pkg.github.com/download/@QuentyStudios/cmdr/1.12.0-quenty.0/52cd069ee3ce795e8056e2e42cb012bb75ddf053} + resolution: {integrity: sha512-coxG4bEQ3wskTEiVxbh6hTsOycYoq+8jLtUABvfMURHiS3hgF/0jg3uQArZt0JeY+VvkCIXLHUCFTMMbUQOllA==} '@quentystudios/jest-lua@3.10.0-quenty.2': - resolution: {integrity: sha512-TE7vhnYjygcBjjqeKLsmbwxhJeiDeekh/E2xcvQ0VZAwHNr+Yn1pk1n/PRJu+KtH2fWYkw20pQO4o/hKPs0lRA==, tarball: https://npm.pkg.github.com/download/@quentystudios/jest-lua/3.10.0-quenty.2/238e074c8a3d93e2ed9dbed9e0e191bc60cfa8e8} + resolution: {integrity: sha512-TE7vhnYjygcBjjqeKLsmbwxhJeiDeekh/E2xcvQ0VZAwHNr+Yn1pk1n/PRJu+KtH2fWYkw20pQO4o/hKPs0lRA==} '@quentystudios/t@3.0.0': - resolution: {integrity: sha512-RTnK+ViHHgnG+pn5xOZ+l4dk4sUaEuA5ljb041yRGVF0jBX77Pqb8EpVsllwOr0ik8juD+/nn0ODuQfEJ49bJg==, tarball: https://npm.pkg.github.com/download/@QuentyStudios/t/3.0.0/531258ee3ed838164450322edce90bc273e5cd42} + resolution: {integrity: sha512-YUBaDzrs69scFgRpzASLOpcvxKho8oaUipyHO+A9z+aRW/ursRhzCXjRtPZ08uoU+fba/cohZuZMMGDMpncg1w==} '@rollup/rollup-android-arm-eabi@4.57.1': resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==}