static public void Update() { foreach (BaseObject obj in objs) { obj.Update(); } foreach (Bullet b in bullet) { if (b != null) { b.Update(); } } for (int i = 0; i < asteroids.Count; i++) { if (asteroids[i] != null) { asteroids[i].Update(); for (int j = 0; j < bullet.Count; j++) { if (asteroids[i] != null && bullet[j].Collision(asteroids[i])) { score += 1; bullet.RemoveAt(j); buffer.Graphics.DrawString("Score: " + score, SystemFonts.DefaultFont, Brushes.White, new Point(80, 10)); Console.WriteLine("Little asteriod killed. Score: {0}", score); j--; asteroids[i] = null; continue; } } if (asteroids[i] != null && ship.Collision(asteroids[i])) { asteroids[i].Reset(); ship.Reset(); ship.Health -= 10; Console.WriteLine("Collision with little asteroid. Health: {0}", ship.Health); if (ship.Health <= 0) { ship.Die(); Console.WriteLine("Game Over!!"); } } } else { asteroids.RemoveAt(i); i--; Console.WriteLine("Small asteroids left: {0}", asteroids.Count); } } for (int i = 0; i < asteroidsBig.Count; i++) { if (asteroidsBig[i] != null) { asteroidsBig[i].Update(); for (int j = 0; j < bullet.Count; j++) { if (asteroidsBig[i] != null && bullet[j].Collision(asteroidsBig[i])) { asteroidsBig[i].Power -= bullet[j].Damage; bullet.RemoveAt(j); if (asteroidsBig[i].Power == 0) { asteroidsBig[i] = null; score += 3; Console.WriteLine("Big asteriod killed. Score: {0}", score); } buffer.Graphics.DrawString("Score: " + score, SystemFonts.DefaultFont, Brushes.White, new Point(80, 10)); j--; continue; } } if (asteroidsBig[i] != null && ship.Collision(asteroidsBig[i])) { asteroidsBig[i].Reset(); ship.Reset(); ship.Health -= 30; Console.WriteLine("Collision with Big asteroid. Health: {0}", ship.Health); if (ship.Health <= 0) { ship.Die(); Console.WriteLine("Game Over!!"); } } } else { asteroidsBig.RemoveAt(i); i--; Console.WriteLine("Big asteroids left: {0}", asteroidsBig.Count); } } for (int i = 0; i < nebula.Count; i++) { if (nebula[i] != null) { nebula[i].Update(); for (int j = 0; j < bullet.Count; j++) { if (nebula[i] != null && bullet[j].Collision(nebula[i])) { nebula[i].Power -= bullet[j].Damage; bullet.RemoveAt(j); if (nebula[i].Power == 0) { nebula[i] = null; score += 5; Console.WriteLine("Big asteriod killed. Score: {0}", score); } buffer.Graphics.DrawString("Score: " + score, SystemFonts.DefaultFont, Brushes.White, new Point(80, 10)); j--; continue; } } if (nebula[i] != null && ship.Collision(nebula[i])) { nebula[i].Reset(); ship.Reset(); ship.Health -= 50; Console.WriteLine("Collision with Big asteroid. Health: {0}", ship.Health); if (ship.Health <= 0) { ship.Die(); Console.WriteLine("Game Over!!"); } } } else { nebula.RemoveAt(i); i--; Console.WriteLine("Nebula left: {0}", nebula.Count); } } for (int i = 0; i < boss.Count; i++) { if (boss[i] != null) { boss[i].Update(); for (int j = 0; j < bullet.Count; j++) { if (boss[i] != null && bullet[j].Collision(boss[i])) { boss[i].Power -= bullet[j].Damage; bullet.RemoveAt(j); if (boss[i].Power == 0) { boss[i] = null; score += 20; Console.WriteLine("Boss killed. Score: {0}", score); waveCount = 0; } buffer.Graphics.DrawString("Score: " + score, SystemFonts.DefaultFont, Brushes.White, new Point(80, 10)); j--; continue; } } if (boss[i] != null && ship.Collision(boss[i])) { ship.Reset(); boss[i].Reset(); ship.Health -= 70; buffer.Graphics.DrawString("Health: " + ship.Health, SystemFonts.DefaultFont, Brushes.White, new Point(10, 10)); Console.WriteLine("Collision with Boss. Health: {0}", ship.Health); if (ship.Health <= 0) { ship.Die(); Console.WriteLine("Game Over!!"); } } } else { boss.RemoveAt(i); i--; Console.WriteLine("Boss left: {0}", boss.Count); } } if (ship.Collision(medkit)) { ship.Health += medkit.Restore; buffer.Graphics.DrawString("Health: " + ship.Health, SystemFonts.DefaultFont, Brushes.White, new Point(10, 10)); Console.WriteLine("Collected MedKit. Health: {0}", ship.Health); medkit.Reset(); } medkit.Update(); ship.Update(); if (asteroids.Count == 0 && asteroidsBig.Count == 0 && nebula.Count == 0 && boss.Count == 0) { waveCount++; if (waveCount == 3) { BossCreate(); } if (waveCount < 3) { Reload(asteroidsCount, asteroidsBigCount, nebulaCount, waveCount); } } }