40 lines
1.5 KiB
Lua
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;
|