// Fill out your copyright notice in the Description page of Project Settings. #include "ToonTanksGameMode.h" #include "Tank.h" #include "ToonTanksPlayerController.h" #include "Tower.h" #include "Kismet/GameplayStatics.h" void AToonTanksGameMode::BeginPlay() { Super::BeginPlay(); HandleGameStart(); } void AToonTanksGameMode::ActorDied(AActor* DeadActor) { if (DeadActor == Tank) { Tank->HandleDestruction(); if (PlayerController) PlayerController->SetPlayerEnabledState(false); } else if (ATower* DestroyedTower = Cast(DeadActor)) DestroyedTower->HandleDestruction(); } void AToonTanksGameMode::HandleGameStart() { Tank = Cast(UGameplayStatics::GetPlayerPawn(this, 0)); PlayerController = Cast(UGameplayStatics::GetPlayerController(this, 0)); StartGame(); if (PlayerController) { PlayerController->SetPlayerEnabledState(false); FTimerHandle PlayerEnableTimerHandle; FTimerDelegate TimerDelegate = FTimerDelegate::CreateUObject( PlayerController, &AToonTanksPlayerController::SetPlayerEnabledState, true ); GetWorldTimerManager().SetTimer( PlayerEnableTimerHandle, TimerDelegate, StartDelay, false ); } }