LEAP Documentation 40220
Documentation for the LEAP project
ProjectXGameModeAssault.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 "ProjectXGameMode.h"
7#include "ProjectXGameModeAssault.generated.h"
8
9class ULocalMessage;
10
11UENUM(BlueprintType)
12enum class EAssaultRole : uint8
13{
14 Attack = 0,
15 Defend = 1,
16 NONE = 255,
17};
18
19UCLASS()
21{
22 GENERATED_UCLASS_BODY()
23
24public:
25 virtual bool ConsumeTicket(int32 Team, int32 Amount = 1) override;
26 TSubclassOf<ULocalMessage> GetAssaultBroadcastMessage() const { return AssaultBroadcastMessage; }
27
28 UFUNCTION()
29 virtual void OnAssaultPointDestroyed(class AAssaultPoint* AssaultPoint);
30
31 UFUNCTION()
32 virtual void OnDeath(AController* Killed, AController* Killer, TSubclassOf<class UProjectXDamageType> DamageType, bool bWasHeadshot) override;
33
34 UFUNCTION(BlueprintPure)
35 uint8 GetTeam(EAssaultRole AssaultRole) const;
36 EAssaultRole GetAssaultRoleForTeam(uint8 Team) const;
37 TMap<EAssaultRole, uint8>& GetTeamRoles() { return TeamRoles; }
38
39protected:
40 virtual void CollectGamePlayObjects() override;
41 virtual void CalculateTimeOutWinCondition() override;
42 virtual void CalculateTicketWinCondition() override;
43 virtual void CalculateAssaultPointWinCondition();
44
45 virtual void AttemptAssaultPhaseUpdate();
46
47 UPROPERTY(EditDefaultsOnly, Category = GameMode, meta = (AllowPrivateAccess = true))
48 TSubclassOf<ULocalMessage> AssaultBroadcastMessage = NULL;
49 /* Maximum distance, in centimeters, a killed player can be from the point in order for the killer to gain the "Target Defended" XP Bonus */
50 UPROPERTY(EditDefaultsOnly, Category = GameMode, meta = (AllowPrivateAccess = true))
51 float PointDefenseMaxDistance = 600.f;
52
53 /*Which team will be the attacker and which team will be the defender*/
54 UPROPERTY(EditInstanceOnly, BlueprintReadOnly, Category = GameMode)
55 TMap<EAssaultRole, uint8> TeamRoles = TMap<EAssaultRole,uint8>();
56
57};
EAssaultRole
Definition: ProjectXGameModeAssault.h:13
Definition: AssaultPoint.h:48
Definition: ProjectXGameModeAssault.h:21
TSubclassOf< ULocalMessage > GetAssaultBroadcastMessage() const
Definition: ProjectXGameModeAssault.h:26
Definition: ProjectXGameMode.h:115
Definition: ProjectXDamageType.h:62