// On entering the room, do nothing since there is nothing special in this room. protected override void OnRoomEnter(RoomMover mover) { if (!(mover is BasePlayerMover)) return; if (!m_wonCombat) { _chooseEnemyTeam(); int i = 0; foreach (CombatPawn pawn in m_roomEnemies.PawnsToSpawn) { Vector3 currentEnemyPos = m_enemyPosList[i].position; Quaternion currentEnemyRot = m_enemyPosList[i].rotation; GameObject pawnGameObject = PhotonNetwork.Instantiate("Enemies/EnemyTypes/" + pawn.PawnGenre + "/Bosses/" + pawn.name, currentEnemyPos, currentEnemyRot, 0); pawnGameObject.GetComponent<CombatPawn>().enabled = false; PhotonNetwork.Spawn(pawnGameObject.GetComponent<PhotonView>()); m_enemyWorldPawns.Add(pawnGameObject); i++; } } m_musicManager.Fade(m_musicTracks[0], 5, true); //m_musicManager.MusicTracks = m_musicTracks; EventDispatcher.GetDispatcher<MusicEventDispatcher>().OnRoomMusicChange(RoomPageData.PageGenre); }
protected override void OnRoomEnter(RoomMover mover) { if (!(mover is BasePlayerMover)) return; /* m_musicManager.MusicTracks = m_musicTracks; m_musicManager.Fade(m_musicTracks[0], 5, true); */ EventDispatcher.GetDispatcher<MusicEventDispatcher>().OnStartRoomEntered(); }
protected override IEnumerable OnRoomEvent(RoomMover mover) { if (!(mover is BasePlayerMover)) yield break; m_readyPlayers.Clear(); IsInRoomEvent = true; while (m_readyPlayers.Count < PhotonNetwork.playerList.Length) { yield return null; } IsInRoomEvent = false; }
// What do we do when all players reach the center of the room? // Most likely nothing, but that may change. protected override IEnumerable OnRoomEvent(RoomMover mover) { //TODO: Integrate with new game manager code to start combat if (!(mover is BasePlayerMover)) yield break; if (!m_wonCombat) { //TODO: This code can be moved into the combat manager, seeing as it is the combats music. ResourceAsset playerTeam = GameManager.GetInstance<BaseStorybookGame>().DefaultPlayerTeam; Debug.Log("Team = " + m_roomEnemiesPrefabLoc + m_roomEnemies.gameObject.name); ResourceAsset enemyTeam = new ResourceAsset(m_roomEnemiesPrefabLoc + m_roomEnemies.gameObject.name, typeof(EnemyTeam)); //m_musicManager.Fade(m_musicTracks[1], 5, true); CombatManager cm = GameManager.GetInstance<BaseStorybookGame>().StartCombat(new StandardCombatInstance(playerTeam, enemyTeam, RoomPageData.PageGenre, RoomPageData.PageLevel)); // Send out a tutorial event EventDispatcher.GetDispatcher<TutorialEventDispatcher>().OnBossFightStarted(); while (cm.IsRunning) { yield return null; } photonView.RPC(nameof(_resetCameraAfterCombat), PhotonTargets.All); DestroyEnemyWorldPawns(); // Send out a tutorial event, notifying that the demo is completed EventDispatcher.GetDispatcher<TutorialEventDispatcher>().OnDemoCompleted(); } else { m_musicManager.Fade(m_musicTracks[0], 5, true); ClearRoom(); } }
// What happens when the players leave this room? // Hint: Nothing. protected override void OnRoomExit(RoomMover mover) { if (!(mover is BasePlayerMover)) return; m_wonCombat = true; }
protected override void OnRoomExit(RoomMover mover) { }