private IEnumerator StartNewBasicEncounterEventCoroutine(Action action, EnemyWaveSO enemyWave = null) { // Disable player's ability to click on encounter buttons and start new encounters WorldManager.Instance.canSelectNewEncounter = false; // fade out view, wait until completed Action fadeOut = BlackScreenManager.Instance.FadeOut(BlackScreenManager.Instance.aboveEverything, 6, 1, true); yield return(new WaitUntil(() => fadeOut.ActionResolved() == true)); // Destroy the previous level and tiles + reset values/properties, turn off unneeded views ClearPreviousEncounter(); // make char roster canvas turn off when disabled combatSceneIsActive = true; // Create a new level LevelManager.Instance.CreateLevel(); // Reset Camera CameraManager.Instance.ResetCameraOnCombatStart(); // Set up activation window holders ActivationManager.Instance.CreateSlotAndWindowHolders(); // Create defender GO's CharacterRoster.Instance.InstantiateDefenders(); // Instantiate enemies EnemySpawner.Instance.SpawnEnemyWave("Basic", enemyWave); // disable unneed UI views UIManager.Instance.DisableUnneededCanvasesOnCombatStart(); // Set encounter type currentEncounterType = WorldEncounter.EncounterType.BasicEnemy; // Fade scene back in, wait until completed Action fadeIn = BlackScreenManager.Instance.FadeIn(BlackScreenManager.Instance.aboveEverything, 6, 0, false); yield return(new WaitUntil(() => fadeIn.ActionResolved() == true)); // Apply Relevant State Effects Action stateApplications = StateManager.Instance.ApplyAllStateEffectsToLivingEntities(); yield return(new WaitUntil(() => stateApplications.ActionResolved() == true)); // Check for expired states and remove them Action stateExpirations = StateManager.Instance.CheckForStateExpirationsOnCombatStart(); yield return(new WaitUntil(() => stateExpirations.ActionResolved() == true)); // Start activations / combat start events ActivationManager.Instance.OnNewCombatEventStarted(); // declare this event complete action.actionResolved = true; }
public void StartNewLootRewardEvent(WorldEncounter.EncounterType encounterType) { Debug.Log("EventManager.StartNewLootRewardEvent() called, encounter type = " + encounterType.ToString()); if (encounterType == WorldEncounter.EncounterType.BasicEnemy) { UIManager.Instance.EnableRewardScreenView(); RewardScreen.Instance.CreateGoldRewardButton(); RewardScreen.Instance.CreateCommonItemRewardButton(); RewardScreen.Instance.PopulateItemScreen(WorldEncounter.EncounterType.BasicEnemy); // 50% chance to get a consumable from basic encounters int consumableRoll = Random.Range(1, 101); if (consumableRoll > 50) { RewardScreen.Instance.CreateConsumableRewardButton(); } } else if (encounterType == WorldEncounter.EncounterType.EliteEnemy) { UIManager.Instance.EnableRewardScreenView(); RewardScreen.Instance.CreateGoldRewardButton(); RewardScreen.Instance.CreateCommonItemRewardButton(); RewardScreen.Instance.CreateRareItemRewardButton(); RewardScreen.Instance.CreateConsumableRewardButton(); RewardScreen.Instance.CreateStateRewardButton(); RewardScreen.Instance.PopulateStateRewardScreen(true, true, false); RewardScreen.Instance.PopulateItemScreen(WorldEncounter.EncounterType.EliteEnemy); } else if (encounterType == WorldEncounter.EncounterType.Boss) { UIManager.Instance.EnableRewardScreenView(); RewardScreen.Instance.CreateGoldRewardButton(); RewardScreen.Instance.CreateCommonItemRewardButton(); RewardScreen.Instance.CreateEpicItemRewardButton(); RewardScreen.Instance.CreateConsumableRewardButton(); RewardScreen.Instance.CreateStateRewardButton(); RewardScreen.Instance.PopulateStateRewardScreen(false, false, true); RewardScreen.Instance.PopulateItemScreen(WorldEncounter.EncounterType.Boss); } else if (encounterType == WorldEncounter.EncounterType.Treasure) { UIManager.Instance.EnableRewardScreenView(); RewardScreen.Instance.CreateStateRewardButton(); RewardScreen.Instance.PopulateStateRewardScreen(true, true, false); } }
private IEnumerator StartActTwoLoadSequenceCoroutine(Action action) { Debug.Log("EventManager.StartActTwoLoadSequenceCoroutine() called..."); // Destroy the previous level and tiles + reset values/properties, turn off unneeded views ClearPreviousEncounter(); // Disable player's ability to click on encounter buttons and start new encounters WorldManager.Instance.canSelectNewEncounter = false; // fade out view, wait until completed Action fadeOut = BlackScreenManager.Instance.FadeOut(BlackScreenManager.Instance.aboveEverything, 3, 1, true); yield return(new WaitUntil(() => fadeOut.ActionResolved() == true)); // Reset reward screen RewardScreen.Instance.ClearRewards(); UIManager.Instance.DisableRewardScreenView(); // Build new world WorldManager.Instance.OnActTwoStarted(); // Heal all characters to full hp foreach (CharacterData character in CharacterRoster.Instance.allCharacterDataObjects) { character.ModifyCurrentHealth(character.maxHealth); } // Clear current encounter type currentEncounterType = WorldEncounter.EncounterType.NoType; // Enable world map view UIManager.Instance.EnableWorldMapView(); // Enable player's ability to click on encounter buttons and start new encounters WorldManager.Instance.canSelectNewEncounter = true; // Refresh act transition bool actTransitionInProcess = false; // Fade scene back in, wait until completed Action fadeIn = BlackScreenManager.Instance.FadeIn(BlackScreenManager.Instance.aboveEverything, 3, 0, false); yield return(new WaitUntil(() => fadeIn.ActionResolved() == true)); action.actionResolved = true; }
public void PopulateItemScreen(WorldEncounter.EncounterType encounterType) { if (encounterType == WorldEncounter.EncounterType.BasicEnemy) { PopulateCommonItemScreen(); } else if (encounterType == WorldEncounter.EncounterType.EliteEnemy) { PopulateCommonItemScreen(); PopulateRareItemScreen(); } else if (encounterType == WorldEncounter.EncounterType.Boss) { PopulateCommonItemScreen(); PopulateEpicItemScreen(); } }
public void StartNewEliteEncounterEvent() { // Disable player's ability to click on encounter buttons and start new encounters WorldMap.Instance.canSelectNewEncounter = false; // turn off hexagon highlights WorldMap.Instance.UnHighlightAllHexagons(); // Destroy the previous level and tiles + reset values/properties ClearPreviousEncounter(); // Create a new level LevelManager.Instance.CreateLevel(); //EnemySpawner.Instance.PopulateEnemySpawnLocations(); CharacterRoster.Instance.InstantiateDefenders(); //DefenderManager.Instance.PlaceDefendersAtStartingLocations(); // Instantiate enemies //EnemySpawner.Instance.SpawnEnemyWave("Elite"); // reset turn manager properties TurnManager.Instance.ResetTurnManagerPropertiesOnCombatStart(); // start player turn 1 StartCoroutine(TurnManager.Instance.StartPlayerTurn()); // disable world map view UIManager.Instance.DisableWorldMapView(); currentEncounterType = WorldEncounter.EncounterType.EliteEnemy; }