public StaticProjectile(AnimatedSprite sprite, ITargetable target, Game gameRef)
     : base()
 {
     projectileSprite = (AnimatedSprite)sprite.Clone();
     projectileSprite.CurrentAnimation = AnimationKey.Left;
     Target = target;
     projectileSprite.PerformAnimation = true;
     BoundRect = new BoundRectangle(0, 0, sprite.Width, sprite.Height);
     Position  = Target.BoundRect.BottomCenter - new Vector2(projectileSprite.Width / 2, projectileSprite.Height / 2);
 }
 public override void Apply(ITargetable caster, ITargetable target, TimeSpan elapsedTime, SpellModificationInformation spellInfo, NetworkPlayerInterface playerUi)
 {
     if (!target.Character.Entity.ReplacingModels.ContainsKey(newModelName))
     {
         AnimatedSprite newAnimationSprite = (AnimatedSprite)newModel.Clone();
         newAnimationSprite.CurrentAnimation      = target.Character.Sprite.CurrentAnimation;
         newAnimationSprite.CurrentAnimationFrame = target.Character.Sprite.CurrentAnimationFrame;
         newAnimationSprite.PerformAnimation      = target.Character.Sprite.PerformAnimation;
         target.Character.Entity.ReplacingModels.Add(newModelName, newAnimationSprite);
     }
 }
 public TargetingProjectile(AnimatedSprite sprite, Spell spell, float speed, ITargetable caster, ITargetable target, Game gameRef)
     : base()
 {
     projectileSprite = (AnimatedSprite)sprite.Clone();
     projectileSprite.CurrentAnimation = AnimationKey.Left;
     Spell     = spell;
     BoundRect = new BoundRectangle(0, 0, sprite.Width, sprite.Height);
     if (caster.Character.IsDirectedRight)
     {
         Position = new Vector2(caster.BoundRect.Right - sprite.Width / 2,
                                caster.Position.Y + caster.BoundRect.Height / 4 - sprite.Height / 2);
     }
     else
     {
         Position = new Vector2(caster.BoundRect.Left - sprite.Width / 2,
                                caster.Position.Y + caster.BoundRect.Height / 4 - sprite.Height / 2);
     }
     Speed  = speed;
     Caster = caster;
     Target = target;
 }