void ABatteryCollectorGameMode::BeginPlay() { Super::BeginPlay(); // find all spawn volume Actors TArray<AActor*> FoundActors; UGameplayStatics::GetAllActorsOfClass(GetWorld(), ASpawnVolume::StaticClass(), FoundActors); for (auto Actor : FoundActors) { ASpawnVolume* SpawnVolumeActor = Cast<ASpawnVolume>(Actor); if (SpawnVolumeActor) { SpawnVolumeActors.AddUnique(SpawnVolumeActor); } } SetCurrentState(EBatteryPlayState::EPlaying); ABatteryCollectorCharacter* MyCharacter = Cast<ABatteryCollectorCharacter>(UGameplayStatics::GetPlayerPawn(this, 0)); if (MyCharacter) { PowerToWin = (MyCharacter->GetInitialPower()) * 1.25f; } if (HUDWidgetClass != nullptr) { CurrentWidget = CreateWidget<UUserWidget>(GetWorld(), HUDWidgetClass); if (CurrentWidget != nullptr) { CurrentWidget->AddToViewport(); } } }
void ABatteryCollectorGameMode::Tick(float DeltaTime) { Super::Tick(DeltaTime); ABatteryCollectorCharacter* MyCharacter = Cast<ABatteryCollectorCharacter>(UGameplayStatics::GetPlayerPawn(this, 0)); if (MyCharacter) { // If our power is greater than needed to win, set the game's state to Won if (MyCharacter->GetCurrentPower() > PowerToWin) { SetCurrentState(EBatteryPlayState::EWon); } else if (MyCharacter->GetCurrentPower() > 0) { MyCharacter->UpdatePower(-DeltaTime * DecayRate * (MyCharacter->GetInitialPower())); } else { SetCurrentState(EBatteryPlayState::EGameOver); } } }
void ABatteryCollectorGameMode::Tick(float DeltaTime) { Super::Tick(DeltaTime); ABatteryCollectorCharacter* myCharacter = Cast<ABatteryCollectorCharacter>(UGameplayStatics::GetPlayerPawn(this, 0)); if (myCharacter) { if ((myCharacter->GetCurrentPower()) > powerToWin) { SetCurrentState(EBatteryPlayState::EWon); } else if ((myCharacter->GetCurrentPower()) > 0) { myCharacter->UpdatePower(-DeltaTime * decayRate * (myCharacter->GetInitialPower())); } else { SetCurrentState(EBatteryPlayState::EGameOver); } } }
void ABatteryCollectorGameMode::Tick(float DeltaTime) { Super::Tick(DeltaTime); // Check that we are using a battery collector character ABatteryCollectorCharacter* MyCharacter = Cast<ABatteryCollectorCharacter>(UGameplayStatics::GetPlayerPawn(this, 0)); if (MyCharacter) { if (MyCharacter->GetCurrentPower() > PowerToWin) { SetCurrentState(EBatteryPlayState::EWon); } else if (MyCharacter->GetCurrentPower() > 0) { MyCharacter->UpdatePower(-DeltaTime*DecayRate*(MyCharacter->GetInitialPower())); } else { SetCurrentState(EBatteryPlayState::EGameOver); } } }
void ABatteryCollectorGameMode::Tick(float DeltaTime) { Super::Tick(DeltaTime); // Check that we are using the BatteryCollectorCharacter ABatteryCollectorCharacter* MyCharacter = Cast<ABatteryCollectorCharacter>(UGameplayStatics::GetPlayerPawn(this, 0)); if (MyCharacter) { // If won if (MyCharacter->GetCurrentPower() > PowerToWin) { SetCurrentState(EBatteryPlayState::Ewon); } // If Char's power is positive else if (MyCharacter->GetCurrentPower() > 0) { // Decrease the char's power using the decay rate MyCharacter->UpdatePower(-DeltaTime * DecayRate * (MyCharacter->GetInitialPower())); } else { SetCurrentState(EBatteryPlayState::EGameOver); } } }
void ABatteryCollectorGameMode::Tick(float DeltaTime) { Super::Tick(DeltaTime); // check that it's a batter collector character ABatteryCollectorCharacter* MyCharacter = Cast<ABatteryCollectorCharacter>(UGameplayStatics::GetPlayerPawn(this,0)); if(MyCharacter) { // if power is greater than needed to win, set the game's state to Won if(MyCharacter->GetCurrentPower() > PowerToWin) { SetCurrentState(EBatteryPlayState::EWon); } // if the character's poer is positive else if(MyCharacter->GetCurrentPower()>0) { // decrease the character's power MyCharacter->UpdatePower(-DeltaTime*DecayRate*(MyCharacter->GetInitialPower())); } else { SetCurrentState(EBatteryPlayState::EGameOver); } } }