Guest User

Untitled

a guest
Sep 14th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class PRGameInfo extends FrameworkGame;
  2.  
  3. enum PRGameState
  4. {
  5.     PRGS_GameRunning,
  6.     PRGS_PlayerDead
  7. };
  8.  
  9. var array<PREnemySpawnLoc> spawnLocs;
  10. var PlayerController deadPlayer;
  11. var PRGameOverScreen gameOverScreen;
  12. var PRGameState gameState;
  13.  
  14. simulated function PostBeginPlay()
  15. {
  16.     local PREnemySpawnLoc loc;
  17.    
  18.     super.PostBeginPlay();
  19.     `Log("Ian ---- > PRGameInfo.PostbeginPlay");
  20.  
  21.  
  22.     // get enemy spawn locations
  23.     foreach AllActors(class'PREnemySpawnLoc', loc)
  24.         spawnLocs.AddItem(loc);
  25.        
  26.     // start enemy spawn timer
  27.     if (spawnLocs.Length > 0)
  28.     {
  29.         `Log("Ian ---- > Found " $ spawnLocs.Length $ " enemy spawn points");
  30.         SetTimer(5, true, 'SpawnEnemy');
  31.     }
  32.     else
  33.     {
  34.         `Warn("Ian ---- > No spawn points found!");
  35.     }
  36. }
  37.  
  38. function SpawnEnemy()
  39. {
  40.     local PREnemySpawnLoc spawnPoint;
  41.    
  42.     if (gameState == PRGS_GameRunning)
  43.     {
  44.         spawnPoint = spawnLocs[Round(RandRange(0,spawnLocs.Length)-1)];
  45.         Spawn(class'PRDummyEnemy',self,,spawnPoint.Location);
  46.     }
  47. }
  48.  
  49. function PlayerDied(PlayerController PC)
  50. {
  51.     local PREnemyPawn enemy;
  52.    
  53.     bRestartLevel = false;
  54.     DeadPlayer = PC;
  55.     gameState = PRGS_PlayerDead;
  56.    
  57.     // destroy enemy pawns
  58.     foreach AllActors(class'PREnemyPawn', enemy)
  59.     {
  60.         enemy.Destroy();
  61.     }
  62.    
  63.     if (gameOverScreen == None)
  64.     {
  65.         `Log("Ian ---- > Creating game over screen object");
  66.         gameOverScreen = new class'PRGameOverScreen';
  67.         gameOverScreen.SetTimingMode(TM_Real);
  68.     }
  69.    
  70.     gameOverScreen.GameOwner = self;
  71.     gameOverScreen.Start();
  72. }
  73.  
  74. function GameOver_Restart()
  75. {
  76.     gameOverScreen.Close();
  77.    
  78.     RestartPlayer(DeadPlayer);
  79.     gameState = PRGS_GameRunning;
  80. }
  81.  
  82. DefaultProperties
  83. {
  84.     PlayerControllerClass = class'PRPlayerController';
  85.     DefaultPawnClass = class'PRPlayerPawn';
  86.     bWaitingToStartMatch = true;
  87.     bDelayedStart = false;
  88.    
  89.     gameState = PRGS_GameRunning;
  90. }
Add Comment
Please, Sign In to add comment