LEAP Documentation 40220
Documentation for the LEAP project
ProjectXGameStateTDCapFlag.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "ProjectXGameState.h"
7#include "ProjectXGameStateTDCapFlag.generated.h"
8
9class AFlagSpawn;
10class AFlag;
13
14DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnFlagEventSignature, uint8, FlagOwnerTeam);
15DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnFlagSpawnedEventSignature, uint8, Team,AFlag*, Flag);
16DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnCaptureTheFlagEventSignature, AProjectXPlayerState*, PlayerState, AFlag*, Flag, int32, Data);
17DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnFlagSpawnsChangedSignature, const TArray<AFlagSpawn*>&, FlagSpawns);
18
19UCLASS()
21{
22 GENERATED_BODY()
24
25public:
26 UFUNCTION(BlueprintCallable)
27 const TArray<AFlagSpawn*>& GetFlagSpawns() const { return FlagSpawns; }
28 UFUNCTION(BlueprintCallable)
29 TSubclassOf<AFlag> GetFlagClass() const { return FlagClass; }
30 UFUNCTION(BlueprintCallable)
31 AFlag* const GetFlagbyCharacter(AProjectXCharacter* Character) const;
32
33 UFUNCTION()
34 void UpdateFlags(AFlag* Flag, bool bNewFlag);
35
36 const AFlagSpawn* GetFlagSpawnByTeam(uint8 Team) const;
37 void SaveCapturePoints(TArray<AFlagSpawn*>& Points);
38
39 virtual void HandleMatchWarmupEnded() override;
40
41 UPROPERTY(BlueprintAssignable)
42 FOnFlagSpawnsChangedSignature OnFlagSpawnsChangedEvent;
43 UPROPERTY(BlueprintAssignable)
44 FOnFlagSpawnedEventSignature OnFlagSpawnedEvent;
45 UPROPERTY(BlueprintAssignable)
46 FOnCaptureTheFlagEventSignature OnFlagEvent;
47
48protected:
49
50 virtual void InitializeGameState(AProjectXGameMode* GameMode) override;
51
52 UFUNCTION()
53 void OnRep_FlagSpawns();
54 UFUNCTION()
55 void OnRep_Flags(TArray<AFlag*> PreviousFlags);
56
57 UPROPERTY(BlueprintReadOnly, Category = "Tickets")
58 int32 MaxTicketCount = 3;
59
60 UPROPERTY(EditDefaultsOnly, Category = FlagSpawn)
61 TSubclassOf<AFlag> FlagClass = NULL;
62 UPROPERTY(ReplicatedUsing = OnRep_FlagSpawns)
63 TArray<AFlagSpawn*> FlagSpawns;
64 UPROPERTY(ReplicatedUsing = OnRep_Flags)
65 TArray<AFlag*> Flags;
66 TArray<AFlag*> PreviousFlags;
67
68 FString MatchStartCTF = "VO_MatchStart_CTF";
69};
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnFlagEventSignature, uint8, FlagOwnerTeam)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnCaptureTheFlagEventSignature, AProjectXPlayerState *, PlayerState, AFlag *, Flag, int32, Data)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnFlagSpawnedEventSignature, uint8, Team, AFlag *, Flag)
Definition: Flag.h:43
Definition: FlagSpawn.h:33
Definition: ProjectXCharacter.h:128
Definition: ProjectXGameMode.h:115
Definition: ProjectXGameState.h:158
Definition: ProjectXGameStateTDCapFlag.h:21
Definition: ProjectXPlayerState.h:238
uint8 Team
Definition: ProjectXPlayerState.h:720