aboutsummaryrefslogtreecommitdiff
path: root/V3/Effects/IEffect.cs
diff options
context:
space:
mode:
Diffstat (limited to 'V3/Effects/IEffect.cs')
-rw-r--r--V3/Effects/IEffect.cs44
1 files changed, 44 insertions, 0 deletions
diff --git a/V3/Effects/IEffect.cs b/V3/Effects/IEffect.cs
new file mode 100644
index 0000000..73cf1ef
--- /dev/null
+++ b/V3/Effects/IEffect.cs
@@ -0,0 +1,44 @@
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.Graphics;
+using V3.Data;
+
+namespace V3.Effects
+{
+ /// <summary>
+ /// Interface for a single effect.
+ /// </summary>
+ public interface IEffect
+ {
+ /// <summary>
+ /// Is the effect playing at the moment?
+ /// </summary>
+ bool IsPlaying { get; }
+
+ /// <summary>
+ /// Play the specific effect once, do not loop.
+ /// </summary>
+ /// <param name="position">Position where effect should be played. Points to the middle of the effect animation.</param>
+ /// <param name="size">Size of the effect.</param>
+ /// <param name="optionsManager">For checking the volume of the sound if there is one.</param>
+ void PlayOnce(Point position, Point size, IOptionsManager optionsManager);
+
+ /// <summary>
+ /// Update the effect.
+ /// </summary>
+ /// <param name="gameTime">Game time used for checking animation duration.</param>
+ void Update(GameTime gameTime);
+
+ /// <summary>
+ /// Draw the effect.
+ /// </summary>
+ /// <param name="spriteBatch">Sprite batch used.</param>
+ void Draw(SpriteBatch spriteBatch);
+
+ /// <summary>
+ /// Load graphics and possibly sound for the effect.
+ /// </summary>
+ /// <param name="contentManager">Content manager used.</param>
+ void LoadContent(ContentManager contentManager);
+ }
+} \ No newline at end of file