diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish-0001.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish-0001.dll new file mode 100644 index 0000000..d7fb5f2 Binary files /dev/null and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish-0001.dll differ diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll index 4f6bc22..ecf85c5 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-0001.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor-0001.dll new file mode 100644 index 0000000..dc9934a Binary files /dev/null and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor-0001.dll differ diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll index 1978833..84962bd 100644 Binary files a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFishEditor.dll differ diff --git a/ProjectFish/Binaries/Win64/UnrealEditor.modules b/ProjectFish/Binaries/Win64/UnrealEditor.modules index 22c08e6..fe900f8 100644 --- a/ProjectFish/Binaries/Win64/UnrealEditor.modules +++ b/ProjectFish/Binaries/Win64/UnrealEditor.modules @@ -2,7 +2,7 @@ "BuildId": "37670630", "Modules": { - "ProjectFish": "UnrealEditor-ProjectFish.dll", - "ProjectFishEditor": "UnrealEditor-ProjectFishEditor.dll" + "ProjectFish": "UnrealEditor-ProjectFish-0001.dll", + "ProjectFishEditor": "UnrealEditor-ProjectFishEditor-0001.dll" } } \ No newline at end of file diff --git a/ProjectFish/Content/Textures/Market/MarketNPC.uasset b/ProjectFish/Content/Textures/Market/MarketNPC.uasset new file mode 100644 index 0000000..7367f01 Binary files /dev/null and b/ProjectFish/Content/Textures/Market/MarketNPC.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 dd9fced..355d866 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/Market/Widgets/UMG_Market_QuestNeed_Widget.uasset b/ProjectFish/Content/UI/Market/Widgets/UMG_Market_QuestNeed_Widget.uasset new file mode 100644 index 0000000..6b3fe1a Binary files /dev/null and b/ProjectFish/Content/UI/Market/Widgets/UMG_Market_QuestNeed_Widget.uasset differ diff --git a/ProjectFish/Content/UI/Market/Window/UMG_Market_Dialogue.uasset b/ProjectFish/Content/UI/Market/Window/UMG_Market_Dialogue.uasset index b9d6c9b..d3b7fe5 100644 Binary files a/ProjectFish/Content/UI/Market/Window/UMG_Market_Dialogue.uasset and b/ProjectFish/Content/UI/Market/Window/UMG_Market_Dialogue.uasset differ diff --git a/ProjectFish/Content/UI/Market/Window/UMG_Market_Main.uasset b/ProjectFish/Content/UI/Market/Window/UMG_Market_Main.uasset deleted file mode 100644 index 9ef86e1..0000000 Binary files a/ProjectFish/Content/UI/Market/Window/UMG_Market_Main.uasset and /dev/null differ diff --git a/ProjectFish/Content/UI/Market/Window/UMG_Market_Normal.uasset b/ProjectFish/Content/UI/Market/Window/UMG_Market_Normal.uasset new file mode 100644 index 0000000..2a6c872 Binary files /dev/null and b/ProjectFish/Content/UI/Market/Window/UMG_Market_Normal.uasset differ diff --git a/ProjectFish/Content/UI/Market/Window/UMG_Market_Quest.uasset b/ProjectFish/Content/UI/Market/Window/UMG_Market_Quest.uasset new file mode 100644 index 0000000..4ef78c5 Binary files /dev/null and b/ProjectFish/Content/UI/Market/Window/UMG_Market_Quest.uasset differ diff --git a/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor-DeskMode-0001.dll b/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor-DeskMode-0001.dll new file mode 100644 index 0000000..88a7f32 Binary files /dev/null and b/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor-DeskMode-0001.dll differ diff --git a/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor.modules b/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor.modules index 437a3ab..b19fd1c 100644 --- a/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor.modules +++ b/ProjectFish/Plugins/DeskMode/Binaries/Win64/UnrealEditor.modules @@ -2,6 +2,6 @@ "BuildId": "37670630", "Modules": { - "DeskMode": "UnrealEditor-DeskMode.dll" + "DeskMode": "UnrealEditor-DeskMode-0001.dll" } } \ No newline at end of file diff --git a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp index 8ef0679..010e293 100644 --- a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp +++ b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.cpp @@ -82,7 +82,7 @@ bool UQuestManager::AcceptQuest(UQuestAsset* QuestAsset, bool bSaveGameInfo ) ActiveQuestsMap.Add(QuestAsset->QuestID, RuntimeData); // 触发事件 - OnQuestStateChanged.Broadcast(QuestAsset->QuestID); + OnQuestStateChanged.Broadcast(QuestAsset->QuestID, EQuestState::InProgress); UE_LOG(LogTemp, Warning, TEXT("Quest %s Accepted"), *QuestAsset->QuestName.ToString()); if (bSaveGameInfo) @@ -138,7 +138,7 @@ bool UQuestManager::CompleteQuest(int32 QuestID) CompletedQuestIDs.Add(QuestID); // 触发事件 - OnQuestStateChanged.Broadcast(QuestID); + OnQuestStateChanged.Broadcast(QuestID, EQuestState::Completed); UE_LOG(LogTemp, Warning, TEXT("Quest id = %d Complete"), QuestID); // // 从活动任务中移除 // ActiveQuestsMap.Remove(QuestID); @@ -158,7 +158,7 @@ bool UQuestManager::AbandonQuest(int32 QuestID) } ActiveQuestsMap.Remove(QuestID); - OnQuestStateChanged.Broadcast(QuestID); + OnQuestStateChanged.Broadcast(QuestID, EQuestState::Failed); return true; } @@ -246,6 +246,23 @@ bool UQuestManager::IsQuestFollowing(int32 QuestID) const return FollowingQuestIDs.Contains(QuestID); } +TArray UQuestManager::GetQuestTargets(int32 QuestID) const +{ + TArray Targets; + for (auto quest:QuestAssets) + { + if (quest->QuestID == QuestID) + { + for (auto TargetInfo: quest->Objectives) + { + Targets.Add(TargetInfo.TargetID); + } + return Targets; + } + } + return Targets; +} + TArray UQuestManager::GetActiveQuests() const { TArray Result; diff --git a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h index 709eb88..c82292c 100644 --- a/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h +++ b/ProjectFish/Source/ProjectFish/Gameplay/Subsystem/QuestManager.h @@ -31,7 +31,7 @@ struct FQuestRuntimeData }; // 任务事件委托 -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnQuestStateChanged, int32, QuestID); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnQuestStateChanged, int32, QuestID, EQuestState, QuestState); DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnQuestObjectiveUpdated, int32, QuestID, int32, ObjectiveIndex); /** @@ -74,7 +74,7 @@ public: // ========== 任务进度 ========== /** 更新任务目标进度(收集物品、击败敌人、到达地点) */ - UFUNCTION(BlueprintCallable, Category = "Quest") + //UFUNCTION(BlueprintCallable, Category = "Quest") void UpdateObjectiveProgress(int32 QuestID, int32 ObjectiveIndex, int32 Progress); /** 通过目标ID更新进度(自动查找对应目标) */ @@ -91,6 +91,10 @@ public: UFUNCTION(BlueprintPure, Category = "Quest") bool IsQuestFollowing(int32 QuestID) const; + /** 获取指定任务的任务目标 */ + UFUNCTION(BlueprintPure, Category = "Quest") + TArray GetQuestTargets(int32 QuestID) const; + /** 获取所有进行中的任务 */ UFUNCTION(BlueprintPure, Category = "Quest") TArray GetActiveQuests() const;