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