private void EnterSub() { Debug.Log("Enter Sub"); MMGameEvent.Trigger("Save"); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.LevelEnd); LoadingSceneManager.LoadScene("base"); }
/// <summary> /// Waits for a short time and then loads the specified level /// </summary> /// <returns>The level co.</returns> /// <param name="levelName">Level name.</param> protected override IEnumerator GotoLevelCo(string levelName, bool fadeOut = true) { if (Players != null && Players.Count > 0) { foreach (Character player in Players) { player.Disable(); } } if (fadeOut) { if (Time.timeScale > 0.0f) { yield return(new WaitForSeconds(OutroFadeDuration)); } else { yield return(new WaitForSecondsRealtime(OutroFadeDuration)); } } // we trigger an unPause event for the GameManager (and potentially other classes) CorgiEngineEvent.Trigger(CorgiEngineEventTypes.UnPause); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.LoadNextScene); }
/// <summary> /// Tries to load the currency if a file is present /// </summary> public virtual void LoadSavedCurrency() { SerializedCurrency serializedCurrency = (SerializedCurrency)MMSaveLoadManager.Load(typeof(SerializedCurrency), _saveFileNameCurrency + _saveFileExtensionCurrency, _saveFolderName); ExtractSerializedCurrency(serializedCurrency); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.LoadPoints); }
private void LevelEndWin() { CorgiEngineEvent.Trigger(CorgiEngineEventTypes.LevelEnd); SaveProgressWin(); StartCoroutine(IEGoToNextLevel()); }
public virtual void OnMMEvent(CorgiEngineEvent engineEvent) { switch (engineEvent.EventType) { case CorgiEngineEventTypes.LevelStart: StartCoroutine(Wait()); break; case CorgiEngineEventTypes.LevelEnd: EndLevel(); break; case CorgiEngineEventTypes.PlayerDeath: EndLevel(); break; case CorgiEngineEventTypes.GameOver: EndLevel(); break; case CorgiEngineEventTypes.ItemPickup: ItemPickup(); break; } }
public void OnMMEvent(CorgiEngineEvent corgiEngineEvent) { if (corgiEngineEvent.EventType == CorgiEngineEventTypes.SpawnCharacterStarts && !UseCustomTarget) { Target = LevelManager.Instance.Players[0].gameObject; } }
public virtual void OnMMEvent(CorgiEngineEvent engineEvent) { switch (engineEvent.EventType) { case CorgiEngineEventTypes.LevelStart: Start(); break; } }
public virtual IEnumerator StartFollowing() { yield return(_waitForSecondsFollowing); _mmFollowTarget.StartFollowing(); yield return(_waitForSecondsFollowing); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.NewFollower); }
protected virtual void SceneInit() { if (SceneManager.GetActiveScene().name == "1-Childhood") { //MMDebug.DebugLogTime("scene init, scene name : " + SceneManager.GetActiveScene().name + " clear"); Content.Clear(); } if ((SceneManager.GetActiveScene().name == "2-Adolescence") || (SceneManager.GetActiveScene().name == "3-Adulthood") || (SceneManager.GetActiveScene().name == "4-OldAge") ) { foreach (FollowerData data in Content) { _follower = Instantiate(FollowerPrefab); _follower.Data = data; _newPosition = LevelManager.Instance.Players[0].transform.position; _newPosition.x -= 10f; _follower.transform.position = _newPosition; _follower.TargetBuyZone.gameObject.SetActive(false); StartCoroutine(_follower.StartFollowing()); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.SortFollowers); } } if (SceneManager.GetActiveScene().name == "5-End") { Story += "\n\n"; Story += "At the end you had "; for (int i = 0; i < Content.Count; i++) { if (i < Content.Count - 2) { Story += "<color=red>" + Content[i].MessageDisplayText + "</color>, "; } if (i == Content.Count - 2) { Story += "<color=red>" + Content[i].MessageDisplayText + "</color> and "; } if (i == Content.Count - 1) { Story += "finally <color=red>you died</color>."; } } Story += "\n\n"; Story += "This was your life. You could have done better. Press any key to try a new life and maybe make better choices."; } }
public virtual void OnMMEvent(CorgiEngineEvent corgiEngineEvent) { switch (corgiEngineEvent.EventType) { case CorgiEngineEventTypes.LevelEnd: MMAchievementManager.UnlockAchievement("PrincessInAnotherCastle"); break; case CorgiEngineEventTypes.PlayerDeath: MMAchievementManager.UnlockAchievement("DeathIsOnlyTheBeginning"); break; } }
/// <summary> /// Coroutine that kills the player, stops the camera, resets the points. /// </summary> /// <returns>The player co.</returns> protected IEnumerator SoloModeRestart(Character player, Transform respawnPoint, Character.FacingDirections facingDirection) { if ((PlayerPrefabs.Count() <= 0) && (SceneCharacters.Count <= 0)) { yield break; } MMCameraEvent.Trigger(MMCameraEventTypes.StopFollowing); CharacterSwapManager.DisableSwap(); yield return(new WaitForSeconds(RespawnDelay)); CharacterSwapManager.EnableSwap(); // if we've setup our game manager to use lives (meaning our max lives is more than zero) if (GameManager.Instance.MaximumLives > 0) { int lastCurrentLives = GameManager.Instance.CurrentLives; // we lose a life GameManager.Instance.LoseLife(); Config.currentLives = GameManager.Instance.CurrentLives; var currentLives = GameManager.Instance.CurrentLives; //nếu đang ở level không cho phép hồi sinh dưới 0 mạng if (Config.currentSceneIndex > Config.UNLIMIT_LIVE_LEVEL) { //nếu âm mạng hoặc mạng đang bằng 0 từ đầu ván thì ending //còn nếu mạng về 0 thì vẫn cho chơi nốt một lần if (currentLives < 0 || (currentLives == 0 && lastCurrentLives == 0)) { StickmanManager.Instance.ShowRevivePanel(); yield return(new WaitUntil(() => !StickmanManager.Instance.isWaitToRevive)); yield return(null); } } } MMCameraEvent.Trigger(MMCameraEventTypes.StartFollowing); player.RespawnAt(respawnPoint, facingDirection); _started = DateTime.UtcNow; // we send a new points event for the GameManager to catch (and other classes that may listen to it too) CorgiEnginePointsEvent.Trigger(PointsMethods.Set, 0); // we trigger a respawn event ResetLevelBoundsToOriginalBounds(); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.Respawn); }
//pause /// <summary> /// Catches CorgiEngineEvents and acts on them, playing the corresponding sounds /// </summary> /// <param name="engineEvent">CorgiEngineEvent event.</param> public virtual void OnMMEvent(CorgiEngineEvent engineEvent) { switch (engineEvent.EventType) { case CorgiEngineEventTypes.Pause: Pause(); break; case CorgiEngineEventTypes.UnPause: UnPause(); break; case CorgiEngineEventTypes.SwtichPressed: movingPlatformPressed = true; break; } }
public virtual void OnMMEvent(CorgiEngineEvent engineEvent) { switch (engineEvent.EventType) { case CorgiEngineEventTypes.GameOver: EndScene(); break; case CorgiEngineEventTypes.LevelEnd: EndScene(); break; case CorgiEngineEventTypes.LevelStart: StartScene(); break; } }
public virtual void OnMMEvent(CorgiEngineEvent engineEvent) { switch (engineEvent.EventType) { case CorgiEngineEventTypes.LevelStart: //StartScene(); break; case CorgiEngineEventTypes.LevelEnd: //EndScene(); break; case CorgiEngineEventTypes.LoadPoints: SetCurrentCurrency(); break; } }
/// <summary> /// When the player collides, checks what type of Item is attached to /// apply logic. /// </summary> /// <param name="collider">Checks if player is colliding</param> private void OnTriggerStay2D(Collider2D collider) { if (hasPickedUp) { return; } if (!collider.CompareTag("Player")) { return; } // //ADD ITEM PICKUP LOGIC TO GO TO THE FIELD NOTEBOOK HERE // hasPickedUp = true; CorgiEngineEvent.Trigger(CorgiEngineEventTypes.ItemPickup); switch (itemObject.type) { case ItemType.currency: CurrencyPickup(); break; case ItemType.bomb: BombPickup(); break; case ItemType.healthPickup: HealthPickup(); break; case ItemType.buff: BuffPickup(); break; default: break; } }
/// <summary> /// Kills the player. /// </summary> public void KillPlayer(Character player, Transform respawnPoint, Character.FacingDirections facingDirection) { Health characterHealth = player.GetComponent <Health>(); if (characterHealth == null) { return; } else { // we kill the character characterHealth.Kill(); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.PlayerDeath); // if we have only one player, we restart the level if (Players.Count < 2) { StartCoroutine(SoloModeRestart(player, respawnPoint, facingDirection)); } } }
private void SpawnEnemy() { //Event here if (isFinalBoss) { CorgiEngineEvent.Trigger(CorgiEngineEventTypes.FinalBossRoom); } else { CorgiEngineEvent.Trigger(CorgiEngineEventTypes.MiniBossRoom); } if (bossGO == null) { bossGO = Instantiate(Boss, BossSpawnLocation.position, Quaternion.identity, gameObject.transform); } bossChar = bossGO.GetComponent <Character>(); SetCameraOnBoss(); EnemyNameEnable(); OnSpawn(); }
private void BossDeath() { //Is mini or final boss CorgiEngineEvent.Trigger(CorgiEngineEventTypes.BossDefeated); OnDespawn(); if (OnDeathEvent.GetPersistentEventCount() > 0) { OnDeathEvent.Invoke(); } //Is final-boss if (isFinalBoss) { endingGO.SetActive(true); } //Is mini-boss else { OpenDoor(); } StartCoroutine(BossKillWait()); }
private void BtnPause_Pressed() { CorgiEngineEvent.Trigger(CorgiEngineEventTypes.TogglePause); }
private void BtnSkip_Pressed() { //Ads nhét vào đây CorgiEngineEvent.Trigger(CorgiEngineEventTypes.TogglePause); LevelEndWin(); }
private void AfterCloseAds() { CorgiEngineEvent.Trigger(CorgiEngineEventTypes.TogglePause); }
private void ReturnToSub() { MMGameEvent.Trigger("Save"); CorgiEngineEvent.Trigger(CorgiEngineEventTypes.LevelEnd); LoadingSceneManager.LoadScene("Base"); }