修改当技能耐久度为0的时候 UI正常进度条刷新显示
This commit is contained in:
parent
812cc728af
commit
1cd0265ee7
BIN
ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish-0001.dll
Normal file
BIN
ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish-0001.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,7 +2,7 @@
|
|||||||
"BuildId": "37670630",
|
"BuildId": "37670630",
|
||||||
"Modules":
|
"Modules":
|
||||||
{
|
{
|
||||||
"ProjectFish": "UnrealEditor-ProjectFish.dll",
|
"ProjectFish": "UnrealEditor-ProjectFish-0001.dll",
|
||||||
"ProjectFishEditor": "UnrealEditor-ProjectFishEditor.dll"
|
"ProjectFishEditor": "UnrealEditor-ProjectFishEditor-0001.dll"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -115,11 +115,16 @@ void USkill::InitSkillTrigger()
|
|||||||
|
|
||||||
bool USkill::SkillTickAble()
|
bool USkill::SkillTickAble()
|
||||||
{
|
{
|
||||||
//剩余次数无限制或者拥有者没有被韧性眩晕
|
//剩余次数无限制 或者 剩余次数大于0次并且拥有者没有被韧性眩晕
|
||||||
return (RemainingEndurance >0 || RemainingEndurance == -1 )
|
return (RemainingEndurance == -1 || RemainingEndurance >= 0 )
|
||||||
&& Owner->CurrentTenacity > 0 && SkillData->triggerType == ESkillTriggerType::ActiveSkill;
|
&& Owner->CurrentTenacity > 0 && SkillData->triggerType == ESkillTriggerType::ActiveSkill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool USkill::SkillExecuteAble()
|
||||||
|
{
|
||||||
|
return (RemainingEndurance == -1 || RemainingEndurance > 0 ) && RemainingTime <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
FIntPoint USkill::GetSkillSize()
|
FIntPoint USkill::GetSkillSize()
|
||||||
{
|
{
|
||||||
return GetSkillSizeValue(SkillData->SkillSize);
|
return GetSkillSizeValue(SkillData->SkillSize);
|
||||||
@ -128,21 +133,25 @@ FIntPoint USkill::GetSkillSize()
|
|||||||
void USkill::TickSkill(float deltaTime)
|
void USkill::TickSkill(float deltaTime)
|
||||||
{
|
{
|
||||||
if (SkillTickAble())
|
if (SkillTickAble())
|
||||||
|
{
|
||||||
RemainingTime -= deltaTime * SkillData->Speed;
|
RemainingTime -= deltaTime * SkillData->Speed;
|
||||||
if (RemainingTime <= 0 )
|
RemainingTime = FMath::Max(RemainingTime, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SkillExecuteAble() )
|
||||||
{
|
{
|
||||||
ExecuteSkill();
|
ExecuteSkill();
|
||||||
}
|
}
|
||||||
if (RemainingEndurance == 0)
|
// if (RemainingEndurance == 0)
|
||||||
{
|
// {
|
||||||
FSkillContext context;
|
// FSkillContext context;
|
||||||
context.OwnerSkill = this;
|
// context.OwnerSkill = this;
|
||||||
context.SkillManager = SkillManager;
|
// context.SkillManager = SkillManager;
|
||||||
for (auto Effect: SkillEffects)
|
// for (auto Effect: SkillEffects)
|
||||||
{
|
// {
|
||||||
Effect->EffectEnded(context);
|
// Effect->EffectEnded(context);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
void USkill::ExecuteSkill()
|
void USkill::ExecuteSkill()
|
||||||
|
|||||||
@ -53,6 +53,9 @@ public:
|
|||||||
UFUNCTION(BlueprintPure)
|
UFUNCTION(BlueprintPure)
|
||||||
bool SkillTickAble();
|
bool SkillTickAble();
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintPure)
|
||||||
|
bool SkillExecuteAble();
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure)
|
UFUNCTION(BlueprintPure)
|
||||||
FIntPoint GetSkillSize();
|
FIntPoint GetSkillSize();
|
||||||
|
|
||||||
|
|||||||
@ -45,134 +45,11 @@ void USkillEffect::Cancel(const FSkillContext& context)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void USkillEffect::EffectEnded(const FSkillContext& context)
|
// void USkillEffect::EffectEnded(const FSkillContext& context)
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// TArray<UObject*> USkillEffect::GetApplyTargets(const FSkillContext& context)
|
|
||||||
// {
|
// {
|
||||||
// TArray<UObject*> result;
|
|
||||||
// switch (effectData.SkillSelecter.SelecterType)
|
|
||||||
// {
|
|
||||||
// case EEffectTargetType::Target:
|
|
||||||
// {
|
|
||||||
// //目标是敌人
|
|
||||||
// result.Add(context.SkillManager->GetEnemyPawn(OwnerSkill->GetOwner()));
|
|
||||||
// break;;
|
|
||||||
// }
|
|
||||||
// case EEffectTargetType::Self:
|
|
||||||
// {
|
|
||||||
// //目标是敌人
|
|
||||||
// result.Add(OwnerSkill->GetOwner());
|
|
||||||
// break;;
|
|
||||||
// }
|
|
||||||
// case EEffectTargetType::TargetSkill:
|
|
||||||
// {
|
|
||||||
// TArray<USkill*> Skills = context.SkillManager->GetSkillsByOwner(context.SkillManager->GetEnemyPawn(OwnerSkill->GetOwner()));
|
|
||||||
// if (effectData.SkillSelecter.bAll)
|
|
||||||
// {
|
|
||||||
// result.Append(Skills);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// int TargetNum = FMath::Min(effectData.SkillSelecter.MaxEffectTargetNum, Skills.Num());
|
|
||||||
// for (int i = 0; i < TargetNum; i++)
|
|
||||||
// {
|
|
||||||
// int randomIndex = FMath::RandRange(0, Skills.Num() - 1);
|
|
||||||
// result.Add(Skills[randomIndex]);
|
|
||||||
// Skills.RemoveAt(randomIndex);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// break;;
|
|
||||||
// }
|
|
||||||
// case EEffectTargetType::SelfSkill:
|
|
||||||
// {
|
|
||||||
// TArray<USkill*> Skills = context.SkillManager->GetSkillsByOwner(OwnerSkill->GetOwner());
|
|
||||||
// if (effectData.SkillSelecter.bAll)
|
|
||||||
// {
|
|
||||||
// result.Append(Skills);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// int TargetNum = FMath::Min(effectData.SkillSelecter.MaxEffectTargetNum, Skills.Num());
|
|
||||||
// for (int i = 0; i < TargetNum; i++)
|
|
||||||
// {
|
|
||||||
// int randomIndex = FMath::RandRange(0, Skills.Num() - 1);
|
|
||||||
// result.Add(Skills[randomIndex]);
|
|
||||||
// Skills.RemoveAt(randomIndex);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// break;;
|
|
||||||
// }
|
|
||||||
// case EEffectTargetType::AroundSkill:
|
|
||||||
// {
|
|
||||||
// TArray<USkill*> aroundSkills = context.SkillManager->GetSkillsAround(context.OwnerSkill);
|
|
||||||
// for (auto skill: aroundSkills)
|
|
||||||
// {
|
|
||||||
// result.Add(skill);
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// case EEffectTargetType::SelfSkillType:
|
|
||||||
// {
|
|
||||||
// //筛选指定类型的技能
|
|
||||||
// TArray<USkill*> Skills = context.SkillManager->GetSkillsByOwner(OwnerSkill->GetOwner());
|
|
||||||
// for (int i = Skills.Num() - 1; i >= 0; i--)
|
|
||||||
// {
|
|
||||||
// if (!Skills[i]->GetSkillData()->SkillTypes.Contains(effectData.SkillSelecter.SkillType))
|
|
||||||
// {
|
|
||||||
// Skills.RemoveAt(i);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (effectData.SkillSelecter.bAll)
|
|
||||||
// {
|
|
||||||
// result.Append(Skills);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// int TargetNum = FMath::Min(effectData.SkillSelecter.MaxEffectTargetNum, Skills.Num());
|
|
||||||
// for (int i = 0; i < TargetNum; i++)
|
|
||||||
// {
|
|
||||||
// int randomIndex = FMath::RandRange(0, Skills.Num() - 1);
|
|
||||||
// result.Add(Skills[randomIndex]);
|
|
||||||
// Skills.RemoveAt(randomIndex);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// case EEffectTargetType::TargetSkillType:
|
|
||||||
// {
|
|
||||||
// //筛选指定类型的技能
|
|
||||||
// TArray<USkill*> Skills = context.SkillManager->GetSkillsByOwner(context.SkillManager->GetEnemyPawn(OwnerSkill->GetOwner()));
|
|
||||||
// for (int i = Skills.Num() - 1; i >= 0; i--)
|
|
||||||
// {
|
|
||||||
// if (!Skills[i]->GetSkillData()->SkillTypes.Contains(effectData.SkillSelecter.SkillType))
|
|
||||||
// {
|
|
||||||
// Skills.RemoveAt(i);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (effectData.SkillSelecter.bAll)
|
|
||||||
// {
|
|
||||||
// result.Append(Skills);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// int TargetNum = FMath::Min(effectData.SkillSelecter.MaxEffectTargetNum, Skills.Num());
|
|
||||||
// for (int i = 0; i < TargetNum; i++)
|
|
||||||
// {
|
|
||||||
// int randomIndex = FMath::RandRange(0, Skills.Num() - 1);
|
|
||||||
// result.Add(Skills[randomIndex]);
|
|
||||||
// Skills.RemoveAt(randomIndex);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return result;
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
FString USkillEffect::GetSkillEffectDes()
|
FString USkillEffect::GetSkillEffectDes()
|
||||||
{
|
{
|
||||||
return FString();
|
return FString();
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public:
|
|||||||
void InitSkillEffect(class USkill* skill, FSkillEffectData data);
|
void InitSkillEffect(class USkill* skill, FSkillEffectData data);
|
||||||
virtual void Execute(const FSkillContext& context) ;
|
virtual void Execute(const FSkillContext& context) ;
|
||||||
virtual void Cancel(const FSkillContext& context) ;
|
virtual void Cancel(const FSkillContext& context) ;
|
||||||
virtual void EffectEnded(const FSkillContext& context);
|
//virtual void EffectEnded(const FSkillContext& context);
|
||||||
//TArray<UObject*> GetApplyTargets(const FSkillContext& context);
|
//TArray<UObject*> GetApplyTargets(const FSkillContext& context);
|
||||||
|
|
||||||
UFUNCTION(BlueprintPure)
|
UFUNCTION(BlueprintPure)
|
||||||
|
|||||||
@ -24,24 +24,24 @@ void USkillEffect_DamageReduce::Execute(const FSkillContext& context)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void USkillEffect_DamageReduce::EffectEnded(const FSkillContext& context)
|
// void USkillEffect_DamageReduce::EffectEnded(const FSkillContext& context)
|
||||||
{
|
// {
|
||||||
Super::EffectEnded(context);
|
// Super::EffectEnded(context);
|
||||||
TArray<UObject*> targets = context.SkillManager->GetTargetsBySelector(context.OwnerSkill, effectData.SkillSelecter);
|
// TArray<UObject*> targets = context.SkillManager->GetTargetsBySelector(context.OwnerSkill, effectData.SkillSelecter);
|
||||||
for (auto target: targets)
|
// for (auto target: targets)
|
||||||
{
|
// {
|
||||||
if (!target->GetClass()->IsChildOf(APawnWithSkill::StaticClass()))
|
// if (!target->GetClass()->IsChildOf(APawnWithSkill::StaticClass()))
|
||||||
{
|
// {
|
||||||
UE_LOG(LogTemp, Error, TEXT("skill %s apply target is not a pawn "), *(OwnerSkill->GetSkillName()));
|
// UE_LOG(LogTemp, Error, TEXT("skill %s apply target is not a pawn "), *(OwnerSkill->GetSkillName()));
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
//恢复目标护盾值
|
// //恢复目标护盾值
|
||||||
APawnWithSkill* OwnerPawn = Cast<APawnWithSkill>(target);
|
// APawnWithSkill* OwnerPawn = Cast<APawnWithSkill>(target);
|
||||||
OwnerPawn->SetDamageReduce(0);
|
// OwnerPawn->SetDamageReduce(0);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
FString USkillEffect_DamageReduce::GetSkillEffectDes()
|
FString USkillEffect_DamageReduce::GetSkillEffectDes()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -15,6 +15,6 @@ class PROJECTFISH_API USkillEffect_DamageReduce : public USkillEffect
|
|||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
public:
|
public:
|
||||||
void Execute(const FSkillContext& context) override;
|
void Execute(const FSkillContext& context) override;
|
||||||
void EffectEnded(const FSkillContext& context) override;
|
//void EffectEnded(const FSkillContext& context) override;
|
||||||
FString GetSkillEffectDes() override;
|
FString GetSkillEffectDes() override;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -36,11 +36,11 @@ void USkillEffect_ModifySpeed::Execute(const FSkillContext& context)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void USkillEffect_ModifySpeed::EffectEnded(const FSkillContext& context)
|
// void USkillEffect_ModifySpeed::EffectEnded(const FSkillContext& context)
|
||||||
{
|
// {
|
||||||
Super::EffectEnded(context);
|
// Super::EffectEnded(context);
|
||||||
//GetWorld()->GetTimerManager().ClearTimer(TimerHandle);
|
// //GetWorld()->GetTimerManager().ClearTimer(TimerHandle);
|
||||||
}
|
// }
|
||||||
|
|
||||||
FString USkillEffect_ModifySpeed::GetSkillEffectDes()
|
FString USkillEffect_ModifySpeed::GetSkillEffectDes()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -17,7 +17,7 @@ class PROJECTFISH_API USkillEffect_ModifySpeed : public USkillEffect
|
|||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
public:
|
public:
|
||||||
void Execute(const FSkillContext& context) override;
|
void Execute(const FSkillContext& context) override;
|
||||||
void EffectEnded(const FSkillContext& context) override;
|
//void EffectEnded(const FSkillContext& context) override;
|
||||||
FString GetSkillEffectDes() override;
|
FString GetSkillEffectDes() override;
|
||||||
private:
|
private:
|
||||||
FTimerHandle TimerHandle;
|
FTimerHandle TimerHandle;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user