LEAP Documentation 40220
Documentation for the LEAP project
ProjectXGameModeHorde.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2022. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "ProjectXGameModeHorde.generated.h"
8
10class AWaveSpawner;
12
13UENUM(BlueprintType)
14enum class EHordeModeRoles : uint8
15{
16 EEnemyAI = 0,
17 EPlayer = 1,
18};
19
20UCLASS()
21class PROJECTX_API AProjectXGameModeHorde : public AProjectXGameMode
22{
23 GENERATED_UCLASS_BODY()
24public:
25 UFUNCTION()
26 virtual void OnDeath(AController* Killed, AController* Killer, TSubclassOf<class UProjectXDamageType> DamageType, bool bWasHeadshot) override;
27 UFUNCTION()
28 virtual void OnWaveSpawnerGameOver(AWaveSpawner* const WaveSpawner,bool bSuccess);
29 UFUNCTION()
30 virtual void OnWavesCompleted(AWaveSpawner* const WaveSpawner, bool bSuccess);
31 UFUNCTION(BlueprintCallable,BlueprintPure, Category = GameMode, meta = (WorldContext = "WorldContextObject"))
32 static uint8 GetTeamByHordeRoleStatic(EHordeModeRoles HordeRole, const UObject* WorldContextObject);
33 UFUNCTION()
34 virtual void OnSoloPlayerReviveBeaconStatusUpdated();
35
36 virtual bool AreAllPlayersDead() const;
37 virtual void HandleMatchHasStarted() override;
38 virtual void HandleMatchWarmupEnded() override;
39 virtual void CollectGamePlayObjects() override;
40 virtual void ReviveDeadPlayers();
41 virtual void ReviveSoloPlayer();
42 virtual void AutoAssignPlayerTeam(APlayerController* PlayerController) override;
43 virtual void RestartPlayer(AController* NewPlayer) override;
44 virtual void Logout(AController* Exiting) override;
45 virtual void FinishRestartPlayer(AController* NewPlayer, const FRotator& StartRotation) override;
46 virtual ETeamJoinResponse CanJoinTeam(APlayerController* PlayerController, uint8 Team) const override;
47 virtual bool CanRestart() const override;
48 int32 GetTeamByRole(EHordeModeRoles Role) const;
49
50protected:
51 UPROPERTY(EditDefaultsOnly)
52 int32 MaximumSpawnRange = 30000.0;
53 UPROPERTY(EditDefaultsOnly)
54 int32 MinimumSpawnRange = 60000.0;
55 /*Define which team represents the player and which represents the ai*/
56 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = GameMode)
57 TMap<EHordeModeRoles, uint8> TeamRoles = TMap<EHordeModeRoles, uint8>();
58 TWeakObjectPtr<APickupReviveBeacon> SoloPlayerReviveBeacon = nullptr;
59
60};
ETeamJoinResponse
Definition: ProjectXGameMode.h:38
EHordeModeRoles
Definition: ProjectXGameModeHorde.h:15
Definition: PickupReviveBeacon.h:48
Definition: ProjectXGameModeHorde.h:22
Definition: ProjectXGameMode.h:115
Definition: WaveSpawner.h:115
Definition: SpawnTargetInterface.h:18