public IEnumerator EndBattleCo2() { //this makes the sound fade twice when going back to scene - which is not desireable //yield return new WaitForSeconds(1f); uiButtonsHolder.SetActive(false); targetMenu.SetActive(false); magicMenu.SetActive(false); battleActive = false; if (!playerDead) { AudioManager.instance.music[4].volume = 0f; //StartCoroutine(FadeAudio.StartFade(AudioManager.instance.music[4], 1f, 0f)); yield return(null); } for (int i = 0; i < activeBattlers.Count; i++) { if (activeBattlers[i].isPlayer) { for (int j = 0; j < GameManager.instance.playerStats.Length; j++) { if (activeBattlers[i].charName == GameManager.instance.playerStats[i].charName) { GameManager.instance.playerStats[j].currentHp = activeBattlers[i].currentHp; GameManager.instance.playerStats[j].currentMp = activeBattlers[i].currentMp; } } } Destroy(activeBattlers[i].gameObject); } currentTurn = 0; GameManager.instance.battleActive = false; battleActive = false; Camera.SetActive(false); Player.instance.OnRunSpeed(); EnemyDefeated ef = obj.AddComponent <EnemyDefeated>(); ef.DetermineDefeated(npcName); // battlescene unactive BattleScene.SetActive(false); //Reset battler list activeBattlers.Clear(); //find music from worldcontroller int sceneMusic = FindObjectOfType <WorldController>().musicToPlay; AudioManager.instance.music[sceneMusic].volume = 0f; AudioManager.instance.PlayMusic(sceneMusic); StartCoroutine(FadeAudio.StartFade(AudioManager.instance.music[sceneMusic], 3, 0.2f)); //} Player.instance.UnMuteWalk(); }
//start battle //this needs the name of enemies we want to spawn in battle. public void BattleStart(string[] enemiesToSpawn) { if (!battleActive) { //UIFade.instance.FadeToBlack(); Player.instance.OffRunSpeed(); Player.instance.MuteWalk(); AudioManager.instance.PlayMusic(4); StartCoroutine(FadeAudio.StartFade(AudioManager.instance.music[4], 3, 0.2f)); //fade in battle music //activating battlescene camera Camera.SetActive(true); //setting battleactive boolean true battleActive = true; //activating battlescene GameObject BattleScene.SetActive(true); //put players in scene. Only 1 player here for (int i = 0; i < playerPositions.Length; i++) { //Put players in right positions on the battle if (GameManager.instance.playerStats[i].gameObject.activeInHierarchy) { // find player for (int j = 0; j < playerPrefabs.Length; j++) { //add Stats for player in battle. Health, Strength, Defence, etc. if (playerPrefabs[j].charName == GameManager.instance.playerStats[i].charName) { BattleChar newPLayer = Instantiate(playerPrefabs[j], playerPositions[i].position, playerPositions[i].rotation); newPLayer.transform.parent = playerPositions[i]; activeBattlers.Add(newPLayer); //adding to list CharStats thePlayer = GameManager.instance.playerStats[i]; activeBattlers[i].currentHp = Player.instance.currentHealth; activeBattlers[i].maxHp = Player.instance.maxHealth; activeBattlers[i].currentMp = thePlayer.currentMp; activeBattlers[i].maxMp = thePlayer.maxMp; activeBattlers[i].strength = thePlayer.strength; activeBattlers[i].defence = thePlayer.defence; } } } //UIFade.instance.FadeFromBlack(); } //Spawn enemies to battlefield and on the right places. for (int i = 0; i < enemiesToSpawn.Length; i++) { if (enemiesToSpawn[i] != "") { for (int j = 0; j < enemyPrefabs.Length; j++) { if (enemyPrefabs[j].charName == enemiesToSpawn[i]) { BattleChar newEnemy = Instantiate(enemyPrefabs[j], enemyPositions[i].position, enemyPositions[i].rotation); newEnemy.transform.parent = enemyPositions[i]; activeBattlers.Add(newEnemy); } } } } turnWaiting = true; //when we start the battle . turnWaiting should be true. currentTurn = 0; // or you could randomize who starts = Random.Range(0, activeBattlers.Count); } }