diff --git a/ProjectFish/Content/Characters/BP_PawnEntity.uasset b/ProjectFish/Content/Characters/BP_PawnEntity.uasset index 95b3f3f..3f20b11 100644 Binary files a/ProjectFish/Content/Characters/BP_PawnEntity.uasset and b/ProjectFish/Content/Characters/BP_PawnEntity.uasset differ diff --git a/ProjectFish/Content/UI/WBP_EnduranceBar.uasset b/ProjectFish/Content/UI/WBP_EnduranceBar.uasset deleted file mode 100644 index f1689d4..0000000 Binary files a/ProjectFish/Content/UI/WBP_EnduranceBar.uasset and /dev/null differ diff --git a/ProjectFish/Content/UI/WBP_PawnInfo.uasset b/ProjectFish/Content/UI/WBP_PawnInfo.uasset new file mode 100644 index 0000000..5a36f7f Binary files /dev/null and b/ProjectFish/Content/UI/WBP_PawnInfo.uasset differ diff --git a/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp b/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp index d787302..e6e45ea 100644 --- a/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp +++ b/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp @@ -16,11 +16,17 @@ void APawnWithSkill::ApplyyEndurance_Implementation(float enduranceOffset) CurrentEndurance += enduranceOffset;; } +void APawnWithSkill::ApplyyTenacity_Implementation(float tenacityOffset) +{ + CurrentTenacity += tenacityOffset; +} + // Called when the game starts or when spawned void APawnWithSkill::BeginPlay() { Super::BeginPlay(); CurrentEndurance = MaxEndurance; + CurrentTenacity = MaxTenacity; } // Called every frame diff --git a/ProjectFish/Source/ProjectFish/PawnWithSkill.h b/ProjectFish/Source/ProjectFish/PawnWithSkill.h index 89f78d9..43d3303 100644 --- a/ProjectFish/Source/ProjectFish/PawnWithSkill.h +++ b/ProjectFish/Source/ProjectFish/PawnWithSkill.h @@ -16,6 +16,8 @@ public: APawnWithSkill(); UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void ApplyyEndurance(float enduranceOffset); + UFUNCTION(BlueprintCallable, BlueprintNativeEvent) + void ApplyyTenacity(float tenacityOffset); protected: // Called when the game starts or when spawned virtual void BeginPlay() override; @@ -32,4 +34,14 @@ public: UPROPERTY(BlueprintReadWrite, EditAnywhere, Category= Default, meta = (DisplayPriority = 0, ToolTip = "最大耐久度")) float MaxEndurance; + + UPROPERTY(BlueprintReadWrite, meta = (ToolTip = "当前韧性")) + float CurrentTenacity; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category= Default, meta = (DisplayPriority = 0, ToolTip = "最大韧性")) + float MaxTenacity; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category= Default, meta = (DisplayPriority = 0, ToolTip = "韧性归零时眩晕时长")) + float TenacityStun_Time = 5; }; + diff --git a/ProjectFish/Source/ProjectFish/Skill/Skill.cpp b/ProjectFish/Source/ProjectFish/Skill/Skill.cpp index d42dc62..01a7401 100644 --- a/ProjectFish/Source/ProjectFish/Skill/Skill.cpp +++ b/ProjectFish/Source/ProjectFish/Skill/Skill.cpp @@ -52,13 +52,15 @@ void USkill::InitSkill(APawnWithSkill* owner, USkillManager* skillManager, FSkil bool USkill::SkillTickAble() { - return RemainingEndurance >0 || RemainingEndurance == -1; + //剩余次数无限制或者拥有者没有被韧性眩晕 + return (RemainingEndurance >0 || RemainingEndurance == -1) && Owner->CurrentTenacity > 0; } void USkill::TickSkill(float deltaTime) { - RemainingTime -= deltaTime * SkillData.Speed; - if (RemainingTime <= 0 && SkillTickAble()) + if (SkillTickAble()) + RemainingTime -= deltaTime * SkillData.Speed; + if (RemainingTime <= 0 ) { RemainingTime = 0; if (RemainingEndurance >0)