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

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,13 +50,19 @@ 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;
--RemainingEndurance; if (RemainingEndurance >0)
--RemainingEndurance;
FSkillContext context; FSkillContext context;
context.Self = Owner; context.Self = Owner;
context.SkillManager = SkillManager; context.SkillManager = SkillManager;
@ -64,8 +70,7 @@ 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;
}; };