Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
 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;
 }