4#include "Runtime/Json/Public/Dom/JsonObject.h"
5#include "CoreMinimal.h"
6#include "UObject/NoExportTypes.h"
7#include "Engine/DataTable.h"
9#include "PlayerProgressionManager.generated.h"
15class ULoadOutAssetBase;
22 UPROPERTY(EditAnywhere, BlueprintReadOnly)
23 UDataTable* LevelTable;
29 GENERATED_USTRUCT_BODY()
31 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Item Struct")
33 UPROPERTY(EditAnywhere, BlueprintReadOnly)
40 GENERATED_USTRUCT_BODY()
42 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Item Struct")
44 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Item Struct")
45 TMap<FString, uint8> UnlockedPerks;
53 FPlayerLevelInfo(
int ExperienceRequiredIn,
int CurrencyRewardIn) : ExperienceForNextLevel(ExperienceRequiredIn), CurrencyReward(CurrencyRewardIn)
56 int ExperienceForNextLevel = INDEX_NONE;
57 int CurrencyReward = INDEX_NONE;
64 UPROPERTY(EditAnywhere, BlueprintReadWrite)
66 UPROPERTY(EditAnywhere, BlueprintReadWrite)
68 UPROPERTY(EditAnywhere, BlueprintReadWrite)
69 TArray<FString> ItemIDs;
77 GENERATED_UCLASS_BODY()
85 void LoadFirstMatchRewards();
86 UFUNCTION(BlueprintPure, Category = PlayerProgressionManager)
88 UFUNCTION(BlueprintPure, Category = PlayerProgressionManager)
89 int GetMaxLevel(
const FString& ClassID);
90 UFUNCTION(BlueprintPure, Category = PlayerProgressionManager)
91 bool GetProgressionUnlocks(
const FString& ClassID,
int CurrentLevel, TArray<UCosmeticAssetBase*>& Unlocks,
int&
Currency);
93 void LoadProgressionTables(
const FString& ProgressionTableID, std::string cursor =
"");
94 void ProgressionTableLoadResponse(
const FString& ProgressionTableID, std::vector<NAKAMA_NAMESPACE::NStorageObject> FoundProgressionTable);
96 void AwardLevelUpRewards(
const FString& PlayerID,
const FString& ClassID,
int NewLevel);
98 UFUNCTION(BlueprintPure, Category = StatTracking, meta = (WorldContext =
"WorldContextObject", CallableWithoutWorldContext))
100 UFUNCTION(BlueprintPure, Category = PlayerProgressionManager)
101 static void SortWeaponsByUnlockLevel(UPARAM(ref)
const TMap<TSubclassOf<UWeaponInstance>, uint8>& MapIn, TArray<TSubclassOf<UWeaponInstance>>& SortedWeaponList);
102 UFUNCTION(BlueprintPure)
103 int GetMatchBonusExperience()
const {
return MatchOfTheDayExperience;}
105 UPROPERTY(BlueprintAssignable)
106 FProgressionInfoLoadedSignature OnProgressionInfoLoaded;
110 bool bProgressionTablesLoaded = false;;
111 int MatchOfTheDayExperience = 0;
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FProgressionInfoLoadedSignature)
Definition: PlayerProgressionManager.h:76
Definition: ProjectXGameInstance.h:507
UPlayerProgressionManager * GetPlayerProgression() const
Definition: ProjectXGameInstance.h:613
virtual void OnNakamaConnected()
Definition: ProjectXGameInstance.cpp:556
virtual void Init() override
Definition: ProjectXGameInstance.cpp:219
Definition: WeaponInstance.h:220
Definition: PlayerProgressionManager.h:20
Definition: PlayerProgressionManager.h:39
Definition: PlayerProgressionManager.h:28
Definition: PlayerProgressionManager.h:50
FPlayerLevelInfo(int ExperienceRequiredIn, int CurrencyRewardIn)
Definition: PlayerProgressionManager.h:53
Definition: PlayerProgressionManager.h:62