using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using V3.Data; namespace V3.Effects { /// /// Interface for a single effect. /// public interface IEffect { /// /// Is the effect playing at the moment? /// bool IsPlaying { get; } /// /// Play the specific effect once, do not loop. /// /// Position where effect should be played. Points to the middle of the effect animation. /// Size of the effect. /// For checking the volume of the sound if there is one. void PlayOnce(Point position, Point size, IOptionsManager optionsManager); /// /// Update the effect. /// /// Game time used for checking animation duration. void Update(GameTime gameTime); /// /// Draw the effect. /// /// Sprite batch used. void Draw(SpriteBatch spriteBatch); /// /// Load graphics and possibly sound for the effect. /// /// Content manager used. void LoadContent(ContentManager contentManager); } }