Coverage Summary for Class: SaveManager (com.mygdx.game.Managers)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| SaveManager | 100% (1/1) | 75% (3/4) | 97.7% (42/43) |
1 package com.mygdx.game.Managers; 2 3 import com.badlogic.gdx.Gdx; 4 import com.badlogic.gdx.Preferences; 5 import com.mygdx.game.Components.Pirate; 6 import com.mygdx.game.Components.Transform; 7 import com.mygdx.game.Entitys.College; 8 import com.mygdx.game.Entitys.Ship; 9 10 import java.util.ArrayList; 11 12 /** 13 * Added for assessment 2 14 * Manges the saving of the game 15 */ 16 public final class SaveManager { 17 static Preferences prefs; 18 19 /** 20 * Added for assessment 2 21 * Saves the state of the game. Added for assessment 2 22 */ 23 public static void SaveGame(){ 24 prefs = Gdx.app.getPreferences("pirate/GameSave_game_1"); 25 prefs.putString("Difficulty", GameManager.getSettings().name); 26 ArrayList<Ship> ships = GameManager.getShips(); 27 // save the stats of each ship where the first one is the player 28 for (int i = 0; i < ships.size(); i++) { 29 Ship ship = ships.get(i); 30 prefs.putFloat("ship"+i+"X", ship.getPosition().x); 31 prefs.putFloat("ship"+i+"Y", ship.getPosition().y); 32 prefs.putFloat("ship" + i + "H", ship.getHealth()); 33 prefs.putInteger("ship" + i + "Pl", ship.getPlunder()); 34 prefs.putInteger("ship" + i + "Po", ship.getPoints()); 35 prefs.putInteger("ship" + i + "A", ship.getComponent(Pirate.class).getAmmo()); 36 prefs.putInteger("ship" + "F", ship.getComponent(Pirate.class).getFaction().id); 37 } 38 ArrayList<College> colleges = GameManager.getColleges(); 39 //saves whether each college is alive or not 40 for (College college : colleges) { 41 prefs.putBoolean(college.f.id + "Alive", college.isAlive()); 42 } 43 prefs.flush(); 44 45 } 46 47 /** 48 * Added for assessment 2 49 * loads the preferences file and sets the difficulty of the saved game 50 */ 51 public static void LoadGame(){ 52 prefs = Gdx.app.getPreferences("pirate/GameSave_game_1"); 53 String diff = prefs.getString("Difficulty", "Regular"); 54 GameManager.changeDifficulty(diff); 55 56 } 57 /** 58 * Added for assessment 2 59 * loads the state of the ships and colleges and sets the current quest 60 */ 61 public static void SpawnGame(){ 62 ArrayList<Ship> shipsAll = GameManager.getShips(); 63 for (int i = 0; i< shipsAll.size(); i++){ 64 Ship ship = shipsAll.get(i); 65 float shipX = prefs.getFloat("ship" + i + "X", ship.getPosition().x); 66 float shipY = prefs.getFloat("ship" + i + "Y", ship.getPosition().y); 67 float shipH = prefs.getFloat("ship" + i + "H", ship.getHealth()); 68 int shipP = prefs.getInteger("ship" + i + "Pl", ship.getPlunder()); 69 int shipPo = prefs.getInteger("ship" + i + "Po", ship.getPoints()); 70 int shipA = prefs.getInteger("ship" + i + "A", ship.getComponent(Pirate.class).getAmmo()); 71 int shipF = prefs.getInteger("ship" + i + "F", ship.getComponent(Pirate.class).getFaction().id); 72 73 74 ship.getComponent(Pirate.class).addPlunder(shipP- ship.getPlunder() ); 75 ship.getComponent(Pirate.class).setAmmo(shipA); 76 ship.getComponent(Transform.class).setPosition(shipX, shipY); 77 ship.getComponent(Pirate.class).takeDamage(ship.getHealth() - shipH); 78 ship.getComponent(Pirate.class).setFactionId(shipF); 79 ship.getComponent(Pirate.class).addPoints(shipPo - ship.getPoints()); 80 81 } 82 ArrayList<College> Colleges = GameManager.getColleges(); 83 for (College college : Colleges) { 84 boolean isAlive = prefs.getBoolean(college.f.id+"Alive", true); 85 if (!isAlive) { 86 college.killThisCollege(null); 87 } 88 } 89 } 90 } 91