IEnumerator DungeonFloor1Boss() { EventManager.TriggerEvent("InCombat"); EventManager.TriggerEvent("StopMoving"); Vector3 BoyNewPos = new Vector3(BoyPosBoss.transform.position.x, boyPlayer.transform.position.y, BoyPosBoss.transform.position.z); Vector3 GirlNewPos = new Vector3(GirlPosBoss.transform.position.x, girlPlayer.transform.position.y, GirlPosBoss.transform.position.z); boyPlayer.GetComponent <NavMeshAgent>().SetDestination(BoyNewPos); girlPlayer.GetComponent <NavMeshAgent>().SetDestination(GirlNewPos); yield return(new WaitForSeconds(1f)); NavMeshAgent boynav = boyPlayer.GetComponent <NavMeshAgent>(); NavMeshAgent girlnav = girlPlayer.GetComponent <NavMeshAgent>(); Debug.Log(boynav.velocity); yield return(new WaitUntil(() => boynav.velocity == Vector3.zero && girlnav.velocity == Vector3.zero)); boySpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); girlSpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); for (int i = 0; i < LightRoom.Length; i++) { LightRoom[i].GetComponent <TorcheLighten>().OpenLight(); i += 1; LightRoom[i].GetComponent <TorcheLighten>().OpenLight(); yield return(new WaitForSeconds(0.5f)); } girlSpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(4); yield return(new WaitForSeconds(0.5f)); boySpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(3); yield return(new WaitForSeconds(1.5f)); girlSpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); boySpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); yield return(new WaitForSeconds(1f)); girlPlayer.GetComponent <NavMeshAgent>().SetDestination(BossPos.transform.position); ScreenFader.fadeOut(); yield return(new WaitForSeconds(3f)); ScreenFader.fadeIn(); publicVariableHolderNeverUnload.PlayerUI.SetActive(true); yield return(new WaitForSeconds(1f)); //GameObject[] Enemiesgo = new GameObject[EnemiesSpawnPos.Length]; //Enemiesgo[0] = Instantiate(boss, EnemiesSpawnPos[0].transform.position, Quaternion.identity); //Enemiesgo[0].SetActive(true); //for (int i = 1; i < EnemiesSpawnPos.Length - 1; i++) //{ // Enemiesgo[i] = Instantiate(smallEnemy, EnemiesSpawnPos[i].transform.position, Quaternion.identity); //} for (int i = 0; i < LightRoom.Length; i++) { LightInteractiveParticles[i].SetActive(true); LightRoom[i].GetComponent <Collider>().enabled = true; } directionalLight.LightDown(); Destroy(this.gameObject); }
public override IEnumerator Action(GameObject sender) { EventManager.TriggerEvent("InCombat"); EventManager.TriggerEvent("StopMoving"); Vector3 BoyNewPos = new Vector3(BoyPosBoss.transform.position.x, boyPlayer.transform.position.y, BoyPosBoss.transform.position.z); Vector3 GirlNewPos = new Vector3(GirlPosBoss.transform.position.x, girlPlayer.transform.position.y, GirlPosBoss.transform.position.z); boyPlayer.GetComponent <NavMeshAgent>().SetDestination(BoyNewPos); girlPlayer.GetComponent <NavMeshAgent>().SetDestination(GirlNewPos); yield return(new WaitForSeconds(1f)); NavMeshAgent boynav = boyPlayer.GetComponent <NavMeshAgent>(); NavMeshAgent girlnav = girlPlayer.GetComponent <NavMeshAgent>(); //Debug.Log(boynav.velocity); yield return(new WaitUntil(() => boynav.velocity == Vector3.zero && girlnav.velocity == Vector3.zero)); boySpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); girlSpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); for (int i = 0; i < LightRoom.Length; i++) { LightRoom[i].GetComponent <TorcheLighten>().OpenLight(); i += 1; LightRoom[i].GetComponent <TorcheLighten>().OpenLight(); yield return(new WaitForSeconds(0.5f)); } girlSpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(4); yield return(new WaitForSeconds(0.5f)); boySpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(3); yield return(new WaitForSeconds(1.5f)); girlSpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); boySpriteGameobject.GetComponent <SpriteScript2>().ForcePlayerRotation(1); yield return(new WaitForSeconds(1f)); girlPlayer.GetComponent <NavMeshAgent>().SetDestination(BossPos.transform.position); ScreenFader.fadeOut(); yield return(new WaitForSeconds(3f)); ScreenFader.fadeIn(); publicVariableHolderNeverUnload.PlayerUI.SetActive(true); yield return(new WaitForSeconds(1f)); GameObject[] Enemiesgo = new GameObject[EnemiesSpawnPos.Length]; Enemiesgo[0] = Instantiate(boss, EnemiesSpawnPos[0].transform.position, Quaternion.identity); //Spawns the boss Enemiesgo[0].SetActive(true); //for (int i = 1; i < EnemiesSpawnPos.Length - 1; i++) //Spawns the Skeletons //{ // Enemiesgo[i] = Instantiate(smallEnemy, EnemiesSpawnPos[i].transform.position, Quaternion.identity); //} //Instantiating the colliders required to cause the damage in the dark //Quite sure I don't want to instantiate the light colliders here; WHY??? I'm doing it until I figure it out GameObject[] LightCollidersgo = new GameObject[LightRoomCollidersSpawnPos.Length]; for (int i = 0; i < LightRoomCollidersSpawnPos.Length; i++) { LightCollidersgo[0] = Instantiate(LightCollider, LightRoomCollidersSpawnPos[i].transform.position, Quaternion.identity); } Darknessgo = Instantiate(DarknessCollider, DarknessColliderSpawnPos.transform.position, Quaternion.identity); GameObject.FindObjectOfType <ColliderDarknessDamage>().Ghoul = Enemiesgo[0]; for (int i = 0; i < LightRoom.Length; i++) { LightInteractiveParticles[i].SetActive(true); LightRoom[i].GetComponent <Collider>().enabled = true; } directionalLight.LightDown(); Destroy(this.gameObject); }