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

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;
}
}
});
//初始化鱼竿技能
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 "Components/ActorComponent.h"
#include "ProjectFish/Definations.h"
#include "ProjectFish/FishingRodSKill_Base.h"
#include "FishingRodComponent.generated.h"
@ -33,4 +34,7 @@ public:
FFishingRod FishRob;
class APawnWithSkill* Enemy;
float CurrentCDTime = 0.f;
UPROPERTY(BlueprintReadOnly)
TArray<UFishingRodSKill_Base*> FRSkills;
};

View File

@ -142,6 +142,7 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FName SkillRowName;
};
/**
*
@ -161,8 +162,8 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "鱼竿技能名称"))
FName SkillName;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (AllowedClasses = "Object", ToolTip = "技能图片"))
FSoftObjectPath SkillObject;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "鱼钩技能"))
TSubclassOf<class UFishingRodSKill_Base> SkillClass;
};
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);
}
RemainingTime = SkillData.CD;
OnSkillExecute.Broadcast(SkillData.SkillName.ToString());
}
if (RemainingEndurance == 0)
{

View File

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

View File

@ -47,6 +47,17 @@ TArray<APawnWithSkill*> USkillManager::GetAllPawns()
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()
{
return Skills;

View File

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