Space Plunder
Loading...
Searching...
No Matches
ACampaignGameMode Class Reference

#include <CampaignGameMode.h>

Inheritance diagram for ACampaignGameMode:
AOnlineGameMode IProceduralGM IOnlineGM

Public Member Functions

 ACampaignGameMode ()
 
virtual void BeginPlay () override
 
virtual void SpawnAICharacter ()
 
virtual FRandomStream & GetRandomStream () override
 
- Public Member Functions inherited from AOnlineGameMode
 AOnlineGameMode ()
 
void UpdateScore ()
 
virtual void UpdatePlayerList ()
 
virtual void SpawnPlayer (APlayerController *PlayerController)
 

Protected Member Functions

virtual void SpawnedPlayerDeath (FPlayerDeath &PlayerDeath, APawn *PawnThatDied) override
 
virtual void SpawnedAIDeath (FPlayerDeath &PlayerDeath, APawn *PawnThatDied) override
 
void SetSeed ()
 
- Protected Member Functions inherited from AOnlineGameMode
virtual void GenericPlayerInitialization (AController *Controller) override
 
virtual void PostLogin (APlayerController *NewPlayer) override
 
virtual void Logout (AController *Exiting) override
 
virtual void SwapPlayerControllers (APlayerController *OldPC, APlayerController *NewPC) override
 
virtual void RegisterPlayer (APlayerController *NewPlayer)
 
int32 GetTotalNumberOfControllers () const
 
virtual void AddPlayerToTeam (APlayerController *PlayerController)
 
virtual FMatchState GetMultiplayerMatchState () const override
 
void DestroyPawn (APawn *Pawn) const
 
void OnPlayerDeath (const FPlayerDeath &PlayerDeath)
 
void OnAIDeath (const FPlayerDeath &PlayerDeath)
 
TArray< FPlayerDeath > & GetAllPlayerDeaths ()
 
TArray< FPlayerDeath > & GetAllAIDeaths ()
 
virtual void PreMatch ()
 
virtual void ReadyMatch ()
 
virtual void StartMatch () override
 
virtual void EndMatch () override
 
virtual void MatchCountdown ()
 
virtual bool ReadyToStartMatch_Implementation () override
 
void OnPreMatch ()
 
void OnReadyMatch ()
 
void OnStartMatch ()
 
void OnEndMatch ()
 
void OnMatchCountdown ()
 
virtual void SetEndMatchCondition ()
 
virtual bool GetIsMatchOver ()
 
virtual void UpdateGameState ()
 
FTransform FindRandomPlayerStart () const
 
FTransform FindRandomAIPlayerStart () const
 
FTransform FindTeamPlayerStart (const int32 TeamID)
 
void LogMissingPointer (const FString &PointerName) const
 
void LogDebugError (const FString &Message) const
 
void LogDebugWarning (const FString &Message) const
 
void LogDebugMessage (const FString &Message, const bool bWarning=false, const bool bError=false) const
 

Protected Attributes

TArray< APlayerController * > AllLocalPlayerControllers
 
FPlayerQuestStatus PlayerQuestStatus
 
int32 LifePool = 2
 
bool bUseRandomSeed = true
 
int32 Seed = 0
 
- Protected Attributes inherited from AOnlineGameMode
TArray< APlayerController * > AllPlayerControllers
 
TMap< int32, TArray< APlayerController * > > TeamPlayerControllers
 
TArray< FPlayerDeathAllPlayerDeaths
 
TArray< FPlayerDeathAllAIDeaths
 
TArray< FPlayerDeathAllDeaths
 
int32 NumberOfTeams = 2
 
TMap< int32, int32 > TeamScores
 
TArray< int32 > TeamIDs
 
bool bFriendlyFireOn = true
 
FString AISpawnTag = "AI"
 
int32 RespawnTime = 3
 
int32 SelfDeathRespawnTimeMultiplier = 2
 
int32 TeamKillDeathRespawnTimeMultiplier = 3
 
bool bMatchTimed = false
 
bool bMatchCountUp = false
 
bool bMatchTimeLimit = false
 
int32 MatchTime = 20
 
int32 MatchTimeLimit = 120
 
bool bTeamSpawns = true
 
bool bMatchOver = false
 
EMultiplayerMode MultiplayerMode = EMultiplayerMode::Default
 
bool bDisableStartTimers = false
 
int32 PreMatchWaitTime = 5
 
float MatchUpdateFrequency = 1.0f
 
int32 ReadyMatchWaitTime = 10
 
TArray< AActor * > PlayerStarts
 
TArray< AActor * > AIPlayerStarts
 
