Progress Manager

The Progress Manager (AC_ProgressManager) is a simple yet powerful component that tracks player progress using a Gameplay Tag | EProgress map. It integrates seamlessly with the AI Interaction Manager component, allowing dialogues to dynamically adjust based on the player's progress. Additionally, it includes a Gameplay Event System that can be triggered from AI dialogues or other gameplay events.

It is added to the PlayerController class by default (PC_SoulslikeFramework).

How It Works

  • Storing & Managing Progress

    • The component maintains a map of Progress Tags | EProgress. Each progress state is stored persistently, allowing the system to track which objectives, quests, or interactions have been completed.

  • Adjusting Progress States

    • SetProgress(ProgressTag, EProgressState)

      • Updates the current progress of a given tag.

    • GetProgress(ProgressTag)

      • Returns the current progress state of a given tag.

  • Executing Gameplay Events

    • ExecuteGameplayEvents(EventsArray)

      • This function processes a struct (FDialogGameplayEvent), which contains:

        • EventTag: Identifies what type of gameplay event it is.

        • AdditionalTag: Provides extra context for event handling.

        • Custom Data: A flexible Instanced Struct that can store any type of data dynamically.

      • When triggered, iterates through the array of events, extracting necessary data and routing them accordingly.

      • Using a switch statement, determines the type of event, executing the desired logic according to event tag.

Example Usage

Example Usage with the NPC Dialogues

Example on Triggering Gameplay Events through Dialogue Tables

Last updated

Was this helpful?