Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PRGameInfo extends FrameworkGame;
- enum PRGameState
- {
- PRGS_GameRunning,
- PRGS_PlayerDead
- };
- var array<PREnemySpawnLoc> spawnLocs;
- var PlayerController deadPlayer;
- var PRGameOverScreen gameOverScreen;
- var PRGameState gameState;
- simulated function PostBeginPlay()
- {
- local PREnemySpawnLoc loc;
- super.PostBeginPlay();
- `Log("Ian ---- > PRGameInfo.PostbeginPlay");
- // get enemy spawn locations
- foreach AllActors(class'PREnemySpawnLoc', loc)
- spawnLocs.AddItem(loc);
- // start enemy spawn timer
- if (spawnLocs.Length > 0)
- {
- `Log("Ian ---- > Found " $ spawnLocs.Length $ " enemy spawn points");
- SetTimer(5, true, 'SpawnEnemy');
- }
- else
- {
- `Warn("Ian ---- > No spawn points found!");
- }
- }
- function SpawnEnemy()
- {
- local PREnemySpawnLoc spawnPoint;
- if (gameState == PRGS_GameRunning)
- {
- spawnPoint = spawnLocs[Round(RandRange(0,spawnLocs.Length)-1)];
- Spawn(class'PRDummyEnemy',self,,spawnPoint.Location);
- }
- }
- function PlayerDied(PlayerController PC)
- {
- local PREnemyPawn enemy;
- bRestartLevel = false;
- DeadPlayer = PC;
- gameState = PRGS_PlayerDead;
- // destroy enemy pawns
- foreach AllActors(class'PREnemyPawn', enemy)
- {
- enemy.Destroy();
- }
- if (gameOverScreen == None)
- {
- `Log("Ian ---- > Creating game over screen object");
- gameOverScreen = new class'PRGameOverScreen';
- gameOverScreen.SetTimingMode(TM_Real);
- }
- gameOverScreen.GameOwner = self;
- gameOverScreen.Start();
- }
- function GameOver_Restart()
- {
- gameOverScreen.Close();
- RestartPlayer(DeadPlayer);
- gameState = PRGS_GameRunning;
- }
- DefaultProperties
- {
- PlayerControllerClass = class'PRPlayerController';
- DefaultPawnClass = class'PRPlayerPawn';
- bWaitingToStartMatch = true;
- bDelayedStart = false;
- gameState = PRGS_GameRunning;
- }
Add Comment
Please, Sign In to add comment