/// <summary> /// Initialiserer banen, tar imot posisjonen til spilleren /// </summary> /// <param name="playerX">x-posisjonen til spilleren</param> /// <param name="playerY">y-posisjonen til spilleren</param> public override void InitializeLevel(int playerX, int playerY) { base.InitializeLevel(playerX, playerY); returnPositionY = _returnPositionY; //Legger inn et tilfeldig antall fiender, det er minimum 1 fiende, og maksimum 5. Det er aldri fler fiender enn levelet til spilleren int maxEnemies = 1; for (int i = 1; i < _player1.combatLevel; i += 2) maxEnemies++; if (maxEnemies >= 5) maxEnemies = 5; int numEnemies = _inGameService.rand.Next(1, maxEnemies + 1); for (int i = 0; i <= numEnemies; i++) { if(_inGameService.rand.Next(0,2) == 0) levelEnemies.Add(new BlobEnemy(new Rectangle(1245 + _inGameService.rand.Next(1, 6) * 50, _inGameService.rand.Next(2, 6) * 100, 400, 267), 0.5f, _player1, _inGameService.Game)); else levelEnemies.Add(new WolfEnemy(new Rectangle(1245 + _inGameService.rand.Next(1, 6) * 50, _inGameService.rand.Next(2, 6) * 100, 400, 267), 0.3f, _player1, _inGameService.Game)); } //setter den første fienden til å være den fienden som angriper activeEnemy = levelEnemies[0]; _player1.activeEnemy = activeEnemy; /* Legger alle fiendene inn til å tegnes * Sette activ enemy i alle fiendene til den fienden * som er satt som active enemy * Setter mobIndex i hver fiende til * tilsvarende index i levelEnemies */ foreach (AnimatedEnemy enemy in levelEnemies) { AddInGameLevelDrawable(enemy); enemy.activeEnemy = activeEnemy; enemy.mobIndex = levelEnemies.IndexOf(enemy); } }
public override void Update(IManageInput inputService, GameTime gameTime) { //Sjekker om den aktive fienden er død, hvis den er det, fjern den, bytt til ny active enemy if (activeEnemy.CurrHp <= 0) { levelEnemies.Remove(activeEnemy); RemoveInGameLevelDrawable(activeEnemy); if (levelEnemies.Count > 0) { activeEnemy = levelEnemies[0]; foreach (AnimatedCharacter enemy in levelEnemies) { enemy.activeEnemy = activeEnemy; } _player1.activeEnemy = activeEnemy; } else { _player1.activeEnemy = null; } } base.Update(inputService, gameTime); }