完善鱼市任务提交界面

This commit is contained in:
997146918 2025-10-31 11:18:51 +08:00
parent 7718b4b3c0
commit 99a6d3b35a
16 changed files with 29 additions and 8 deletions

View File

@ -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"
}
}

Binary file not shown.

View File

@ -2,6 +2,6 @@
"BuildId": "37670630",
"Modules":
{
"DeskMode": "UnrealEditor-DeskMode.dll"
"DeskMode": "UnrealEditor-DeskMode-0001.dll"
}
}

View File

@ -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<FQuestTargetInfo> UQuestManager::GetQuestTargets(int32 QuestID) const
{
TArray<FQuestTargetInfo> Targets;
for (auto quest:QuestAssets)
{
if (quest->QuestID == QuestID)
{
for (auto TargetInfo: quest->Objectives)
{
Targets.Add(TargetInfo.TargetID);
}
return Targets;
}
}
return Targets;
}
TArray<UQuestAsset*> UQuestManager::GetActiveQuests() const
{
TArray<UQuestAsset*> Result;

View File

@ -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<FQuestTargetInfo> GetQuestTargets(int32 QuestID) const;
/** 获取所有进行中的任务 */
UFUNCTION(BlueprintPure, Category = "Quest")
TArray<UQuestAsset*> GetActiveQuests() const;