void Start() { if (lom == null) { lom = this.gameObject.GetComponent <LevelObjectManager>(); } }
public static LevelObjectManager GetInstance() { if(_instance == null) { GameObject gameScreensObject = GameObject.Find("LevelObjectManager") as GameObject; _instance = gameScreensObject.GetComponent<LevelObjectManager>(); } return _instance; }
private void LoadLevelObjects(LevelImporter importer) { List <LevelObject> objects = importer.loadLevel(Resources.Load <TextAsset>(PlayerPrefs.GetInt("CurrentLevel", 0).ToString()).text); LevelObjectManager levelObjectManager = GetComponent <LevelObjectManager>(); LevelsCollection levels = importer.loadMetadata(Resources.Load <TextAsset>("levels").text); LevelsCollection.Level level = levels.levels[PlayerPrefs.GetInt("CurrentLevel", 0)]; levelObjectManager.GridSize = new Vector2Int(level.gridSizeX, level.gridSizeY); for (int i = 0; i < objects.Count; i++) { levelObjectManager.InstantiateLevelObject(objects[i]); } }
void LoadLevel(LevelCompletionInfo completionInfo = default) { if (!IsDone) { screenBlocker = GameObject.Find("ScreenBlocker"); CurrentObjectManager = this; World.SetCurrent(new World(LoadLevelName + ".lv5")); // set the current world PlayMusic(Context); // play the level music LoadingPercentage = 0; // update the percent complete of level layer loading isLoadingLevel = true; int timeRemaining = World.Current.Level.LevelTime; // set the time remaining for the level levelTime = TimeSpan.FromSeconds(timeRemaining); World.Current.LoadSave(completionInfo); // load save information for the current world Player.CurrentPlayer = Assets.Scripts.Game.PlayerEnum.ANYONE; LoadNext(); } }
// Update is called once per frame void Update() { if (dying) { float deathTime = 2.5f; dyingTimer += Time.deltaTime; if (dyingTimer >= deathTime) { LevelObjectManager.ReloadLevel(); // reset the level dying = false; dyingTimer = 0f; } return; // prevent player control when dying. } _ = TileMoveScript; // force update of component PlayerEnum updatingPlayer = PlayerName == "spongebob" ? PlayerEnum.SPONGEBOB : PlayerEnum.PATRICK; bool currentPlayer = (PlayerName == "spongebob" && CurrentPlayer == PlayerEnum.SPONGEBOB) || (PlayerName == "patrick" && CurrentPlayer == PlayerEnum.PATRICK); if (updatingPlayer == swappingPlayer && playerSwapping) // this frame is the update frame after swapping { playerSwapping = false; } if (currentPlayer) { Current = this; if (!IsMoving) { if (Input.GetKey(KeyCode.W)) // forward { WalkToTile(TileX, TileY - 1); rotator.Rotate(SRotation.NORTH); } else if (Input.GetKey(KeyCode.S)) // backward { WalkToTile(TileX, TileY + 1); rotator.Rotate(SRotation.SOUTH); } else if (Input.GetKey(KeyCode.A)) // left { WalkToTile(TileX - 1, TileY); rotator.Rotate(SRotation.WEST); } else if (Input.GetKey(KeyCode.D)) // right { WalkToTile(TileX + 1, TileY); rotator.Rotate(SRotation.EAST); } if (Input.GetKeyDown(KeyCode.Q)) { TileMoveScript.NoClip = !TileMoveScript.NoClip; // no clip toggle } if (Input.GetKeyDown(KeyCode.K)) { KillAllPlayers(); // kill me now } } if (Input.GetKeyDown(KeyCode.Space) && !playerSwapping) { swappingPlayer = CurrentPlayer; switch (CurrentPlayer) // switch current player { case PlayerEnum.SPONGEBOB: CurrentPlayer = PlayerEnum.PATRICK; // patrick break; case PlayerEnum.PATRICK: CurrentPlayer = PlayerEnum.SPONGEBOB; // spongebob break; } SoundLoader.Play("teleport.wav", false); playerSwapping = true; } } }
public void GoToLevel(string levelName) { LevelObjectManager.ChangeLevel(levelName, true); }
public void RestartLevel() => LevelObjectManager.ReloadLevel();
public void SkipLevel() => LevelObjectManager.SignalLevelCompleted(true);
public void ReturnToMap() => LevelObjectManager.SignalLevelCompleted(false);