public void LoadGame(string loadName)
    {
        if (File.Exists(Application.persistentDataPath + "/" + loadName + "/GameControllerSave.save"))
        {
            BinaryFormatter    bf   = new BinaryFormatter();
            FileStream         file = File.Open(Application.persistentDataPath + "/" + loadName + "/GameControllerSave.save", FileMode.Open);
            GameControllerSave save = (GameControllerSave)bf.Deserialize(file);
            file.Close();

            //Reassign wariables here
            //Resource section
            mResources.Clear();
            for (int i = 0; i < save.resourceNames.Count; i++)
            {
                mResources.Add(save.resourceNames[i], save.resourceValues[i]);
            }
            //Gamecontroller section
            ItemsToSell.Clear();
            ItemsToSell.AddRange(save.itemsToSell);
            mGoldAmount        = save.goldAmount;
            mFoodAmount        = save.foodAmount;
            foodUpdateTimer    = save.foodUpdateTimer;
            foodUpdateTimerMax = save.foodUpdateTimerMax;
            DiscoverGoldCost   = save.DiscoverCost;
        }
        else
        {
            Debug.Log("No Gamecontroller save found");
        }
    }
    public void SaveGame(string saveName)
    {
        GameControllerSave save = CreateSaveGameObject();
        BinaryFormatter    bf   = new BinaryFormatter();
        FileStream         file = File.Create(Application.persistentDataPath + "/" + saveName + "/GameControllerSave.save");

        bf.Serialize(file, save);
        file.Close();

        Debug.Log("Saved Game Controller...");
    }
    //Saved Game
    private GameControllerSave CreateSaveGameObject()
    {
        GameControllerSave save = new GameControllerSave();

        //assign wariables
        //Resource section
        save.resourceNames.AddRange(mResources.Keys);
        save.resourceValues.AddRange(mResources.Values);

        //Gamecontroller section
        save.itemsToSell.AddRange(ItemsToSell);
        save.goldAmount         = mGoldAmount;
        save.foodAmount         = mFoodAmount;
        save.foodUpdateTimer    = foodUpdateTimer;
        save.foodUpdateTimerMax = foodUpdateTimerMax;

        save.DiscoverCost = DiscoverGoldCost;

        return(save);
    }