// Path: workspace/Angr/src/fi/hbp/angr/logic/GameState.java
// public class GameState {
//     /**
//      * Grenade counter.
//      */
//     public class Grenades {
//         /**
//          * Amount of grenades at the beginning.
//          */
//         public final int originalCount;
//         /**
//          * Current count.
//          */
//         private int count;
// 
//         /**
//          * Constructor for Grenades class.
//          * @param amount Amount of grenades available.
//          */
//         public Grenades(int amount) {
//             this.originalCount = amount;
//             this.count = amount;
//         }
// 
//         /**
//          * Decrement amount of grenades by one.
//          */
//         public void decrement() {
//             if (count > 0)
//                 count--;
//         }
// 
//         /**
//          * Returns current grenade count.
//          * @return current grenade count.
//          */
//         public int getCount() {
//             return count;
//         }
//     }
// 
//     /**
//      * Game score.
//      */
//     private int score = 0;
//     /**
//      * Badge scaling.
//      */
//     private int badgeScale = 1;
//     /**
//      * Enemies left in this map.
//      */
//     private int enemyCount = 0;
//     /**
//      * Grenade counter.
//      */
//     private Grenades grenades = new Grenades(0);
//     /**
//      * All game stats calculated true/false.
//      */
//     private boolean gameFinalized = false;
// 
//     /**
//      * Initialize game state object.
//      * @param badgeScale points needed to achieve one badge.
//      * @param enemies enemy count on the current level at the beginning of the game.
//      * @param grenades amount of grenades available to clear the current level.
//      */
//     public void init(int badgeScale, int enemies, int grenades) {
//         if (gameFinalized == true)
//             return;
// 
//         this.badgeScale = (badgeScale > 0) ? badgeScale : 1;
//         this.enemyCount = enemies;
//         this.grenades = new Grenades(grenades);
//     }
// 
//     /**
//      * Add points achieved by the player.
//      * @param value point added.
//      * @param enemyDestroyed was enemy destroyed when points were achieved?
//      */
//     public void addPoints(int value, boolean enemyDestroyed) {
//         if (gameFinalized)
//             return;
// 
//         score += value;
//         if (enemyDestroyed)
//             enemyCount--;
//     }
// 
//     /**
//      * Get current score status.
//      * @return score counter value.
//      */
//     public int getScore() {
//         return score;
//     }
// 
//     public Grenades getGrenades() {
//         return this.grenades;
//     }
// 
//     /**
//      * Get number of achieved badges.
//      * @return number of badges between 0..3,
//      */
//     public int getBadges() {
//         if (enemyCount == 0)
//             return MathUtils.clamp(score / badgeScale, 0, 3);
//         return 0;
//     }
// 
//     /**
//      * Update statuses.
//      * @return true if game continues, false if game is end.
//      */
//     public boolean update() {
//         if (gameFinalized)
//             return false;
// 
//         if (enemyCount <= 0)
//             return false;
// 
//         if (grenades.getCount() == 0)
//             return false;
// 
//         return true;
//     }
// 
//     /**
//      * Count final score and return level cleared status.
//      * @return true if player cleared the level.
//      */
//     public boolean countFinalScore() {
//         if (gameFinalized == false) {
//             gameFinalized = true;
// 
//             score += grenades.getCount() * 150;
//         }
// 
//         return enemyCount == 0;
//     }
// 
//     @Override
//     public String toString() {
//         return "Score: " + score;
//     }
// }


import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import fi.hbp.angr.logic.GameState;
package fi.hbp.angr.hud;



/**
 * HudScoreCounter used to show current game score status.
 */
public class HudGameStateDisplay implements Hud.HudActor {
    private BitmapFont font;
// Path: workspace/Angr/src/fi/hbp/angr/logic/GameState.java
// public class GameState {
//     /**
//      * Grenade counter.
//      */
//     public class Grenades {
//         /**
//          * Amount of grenades at the beginning.
//          */
//         public final int originalCount;
//         /**
//          * Current count.
//          */
//         private int count;
// 
//         /**
//          * Constructor for Grenades class.
//          * @param amount Amount of grenades available.
//          */
//         public Grenades(int amount) {
//             this.originalCount = amount;
//             this.count = amount;
//         }
// 
//         /**
//          * Decrement amount of grenades by one.
//          */
//         public void decrement() {
//             if (count > 0)
//                 count--;
//         }
// 
//         /**
//          * Returns current grenade count.
//          * @return current grenade count.
//          */
//         public int getCount() {
//             return count;
//         }
//     }
// 
//     /**
//      * Game score.
//      */
//     private int score = 0;
//     /**
//      * Badge scaling.
//      */
//     private int badgeScale = 1;
//     /**
//      * Enemies left in this map.
//      */
//     private int enemyCount = 0;
//     /**
//      * Grenade counter.
//      */
//     private Grenades grenades = new Grenades(0);
//     /**
//      * All game stats calculated true/false.
//      */
//     private boolean gameFinalized = false;
// 
//     /**
//      * Initialize game state object.
//      * @param badgeScale points needed to achieve one badge.
//      * @param enemies enemy count on the current level at the beginning of the game.
//      * @param grenades amount of grenades available to clear the current level.
//      */
//     public void init(int badgeScale, int enemies, int grenades) {
//         if (gameFinalized == true)
//             return;
// 
//         this.badgeScale = (badgeScale > 0) ? badgeScale : 1;
//         this.enemyCount = enemies;
//         this.grenades = new Grenades(grenades);
//     }
// 
//     /**
//      * Add points achieved by the player.
//      * @param value point added.
//      * @param enemyDestroyed was enemy destroyed when points were achieved?
//      */
//     public void addPoints(int value, boolean enemyDestroyed) {
//         if (gameFinalized)
//             return;
// 
//         score += value;
//         if (enemyDestroyed)
//             enemyCount--;
//     }
// 
//     /**
//      * Get current score status.
//      * @return score counter value.
//      */
//     public int getScore() {
//         return score;
//     }
// 
//     public Grenades getGrenades() {
//         return this.grenades;
//     }
// 
//     /**
//      * Get number of achieved badges.
//      * @return number of badges between 0..3,
//      */
//     public int getBadges() {
//         if (enemyCount == 0)
//             return MathUtils.clamp(score / badgeScale, 0, 3);
//         return 0;
//     }
// 
//     /**
//      * Update statuses.
//      * @return true if game continues, false if game is end.
//      */
//     public boolean update() {
//         if (gameFinalized)
//             return false;
// 
//         if (enemyCount <= 0)
//             return false;
// 
//         if (grenades.getCount() == 0)
//             return false;
// 
//         return true;
//     }
// 
//     /**
//      * Count final score and return level cleared status.
//      * @return true if player cleared the level.
//      */
//     public boolean countFinalScore() {
//         if (gameFinalized == false) {
//             gameFinalized = true;
// 
//             score += grenades.getCount() * 150;
//         }
// 
//         return enemyCount == 0;
//     }
// 
//     @Override
//     public String toString() {
//         return "Score: " + score;
//     }
// }


// Path: workspace/Angr/src/fi/hbp/angr/hud/HudGameStateDisplay.java
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import fi.hbp.angr.logic.GameState;

package fi.hbp.angr.hud;



/**
 * HudScoreCounter used to show current game score status.
 */
public class HudGameStateDisplay implements Hud.HudActor {
    private BitmapFont font;
    private final GameState gameState;