public BombExplodingProjectile(SpriteBatch spriteBatch, Point spawnPosition, Constants.ProjectileOwner owner) : base(spriteBatch, spawnPosition, owner) { projectileType = LinkConstants.ProjectileType.Bomb; sprite = ProjectileSpriteFactory.Instance.CreateBombExplodingSprite(); Position = new Point(Position.X - Constants.BombSpawnOffsetX, Position.Y - Constants.BombSpawnOffsetY); bomb_blow = SoundFactory.Instance.CreateBombBlowSound(); }
public ArrowFlyingProjectile(SpriteBatch spriteBatch, Point spawnPosition, Constants.ProjectileOwner owner, Vector2 velocity) : base(spriteBatch, spawnPosition, owner) { projectileType = Link.LinkConstants.ProjectileType.Arrow; Velocity = velocity; if (Velocity.X == 0) { sprite = Velocity.Y > 0 ? ProjectileSpriteFactory.Instance.CreateArrowDownSprite() : ProjectileSpriteFactory.Instance.CreateArrowUpSprite(); } else { sprite = Velocity.X > 0 ? ProjectileSpriteFactory.Instance.CreateArrowRightSprite() : ProjectileSpriteFactory.Instance.CreateArrowLeftSprite(); } }
public SwordBeamFlyingProjectile(SpriteBatch spriteBatch, Point spawnPosition, Constants.ProjectileOwner owner, Constants.Direction direction) : base(spriteBatch, spawnPosition, owner) { projectileType = LinkConstants.ProjectileType.SwordBeam; updatedSprite = false; // true we update sword beam to be exploding -- just so we don't update it more than once stopMovingAndExplode = false; // true the sword beam hits an enemy or gets to edge of screen switch (direction) { case Constants.Direction.Down: Velocity = new Vector2(0, moveDistanceVelocity); sprite = ProjectileSpriteFactory.Instance.CreateSwordBeamDownSprite(); break; case Constants.Direction.Up: Velocity = new Vector2(0, -1 * moveDistanceVelocity); sprite = ProjectileSpriteFactory.Instance.CreateSwordBeamUpSprite(); break; case Constants.Direction.Right: Velocity = new Vector2(moveDistanceVelocity, 0); sprite = ProjectileSpriteFactory.Instance.CreateSwordBeamRightSprite(); break; case Constants.Direction.Left: Velocity = new Vector2(-1 * moveDistanceVelocity, 0); sprite = ProjectileSpriteFactory.Instance.CreateSwordBeamLeftSprite(); break; } }
public BoomerangFlyingProjectile(SpriteBatch spriteBatch, Point spawnPosition, Constants.ProjectileOwner owner, ISpawnable itemToTrack, Vector2 velocity) : base(spriteBatch, spawnPosition, owner) { sprite = ProjectileSpriteFactory.Instance.CreateBoomerangFlyingSprite(); Velocity = velocity; returningToOwner = false; this.itemToTrack = itemToTrack; projectileType = LinkConstants.ProjectileType.Boomerang; }
public SwordAttackingProjectile(SpriteBatch spriteBatch, Point spawnPosition, Constants.Direction direction, Constants.ProjectileOwner owner) : base(spriteBatch, spawnPosition, owner) { projectileType = LinkConstants.ProjectileType.Sword; Velocity = Vector2.Zero; switch (direction) { case Constants.Direction.Down: sprite = ProjectileSpriteFactory.Instance.CreateSwordAttackingDownSprite(); break; case Constants.Direction.Up: sprite = ProjectileSpriteFactory.Instance.CreateSwordAttackingUpSprite(); break; case Constants.Direction.Right: sprite = ProjectileSpriteFactory.Instance.CreateSwordAttackingRightSprite(); break; case Constants.Direction.Left: sprite = ProjectileSpriteFactory.Instance.CreateSwordAttackingLeftSprite(); break; } Direction = direction; }
public FireballProjectile(SpriteBatch spriteBatch, Point spawnPosition, Vector2 velocity, Constants.ProjectileOwner owner) : base(spriteBatch, spawnPosition, owner) { sprite = ProjectileSpriteFactory.Instance.CreateFireballSprite(); Position = spawnPosition; Velocity = velocity; projectileType = LinkConstants.ProjectileType.Fireball; }