TMap< int32, int32 > LastUsedPlayerStart
 
int32 NumberOfPlayersToStart = 4
 
TMap< int32, TArray< APlayerStart * > > TeamStarts
 
bool bDebuggingMode = false
 
bool bLogPlayerStarts = false
 
bool bLogMatchTime = false
 
bool bLogMatchState = false
 
class IOnlineGSOnlineGameState = nullptr
 

Private Attributes

FRandomStream RandomStream
 
bool bRandomSeedGenerated = false
 

Additional Inherited Members

- Public Attributes inherited from AOnlineGameMode
float UpdatePlayerListDelay = 0.3f
 

Constructor & Destructor Documentation

◆ ACampaignGameMode()

ACampaignGameMode::ACampaignGameMode ( )
14{
15 bMatchTimed = true;
16 bMatchCountUp = true;
17}
bool bMatchCountUp
Definition OnlineGameMode.h:119
bool bMatchTimed
Definition OnlineGameMode.h:117

Member Function Documentation

◆ BeginPlay()

void ACampaignGameMode::BeginPlay ( )
overridevirtual

Reimplemented from AOnlineGameMode.

20{
21 if(bRandomSeedGenerated == false)
22 {
23 SetSeed();
24 }
25 Super::BeginPlay();
26 TArray<FInputDeviceId> InputDevices;
27 UInputDeviceLibrary::GetAllConnectedInputDevices(InputDevices);
28 for(int32 i = 0; i < InputDevices.Num(); i++)
29 {
30 APlayerController* NewPlayerController = UGameplayStatics::CreatePlayer(GetWorld(), i);
31 if(NewPlayerController != nullptr)
32 {
33 AllLocalPlayerControllers.AddUnique(NewPlayerController);
34 AllPlayerControllers.AddUnique(NewPlayerController);
35 }
36 }
37 if(bDebuggingMode){UE_LOG(LogCustomALS, Warning, TEXT("Current Input Devices: %i"), InputDevices.Num());}
38
39 // // //- Get First Player //
40 // if(AllLocalPlayerControllers.IsValidIndex(0) && AllLocalPlayerControllers[0]->GetPawn() != nullptr)
41 // {
42 // //- Cast to Quest Interface //
43 // const IQuestInterface* QuestPlayer = Cast<IQuestInterface>(AllLocalPlayerControllers[0]->GetPawn());
44 // if(QuestPlayer != nullptr)
45 // {
46 // IQuestReporter* QuestGameState = Cast<IQuestReporter>(GetGameState<AGameStateBase>());
47 // if(QuestGameState != nullptr)
48 // {
49 // //- Get Player Quest Status, then set in Game State //
50 // QuestGameState->SetPlayerQuestStatus(QuestPlayer->GetPlayerQuestStatus());
51 // }
52 // }
53 // }
54 //- Get All Quest Components //
55 //- Get Primary Player controller - Player who will control the Campaign
56 //- On Spawn, Give each new player the PRimary QuestStatus //
57
58}
void SetSeed()
Definition CampaignGameMode.cpp:174
TArray< APlayerController * > AllLocalPlayerControllers
Definition CampaignGameMode.h:64
bool bRandomSeedGenerated
Definition CampaignGameMode.h:84
TArray< APlayerController * > AllPlayerControllers
Definition OnlineGameMode.h:57
bool bDebuggingMode
Definition OnlineGameMode.h:212

◆ GetRandomStream()

FRandomStream & ACampaignGameMode::GetRandomStream ( )
overridevirtual

Implements IProceduralGM.

166{
167 if(bRandomSeedGenerated == false)
168 {
169 SetSeed();
170 }
171 return RandomStream;
172}
FRandomStream RandomStream
Definition CampaignGameMode.h:82

◆ SetSeed()

void ACampaignGameMode::SetSeed ( )
protected
175{
177 {
178 UKismetMathLibrary::SeedRandomStream(RandomStream);
179 Seed = RandomStream.GetCurrentSeed();
180 }
181 else
182 {
183 UKismetMathLibrary::SetRandomStreamSeed(RandomStream, Seed);
184 }
185 UE_LOG(LogCustomALSGameMode, Error, TEXT("GAME MODE SEED: %i"), Seed);
187}
bool bUseRandomSeed
Definition CampaignGameMode.h:74
int32 Seed
Definition CampaignGameMode.h:76

◆ SpawnAICharacter()

