From d4bcc1b1af696ab5cbc2447336b6420d97c94bca Mon Sep 17 00:00:00 2001
From: Tor Martin Wang <tmwang@stud.ntnu.no>
Date: Fri, 24 Apr 2020 17:41:45 +0200
Subject: [PATCH] Made a leftover font scale with the device width. Completes
 issue #102

---
 .../core/src/com/gameware/game/GameWare.java  |  1 +
 .../sprites/bubbleWrapSprites/Bubble.java     |  4 +++-
 .../colorRushSprites/ColorRushButton.java     |  5 +++--
 .../colorRushSprites/ColorRushTarget.java     |  5 +++--
 .../sprites/fruitSlicerSprites/Fruit.java     |  3 ++-
 .../fruitSlicerSprites/SlicingCircle.java     |  3 ++-
 .../pauseStateSprites/ConfirmationBox.java    |  2 +-
 .../pauseStateSprites/PauseCircle.java        |  2 +-
 .../pauseStateSprites/PauseMenuButton.java    |  2 +-
 .../com/gameware/game/states/PauseState.java  | 12 ++++++++----
 .../game/states/games/BubbleWrapState.java    |  2 +-
 .../game/states/games/ColorRushState.java     |  4 ++--
 .../game/states/games/FruitSlicerState.java   | 19 +++++++++++--------
 .../game/states/games/PlayStateUnion.java     |  5 +++--
 .../game/states/menus/MenuStateUnion.java     | 10 +++++++---
 .../states/menus/ViewTournamentState.java     |  2 +-
 16 files changed, 50 insertions(+), 31 deletions(-)

diff --git a/frontend/core/src/com/gameware/game/GameWare.java b/frontend/core/src/com/gameware/game/GameWare.java
index a9278ad..cedd96f 100644
--- a/frontend/core/src/com/gameware/game/GameWare.java
+++ b/frontend/core/src/com/gameware/game/GameWare.java
@@ -4,6 +4,7 @@ import com.badlogic.gdx.ApplicationAdapter;
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.audio.Music;
 import com.badlogic.gdx.files.FileHandle;
+import com.badlogic.gdx.graphics.GL20;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.utils.Json;
 import com.badlogic.gdx.utils.JsonReader;
diff --git a/frontend/core/src/com/gameware/game/sprites/bubbleWrapSprites/Bubble.java b/frontend/core/src/com/gameware/game/sprites/bubbleWrapSprites/Bubble.java
index 5374aac..3374f9b 100644
--- a/frontend/core/src/com/gameware/game/sprites/bubbleWrapSprites/Bubble.java
+++ b/frontend/core/src/com/gameware/game/sprites/bubbleWrapSprites/Bubble.java
@@ -1,4 +1,4 @@
-package com.gameware.game.sprites;
+package com.gameware.game.sprites.bubbleWrapSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.audio.Sound;
@@ -7,6 +7,8 @@ import com.gameware.game.GameWare;
 
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.math.Vector3;
+import com.gameware.game.sprites.Sprite;
+
 import java.util.ArrayList;
 import java.util.Random;
 
diff --git a/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushButton.java b/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushButton.java
index 19f7370..6cf67a1 100644
--- a/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushButton.java
+++ b/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushButton.java
@@ -1,4 +1,4 @@
-package com.gameware.game.sprites;
+package com.gameware.game.sprites.colorRushSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.audio.Sound;
@@ -6,8 +6,9 @@ import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.math.Vector3;
 import com.gameware.game.GameWare;
+import com.gameware.game.sprites.Sprite;
 
