public void LoadMap(string name = null, bool preset = true) { name = name ?? m_levelData.Level.SceneName; string fullPath = preset ? this.directory + name : Path.Combine(Application.persistentDataPath, name); SerializedLevel serializedLevel; try { var jsonTextFile = Resources.Load <TextAsset>(fullPath).ToString(); serializedLevel = JsonUtility.FromJson <SerializedLevel>(jsonTextFile); } catch (System.Exception e) { Debug.LogWarning($"An error occurred when trying to load map '{name}':" + $"\n\t{e}"); Debug.Log("Creating Empty level"); serializedLevel = new SerializedLevel(); serializedLevel.SetPlot(new SerializedPlot(new SerializedMapObjects(), JsonUtility.FromJson <SerializedGrid>(File.ReadAllText(this.directory + "_defaultGrid.json")))); } Debug.Log("Loading " + name); m_plotIO.LoadPlot(serializedLevel.serializedPlot); //Animals loaded after map to avoid path finding issues this.PresetMap = serializedLevel; Reload(); }
public IEnumerator DownloadLevel(string url, JSONObject jsonObject) { var www = new WWW(url); yield return(www); if (www.isDone && www.text != "") { jsonObject = new JSONObject(www.text); try { LoadedLevels.Clear(); var levelArray = jsonObject.GetField("levelArray").list; foreach (var level in levelArray) { LoadedLevels.Add(SerializedLevel.FromJson(level)); } Debug.Log("Number of loaded levels: " + LoadedLevels.Count); PopulateToGrid(); InvokeLevelsLoaded(true); } catch { LoadDefaultLevels(); } } //NGUIDebug.Log("Levels Loaded:" + jsonObject); }
public void InitFromFile(SerializedLevel level) { Serialized = level; Cells.Clear(); Width = level.Width; Height = level.Height; CurrentMinY = 0; CurrentMaxY = Height; Random.seed = level.Seed; Debug.Log("Add cells"); foreach (var newCell in level.SpecialCells) { AddCell(newCell.x, newCell.y, newCell.Copy); } TilesFactory.Instance.NumberOfColors = level.NumberOfColors; Gamefield.GetComponent <Gamefield>().GameMode = GameModeFactory.CreateGameMode(level.GameMode); Gamefield.GetComponent <Gamefield>().GameMode.Init(Gamefield.GetComponent <Gamefield>()); InitRandom(); }
public void SaveMap(string name = null, bool preset = true) { name = name ?? LevelOnPlay; name = name + ".json"; string fullPath = preset ? "Assets/Resources/" + this.directory + name : Path.Combine(Application.persistentDataPath, name); Debug.Log("Saving Grid to " + fullPath); if (File.Exists(fullPath)) { Debug.Log("Overwriting file at " + fullPath); } SerializedLevel level; try { level = new SerializedLevel(); level.SetPopulations(m_populationManager); level.SetPlot(m_plotIO.SavePlot()); } catch { Debug.LogError("Serialization error, NOT saved to protect existing saves"); return; } using (StreamWriter streamWriter = new StreamWriter(fullPath)) streamWriter.Write(JsonUtility.ToJson(level)); Debug.Log("Grid Saved to: " + fullPath); }
public override CSSerializedObject Save() { var res = new SerializedLevel(); res.water = PlantsManager.Instance.currentResource["water"]; return(res); }
private void WriteToFile(string path, SerializedLevel level) { using (StreamWriter streamWriter = new StreamWriter(path)) { streamWriter.Write(JsonUtility.ToJson(level)); } Debug.Log("Grid Saved to: " + path); }
public void StartGame(SerializedLevel level = null) { Level.Reset(); Player.Instance.LastPlayedLevel = level; CombinationDestroyed -= PointSystem.CountForCombinations; CombinationDestroyed += PointSystem.CountForCombinations; SwitchStateTo(InitState); }
private SerializedLevel SaveLevel() { SerializedLevel level = new SerializedLevel(); // Serialize plot level.SetPopulations(this.populationManager); // Serialize Animals level.SetPlot(this.plotIO.SavePlot()); return(level); }
public void LoadDefaultLevels() { var jsonObject = new JSONObject(LevelFile.text); var levelArray = jsonObject.GetField("levelArray").list; foreach (var level in levelArray) { LoadedLevels.Add(SerializedLevel.FromJson(level)); } FireLevelsAreReady(); }
public void Init(int levelIndex) { Index = levelIndex; info = Player.Instance.Info(Index); level = MainMenu.Instance.LoadedLevels.First(x => x.Name == (Index + 1).ToString(CultureInfo.InvariantCulture)); LevelNumberTitle.text = LocalizationStrings.GetString(LevelNumberString, info.Number); BestScoreLabel.text = LocalizationStrings.GetString(BestScoreString, info.BestScore); TaskLabel.text = LocalizationStrings.GetString(TaskString, GameModeToString.GetString(GameModeFactory.CreateGameMode(level.GameMode))); }
public void LoadDefaultLevels() { var jsonObject = new JSONObject(Levels.text); var levelArray = jsonObject.GetField("levelArray").list; foreach (var level in levelArray) { LoadedLevels.Add(SerializedLevel.FromJson(level)); } PopulateToGrid(); InvokeLevelsLoaded(true); }
public static SerializedLevel FromJson(JSONObject jsonObject) { Debug.Log("Print: \n" + jsonObject); var serializedLevel = new SerializedLevel(); serializedLevel.Name = jsonObject.GetField("name").str; serializedLevel.Width = (int) jsonObject.GetField("width").n; serializedLevel.Height = (int) jsonObject.GetField("height").n; serializedLevel.NumberOfColors = jsonObject.HasField("numberOfColors") ? (int) jsonObject.GetField("numberOfColors").n : 6; serializedLevel.Seed = jsonObject.HasField("seed") ? (int) jsonObject.GetField("seed").n : 1; serializedLevel.GameMode = GameModeDescription.CreateFromJson(jsonObject.GetField("gameMode")); var array = jsonObject.GetField("map").list; foreach (var tile in array) { var x = array.IndexOf(tile)%serializedLevel.Width; var y = serializedLevel.Height - (array.IndexOf(tile)/serializedLevel.Width) - 1; var tileType = (int) tile.n; switch (tileType) { case (0): //empty break; case (2): // place serializedLevel.SpecialCells.Add(new Cell(x, y) {HasPlace = true}); break; case (3): //counter serializedLevel.SpecialCells.Add(new Cell(x, y) {HasCounter = true}); break; default: // block serializedLevel.SpecialCells.Add(new Cell(x, y, CellTypes.Block)); break; } } serializedLevel.Stages = CreateStagesFromJsonObject(jsonObject.GetField("stages")); serializedLevel.Star1Score = jsonObject.HasField("Star1Score") ? (int) jsonObject.GetField("Star1Score").n : 1000; serializedLevel.Star2Score = jsonObject.HasField("Star2Score") ? (int) jsonObject.GetField("Star2Score").n : 2000; serializedLevel.Star3Score = jsonObject.HasField("Star3Score") ? (int) jsonObject.GetField("Star3Score").n : 3000; return serializedLevel; }
/// <summary> /// Clear all placed animals. Reinitializing population manager isn't necessary at the moment /// </summary> public void ClearAnimals() { SerializedLevel level = this.SaveLevel(); level.serializedPopulations = new SerializedPopulation[0]; this.presetMap = level; foreach (Population population in this.populationManager.Populations) { population.RemoveAll(); } this.populationManager.Initialize(); }
// no idea what these two do public void ClearAnimals() { SerializedLevel level = new SerializedLevel(); level.SetPopulations(m_populationManager); level.SetPlot(m_plotIO.SavePlot()); level.serializedPopulations = new SerializedPopulation[0]; this.PresetMap = level; foreach (Population population in m_populationManager.Populations) { population.RemoveAll(); } m_populationManager.Initialize(); }
public void Show(SerializedLevel level) { CurrentLevel = level; CurrentLevelInfo = Player.Instance.GetLevelInfo(level.Name); if (CurrentLevelInfo.IsCompleted) { var numberOfStars = CurrentLevel.NumberOfStarForScore(CurrentLevelInfo.BestScore); if (numberOfStars >= 1) { FirstStar.Show(true); if (numberOfStars == 1) { StarTarget.text = LocalizationStrings.GetString(Star2TargetString, CurrentLevel.Star2Score); } } if (numberOfStars >= 2) { SecondStar.Show(true); if (numberOfStars == 2) { StarTarget.text = LocalizationStrings.GetString(Star3TargetString, CurrentLevel.Star3Score); } } if (numberOfStars >= 3) { ThirdStar.Show(true); if (numberOfStars == 3) { StarTarget.text = string.Empty; } } } else { FirstStar.Show(false); SecondStar.Show(false); ThirdStar.Show(false); StarTarget.text = LocalizationStrings.GetString(Star1TargetString, CurrentLevel.Star1Score); } Show(); }
public void Show(int numberOfTurnsLeft, int score, int bestScore, LevelInfo levelInfo, SerializedLevel level) { TempScore = 0; TargetScore = score; LevelInfo = levelInfo; Level = level; TurnsLeft.text = LocalizationStrings.GetString(TurnsLeftString, numberOfTurnsLeft); Score.text = LocalizationStrings.GetString(ScoreString, 0); BestScore.text = LocalizationStrings.GetString(BestScoreString, bestScore); FirstStar.Show(false); SecondStar.Show(false); ThirdStar.Show(false); Show(); }
private void LoadFromFile(string fullPath) { SerializedLevel serializedLevel; try { var jsonTextFile = Resources.Load <TextAsset>(fullPath).ToString(); serializedLevel = JsonUtility.FromJson <SerializedLevel>(jsonTextFile); } catch { Debug.LogWarning("No map save found for this scene, create a map using map designer or check your spelling"); Debug.Log("Creating Empty level"); serializedLevel = new SerializedLevel(); serializedLevel.SetPlot(new SerializedPlot(new SerializedMapObjects(), this.CreateDefaultGrid())); } this.plotIO.LoadPlot(serializedLevel.serializedPlot); //Animals loaded after map to avoid path finding issues this.presetMap = serializedLevel; Reload(); }
public void RefreshNumberOfStars() { //if (Index >= UI.Instance.GuiLevelList.LoadedLevels.Count) // return; var level = new SerializedLevel(); // UI.Instance.GuiLevelList.LoadedLevels[Index]; //Debug.Log("PL: "+Player.Instance); //Debug.Log("Level name: "+level.Name); var levelInfo = Player.Instance.GetLevelInfo(level.Name); if (levelInfo != null && levelInfo.IsCompleted) { var numberOfStars = level.NumberOfStarForScore(levelInfo.BestScore); SetStars(numberOfStars); } else { FirstStar.SetActive(false); SecondStar.SetActive(false); ThirdStar.SetActive(false); } }
public void TryStartLevel(SerializedLevel level=null) { // DisableAllPanels(); bool canStartLevel = Player.Instance.Lifes.HasLife; if (canStartLevel) { DisableAllPanels(); GuiGameplay.Show(); Gamefield.gameObject.SetActive(true); Gamefield.StartGame(level); } else { //TODO show buy life popup; BuyLivesPopup.Show(); } }
public void ShowStartLevelPopup(SerializedLevel levelToLoad) { StartLevelPopup.Show(levelToLoad); }
public void InitFromFile(SerializedLevel level) { Serialized = level; Cells.Clear(); Width = level.Width; Height = level.Height; CurrentMinY = 0; CurrentMaxY = Height; Random.seed = level.Seed; //BUG change 480 for other resolutiion ChuzzleSize = new Vector3(480, 480, 0)/Width; if (ChuzzleSize.x > 80) { ChuzzleSize = new Vector3(80,80,0); } Debug.Log("Add cells"); foreach (var newCell in level.SpecialCells) { AddCell(newCell.x, newCell.y, newCell.Copy); } NumberOfColors = level.NumberOfColors; Gamefield.GetComponent<Gamefield>().GameMode = GameModeFactory.CreateGameMode(level.GameMode); Gamefield.GetComponent<Gamefield>().GameMode.Init(Gamefield.GetComponent<Gamefield>()); InitRandom(); }
public void StartGame(SerializedLevel level = null) { LastLoadedLevel = level; _currentState = new InitState(this); _currentState.OnEnter(); }
public static Window GamefieldScreen(SerializedLevel level) { instance.Gamefield.gameObject.SetActive(true); instance.Gamefield.StartGame(level); return(instance.GuiGameplay); }
public static SerializedLevel FromJson(JSONObject jsonObject) { Debug.Log("Print: \n" + jsonObject); var serializedLevel = new SerializedLevel(); serializedLevel.Name = jsonObject.GetField("name").str; serializedLevel.Width = (int)jsonObject.GetField("width").n; serializedLevel.Height = (int)jsonObject.GetField("height").n; serializedLevel.NumberOfColors = jsonObject.HasField("numberOfColors") ? (int)jsonObject.GetField("numberOfColors").n : 6; serializedLevel.Seed = jsonObject.HasField("seed") ? (int)jsonObject.GetField("seed").n : -1; if (serializedLevel.Seed == -1) { serializedLevel.Seed = Environment.TickCount; } serializedLevel.GameMode = GameModeDescription.CreateFromJson(jsonObject.GetField("gameMode")); var array = jsonObject.GetField("map").list; foreach (var tile in array) { var x = array.IndexOf(tile) % serializedLevel.Width; var y = serializedLevel.Height - (array.IndexOf(tile) / serializedLevel.Width) - 1; var tileType = (int)tile.n; switch (tileType) { case (0): //empty break; case (2): // place serializedLevel.SpecialCells.Add(new Cell(x, y) { CreationType = CreationType.Place }); break; case (3): //counter serializedLevel.SpecialCells.Add(new Cell(x, y) { CreationType = CreationType.Counter }); break; case (4): //lock serializedLevel.SpecialCells.Add(new Cell(x, y) { CreationType = CreationType.Lock }); break; case (5): //two time serializedLevel.SpecialCells.Add(new Cell(x, y) { CreationType = CreationType.TwoTimes }); break; case (6): //invader serializedLevel.SpecialCells.Add(new Cell(x, y) { CreationType = CreationType.Invader }); break; default: // block serializedLevel.SpecialCells.Add(new Cell(x, y, CellTypes.Block)); break; } } serializedLevel.Stages = CreateStagesFromJsonObject(jsonObject.GetField("stages")); serializedLevel.Star1Score = jsonObject.HasField("Star1Score") ? (int)jsonObject.GetField("Star1Score").n : 1000; serializedLevel.Star2Score = jsonObject.HasField("Star2Score") ? (int)jsonObject.GetField("Star2Score").n : 2000; serializedLevel.Star3Score = jsonObject.HasField("Star3Score") ? (int)jsonObject.GetField("Star3Score").n : 3000; return(serializedLevel); }