local BuffActionBase = require('Script.Global.BuffSystem.BuffActionBase') local BuffAction_JumpScale = setmetatable( { JumpScale = 1; GravityScale = 1; }, { __index = BuffActionBase, __metatable = BuffActionBase } ); -- Script.Blueprint.UGCBuffs.BuffAction.BuffAction_JumpScale function BuffAction_JumpScale:LuaDoAction() BuffActionBase.LuaDoAction(self) if not UGCGameSystem.IsServer() then return end UGCLogSystem.Log("[BuffAction_JumpScale_LuaDoAction]") local OwnerPawn = self:GetOwnerPawn() if UE.IsValid(OwnerPawn) then local JumpZVelocity = UGCPawnAttrSystem.GetJumpZVelocity(OwnerPawn) UGCPawnAttrSystem.SetJumpZVelocity(OwnerPawn, JumpZVelocity * self.JumpScale) local BaseGravityScale = OwnerPawn.STCharacterMovement.GravityScale OwnerPawn:SetGravityScale(BaseGravityScale * self.GravityScale) end end function BuffAction_JumpScale:LuaUndoAction() BuffActionBase.LuaUndoAction(self) if not UGCGameSystem.IsServer() then return end UGCLogSystem.Log("[BuffAction_JumpScale_LuaDoAction]") local OwnerPawn = self:GetOwnerPawn() if UE.IsValid(OwnerPawn) then local JumpZVelocity = UGCPawnAttrSystem.GetJumpZVelocity(OwnerPawn) UGCPawnAttrSystem.SetJumpZVelocity(OwnerPawn, JumpZVelocity / self.JumpScale) local BaseGravityScale = OwnerPawn.STCharacterMovement.GravityScale OwnerPawn:SetGravityScale(BaseGravityScale / self.GravityScale) end end return BuffAction_JumpScale;