添加鱼竿的技能配置,添加鱼竿的加速技能

This commit is contained in:
997146918 2025-07-16 19:24:00 +08:00
parent ff988535aa
commit 0bed66d5ca
15 changed files with 71 additions and 6 deletions

View File

@ -53,7 +53,18 @@ void UFishingRobComponent::BeginPlay()
Enemy = pawn; Enemy = pawn;
} }
} }
}); //初始化鱼竿技能
for (auto skill : FishRob.Skills)
{
UFishingRodSKill_Base* SkillObject = NewObject<UFishingRodSKill_Base>(OwnerPawn, skill.SkillClass);
if (SkillObject != nullptr)
{
FRSkills.Add(SkillObject);
SkillObject->Init(OwnerPawn);
}
}
});
} }
// ... // ...

View File

@ -5,6 +5,7 @@
#include "CoreMinimal.h" #include "CoreMinimal.h"
#include "Components/ActorComponent.h" #include "Components/ActorComponent.h"
#include "ProjectFish/Definations.h" #include "ProjectFish/Definations.h"
#include "ProjectFish/FishingRodSKill_Base.h"
#include "FishingRodComponent.generated.h" #include "FishingRodComponent.generated.h"
@ -33,4 +34,7 @@ public:
FFishingRod FishRob; FFishingRod FishRob;
class APawnWithSkill* Enemy; class APawnWithSkill* Enemy;
float CurrentCDTime = 0.f; float CurrentCDTime = 0.f;
UPROPERTY(BlueprintReadOnly)
TArray<UFishingRodSKill_Base*> FRSkills;
}; };

View File

@ -142,6 +142,7 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite) UPROPERTY(EditAnywhere, BlueprintReadWrite)
FName SkillRowName; FName SkillRowName;
}; };
/** /**
* *
@ -161,8 +162,8 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "鱼竿技能名称")) UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "鱼竿技能名称"))
FName SkillName; FName SkillName;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (AllowedClasses = "Object", ToolTip = "技能图片")) UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "鱼钩技能"))
FSoftObjectPath SkillObject; TSubclassOf<class UFishingRodSKill_Base> SkillClass;
}; };
USTRUCT(BlueprintType) USTRUCT(BlueprintType)

View File

@ -0,0 +1,8 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "FishingRodSKill_Base.h"
UFishingRodSKill_Base::UFishingRodSKill_Base()
{
}

View File

@ -0,0 +1,22 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Definations.h"
#include "UObject/Object.h"
#include "FishingRodSKill_Base.generated.h"
/**
*
*/
UCLASS(Blueprintable)
class PROJECTFISH_API UFishingRodSKill_Base : public UObject
{
GENERATED_BODY()
public:
UFishingRodSKill_Base();
UFUNCTION(BlueprintImplementableEvent)
void Init(class APawnWithSkill* Owner);
};

View File

@ -73,6 +73,7 @@ void USkill::TickSkill(float deltaTime)
Effect->Execute(context); Effect->Execute(context);
} }
RemainingTime = SkillData.CD; RemainingTime = SkillData.CD;
OnSkillExecute.Broadcast(SkillData.SkillName.ToString());
} }
if (RemainingEndurance == 0) if (RemainingEndurance == 0)
{ {

View File

@ -10,7 +10,7 @@
#include "Skill.generated.h" #include "Skill.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FSkillUpdate); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FSkillUpdate);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSkillExecute, FString, SkillName );
/** /**
* *
*/ */
@ -27,7 +27,8 @@ public:
FSkillData& GetSkillData(); FSkillData& GetSkillData();
void SetSkillData( FSkillData SkillData); void SetSkillData( FSkillData SkillData);
void ApplyRemainingTimeOffset(int timeOffset); UFUNCTION(BlueprintCallable)
void ApplyRemainingTimeOffset(int timeOffset);
void ApplyRemainingRemainingEnduranceOffset(int Offset); void ApplyRemainingRemainingEnduranceOffset(int Offset);
UFUNCTION(BlueprintPure) UFUNCTION(BlueprintPure)
@ -35,6 +36,9 @@ public:
protected: protected:
UPROPERTY(BlueprintAssignable) UPROPERTY(BlueprintAssignable)
FSkillUpdate OnSkillUpdate; FSkillUpdate OnSkillUpdate;
UPROPERTY(BlueprintAssignable)
FSkillExecute OnSkillExecute;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果")) UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果"))
FSkillData SkillData; FSkillData SkillData;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果")) UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果"))

View File

@ -47,6 +47,17 @@ TArray<APawnWithSkill*> USkillManager::GetAllPawns()
return SkillPawns; return SkillPawns;
} }
TArray<class USkill*> USkillManager::GetSkillsByOwner(APawnWithSkill* Pawn)
{
TArray<class USkill*> skills;
for (auto Skill : Skills)
{
if (Skill->GetOwner() == Pawn)
skills.Add(Skill);
}
return skills;
}
TArray< USkill*> USkillManager::GetAllSkills() TArray< USkill*> USkillManager::GetAllSkills()
{ {
return Skills; return Skills;

View File

@ -32,7 +32,10 @@ public:
UFUNCTION(BlueprintCallable) UFUNCTION(BlueprintCallable)
TArray<APawnWithSkill*> GetAllPawns(); TArray<APawnWithSkill*> GetAllPawns();
UFUNCTION(BlueprintCallable) UFUNCTION(BlueprintPure)
TArray<class USkill*> GetSkillsByOwner(APawnWithSkill* Pawn);
UFUNCTION(BlueprintPure)
TArray<class USkill*> GetAllSkills(); TArray<class USkill*> GetAllSkills();
protected: protected:
UPROPERTY(BlueprintReadWrite) UPROPERTY(BlueprintReadWrite)