diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll index 4b3f20d..d964049 100644 Binary files a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll differ diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll index 7bf96f6..d98d938 100644 Binary files a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll differ diff --git a/ProjectFish/Config/DefaultGameplayTags.ini b/ProjectFish/Config/DefaultGameplayTags.ini index a501148..81b171d 100644 --- a/ProjectFish/Config/DefaultGameplayTags.ini +++ b/ProjectFish/Config/DefaultGameplayTags.ini @@ -10,5 +10,8 @@ InvalidTagCharacters="\"\'," +GameplayTagRedirects=(OldTagName="Skill.PoserPull",NewTagName="Skill.PowerPull") NumBitsForContainerSize=6 NetIndexFirstBitSegment=16 ++GameplayTagList=(Tag="FishReward",DevComment="鱼获") ++GameplayTagList=(Tag="FishReward.Fish1",DevComment="") ++GameplayTagList=(Tag="FishReward.Fish2",DevComment="") +GameplayTagList=(Tag="Skill.PowerPull",DevComment="") diff --git a/ProjectFish/Content/DataAssets/FishReward/Fish1Reward.uasset b/ProjectFish/Content/DataAssets/FishReward/Fish1Reward.uasset index 7235bb2..a04395e 100644 Binary files a/ProjectFish/Content/DataAssets/FishReward/Fish1Reward.uasset and b/ProjectFish/Content/DataAssets/FishReward/Fish1Reward.uasset differ diff --git a/ProjectFish/Content/DataAssets/FishReward/Fish1Reward2.uasset b/ProjectFish/Content/DataAssets/FishReward/Fish1Reward2.uasset index 02be966..bee7026 100644 Binary files a/ProjectFish/Content/DataAssets/FishReward/Fish1Reward2.uasset and b/ProjectFish/Content/DataAssets/FishReward/Fish1Reward2.uasset differ diff --git a/ProjectFish/Content/DataAssets/Quest/Quest1_AutoAccept_CompleteByReward.uasset b/ProjectFish/Content/DataAssets/Quest/Quest1_AutoAccept_CompleteByReward.uasset index f226801..14a7f74 100644 Binary files a/ProjectFish/Content/DataAssets/Quest/Quest1_AutoAccept_CompleteByReward.uasset and b/ProjectFish/Content/DataAssets/Quest/Quest1_AutoAccept_CompleteByReward.uasset differ diff --git a/ProjectFish/Content/UI/Common/Container/UMG_Container_Grid.uasset b/ProjectFish/Content/UI/Common/Container/UMG_Container_Grid.uasset index c0c2863..ea6d723 100644 Binary files a/ProjectFish/Content/UI/Common/Container/UMG_Container_Grid.uasset and b/ProjectFish/Content/UI/Common/Container/UMG_Container_Grid.uasset differ diff --git a/ProjectFish/Content/UI/Fishing/Windows/UMG_ManagerFishingREward_Window.uasset b/ProjectFish/Content/UI/Fishing/Windows/UMG_ManagerFishingREward_Window.uasset index 2c1e55f..dd9fced 100644 Binary files a/ProjectFish/Content/UI/Fishing/Windows/UMG_ManagerFishingREward_Window.uasset and b/ProjectFish/Content/UI/Fishing/Windows/UMG_ManagerFishingREward_Window.uasset differ diff --git a/ProjectFish/Content/UI/HomeUI/Widgets/Market/UMG_Market_ContainerSwitcher.uasset b/ProjectFish/Content/UI/HomeUI/Widgets/Market/UMG_Market_ContainerSwitcher.uasset index 1a8e325..a1e7c18 100644 Binary files a/ProjectFish/Content/UI/HomeUI/Widgets/Market/UMG_Market_ContainerSwitcher.uasset and b/ProjectFish/Content/UI/HomeUI/Widgets/Market/UMG_Market_ContainerSwitcher.uasset differ diff --git a/ProjectFish/Source/ProjectFish/DataAsset/FishingRewardDataAsset.h b/ProjectFish/Source/ProjectFish/DataAsset/FishingRewardDataAsset.h index 20143fb..04f33a0 100644 --- a/ProjectFish/Source/ProjectFish/DataAsset/FishingRewardDataAsset.h +++ b/ProjectFish/Source/ProjectFish/DataAsset/FishingRewardDataAsset.h @@ -5,6 +5,7 @@ #include "CoreMinimal.h" #include "ShapeAsset.h" #include "Engine/DataAsset.h" +#include "ProjectFish/Quest/QuestTypes.h" #include "FishingRewardDataAsset.generated.h" UENUM(BlueprintType) @@ -36,4 +37,7 @@ public: UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "鱼获稀有度")) ERewardRarityType RewardRarityType; + + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Fishing Reward Data" , meta = (ToolTip = "鱼获对应的任务信息")) + FQuestTargetInfo QuestTargetInfo; }; diff --git a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp index 1ed805c..7d4fcbe 100644 --- a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp +++ b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp @@ -198,7 +198,7 @@ void UQuestManager::UpdateObjectiveProgress(int32 QuestID, int32 ObjectiveIndex, CheckQuestCompletion(QuestID); } -void UQuestManager::UpdateObjectiveByTargetID(FName TargetID, int32 ProgressDelta) +void UQuestManager::UpdateObjectiveByTargetID(FGameplayTag TargetTag, int32 ProgressDelta) { // 遍历所有活动任务,查找匹配的目标 for (TPair& Pair : ActiveQuestsMap) @@ -213,7 +213,7 @@ void UQuestManager::UpdateObjectiveByTargetID(FName TargetID, int32 ProgressDelt for (int32 i = 0; i < RuntimeData.QuestAsset->Objectives.Num(); ++i) { const FQuestObjective& Objective = RuntimeData.QuestAsset->Objectives[i]; - if (Objective.TargetID == TargetID) + if (Objective.TargetID.TargetTag == TargetTag) { // 增加进度 int32 NewProgress = RuntimeData.ObjectiveProgress[i].CurrentProgress + ProgressDelta; diff --git a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h index 2936cdc..709eb88 100644 --- a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h +++ b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h @@ -79,7 +79,7 @@ public: /** 通过目标ID更新进度(自动查找对应目标) */ UFUNCTION(BlueprintCallable, Category = "Quest") - void UpdateObjectiveByTargetID(FName TargetID, int32 ProgressDelta = 1); + void UpdateObjectiveByTargetID(FGameplayTag TargetTag, int32 ProgressDelta = 1); // ========== 任务查询 ========== diff --git a/ProjectFish/Source/ProjectFish/Quest/QuestTypes.h b/ProjectFish/Source/ProjectFish/Quest/QuestTypes.h index 0eef92b..2c9facb 100644 --- a/ProjectFish/Source/ProjectFish/Quest/QuestTypes.h +++ b/ProjectFish/Source/ProjectFish/Quest/QuestTypes.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "GameplayTagContainer.h" #include "QuestTypes.generated.h" /** @@ -49,6 +50,24 @@ struct FQuestReward int32 GoldAmount = 0; }; +/** + * 任务目标数据 + */ +USTRUCT(BlueprintType) +struct FQuestTargetInfo +{ + GENERATED_BODY() + + /** 目标名称*/ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Quest") + FText QuestTargetName; + + /** 目标ID */ + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Quest") + FGameplayTag TargetTag; + +}; + /** * 任务目标数据 */ @@ -67,7 +86,7 @@ struct FQuestObjective /** 目标ID(物品ID、敌人ID、地点Tag等) */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Quest") - FName TargetID; + FQuestTargetInfo TargetID; /** 需要完成的数量 */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Quest")