LEAP Documentation 40220
Documentation for the LEAP project
ProjectXGameModeKingofTheHill.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"
7#include "ProjectXGameModeKingofTheHill.generated.h"
8
9class ULocalMessage;
10
11UCLASS()
13{
14 GENERATED_UCLASS_BODY()
15public:
16 virtual void InitGame(const FString& MapName, const FString& Options, FString& ErrorMessage) override;
17 virtual void StartMatch() override;
18 virtual void InitGameState() override;
19 int32 GetBaseTicketLossInterval() const { return BaseTicketLossInterval; }
20 int32 GetNumberOfCheckPoints() const { return NumberOfCapturePointCheckpoints; }
21 float GetPlayerCaptureRate() const { return PerPlayerCaptureRate; }
22 virtual void OnDeath(AController* Killed, AController* Killer, TSubclassOf<class UProjectXDamageType> DamageType, bool bWasHeadshot) override;
23 TSubclassOf<ULocalMessage> GetKingOfTheHillBroadcastMessage() const { return KingEventBroadcastMessage; }
24
25 UFUNCTION()
26 virtual void OnCapturePointOwnerChanged(int32 NewOwner, ACapturePoint* Point);
27 UFUNCTION()
28 virtual void OnCapturePointAttacked(int32 TeamOwner, ACapturePoint* Point);
29
30protected:
31 virtual void CollectGamePlayObjects() override;
32 virtual void HandleMatchWarmupEnded() override;
33 UFUNCTION()
34 virtual void TicketConsumeTimer();
35 UFUNCTION()
36 void UpdatePhase();
37private:
38 /* The rate at which ticket losses occur */
39 UPROPERTY(EditDefaultsOnly, Category = GameMode, meta = (AllowPrivateAccess = true))
40 float BaseTicketLossInterval = 5.f;
41 UPROPERTY(GlobalConfig)
42 float BaseTicketLossIntervalOverride = INDEX_NONE;
43 /* The number of subpoints in the capture points where players received XP */
44 UPROPERTY(EditDefaultsOnly, Category = GameMode, meta = (AllowPrivateAccess = true, ClampMin = 0))
45 uint8 NumberOfCapturePointCheckpoints;
46 /*The rate per player that bases are captured*/
47 UPROPERTY(EditDefaultsOnly, Category = "Capture Point", meta = (AllowPrivateAccess = true))
48 float PerPlayerCaptureRate = 0.1f;
49 /*How long will bases be active before switching*/
50 UPROPERTY(EditDefaultsOnly, Category = "Capture Point", meta = (AllowPrivateAccess = true))
51 float BaseActiveRate = 1.0f;
52 /*Time Between bases being activated and it being captureable*/
53 UPROPERTY(EditDefaultsOnly, Category = "Capture Point", meta = (AllowPrivateAccess = true))
54 float BaseWarmupRate= 1.0f;
55 /* The quantity of tickets lost for each base an opponent has captured */
56 UPROPERTY(EditDefaultsOnly, Category = GameMode, meta = (AllowPrivateAccess = true))
57 int32 TicketsLostPerBase = 1;
58 /* The Number of points that are active at once */
59 UPROPERTY(EditDefaultsOnly, Category = GameMode, meta = (AllowPrivateAccess = true))
60 int32 NumberOfActiveBases = 1;
61 /*Broadcast message for King Of the hill related events*/
62 UPROPERTY(EditDefaultsOnly, Category = GameMode)
63 TSubclassOf<class ULocalMessage> KingEventBroadcastMessage;
64 UPROPERTY(GlobalConfig)
65 int32 TicketsLostPerBaseOverride = INDEX_NONE;
66
67 UPROPERTY()
68 class AProjectXGameStateBaseControl* BaseControlGameState = NULL;
69
70 UPROPERTY()
71 FTimerHandle TicketConsumeTimerHandle;
72 UPROPERTY()
73 FTimerHandle BaseActiveTimerHandle;
74 UPROPERTY()
75 FTimerHandle BaseWarmupTimerHandle;
76};
Definition: CapturePoint.h:77
Definition: ProjectXGameMode.h:115
Definition: ProjectXGameModeKingofTheHill.h:13
float GetPlayerCaptureRate() const
Definition: ProjectXGameModeKingofTheHill.h:21
int32 GetNumberOfCheckPoints() const
Definition: ProjectXGameModeKingofTheHill.h:20
int32 GetBaseTicketLossInterval() const
Definition: ProjectXGameModeKingofTheHill.h:19
TSubclassOf< ULocalMessage > GetKingOfTheHillBroadcastMessage() const
Definition: ProjectXGameModeKingofTheHill.h:23
Definition: ProjectXGameStateBaseControl.h:16