16#include "CoreMinimal.h"
17#include "UObject/NoExportTypes.h"
18#include "PPF_Platform.h"
19#include "OnlineSubsystemPicoNames.h"
20#include "OnlineSubsystemPico.h"
21#include "Pico_Leaderboards.h"
23#include "Pico_Challenges.generated.h"
29class UPico_ChallengeEntry;
30class UPico_ChallengeEntryArray;
31class UPico_ChallengeArray;
35USTRUCT(BlueprintType, meta = (DisplayName =
"ChallengeOptions"))
36struct FPico_ChallengeOptions
38 GENERATED_USTRUCT_BODY()
40 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options") FString Title;
41 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options") int32 StartDate;
42 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options") int32 EndDate;
43 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options") FString LeaderboardName;
44 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options")
bool bIncludeActiveChallenges;
45 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options")
bool bIncludeFutureChallenges;
46 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options")
bool bIncludePastChallenges;
47 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options")
EChallengeVisibility Visibility;
48 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pico Platform|Challenges|Challenge Options")
EChallengeViewerFilter ViewerFilter;
53DECLARE_LOG_CATEGORY_EXTERN(PicoChallenges, Log, All);
58DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeGet,
bool, bIsError, const FString&, ErrorMessage, UPico_Challenge*,
61DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeGetEntries,
bool, bIsError, const FString&, ErrorMessage,
62 UPico_ChallengeEntryArray*, ChallengeEntryList);
64DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeGetEntriesAfterRank,
bool, bIsError, const FString&, ErrorMessage,
65 UPico_ChallengeEntryArray*, ChallengeEntryList);
67DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeGetEntriesByIds,
bool, bIsError, const FString&, ErrorMessage,
68 UPico_ChallengeEntryArray*, ChallengeEntryList);
70DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeGetList,
bool, bIsError, const FString&, ErrorMessage,
71 UPico_ChallengeArray*, ChallengeList);
73DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeInvite,
bool, bIsError, const FString&, ErrorMessage,
74 UPico_Challenge*, Challenge);
76DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeLeave,
bool, bIsError, const FString&, ErrorMessage, UPico_Challenge*,
79DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeJoin,
bool, bIsError, const FString&, ErrorMessage, UPico_Challenge*,
81DECLARE_DYNAMIC_DELEGATE_ThreeParams(FChallengeLaunchInvitableUserFlow,
bool, bIsError,
int, ErrorCode, const FString&, ErrorMessage);
83DECLARE_MULTICAST_DELEGATE_FourParams(FChallengeInviteAcceptedOrLaunchAppNotify,
bool,
int, const FString&, const FString& );
98 FOnlineSubsystemPico& PicoSubsystem;
104 FChallengeGet GetDelegate;
105 FChallengeGetEntries GetEntriesDelegate;
106 FChallengeGetEntriesAfterRank GetEntriesAfterRankDelegate;
107 FChallengeGetEntriesByIds GetEntriesByIdsDelegate;
108 FChallengeGetList GetListDelegate;
109 FChallengeJoin JoinDelegate;
110 FChallengeLeave LeaveDelegate;
111 FChallengeInvite InviteDelegate;
112 FChallengeLaunchInvitableUserFlow LaunchInvitableUserFlowDelegate;
114 FChallengeInviteAcceptedOrLaunchAppNotify ChallengeInviteAcceptedOrLaunchAppNotify;
116 FDelegateHandle ChallengeInviteAcceptedOrLaunchAppHandle;
117 void OnChallengeInviteAcceptedOrLaunchAppNotification(ppfMessageHandle Message,
bool bIsError);
128 bool Get(
const FString& ChallengeID, FChallengeGet InGetDelegate);
175 FChallengeGetEntriesAfterRank InGetEntriesAfterRankDelegate);
202 const TArray<FString>& UserIDs, FChallengeGetEntriesByIds InGetEntriesByIdsDelegate);
218 bool GetList(FPico_ChallengeOptions ChallengeOptions,
int PageIdx,
int PageSize, FChallengeGetList InGetListDelegate);
229 bool Join(
const FString& ChallengeID, FChallengeJoin InJoinDelegate);
240 bool Leave(
const FString& ChallengeID, FChallengeLeave InLeaveDelegate);
252 bool Invite(
const FString& ChallengeID,
const TArray<FString>& UserIDs, FChallengeInvite Delegate);
296 UFUNCTION(BlueprintCallable, meta = (WorldContext =
"WorldContextObject"), Category =
"OnlinePico|Challenges")
297 static
void Get(UObject* WorldContextObject, const FString& ChallengeID, FChallengeGet InGetDelegate);
322 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
323 static
void GetEntries(UObject* WorldContextObject, const FString& ChallengeID,
int PageIdx,
int PageSize,
325 FChallengeGetEntries InGetEntriesDelegate);
335 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
336 static
void GetEntriesAfterRank(UObject* WorldContextObject, const FString& ChallengeID,
int PageIdx,
int PageSize,
337 const FString& AfterRank,
338 FChallengeGetEntriesAfterRank InGetEntriesAfterRankDelegate);
359 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
360 static
void GetEntriesByIds(UObject* WorldContextObject, const FString& ChallengeID,
int PageIdx,
int PageSize,
362 FChallengeGetEntriesByIds InGetEntriesByIdsDelegate);
372 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
373 static
void GetList(UObject* WorldContextObject, FPico_ChallengeOptions ChallengeOptions,
int PageIdx,
int PageSize,
374 FChallengeGetList InGetListDelegate);
380 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
381 static
void Join(UObject* WorldContextObject, const FString& ChallengeID, FChallengeJoin InJoinDelegate);
387 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
388 static
void Leave(UObject* WorldContextObject, const FString& ChallengeID, FChallengeLeave InLeaveDelegate);
395 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
396 static
void Invite(UObject* WorldContextObject, const FString& ChallengeID, const TArray<FString>& UserIDs,
397 FChallengeInvite Delegate);
403 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Challenges")
404 static
void LaunchInvitableUserFlow(UObject* WorldContextObject, const FString& ChallengeID, FChallengeLaunchInvitableUserFlow Delegate);
412class ONLINESUBSYSTEMPICO_API UPico_Challenge : public UObject
417 void InitParams(ppfChallenge* ppfChallengeHandle);
420 ppfChallengeCreationType CreationType;
421 unsigned long long EndDate = 0;
422 unsigned long long StartDate = 0;
424 FString Title = FString();
425 ppfChallengeVisibility Visibility;
427 UPico_UserArray* InvitedUsersOptional;
429 UPico_UserArray* ParticipantsOptional;
431 UPico_Leaderboard* Leaderboard;
434 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
437 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
438 FDateTime GetEndDateTime();
440 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
441 FDateTime GetStartDateTime();
443 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
444 FString GetEndDate();
446 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
447 FString GetStartDate();
449 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
452 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
455 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
458 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
459 UPico_UserArray* GetInvitedUsersOptional();
461 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
462 UPico_Leaderboard* GetLeaderboard();
464 UFUNCTION(BlueprintPure, Category =
"Pico Platform|Challenges|Challenge")
465 UPico_UserArray* GetParticipantsOptional();
470class ONLINESUBSYSTEMPICO_API UPico_ChallengeEntry :
public UObject
475 void InitParams(ppfChallengeEntryHandle ppfChallengeEntryHandle);
478 FString DisplayScore = FString();
479 TArray<uint8> ExtraData;
483 unsigned long long Timestamp;
488 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
489 FString GetDisplayScore();
491 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
492 TArray<uint8> GetExtraData();
494 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
495 FString GetExtraDataString();
497 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
500 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
503 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
506 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
507 FDateTime GetTimestamp();
509 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry")
510 UPico_User* GetUser();
514class ONLINESUBSYSTEMPICO_API UPico_ChallengeEntryArray : public UObject
519 TArray<UPico_ChallengeEntry*> ChallengeEntryArray;
522 bool bHasPreviousPage;
523 int32 TotalCount = 0;
525 void InitParams(ppfChallengeEntryArrayHandle InppfChallengeEntryArrayHandle);
527 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry Array")
528 UPico_ChallengeEntry* GetElement(int32 Index);
530 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry Array")
533 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Entry Array")
544class ONLINESUBSYSTEMPICO_API UPico_ChallengeArray : public UObject
549 TArray<UPico_Challenge*> ChallengeArray;
552 bool bHasPreviousPage;
553 int32 TotalCount = 0;
556 void InitParams(ppfChallengeArrayHandle InppfChallengeArrayHandle);
558 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Array")
559 UPico_Challenge* GetElement(int32 Index);
561 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Array")
564 UFUNCTION(BlueprintPure, Category = "Pico Platform|Challenges|Challenge Array")
PicoChallengesInterface class.
Definition: Pico_Challenges.h:96
bool Leave(const FString &ChallengeID, FChallengeLeave InLeaveDelegate)
Lets the current user leave a challenge.
bool Join(const FString &ChallengeID, FChallengeJoin InJoinDelegate)
Lets the current user join a challenge.
bool GetList(FPico_ChallengeOptions ChallengeOptions, int PageIdx, int PageSize, FChallengeGetList InGetListDelegate)
Gets a list of challenges.
bool GetEntriesAfterRank(ppfID ChallengeID, int PageIdx, int PageSize, unsigned long long AfterRank, FChallengeGetEntriesAfterRank InGetEntriesAfterRankDelegate)
Gets the challenge entries after a specified ranking.
bool LaunchInvitableUserFlow(const FString &ChallengeID, FChallengeLaunchInvitableUserFlow Delegate)
Launches the invitation flow to let the current user invite friends to a specified challenge....
bool GetEntriesByIds(const FString &ChallengeID, int PageIdx, int PageSize, ELeaderboardStartAt StartAt, const TArray< FString > &UserIDs, FChallengeGetEntriesByIds InGetEntriesByIdsDelegate)
Gets the challenge entries for specified user(s).
bool Invite(const FString &ChallengeID, const TArray< FString > &UserIDs, FChallengeInvite Delegate)
Invites user(s) to join a challenge.
bool GetEntries(const FString &ChallengeID, int PageIdx, int PageSize, ELeaderboardFilterType Filter, ELeaderboardStartAt StartAt, FChallengeGetEntries InGetEntriesDelegate)
Gets a list of challenge entries.
bool Get(const FString &ChallengeID, FChallengeGet InGetDelegate)
Gets a specified challenge by ID.
OnlinePicoChallenges Blueprint Function class.
Definition: Pico_Challenges.h:286
ELeaderboardStartAt
The type of sorting to use when getting leaderboard or challenge entries.
Definition: OnlineSubsystemPicoNames.h:658
EChallengeViewerFilter
The challenge viewer filter.
Definition: OnlineSubsystemPicoNames.h:647
EChallengeCreationType
The creator of the challenge.
Definition: OnlineSubsystemPicoNames.h:629
EChallengeVisibility
The visibility type of the challenge.
Definition: OnlineSubsystemPicoNames.h:638
ELeaderboardFilterType
The type of filter to use when using leaderboards or challenges.
Definition: OnlineSubsystemPicoNames.h:674