修改技能配置无限次耐久度

This commit is contained in:
997146918 2025-06-23 10:29:35 +08:00
parent 2af06c6b9b
commit bfd4cd64c2
4 changed files with 14 additions and 4 deletions

View File

@ -50,12 +50,18 @@ void USkill::InitSkill(APawnWithSkill* owner, USkillManager* skillManager, FSkil
} }
} }
bool USkill::SkillTickAble()
{
return RemainingEndurance >0 || RemainingEndurance == -1;
}
void USkill::TickSkill(float deltaTime) void USkill::TickSkill(float deltaTime)
{ {
RemainingTime -= deltaTime * SkillData.Speed; RemainingTime -= deltaTime * SkillData.Speed;
if (RemainingTime <= 0 && RemainingEndurance >0) if (RemainingTime <= 0 && SkillTickAble())
{ {
RemainingTime = 0; RemainingTime = 0;
if (RemainingEndurance >0)
--RemainingEndurance; --RemainingEndurance;
FSkillContext context; FSkillContext context;
context.Self = Owner; context.Self = Owner;
@ -64,7 +70,6 @@ void USkill::TickSkill(float deltaTime)
{ {
Effect->Execute(context); Effect->Execute(context);
} }
if (RemainingEndurance > 0)
RemainingTime = SkillData.CD; RemainingTime = SkillData.CD;
} }
if (RemainingEndurance == 0) if (RemainingEndurance == 0)

View File

@ -29,6 +29,9 @@ public:
void SetSkillData( FSkillData SkillData); void SetSkillData( FSkillData SkillData);
void ApplyRemainingTimeOffset(int timeOffset); void ApplyRemainingTimeOffset(int timeOffset);
void ApplyRemainingRemainingEnduranceOffset(int Offset); void ApplyRemainingRemainingEnduranceOffset(int Offset);
UFUNCTION(BlueprintPure)
bool SkillTickAble();
protected: protected:
UPROPERTY(BlueprintAssignable) UPROPERTY(BlueprintAssignable)
FSkillUpdate OnSkillUpdate; FSkillUpdate OnSkillUpdate;
@ -45,3 +48,5 @@ protected:
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "剩余耐久度")) UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "剩余耐久度"))
int32 RemainingEndurance; int32 RemainingEndurance;
}; };