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