更新技能速度UI

This commit is contained in:
997146918 2025-09-04 11:28:29 +08:00
parent 4c180a2ef0
commit d0770c018d
13 changed files with 32 additions and 13 deletions

View File

@ -2,7 +2,7 @@
"BuildId": "37670630",
"Modules":
{
"ProjectFish": "UnrealEditor-ProjectFish.dll",
"ProjectFishEditor": "UnrealEditor-ProjectFishEditor.dll"
"ProjectFish": "UnrealEditor-ProjectFish-0005.dll",
"ProjectFishEditor": "UnrealEditor-ProjectFishEditor-0005.dll"
}
}

Binary file not shown.

View File

@ -202,6 +202,20 @@ void USkill::ApplyRemainingEnduranceOffset(int Offset)
}
FTimerHandle TimerHandle;
void USkill::ApplySkillSpeed(float offset, float duration)
{
OnSkillSpeedChanged.Broadcast(offset < 0 ? true: false, duration);
GetSkillData()->Speed += offset;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, [&]()
{
UE_LOG(LogTemp, Log, TEXT("取消CD充能效果"));
GetSkillData()->Speed = 1;
}, duration, false); // 单次触发
}
class APawnWithSkill* USkill::GetOwner()
{

View File

@ -12,6 +12,7 @@
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FSkillUpdate);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSkillExecute, const FString&, SkillName);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FSkillSpeedChanged, bool, bSpeedUp, const float&, DurationTime);
DECLARE_MULTICAST_DELEGATE_OneParam(FSkillEnduranceChange, int32);
/**
*
@ -45,6 +46,9 @@ public:
void ApplyRemainingEnduranceOffset(int Offset);
//修改技能速度
void ApplySkillSpeed(float offset, float duration);
UFUNCTION(BlueprintPure)
bool SkillTickAble();
@ -57,7 +61,8 @@ public:
UPROPERTY(BlueprintAssignable)
FSkillExecute OnSkillExecute;
UPROPERTY(BlueprintAssignable)
FSkillSpeedChanged OnSkillSpeedChanged;
FSkillEnduranceChange OnSkillEnduranceChange;
protected:

View File

@ -22,16 +22,16 @@ void USkillEffect_ModifySpeed::Execute(const FSkillContext& context)
{
//修改技能的冷却倍率
USkill* skill = Cast<USkill>(target);
skill->GetSkillData()->Speed = effectData.EffectValue;
//延时结束效果
GetWorld()->GetTimerManager().SetTimer(TimerHandle, [&]()
{
UE_LOG(LogTemp, Log, TEXT("取消CD充能效果"));
skill->GetSkillData()->Speed = 1;
}, UKismetStringLibrary::Conv_StringToInt(effectData.ParamAddition), false); // 单次触发
skill->ApplySkillSpeed(effectData.EffectValue, UKismetStringLibrary::Conv_StringToInt(effectData.ParamAddition));
//skill->GetSkillData()->Speed = effectData.EffectValue;
// //延时结束效果
// GetWorld()->GetTimerManager().SetTimer(TimerHandle, [&]()
// {
//
// UE_LOG(LogTemp, Log, TEXT("取消CD充能效果"));
// skill->GetSkillData()->Speed = 1;
//
// }, UKismetStringLibrary::Conv_StringToInt(effectData.ParamAddition), false); // 单次触发
}
}
}