void SpawnBomb(Player player, int index) { bool canPlaceBomb = player.CurrentBombCount > 0; if (player.RemoteControlTimer > 0.0f) { canPlaceBomb = !HasActiveBomb(player.ID); } if (canPlaceBomb) { //Install bomb Vector3 spawnPos = GetSpawnPos(index); GameObject bombObj = Instantiate(BombPrefab, spawnPos, Quaternion.identity) as GameObject; CurrentLevelData.AddMapObject(bombObj, index, LevelData.ElementType.Bomb); Bomb bomb = new Bomb(); bomb.transform = bombObj.transform; bomb.PlayerID = player.ID; bomb.Index = index; bomb.Strength = player.BombStrength; newlyAddedBombs.Add(bomb); activeBombs.Add(bomb); UpdateBombCounter(player, -1); } }
void SaveScene() { try { GameObject levelDataObj = new GameObject("LevelData"); LevelData levelData = levelDataObj.AddComponent <LevelData>(); for (int i = 0; i < mapObjectList.Count; i++) { //If it's spawn point don't add it to the level data. if (LevelMap[mapObjectList[i].index] == (int)LevelData.ElementType.SpawnPoint) { LevelMap[mapObjectList[i].index] = 0; continue; } levelData.AddMapObject(mapObjectList[i].obj, mapObjectList[i].index); } levelData.LevelMap = LevelMap; //Save the .unity scen file string savePath = EditorUtility.SaveFilePanelInProject("Save Scene", "Level1", "unity", "saves the current changes in new scene"); EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene(), savePath); } catch (System.Exception e) { Debug.LogErrorFormat("Error while trying to save scene, Message : {0}", e.Message); } }