-public class ColorRushButton extends Sprite{
+public class ColorRushButton extends Sprite {
     private Texture mainTexture;
     private Texture disabledTexture;
     private int colorNum;
diff --git a/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushTarget.java b/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushTarget.java
index cbd0da4..f637e5e 100644
--- a/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushTarget.java
+++ b/frontend/core/src/com/gameware/game/sprites/colorRushSprites/ColorRushTarget.java
@@ -1,11 +1,12 @@
-package com.gameware.game.sprites;
+package com.gameware.game.sprites.colorRushSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.math.Vector3;
+import com.gameware.game.sprites.Sprite;
 
-public class ColorRushTarget extends Sprite{
+public class ColorRushTarget extends Sprite {
      private int nextHeight;
     private Vector3 velocity;
     private Texture mainTexture;
diff --git a/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/Fruit.java b/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/Fruit.java
index 6f23461..8489edb 100644
--- a/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/Fruit.java
+++ b/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/Fruit.java
@@ -1,10 +1,11 @@
-package com.gameware.game.sprites;
+package com.gameware.game.sprites.fruitSlicerSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.graphics.g2d.TextureRegion;
 import com.badlogic.gdx.math.Vector3;
+import com.gameware.game.sprites.Sprite;
 
 
 public class Fruit extends Sprite {
diff --git a/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/SlicingCircle.java b/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/SlicingCircle.java
index 2c3aa93..fb49b4f 100644
--- a/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/SlicingCircle.java
+++ b/frontend/core/src/com/gameware/game/sprites/fruitSlicerSprites/SlicingCircle.java
@@ -1,9 +1,10 @@
-package com.gameware.game.sprites;
+package com.gameware.game.sprites.fruitSlicerSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.math.Vector3;
+import com.gameware.game.sprites.Sprite;
 
 public class SlicingCircle extends Sprite {
     private Texture slicingVFX;
diff --git a/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/ConfirmationBox.java b/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/ConfirmationBox.java
index 7b04bc8..f876019 100644
--- a/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/ConfirmationBox.java
+++ b/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/ConfirmationBox.java
@@ -1,4 +1,4 @@
-package com.gameware.game.sprites.PauseStateSprites;
+package com.gameware.game.sprites.pauseStateSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
diff --git a/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseCircle.java b/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseCircle.java
index 6261724..9a9fe52 100644
--- a/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseCircle.java
+++ b/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseCircle.java
@@ -1,4 +1,4 @@
-package com.gameware.game.sprites.PauseStateSprites;
+package com.gameware.game.sprites.pauseStateSprites;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Color;
diff --git a/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseMenuButton.java b/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseMenuButton.java
index 30ba7f5..001e3b3 100644
--- a/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseMenuButton.java
+++ b/frontend/core/src/com/gameware/game/sprites/pauseStateSprites/PauseMenuButton.java
@@ -1,4 +1,4 @@
-package com.gameware.game.sprites.PauseStateSprites;
+package com.gameware.game.sprites.pauseStateSprites;
 
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
diff --git a/frontend/core/src/com/gameware/game/states/PauseState.java b/frontend/core/src/com/gameware/game/states/PauseState.java
index b59254c..ea14fa9 100644
--- a/frontend/core/src/com/gameware/game/states/PauseState.java
+++ b/frontend/core/src/com/gameware/game/states/PauseState.java
@@ -5,10 +5,10 @@ import com.badlogic.gdx.graphics.Color;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.gameware.game.GameWare;
-import com.gameware.game.sprites.ConfirmationBox;
+import com.gameware.game.sprites.pauseStateSprites.ConfirmationBox;
 import com.gameware.game.sprites.LoadingText;
-import com.gameware.game.sprites.PauseCircle;
-import com.gameware.game.sprites.PauseMenuButton;
+import com.gameware.game.sprites.pauseStateSprites.PauseCircle;
+import com.gameware.game.sprites.pauseStateSprites.PauseMenuButton;
 import com.gameware.game.states.games.PlayStateUnion;
 
 import java.util.ArrayList;
@@ -231,5 +231,9 @@ public class PauseState extends State {
     }
 
     @Override
-    public void reset() { }
+    public void reset() {
+        this.needsConfirmation = false;
+        this.countdownStarted = false;
+        this.countdownDurationLeft = 3f;
+    }
 }
diff --git a/frontend/core/src/com/gameware/game/states/games/BubbleWrapState.java b/frontend/core/src/com/gameware/game/states/games/BubbleWrapState.java
index b7b15e8..a0df27a 100644
--- a/frontend/core/src/com/gameware/game/states/games/BubbleWrapState.java
+++ b/frontend/core/src/com/gameware/game/states/games/BubbleWrapState.java
@@ -3,7 +3,7 @@ package com.gameware.game.states.games;
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.gameware.game.sprites.Bubble;
+import com.gameware.game.sprites.bubbleWrapSprites.Bubble;
 import com.gameware.game.states.GameStateManager;
 
 import java.util.ArrayList;
diff --git a/frontend/core/src/com/gameware/game/states/games/ColorRushState.java b/frontend/core/src/com/gameware/game/states/games/ColorRushState.java
index 17127b6..21a2006 100644
--- a/frontend/core/src/com/gameware/game/states/games/ColorRushState.java
+++ b/frontend/core/src/com/gameware/game/states/games/ColorRushState.java
@@ -2,8 +2,8 @@ package com.gameware.game.states.games;
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.gameware.game.sprites.ColorRushButton;
-import com.gameware.game.sprites.ColorRushTarget;
+import com.gameware.game.sprites.colorRushSprites.ColorRushButton;
+import com.gameware.game.sprites.colorRushSprites.ColorRushTarget;
 import com.gameware.game.states.GameStateManager;
 
 import java.util.ArrayList;
diff --git a/frontend/core/src/com/gameware/game/states/games/FruitSlicerState.java b/frontend/core/src/com/gameware/game/states/games/FruitSlicerState.java
index 7861261..c337e16 100644
--- a/frontend/core/src/com/gameware/game/states/games/FruitSlicerState.java
+++ b/frontend/core/src/com/gameware/game/states/games/FruitSlicerState.java
@@ -6,8 +6,8 @@ import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.math.Vector3;
 import com.gameware.game.GameWare;
-import com.gameware.game.sprites.Fruit;
-import com.gameware.game.sprites.SlicingCircle;
+import com.gameware.game.sprites.fruitSlicerSprites.Fruit;
+import com.gameware.game.sprites.fruitSlicerSprites.SlicingCircle;
 import com.gameware.game.states.GameStateManager;
 
 import java.util.ArrayList;
@@ -35,6 +35,8 @@ public class FruitSlicerState extends PlayStateUnion {
         super(gsm);
         super.setTotalGameTime(60f);
         super.screenshot = new Texture(Gdx.files.internal("gameTextures/FruitSlicer/FruitSlicerPhotoEdit.png"));
+        super.setFontColorWhite();
+        super.setPauseButtonWhite();
 
         this.sliceWhooshSound = Gdx.audio.newSound(Gdx.files.internal("sfx/FruitSlicerWhooshSound.mp3"));
         this.sliceSquishSound = Gdx.audio.newSound(Gdx.files.internal("sfx/FruitSlicerSquishSound.mp3"));
@@ -78,6 +80,12 @@ public class FruitSlicerState extends PlayStateUnion {
             this.oldTouchPosition.x = touchX;
             this.oldTouchPosition.y = touchY;
         }
+
+
+        // Adds new slicing circles if the user is touching
+        if(Gdx.input.isTouched()) {
+            this.slicingCircles.add(new SlicingCircle(Gdx.input.getX(), Gdx.graphics.getHeight() - Gdx.input.getY(), this.slicingCircleVFX));
+        }
     }
 
     @Override
@@ -87,11 +95,6 @@ public class FruitSlicerState extends PlayStateUnion {
 
         this.handleInput();
 
-        // Adds new slicing circles if the user is touching
-        if(Gdx.input.isTouched()) {
-            this.slicingCircles.add(new SlicingCircle(Gdx.input.getX(), Gdx.graphics.getHeight() - Gdx.input.getY(), this.slicingCircleVFX));
-        }
-
         // Updates the slicing circles
         for(SlicingCircle slicingCircle : this.slicingCircles){
             slicingCircle.update(dt);
@@ -165,7 +168,7 @@ public class FruitSlicerState extends PlayStateUnion {
         // Four different emit modes: from left, from right, from entire bottom, and from bottom center with different velocity angles
         int emitMode = (int) (Math.random() * 4);
         Fruit fruit;
-        Texture fruitTexture = this.fruitTextures.get((int) (Math.random() * 20));
+        Texture fruitTexture = this.fruitTextures.get((int) (Math.random() * this.fruitTextures.size()));
         Vector3 velocity = new Vector3(Gdx.graphics.getWidth() * 3 / 4, 0, 0);
 
         int x, y, emitAngle;
diff --git a/frontend/core/src/com/gameware/game/states/games/PlayStateUnion.java b/frontend/core/src/com/gameware/game/states/games/PlayStateUnion.java
index fac9149..a70a923 100644
--- a/frontend/core/src/com/gameware/game/states/games/PlayStateUnion.java
+++ b/frontend/core/src/com/gameware/game/states/games/PlayStateUnion.java
@@ -71,7 +71,7 @@ public abstract class PlayStateUnion extends State {
         // Default font (black color)
         font = new BitmapFont();
         font.setColor(Color.BLACK);
-        font.getData().setScale((float) (Gdx.graphics.getWidth()/GameWare.WIDTH*1.75));
+        font.getData().setScale((float) (Gdx.graphics.getWidth()/GameWare.WIDTH*2.5));
     }
 
 //    Override methods
@@ -139,12 +139,13 @@ public abstract class PlayStateUnion extends State {
         if(this.timeLeftVisible && this.totalGameTime > 0f) {
             sb.begin();
             // Time left
-            this.font.draw(sb, "Time: " + String.valueOf(Math.max(Math.round((this.totalGameTime - this.currentDuration) * 100), 0.00) / 100.0), Gdx.graphics.getWidth() / 40, Gdx.graphics.getHeight() - Gdx.graphics.getHeight() / 40 - Gdx.graphics.getHeight() / 60);
+            this.font.draw(sb, "Time: " + String.valueOf(Math.max(Math.round((this.totalGameTime - this.currentDuration) * 100), 0.00) / 100.0), Gdx.graphics.getWidth() / 40, Gdx.graphics.getHeight() - Gdx.graphics.getHeight() / 20);
             sb.end();
         }
 
         if(this.currentScoreVisible){
             sb.begin();
+            //Score
             this.font.draw(sb, "Score: " + String.valueOf(this.score), Gdx.graphics.getWidth() / 40, Gdx.graphics.getHeight() - Gdx.graphics.getHeight() / 100);
 
             sb.end();
diff --git a/frontend/core/src/com/gameware/game/states/menus/MenuStateUnion.java b/frontend/core/src/com/gameware/game/states/menus/MenuStateUnion.java
index f0ec2f8..e06108f 100644
--- a/frontend/core/src/com/gameware/game/states/menus/MenuStateUnion.java
+++ b/frontend/core/src/com/gameware/game/states/menus/MenuStateUnion.java
@@ -34,9 +34,10 @@ import com.gameware.game.states.State;
 public abstract class MenuStateUnion extends State {
 
     //    Font
-    protected final float fontScale = 3f;
-    protected final float tinierTitleFontBigScale = 1.5f;
-    protected final float titleFontBigScale = 2.5f;
+    protected final float scaleRatio = Float.valueOf(Gdx.graphics.getWidth()) / 1080f;
+    protected final float fontScale = 3f * scaleRatio;
+    protected final float tinierTitleFontBigScale = 1.5f * scaleRatio;
+    protected final float titleFontBigScale = 2.5f * scaleRatio;
 
     //    Spacing
     protected final float spacingLittle = Gdx.graphics.getHeight()/50;
@@ -73,7 +74,10 @@ public abstract class MenuStateUnion extends State {
 
     public MenuStateUnion(GameStateManager gsm){
         super(gsm);
+
+        // Scales the font according to the ratio between the screen width and the default 1080 width
         skin.getFont("font").getData().setScale(fontScale);
+        skin.getFont("font-big").getData().setScale(this.scaleRatio);
 
 //        Add sound effects
         this.checkBoxSound = Gdx.audio.newSound(Gdx.files.internal("sfx/check_box.ogg"));
diff --git a/frontend/core/src/com/gameware/game/states/menus/ViewTournamentState.java b/frontend/core/src/com/gameware/game/states/menus/ViewTournamentState.java
index ce794de..b37ed58 100644
--- a/frontend/core/src/com/gameware/game/states/menus/ViewTournamentState.java
+++ b/frontend/core/src/com/gameware/game/states/menus/ViewTournamentState.java
@@ -139,7 +139,7 @@ public class ViewTournamentState extends MenuStateUnion {
         rootTable.add(innerTable).colspan(2);
         rootTable.row();
         rootTable.add(makeBackBtn()).expand().bottom().left();
-        roundDeadline.setFontScale(0.8f);
+        roundDeadline.setFontScale(0.8f * super.scaleRatio);
         rootTable.add(roundDeadline).expand().bottom().right();
 
         stage.addActor(rootTable);
-- 
GitLab