2025-01-04 23:00:19 +08:00

40 lines
1.5 KiB
Lua

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;