diff --git a/core/src/net/mostlyoriginal/game/screen/GameScreen.java b/core/src/net/mostlyoriginal/game/screen/GameScreen.java index a2d5849..4ec30c2 100644 --- a/core/src/net/mostlyoriginal/game/screen/GameScreen.java +++ b/core/src/net/mostlyoriginal/game/screen/GameScreen.java @@ -47,14 +47,11 @@ protected World createWorld() { new ChainingSystem(), new EntitySpawnerSystem(), new MapSystem(), - //new PuzzleDirectorSystem(), new ParticleSystem(), -// new PowerSystem(), new DialogSystem(), // new GameScreenAssetSystem(), new ShipDataSystem(), -// new DialogDataSystem(), new GameScreenSetupSystem(), new FontManager(), // @@ -64,14 +61,11 @@ protected World createWorld() { // // // spawn new TriggerSystem(), -// new FarewellSystem(), -// new SpoutSystem(), -// + // // Control and logic. new CameraUnfreezeSystem(), new EnemyCleanupSystem(), new FollowSystem(), - //new FlightPatternControlSystem(), new KeyboardInputSystem(), new TutorialInputSystem(), new CarControlSystem(), @@ -82,8 +76,7 @@ protected World createWorld() { new GridSnapSystem(), new AttachmentSystem(), new SpinoutSystem(), -// new BirdBrainSystem(), -// + // // Physics. new GravitySystem(), new MapCollisionSystem(), @@ -91,9 +84,7 @@ protected World createWorld() { new PhysicsSystem(), // // // Effects. -// new FootstepSystem(), new CarriedSystem(), -// new SocketSystem(), new CrashSystem(), new TireTrackSystem(), // @@ -105,28 +96,22 @@ protected World createWorld() { new ScoreUISystem(), new RewardSystem(), new PriorityAnimSystem(), -// -// new JumpAttackSystem(), // new ClearScreenSystem(Color.valueOf("7B7A7F")), -// new RenderBackgroundSystem(), new MapRenderSystem(), -// + renderBatchingSystem = new RenderBatchingSystem(), new MyAnimRenderSystem(renderBatchingSystem), new BoundingBoxRenderSystem(renderBatchingSystem), new MyLabelRenderSystem(renderBatchingSystem), new AdditiveRenderSystem(), new MapRenderInFrontSystem(), -// new TerminalSystem(), - //new ExitSystem(), -// new DeathSystem(), -// new HealthUISystem(), - new SfxSystem(), - new TransitionSystem(GdxArtemisGame.getInstance()) - ).build()); + + new SfxSystem() + ).with(WorldConfigurationBuilder.Priority.LOWEST,new TransitionSystem(GdxArtemisGame.getInstance())) + .build()); } } diff --git a/core/src/net/mostlyoriginal/game/system/detection/ScoreUISystem.java b/core/src/net/mostlyoriginal/game/system/detection/ScoreUISystem.java index 3308657..8139f2d 100644 --- a/core/src/net/mostlyoriginal/game/system/detection/ScoreUISystem.java +++ b/core/src/net/mostlyoriginal/game/system/detection/ScoreUISystem.java @@ -32,8 +32,8 @@ public class ScoreUISystem extends BaseSystem { private int score = 0; - private boolean finished; - private float finishedTime; + private boolean finished = false; + private float finishedTime =0; private boolean pressed = false; private TutorialInputSystem tutorialInputSystem; private TransitionSystem transitionSystem; @@ -57,12 +57,21 @@ public void displayScorecard() { final String decimalScore = getDecimalFormattedString("" + score); E.E() - .labelText((newHighscore ? "NEW HIGHSCORE! " : "SCORED ") + decimalScore) + .labelText((newHighscore ? "NEW HIGHSCORE! " : "SCORE ") + decimalScore) .labelAlign(Label.Align.RIGHT) .fontFontName("italshuge") .tint(1f, 1f, 0f, 1f) - .pos(cameraSystem.camera.position.x, cameraSystem.camera.position.y) + .pos(cameraSystem.camera.position.x, cameraSystem.camera.position.y+16) .renderLayer(G.LAYER_PLAYER + 100); + + E.E() + .labelText(scoreAsText(score)) + .labelAlign(Label.Align.RIGHT) + .fontFontName("ital") + .tint(1f, 1f, 0.2f, 1f) + .pos(cameraSystem.camera.position.x, cameraSystem.camera.position.y-20) + .renderLayer(G.LAYER_PLAYER + 101); + E.E() .labelText("Play again? Press space") .labelAlign(Label.Align.RIGHT) @@ -71,13 +80,31 @@ public void displayScorecard() { .pos(cameraSystem.camera.position.x, cameraSystem.camera.position.y - 40) .script(sequence( delay(milliseconds(250)), - JamOperationFactory.tintTo(Tint.WHITE) + JamOperationFactory.tintBetween(Tint.TRANSPARENT, Tint.WHITE, milliseconds(100)) )) - .renderLayer(G.LAYER_PLAYER + 100); + .renderLayer(G.LAYER_PLAYER + 102); } finished = true; } + private String scoreAsText(int score) { + if ( score > 1000000 ) return "TUGGIONAIRE"; + if ( score > 500000 ) return "Wait, how, where!?"; + if ( score > 400000 ) return "Ok this isn't possible is it?"; + if ( score > 300000 ) return "Tugotron 5000"; + if ( score > 200000 ) return "Lord of the Track"; + if ( score > 150000 ) return "Bested the developers!"; + if ( score > 100000 ) return "Tow King"; + if ( score > 90000 ) return "Lord of the Pylons"; + if ( score > 80000 ) return "Burning Rubber"; + if ( score > 60000 ) return "Oil Slick"; + if ( score > 40000 ) return "Abandoned Shopping Cart"; + if ( score > 20000 ) return "Rally Granny"; + if ( score > 10000 ) return "Sunday Driver"; + if ( score > 1000 ) return "Parking Brake"; + return "Didn't even try"; + } + private boolean saveScore() { Preferences prefs = Gdx.app.getPreferences("ld41wrecklessR2"); final String key = "highscore_" + mapSystem.activeLevel; diff --git a/core/src/net/mostlyoriginal/game/system/render/TransitionSystem.java b/core/src/net/mostlyoriginal/game/system/render/TransitionSystem.java index 44998d8..caa6e04 100644 --- a/core/src/net/mostlyoriginal/game/system/render/TransitionSystem.java +++ b/core/src/net/mostlyoriginal/game/system/render/TransitionSystem.java @@ -25,6 +25,7 @@ public class TransitionSystem extends EntityProcessingSystem { private Game game; private GameScreenAssetSystem assetSystem; + private boolean triggered=false; public TransitionSystem(Game game) { super(Aspect.all(Transition.class)); @@ -46,11 +47,14 @@ public void transition(Class screen, float delay) { @Override protected void process(Entity e) { - try { - assetSystem.stopMusic(); - game.setScreen(ClassReflection.newInstance(E(e).transitionScreen())); - } catch (Exception ex) { - throw new RuntimeException(ex); + if ( !triggered ) { + triggered=true; + try { + assetSystem.stopMusic(); + game.setScreen(ClassReflection.newInstance(E(e).transitionScreen())); + } catch (Exception ex) { + throw new RuntimeException(ex); + } } } }