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