diff --git a/Config/DefaultGameplayTags.ini b/Config/DefaultGameplayTags.ini index 726563ef..4e9b8603 100644 --- a/Config/DefaultGameplayTags.ini +++ b/Config/DefaultGameplayTags.ini @@ -49,10 +49,13 @@ NetIndexFirstBitSegment=16 +GameplayTagList=(Tag="Items.Gold",DevComment="") +GameplayTagList=(Tag="NpcTags",DevComment="Identity of a scheduled NPC. Every NPC carrying the same tag is driven by the same schedule asset in NpcSchedules.") +GameplayTagList=(Tag="NpcTags.Test",DevComment="") ++GameplayTagList=(Tag="NpcTags.Trish",DevComment="") +GameplayTagList=(Tag="Quests",DevComment="Identity of a quest. Each quest data asset is tagged with Quests., and quests reference each other by these tags.") +GameplayTagList=(Tag="Quests.Signals",DevComment="Signals a quest step waits on that no system in the game announces, fired from blueprint with NotifyQuestSignal.") +GameplayTagList=(Tag="Quests.Test",DevComment="") +GameplayTagList=(Tag="Quests.Test.1",DevComment="") ++GameplayTagList=(Tag="Quests.Trish",DevComment="") ++GameplayTagList=(Tag="Quests.Trish.WarmWelcome",DevComment="") +GameplayTagList=(Tag="SaveGameTags",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Alchemy.TableLevel",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Bazar.Table.InventorySpace",DevComment="") @@ -62,6 +65,7 @@ NetIndexFirstBitSegment=16 +GameplayTagList=(Tag="SaveGameTags.Chest.Opened",DevComment="") +GameplayTagList=(Tag="SaveGameTags.InteractionStage",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Locked",DevComment="") ++GameplayTagList=(Tag="SaveGameTags.Rubble.Cleaned",DevComment="") +GameplayTagList=(Tag="SetByCaller.Effects.ExpModifier",DevComment="") +GameplayTagList=(Tag="Skins",DevComment="") +GameplayTagList=(Tag="Skins.Eleri.Body",DevComment="") diff --git a/Content/Blueprints/BP_RubbleActor.uasset b/Content/Blueprints/BP_RubbleActor.uasset new file mode 100644 index 00000000..8adae658 --- /dev/null +++ b/Content/Blueprints/BP_RubbleActor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:809fc9f1755db850b853f88ab76d5bd08f0921c3afb1de5d1f2f6bbd6d9082b7 +size 77419 diff --git a/Content/Character/BP_Npc_Trish.uasset b/Content/Character/BP_Npc_Trish.uasset new file mode 100644 index 00000000..fa57c64e --- /dev/null +++ b/Content/Character/BP_Npc_Trish.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f650dbe990f620a91cb7e679350e8cf693470c26f3fe30691908ae9bd0a39de +size 31754 diff --git a/Content/GameData/Dialogue/Characters/DA_Test_Speech_1.uasset b/Content/GameData/Dialogue/Characters/DA_Test_Speech_1.uasset deleted file mode 100644 index a0d78a12..00000000 --- a/Content/GameData/Dialogue/Characters/DA_Test_Speech_1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59d323ccac47e3a64850c1a68c956e87c49a8eff68c9ef1b396c41d8d6fd83bc -size 1459 diff --git a/Content/GameData/Dialogue/Characters/Test/S_Trish_MeetDialogue.uasset b/Content/GameData/Dialogue/Characters/Test/S_Trish_MeetDialogue.uasset deleted file mode 100644 index 972211a8..00000000 --- a/Content/GameData/Dialogue/Characters/Test/S_Trish_MeetDialogue.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5163ac91ec96b9c91e03e437aa94592a22a6a2be512bc37d44bac23bb7892af5 -size 4044 diff --git a/Content/GameData/Dialogue/Characters/Trish/DA_Trish_StartingSpeech.uasset b/Content/GameData/Dialogue/Characters/Trish/DA_Trish_StartingSpeech.uasset new file mode 100644 index 00000000..ac37eff3 --- /dev/null +++ b/Content/GameData/Dialogue/Characters/Trish/DA_Trish_StartingSpeech.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72317e60e9e38bcd58e0bbacbc738589757a4878fe976eb0b1fd78d1afb9b0c4 +size 2399 diff --git a/Content/GameData/Dialogue/Characters/Trish/S_Trish_MeetDialogue.uasset b/Content/GameData/Dialogue/Characters/Trish/S_Trish_MeetDialogue.uasset new file mode 100644 index 00000000..a7a20845 --- /dev/null +++ b/Content/GameData/Dialogue/Characters/Trish/S_Trish_MeetDialogue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0320dcba9d37c41ab6f218ed6b3560c205e811763a571674a571d3134c72017c +size 4047 diff --git a/Content/GameData/Quests/DA_Quest_Trish_WarmWelcome.uasset b/Content/GameData/Quests/DA_Quest_Trish_WarmWelcome.uasset index cf7beadc..994ed0ef 100644 --- a/Content/GameData/Quests/DA_Quest_Trish_WarmWelcome.uasset +++ b/Content/GameData/Quests/DA_Quest_Trish_WarmWelcome.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e535ee0645cc4a3e8f1dd5534dca2fbfafc6aea7f2a2327a4c92f0cf2b257ed4 -size 1372 +oid sha256:3bee96f2b1bb07c8bb8c1c8e416faff65bd20c26ff39d01178989e353ae6a51b +size 4053 diff --git a/Content/ST_CommonWords.uasset b/Content/ST_CommonWords.uasset index 9f8c16ae..05588d6e 100644 --- a/Content/ST_CommonWords.uasset +++ b/Content/ST_CommonWords.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f0b0775219e4124dc75a5434beab2786f7aea02323125ba6b2f9676fd3427f5 -size 6622 +oid sha256:d8bfe74d2ca9b8b59eb8ece9319d1ce428d68e314e9403fecddd40aee21662c2 +size 6767 diff --git a/Source/ProjectEleri/DialogueSystem/SpeechDataAsset.h b/Source/ProjectEleri/DialogueSystem/SpeechDataAsset.h index 4e11d747..8d44f2e5 100644 --- a/Source/ProjectEleri/DialogueSystem/SpeechDataAsset.h +++ b/Source/ProjectEleri/DialogueSystem/SpeechDataAsset.h @@ -82,7 +82,7 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Event Requirment") TArray EventRequirements; - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Speech") + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Speech", meta = (AllowedClasses = "/Script/ProjectEleri.NpcBaseCharacter")) TSoftClassPtr Npc; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Eleri|Speech", meta = (Categories = "Quests")) diff --git a/Source/ProjectEleri/NPC/NpcBaseCharacter.h b/Source/ProjectEleri/NPC/NpcBaseCharacter.h index 3d7070ce..87759d3f 100644 --- a/Source/ProjectEleri/NPC/NpcBaseCharacter.h +++ b/Source/ProjectEleri/NPC/NpcBaseCharacter.h @@ -49,7 +49,7 @@ struct FNpcCharacterData * is far away, the state machine walks it there and keeps it there, the inventory holds whatever it * carries, and the interaction widget shows its prompt. */ -UCLASS(BlueprintType) +UCLASS(BlueprintType, PrioritizeCategories = "Info") class PROJECTELERI_API ANpcBaseCharacter : public APawn, public IInteractableActorInterface { GENERATED_BODY() @@ -114,6 +114,6 @@ protected: UPROPERTY(VisibleAnywhere, BlueprintReadOnly) TObjectPtr WidgetComponent; - UPROPERTY(EditAnywhere, BlueprintReadOnly) + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Info") FNpcCharacterData NpcCharacterData; }; diff --git a/Source/ProjectEleri/QuestSystem/QuestSubsystem.cpp b/Source/ProjectEleri/QuestSystem/QuestSubsystem.cpp index b75a9dfb..fca6b151 100644 --- a/Source/ProjectEleri/QuestSystem/QuestSubsystem.cpp +++ b/Source/ProjectEleri/QuestSystem/QuestSubsystem.cpp @@ -1125,8 +1125,10 @@ bool UQuestSubsystem::DoesActorMatchObjective(const FQuestObjective& Objective, // The actor the step names, when it names one. Asked both ways round: a resolved reference is the // cheap path, and the path is what a step that points at an actor in a level which is not loaded // right now can still be matched against. - if (!Objective.TargetActor.IsNull() - && (Objective.TargetActor.Get() == Actor || Objective.TargetActor.ToSoftObjectPath() == FSoftObjectPath(Actor))) + if (Objective.TargetActors.ContainsByPredicate([Actor](const TSoftObjectPtr& OtherActor) + { + return OtherActor.ToSoftObjectPath() == FSoftObjectPath(Actor); + })) { return true; } @@ -1151,7 +1153,7 @@ bool UQuestSubsystem::DoesActorMatchObjective(const FQuestObjective& Objective, // A step that names nothing is satisfied by anything, which is how "use one of the wells" is // written without having to list every well in the level. - return Objective.TargetActor.IsNull() + return Objective.TargetActors.IsEmpty() && Objective.TargetLocationMarker.IsNull() && !Objective.TargetNpcTag.IsValid(); } diff --git a/Source/ProjectEleri/QuestSystem/QuestTypes.h b/Source/ProjectEleri/QuestSystem/QuestTypes.h index a352c9be..1c514c85 100644 --- a/Source/ProjectEleri/QuestSystem/QuestTypes.h +++ b/Source/ProjectEleri/QuestSystem/QuestTypes.h @@ -151,7 +151,7 @@ struct PROJECTELERI_API FQuestObjective /** TalkToNpc / InteractWith / LocationArrival: the target, when it is not an NPC */ UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Step", meta = (EditCondition = "StepType==EQuestStepType::TalkToNpc || StepType==EQuestStepType::InteractWith || StepType==EQuestStepType::LocationArrival", EditConditionHides)) - TSoftObjectPtr TargetActor; + TArray> TargetActors; /** DialogueEvent: the event a line has to fire. TalkToNpc accepts it too, which is how a * conversation with several outcomes is made to count. */