4#include "Runtime/Json/Public/Dom/JsonObject.h"
5#include "CoreMinimal.h"
6#include "GameFramework/SaveGame.h"
9#include "StatTrackingSave.generated.h"
11#define ANALYTICS_THROTTLING_TIME 1.0f
16 GENERATED_USTRUCT_BODY()
31 GENERATED_USTRUCT_BODY()
49 UpdateValue(Value, Val, OverrideTag);
52 UpdateValue(Delta, Val, OverrideTag);
55 Value = FMath::Clamp(Value, 0, MAX_int32);
56 Delta = FMath::Clamp(Delta, 0, MAX_int32);
64 ValueIn += UpdateValue;
67 ValueIn = FMath::Max(ValueIn, UpdateValue);
70 ValueIn = FMath::Min(ValueIn, UpdateValue);
73 ValueIn = UpdateValue;
102 UPROPERTY(BlueprintReadWrite)
107 if (!StatList.Contains(StatKey))
109 StatList.Add(StatKey,
FStat(Value, Tag));
113 StatList[StatKey].
Update(Value, Tag, bUpdateDelta);
131 UPROPERTY(BlueprintReadWrite)
138 void InitStatType(
const EStatClassifier& StatClass,
const TArray<FString>& ClassNames,
const TSet<EStatNames>& StatsToTrack);
143 EStatState GetStatState(
bool bAuthoritative =
false)
const {
return bAuthoritative ? AuthoritativeStatState : StatState; }
147 void OnSave(
bool bSuccess);
148 void UpdateState(
EStatState State,
bool bAuthoritative =
false);
150 void OnLoadedStats();
151 void OnLoadedAuthoritativeStats();
162 bool TrackProjectile(uint16 ID);
165 void ClearProjectileID(uint16 ID);
167 TMap<FString,
float> AnalyticsStats;
174 bool bChallengesSaved = false;
175 bool bStatsSaved = false;
176 bool bExperienceSaved = false;
178 void GenerateTagList();
181 TSet<uint16> ShotHitIDs;
184 TMap<FString, FTimerHandle> StatThrottler;
185 TWeakObjectPtr<UWorld> World =
nullptr;
EStatClassifier
Definition: PlayerStats.h:75
EStatUpdateBehaviour
Definition: PlayerStats.h:142
EStatNames
Definition: PlayerStats.h:86
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FStatsLoadedSignature)
EStatState
Definition: StatTrackingSave.h:90
@ Loading
Definition: StatTrackingSave.h:92
@ Synced
Definition: StatTrackingSave.h:93
@ Dirty
Definition: StatTrackingSave.h:91
Definition: ProjectXPlayerState.h:238
Definition: StatTrackingSave.h:124
void UpdateServerChallengeInfo(const TArray< FServerChallengeInfo > &ChallengeInfos)
Definition: StatTrackingSave.h:153
void SetIsInitialized(bool bNewInitialized)
Definition: StatTrackingSave.h:145
bool CanLoadStats(bool bAuthoritative=false) const
Definition: StatTrackingSave.h:142
bool IsInitialized() const
Definition: StatTrackingSave.h:144
bool IsStatObjectSaved() const
Definition: StatTrackingSave.h:159
void UpdateExperienceSaved(bool bNewExperienceSaved)
Definition: StatTrackingSave.h:157
FStatsLoadedSignature OnStatsLoaded
Definition: StatTrackingSave.h:140
void UpdateChallengesSaved(bool bNewChallengesSaved)
Definition: StatTrackingSave.h:156
void UpdateStatsSaved(bool bNewStatsSaved)
Definition: StatTrackingSave.h:155
EStatState GetStatState(bool bAuthoritative=false) const
Definition: StatTrackingSave.h:143
Definition: WeaponInstance.h:220
bool bInitialized
Definition: WeaponInstance.h:1191
Definition: StatTrackingSave.h:98
Definition: PlayerStats.h:213
Definition: StatTrackingSave.h:15
FShotTracking(uint8 ID, uint8 Shots)
Definition: StatTrackingSave.h:18
Definition: StatTrackingSave.h:30
int32 Delta
Definition: StatTrackingSave.h:85
EStatUpdateBehaviour Tag
Definition: StatTrackingSave.h:81
const int32 GetDelta() const
Definition: StatTrackingSave.h:79
void Update(int32 Val, const EStatUpdateBehaviour &OverrideTag=EStatUpdateBehaviour::NONE, bool bUpdateDelta=false)
Definition: StatTrackingSave.h:47
FStat(int32 InValue, EStatUpdateBehaviour InTag=EStatUpdateBehaviour::NONE)
Definition: StatTrackingSave.h:39
int32 Value
Definition: StatTrackingSave.h:84
const int32 GetValue() const
Definition: StatTrackingSave.h:78
void UpdateValue(int32 &ValueIn, int32 UpdateValue, EStatUpdateBehaviour OverrideTag)
Definition: StatTrackingSave.h:59
Definition: PlayerStats.h:200