Compare commits
2 Commits
d49010ff68
...
6a97c425d7
Author | SHA1 | Date | |
---|---|---|---|
6a97c425d7 | |||
56d4c5f5b4 |
@ -189,8 +189,10 @@ void AEnemyCharacter::ResetHealth()
|
|||||||
|
|
||||||
void AEnemyCharacter::DamagePlayer()
|
void AEnemyCharacter::DamagePlayer()
|
||||||
{
|
{
|
||||||
for (auto DamagedPlayer : Player)
|
if (Player.Num() == 0) return;
|
||||||
|
|
||||||
|
for (int i = 0; i < Player.Num(); i++)
|
||||||
{
|
{
|
||||||
UGameplayStatics::ApplyDamage(DamagedPlayer, Damage, GetController(), this, nullptr);
|
UGameplayStatics::ApplyDamage(Player[i], Damage, GetController(), this, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,6 +70,19 @@ void AObjectPoolManager::ReturnObject(AActor* Object)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AObjectPoolManager::ReturnAllObjects()
|
||||||
|
{
|
||||||
|
int ObjectPoolSize = ObjectPool.Num();
|
||||||
|
|
||||||
|
for (int i = 0; i < ObjectPoolSize; i++)
|
||||||
|
{
|
||||||
|
if (!ObjectPool[i]->IsHidden())
|
||||||
|
{
|
||||||
|
ReturnObject(ObjectPool[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AObjectPoolManager::SetObjectStatus(bool bEnabled, AActor* Object)
|
void AObjectPoolManager::SetObjectStatus(bool bEnabled, AActor* Object)
|
||||||
{
|
{
|
||||||
Object->SetActorHiddenInGame(!bEnabled);
|
Object->SetActorHiddenInGame(!bEnabled);
|
||||||
|
@ -22,6 +22,8 @@ public:
|
|||||||
|
|
||||||
void ReturnObject(AActor* Object);
|
void ReturnObject(AActor* Object);
|
||||||
|
|
||||||
|
void ReturnAllObjects();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Called when the game starts or when spawned
|
// Called when the game starts or when spawned
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
|
@ -159,6 +159,21 @@ void AVampireGameMode::AddRandomEnemyTypeToPool()
|
|||||||
void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo)
|
void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo)
|
||||||
{
|
{
|
||||||
GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate);
|
GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate);
|
||||||
|
|
||||||
|
if (EnemyObjectPoolManager)
|
||||||
|
{
|
||||||
|
EnemyObjectPoolManager->ReturnAllObjects();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ProjectileObjectPoolManager)
|
||||||
|
{
|
||||||
|
ProjectileObjectPoolManager->ReturnAllObjects();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PickupObjectPoolManager)
|
||||||
|
{
|
||||||
|
PickupObjectPoolManager->ReturnAllObjects();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AVampireGameMode::EndGame()
|
void AVampireGameMode::EndGame()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user