public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime) { Vector2 centerDir = new Vector2(0, -1.0f); double longSpread = Math.PI / 16; double shortSpread = Math.PI / 3; for (int n = 0; n < longShotCount; n++) { FlameShot shot = new FlameShot(Game, spriteSheet); shot.PositionX = player.PositionX; shot.PositionY = player.PositionY; shot.Direction = MathFunctions.SpreadDir(centerDir, longSpread); shot.Initialize(); shot.SetSpreadSpeed(random, 0.2f); Game.stateManager.shooterState.gameObjects.Add(shot); } for (int n = 0; n < shortShotCount; n++) { FlameShot shot = new FlameShot(Game, spriteSheet); shot.PositionX = player.PositionX; shot.PositionY = player.PositionY; shot.Direction = MathFunctions.SpreadDir(centerDir, shortSpread); shot.Initialize(); shot.Speed *= 0.3f; shot.SetSpreadSpeed(random, 0.2f); Game.stateManager.shooterState.gameObjects.Add(shot); } return(true); }
protected override void ShootingPattern(GameTime gameTime) { var spreadAngle = Math.PI / 3; EnemyMissileBullet missile = new EnemyMissileBullet(Game, spriteSheet); missile.Position = Position; missile.Direction = new Vector2(0, 1.0f); missile.Direction = MathFunctions.SpreadDir(missile.Direction, spreadAngle); missile.Initialize(); missile.Speed *= 0.6f; Game.stateManager.shooterState.gameObjects.Add(missile); }
protected override void SecondaryShootingPattern(GameTime gameTime) { int numberOfShots = 8; for (int n = 0; n < numberOfShots; n++) { EnemyStrongBlueLaser bullet = new EnemyStrongBlueLaser(Game, spriteSheet); bullet.Position = Position; bullet.Direction = MathFunctions.ScaleDirection(ShootObject.Position - Position); bullet.Direction = MathFunctions.SpreadDir(bullet.Direction, Math.PI / 16); bullet.Initialize(); bullet.SetSpreadSpeed(random); bullet.Speed *= 0.35f; Game.stateManager.shooterState.gameObjects.Add(bullet); } }
private void Explode() { for (int n = 0; n < fragments; n++) { MissileFragment fragment = new MissileFragment(Game, spriteSheet); fragment.Initialize(); fragment.Position = Position; fragment.Duration = 400; fragment.Direction = MathFunctions.SpreadDir(new Vector2(0, -1), Math.PI / 3); float fragmentBaseSpeed = 0.6f; fragment.Speed = (float)(random.NextDouble() * fragmentBaseSpeed + fragmentBaseSpeed); fragment.Speed *= 0.5f; Game.stateManager.shooterState.gameObjects.Add(fragment); } }
protected override void ShootingPattern(GameTime gameTime) { int numberOfShots = 10; for (int n = 0; n < numberOfShots; n++) { EnemyWeakBlueLaser laser1 = new EnemyWeakBlueLaser(Game, spriteSheet); laser1.Position = Position; laser1.Direction = new Vector2(0, 1); laser1.Direction = MathFunctions.SpreadDir(laser1.Direction, Math.PI / 8); laser1.Initialize(); laser1.DrawLayer = this.DrawLayer - 0.01f; laser1.SetSpreadSpeed(random); laser1.Duration *= 2; Game.AddGameObjToShooter(laser1); } }
public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime) { Vector2 centerDir = new Vector2(0, -1.0f); double spread = Math.PI / 32; for (int n = 0; n < numberOfShots; n++) { DistanceSpreadBullet shot = new DistanceSpreadBullet(Game, spriteSheet); shot.PositionX = player.PositionX; shot.PositionY = player.PositionY; shot.Direction = MathFunctions.SpreadDir(centerDir, spread); shot.Initialize(); shot.SetSpreadSpeed(random, 0.2f); Game.stateManager.shooterState.gameObjects.Add(shot); } return(true); }
protected override void ShootingPattern(GameTime gameTime) { int nbrOfShots = 12; double spread = Math.PI / 8; Vector2 initDir = MathFunctions.ScaleDirection(ShootObject.Position - Position); for (int n = 0; n < nbrOfShots; n++) { EnemyWeakRedLaser bullet = new EnemyWeakRedLaser(Game, spriteSheet); bullet.PositionX = PositionX; bullet.PositionY = PositionY; bullet.Direction = MathFunctions.SpreadDir(initDir, spread); bullet.Initialize(); bullet.Duration *= 0.8f; bullet.Speed *= 0.8f; bullet.SetSpreadSpeed(random); Game.stateManager.shooterState.gameObjects.Add(bullet); } }
public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime) { Vector2 centerDir = new Vector2(0, -1.0f); double spread = Math.PI / 8; for (int n = 0; n < numberOfShots; n++) { BasicLaser bullet = new BasicLaser(Game, spriteSheet); bullet.PositionX = player.PositionX; bullet.PositionY = player.PositionY; bullet.Direction = MathFunctions.SpreadDir(centerDir, spread); bullet.Initialize(); bullet.Duration *= 0.8f; bullet.Speed *= 1f; bullet.Damage *= 0.7f; bullet.SetSpreadSpeed(random); Game.stateManager.shooterState.gameObjects.Add(bullet); } return(true); }