public virtual void GetHit(float damage) { if (hitTimer.Test() && explosionTimer == null) { isHit = true; jetColor = Color.OrangeRed; dimension.X += 5; dimension.Y += 5; hitTimer.ResetToZero(); } health -= damage; if (health > 0) { hitEffect.Play(); } if (health <= 0 && explosionTimer == null) { speed = 0f; canShoot = false; model = Globals.content.Load <Texture2D>("explosion"); explosionTimer = new CustomTimer(200); } }
public CorporalEnemyJet(Vector2 position, float speed) : base("corporal", position, speed, 5.0f) { itemChanceToSpawn = 20; shootTimer = new CustomTimer(1000); missileShootCooldown = new CustomTimer(10000); items.Add(new MedKit(position)); }
public MajorEnemyJet(Vector2 position, float speed) : base("major", position, speed, 15f) { right = (int)(Globals.screenWidth - position.X + dimension.X); left = (int)position.X; shootTimer = new CustomTimer(300); int moveTimerInterval; if (rand.Next(0, 2) == 1) { movesRight = true; movesLeft = false; moveTimerInterval = (int)(right / speed) * 14; } else { movesRight = false; movesLeft = true; moveTimerInterval = (int)(left / speed) * 14; } moveTimer = new CustomTimer(moveTimerInterval); itemChanceToSpawn = 65; items.Add(new Shield(position)); items.Add(new AccuracyIncreaser(position)); items.Add(new FireSpeedIncreaser(position)); items.Add(new MaxHealthIncreaser(position)); }
public override void BehaveArtificially() { shootTimer.UpdateTimer(); missileShootCooldown.UpdateTimer(); MoveLeftOrRight(); if (moveTimer != null && moveTimer.Test()) { moveTimer = null; } if (moveTimer == null || (moveTimer != null && moveTimer.Test())) { Move(); } if (position.Y < Globals.screenHeight / 4) { position += Physics.RadialMovement(GameGlobals.playerJet.position, position, speed); } if (!GameGlobals.playerJet.destroyed) { Rotate(); Shoot(); } }
public ModelSpawner(string path, Vector2 position, Vector2 dimension, int maxModelCount, int spawnInterval) : base(path, position, dimension) { finished = false; modelCounter = 0; this.maxModelCount = maxModelCount < 0 ? int.MaxValue : maxModelCount; spawnTimer = new CustomTimer(spawnInterval); }
public PlayerJet() : base("jet", new Vector2(Globals.screenWidth / 2, Globals.screenHeight / 2 + 100), new Vector2(60, 60), 2.5f, 20f) { accuracyValue = 10; bulletFireSpeed = 700; missileFireSpeed = 5000; isShieldActive = false; shootTimer = new CustomTimer(1000 - bulletFireSpeed); missileShootCooldown = new CustomTimer(10000 - missileFireSpeed); }
public ItemSpawner() { spawnableItemTypes.Add(typeof(MedKit)); spawnableItemTypes.Add(typeof(JetSpeedIncreaser)); spawnableItemTypes.Add(typeof(FireSpeedIncreaser)); spawnableItemTypes.Add(typeof(AccuracyIncreaser)); spawnableItemTypes.Add(typeof(Shield)); spawnableItemTypes.Add(typeof(MaxHealthIncreaser)); spawnTimer = new CustomTimer(3000); }
public GeneralEnemyJet(Vector2 position, float speed) : base("general", position, speed, 30) { shootTimer = new CustomTimer(1000); movesRight = true; movesLeft = false; itemChanceToSpawn = 85; items.Add(new AccuracyIncreaser(position)); items.Add(new JetSpeedIncreaser(position)); items.Add(new MaxHealthIncreaser(position)); }
private void UpdateShield() { if (shieldTimer != null) { shieldTimer.UpdateTimer(); if (shieldTimer.Test()) { jetColor = Color.White; isShieldActive = false; shieldTimer = null; } } }
public override void BehaveArtificially() { shootTimer.UpdateTimer(); if (moveTimer != null) { moveTimer.UpdateTimer(); if (movesRight) { position.X += speed; if (Physics.IsOutOfArena(position)) { movesRight = false; movesLeft = true; } } else if (movesLeft) { position.X -= speed; if (Physics.IsOutOfArena(position)) { movesRight = true; movesLeft = false; } } } if (moveTimer != null && moveTimer.Test()) { moveTimer = null; } if (moveTimer == null || (moveTimer != null && moveTimer.Test())) { Move(); } if (position.Y < Globals.screenHeight / 4) { position += Physics.RadialMovement(GameGlobals.playerJet.position, position, speed); } if (!GameGlobals.playerJet.destroyed) { Rotate(); Shoot(); } }
public Jet(string PATH, Vector2 POSITION, Vector2 DIMENSION, float speed, float _maxHealth) : base(PATH, POSITION, DIMENSION) { shootEffect = Globals.content.Load <SoundEffect>("laser-shoot"); explosionEffect = Globals.content.Load <SoundEffect>("explosion-effect"); missileEffect = Globals.content.Load <SoundEffect>("missile-effect"); hitEffect = Globals.content.Load <SoundEffect>("hit-effect"); isHit = false; canShoot = true; this.speed = speed; hitDistance = 35f; jetColor = Color.White; health = _maxHealth; maxHealth = health; hitTimer = new CustomTimer(100); destroyed = false; velocity = new Vector2(0, 0); }
public SergeantEnemyJet(Vector2 position, float speed) : base("sergeant", position, speed, 10) { shootTimer = new CustomTimer(800); missileShootCooldown = new CustomTimer(7000); if (rand.Next(0, 2) == 0) { movesRight = true; movesLeft = false; } else { movesRight = false; movesLeft = true; } itemChanceToSpawn = 45; items.Add(new MedKit(position)); items.Add(new Shield(position)); items.Add(new MaxHealthIncreaser(position)); }
private void Move() { List <Bullet2D> bullets = new List <Bullet2D>(GameGlobals.playerBullets); foreach (Bullet2D bullet in bullets) { Vector2 playerToMe = GameGlobals.playerJet.position - position; Vector2 playerToBullet = bullet.position - GameGlobals.playerJet.position; playerToMe.Normalize(); playerToBullet.Normalize(); float dotProduct = -1 * Vector2.Dot(playerToMe, playerToBullet); if ( Physics.GetDistance(position, bullet.position) < hitDistance * 10 && dotProduct >= 0.99f ) { moveTimer = new CustomTimer(1000); if (rand.Next(0, 2) == 0) { movesRight = true; movesLeft = false; } else { movesRight = false; movesLeft = true; } return; } } }
public World(Game game, Globals.PassObject resetWorld) { this.game = game; ResetWorld = resetWorld; levelFont = Globals.content.Load <SpriteFont>("LevelFont"); levelShowTextTimer = new CustomTimer(3000); level = 1; playerJet = new PlayerJet(); GameGlobals.playerJet = playerJet; GameGlobals.playerBullets = new List <Bullet2D>(); destroyedJetCount = 0; bg1 = new ScrollingBackground("star1", new Rectangle(0, 0, 900, 675), 1); bg2 = new ScrollingBackground("star2", new Rectangle(0, -675, 900, 675), 1); GameGlobals.PassBullet = AddBullet; GameGlobals.PassEnemyJet = AddEnemyJet; offset = Vector2.Zero; spawners.Add(new CorporalSpawner(new Vector2(200, -200), 20)); mainMenuSong = Globals.content.Load <Song>("main-music"); ui = new UserInterface(); }
public void ActivateShield() { jetColor = Color.CornflowerBlue; isShieldActive = true; shieldTimer = new CustomTimer(5000); }