Some fixes for quest and started making Trish and her first quest
This commit is contained in:
@@ -49,10 +49,13 @@ NetIndexFirstBitSegment=16
|
|||||||
+GameplayTagList=(Tag="Items.Gold",DevComment="")
|
+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",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.Test",DevComment="")
|
||||||
|
+GameplayTagList=(Tag="NpcTags.Trish",DevComment="")
|
||||||
+GameplayTagList=(Tag="Quests",DevComment="Identity of a quest. Each quest data asset is tagged with Quests.<Name>, and quests reference each other by these tags.")
|
+GameplayTagList=(Tag="Quests",DevComment="Identity of a quest. Each quest data asset is tagged with Quests.<Name>, 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.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",DevComment="")
|
||||||
+GameplayTagList=(Tag="Quests.Test.1",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",DevComment="")
|
||||||
+GameplayTagList=(Tag="SaveGameTags.Alchemy.TableLevel",DevComment="")
|
+GameplayTagList=(Tag="SaveGameTags.Alchemy.TableLevel",DevComment="")
|
||||||
+GameplayTagList=(Tag="SaveGameTags.Bazar.Table.InventorySpace",DevComment="")
|
+GameplayTagList=(Tag="SaveGameTags.Bazar.Table.InventorySpace",DevComment="")
|
||||||
@@ -62,6 +65,7 @@ NetIndexFirstBitSegment=16
|
|||||||
+GameplayTagList=(Tag="SaveGameTags.Chest.Opened",DevComment="")
|
+GameplayTagList=(Tag="SaveGameTags.Chest.Opened",DevComment="")
|
||||||
+GameplayTagList=(Tag="SaveGameTags.InteractionStage",DevComment="")
|
+GameplayTagList=(Tag="SaveGameTags.InteractionStage",DevComment="")
|
||||||
+GameplayTagList=(Tag="SaveGameTags.Locked",DevComment="")
|
+GameplayTagList=(Tag="SaveGameTags.Locked",DevComment="")
|
||||||
|
+GameplayTagList=(Tag="SaveGameTags.Rubble.Cleaned",DevComment="")
|
||||||
+GameplayTagList=(Tag="SetByCaller.Effects.ExpModifier",DevComment="")
|
+GameplayTagList=(Tag="SetByCaller.Effects.ExpModifier",DevComment="")
|
||||||
+GameplayTagList=(Tag="Skins",DevComment="")
|
+GameplayTagList=(Tag="Skins",DevComment="")
|
||||||
+GameplayTagList=(Tag="Skins.Eleri.Body",DevComment="")
|
+GameplayTagList=(Tag="Skins.Eleri.Body",DevComment="")
|
||||||
|
|||||||
BIN
Content/Blueprints/BP_RubbleActor.uasset
LFS
Normal file
BIN
Content/Blueprints/BP_RubbleActor.uasset
LFS
Normal file
Binary file not shown.
BIN
Content/Character/BP_Npc_Trish.uasset
LFS
Normal file
BIN
Content/Character/BP_Npc_Trish.uasset
LFS
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/GameData/Dialogue/Characters/Trish/DA_Trish_StartingSpeech.uasset
LFS
Normal file
BIN
Content/GameData/Dialogue/Characters/Trish/DA_Trish_StartingSpeech.uasset
LFS
Normal file
Binary file not shown.
BIN
Content/GameData/Dialogue/Characters/Trish/S_Trish_MeetDialogue.uasset
LFS
Normal file
BIN
Content/GameData/Dialogue/Characters/Trish/S_Trish_MeetDialogue.uasset
LFS
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/ST_CommonWords.uasset
LFS
BIN
Content/ST_CommonWords.uasset
LFS
Binary file not shown.
@@ -82,7 +82,7 @@ public:
|
|||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Event Requirment")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Event Requirment")
|
||||||
TArray<FEventRequirement> EventRequirements;
|
TArray<FEventRequirement> EventRequirements;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Speech")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Eleri|Speech", meta = (AllowedClasses = "/Script/ProjectEleri.NpcBaseCharacter"))
|
||||||
TSoftClassPtr<AActor> Npc;
|
TSoftClassPtr<AActor> Npc;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Eleri|Speech", meta = (Categories = "Quests"))
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Eleri|Speech", meta = (Categories = "Quests"))
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ struct FNpcCharacterData
|
|||||||
* is far away, the state machine walks it there and keeps it there, the inventory holds whatever it
|
* 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.
|
* carries, and the interaction widget shows its prompt.
|
||||||
*/
|
*/
|
||||||
UCLASS(BlueprintType)
|
UCLASS(BlueprintType, PrioritizeCategories = "Info")
|
||||||
class PROJECTELERI_API ANpcBaseCharacter : public APawn, public IInteractableActorInterface
|
class PROJECTELERI_API ANpcBaseCharacter : public APawn, public IInteractableActorInterface
|
||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
@@ -114,6 +114,6 @@ protected:
|
|||||||
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
|
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
|
||||||
TObjectPtr<UInteractionWidgetComponent> WidgetComponent;
|
TObjectPtr<UInteractionWidgetComponent> WidgetComponent;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadOnly)
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Info")
|
||||||
FNpcCharacterData NpcCharacterData;
|
FNpcCharacterData NpcCharacterData;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
// 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
|
// 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.
|
// right now can still be matched against.
|
||||||
if (!Objective.TargetActor.IsNull()
|
if (Objective.TargetActors.ContainsByPredicate([Actor](const TSoftObjectPtr<AActor>& OtherActor)
|
||||||
&& (Objective.TargetActor.Get() == Actor || Objective.TargetActor.ToSoftObjectPath() == FSoftObjectPath(Actor)))
|
{
|
||||||
|
return OtherActor.ToSoftObjectPath() == FSoftObjectPath(Actor);
|
||||||
|
}))
|
||||||
{
|
{
|
||||||
return true;
|
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
|
// 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.
|
// written without having to list every well in the level.
|
||||||
return Objective.TargetActor.IsNull()
|
return Objective.TargetActors.IsEmpty()
|
||||||
&& Objective.TargetLocationMarker.IsNull()
|
&& Objective.TargetLocationMarker.IsNull()
|
||||||
&& !Objective.TargetNpcTag.IsValid();
|
&& !Objective.TargetNpcTag.IsValid();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ struct PROJECTELERI_API FQuestObjective
|
|||||||
|
|
||||||
/** TalkToNpc / InteractWith / LocationArrival: the target, when it is not an NPC */
|
/** 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))
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Step", meta = (EditCondition = "StepType==EQuestStepType::TalkToNpc || StepType==EQuestStepType::InteractWith || StepType==EQuestStepType::LocationArrival", EditConditionHides))
|
||||||
TSoftObjectPtr<AActor> TargetActor;
|
TArray<TSoftObjectPtr<AActor>> TargetActors;
|
||||||
|
|
||||||
/** DialogueEvent: the event a line has to fire. TalkToNpc accepts it too, which is how a
|
/** DialogueEvent: the event a line has to fire. TalkToNpc accepts it too, which is how a
|
||||||
* conversation with several outcomes is made to count. */
|
* conversation with several outcomes is made to count. */
|
||||||
|
|||||||
Reference in New Issue
Block a user