35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
|
|
#include "SkillEffect_ModifyCD.h"
|
|
|
|
#include "Chaos/Deformable/MuscleActivationConstraints.h"
|
|
#include "ProjectFish/PawnWithSkill.h"
|
|
#include "ProjectFish/Skill/Skill.h"
|
|
|
|
void USkillEffect_ModifyCD::Execute(const FSkillContext& context)
|
|
{
|
|
Super::Execute(context);
|
|
TArray<UObject*> targets = GetApplyTargets(context);
|
|
for (auto target: targets)
|
|
{
|
|
if (!target->GetClass()->IsChildOf(USkill::StaticClass()))
|
|
{
|
|
UE_LOG(LogTemp, Error, TEXT("skill %s apply target is not a skill"), *(OwnerSkill->GetSkillName()));
|
|
}
|
|
else
|
|
{
|
|
//修改技能的冷却时间
|
|
USkill* skill = Cast<USkill>(target);
|
|
skill->GetSkillData().CD = FMath::Max(1, skill->GetSkillData().CD + effectData.EffectValue);
|
|
skill->ApplyRemainingTimeOffset(effectData.EffectValue);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
FString USkillEffect_ModifyCD::GetSkillEffectDes()
|
|
{
|
|
return FString::Printf(TEXT("对指定位置的技能冷却时间在正常战斗中增加 %d秒"),(int32)(effectData.EffectValue));
|
|
}
|