Space Plunder
Loading...
Searching...
No Matches
MenuSystemPlayerState.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GenericTeamAgentInterface.h"
7#include "GameFramework/PlayerState.h"
8#include "Data/BaseData.h"
10#include "MenuSystemPlayerState.generated.h"
11
12
13DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnReadyToRespawn, APlayerController*, PlayerController);
14
15struct FPlayerDeath;
16
17UCLASS()
18class MENUSYSTEM_API AMenuSystemPlayerState : public APlayerState, public IGenericTeamAgentInterface, public IOnlinePlayerState
19{
20 GENERATED_BODY()
21
22public:
23
24
25 UPROPERTY(BlueprintAssignable, Category="Multiplayer")
26 FOnReadyToRespawn OnReadyToRespawn;
27
28 //- Used to copy properties from the current PlayerState to the passed one
29 virtual void CopyProperties(APlayerState* PlayerState) override;
30 //- Used to override the current PlayerState with the properties of the passed one
31 virtual void OverrideWith(class APlayerState* PlayerState) override;
32
33 virtual void BeginPlay() override;
34
35
36 UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing=OnRep_MyTeamID)
37 FGenericTeamId MyTeamID;
38 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Multiplayer")
39 uint8 MultiplayerTeamID = 0;
40
41 virtual void SetGenericTeamId(const FGenericTeamId& NewTeamID) override;
42 virtual FGenericTeamId GetGenericTeamId() const override;
43
44 UFUNCTION(BlueprintCallable, Category="Menu System")
45 int32 GetTeamID() const{return (MyTeamID == FGenericTeamId::NoTeam) ? INDEX_NONE : (int32)MyTeamID;};
46
47 //- Online Player State Interface //
48 UFUNCTION(BlueprintCallable, Category="Player")
49 virtual FUserProfile GetUserProfile() const override{return UserProfile;};
50 // UFUNCTION(BlueprintCallable, Category="Player")
51 virtual FString GetPlayerName() const override;
52
53
54 UFUNCTION(BlueprintCallable, Category="Menu System")
55 virtual void SetUserProfile(const FUserProfile& UpdatedUserProfile) override {UserProfile = UpdatedUserProfile;};
56
57
58 UFUNCTION(BlueprintCallable, Category="Menu System")
59 FMultiplayerPlayerStats GetMultiplayerStats() const{return MultiplayerPlayerStats;};
60 UFUNCTION(BlueprintCallable, Category="Menu System")
61 void SetMultiplayerStats(const FMultiplayerPlayerStats UpdatedMultiplayerStats){MultiplayerPlayerStats = UpdatedMultiplayerStats;};
62
63 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="Player")
64 TArray<FPlayerDeath> Deaths;
65 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="Player")
66 TArray<FPlayerDeath> Kills;
67
68 void StartRespawnTimer(const int32 WaitTime);
69
70 virtual FString GetPlayerNameCustom() const override;
71
72 void AddRespawnPenalty(const int32 Penalty = 1.0f){RespawnPenalty += Penalty;};
73
74
75protected:
76 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Menu System")
77 FUserProfile UserProfile;
78 UPROPERTY(Replicated, VisibleAnywhere, BlueprintReadOnly, Category="Menu System")
79 FMultiplayerPlayerStats MultiplayerPlayerStats;
80
81 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Menu System")
82 // FUserProfile OfflineProfile;
83
84
85private:
86 UFUNCTION()
87 void OnRep_MyTeamID(FGenericTeamId OldTeamID);
88
89
90 void RespawnTimer();
91 int32 RespawnTime = 10;
92
93 int32 RespawnPenalty = 0;
94
95 bool bInLobby = false;
96
97 FTimerHandle RespawnTimerHandle;
98
99};
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnReadyToRespawn, APlayerController *, PlayerController)
Definition MenuSystemPlayerState.h:19
Definition OnlinePlayerState.h:18
Definition BaseData.h:1181
Definition BaseData.h:613
Definition BaseData.h:1239