diff --git a/core/assets/fonts/slkscr.ttf b/core/assets/fonts/slkscr.ttf new file mode 100644 index 0000000..e2dd974 Binary files /dev/null and b/core/assets/fonts/slkscr.ttf differ diff --git a/core/assets/fonts/slkscrb.ttf b/core/assets/fonts/slkscrb.ttf new file mode 100644 index 0000000..ae4425d Binary files /dev/null and b/core/assets/fonts/slkscrb.ttf differ diff --git a/core/assets/fonts/slkscre.ttf b/core/assets/fonts/slkscre.ttf new file mode 100644 index 0000000..1e2be59 Binary files /dev/null and b/core/assets/fonts/slkscre.ttf differ diff --git a/core/assets/fonts/slkscreb.ttf b/core/assets/fonts/slkscreb.ttf new file mode 100644 index 0000000..cd68f57 Binary files /dev/null and b/core/assets/fonts/slkscreb.ttf differ diff --git a/core/assets/splashscreens/libgdx.png b/core/assets/splashscreens/libgdx.png index e272593..5a62820 100644 Binary files a/core/assets/splashscreens/libgdx.png and b/core/assets/splashscreens/libgdx.png differ diff --git a/core/assets/splashscreens/saltosion.png b/core/assets/splashscreens/saltosion.png index 6a95d62..8940666 100644 Binary files a/core/assets/splashscreens/saltosion.png and b/core/assets/splashscreens/saltosion.png differ diff --git a/core/src/com/saltosion/gladiator/GladiatorBrawler.java b/core/src/com/saltosion/gladiator/GladiatorBrawler.java index 4e0cde6..90c9a98 100644 --- a/core/src/com/saltosion/gladiator/GladiatorBrawler.java +++ b/core/src/com/saltosion/gladiator/GladiatorBrawler.java @@ -32,7 +32,7 @@ public class GladiatorBrawler extends ApplicationAdapter { private InputHandler inputHandler; private Jukebox jukebox; - private BaseState currentState; + public static BaseState currentState; @Override public void create() { diff --git a/core/src/com/saltosion/gladiator/input/IRSkipIntros.java b/core/src/com/saltosion/gladiator/input/IRSkipIntros.java new file mode 100644 index 0000000..f4589fa --- /dev/null +++ b/core/src/com/saltosion/gladiator/input/IRSkipIntros.java @@ -0,0 +1,25 @@ + +package com.saltosion.gladiator.input; + +import com.saltosion.gladiator.GladiatorBrawler; +import com.saltosion.gladiator.state.IntroState; +import com.saltosion.gladiator.util.Log; + +public class IRSkipIntros implements InputReceiver { + + @Override + public boolean pressed() { + if (GladiatorBrawler.currentState instanceof IntroState) { + ((IntroState) GladiatorBrawler.currentState).skipIntros(); + } else { + Log.error("Tried to skip intros when introstate is not active!"); + } + return true; + } + + @Override + public boolean released() { + return true; + } + +} diff --git a/core/src/com/saltosion/gladiator/input/InputHandler.java b/core/src/com/saltosion/gladiator/input/InputHandler.java index ec0b1ca..d3a204c 100644 --- a/core/src/com/saltosion/gladiator/input/InputHandler.java +++ b/core/src/com/saltosion/gladiator/input/InputHandler.java @@ -31,6 +31,7 @@ public class InputHandler implements InputProcessor { addInput(Keys.UP, Name.SWING_UP, false); addInput(Keys.DOWN, Name.SWING_DOWN, false); addInput(Keys.F2, Name.DEBUG, false); + addInput(Keys.ESCAPE, Name.SKIP_INTRO, false); } private void addInput(int key, String action, boolean activated) { diff --git a/core/src/com/saltosion/gladiator/input/InputReceivers.java b/core/src/com/saltosion/gladiator/input/InputReceivers.java index 1541f31..9d3534a 100644 --- a/core/src/com/saltosion/gladiator/input/InputReceivers.java +++ b/core/src/com/saltosion/gladiator/input/InputReceivers.java @@ -18,6 +18,7 @@ public class InputReceivers { inputreceivers.put(Name.SWING_UP, new IRSwing(Direction.UP)); inputreceivers.put(Name.SWING_DOWN, new IRSwing(Direction.DOWN)); inputreceivers.put(Name.DEBUG, new IRDebugToggle()); + inputreceivers.put(Name.SKIP_INTRO, new IRSkipIntros()); } public static InputReceiver getReceiver(String key) { diff --git a/core/src/com/saltosion/gladiator/listeners/BasicDeathListener.java b/core/src/com/saltosion/gladiator/listeners/BasicDeathListener.java index 320fb79..07d1126 100644 --- a/core/src/com/saltosion/gladiator/listeners/BasicDeathListener.java +++ b/core/src/com/saltosion/gladiator/listeners/BasicDeathListener.java @@ -12,22 +12,21 @@ import com.saltosion.gladiator.util.Name; public class BasicDeathListener implements CombatListener { private static final float FX_FORCE = 16f, FX_GRAV = -40f; - private static final int FX_HIT_AMT = 4, FX_DEAD_AMT = 96; @Override public void died(Entity source, Entity target, int damageTaken) { target.flags &= ~Global.FLAG_ALIVE; CPhysics cp = target.getComponent(CPhysics.class); - + Sound s = AppUtil.jukebox.returnRandomSound(AudioLoader.getSound(Name.SOUND_HIT01), AudioLoader.getSound(Name.SOUND_HIT02), AudioLoader.getSound(Name.SOUND_HIT03), AudioLoader.getSound(Name.SOUND_HIT04), AudioLoader.getSound(Name.SOUND_HIT05)); s.play(AppUtil.sfxVolume); - - for (int i = 0; i < FX_DEAD_AMT; i++) { + + for (int i = 0; i < getGoreAmount(damageTaken) * 2; i++) { Entity fx = new Entity(); fx.add(new CParticle().setColor(1, 0, 0, 1).setDecayTime(2).setGravity(0, FX_GRAV) .setVelocity((float) Math.cos(Math.toRadians(Math.random() * 360)) * FX_FORCE, @@ -42,15 +41,15 @@ public class BasicDeathListener implements CombatListener { @Override public void damageTaken(Entity source, Entity target, int damageTaken) { CPhysics cp = target.getComponent(CPhysics.class); - + Sound s = AppUtil.jukebox.returnRandomSound(AudioLoader.getSound(Name.SOUND_HIT01), AudioLoader.getSound(Name.SOUND_HIT02), AudioLoader.getSound(Name.SOUND_HIT03), AudioLoader.getSound(Name.SOUND_HIT04), AudioLoader.getSound(Name.SOUND_HIT05)); s.play(AppUtil.sfxVolume); - - for (int i = 0; i < FX_HIT_AMT; i++) { + + for (int i = 0; i < getGoreAmount(damageTaken); i++) { Entity fx = new Entity(); fx.add(new CParticle().setColor(1, 0, 0, 1).setDecayTime(2).setGravity(0, FX_GRAV) .setVelocity((float) Math.cos(Math.toRadians(Math.random() * 360)) * FX_FORCE, @@ -62,4 +61,8 @@ public class BasicDeathListener implements CombatListener { } } + public int getGoreAmount(int damage) { + return (damage - 89) / 8 * Global.GORE_LEVEL; + } + } diff --git a/core/src/com/saltosion/gladiator/state/InGameState.java b/core/src/com/saltosion/gladiator/state/InGameState.java index 17983a6..3d5c3c6 100644 --- a/core/src/com/saltosion/gladiator/state/InGameState.java +++ b/core/src/com/saltosion/gladiator/state/InGameState.java @@ -6,6 +6,7 @@ import com.saltosion.gladiator.level.premade.Round1Level; import com.saltosion.gladiator.level.premade.Round2Level; import com.saltosion.gladiator.level.premade.Round3Level; import com.saltosion.gladiator.level.premade.Round4Level; +import com.saltosion.gladiator.level.premade.Round5Level; import com.saltosion.gladiator.util.AppUtil; import com.saltosion.gladiator.util.AudioLoader; import com.saltosion.gladiator.util.Name; @@ -16,7 +17,7 @@ public class InGameState extends BaseState { * Add new levels to this list */ private static final Level[] levels = {new Round1Level(), new Round2Level(), - new Round3Level(), new Round4Level()}; + new Round3Level(), new Round4Level(), new Round5Level()}; private Level level; private InGameGUICreator guiCreator; diff --git a/core/src/com/saltosion/gladiator/state/IntroState.java b/core/src/com/saltosion/gladiator/state/IntroState.java index ddb1770..e08a13d 100644 --- a/core/src/com/saltosion/gladiator/state/IntroState.java +++ b/core/src/com/saltosion/gladiator/state/IntroState.java @@ -2,13 +2,15 @@ package com.saltosion.gladiator.state; import com.saltosion.gladiator.gui.creators.IntroGUICreator; import com.saltosion.gladiator.util.AppUtil; +import com.saltosion.gladiator.util.Name; import com.saltosion.gladiator.util.SpriteLoader; public class IntroState extends BaseState { - private static final float SPLASH_DELAY = 2f; + private static final float SPLASH_DELAY = 4f; private IntroGUICreator guiCreator; private float currentTime; + private boolean forceskip = false; @Override public void create() { @@ -18,12 +20,15 @@ public class IntroState extends BaseState { SpriteLoader.preload(); guiCreator = new IntroGUICreator(); guiCreator.create(); + + // Enable skipping intro for now + AppUtil.inputHandler.setInputEnabled(Name.SKIP_INTRO, true); } @Override public void update(float deltaTime) { currentTime += deltaTime; - if (currentTime > SPLASH_DELAY) { + if ((currentTime > SPLASH_DELAY) || forceskip) { boolean finished = guiCreator.nextSplashScreen(); if (finished && SpriteLoader.loadedAllSprites) { setState(new MainMenuState()); @@ -41,9 +46,16 @@ public class IntroState extends BaseState { float f = Math.max(0, Math.min(1, currentTime / SPLASH_DELAY)); return f < 0.5 ? f * 2 : 1 - ((f - 0.5f) * 2f); } + + public void skipIntros() { + forceskip = true; + } @Override public void destroy() { + // And disable it now ! + AppUtil.inputHandler.setInputEnabled(Name.SKIP_INTRO, false); + // Clear GUI so there's nothing leftover for the next state AppUtil.guiManager.clearGUI(); } diff --git a/core/src/com/saltosion/gladiator/util/Global.java b/core/src/com/saltosion/gladiator/util/Global.java index be3e53e..5b3e1e7 100644 --- a/core/src/com/saltosion/gladiator/util/Global.java +++ b/core/src/com/saltosion/gladiator/util/Global.java @@ -11,6 +11,11 @@ public class Global { public static final int FLAG_ALIVE = 1; + public static final int HIGH_GORE = 5; + public static final int LOW_GORE = 1; + public static final int NO_GORE = 0; + public static final int GORE_LEVEL = HIGH_GORE; + /** * Higher font scale = smaller text */ diff --git a/core/src/com/saltosion/gladiator/util/Name.java b/core/src/com/saltosion/gladiator/util/Name.java index 068cdf2..1237551 100644 --- a/core/src/com/saltosion/gladiator/util/Name.java +++ b/core/src/com/saltosion/gladiator/util/Name.java @@ -34,6 +34,7 @@ public class Name { public static final String SWING_RIGHT = "SWING_RIGHT"; public static final String SWING_UP = "SWING_UP"; public static final String SWING_DOWN = "SWING_DOWN"; + public static final String SKIP_INTRO = "SKIP_INTRO"; public static final String MUSIC_THEME = "MUSIC_THEME"; public static final String MUSIC_BATTLE = "MUSIC_BATTLE";