private IEnumerator LevelUpdate() { while (_isPlaying) { switch (CurrentState) { case LevelState.Idle: Debug.Log("Idle State"); break; case LevelState.EnemyTurn: yield return(StartCoroutine(EnemyTurn())); break; case LevelState.PlayerTurn: if (GameObject.Find("GridManager").GetComponent <GridManager>() != null) { GameObject.Find("GridManager").GetComponent <GridManager>().HideInteratableVisual(); } yield return(StartCoroutine(PlayerTurn())); if (GameObject.Find("GridManager").GetComponent <GridManager>() != null) { GameObject.Find("GridManager").GetComponent <GridManager>().HideInteratableVisual(); } foreach (Transform item in GameObject.Find("SpellBar").transform) { item.GetChild(1).GetComponent <Toggle>().isOn = false; } yield return(new WaitForSeconds(0.1f)); if (GameObject.Find("GridManager").GetComponent <GridManager>() != null) { GameObject.Find("GridManager").GetComponent <GridManager>().HideInteratableVisual(); } break; // HideInteratableVisual(); case LevelState.LevelEnd: //UIManager.Set Debug.Log("Level Completed, go to endScreen"); OnLevelEnd?.Invoke(); _isPlaying = false; break; default: throw new ArgumentOutOfRangeException(); } yield return(new WaitForEndOfFrame()); } yield return(null); }
private void Awake() { if (onLevelBegin == null) { onLevelBegin = new OnLevelBegin(); } if (onLevelLose == null) { onLevelLose = new OnLevelLose(); } if (onLevelEnd == null) { onLevelEnd = new OnLevelEnd(); } }
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { OnLevelEnd?.Invoke(); if (loadPreviousLevel) { levelAnim.SetTrigger("PreviousLevel"); } else { levelAnim.SetTrigger("EndLevel"); } } }
private void TouchHandler_OnTouchUp() { IsWin = Ground.EndPosition.x > AimPlatform.transform.position.x && Ground.EndPosition.x < AimPlatform.EndPosition.x; Score += Convert.ToInt32(IsWin); Score += Convert.ToInt32(IsGroundInCenter(Ground.EndPosition)); if (!IsWin) { AimPlatform.DisableCollider(); } OnLevelEnd?.Invoke(this, IsWin); TouchHandler.OnTouchUp -= TouchHandler_OnTouchUp; }
public void GenerateLevelEvents(GameTime gameTime) { // only generate events every 2 seconds if (_startGameTime == null) { _startGameTime = gameTime.TotalGameTime; } // nothing to do until tick time if (gameTime.TotalGameTime - _startGameTime < TickTimeSpan) { return; } _startGameTime = gameTime.TotalGameTime; foreach (var e in _currentLevel[_currentLevelRow]) { switch (e) { case LevelEvents.GenerateEnemies g: OnGenerateEnemies?.Invoke(this, g); break; case LevelEvents.GenerateTurret g: OnGenerateTurret?.Invoke(this, g); break; case LevelEvents.StartLevel s: OnLevelStart?.Invoke(this, s); break; case LevelEvents.EndLevel s: OnLevelEnd?.Invoke(this, s); break; case LevelEvents.NoRowEvent n: OnLevelNoRowEvent?.Invoke(this, n); break; } } _currentLevelRow++; }
/// <summary> /// Ends the current level. /// </summary> public static void EndCurrentLevel() { OnLevelEnd?.Invoke(currentLevelIndex); }
public void EndLevel() { AudioManager.Instance.Play(AudioClipName.Win); OnLevelEnd?.Invoke(); }
public void LevelEnd() { OnLevelEnd?.Invoke(); }