From 59c715af325d126454b7646147a938772c46ebcd Mon Sep 17 00:00:00 2001 From: 997146918 <997146918@qq.com> Date: Tue, 22 Jul 2025 10:57:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=B1=BC=E7=AB=BF=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E6=8A=80=E8=83=BD=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Content/DataTable/PawnSkills.uasset | Bin 15488 -> 16748 bytes .../Components/FishingRodComponent.cpp | 5 ++++ .../Components/FishingRodComponent.h | 2 +- ProjectFish/Source/ProjectFish/Definations.h | 1 + .../Source/ProjectFish/Skill/Skill.cpp | 24 +++++++++++++++--- .../SkillEffect_EnhanceFishRod.cpp | 24 ++++++++++++++++++ .../SkillEffects/SkillEffect_EnhanceFishRod.h | 19 ++++++++++++++ 7 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.cpp create mode 100644 ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.h diff --git a/ProjectFish/Content/DataTable/PawnSkills.uasset b/ProjectFish/Content/DataTable/PawnSkills.uasset index 02cddfd3764eab84e890afcfab2cd985738ddf7a..e30b6371d073964c6d22837911c9e8febe47620c 100644 GIT binary patch literal 16748 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 literal 15488 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 diff --git a/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp b/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp index 11f8e8f..3c56324 100644 --- a/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp +++ b/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp @@ -18,6 +18,11 @@ UFishingRodComponent::UFishingRodComponent() // ... } +void UFishingRodComponent::AddFishRodDamage(int32 Damage) +{ + FishRodData.Damage += Damage; +} + // Called when the game starts void UFishingRodComponent::BeginPlay() diff --git a/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.h b/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.h index 36d03c2..f43cccf 100644 --- a/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.h +++ b/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.h @@ -17,7 +17,7 @@ class PROJECTFISH_API UFishingRodComponent : public UActorComponent public: // Sets default values for this component's properties UFishingRodComponent(); - + void AddFishRodDamage(int32 Damage); protected: // Called when the game starts virtual void BeginPlay() override; diff --git a/ProjectFish/Source/ProjectFish/Definations.h b/ProjectFish/Source/ProjectFish/Definations.h index f738b35..9864075 100644 --- a/ProjectFish/Source/ProjectFish/Definations.h +++ b/ProjectFish/Source/ProjectFish/Definations.h @@ -17,6 +17,7 @@ enum class ESkillEffectType: uint8 Charge UMETA(DisplayName = "充能", ToolTip = "使技能的冷却进度加快"), ModifySpeed UMETA(DisplayName = "速度修改", ToolTip = "使技能冷却进度倍率进展 持续指定时间"), SkillEnduranceRestore UMETA(DisplayName = "技能耐久度恢复", ToolTip = "使技能耐久度恢复"), + EnHanceFishRod UMETA(DisplayName = "增强鱼竿", ToolTip = "使鱼竿上海增加"), }; //技能对象类型 diff --git a/ProjectFish/Source/ProjectFish/Skill/Skill.cpp b/ProjectFish/Source/ProjectFish/Skill/Skill.cpp index 94cbd3f..92454ea 100644 --- a/ProjectFish/Source/ProjectFish/Skill/Skill.cpp +++ b/ProjectFish/Source/ProjectFish/Skill/Skill.cpp @@ -6,6 +6,7 @@ #include "SkillTrigger.h" #include "SkillEffects/SkillEffect_Charge.h" #include "SkillEffects/SkillEffect_Damage.h" +#include "SkillEffects/SkillEffect_EnhanceFishRod.h" #include "SkillEffects/SkillEffect_Heal.h" #include "SkillEffects/SkillEffect_ModifyCD.h" #include "SkillEffects/SkillEffect_ModifySpeed.h" @@ -42,6 +43,12 @@ void USkill::InitSkill(APawnWithSkill* owner, USkillManager* skillManager, FSkil case ESkillEffectType::SkillEnduranceRestore: skillEffect = NewObject(this, USkillEffect_SER::StaticClass()); break; + case ESkillEffectType::EnHanceFishRod: + skillEffect = NewObject(this, USkillEffect_EnhanceFishRod::StaticClass()); + break; + default: + const UEnum* EnumPtr = StaticEnum(); + UE_LOG(LogTemp, Error, TEXT("没有配置 %s类型的Skill Effect"), *EnumPtr->GetNameStringByValue(static_cast(effectData.EffectType))) } if (IsValid(skillEffect)) { @@ -56,11 +63,20 @@ void USkill::InitSkillTrigger() { if (!SkillData.bActiveSkill) { + USkillTrigger* SkillTrigger = NewObject(this, SkillData.SkillTrigger); - FSkillContext context; - context.OwnerSkill = this; - context.SkillManager = SkillManager; - SkillTrigger->Init(context); + if (SkillTrigger) + { + FSkillContext context; + context.OwnerSkill = this; + context.SkillManager = SkillManager; + SkillTrigger->Init(context); + } + else + { + UE_LOG(LogTemp, Warning, TEXT("没有Trigger的被动技能,直接触发")); + ExecuteSkill(); + } } } diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.cpp b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.cpp new file mode 100644 index 0000000..2e6aec4 --- /dev/null +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.cpp @@ -0,0 +1,24 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "SkillEffect_EnhanceFishRod.h" + +#include "ProjectFish/Components/FishingRodComponent.h" +#include "ProjectFish/Skill/Skill.h" + +void USkillEffect_EnhanceFishRod::Execute(const FSkillContext& context) +{ + Super::Execute(context); + APawnWithSkill* OwnerPawn = context.OwnerSkill->GetOwner(); + if (OwnerPawn->GetComponentByClass(UFishingRodComponent::StaticClass()) != NULL) + { + UFishingRodComponent* rod = Cast(OwnerPawn->GetComponentByClass(UFishingRodComponent::StaticClass())); + rod->AddFishRodDamage( (int32)(effectData.EffectValue)); + } + +} + +FString USkillEffect_EnhanceFishRod::GetSkillEffectDes() +{ + return FString::Printf(TEXT("使鱼竿的伤害增加 %d点"), (int32)(effectData.EffectValue)); +} diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.h b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.h new file mode 100644 index 0000000..5dbb6c8 --- /dev/null +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_EnhanceFishRod.h @@ -0,0 +1,19 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ProjectFish/Skill/SkillEffect.h" +#include "SkillEffect_EnhanceFishRod.generated.h" + +/** + * + */ +UCLASS() +class PROJECTFISH_API USkillEffect_EnhanceFishRod : public USkillEffect +{ + GENERATED_BODY() +public: + void Execute(const FSkillContext& context) override; + FString GetSkillEffectDes() override; +};