void ACampaignGameMode::SpawnAICharacter ( )
virtual
61{
62 // if(PlayerController == nullptr){UE_LOG(LogCustomALS, Error, TEXT("Player Controller Null in OnlineGameMode - Failed To Spawn SpawnPlayer"));return;}
63 // APawn* ControlledPawn = PlayerController->GetPawn();
64 // if(ControlledPawn == nullptr){UE_LOG(LogCustomALS, Error, TEXT("Pawn Null in OnlineGameMode - Failed To Spawn SpawnPlayer"));return;}
65 // //@TODO Add to BPlib, GetPlayerTeamID()
66 // int32 TeamID = 0;
67 // const IGenericTeamAgentInterface* TeamAgentInterface = Cast<IGenericTeamAgentInterface>(PlayerController->PlayerState);
68 // if(TeamAgentInterface != nullptr)
69 // {
70 // TeamID = TeamAgentInterface->GetGenericTeamId().GetId();
71 // }
72 // if(bDebuggingMode){UE_LOG(LogCustomALS, Warning, TEXT("Spawn Player: %s Team ID: %i"), *PlayerController->PlayerState->GetPlayerName(), TeamID);}
73 // DestroyPawn(ControlledPawn);
74 //
75 // const FActorSpawnParameters SpawnParameters;
76 // FTransform SpawnLocation = FindRandomPlayerStart();
77 // if(bTeamSpawns){SpawnLocation = FindTeamPlayerStart(TeamID);}
78 // APawn* NewPawn = GetWorld()->SpawnActor<APawn>(DefaultPawnClass, SpawnLocation, SpawnParameters);
79 // if(NewPawn != nullptr)
80 // {
81 // //@TODO Temp Added Cast, should be Cast to a Base Character/Pawn
82 // ACustomCharacterBase* SpawnedPlayer = Cast<ACustomCharacterBase>(NewPawn);
83 // if(SpawnedPlayer != nullptr)
84 // {
85 // SpawnedPlayer->OnCharacterDeath.AddUniqueDynamic(this, &AOnlineGameMode::SpawnedPlayerDeath);
86 // }
87 // PlayerController->Possess(NewPawn);
88 // return;
89 // }
90 // if(bDebuggingMode){UE_LOG(LogCustomALS, Error, TEXT("Pawn Failed To Spawn"));}
91
92}

◆ SpawnedAIDeath()

void ACampaignGameMode::SpawnedAIDeath ( FPlayerDeath & PlayerDeath,
APawn * PawnThatDied )
overrideprotectedvirtual

Reimplemented from AOnlineGameMode.

161{
162 Super::SpawnedAIDeath(PlayerDeath, PawnThatDied);
163}

◆ SpawnedPlayerDeath()

void ACampaignGameMode::SpawnedPlayerDeath ( FPlayerDeath & PlayerDeath,
APawn * PawnThatDied )
overrideprotectedvirtual

Reimplemented from AOnlineGameMode.

143{
144 Super::SpawnedPlayerDeath(PlayerDeath, PawnThatDied);
145 // if(PawnThatDied == nullptr){UE_LOG(LogCustomALS, Warning, TEXT("Pawn That Died NULL"));return;}
146 // AMenuSystemPlayerState* CustomVictimPlayerState = Cast<AMenuSystemPlayerState>(PawnThatDied->GetPlayerState());
147 // if(CustomVictimPlayerState != nullptr)
148 // {
149 // CustomVictimPlayerState->SetMultiplayerStats(CustomVictimPlayerState->GetMultiplayerStats().AddDeath());
150 // int32 RespawnTimeFull = RespawnTime;
151 // if(PlayerDeath.bSelfDeath)
152 // {
153 // RespawnTimeFull *= SelfDeathRespawnTimeMultiplier;
154 // }
155 // CustomVictimPlayerState->StartRespawnTimer(RespawnTimeFull);
156 // CustomVictimPlayerState->OnReadyToRespawn.AddUniqueDynamic(this, &ACampaignGameMode::SpawnPlayer);
157 // }
158}

Member Data Documentation

◆ AllLocalPlayerControllers

TArray<APlayerController*> ACampaignGameMode::AllLocalPlayerControllers
protected

◆ bRandomSeedGenerated

bool ACampaignGameMode::bRandomSeedGenerated = false
private

◆ bUseRandomSeed

bool ACampaignGameMode::bUseRandomSeed = true
protected

◆ LifePool

int32 ACampaignGameMode::LifePool = 2
protected

◆ PlayerQuestStatus

FPlayerQuestStatus ACampaignGameMode::PlayerQuestStatus
protected

◆ RandomStream

FRandomStream ACampaignGameMode::RandomStream
private

Stored Stream to generate Random Numbers

◆ Seed

int32 ACampaignGameMode::Seed = 0
protected

The documentation for this class was generated from the following files: