public void CreateArrayObject() { itemObjs = new ItemOBJ[10]; for (int i = 1; i <= 10; i++) { ItemOBJ item = new ItemOBJ(); item.coin = 1; itemObjs[i - 1] = item; } }
// private const string KeyArray_data = "dataArrayJson"; private void Awake() { if (ins != null && ins != this) { Destroy(this.gameObject); return; } ins = this; DontDestroyOnLoad(ins); _coin = PlayerPrefs.GetInt(Key, 0); _name = PlayerPrefs.GetString(Key, ""); _itemobj = JsonUtility.FromJson <ItemOBJ>(JsonData); if (_itemobj == null) { _itemobj = new ItemOBJ(); } }
//LOAD GAME FROM SAVE FILE public static bool load(LocationsMap locationsMap, UIManager uIManager) { if (!Directory.Exists("Gamesave/")) { return(false); } getObjectsFromResources(); string JsonGameState = ""; string JsonStringLocations = ""; using (StreamReader reader = new StreamReader("Gamesave/save.json")) { JsonGameState = reader.ReadLine(); JsonStringLocations = reader.ReadLine(); } GameStateData gameStateData = JsonUtility.FromJson <GameStateData>(JsonGameState); Locations locations = JsonUtility.FromJson <Locations>(JsonStringLocations); //Set GameState values from data GameState.finishedTutorial = gameStateData.finishedTutorial; foreach (ItemData id in gameStateData.questItemsCollected) { GameState.addToQuestItems((QuestItem)itemListFromResources[id.name]); } //CREATE PLAYER FROM SAVE DATA Player _player = new Player(); _player.health = gameStateData.player.health; _player.maxHealth = gameStateData.player.maxHealth; _player.gold = gameStateData.player.gold; if (gameStateData.player.weapon != string.Empty && gameStateData.player.weapon != "") { _player.weapon = (Weapon)itemListFromResources[gameStateData.player.weapon]; } if (gameStateData.player.weapon != string.Empty && gameStateData.player.shield != "") { _player.shield = (Shield)itemListFromResources[gameStateData.player.shield]; } foreach (ItemData id in gameStateData.player.inventory) { _player.giveItem(itemListFromResources[id.name]); } GameState.player = _player; //EDIT EXISTING LOCATIONS WITH SAVE DATA foreach (LocationData ld in locations.locations) { Location l = locationsMap.getLocation(ld.locationName); l.playerVisited = true; List <ItemOBJ> itemObjs = new List <ItemOBJ>(); l.clearInventory(); foreach (ItemOBJ io in l.items) { GameObject.Destroy(io.gameObject); } l.items.Clear(); l.items.TrimExcess(); foreach (ItemData id in ld.items) { ItemOBJ io = GameObject.Instantiate <ItemOBJ>(itemObjListFromResources[id.name], new Vector3(id.position[0], id.position[1], id.position[2]), Quaternion.identity, l.transform); io.item = itemListFromResources[id.name]; itemObjs.Add(io); } l.items = itemObjs; List <EnemyOBJ> enemyObjs = new List <EnemyOBJ>(); foreach (EnemyOBJ enemyOBJ in l.enemies) { GameObject.Destroy(enemyOBJ.gameObject); } l.enemies = null; foreach (EnemyData ed in ld.enemies) { EnemyOBJ eo = GameObject.Instantiate <EnemyOBJ>(enemyObjListFromResources[ed.name.Split(' ')[0]], new Vector3(ed.position[0], ed.position[1], ed.position[2]), Quaternion.identity, l.transform); eo.name = ed.name; eo.maxHealth = ed.maxHealth; if (ed.weapon != string.Empty && ed.weapon != "") { eo.weapon = (Weapon)itemListFromResources[ed.weapon]; } if (ed.shield != string.Empty && ed.weapon != "") { eo.shield = (Shield)itemListFromResources[ed.shield]; } eo.sprite = characterSprites.GetSprite(ed.sprite); enemyObjs.Add(eo); } l.enemies = enemyObjs.ToArray(); if (l.trader != null) { GameObject.Destroy(l.trader.gameObject); l.trader = null; TraderData td = ld.trader; TraderOBJ to = GameObject.Instantiate <TraderOBJ>(traderObjListFromResources[td.name.Split(' ')[0]], new Vector3(td.position[0], td.position[1], td.position[2]), Quaternion.identity, l.transform); to.name = td.name; to.maxHealth = td.maxHealth; if (td.weapon != string.Empty && td.weapon != "") { to.weapon = (Weapon)itemListFromResources[td.weapon]; } to.sprite = characterSprites.GetSprite(td.sprite); to.trader.gold = td.gold; foreach (ItemData id in td.stock) { to.stock.Add(itemListFromResources[id.name]); } l.trader = to; } l.makeLocation(true, true); l.checkAllDead(); } //Update Scene locationsMap.moveFromLoad(gameStateData.currentLocation); GameState.currentLocation = locationsMap.getLocation(); //Update player UI uIManager.updatePlayerHealth(_player); uIManager.clearInventory(); foreach (Item item in _player.getInventoryItems()) { uIManager.addToPlayerInventory(item); } if (_player.weapon != null) { uIManager.addToEquiped(_player.weapon); } if (_player.shield != null) { uIManager.addToEquiped(_player.shield); } foreach (QuestItem qi in GameState.questItemsCollected) { uIManager.UpdateObjectiveText(qi); } uIManager.updateGold(); uIManager.UpdateMinimap(GameState.currentLocation.name); return(true); }