Example #1
0
 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;
     }
 }
Example #2
0
    // 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();
        }
    }
Example #3
0
    //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);
    }