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; }