Exemple #1
0
    /// <summary>Saves the current grid as a json file.</summary>
    public void SaveGrid()
    {
        if (grid != null)
        {
            int[] parameters = gridParams.GetParamaters();

            List <TileInfo> tiles = new List <TileInfo>();
            foreach (EditorList row in grid)
            {
                foreach (EditorTile tile in row.list)
                {
                    if (tile.Type != TileType.Standard || tile.GetVariant() != 0)
                    {
                        tiles.Add(tile.GetInfo());
                    }
                }
            }

            List <UnitInfo> spawns = new List <UnitInfo>();
            spawns.Add(player.GetInfo());
            foreach (EditorUnit decoy in decoyBotSpawns)
            {
                spawns.Add(decoy.GetInfo());
            }

            //Create Turn Order dictionary
            Dictionary <UnitType, List <UnitInfo> > turnOrder = new Dictionary <UnitType, List <UnitInfo> >();
            for (int i = 2; i < 10; i++)
            {
                UnitType        type = (UnitType)i;
                List <UnitInfo> list = new List <UnitInfo>();
                turnOrder.Add(type, list);
            }
            //Add enemies to their specific list in the turn order
            foreach (EditorUnit character in enemySpawns)
            {
                turnOrder[character.Type].Add(character.GetInfo());
            }

            //Add enemy lists into spawns based on their turn order
            int[] types = { 4, 2, 9, 3, 5, 6, 8, 7 };
            foreach (int index in types)
            {
                UnitType type = (UnitType)index;
                spawns.AddRange(turnOrder[type]);
            }

            List <LevelObjectInfo> objects = new List <LevelObjectInfo>();
            foreach (EditorLevelObject levelObject in levelObjects)
            {
                objects.Add(levelObject.GetInfo());
            }

            GridInfo info          = new GridInfo(savefileName, gridParams.type, parameters, tiles, spawns, objects);
            string   finalFileName = JsonSaveLoad.SaveFile <GridInfo>(FolderPath.Grids, info, savefileName, false, true);
            Debug.Log("Saved new Grid, [" + finalFileName + "]");
            UpdateLoadableFiles();
            currentGridFile = savefileName;
        }
        else
        {
            Debug.LogWarning("WARNING: Trying to save empty grid!");
        }
    }