summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/gdx/boardgame
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/gdx/boardgame')
-rw-r--r--core/src/ch/asynk/gdx/boardgame/animations/ShellFireAnimation.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/animations/ShellFireAnimation.java b/core/src/ch/asynk/gdx/boardgame/animations/ShellFireAnimation.java
index e2f0f59..ee041e5 100644
--- a/core/src/ch/asynk/gdx/boardgame/animations/ShellFireAnimation.java
+++ b/core/src/ch/asynk/gdx/boardgame/animations/ShellFireAnimation.java
@@ -4,12 +4,13 @@ import java.util.Hashtable;
import java.util.Map;
import java.util.Random;
-import com.badlogic.gdx.utils.Pool;
+import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.MathUtils;
+import com.badlogic.gdx.utils.Pool;
import ch.asynk.gdx.boardgame.FramedSprite;
import ch.asynk.gdx.boardgame.Piece;
@@ -25,8 +26,12 @@ public class ShellFireAnimation extends TimedAnimation implements Pool.Poolable
public float explosionDuration;
public FramedSprite shellSprites;
public FramedSprite explosionSprites;
+ public Sound shellFireSnd;
+ public Sound explosionSnd;
public Config(float maxFireDelay, float maxShootScattering, float shellSpeed,
- float smokeDuration, float explosionDuration, FramedSprite shellSprites, FramedSprite explosionSprites)
+ float smokeDuration, float explosionDuration,
+ FramedSprite shellSprites, FramedSprite explosionSprites,
+ Sound shellFireSnd, Sound explosionSnd)
{
this.maxFireDelay = maxFireDelay;
this.maxShootScattering = maxShootScattering;
@@ -35,6 +40,8 @@ public class ShellFireAnimation extends TimedAnimation implements Pool.Poolable
this.explosionDuration = explosionDuration;
this.shellSprites = shellSprites;
this.explosionSprites = explosionSprites;
+ this.shellFireSnd = shellFireSnd;
+ this.explosionSnd = explosionSnd;
}
}
@@ -47,12 +54,15 @@ public class ShellFireAnimation extends TimedAnimation implements Pool.Poolable
float smokeDuration,
float explosionDuration,
final Texture shellTexture, int shellC, int shellR,
- final Texture explosionTexture, int explosionC, int explosionR
+ final Texture explosionTexture, int explosionC, int explosionR,
+ final Sound shellFireSnd,
+ final Sound explosionSnd
)
{
Config cfg = new Config(maxFireDelay, maxShootScattering, shellSpeed, smokeDuration, explosionDuration,
new FramedSprite(shellTexture, shellC, shellR),
- new FramedSprite(explosionTexture, explosionC, explosionR)
+ new FramedSprite(explosionTexture, explosionC, explosionR),
+ shellFireSnd, explosionSnd
);
configs.put(name, cfg);
}
@@ -198,6 +208,9 @@ public class ShellFireAnimation extends TimedAnimation implements Pool.Poolable
if (!fired) {
fired = true;
drawFire = true;
+ if(cfg.shellFireSnd != null) {
+ cfg.shellFireSnd.play();
+ }
}
if (!hit && (elapsed < hitTime)) {
@@ -211,6 +224,9 @@ public class ShellFireAnimation extends TimedAnimation implements Pool.Poolable
if (!hit) {
hit = true;
drawExplosion = true;
+ if(cfg.explosionSnd != null) {
+ cfg.explosionSnd.play();
+ }
}
float dt = (elapsed - hitTime);